以下、本発明の実施の形態について説明するが、その前に、前段階の準備として、ISO base media file formatについて、簡単に説明する。
図1は、ISO Base Media File Formatのファイルに格納されるメディアデータの例を示している。
図1では、メディアデータは、9個のサンプルSample#1ないしSample#9に区分されている。
ここでは、1サンプルとは、メディアデータを表示(出力)する表示(出力)単位である。メディアデータが動画データである場合には、例えば、1フレームや、MPEG(Moving Picture Experts Group)-2 Video 規格の1GOP(Group of Pictures)等が、1サンプルに対応する。また、メディアデータが音声データである場合には、例えば、その音声データの規格で定められた1オーディオフレーム等が、1サンプルに対応する。
サンプルは、時間軸上、隙間なく密に並び、すなわち、再生時刻順に密に並べられ、再生時には、順次再生される。
ISO Base Media File Formatでは、1個以上のサンプルによって、チャンク(Chunk)が構成される。
チャンクは、同一の性質を有する、1個以上の、連続するサンプルの集まりである。動画データについては、例えば、フレームレート等が同一の連続するサンプルが、1個のチャンクとされる。また、音声データについては、サンプリング周波数や量子化ステップ等が同一の連続するサンプルが、1個のチャンクとされる。
図1では、先頭から3個のサンプルSample#1ないしSample#3が、1個のチャンクChunk#1に、その後の3個のサンプルSample#4ないしSample#6が、1個のチャンクChunk#2に、その後の1個のサンプルSample#7が、1個のチャンクChunk#3に、その後の1個のサンプルSample#8が、1個のチャンクChunk#4に、最後の1個のSample#9が、1個のチャンクChunk#5に、それぞれなっている。
ISO Base Media File Format においては、各サンプルの表示(出力)を開始する表示(出力)開始時刻が、sample table atom(以下、適宜、atomという)と呼ばれる一種のデータベースに登録される。atomとは、ISO Base Media File Formatにおいて定義された、メディアデータに関するメタデータ(情報、属性)を格納するためのデータベース構造である。atomについての詳細は、例えば、ISO/IEC 14496-12:2005(E) Part 12:ISO base media file formatに記載されている。
図2は、図1のメディアデータのatomの概要を示している。
atomには、例えば、time-to-sample atom,sample size atom,sample-to-chunk atom,chunk offset atomがある。
図2Aは、図1のメディアデータのtime-to-sample atomの概要を示している。
サンプルは、durationと呼ばれる再生時間(区間)を有し、time-to-sample atomは、duration(Sample duration)と、そのdurationを有するサンプルの個数(Sample count)との対応を表す。
図2Aのtime-to-sample atomは、duration=3のサンプルが4個、duration=1のサンプルが2個、duration=2のサンプルが3個、それぞれ存在することを表している。
図2Bは、図1のメディアデータのsample size atomの概要を示している。
sample size atomは、サンプル(Sample)と、そのサンプルの、バイト数によるサイズ(size)との対応を表す。
図2Cは、図1のメディアデータのsample-to-chunk atomの概要を示している。
sample-to-chunk atomは、サンプルとチャンクとの関係を表し、サンプルの個数(Samples-per-chunk)と属性(Sample Description ID)が同一のチャンクについてのsample-to-chunk atomは、1個のエントリ(レコード)にまとめられる。
すなわち、sample-to-chunk atomには、サンプルの個数と属性が同一の、連続する1個以上のチャンクの先頭のチャンク(First chunk)(を表す情報)と、その1個以上のチャンクのサンプルの個数(Samples-per-chunk)及び属性(Sample Description ID)とが記述される。
図1のメディアデータのうちの、先頭のチャンクChunk#1と2番目(先頭から2番目)のチャンクChunk#2については、いずれも、サンプルの個数が3個で、Sample Description IDが23になっている。
このため、図2Cの、sample-to-chunk atomの先頭から1行目のエントリには、サンプルの個数が3個で、Sample Description IDが23になっている、連続する2個のチャンクChunk#1及びChunk#2のうちの先頭のチャンクが、チャンクChunk#1であること、及び、チャンクを構成するサンプルの個数が3個で、Sample Description IDが23であることが記述されている。
また、図1のメディアデータのうちの、3番目のチャンクChunk#3と4番目のチャンクChunk#4については、いずれも、サンプルの個数が1個で、Sample Description IDが23になっている。
このため、図2Cの、sample-to-chunk atomの先頭から2行目のエントリには、サンプルの個数が1個で、Sample Description IDが23になっている、連続する2個のチャンクChunk#3及びChunk#4のうちの先頭のチャンクが、チャンクChunk#3であること、及び、チャンクを構成するサンプルの個数が1個で、Sample Description IDが23であることが記述されている。
さらに、図1のメディアデータのうちの、最後(5番目)のチャンクChunk#5については、サンプルの個数が1個で、Sample Description IDが24になっている。
このため、図2Cの、sample-to-chunk atomの先頭から3行目のエントリには、サンプルの個数が1個で、Sample Description IDが24になっている1個のチャンクChunk#5の先頭のチャンクが、チャンクChunk#5であること、及び、チャンクを構成するサンプルの個数が1個で、Sample Description IDが24であることが記述されている。
図2Dは、図1のメディアデータのchunk offset atomの概要を示している。
chunk offset atomは、チャンク(Chunk)と、そのチャンクの、バイト数による、ファイルの先頭からの相対的な位置(Offset)との対応を表す。
なお、ISO Base Media File Formatでは、各サンプルの表示開始時刻が、atomに記述(登録)される。
動画や音声については、あるサンプルの表示(出力)が終了する表示終了時刻(の直後の時刻)が、次のサンプルの表示(出力)開始時刻となるので、各サンプルの表示(出力)を、そのサンプルの表示(出力)開始時刻となったときに開始することで、連続した動画や音声が表示(出力)される。
一方、字幕を、動画に重畳して表示するには、ISO Base Media File Formatのファイルに、その字幕に関する字幕データを、メディアデータとして格納する必要がある。
ここで、字幕とは、ある時間(動画の再生区間)だけ、動画上のある領域に重畳して表示される文字等の画像である。
図3は、字幕の表示を説明する図である。
字幕は、動画に重畳して表示が開始され、ある時間を経過すると、消去されることが、必要に応じて繰り返される。
すなわち、字幕は、不連続に表示される。
ISO Base Media File Formatのサンプルの管理は、サンプルが隙間なく連続に表示(出力)されることを前提としている。このため、ISO Base Media File Formatでは、字幕のような不連続に表示されるメディアデータを管理する方法、すなわち、字幕データをファイルに格納する方法は、標準規格として制定されていない。
そこで、例えば、1個の字幕に関する字幕データを、1サンプルとして扱うこととすると、ISO Base Media File Formatでは、ある字幕と、その次に表示される字幕との間の、字幕が表示されない区間(時間)や、動画の先頭から、最初の字幕が表示されるまでの、字幕が表示されない区間を定義(規定)することができないという不都合が生じる。
すなわち、図3Aは、1個の字幕に関する字幕データを、1サンプルとして扱う場合の、字幕の表示を示している。
1個の字幕に関する字幕データを、1サンプルとして扱う場合には、図3AにおいてL1で示す、ある字幕と、その次に表示される字幕との間の、字幕が表示されない区間、及び、図3AにおいてL2で示す、動画の先頭から、最初の字幕が表示されるまでの、字幕が表示されない区間を定義することができない。
そこで、図3Bは、字幕の表示を開始してから、その字幕が消去され、次の字幕の表示が開始される(直前)までを(又は、動画の最後までを)、1サンプルとして扱う場合の、字幕の表示を示している。
字幕の表示を開始してから、次の字幕の表示が開始されるまでを、1サンプルとして扱う場合には、字幕のサンプルは、動画や音声のサンプルと同様に、再生時刻順に密に並ぶことになる。
しかしながら、この場合でも、図3BにおいてL2で示す、動画の先頭から、最初の字幕が表示されるまでの、字幕が表示されない区間を定義することができないという不都合を解消することができない。
さらに、字幕が表示されている区間と、その字幕が消去された後の、その字幕が表示されていない区間とを、1サンプルとすると、字幕の1サンプルの区間と、字幕が表示されている区間とが(必ずしも)一致しなくなる。
したがって、ISO Base Media File Formatのatomでは、サンプルの区間を認識することはできるが、字幕が実際に表示されている区間(実表示区間)を認識することができないという不都合が生じる。
そこで、ISO Base Media File Formatに適した字幕データのデータ構造(フォーマット)を定義し、さらに、そのデータ構造の字幕データを、ISO Base Media File Formatのファイルに格納したファイルのフォーマット(以下、新フォーマットという)を定義する。
図4を参照して、新フォーマットについて説明する。
新フォーマットでは、ファイルに格納されるストリームは、動画に関する動画データと、その動画の表示区間の全体にわたって表示される字幕に関する字幕データとを、少なくとも含む。さらに、字幕データは、字幕の表示が一定の区間を、字幕の表示単位として、その表示単位の字幕データであるディスプレイセットに区分される。
すなわち、新フォーマットでは、字幕が、動画の表示区間の全体にわたって表示されるとみなす。但し、字幕が表示されない区間(非表示区間)については、「ない」(存在しない、又は見えない)字幕が表示されるとみなす。
さらに、字幕の色その他が変化しない、字幕(「ない」字幕を含む)の表示が一定の区間を、字幕の表示単位とし、字幕データは、表示単位ごとに独立して定義する。
いま、表示単位の字幕データを、ディスプレイセットと呼ぶこととすると、新フォーマットでは、動画の表示区間の全体にわたって表示される字幕に関する字幕データは、ディスプレイセットに区分される。
新フォーマットでは、(見える)字幕が表示される区間(表示区間)については、その字幕のディスプレイセットが存在し、字幕の非表示区間については、「ない」字幕のディスプレイセットが存在する。
また、例えば、ある字幕の表示後、その字幕の色や、文字、表示の位置等を変化させる場合には、その変化のための字幕データが必要となるので、変化前の字幕と、変化後の字幕とは、別のディスプレイセットで定義される。
新フォーマットでは、コンテンツとしての動画に重畳して表示される一連の字幕は、1個以上のディスプレイセットの集合で定義することができる。
また、新フォーマットでは、1個のディスプレイセットが、ISO Base Media File Formatの1サンプルに対応する。
図4は、ディスプレイセットとサンプルとの対応を示している。
図4では、字幕を非表示とする非表示区間のディスプレイセット(「ない」字幕のディスプレイセット)#1、字幕Aのディスプレイセット(字幕Aを表示するディスプレイセット)#2、非表示区間のディスプレイセット#3、字幕Bのディスプレイセット#4、字幕Cのディスプレイセット#5、非表示区間のディスプレイセット#6、字幕Dのディスプレイセット#7、及び、非表示区間のディスプレイセット#8が、時間順に並んでいる。
そして、ディスプレイセット#1ないし#8のそれぞれは、1個のサンプルに対応している。
以上のように、「ない」字幕を含め、字幕の表示が一定の区間を、字幕の表示単位として、その表示単位の字幕データであるディスプレイセットを定義することにより、図3で説明した、字幕が表示されない区間(非表示区間)を定義(規定)することができないという不都合、及び、字幕の1サンプルの区間と字幕が表示される区間(表示区間)とが一致しないことに起因して、字幕の表示区間を認識することができないという不都合を解消することができる。
そして、その結果、ISO Base Media File Formatのファイルに、字幕データを格納することが可能となる(字幕が適切に表示されるように、字幕データを格納することができる)。
また、字幕の表示が一定の区間(表示単位)の字幕データをディスプレイセットとすることで、字幕を適切に表示することができる。
すなわち、例えば、図4において、仮に、連続する2個のディスプレイセット#4及び#5を、1個のディスプレイセットに合体した場合には、その、ディスプレイセット#4及び#5を合体したディスプレイセット(以下、合体ディスプレイセットという)によれば、まず、字幕Bが表示され、その後、字幕Bに代えて、字幕Cが表示される。
したがって、例えば、字幕Cが表示されるべき、ディスプレイセット#5の区間にランダムアクセスがされた場合に、合体ディスプレイセットによれば、ディスプレイセット#5の区間で表示されるべき字幕Cではなく、字幕Bが表示される。
これに対して、字幕の表示が一定の区間に区分されたディスプレイセット#4及び#5が存在する場合には、字幕Cが表示されるべき、ディスプレイセット#5の区間にランダムアクセスがされたときに、字幕Cが表示される。
以上のように、その区間で表示すべき字幕を表示することができる。
図5は、新フォーマットのファイルに格納されるストリームの例を示している。
新フォーマットのファイルに格納されるストリームは、ISO Base Media File Formatに準拠したストリームであり、図5では、そのストリームの先頭に、atomを含むメタデータが配置されている。
メタデータに続いては、動画データ、音声データ、及び、字幕データが順次配置されている。そして、動画データ、音声データ、及び、字幕データは、いずれも、サンプル単位のデータになっている。
なお、新フォーマットのファイルに格納されるストリームは、ISO Base Media File Formatではなく、MP4 file formatに準拠したストリームとすることもできる。
上述したように、新フォーマットの字幕データのサンプルは、ディスプレイセットである。そして、ディスプレイセットは、字幕の画像データや、画面(動画)上の字幕の表示領域を表す座標、色(パレット)等のデータを有する。
さらに、ディスプレイセットは、その他、1画面に表示される字幕の数を表す字幕数情報としての後述するnumber_of_region_composition_objectsや、字幕の透明度を表す透明度情報としての後述するT-value等を有する。
ここで、number_of_region_composition_objectsは、1画面(フレーム又はフィールド)に表示すべき字幕(オブジェクト)のid(identification)、字幕の表示領域を表すid、及び、字幕の表示位置(の情報)から構成される。また、T-valueは、0以上の値をとり、値が0である場合、字幕が完全に透明(無色透明)であることを表す。
非表示区間のディスプレイセットでは、1画面に表示される字幕の数を表す字幕数情報としてのnumber_of_region_composition_objectsが0とされるか、又は、字幕の透明度を表す透明度情報としてのT-valueが0とされる。
number_of_region_composition_objectsが0である場合、表示される字幕は存在しない。したがって、number_of_region_composition_objectsが0になっているディスプレイセットによれば、存在しない字幕が表示され、これにより、字幕の非表示が実現される。
また、T-valueが0である場合、完全に透明な字幕が表示される。したがって、T-valueが0になっているディスプレイセットによれば、完全に透明な字幕、つまり、見えない字幕が表示され、これにより、字幕の非表示が実現される。
すなわち、新フォーマットのファイルを再生する後述する再生装置は、ディスプレイセット(の字幕)を表示する際に、字幕を表示する表示領域であるリージョン内の字幕をクリア(消去)する。したがって、表示順で直前のディスプレイセットによって表示された字幕がリージョン内に存在すれば、その字幕はクリアされることになる。
再生装置は、リージョン内の字幕を消去した後、新たな字幕の描画を開始する。このとき、表示すべき字幕(オブジェクト)の数が0であれば、リージョン内には、何も描画されない。また、表示すべき字幕が完全に透明であれば、リージョン内には、完全に透明な字幕が描画される。いずれにしても、字幕は、等価的に表示されない。
図6は、新フォーマットのファイルに格納される字幕データ(サブタイトルグラフィックスストリーム)のデータ構造を模式的に示している。
なお、図6の字幕データのデータ構造は、BD-ROM(Blu-Ray Disc Read Only Memory)や、AVCHDの規格に規定されている字幕のデータとの親和性が高いものになっている。したがって、新フォーマットのファイルを再生する再生装置は、例えば、BD-ROM、又は、AVCHDの規格に準拠した記録媒体を再生する装置を改良することで、容易に製造することができる。すなわち、新フォーマットのファイルを再生するにあたり、そのファイル専用の再生装置を一から新たに製造する必要は、必ずしもない。
図6において、字幕データは、1個以上のエポック(EPOCH)の並びから構成される。
1個のエポックは、1個以上のディスプレイセットの並びから構成される。
ディスプレイセットには、Display Period Startディスプレイセット(Display Set)と、Display Change Pointディスプレイセットとの2種類がある。
エポックは、1個のDisplay Period Startディスプレイセットと、0個以上のDisplay Change Pointディスプレイセットとから構成される。すなわち、エポックの先頭には、Display Period Startディスプレイセットが配置され、その後に、0個以上のDisplay Change Pointディスプレイセットが配置される。
エポックは、字幕の表示順に、1個ずつ有効になり、新フォーマットのファイルの再生装置は、有効なエポックについて、メモリ管理を維持する。すなわち、再生装置は、エポックが有効である間、そのエポックに関するデータ(エポックを処理している再生装置の状態を含む)の記憶を維持する。
また、再生装置は、あるエポックが有効になった後、(そのエポックが無効となり、)次のエポックが有効になった場合には、直前に有効であったエポックに関するデータを維持しない。
エポックは、字幕を表示する字幕プレーン(字幕の表示のための、字幕(の画像データ)が描画されるメモリの記憶領域)の記憶内容が維持される単位であり、字幕プレーンは、有効なエポックが切り替わるときに、すなわち、有効なエポックの先頭に配置されたDisplay Period Startディスプレイセットのタイミングで、クリアされる。なお、Display Change Pointディスプレイセットのタイミングでは、上述したように、字幕プレーンのうちの、リージョン内がクリアされる。
エポックが有効である間、その有効なエポックに対して、1個のパレットテーブル(CLUT(Color Look Up Table))と、最大で2個の字幕(オブジェクト)とを有効にすることができる。したがって、本実施の形態では、1画面において、最大で、2個の字幕を同時に表示することができる。
なお、同時に表示する字幕の数は2個に限定されるものではなく、1個だけ、又は3個以上の個数にすることができる。
ディスプレイセットは、字幕データの基本的な構成要素であり、セグメント(Segment)の集合である。
すなわち、ディスプレイセットは、2個以上のセグメントから構成され、ページコンポジションセグメント(Page Composition Segment)(以下、PCSともいう)から始まり、エンドセグメント(END Segment)で終わる。
PCSとエンドセグメントの間には、0個以上のデフィニションセグメント(Definition Segment)が挿入(配置)される。
ディスプレイセットの先頭のPCSには、そのディスプレイセット(の字幕)の表示を開始する表示開始時刻を表すPTS(Presentation Start Time)が付与される。したがって、ディスプレイセットは、PTSを有し、表示開始時刻を指定することができる最小の単位となる。
ディスプレイセットは、時刻が、そのディスプレイセット(が有するPCS)のPTSが表す時刻になると、有効(active)になる。
なお、有効になるディスプレイセットは、有効なエポックに含まれるディスプレイセットである。また、ディスプレイセットは、同時に2個以上が有効になることはなく、あるディスプレイセットが有効になるときには、それまで有効であったディスプレイセットは終了する(無効になる)。
図7は、ディスプレイセットが有効になるタイミングを示している。
いま、あるディスプレイセット(Display Set)#0が、PCS#0を有し、その次に(字幕が)表示されるディスプレイセット#1が、PCS#1を有することとする。
時刻が、PCS#0に付与されたPTSが表す表示開始時刻となると、そのPCS#0を有するディスプレイセット#0が有効(active)となり、そのディスプレイセット#0(の字幕)が表示される。その後、時刻が、PCS#1に付与されたPTSが表す表示開始時刻となると、ディスプレイセット#0は無効となり、代わって、PCS#1を有するディスプレイセット#1が有効となる。そして、有効となったディスプレイセット#1が表示される。
図8は、ディスプレイセットのデータ構造を示している。
上述したように、ディスプレイセットには、Display Period Startディスプレイセットと、Display Change Pointディスプレイセットとの2種類がある。
図8Aは、Display Period Startディスプレイセットのデータ構造を示しており、図8Bは、Display Change Pointディスプレイセットのデータ構造を示している。
Display Period Startディスプレイセット、及び、Display Change Pointディスプレイセットは、同一のデータ構造を有する。
すなわち、ディスプレイセットは、図6で説明したように、その先頭に配置されるPCSと、最後に配置されるエンドセグメント(以下、ENDともいう)とを有する。
つまり、ディスプレイセットは、唯一のPCSから開始し、唯一のENDで終了する。PCSは、そのPCSを有するディスプレイセット内で定義されたオブジェクトだけを参照する。
PCSとENDとの間には、デフィニションセグメント(Definition Segment)が配置される。
デフィニションセグメントとしては、リージョンを定義するリージョンデフィニションセグメント(Region Definition Segment)(以下、RDSともいう)、パレットの色を定義するCLUTデフィニションセグメント(CLUT Definition Segment)(以下、CDSともいう)、及び、字幕の画像データを格納するオブジェクトデータデフィニションセグメント(Object data Definition Segment)(以下、ODSともいう)、の3種類がある。
ディスプレイセットは、唯一のRDSを有する。RDSは、そのRDSを有するエポック内で利用可能なすべてのリージョン(字幕が表示される表示領域)を定義する。リージョンのサイズとリージョンの位置は、エポック内で変わらない。RDSでは、例えば、最大で2個のリージョンを定義することができる。
さらに、ディスプレイセットは、唯一のCDSを有する。CDSは、そのCDSを有するディスプレイセット内で利用可能な色の情報(CLUT)を定義する。CDSでは、既定値の色データを除くすべての色データ(後述するCLUT_entry())が定義される。
また、ディスプレイセットは、最大で2個のODSを有することができる。ODSでは、PCSから参照されるすべてのオブジェクト(Object)が定義される。
2種類のディスプレイセット、つまり、Display Period Startディスプレイセット(図8A)とDisplay Change Pointディスプレイセット(図8B)との違いは、エポックの先頭を表すか否かだけである。
すなわち、Display Period Startディスプレイセットは、エポックの先頭(開始)を表す。そして、Display Period Startディスプレイセットには、字幕を、エポックにおいて最初に表示するための情報が格納される。
一方、Display Change Pointディスプレイセットは、エポック内で字幕の表示が変化する場合に、その変化のための情報が格納される。
Display Period Startディスプレイセット、及び、Display Change Pointディスプレイセットは、いずれも、字幕の表示のために必要な情報を有しており、エポック内での、デコード等を含む再生の開始が可能な箇所でもある。
したがって、再生装置では、字幕データを、エポックの途中からの読み込んでも、完全な状態のDisplay Change Pointディスプレイセットを読み込むことができれば、そのDisplay Change Pointディスプレイセット(の字幕)の表示を開始することができる。
図9は、PCSのシンタクス(Syntax)の例を示している。
PCSには、主として、字幕を重畳する動画の解像度やフレームレート等の動画の属性の情報、ディスプレイセットの種類(そのPCSが含まれるディスプレイセットが、Display Period Startディスプレイセット、又は、Display Change Pointディスプレイセットのうちのいずれであるか)、字幕を構成するオブジェクト(字幕の画像データ)のid、字幕が表示されるリージョンのid、及び、オブジェクトを字幕プレーン上に配置するための座標の情報等が格納される。
すなわち、図9において、segment_typeは、セグメントの種類を表す。セグメントとしては、図6及び図8で説明したPCS,END,RDS,CDS、及びODSの5種類がある。PCSのsegment_typeには、セグメントがPCSであることを表す値がセットされる。
segment_lengthは、このsegment_lengthのフィールドの直後から、セグメント(PCS)の終わりまでの長さ(サイズ)を表す。
video_horizontal_sizeは、このPCSを含むディスプレイセットの字幕が重畳される動画の水平方向のサイズを表す。すなわち、video_horizontal_sizeには、動画の表示のための、動画(の画像データ)が描画されるメモリの記憶領域であるビデオプレーンの水平方向のピクセル数を表す値がセットされる。
video_vertical_sizeは、このPCSを含むディスプレイセットの字幕が重畳される動画の垂直方向のサイズを表す。すなわち、video_vertical_sizeには、ビデオプレーンの垂直方向のライン数を表す値がセットされる。
video_frame_rateは、このPCSを含むディスプレイセットの字幕が重畳される動画のフレームレートを表す。
page_version_numberは、PCSのバージョン番号を表す。すなわち、page_version_numberには、このPCSを含むディスプレイセットの直前に表示されるディスプレイセットに含まれるPCSのpage_version_numberの値を、例えば、1だけ増加(increment)した値がセットされる。
但し、このPCSを含むディスプレイセットの字幕のオブジェクトが、直前に表示されるディスプレイセット(以下、直前ディスプレイセットともいう)の字幕のオブジェクトと同一である場合(前に、字幕の表示に利用されたODS(のobject_data)を利用して、字幕の表示が行われる場合)には、page_version_numberには、直前ディスプレイセットに含まれるPCSのpage_version_numberの値と同一の値がセットされる。
すなわち、例えば、このPCSを含むディスプレイセットの字幕の文字が、直前ディスプレイセットの字幕の文字と、色だけが異なる文字である場合には、page_version_numberには、直前ディスプレイセットに含まれるPCSのpage_version_numberの値と同一の値がセットされる。
したがって、Display Period Startディスプレイセットのpage_version_numberには、基本的には、直前ディスプレイセットに含まれるPCSのpage_version_numberの値を1だけ増加した値がセットされる。
また、Display Change Pointディスプレイセットのpage_version_numberには、そのDisplay Change Pointディスプレイセットの字幕のオブジェクトが、直前ディスプレイセットの字幕のオブジェクトと同一であるどうかによって、その直前ディスプレイセットに含まれるPCSのpage_version_numberの値を1だけ増加した値、又は、同一の値がセットされる。
page_stateは、ディスプレイセットの種類を表す。すなわち、page_stateには、このPCSを含むディスプレイセットが、Display Period Startディスプレイセット、又は、Display Change Pointディスプレイセットのうちのいずれであるかを表す情報がセットされる。
ref_to_CLUT_idは、このPCSを含むディスプレイセット(の字幕)の表示に使用するCLUTを特定するidであるCLUT_id を表す。CLUT_id は、CDSで定義される。
number_of_region_composition_objectsは、このPCSで定義されるregion_composition_object()の数を表す。本実施の形態では、number_of_region_composition_objectsには、0ないし2の範囲の整数値をセットすることができる。
region_composition_object() は、ref_to_object_id,ref_to_region_id,object_horizontal_position、及び、object_vertical_positionを含む。region_composition_object()は、新フォーマットのファイルを再生する再生装置が、region内のピクセルを、字幕プレーンに描画するときに使用される。すなわち、例えば、region_composition_object()によって、表示する字幕のオブジェクト(ODSのobject_data)の特定や、字幕を表示するリージョンの特定等が行われる。
なお、1個のregion_composition_object() は、このPCSを含むディスプレイセット内のRDSで定義される、後述するregion()の1個に関連付けられる。1個のregion()には、例えば、最大で、2つのregion_composition_object()を関連付けることができる。
ref_to_object_idは、このPCSを含むディスプレイセットの字幕のオブジェクトを特定するidであるobject_id を表す。object_id は、ODSで定義される。
ref_to_region_idは、このPCSを含むディスプレイセット(の字幕)の表示で使用されるregionを指定(定義)するregion()を特定するidであるregion_id を表す。region_id は、RDSで定義される。
なお、上述のref_to_object_idによって特定される字幕のオブジェクト(のピクセル)は、全体が、ref_to_region_idによって特定されるregion()によって指定されるregionの範囲内になければならない。
object_horizontal_positionは、ref_to_object_idによって特定される字幕のオブジェクトの左上のピクセルの表示位置の、水平方向の座標を表す。座標の原点は、字幕プレーン(グラフィックスプレーン)の左上のピクセルの点である。object_horizontal_positionの値は、ref_to_region_idによって特定されるregion()によって指定されるregionの範囲内でなければならない。
object_vertical_positionは、ref_to_object_idによって特定される字幕のオブジェクトの左上のピクセルの表示位置の、垂直方向の座標を表す。座標の原点は、object_horizontal_positionの場合と同様に、字幕プレーンの左上のピクセルの点である。object_vertical_positionの値は、object_horizontal_positionの場合と同様に、ref_to_region_idによって特定されるregion()によって指定されるregionの範囲内でなければならない。
ここで、region_composition_object()は、このPCSを含むディスプレイセットで表示される字幕の数だけ設けられる。したがって、region_composition_object()の数を表すnumber_of_region_composition_objectsは、1画面に表示される字幕の数を表す字幕数情報ということができる。
非表示区間のディスプレイセットでは、例えば、この字幕数情報としてのnumber_of_region_composition_objectsが0とされ、存在しない字幕が表示されることで、字幕が非表示にされる。
図10は、図9のPCSのpage_stateがとる値を説明する図である。
page_stateは、2ビットの値をとる。但し、2ビットの値のうちの、00b(bは、その前の値が2進数であることを表す)と11bは、将来の拡張のために予約(reserved)されている。
page_stateが01bである場合、そのpage_stateを有するPCSを含むディスプレイセットが、Display Change Pointディスプレイセットであることを表す。
page_stateが10bである場合、そのpage_stateを有するPCSを含むディスプレイセットが、エポックの開始(先頭)のディスプレイセットであるDisplay Period Startディスプレイセットであることを表す。
図11は、RDSのシンタクスの例を示している。
RDSは、字幕が表示される、表示画面上の矩形の表示領域であるリージョン(region)の、例えば、左上の座標、並びに、横(水平)方向のピクセルサイズ、及び、縦(垂直)方向のピクセルサイズを定義する。字幕は、RDSで定義されたリージョン内にのみ表示される。
segment_typeは、図9で説明したように、セグメントの種類を表す。RDSのsegment_typeには、セグメントがRDSであることを表す値がセットされる。
segment_lengthは、このsegment_lengthのフィールドの直後から、セグメント(RCS)の終わりまでの長さを表す。
number_of_regionsは、このRDSで定義されるregion()の数を表す。本実施の形態では、number_of_regionsには、0ないし2の範囲の整数値をセットすることができる。
region()は、region_id,region_horizontal_position,region_vertical_position,region_width、及び、region_heightを含む。region()は、PCS(図9)のref_to_object_idで特定される字幕のオブジェクトを表示するリージョン(オブジェクトを描画する字幕プレーンの領域)を定義する。
なお、1個のRDSでは、最大で、2個のregion()によって2個のリージョンを定義することが可能である。但し、1個のRDSで定義される2個のリージョンには、重なりがあってはならない。
region_idは、リージョンを特定する固有の番号である。region_idの値は、例えば、00h(hは、その前の値が16進数であることを表す)、及び、01hのうちのいずれかの値でなければならない。
また、1個のRDSでは、上述したように、最大で、2個のregion()を定義することができるが、1個のRDSにおいて、2個のregion()を定義する場合には、その2個のregion()のregion_id の値それぞれは、固有の値(異なる値)でなければならない。
region_horizontal_positionは、region_idによって特定されるリージョン(region()によって定義されるリージョン)の左上のピクセルの位置の、字幕プレーン上での水平方向の座標を表す。座標の原点は、字幕プレーン左上のピクセルの点である。region_horizontal_positionの値は、0から、video_horizontal_size(図9) - 1までの範囲内でなければならない。
region_vertical_positionは、region_idによって特定されるリージョンの左上のピクセルの位置の、字幕プレーン上での垂直方向の座標を表す。座標の原点は、region_horizontal_positionの場合と同様に、字幕プレーンの左上のピクセルの点である。region_vertical_positionの値は、0から、video_vertical_size(図9) - 1の範囲内でなければならない。
region_widthは、region_idによって特定されるリージョンの横幅(水平方向の長さ)を表す。region_widthの値は、1から、video_horizontal_size(図9) - region_horizontal_position(図11)の範囲内でなければならない。
region_heightは、region_idによって特定されるリージョンの高さ(垂直方向の長さ)を表す。region_heightの値は、1から、video_vertical_size(図9) - region_vertical_position(図11)の範囲内でなければならない。
図12は、字幕(のオブジェクト)、リージョン、及び、字幕プレーンの関係を示している。
RCS(図9)のregion_composition_object()によって、表示すべき字幕(のオブジェクト)や、その字幕を表示すべきリージョン等が特定される。
すなわち、region_composition_object()が有するref_to_object_id(図9)によって、字幕のオブジェクトが特定される。
また、region_composition_object()が有するobject_horizontal_positionとobject_vertical_position(図9)によって、字幕のオブジェクトの左上のピクセルの表示位置(Destination position)の、水平方向と垂直方向の座標が、それぞれ特定される。
さらに、region_composition_object()が有するref_to_region_id(図9)によって特定されるregion()(ref_to_region_idが表す値と同一の値のregion_idを有するregion())が有するregion_horizontal_positionとregion_vertical_position(図11)によって、字幕を表示するリージョン(Region)の左上のピクセルの位置の、字幕プレーン上での水平方向と垂直方向の座標が、それぞれ特定される。
また、そのregion()が有するregion_widthとregion_heightによって、字幕を表示するリージョン(Region)の横幅と高さが、それぞれ特定される。
図13は、CDSのシンタクスの例を示している。
CDSには、CLUT(カラーパレットデータ)が格納される。CLUTは、字幕プレーン上のピクセルの色と透明度の情報を、エポック内で使用することが可能な色の数分だけ有する。
すなわち、CDSは、色データの集合であるCLUT(Color Look Up Table)を一意に特定するidであるCLUT_id、CLUTのバージョン番号であるCLUT_version_number、並びに、輝度Y、色差Cr,Cb、及び透明度Tをコンポーネントとして有する色データとその色データを特定するid (インデクス)(CLUT_entry_id)の組を定義する。
segment_typeは、図9で説明したように、セグメントの種類を表す。CDSのsegment_typeには、セグメントがCDSであることを表す値がセットされる。
segment_lengthは、このsegment_lengthのフィールドの直後から、セグメント(CDS)の終わりまでの長さを表す。
CLUT_idは、エポック内において、このCDS(に格納されたCLUT)を特定する固有の番号を表す。本実施の形態では、CLUT_idは、例えば、00hに固定されている。
CLUT_version_numberは、エポック内における、このCDS(に格納されたCLUT)のバージョン番号を表す。
エポックに新しいCLUTデフィニションセグメントが導入されると、CLUT_version_numberの値は、0にセット(リセット)される。エポック内において、前のCDSと異なるCDSが導入されると、CLUT_version_numberの値は、前のCDSのCLUT_version_numberの値を、例えば、1だけインクリメント(increment)した値にセットされる。
すなわち、エポックの最初のCDSのCLUT_version_numberには、0がセットされる。その後のCDSのCLUT_version_numberには、エポック内において、そのCDSのCLUT(CLUT_entry())が、直前のCDSのCLUTと異なる場合には、直前のCDSのCLUT_version_numberを1だけインクリメントした値がセットされ、直前のCDSのCLUTと異ならない場合には、直前のCDSのCLUT_version_numberと同一の値がセットされる。
CLUT_entry()は、CLUTのエントリ(レコード)であり、CLUT_entry_id,Y-value,Cr-value,Cb-value、及び、T-valueを有する。
CLUT_entry_idは、CLUTのエントリの番号(インデクス)を表す。CLUT_entry_idによって、ある一色が特定される。
なお、CLUT_entry_idは、例えば、8ビットであり、00hないしFFhの範囲の値をとる。但し、CLUT_entry_idの値がFFhであるエントリCLUT_entry()は、CDSに格納されない(ようにすることができる)。したがって、CLUT_entry_idの値がFFhであるCLUT_entry()は、CDSに存在しない(ようにすることができる)。
CLUT_entry_idの値がFFhであるエントリCLUT_entry()の色データは、既定値として、例えば、完全な透明色であると扱われる。
以上から、CDSには、最大で、CLUT_entry_idが、00hないしFEhの値それぞれの、255個のエントリCLUT_entry()を格納することができ、字幕の色としては、透明色(CLUT_entry_idがFFhである場合)を含めて、最大で、256色の色を、同時に使用することができる。
Y-valueは、CLUT_entry_idが表すエントリCLUT_entry()の色データの輝度Yを表す。Y-valueは、例えば、16から235までの値をとる。
Cr-valueは、CLUT_entry_idが表すエントリCLUT_entry()の色データの色差Crを表す。Cr-valueは、例えば、16から240までの値をとる。
Cb-valueは、CLUT_entry_idが表すエントリCLUT_entry()の色データの色差Cbを表す。Cb-valueは、例えば、16から240までの値をとる。
なお、輝度Yと色差Cr,Cbは、Rec. ITU-R BT.601-5、及び、Rec. ITU-R BT.709-5の規定に準拠する。
T-valueは、CLUT_entry_idが表すエントリCLUT_entry()の色データの透明度Tを表す。T-valueは、0から255までの値をとる。値が255のT-valueは、完全に不透明であることを表し、T-valueの値が小さくなるほど、透明度が大になる。そして、値が0のT-valueは、完全に透明であることを表す。
ここで、T-valueの既定値は、例えば、0に定義されている。また、Y-value,Cr-value、及び、Cb-valueについては、既定値は定義されていない。
なお、CDSには、必ずしも、CLUT_entry_idが00hないしFFhの各値の、255個のエントリCLUT_entry()すべてを格納する必要はない。
但し、上述したように、CLUT_entry_idがFFhであるエントリCLUT_entry()の色データは、完全な透明色であると扱われ、そのエントリCLUT_entry()は、CDSに格納されない(ようにすることができる)。この場合、CDSに格納されていないエントリCLUT_entry()の色データは、すべて、完全な透明色であると扱われる。
ここで、T-valueは、字幕の透明度を表す透明度情報ということができる。非表示区間のディスプレイセットでは、例えば、この透明度情報としてのT-valueが、完全に透明であることを表す値、つまり、ここでは、既定値である0とされ、見えない字幕が表示されることで、字幕が非表示にされる。
なお、字幕を非表示にするためには、CDSに格納されるCLUTのエントリCLUT_entry()のすべてのT-valueを0とする必要があるが、本実施の形態では、これは、CDSに、CLUTのエントリCLUT_entry()を、一切格納しないことによって、等価的に、行うことができる。
図14は、ODSのシンタクスの例を示している。
ODSには、字幕のオブジェクト(画像データ)、そのオブジェクトを一意に特定するidであるobject_id、及び、オブジェクトのバージョン番号(object_version_number)等が格納される。
segment_typeは、図9で説明したように、セグメントの種類を表す。ODSのsegment_typeには、セグメントがODSであることを表す値がセットされる。
segment_lengthは、このsegment_lengthのフィールドの直後から、セグメント(ODS)の終わりまでの長さを表す。
object_idは、このODSで定義される字幕のオブジェクトを特定する固有の番号である。本実施の形態では、上述したように、1個のエポックにおいて、最大で、2個の字幕を同時に表示することができ、object_idには、その最大の2個の字幕のオブジェクトを特定するために、0000h,及び0001hのうちのいずれかがセットされる。
object_version_numberは、このODSで定義されるオブジェクトのバージョン番号を表す。
object_data()には、1個の字幕の画像データ、その他のデータが格納される。
すなわち、object_data()は、object_length,object_horizontal_size,object_vertical_size、及び、encoded_data_string()を有する。
object_lengthは、このobject_lengthのフィールドの直後のフィールドからobject_data()の最後までのバイト数を表す。
object_horizontal_sizeは、オブジェクトの横幅(水平方向)のピクセル数を表す。オブジェクトの横幅は、例えば、8ピクセル以上でなければならない。したがって、object_horizontal_sizeの値は、8からvideo_horizontal_size(図9)までの間の値でなければならない。
object_vertical_sizeは、オブジェクトの高さ(垂直方向)のピクセル数を表す。オブジェクトの高さは、例えば、8ピクセル以上でなければならない。したがって、object_vertical_sizeの値は、8 からvideo_vertical_size(図9)までの間の値でなければならない。
encoded_data_string()には、字幕の画像データ(オブジェクト)を、例えば、ランレングス圧縮することによって得られるエンコードデータが格納される。
なお、エポック内で表示する字幕のオブジェクトは、例えば、エポック内に、異なるencoded_data_string()が格納されたODSを有する複数のディスプレイセットを配置することで更新(変更)することができる。
また、字幕の画像データは、画素値として、例えば、CLUT_entry_id(図13)を有する。
図15は、ENDのシンタクスの例を示している。
ENDは、セグメントの集合であるディスプレイセットの終わりを表す。
segment_typeは、図9で説明したように、セグメントの種類を表す。ENDのsegment_typeには、セグメントがENDであることを表す値がセットされる。
segment_lengthは、このsegment_lengthのフィールドの直後から、セグメント(END)の終わりまでの長さを表す。
図16は、新フォーマットのファイルを再生する再生装置の一実施の形態の構成例を示すブロック図である。
図16において、再生装置は、記録媒体11、ファイル読み込み部12、データ分配部13、ビデオデコードシステム14、ビデオフレームバッファ15、合成部16、表示フレームバッファ17、画像表示装置18、オーディオデコードシステム19、オーディオ出力装置20、及び、字幕デコードシステム30から構成される。
記録媒体11には、新フォーマットのストリームが格納されたファイル(新フォーマットのファイル)が記録されている。
なお、記録媒体11は、再生装置が内蔵する記録媒体(再生装置に対して着脱可能な記録媒体を含む)であっても良いし、外部の記録媒体(インターネット等のネットワーク上の記録媒体を含む)であっても良い。
ファイル読み込み部12は、例えば、ユーザの操作等に応じて、記録媒体11に記録された新フォーマットのファイルを読み込み(受信し)、データ分配部13に供給する。
データ分配部13は、ファイル読み込み部12からの新フォーマットのファイルに格納されたストリーム(図5)から、動画データ、及び動画データの再生に必要なメタデータを抽出し、ビデオデコードシステム14に供給(分配)する。
また、データ分配部13は、ファイル読み込み部12からの新フォーマットのファイルに格納されたストリームから、音声データ、及び音声データの再生に必要なメタデータを抽出し、オーディオデコードシステム19に供給する。
さらに、データ分配部13は、ファイル読み込み部12からの新フォーマットのファイルに格納されたストリームから、字幕データ、及び字幕データの再生に必要なメタデータを抽出し、字幕デコードシステム30に供給する。
ビデオデコードシステム14は、データ分配部13からのデータに従い、そのデータのデコード等を行うことにより、動画の画像データ(ベースバンドの画像データ)を再生し、ビデオフレームバッファ15に供給する。
ビデオフレームバッファ15は、ビデオデコードシステム14からの動画の画像データを一時記憶し、合成部16に供給する。
合成部16は、ビデオフレームバッファ15からの動画の画像データに、字幕デコードシステム30から供給される字幕の画像データを合成(重畳)し、その合成の結果得られる合成画像データを、表示フレームバッファ17に供給する。
表示フレームバッファ17は、合成部16からの合成画像データを一時記憶する。
画像表示装置18は、LCD(Liquid Crystal Display)や、有機EL(Electro Luminescence)パネル等のディスプレイで構成され、表示フレームバッファ17に記憶された合成画像データに対応する画像を表示する。
オーディオデコードシステム19は、データ分配部13からのデータに従い、そのデータのデコード等を行うことにより、音声データを再生し、オーディオ出力装置20に供給する。
オーディオ出力装置20は、図示せぬアンプやスピーカ等で構成され、オーディオデコードシステム19からの音声データに必要な処理を施し、その結果得られる音声データに対応する音声を出力する。
字幕デコードシステム30は、字幕データに従い、字幕を再生する再生手段の一例であり、データ分配部13からのデータに従い、そのデータをデコード等を行うことにより、字幕の画像データを再生し、合成部16に供給する。
すなわち、字幕デコードシステム30は、デコードバッファ31、字幕デコーダ32、及び、字幕バッファ33から構成される。
デコードバッファ31は、データ分配部13から字幕デコードシステム30に供給されるデータを一時記憶する。
すなわち、データ分配部13からデコードバッファ31に対しては、字幕データとしてのディスプレイセット、及び、メタデータとしての、字幕の表示開始時刻のデータ(例えば、字幕についての、ISO base media file formatのtime-to-sample atom(図2A)等)が供給される。
デコードバッファ31は、データ分配部13からのディスプレイセット、及び、字幕(ディスプレイセット)の表示開始時刻のデータを一時記憶する。
字幕デコーダ32は、デコードバッファ31に記憶されたディスプレイセットを読み出し、そのディスプレイセットに従い、字幕の画像データ(オブジェクト)を再生して、後段の字幕バッファ33に描画する。
すなわち、字幕デコーダ32は、例えば、デコードバッファ31から読み出したディスプレイセットのODS(図14)が有するencoded_data_string()に格納されたエンコードデータを、字幕の画像データ(オブジェクト)にデコードする。
さらに、字幕デコーダ32は、字幕の画像データを、デコードバッファ31から読み出したディスプレイセットのCDS(図13)が有するCLUT_entry()に対応する色及び透明度等で、そのディスプレイセットのPCS(図9)が有するobject_horizontal_position及びobject_vertical_position等によって特定される、字幕バッファ33の記憶領域上の位置に描画する。
字幕バッファ33は、いわゆるダブルバッファの構成を有し、字幕デコーダ32からの字幕の画像データを一時記憶して、合成部16に供給する。
すなわち、字幕バッファ33は、2個のスイッチ34及び35、並びに、2個のフレームバッファ36及び37から構成される。
スイッチ34は、フレームバッファ36及び37のうちの一方を選択し、その選択した方に対して、字幕デコーダ33から字幕バッファ33に供給される字幕の画像データを供給する。
スイッチ35は、フレームバッファ36及び37のうちの一方を選択し、その選択した方から、字幕の画像データを読み出して、合成部16に供給する。
フレームバッファ36及び37は、上述した字幕プレーンに相当し、スイッチ34から供給される字幕の画像データを一時記憶する。
ここで、スイッチ34及び35は連動して動作する。すなわち、スイッチ35が、フレームバッファ36及び37のうちの一方を選択しているとき、スイッチ34は、他方を選択する。
スイッチ35が、フレームバッファ36及び37のうちの一方を選択することにより、その選択された一方からは、字幕の画像データが読み出され、スイッチ35、合成部16、及び表示フレームバッファ17を介して、画像表示装置18に供給されることで、フレームバッファ36及び37のうちの一方に記憶された字幕の画像データに対応する画像(字幕)が、画像表示装置18に表示される。
同時に、スイッチ34が、フレームバッファ36及び37のうちの他方を選択することにより、その選択された他方に対して、画像表示装置18に、次に表示すべき字幕の画像データが記憶(描画)される。
すなわち、フレームバッファ36及び37のうちの一方に記憶された字幕の画像データ(に対応する画像としての字幕)が、画像表示装置18に表示されている間に、フレームバッファ36及び37のうちの他方の記憶内容の更新、つまり、次に表示すべき字幕の画像データの描画が行われる。
なお、スイッチ35は、デコードバッファ31に記憶された字幕の表示開始時刻のデータを参照し、時刻が、フレームバッファ36及び37のうちの一方に記憶された字幕の画像データの表示開始時刻となると、フレームバッファ36及び37のうちの一方を選択し、その選択した一方から、字幕の画像データを読み出して、合成部16に供給する。
スイッチ35が、フレームバッファ36及び37のうちの一方を選択すると、上述したように、スイッチ34は、フレームバッファ36及び37のうちの他方を選択する。
また、時刻が、フレームバッファ36及び37のうちの一方に記憶された字幕の画像データの表示開始時刻となると、字幕デコーダ32は、その一方に記憶された字幕の次に表示すべき字幕のディスプレイセットを、デコードバッファ31から読み出す。さらに、字幕デコーダ32は、デコーダバッファ31から読み出した、次に表示すべき字幕のディスプレイセットに従い、字幕の画像データのデコード等の再生を開始して、その字幕の画像データを、フレームバッファ36及び37のうちの、スイッチ34が選択している方への描画を行う。
以上の処理が繰り返されることで、画像表示装置18には、動画に重畳して、字幕が表示される。
以上のように構成される再生装置では、動画の処理(動画再生処理)、音声の処理(音声再生処理)、及び、字幕の処理(字幕再生処理)が行われる。
すなわち、動画再生処理では、ファイル読み込み部12が、記録媒体11に記録された新フォーマットのファイルから、動画データ、及び動画データの再生に必要なメタデータを読み出し、データ分配部13を介して、ビデオデコードシステム14に供給する。
ビデオデコードシステム14は、データ分配部13を介して供給されるデータのデコード等を行うことにより、動画の画像データを再生し、ビデオフレームバッファ15を介して、合成部16に供給する。
合成部16は、ビデオフレームバッファ15を介して供給される動画の画像データに、後述する字幕再生処理が行われることによって、字幕デコードシステム30から供給される字幕の画像データを合成(重畳)し、その合成の結果得られる合成画像データを、表示フレームバッファ17を介して、画像表示装置18に供給する。
画像表示装置18では、表示フレームバッファ17を介して供給される合成画像データに従い、その合成画像データに対応する画像が表示される。
一方、音声再生処理では、ファイル読み込み部12が、記録媒体11に記録された新フォーマットのファイルから、音声データ、及び音声データの再生に必要なメタデータを読み出し、データ分配部13を介して、オーディオデコードシステム19に供給する。
オーディオデコードシステム19は、データ分配部13を介して供給されるデータのデコード等を行うことにより、音声データを再生し、オーディオ出力装置20に供給する。
オーディオ出力装置20では、オーディオデコードシステム19からの音声データに対応する音声が出力(放音)される。
また、字幕再生処理では、ファイル読み込み部12が、記録媒体11に記録された新フォーマットのファイルから、字幕データ、及び字幕データの再生に必要なメタデータを読み出し、データ分配部13を介して、字幕デコードシステム30に供給する。
字幕デコードシステム30は、データ分配部13を介して供給されるデータをデコード等を行うことにより、字幕の画像データを再生し、合成部16に供給する。
上述したように、合成部16では、ビデオフレームバッファ15からの動画の画像データに、字幕デコードシステム30から供給される字幕の画像データが合成され、合成画像データが、表示フレームバッファ17を介して、画像表示装置18に供給される。
画像表示装置18では、合成画像データに対応する画像が表示され、これにより、字幕が、動画に重畳して表示される。
すなわち、図17は、図16の再生装置による字幕再生処理を説明するフローチャートである。
ステップS11において、ファイル読み込み部12は、記録媒体11に記録された新フォーマットのファイルから、字幕データの再生に必要なメタデータとしての字幕の表示開始時刻のデータを読み出し、データ分配部13を介して、字幕デコードシステム30のデコードバッファ31に供給する。
デコードバッファ31は、データ分配部13を介して供給される字幕の表示開始時刻のデータを記憶し、処理は、ステップS11からステップS12に進む。
ステップS12では、ファイル読み込み部12は、記録媒体11に記録された新フォーマットのファイルから、1個のディスプレイセットを読み出し、データ分配部13を介して、字幕デコードシステム30のデコードバッファ31に供給する。
すなわち、ファイル読み込み部12は、例えば、新フォーマットのファイルに記録されている、まだ読み出されていないディスプレイセットのうちの、ファイルへの記録順が最も早い1個のディスプレイセットを読み出し、データ分配部13を介して、字幕デコードシステム30のデコードバッファ31に供給する。
デコードバッファ31は、データ分配部13を介して供給されるディスプレイセットを一時記憶し、処理は、ステップS12からステップS13に進む。
ステップS13では、字幕デコーダ32が、デコードバッファ31に記憶されたディスプレイセットを読み出し、そのディスプレイセットに従い、字幕の画像データを再生して、字幕バッファ33に描画する。
すなわち、字幕デコーダ32は、デコードバッファ31から読み出したディスプレイセットを、字幕の画像データにデコードする。
さらに、字幕デコーダ32は、字幕の画像データを、字幕バッファ33のフレームバッファ36及び37のうちの、スイッチ34が選択している方(表示に使用されていない方)に描画する(貼り付ける)。
そして、処理は、ステップS13からステップS14に進み、字幕デコードシステム30は、直前のステップS13で描画された字幕(の画像データ)の表示開始時刻になったかどうかを判定する。
ステップS14において、直前のステップS13で描画された字幕(以下、最新字幕という)の表示開始時刻になっていないと判定された場合、処理は、ステップS14に戻る。
また、ステップS14において、最新字幕の表示開始時刻になったと判定された場合、処理は、ステップS15に進み、スイッチ35は、字幕バッファ33のフレームバッファ36及び37のうちの、最新字幕の画像データが記憶(描画)された方を選択する。
なお、このとき、スイッチ34は、フレームバッファ36及び37のうちの、スイッチ35が選択していない方を選択する。
フレームバッファ36及び37のうちの、スイッチ35が選択した方からは、最新字幕の画像データが読み出され、合成部16に供給される。
合成部16では、ビデオフレームバッファ15からの動画の画像データに、字幕デコードシステム30のスイッチ35から供給される最新字幕の画像データが合成され、その結果得られる合成画像データに対応する画像が、画像表示装置18に表示される。すなわち、最新字幕が、動画に重畳して表示される。
その後、処理は、ステップS15からステップS16に進み、ファイル読み込み部12は、記録媒体11に記録された新フォーマットのファイルから、ディスプレイセットのすべてを読み出したかどうかを判定する。
ステップS16において、新フォーマットのファイルから、ディスプレイセットのすべてを、まだ読み出していないと判定された場合、すなわち、まだ読み出していないディスプレイセットがある場合、処理は、ステップS12に戻り、ファイル読み込み部12は、上述したように、まだ読み出していないディスプレイセットのうちの1個のディスプレイセットを読み出し、すなわち、最新字幕のディスプレイセットの次のディスプレイセットを読み出し、データ分配部13を介して、デコードバッファ31に供給する。
デコードバッファ31は、データ分配部13を介して供給されるディスプレイセットを一時記憶し、処理は、ステップS12からステップS13に進む。
ステップS13では、字幕デコーダ32が、デコードバッファ31に記憶されたディスプレイセット(最新字幕のディスプレイセットの次のディスプレイセット)を読み出し、そのディスプレイセットに従い、字幕の画像データを再生して、フレームバッファ36及び37のうちの、スイッチ34が選択している方に描画する。
以下、同様の処理が繰り返される。
一方、ステップS16において、新フォーマットのファイルから、ディスプレイセットのすべてを読み出したと判定された場合、字幕再生処理は終了する。
以上のように、字幕デコードシステム30では、最新字幕の表示開始時刻になると、スイッチ35では、フレームバッファ36及び37のうちの、最新字幕の画像データが記憶された方が選択され、これにより、画像表示装置18において、最新字幕が、動画に重畳して表示される。
さらに、最新字幕の表示開始時刻となると、字幕デコーダ32において、最新字幕のディスプレイセットの次のディスプレイセットの再生が開始され、その再生によって得られる字幕の画像データが、フレームバッファ36及び37のうちの、スイッチ34が選択している方に描画される。
上述したように、スイッチ34及び35は連動して動作し、スイッチ35が、フレームバッファ36及び37のうちの一方を選択しているとき、スイッチ34は、他方を選択する。
したがって、スイッチ35が、フレームバッファ36及び37のうちの、最新字幕の画像データが記憶された方を選択し、これにより、最新字幕が、画像表示装置18に表示されているとき、スイッチ34では、フレームバッファ36及び37のうちの、最新字幕の画像データが記憶されていない方が選択され、スイッチ34が選択している方に、字幕デコーダ32によって再生された次の字幕の画像データ(最新字幕のディスプレイセットの次のディスプレイセットの字幕の画像データ)が描画される。
以上のように、字幕デコードシステム30では、あるディスプレイセット(の字幕)の表示開始時刻を、次に表示するディスプレイセットのデコード等の再生を開始するデコード開始時刻(再生開始時刻)であるとみなして、ディスプレイセットが、順次再生される。すなわち、あるディスプレイセットの表示開始時刻になると、そのディスプレイセットの字幕の表示が開始されると同時に、次に表示すべき(字幕の)ディスプレイセットがファイルから読み込まれ、再生が開始される。
なお、最初のディスプレイセット(最初に表示するディスプレイセット)については、その直前のディスプレイセットが存在しないので、最初のディスプレイセットがファイルから読み出され、デコードバッファ31に記憶されると、字幕デコーダ32は、即座に、再生を開始する。
また、字幕デコーダ32は、非表示区間のディスプレイセット、すなわち、PCS(図9)のnumber_of_region_composition_objectsが0になっているディスプレイセット、又は、CDS(図13)のT-valueが0になっているディスプレイセットについては、ステップS13において、そのディスプレイセットに従い、0個の字幕の画像データ、又は、完全に透明な字幕の画像データを再生する。
これにより、字幕は非表示になる。
以上のように、字幕の表示が一定の区間を、字幕の表示単位として、字幕データを、表示単位の字幕データであるディスプレイセットに区分するとともに、ディスプレイセットに、1画面に表示される字幕の数を表す字幕数情報としてのnumber_of_region_composition_objectsと、字幕の透明度を表す透明度情報としてのT-valueとを含ませ、字幕を非表示とする非表示区間のディスプレイセットについては、number_of_region_composition_objectsを0とするか、又は、T-valueを0として、字幕を非表示とすることにより、ISO base media file formatやMP4 file formatのフォーマットのファイルに、字幕データを(字幕を適切に表示することができるように)格納し、その字幕データを格納したファイルから、字幕の表示を適切に行うこと(ファイル(コンテンツ)の制作者が意図した字幕の表示を行うこと)ができる。
なお、新フォーマットの字幕データのデータ構造は、DVBの字幕ストリームを参考にしている。
すなわち、字幕データは、図6に示したように、最上位階層から、エポック、ディスプレイセット、及びセグメントの3階層の階層構造で、新フォーマットのファイルに格納されるが、このことは、DVBの字幕ストリームと共通する。
また、図6で説明した、字幕データが1個以上のエポックの並びから構成されること、1個のエポックが1個以上のディスプレイセットの並びから構成されること、及び、ディスプレイセットがセグメントから構成されることも、DVBのエポック、ディスプレイセット、及びセグメントとほぼ共通する。
しかしながら、DVBの字幕ストリームを、そのまま、ISO Base Media File Format(MP4 file formatについても同様)のファイルに格納することはできない。
一方、新フォーマットの字幕データのデータ構造は、ISO Base Media File Formatのファイルに格納するために、図9や、図11、及び図13等で説明したセグメントの内容(syntax)、並びに、図10で説明したディスプレイセットの種類等の点で、DVBの字幕ストリームとは異なっている。
さらに、新フォーマットの字幕データのデータ構造は、1個のディスプレイセットがISO Base Media File Formatの1サンプルに対応する点でも、DVBの字幕ストリームとは異なる。これも、字幕データを、ISO Base Media File Formatのファイルに格納するためである。
なお、DVBの字幕ストリームについては、例えば、ETSI EN 300 743, Digital Video Broadcasting (DVB); Subtitling systemsに記載されている。
次に、以上のように、字幕データを、ディスプレイセットとして、ISO base media file format等のファイルに格納した場合に、そのディスプレイセット(の字幕)のデコード等の再生を開始するデコード開始時刻と、表示を開始する表示開始時刻とを、メタデータとして、併せて、ファイルに格納することができれば、字幕デコードシステム30(図16)では、デコード開始時刻に、ディスプレイセットのデコード等の再生を開始し、表示開始時刻に、字幕の表示を開始すれば良い。
しかしながら、ISO base media file formatでは(MP4 file formatでも同様)、表示開始時刻を、メタデータとして管理することはできるが、デコード開始時刻、さらには、デコード等の再生に要する必要時間(デコード時間)を、メタデータとして管理する方法が定義されていない。
なお、例えば、MPEG2ビデオのDTS(Decode Time Stamp)は、デコード開始時刻であるが、MPEG2ビデオでは、DTSと、PTS(Present Time Stamp)とが等しいピクチャがあることから、デコーダモデル上は、ピクチャのデコードに要するデコード時間そのものは0であるとされている。ここで、DTSとPTSとの差は、Bピクチャ(Bidirectionally Predictive Picture)のリオーダリングのために必要な時間であり、デコード時間そのものは考慮されていない。
ISO base media file formatに、字幕データとしてのディスプレイセットを格納した場合、上述したように、ディスプレイセット(の字幕)の表示開始時刻は管理することができるが、ディスプレイセットのデコード等の再生を開始するデコード開始時刻や、デコード等の再生に要する時間である必要時間は、管理することができない。
したがって、必要時間を考慮することなく、ISO base media file formatに、ディスプレイセットを格納すると、ディスプレイセットの再生が、そのディスプレイセットの表示開始時刻に間に合わずに、字幕を適切に表示することができないこと(字幕の表示が破綻すること)が生じうる。
すなわち、図16の再生装置では、新フォーマットのファイルに格納されたメタデータから、ディスプレイセットの表示開始時刻は認識することができる。しかしながら、再生装置は、その表示開始時刻に、ディスプレイセットの再生が間に合うようにするために、いつから再生を開始すればよいのかは、認識することができない。
そのため、図16の再生装置では、例えば、上述したように、ディスプレイセットのデコード開始時刻として、そのディスプレイセットの直前のディスプレイセットの表示開始時刻を採用し、あるディスプレイセットの表示開始時刻になると、次のディスプレイセット(次に表示すべき字幕のディスプレイセット)のデコード等の再生を開始する。
しかしながら、ディスプレイセットのデコード等の再生に要する必要時間を考慮することなく、ディスプレイセットが、新フォーマットのファイルに格納されている場合には、あるディスプレイセットの表示開始時刻から、次のディスプレイセットの表示開始時刻までに、次のディスプレイセットのデコード等の再生が完了するとは限らず、字幕の表示に、その字幕の再生が間に合わないことがあり得る。
そこで、以下では、ISO base media file formatに、ディスプレイセットを格納することで、新フォーマットのファイルを生成する生成装置において、そのファイルの生成に一定の制約(以下、ファイル生成制約ともいう)を課すことで、ファイルからの字幕の再生を、その字幕の表示に間に合うように行う方法について説明する。
なお、新フォーマットのファイルを再生する再生装置としては、図16の再生装置、すなわち、ディスプレイセットのデコードを行う字幕デコーダ32が1個だけの再生装置を(1個のディスプレイセットのデコードしか行うことができず、同時に、複数のディスプレイセットのデコードを行うことができない再生装置)採用することを前提とする。
図16の再生装置は、1個の字幕デコーダ32しか有しないため、字幕の再生を、その表示に間に合うようにするには、第1の条件として、あるディスプレイセットのデコードに要するデコード時間と、他のディスプレイセットのデコード時間とが重ならないこと、及び、第2の条件として、字幕デコーダ32によるディスプレイセットのデコードが完了するデコード完了時刻が、そのディスプレイセットの表示開始時刻よりも前の時刻であること、が必要である。
仮に、新フォーマットのファイルにおいて、ディスプレイセットの表示開始時刻とデコード開始時刻とを管理(格納)することができるのであれば、生成装置において、第1及び第2の条件を満たすように、ディスプレイセットを格納したファイルを生成することにより、再生装置では、字幕の再生を、その表示に間に合うようにすることができる。
すなわち、この場合、再生装置では、新フォーマットのファイルにおけるデコード開始時刻に、ディスプレイセットのデコード等の再生を開始し、表示開始時刻に、表示を開始するだけで、字幕の再生を、その表示に間に合うようにすることができる。
図18は、再生装置が、第1及び第2の条件を満たすように生成されたファイルから行う、ディスプレイセットの再生、及び、表示のシーケンスを示している。
再生装置では、デコード開始時刻となると、ディスプレイセットのデコード等の再生が開始される。そして、表示開始時刻となると、ディスプレイセット(の字幕)の表示が開始される。
デコード開始時刻、及び、表示開始時刻は、第1及び第2の条件を満たすので、再生装置では、上述したように、ディスプレイセットの再生と表示を、それぞれ、デコード開始時刻と表示開始時刻に従って行うだけで、字幕の再生を、その表示に間に合うようにすることができる。
ところで、ディスプレイセットの再生に要する必要時間は、ほとんど、デコードに要する時間である。このデコードに要する時間、ひいては、必要時間は、字幕のエンコードデータ(encoded_data_string()(図14))のエンコード方式や、字幕の大きさ(ピクセル数)、字幕の色数、字幕(の画像)の複雑さ、字幕を重畳する動画のフレームレート、解像度等の、様々な要素に依存するので、ディスプレイセット(サンプル)ごとに異なる。
生成装置において、このような、様々な要素に依存し、ディスプレイセットごとに異なる必要時間に応じて、第1及び第2の条件を満たすデコード開始時刻、及び、表示開始時刻を決める処理を行うのでは、その処理の負担が大になる。
なお、表示開始時刻は、一般には、コンテンツの制作時に決められるので、生成装置では、実質的には、第1及び第2の条件を満たすデコード開始時刻を決めることになる。
また、ISO Base Media File Formatのファイルに字幕データを格納した、新フォーマットのファイルを再生する再生装置にとって、上述のような、サンプルのデコード開始時刻を必要とするデコーダモデルは適していない。
すなわち、ISO Base Media File Formatでは、サンプルであるディスプレイセットの表示開始時刻は、メタデータとしてのtime-to-sample atom(図2A)のduration(sample durationに)よって求めることができるが、サンプルのデコード開始時刻を表現する方法がない。
そのため、生成装置において、第1及び第2の条件を満たすデコード開始時刻、及び、表示開始時刻を決めても、新フォーマットのファイルを再生する再生装置には、生成装置で決めたデコード開始時刻を認識させることができない。
したがって、ファイル生成制約として、第1及び第2の条件を満たすデコード開始時刻、及び、表示開始時刻を決めることを課すことを採用するのは、適切でない。
そこで、生成装置の処理の負担が大となることを抑制し、かつ、新フォーマットのファイルを再生する再生装置において、字幕の再生を、その表示に間に合うようにすることを、容易に行うために、ファイル生成制約として、以下のルールR1ないしR6を採用することとする。
ルールR1は、ディスプレイセットのデコード等の再生を開始するデコード(再生)開始時刻を、直前に表示される(字幕の)ディスプレイセットの表示を開始する表示開始時刻と同一とすることである。
ルールR2は、あるディスプレイセットに注目したときに、その注目ディスプレイセット(注目しているディスプレイセット)の直前に表示されるディスプレイセット(直前ディスプレイセット)の表示開始時刻から、注目ディスプレイセットの表示開始時刻(の直前)までの時間(直前ディスプレイセットの表示開始時刻と、注目ディスプレイセットの表示開始時刻との間の時間)を、注目ディスプレイセットの再生に使用可能な使用可能時間Tとすることである。
ルールR3は、直前ディスプレイセットが、非表示区間のディスプレイセットである場合には、ルールR2を適用せずに、注目ディスプレイセット(の字幕)の直前に表示されるディスプレイセット(非表示区間のディスプレイセット)の、さらに直前に表示されるディスプレイセットの表示開始時刻から、注目ディスプレイセットの表示開始時刻までの時間を、注目ディスプレイセットの使用可能時間Tとすることである。
ルールR4は、注目ディスプレイセットのデコード等の再生に要する必要時間Tminを、注目ディスプレイセットの使用可能時間Tの最小値として、使用可能時間Tが、必要時間Tminを下回ってはいけないことである。
ルールR4によれば、注目ディスプレイセットの使用可能時間Tが、必要時間Tminを下回らないので、注目ディスプレイセットのデコード等の再生が、使用可能時間Tの間に完了すること、つまり、注目ディスプレイセットの再生が、その表示開始時刻までに完了することが保証される。
したがって、注目ディスプレイセットの再生を、その表示に間に合うように行うことができる。さらに、注目ディスプレイセットのデコード等の再生が完了しないうちに、注目ディスプレイセットの表示開始時刻、すなわち、注目ディスプレイセットの次のディスプレイセットのデコード開始時刻となって、ディスプレイセットのデコード等の再生の処理が破綻することを防止することができる。
なお、連続する2個のディスプレイセットの表示開始時刻の間隔を、ディスプレイセット間隔ということとすると、使用可能時間Tは、原則として、ディスプレイセット間隔となる。また、必要時間Tminは、ディスプレイセットの再生を、その表示に間に合うように行うことを保証するための、ディスプレイセット間隔の最小値である。
ルールR4によれば、あるディスプレイセットを、表示時間軸上のどこに配置するかが、そのディスプレイセット単体に関するパラメータではなく、直前ディスプレイセット(ルールR3が適用される場合には、直前ディスプレイセットの、さらに直前に表示されるディスプレイセット)の表示時間(ディスプレイセット間隔)で制約される。
ルールR5は、注目ディスプレイセットの必要時間Tminは、注目ディスプレイセットのエンコードデータ(encoded_data_string()(図14))のサイズのみに依存するとみなすことである。
すなわち、ディスプレイセットの必要時間Tminは、現実には、字幕(の画像データ)をエンコードデータにエンコードするエンコード方式や、字幕の画像データのサイズ、字幕(の画像)の大きさ(横のピクセル数×縦のピクセル数)、字幕の色数、字幕(の画像)の複雑さ、字幕の形状(字幕が縦長であるか、又は横長であるか等)、字幕を表示する表示位置、さらには、字幕を重畳する動画のフレームレート、スキャンタイプ(インタレースであるか、又はプログレッシブであるか)、ビットレート(ピークレートおよび平均レート)等の様々な要素の影響を受ける。
このような様々な要素をすべて考慮して、必要時間Tminを求める場合には、必要時間Tminとして、正確な値を求めることができるが、その反面、必要時間Tminを求める処理の負担が大になる。
また、このような様々な要素をすべて考慮して、必要時間Tminを求めるには、例えば、その様々な要素を引数として、正確な値の必要時間Tminを出力する関数(モデル)を求める必要があるが、そのような関数を求めることは困難である。
そこで、注目ディスプレイセットの必要時間Tminが、注目ディスプレイセットのエンコードデータのサイズのみに依存するとみなすルールR5を採用することにより、必要時間Tminを容易に求めることができる。
ルールR6は、注目ディスプレイセットが、ストリームの最初に表示されるディスプレイセットである場合には、ルールR1ないしR5を適用しないことである。
すなわち、新フォーマットのファイルには、動画の表示区間の全体にわたって表示される字幕のディスプレイセットが格納されるため、最初に表示されるディスプレイセットの表示開始時刻は、動画の表示が開始される時刻に一致する(一致しなければならない)。
そして、最初に表示されるディスプレイセットの必要時間は、いわゆるスタートアップディレイに含まれることとなるため、そもそも、ディスプレイセットの再生が、その表示に間に合わないことがなく、ファイル生成制約を課す必要がない。
ルールR6は、例えば、図4の最初に表示されるディスプレイセット#1に適用される。図4のディスプレイセット#1は、非表示区間のディスプレイセットであるが、ルールR6は、非表示区間でない区間(表示区間)のディスプレイセットにも適用される。
図19を参照して、ルールR1ないしR3について、さらに説明する。
なお、以下では、注目ディスプレイセットを、カレントディスプレイセット(current Display Set)ともいい、直前ディスプレイセットを、プリシーディングディスプレイセット(preceding Display Set)ともいう。
図19Aは、プリシーディングディスプレイセットが、非表示区間のディスプレイセットでない場合の、プリシーディングディスプレイセットと、カレントディスプレイセットとの並びを示している。
カレントディスプレイセット(の字幕)は、カレントディスプレイセットの表示開始時刻から次に表示されるディスプレイセット(フォローイングディスプレイセット)の表示開始時刻まで表示される。この、カレントディスプレイセットの表示開始時刻からフォローイングディスプレイセットの表示開始時刻までの時間を、カレントディスプレイセットがアクティブ(active)な時間(期間)という。
プリシーディングディスプレイセットは、そのプリシーディングディスプレイセットの表示開始時刻から、カレントディスプレイセットの表示開始時刻までの時間表示されるので、この時間が、プリシーディングディスプレイセットがアクティブな時間である。
ディスプレイセットの再生が、その表示に間に合うように行われることを前提とすると、ルールR1、すなわち、ディスプレイセットのデコード開始時刻を、直前ディスプレイセットの表示開始時刻と同一とするルールは、カレントディスプレイセットのデコード等の再生に要する時間が、プリシーディングディスプレイセットがアクティブな時間、又はそれ以下であるとモデル化を行うことに相当する。
すなわち、ディスプレイセットの再生が、その表示に間に合うように行われているのであれば、プリシーディングディスプレイセットの表示開始時刻においては、そのプリシーディングディスプレイセットの再生が必ず完了していなければならない。
したがって、プリシーディングディスプレイセットの表示開始時刻においては、字幕デコーダ32(図16)は、次のディスプレイセットであるカレントディスプレイセットのデコードを開始することができる。そして、カレントディスプレイセットのデコード等の再生も、カレントディスプレイセットの表示開始時刻までに、つまり、プリシーディングディスプレイセットがアクティブな時間の間に、必ず完了していなければならない。
なお、カレントディスプレイセットの再生が、その表示開始時刻よりも前に完了した場合には、字幕デコーダ32は、カレントディスプレイセットの再生の完了後、その表示開始時刻までの間、アイドル状態(データ待ち)(フォローイングディスプレイセットのデコードの開始を待つ状態)になる。
ルールR2は、ルールR1から導かれるルールである。
すなわち、ルールR1によれば、カレントディスプレイセットの再生は、プリシーティングディスプレイセットの表示開始時刻から、プリシーディングディスプレイセットがアクティブな時間の間に完了していなければならない。
したがって、カレントディスプレイセットの再生に使用可能な使用可能時間Tは、プリシーディングディスプレイセットがアクティブな時間(プリシーディングディスプレイセットの表示開始時刻と、カレントディスプレイセットの表示開始時刻との間の時間)となり、ルールR2が導かれる。
図19Bは、ルールR3を説明する図である。
いま、連続して表示される3個のディスプレイセットのうちの、最後に表示されるディスプレイセットが、カレントディスプレイセットであるとする。
この場合、連続して表示される3個のディスプレイセットのうちの、2番目に表示されるディスプレイセットがプリシーディングディスプレイセットとなる。
ここで、連続して表示される3個のディスプレイセットのうちの、1番目に表示されるディスプレイセット、つまり、プリシーディングディスプレイセットの直前に表示されるディスプレイセットを、セカンドプリシーディングディスプレイセットという。
いま、プリシーディングディスプレイセットが、非表示区間のディスプレイセット、つまり、セカンドプリシーディングディスプレイセット(の字幕)を消去するためだけのディスプレイセットであるとする。
プリシーティングディスプレイセットは、非表示区間のディスプレイセットであるから、字幕デコーダ32でデコードしなければならないエンコードデータ(encoded_data_string()(図14))は存在しない(エンコードデータをデコードする必要はない)。
したがって、字幕デコーダ32は、セカンドプリシーディングディスプレイセットがアクティブな時間に、プリシーディングディスプレイセットをデコードする必要がない。よって、字幕デコーダ32は、カレントディスプレイセットのデコードを、プリシーディングディスプレイセットの表示開始時刻ではなく、セカンドプリシーディングディスプレイセットの表示開始時刻から開始することができる。
以上から、カレントディスプレイセットの再生に使用可能な使用可能時間Tは、セカンドプリシーディングディスプレイセットの表示開始時刻から、カレントディスプレイセットの表示開始時刻までの時間となる。
すなわち、直前ディスプレイセットが、非表示区間のディスプレイセットである場合には、注目ディスプレイセットの直前に表示されるディスプレイセット(非表示区間のディスプレイセット)の、さらに直前に表示されるディスプレイセットの表示開始時刻から、注目ディスプレイセットの表示開始時刻までの時間を、注目ディスプレイセットの使用可能時間TとするルールR3が導かれる。
なお、プリシーティングディスプレイセットが、非表示区間のディスプレイセットである場合に、セカンドプリシーディングディスプレイセットが、非表示区間のディスプレイセットであることはないこととする。
すなわち、仮に、連続する2個のディスプレイセットが、いずれも、非表示区間のディスプレイセットである場合には、その2個のディスプレイセットは、1個の非表示区間のディスプレイセットにまとめることができる。このようにディスプレイセットをまとめることで、プリシーティングディスプレイセットが、非表示区間のディスプレイセットである場合には、セカンドプリシーディングディスプレイセットは、必ず、非表示区間のディスプレイセットでないディスプレイセットとなる。
次に、図20を参照して、ルールR5による必要時間Tminの求め方について説明する。
ディスプレイセットの再生に要する必要時間Tminは、エンコードデータのデコードに要する時間とみなすことができる。但し、エンコードデータのデコードに要する時間は、上述したように、様々な要素に依存するので、正確にモデル化をするのは困難である。
ルールR5では、注目ディスプレイセットの必要時間Tminが、注目ディスプレイセットのエンコードデータ(encoded_data_string()(図14))のサイズのみに依存するとみなし、これにより、必要時間Tminのモデル化を容易に行う。
ルールR5によれば、ディスプレイセットの必要時間Tminは、そのディスプレイセットのエンコードデータのサイズsを引数とする関数F(s)によって、式Tmin=F(s)で表され、モデル化では、関数F(s)を求めることとなる。
関数F(s)は、字幕デコードシステム30(図16)の仕様、特に、字幕デコーダ32の性能に依存する。
図20は、ある性能の字幕デコーダ32について、シミュレーションによって求められた関数F(s)を示している。
関数F(s)は、エンコードデータのサイズsを引数として、必要時間Tminを出力するから、エンコードデータのサイズsと必要時間Tminとの関係であるサイズ時間関係を表しているということができる。
図20において、横軸は、エンコードデータのサイズsを、バイトを単位として表しており、縦軸は、必要時間Tminを、動画のフレーム(ビデオフレーム)の数を単位として表している。
なお、ディスプレイセット(の字幕)の表示が開始されるタイミングは、字幕が重畳される動画のフレームが表示されるタイミングに一致するため(一致させる必要があるため)、図20では、縦軸の必要時間Tminの単位を、フレームの数としてある。
また、横軸のエンコードデータのサイズsは、ODS(図14)に格納されるencoded_data_string()のバイトサイズである。
シミュレーションによれば、必要時間Tminは、エンコードデータのサイズsが大になるほど大になることが確認され、図20は、そのシミュレーションの結果に基づいて作成されたサイズ時間関係を示している。
なお、図20のサイズ時間関係においては、ディスプレイセットの再生が、その表示に確実に間に合うように、必要時間Tminは、シミュレーションで得られた値に、いわゆるマージンを上乗せした値になっている。マージンは、ディスプレイセットの再生が、その表示に間に合うことの確実性を考慮して決めることができる。
次に、図21は、上述のルールR1ないしR6に従って、新フォーマットのファイルを生成する生成装置の一実施の形態の構成例を示すブロック図である。
生成装置は、字幕表示時刻データベース40、字幕処理部50、メタデータ処理部61、画像処理部62、音声処理部63、及び、データ合成部64から構成される。
字幕表示時刻データベース40は、字幕の表示開始時刻を記憶している。ここで、字幕の表示開始時刻は、例えば、図21の生成装置によってファイル(コンテンツ)を制作する制作者等によって、あらかじめ決められる。
字幕処理部50には、字幕の画像データが供給される。字幕処理部50は、そこに供給される字幕の画像データを処理することにより、字幕のサンプル、つまり、ディスプレイセットを生成し、データ合成部64に供給する。
すなわち、字幕処理部50は、字幕エンコーダ51、判定部52、サイズ時間関係データベース53、及び、エラー処理部54から構成される。
字幕エンコーダ51には、字幕の画像データとしての、例えば、1枚(画面分)のビットマップのデータが、適宜供給される。
字幕エンコーダ51は、そこに供給される字幕の画像データをエンコードすることにより、新フォーマットのファイルに格納される字幕データを生成して、判定部52に供給する。
すなわち、字幕エンコーダ51は、そこに供給される字幕の画像データをエンコードすることにより、エンコードデータ(encoded_data_string()(図14))を生成する。そして、字幕エンコーダ51は、そのエンコードデータを用いて、字幕のサンプルであるディスプレイセットを生成し、注目ディスプレイセットとして、判定部52に供給する。
字幕エンコーダ51は、さらに、字幕表示時刻データベース40に記憶された字幕(ディスプレイセット)の表示開始時刻を参照して、注目ディスプレイセットの使用可能時間Tを求め、判定部52に供給する。
なお、字幕エンコーダ51で生成されるディスプレイセットが、非表示区間のディスプレイセットである場合には、エンコードデータは不要とすることができる。
判定部52は、字幕エンコーダ51からの注目ディスプレイセットに含まれるエンコードデータのサイズsを検出する。さらに、判定部52は、注目ディスプレイセットに含まれるエンコードデータのサイズsに基づいて、例えば、図16の再生装置による、注目ディスプレイセットの再生が、その表示に間に合うかどうかを判定する。
すなわち、判定部52は、サイズ時間関係データベース53に記憶されたサイズ時間関係としての関数F(s)(図20)に従い、注目ディスプレイセットに含まれるエンコードデータのサイズsから、注目ディスプレイセットについての必要時間Tminを求める。
さらに、判定部52は、字幕エンコーダ51からの、注目ディスプレイセットの使用可能時間Tと、注目ディスプレイセットに含まれるエンコードデータのサイズsから求められた必要時間Tminとの大小関係を求め、その大小関係に基づいて、注目ディスプレイセットの再生が、その表示に間に合うかどうかを判定する。
具体的には、判定部52は、注目ディスプレイセットの使用可能時間Tが、必要時間Tmin以上である場合には、注目ディスプレイセットの再生が、その表示に間に合うと判定する。また、判定部52は、注目ディスプレイセットの使用可能時間Tが、必要時間Tmin以上でない場合には、注目ディスプレイセットの再生が、その表示に間に合わないと判定する。
判定部52は、注目ディスプレイセットの再生が、その表示に間に合うと判定した場合、注目ディスプレイセットを、データ合成部64に供給する。
また、判定部52は、注目ディスプレイセットの再生が、その表示に間に合わないと判定した場合、エラーを表すエラー情報を出力する。
サイズ時間関係データベース53は、図20で説明したようにして、あらかじめ求められたサイズ時間関係としての関数F(s)を記憶している。
エラー処理部54は、判定部52によるエラー情報の出力に応じて、ディスプレイセットの再生が、その表示に間に合うようにするためのエラー処理を行う。
すなわち、例えば、エラー処理部54は、判定部52がエラー情報を出力すると、例えば、注目ディスプレイセットの使用可能時間Tを大にする処理を、エラー処理として行う。
ここで、エラー処理部54は、例えば、注目ディスプレイセットの表示開始時刻を遅らせることにより、又は、注目ディスプレイセットの直前のディスプレイセットの表示開始時刻を早めることにより、注目ディスプレイセットの使用可能時間Tを大にする。
すなわち、エラー処理部54は、注目ディスプレイセットの表示開始時刻を遅らせること、又は、注目ディスプレイセットの直前のディスプレイセットの表示開始時刻を早めることを指示する制御信号を、字幕エンコーダ51に供給する。
字幕エンコーダ51は、エラー処理部54から制御信号が供給された場合、その制御信号に従って、注目ディスプレイセットの表示開始時刻を遅らせるか、又は、注目ディスプレイセットの直前のディスプレイセットの表示開始時刻を早める時刻調整を行う。さらに、字幕エンコーダ51は、時刻調整後の表示開始時刻を用いて、注目ディスプレイセットの使用可能時間Tを求め直し、判定部52に供給する。
ここで、上述したように、注目ディスプレイセットの表示開始時刻を遅らせるか、又は、注目ディスプレイセットの直前のディスプレイセットの表示開始時刻を早める時刻調整を行うことで、注目ディスプレイセットの使用可能時間Tは、大にすることができる。
但し、注目ディスプレイセットの表示開始時刻を遅らせた場合には、注目ディスプレイセットの次のディスプレイセットの使用可能時間Tが小となる。また、注目ディスプレイセットの直前のディスプレイセットの表示開始時刻を早めた場合には、その直前のディスプレイセットの使用可能時間Tが小となる。
注目ディスプレイセットの次のディスプレイセットの使用可能時間Tが小となることによって、その使用可能時間Tが、注目ディスプレイセットの次のディスプレイセットの必要時間Tmin以上とならなくなる場合には、注目ディスプレイセットの次のディスプレイセットの再生が、その表示に間に合わなくなる。
また、注目ディスプレイセットの直前のディスプレイセットの使用可能時間Tが小となることによって、その使用可能時間Tが、注目ディスプレイセットの直前のディスプレイセットの必要時間Tmin以上とならなくなる場合には、注目ディスプレイセットの直前のディスプレイセットの再生が、その表示に間に合わなくなる。
そこで、注目ディスプレイセットの表示開始時刻を遅らせることによって、注目ディスプレイセットの次のディスプレイセットの使用可能時間Tが、その必要時間Tmin以上とならなくなる場合、及び、注目ディスプレイセットの直前のディスプレイセットの表示開始時刻を早めることによって、注目ディスプレイセットの直前のディスプレイセットの使用可能時間Tが、その必要時間Tmin以上とならなくなる場合には、エラー処理部54は、別のエラー処理を行う。
すなわち、エラー処理部54は、注目ディスプレイセットの必要時間Tminを小にする処理を、エラー処理として行う。
ここで、エラー処理部54は、例えば、字幕エンコーダ51に、エンコードのパラメータを変更させて、字幕エンコーダ51で得られる注目ディスプレイセットのエンコードデータのサイズを小にすることにより、注目ディスプレイセットの必要時間Tminを小にする。
すなわち、エラー処理部54は、エンコードの対象とする字幕の画像データの色数を小にすることや、その画像データの大きさ(ピクセル数)を小にする(間引く)こと等を指示する制御信号を、字幕エンコーダ51に供給する。
字幕エンコーダ51は、エラー処理部54から制御信号が供給された場合、その制御信号に従って、エンコードの対象とする字幕の画像データの色数を小にすることや、その画像データの大きさを小にする処理を行い、その処理後の字幕の画像データを、エンコードデータにする再エンコードを行う。そして、字幕エンコーダ51は、再エンコードの結果得られたエンコードデータを用いて、注目ディスプレイセットを再生成し、判定部52に供給する。
判定部52は、上述したように、サイズ時間関係データベース53に記憶されたサイズ時間関係としての関数F(s)(図20)に従い、注目ディスプレイセットに含まれるエンコードデータのサイズsから、注目ディスプレイセットの必要時間Tminを求める。
いまの場合、注目ディスプレイセットに含まれるエンコードデータは、色数や大きさが小の字幕の画像データをエンコードして得られるデータであるので、そのサイズsは小になり、したがって、そのサイズsから、サイズ時間関係に従って求められる必要時間Tminも小となる。
メタデータ処理部61には、メタデータ(付加情報)が供給される。メタデータ処理部61は、そこに供給されるメタデータに必要な処理を施し、データ合成部64に供給する。
画像処理部62には、動画データが供給される。画像処理部62は、そこに供給される動画データに必要な処理を施し、データ合成部64に供給する。
音声処理部63には、音声データ(例えば、動画データに付随する音声データ)が供給される。音声処理部63は、そこに供給される音声データに必要な処理を施し、データ合成部64に供給する。
データ合成部64は、メタデータ処理部61からのメタデータ、画像処理部62からの動画データ、音声処理部63からの音声データ、及び、字幕処理部50(の判定部52)からの字幕データとしてのディスプレイセットを合成(多重化)し、その合成の結果得られるストリームを格納した新フォーマットのファイルを生成して出力する。
なお、メタデータには、字幕表示時刻データベース40に記憶されたディスプレイセットの表示開始時刻が含まれるが、この表示開始時刻は、データ合成部64において、例えば、ISO base media file formatのtime-to-sample atom(図2A)等の形で、新フォーマットのファイルに格納される。
また、エラー処理部54において行われるエラー処理によって、ディスプレイセットの表示開始時刻の時刻調整が行われた場合には、その時刻調整後の表示開始時刻が、新フォーマットのファイルに格納される。
次に、図22を参照して、図21の生成装置の字幕処理部50で行われる処理(字幕生成処理)について説明する。
字幕処理部50では、字幕エンコーダ51が、字幕の画像データとしての、例えば、1枚(画面分)のビットマップのデータが供給されるのを待って、ステップS51において、その字幕の画像データを取得(受信)して、処理は、ステップS52に進む。
ステップS52では、字幕エンコーダ51は、字幕表示時刻データベース40に記憶された字幕(ディスプレイセット)の表示開始時刻を参照して、注目ディスプレイセットの使用可能時間Tを求める。そして、字幕エンコーダ51は、注目ディスプレイセットの使用可能時間Tを、その表示開始時刻とともに、判定部52に供給して、処理は、ステップS52からステップS53に進む。
ステップS53では、字幕エンコーダ51は、直前のステップS51で取得した字幕の画像データをエンコード(符号化)することにより、エンコードデータ(encoded_data_string()(図14))を生成する。さらに、字幕エンコーダ51は、そのエンコードデータを用いて、字幕のサンプルとなるディスプレイセットを生成し、注目ディスプレイセットとして、判定部52に供給して、処理は、ステップS53からステップS54に進む。
ステップS54では、判定部52は、字幕エンコーダ51からの注目ディスプレイセットに含まれるエンコードデータのサイズsを検出する。さらに、判定部52は、注目ディスプレイセットに含まれるエンコードデータのサイズsから、サイズ時間関係データベース53に記憶されたサイズ時間関係(図20)に従い、注目ディスプレイセットの必要時間Tminを求める。
そして、処理は、ステップS54からステップS55に進み、判定部52は、注目ディスプレイセットの使用可能時間Tが、注目ディスプレイセットの必要時間Tmin以上であるかどうかを判定する。
ステップS55において、注目ディスプレイセットの使用可能時間Tが、注目ディスプレイセットの必要時間Tmin以上でないと判定された場合、すなわち、注目ディスプレイセットの再生が、その表示に間に合わない場合、処理は、ステップS56に進み、判定部52は、エラー情報を出力して、処理は、ステップS57に進む。
ステップS57では、エラー処理部54が、注目ディスプレイセットの表示開始時刻を遅らせるか、又は、注目ディスプレイセットの直前のディスプレイセットの表示開始時刻を早める時刻調整を行うことで、注目ディスプレイセットの使用可能時間Tを変更すること(大とすること)が可能であるかどうかを判定する。
ここで、時刻調整を行うことで、注目ディスプレイセットの使用可能時間Tを大とした場合には、図20で説明したように、注目ディスプレイセットの次のディスプレイセットの使用可能時間Tが小となることによって、その使用可能時間Tが、注目ディスプレイセットの次のディスプレイセットの必要時間Tmin以上とならなくなり、注目ディスプレイセットの次のディスプレイセットの再生が、その表示に間に合わなくなること、又は、注目ディスプレイセットの直前のディスプレイセットの使用可能時間Tが小となることによって、その使用可能時間Tが、注目ディスプレイセットの直前のディスプレイセットの必要時間Tmin以上とならなくなり、注目ディスプレイセットの直前のディスプレイセットの再生が、その表示に間に合わなくなることがある。
ステップS57では、上述のような、ディスプレイセットの再生が、その表示に間に合わなくなることが生じる場合に、時刻調整を行うことで、注目ディスプレイセットの使用可能時間Tを大とすることが可能でないと判定される。一方、上述のような、ディスプレイセットの再生が、その表示に間に合わなくなることが生じない場合には、ステップS57では、時刻調整を行うことで、注目ディスプレイセットの使用可能時間Tを大とすることが可能であると判定される。
ステップS57において、時刻調整を行うことで、注目ディスプレイセットの使用可能時間Tを大とすることが可能であると判定された場合、処理は、ステップS58に進み、エラー処理部54は、注目ディスプレイセットの表示開始時刻を遅らせること、又は、注目ディスプレイセットの直前のディスプレイセットの表示開始時刻を早めることを指示する時刻調整の制御信号を、字幕エンコーダ51に供給する。
字幕エンコーダ51は、エラー処理部54から時刻調整の制御信号が供給された場合、その制御信号に従って、注目ディスプレイセットの表示開始時刻を遅らせるか、又は、注目ディスプレイセットの直前のディスプレイセットの表示開始時刻を早める時刻調整を行う。さらに、字幕エンコーダ51は、時刻調整後の表示開始時刻を用いて、注目ディスプレイセットの使用可能時間Tを求め直し、判定部52に供給する。なお、時刻調整の対象が、注目ディスプレイセットの表示開始時刻である場合には、字幕エンコーダ51は、注目ディスプレイセットの、時刻調整後の表示開始時刻も、判定部52に供給する。
その後、処理は、ステップS58からステップS55に戻り、以下、同様の処理が繰り返される。
また、ステップS57において、時刻調整を行うことで、注目ディスプレイセットの使用可能時間Tを大とすることが可能でないと判定された場合、処理は、ステップS59に進み、エラー処理部54は、エンコードの対象とする字幕の画像データの色数を小にすることや、その画像データの大きさを小にすること等を指示する、エンコードのパラメータを変更する制御信号を、字幕エンコーダ51に供給する。
字幕エンコーダ51は、エラー処理部54から、エンコードのパラメータを変更する制御信号が供給された場合、その制御信号に従って、前回エンコードの対象とした字幕の画像データの色数を小にすることや、その画像データの大きさを小にする処理(以下、小サイズ化処理ともいう)を行う。そして、処理は、ステップS59からステップS53に戻り、字幕エンコーダ51は、小サイズ化処理後の字幕の画像データをエンコードし、以下、同様の処理が繰り返される。
一方、ステップS55において、注目ディスプレイセットの使用可能時間Tが、注目ディスプレイセットの必要時間Tmin以上であると判定された場合、すなわち、注目ディスプレイセットの再生が、その表示に間に合う場合、処理は、ステップS60に進み、判定部52は、注目ディスプレイセットと、注目ディスプレイセットの表示開始時刻(時刻調整が行われた場合には、時刻調整後の表示開始時刻)を、データ合成部64に供給して、処理は、ステップS61に進む。
ここで、合成部64では、以上のようにして、判定部52から供給される注目ディスプレイセットの表示開始時刻が、例えば、ISO base media file formatのtime-to-sample atom(図2A)等の形で、新フォーマットのファイルに格納される。
ステップS61では、字幕処理部50が、新フォーマットのファイルに格納すべき字幕の画像データをすべて処理したかどうかを判定する。
ステップS61において、新フォーマットのファイルに格納すべき字幕の画像データの中で、まだ処理をしていない字幕の画像データがあると判定された場合、処理は、ステップS51に戻り、以下、同様の処理が繰り返される。
また、ステップS61において、新フォーマットのファイルに格納すべき字幕の画像データをすべて処理したと判定された場合、字幕生成処理は終了する。
以上のように、判定部52において、注目ディスプレイセットの使用可能時間Tが、注目ディスプレイセットの必要時間Tmin以上でないとき、注目ディスプレイセットの再生が、注目ディスプレイセットの表示に間に合わないと判定し、エラー情報を出力するようにしたので、ディスプレイセットの再生が、ディスプレイセットの表示に間に合わないファイルが生成されるのを防止すること、ひいては、再生装置において、ファイルからの字幕の再生を、その字幕の表示に間に合うように行うことができる。
すなわち、図16の再生装置では、上述したように、字幕デコードシステム30において、あるディスプレイセット(の字幕)の表示開始時刻を、次に表示するディスプレイセットのデコード開始時刻であるとして、ディスプレイセットが、順次再生される。
一方、図21の生成装置によれば、あるディスプレイセットの表示開始時刻から、次に表示するディスプレイセットの表示開始時刻までの時間(次に表示するディスプレイセットの使用可能時間T)は、そのディスプレイセットの必要時間Tmin以上であることが保証される。
したがって、図16の再生装置では、ディスプレイセットの再生を、その表示に間に合うように行うことができる。
ここで、本実施の形態では、ディスプレイセットの使用可能時間Tが、必要時間Tmin以上でない場合には、字幕の画像データの色数や大きさを小にすることで、エンコードデータのサイズs、ひいては、必要時間Tminを小とするようにしたが、字幕の画像データの色数や大きさを小にすることは、ファイル(コンテンツ)の内容を変更することになるので、必要時間Tminを小とするための、字幕の画像データの色数や大きさを小にする等の処理は、ユーザ(ファイルの制作者)の確認をとってから行うようにすることができる。あるいは、生成装置では、必要時間Tminを小とするための、字幕の画像データの色数や大きさを小にする等のエラー処理は行わずに、エラー情報、すなわち、字幕の再生が、その表示に間に合わない旨を、ユーザに報知するだけに止め、その後の対処は、ユーザからの指示を待って行うようにすることができる。
使用可能時間Tを大とするための、表示開始時刻の時刻調整を行うエラー処理についても、同様である。
なお、エラー処理を行わない場合には、字幕処理部50(図21)は、エラー処理部54を設けずに構成することができる。
また、エンコードデータのサイズs、ひいては、必要時間Tminを小とすることは、字幕の画像データの色数や大きさを小にする他、複数個の字幕の画像データ(複数枚の画像データ)を合成して、1枚の画像データ(1個の字幕の画像データ)とする方法等がある。
次に、上述した一連の処理は、ハードウェアにより行うこともできるし、ソフトウェアにより行うこともできる。一連の処理をソフトウェアによって行う場合には、そのソフトウェアを構成するプログラムが、汎用のコンピュータ等にインストールされる。
そこで、図23は、上述した一連の処理を実行するプログラムがインストールされるコンピュータの一実施の形態の構成例を示している。
プログラムは、コンピュータに内蔵されている記録媒体としてのハードディスク105やROM103に予め記録しておくことができる。
あるいはまた、プログラムは、フレキシブルディスク、CD-ROM(Compact Disc Read Only Memory),MO(Magneto Optical)ディスク,DVD(Digital Versatile Disc)、磁気ディスク、半導体メモリなどのリムーバブル記録媒体111に、一時的あるいは永続的に格納(記録)しておくことができる。このようなリムーバブル記録媒体111は、いわゆるパッケージソフトウエアとして提供することができる。
なお、プログラムは、上述したようなリムーバブル記録媒体111からコンピュータにインストールする他、ダウンロードサイトから、ディジタル衛星放送用の人工衛星を介して、コンピュータに無線で転送したり、LAN(Local Area Network)、インターネットといったネットワークを介して、コンピュータに有線で転送し、コンピュータでは、そのようにして転送されてくるプログラムを、通信部108で受信し、内蔵するハードディスク105にインストールすることができる。
コンピュータは、CPU(Central Processing Unit)102を内蔵している。CPU102には、バス101を介して、入出力インタフェース110が接続されており、CPU102は、入出力インタフェース110を介して、ユーザによって、キーボードや、マウス、マイク等で構成される入力部107が操作等されることにより指令が入力されると、それに従って、ROM(Read Only Memory)103に格納されているプログラムを実行する。あるいは、また、CPU102は、ハードディスク105に格納されているプログラム、衛星若しくはネットワークから転送され、通信部108で受信されてハードディスク105にインストールされたプログラム、またはドライブ109に装着されたリムーバブル記録媒体111から読み出されてハードディスク105にインストールされたプログラムを、RAM(Random Access Memory)104にロードして実行する。これにより、CPU102は、上述したフローチャートにしたがった処理、あるいは上述したブロック図の構成により行われる処理を行う。そして、CPU102は、その処理結果を、必要に応じて、例えば、入出力インタフェース110を介して、LCD(Liquid Crystal Display)やスピーカ等で構成される出力部106から出力、あるいは、通信部108から送信、さらには、ハードディスク105に記録等させる。
ここで、本明細書において、コンピュータに各種の処理を行わせるためのプログラムを記述する処理ステップは、必ずしもフローチャートとして記載された順序に沿って時系列に処理する必要はなく、並列的あるいは個別に実行される処理(例えば、並列処理あるいはオブジェクトによる処理)も含むものである。
また、プログラムは、1のコンピュータにより処理されるものであっても良いし、複数のコンピュータによって分散処理されるものであっても良い。さらに、プログラムは、遠方のコンピュータに転送されて実行されるものであっても良い。
なお、本発明の実施の形態は、上述した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能である。
11 記録媒体, 12 ファイル読み込み部, 13 データ分配部, 14 ビデオデコードシステム, 15 ビデオフレームバッファ, 16 合成部, 17 表示フレームバッファ, 18 画像表示装置, 19 オーディオデコードシステム, 20 オーディオ出力装置, 30 字幕デコードシステム, 31 デコードバッファ, 32 字幕デコーダ, 33 字幕バッファ, 34,35 スイッチ, 36,37 フレームバッファ, 40 字幕表示時刻データベース, 50 字幕処理部, 51 字幕エンコーダ, 52 判定部, 53 サイズ時間関係データベース, 54 エラー処理部, 61 メタデータ処理部, 62 画像処理部, 63 音声処理部, 64 データ合成部, 101 バス, 102 CPU, 103 ROM, 104 RAM, 105 ハードディスク, 106 出力部, 107 入力部, 108 通信部, 109 ドライブ, 110 入出力インタフェース, 111 リムーバブル記録媒体