WO2005122170A1 - データ処理装置およびデータ処理方法、プログラムおよびプログラム記録媒体、データ記録媒体並びにデータ構造 - Google Patents

データ処理装置およびデータ処理方法、プログラムおよびプログラム記録媒体、データ記録媒体並びにデータ構造 Download PDF

Info

Publication number
WO2005122170A1
WO2005122170A1 PCT/JP2005/009438 JP2005009438W WO2005122170A1 WO 2005122170 A1 WO2005122170 A1 WO 2005122170A1 JP 2005009438 W JP2005009438 W JP 2005009438W WO 2005122170 A1 WO2005122170 A1 WO 2005122170A1
Authority
WO
WIPO (PCT)
Prior art keywords
stream
data
control module
video
audio
Prior art date
Application number
PCT/JP2005/009438
Other languages
English (en)
French (fr)
Inventor
Yasushi Fujinami
Toshiya Hamada
Original Assignee
Sony Corporation
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sony Corporation filed Critical Sony Corporation
Priority to EP05743606A priority Critical patent/EP1755122A4/en
Priority to KR1020067025761A priority patent/KR101104507B1/ko
Priority to US11/570,082 priority patent/US8154964B2/en
Priority to CN2005800190363A priority patent/CN1965365B/zh
Publication of WO2005122170A1 publication Critical patent/WO2005122170A1/ja

Links

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B27/00Editing; Indexing; Addressing; Timing or synchronising; Monitoring; Measuring tape travel
    • G11B27/10Indexing; Addressing; Timing or synchronising; Measuring tape travel
    • G11B27/102Programmed access in sequence to addressed parts of tracks of operating record carriers
    • G11B27/105Programmed access in sequence to addressed parts of tracks of operating record carriers of operating discs
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B27/00Editing; Indexing; Addressing; Timing or synchronising; Monitoring; Measuring tape travel
    • G11B27/10Indexing; Addressing; Timing or synchronising; Measuring tape travel
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/76Television signal recording
    • H04N5/84Television signal recording using optical recording
    • H04N5/85Television signal recording using optical recording on discs or drums
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N9/00Details of colour television systems
    • H04N9/79Processing of colour television signals in connection with recording
    • H04N9/80Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback
    • H04N9/804Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback involving pulse code modulation of the colour picture signal components
    • H04N9/8042Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback involving pulse code modulation of the colour picture signal components involving data reduction
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B2220/00Record carriers by type
    • G11B2220/20Disc-shaped record carriers
    • G11B2220/25Disc-shaped record carriers characterised in that the disc is based on a specific recording technology
    • G11B2220/2537Optical discs
    • G11B2220/2541Blu-ray discs; Blue laser DVR discs

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)
  • Television Signal Processing For Recording (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Television Systems (AREA)
  • Time-Division Multiplex Systems (AREA)

Abstract

本発明は多重化データに多重化されているデータを、その数によらず、メタデータから特定することをできるようにするデータ処理装置およびデータ処理方法、プログラムおよびプログラム記録媒体、データ記録媒体並びにデータ構造に関する。複数のエレメンタリストリームが多重化されたプログラムストリームに関するメタデータであるClip()は、MPEG-2 System (ISO/IEC 13818-1)においてデータの属性ごとに規定されている、データを識別するためのstream_idと、MPEG-2 System において規定されていない属性のデータを識別するためのprivate_stream_idとのセットを、プログラムストリームに多重化されているエレメンタリストリームの数number_of_streamsだけ含んでいる。そして、Clip()に含まれるstream_idとprivate_stream_idに基づき、プログラムストリームに多重化されているエレメンタリストリームが特定される。本発明は、例えば、DVDを利用したゲーム装置などに適用できる。

Description

データ処理装置およびデータ処理方法、プログラムおよびプログラム記録 媒体、データ記録媒体並びにデータ構造
技術分野
[0001] 本発明は、データ処理装置およびデータ処理方法、プログラムおよびプログラム記 録媒体、データ記録媒体並びにデータ構造に関し、特に、例えば、利便性等の高い データ処理を可能とするデータ処理装置およびデータ処理方法、プログラムおよび プログラム記録媒体、データ記録媒体並びにデータ構造に関する。 背景技術
[0002] 近年、大容量で、ランダムアクセスが可能な記録メディアとして、例えば、 DVD(Digit al Versatile Disc)が普及し、さらに、 DVDを利用して各種の処理を行う DVD装置も広 く普及している。
[0003] DVD装置としては、例えば、 DVDに対して、テレビジョン放送番組のデータ等の記 録再生を行う DVDレコーダや、 DVDに地図情報等を記録し、その地図情報の表示を 行うカーナビゲーシヨンシステム、 DVDにゲームのプログラム等を記録し、そのプログ ラムを実行するゲーム装置などがある。
[0004] なお、 DVDにつ 、ては、例えば、非特許文献 1に、その詳細が記載されて 、る。
[0005] 非特許文献 1 : DVD Specifications for Read- Only Disc Part 3; Version 1.1 Dcecmber
1997
発明の開示
発明が解決しょうとする課題
[0006] DVDのように、大量のデータを記録することができる記録メディアや、それを利用し て各種の処理を行う DVD装置などには、そのような大量のデータについて、利便性 の高 、データ処理を行うことが要請される。
[0007] 本発明は、このような状況に鑑みてなされたものであり、利便性等の高いデータ処 理を行うことができるようにするものである。
課題を解決するための手段 [0008] 本発明のデータ処理装置は、 1以上のデータが多重化された多重化データに関す るメタデータであって、所定の規格においてデータの属性ごとに規定されている、デ ータを識別するための第 1の識別情報と、所定の規格において規定されていない属 性のデータを識別するための第 2の識別情報とのセットを、多重化データに多重化さ れているデータの数だけ含むメタデータを読み出す読み出し手段と、メタデータに含 まれる第 1と第 2の識別情報に基づき、多重化データに多重化されているデータを特 定する特定手段と、特定手段において特定されたデータを処理する処理手段とを備 えることを特徴とする。
[0009] 本発明のデータ処理方法は、 1以上のデータが多重化された多重化データに関す るメタデータであって、所定の規格においてデータの属性ごとに規定されている、デ ータを識別するための第 1の識別情報と、所定の規格において規定されていない属 性のデータを識別するための第 2の識別情報とのセットを、多重化データに多重化さ れているデータの数だけ含むメタデータを読み出す読み出しステップと、メタデータ に含まれる第 1と第 2の識別情報に基づき、多重化データに多重化されているデータ を特定する特定ステップと、特定ステップにお!、て特定されたデータを処理する処理 ステップとを含むことを特徴とする。
[0010] 本発明のプログラムは、 1以上のデータが多重化された多重化データに関するメタ データであって、所定の規格においてデータの属性ごとに規定されている、データを 識別するための第 1の識別情報と、所定の規格において規定されていない属性のデ ータを識別するための第 2の識別情報とのセットを、多重化データに多重化されてい るデータの数だけ含むメタデータを読み出す読み出しステップと、メタデータに含ま れる第 1と第 2の識別情報に基づき、多重化データに多重化されているデータを特定 する特定ステップと、特定ステップにお!ヽて特定されたデータを処理する処理ステツ プとを含むことを特徴とする。
[0011] 本発明のプログラム記録媒体に記録されているプログラムは、 1以上のデータが多 重化された多重化データに関するメタデータであって、所定の規格にぉ 、てデータ の属性ごとに規定されている、データを識別するための第 1の識別情報と、所定の規 格にぉ 、て規定されて 、な 、属性のデータを識別するための第 2の識別情報とのセ ットを、多重化データに多重化されているデータの数だけ含むメタデータを読み出す 読み出しステップと、メタデータに含まれる第 1と第 2の識別情報に基づき、多重化デ ータに多重化されて 、るデータを特定する特定ステップと、特定ステップにお 、て特 定されたデータを処理する処理ステップとを含むことを特徴とする。
[0012] 本発明のデータ記録媒体に記録されている記録データ、およびデータ構造は、 1 以上のデータが多重化された多重化データと、多重化データに関するメタデータとを 含み、メタデータが、所定の規格においてデータの属性ごとに規定されている、デー タを識別するための第 1の識別情報と、所定の規格において規定されていない属性 のデータを識別するための第 2の識別情報とのセットを、多重化データに多重化され て 、るデータの数だけ含むことを特徴とする。
[0013] 本発明のデータ処理装置およびデータ処理方法、並びにプログラムおよびプログ ラム記録媒体に記録されているプログラムにおいては、 1以上のデータが多重化され た多重化データに関するメタデータであって、所定の規格においてデータの属性ご とに規定されている、データを識別するための第 1の識別情報と、所定の規格におい て規定されていない属性のデータを識別するための第 2の識別情報とのセットを、多 重化データに多重化されているデータの数だけ含むメタデータが読み出される。さら に、そのメタデータに含まれる第 1と第 2の識別情報に基づき、多重化データに多重 化されて!/ヽるデータが特定され、そのデータが処理される。
[0014] 本発明のデータ記録媒体に記録されている記録データ、およびデータ構造において は、 1以上のデータが多重化された多重化データと、多重化データに関するメタデー タとが含まれている。そして、メタデータには、所定の規格においてデータの属性ごと に規定されているデータを識別するための第 1の識別情報と、所定の規格において 規定されていない属性のデータを識別するための第 2の識別情報とのセットが、多重 化データに多重化されて 、るデータの数だけ含まれて 、る。
発明の効果
[0015] 本発明によれば、利便性等の高 、データ処理が可能となる。特に、多重化データ に多重化されているデータを、その数によらず、メタデータ力 特定することが可能と なる。 図面の簡単な説明
圆 1]本発明を適用したディスク装置の一実施の形態のハードウェア構成例を示すブ ロック図である。
[図 2]CPU112が実行するソフトウェアモジュール群の構成例を示すブロック図である
[図 3]バッファ制御モジュール 215の構成例を示すブロック図である。
[図 4]ディスク 101におけるディレクトリ構成例を示す図である。
[図 5]"PLAYLIST.DAT"ファイルのシンタクスを示す図である。
[図 6]PlayItemOのシンタクスを示す図である。
[図 7]PlayListMarkOのシンタクスを示す図である。
[図 8]mark_typeの値と、 MarkOのタイプとの関係を示す図である。
[図 9]PlayListO, PlayItemO、クリップ、およびクリップストリームファイルに格納されたプ ログラムストリームの関係を示す図である。
[図 10]クリップ情報ファイル ClipOのシンタクスを示す図である。
[図 11]エレメンタリストリームを識別する streamjdおよび private_stream_idと、エレメンタ リストリームとの関係を示す図である。
[図 12]StaticInfoOのシンタクスを示す図である。
[図 13]DynamicInfo()のシンタクスを示す図である。
[図 14]EP_mapOのシンタクスを示す図である。
[図 15]MPEG-2 Systemのプログラムストリーム、プログラムストリームパック、およびプ ログラムストリームパックヘッダのシンタクスを示す図である。
[図 16]MPEG- 2 Systemの PESパケットのシンタクスを示す図である。
[図 17]MPEG- 2 Systemの PESパケットのシンタクスを示す図である。
[図 18]MPEG- 2 Systemの PESパケットのシンタクスを示す図である。
[図 19]MPEG- 2 Systemにおける PES_packet()の streamjdに記述される値と、エレメン タリストリームの属性 (種類)との関係を示す図である。
[図 20]ディスク装置が採用する streamjdを示す図である。
[図 21]private_streaml_PES_payloadOのシンタクスを示す図である。 [図 22]private_stream_idの値と、 private_payloadOに格納されるエレメンタリストリームの 属性との関係を示す図である。
[図 23]private_stream2_PES_payloadOのシンタクスを示す図である。
[図 24]aujnformation0のシンタクスを示す図である。
[図 25]"PLAYLIST.DAT〃ファイルの具体例を示す図である。
[図 26]クリップ情報ファイル" 00001. CLP", "00002.CLP", "00003.CLP"の具体例を示 す図である。
[図 27]クリップ情報ファイル" 00001.CLP"の中の EPjnapOの具体例を示す図である。
[図 28]PlayList #0と PlayList #1の中の PlayListMarkOの具体例を示す図である。
[図 29]再生前処理を説明するフローチャートである。
[図 30]再生処理を説明するフローチャートである。
[図 31]PlayItem乗り換え処理を説明するフローチャートである。
[図 32]タイムコード表示処理を説明するフローチャートである。
[図 33]ストリーム切り替え処理を説明するフローチャートである。
[図 34]バッファ制御モジュール 215の処理を説明するフローチャートである。
[図 35]バッファ制御モジュール 215の処理を説明するフローチャートである。
[図 36]ビデオストリームの読み出しの処理を説明するフローチャートである。
[図 37]オーディオストリームの読み出しの処理を説明するフローチャートである。
[図 38]字幕ストリームの読み出しの処理を説明するフローチャートである。
[図 39]再同期処理を説明するフローチャートである。
[図 40]マーク処理を説明するフローチャートである。
[図 41]出力属性の制御処理を説明するフローチャートである。
[図 42]クリップ情報ファイル" 00003.CLP"に記述されている pts_change_pointと Dynami clnfoOとのセットの具体例を示す図である。
[図 43]字幕表示制御処理を説明するフローチャートである。
[図 44]キヤプチャ制御処理とバックグラウンド Zスクリーンセーバ処理を説明するフロ 一チャートである。
[図 45]private_stream2_PES_payloadOの他のシンタクスを示す図である。 [図 46]aujnformation0の他のシンタクスを示す図である。
符号の説明
[0017] 101 ディスク, 102 ディスクドライブ, 111 バス, 112 CPU, 113 メモリ,
114 ドライブインターフェース, 115 入力インターフェース, 116 ビデオデコ ーダ, 117 オーディオデコーダ, 118 ビデオ出力インターフェース, 119 ォ 一ディォ出力インターフェース, 120 ビデオ出力端子, 121 オーディオ出力端 子, 201 オペレーティングシステム, 210 ビデオコンテンツ再生プログラム, 2 11 スクリプト制御モジュール, 212 プレイヤ制御モジュール, 213 コンテンツ データ供給モジュール, 214 デコード制御モジュール, 214A 計時部, 215 バッファ制御モジュール, 215A バッファ, 216 ビデオデコーダ制御モジュール , 217 オーディオデコーダ制御モジュール, 218 字幕デコーダ制御モジュール , 219 グラフィクス処理モジュール, 220 ビデオ出力モジュール, 220A FIF 0, 221 オーディオ出力モジュール, 221A FIFO, 231 データ先頭ポインタ 記憶部, 232 データ書き込みポインタ記憶部, 233 ビデオ読み出し機能部, 234 オーディオ読み出し機能部, 235 字幕読み出し機能部, 241 ビデオ読 み出しポインタ記憶部, 242 streamjdレジスタ, 243 aujnformationOレジスタ 2 43, 251 オーディオ読み出しポインタ記憶部, 252 streamjdレジスタ, 253 private_stream_idレジスタ, 261 字幕読み出し機能フラグ記憶部 261, 262 字 幕読み出しポインタ記憶部, 263 streamjdレジスタ, 264 private_stream_idレジ スタ
発明を実施するための最良の形態
[0018] 以下、図面を参照して、本発明の実施の形態について説明する。
[0019] [ハードウェア構成]
図 1は、本発明を適用したディスク装置の一実施の形態のハードウェアの構成例を 示すブロック図である。
[0020] 図 1のディスク装置は、例えば、ディスクプレーヤや、ゲーム装置、カーナビゲーショ ンシステムその他に適用することができる。
[0021] 図 1のディスク装置において、ディスク 101は、例えば、 DVDなどの光ディスク、ある いは光磁気ディスク、磁気ディスクなどであり、ビデオデータや、オーディオデータ、 字幕データなどのコンテンツデータ、さらには、コンテンツデータを再生するのに必要 なデータが記録されて 、る。
[0022] なお、ディスク 101に記録されるデータ(記録データ)には、必要に応じて、コンビュ ータが実行可能なプログラムも含まれる。また、本実施の形態では、記録媒体として、 ディスク状の記録媒体であるディスク 101を採用するが、その他、記録媒体としては、 例えば、半導体メモリや、テープ状の記録媒体であってもよい。さらに、図 1のディスク 装置には、遠方にあるディスク 101から読み出されて送信されてくるデータを入力す ることができる。即ち、ディスク 101からのデータの読み出しは、ディスク装置に接続し た別の装置で行い、その別の装置で読み出されたデータを、ディスク装置で受信し て処理することができる。また、ディスク装置では、ディスク 101に記録されたデータと 同様のデータをストレージに記憶して 、るサーバ等から、インターネット等のネットヮ ークを介して、データの配信を受けて処理することも可能である。さら〖こ、ディスク装 置では、サーバその他の装置からのデータを受信し、ー且、ディスク 101に記録して から、そのディスク 101に記録されたデータを処理することも可能である。
[0023] ディスクドライブ 102には、ディスク 101が着脱可能になっている。ディスクドライブ 1 02は、図示せぬインターフェースを内蔵し、そのインターフェースを通じて、ドライブ インターフェース 114に接続されている。ディスクドライブ 102は、そこに装着されたデ イスク 101を駆動し、ドライブインターフェース 114からの読み出し等の命令にしたが つて、ディスク 101からデータを読み出して、ドライブインターフェース 114に供給する 等の処理を行う。
[0024] バス 111には、 CPU(Central Processing Unit) 112,メモリ 113、ドライブインターフェ ース 114、入力インターフェース 115、ビデオデコーダ 116、オーディオデコーダ 117 、ビデオ出力インターフェース 118、オーディオ出力インターフェース 119が接続され ている。
[0025] CPU112およびメモリ 113は、コンピュータシステムを形成している。即ち、 CPU112 は、メモリ 113に記憶されたプログラムである、後述するソフトウェアモジュール群を実 行し、ディスク装置全体を制御するとともに、後述する各種の処理を行う。メモリ 113 は、 CPU112が実行するソフトウェアモジュール群を記憶している。また、メモリ 113は 、 CPU112の動作上必要なデータを一時記憶する。なお、メモリ 113は、不揮発性メ モリのみ、または揮発性メモリと不揮発性メモリとの組み合わせで構成することが可能 である。また、図 1のディスク装置に、ハードディスクを設け、そのハードディスクに、 C PU112が実行するソフトウェアモジュール群を記録 (インストール)しておく場合には、 メモリ 113は、揮発性メモリのみで構成することが可能である。
[0026] ここで、 CPU112が実行するプログラム(ソフトウェアモジュール群)は、ディスク装置 に内蔵されて 、る記録媒体としてのメモリ 113に予め記録しておく(記憶させておく) ことができる。
[0027] あるいはまた、プログラムは、ディスク 101、さらには、ディスク 101以外のフレキシブ ノレディスク、 CD— ROM(Compact Disc Read Only Memory), MO(Magneto Optical)ディ スク、磁気ディスク、メモリカードなどのリムーバブル記録媒体に、一時的あるいは永 続的に格納 (記録)しておくことができる。このようなリムーバブル記録媒体は、いわゆ るパッケージソフトウェアとして提供することができる。
[0028] なお、プログラムは、メモリ 113にあら力じめ記憶させておくこと、あるいは、上述した ようなリムーバブル記録媒体力もディスク装置にインストールすることができる。また、 プログラムは、ダウンロードサイトから、ディジタル衛星放送用の人工衛星を介して、 ディスク装置に無線で転送したり、 LAN(Local Area Network),インターネットといった ネットワークを介して、ディスク装置に有線で転送し、ディスク装置では、そのようにし て転送されてくるプログラムを、入力インターフェース 115で受信し、内蔵するメモリ 1 13にインストールすることができる。
[0029] さらに、プログラムは、 1の CPUにより処理されるものであっても良いし、複数の CPU によって分散処理されるものであっても良い。
[0030] ドライブインターフェース 114は、 CPU112の制御の下、ディスクドライブ 102を制御 し、これにより、ディスクドライブ 102がディスク 101から読み出したデータを、ノ ス 111 を介して、 CPU112や、メモリ 113、ビデオデコーダ 116、オーディオデコーダ 117な どに供給する。
[0031] 入力インターフェース 115は、図示せぬキー(ボタン)や、リモコン(リモートコント口 ーラ)がユーザに操作されることによって供給される信号を受信し、バス 111を介して 、 CPU112に供給する。なお、入力インターフェース 115は、その他、例えば、モデム (ADSL(Asymmetric Digital Subscriber Line)モデムを含む)や、 NIC(Network Interfac e Card)などの通信インターフェースとしても機能する。
[0032] ビデオデコーダ 116は、ディスクドライブ 102によってディスク 101から読み出され、 ドライブインターフェース 114およびバス 111を介して供給される、ビデオデータの符 号化データ (符号ィ匕オーディオデータ)をデコードし、その結果得られるビデオデータ を、バス 111を介して、 CPU112やビデオ出力インターフェース 118に供給する。
[0033] オーディオデコーダ 117は、ディスクドライブ 102によってディスク 101から読み出さ れ、ドライブインターフェース 114およびバス 111を介して供給される、オーディオデ ータの符号化データ (符号ィ匕オーディオデータ)をデコードし、その結果得られるォ 一ディォデータを、バス 111を介して、 CPU112やオーディオ出力インターフェース 1 19に供給する。
[0034] ビデオ出力インターフェース 118は、バス 111を介して供給されるビデオデータに 必要な処理を施し、ビデオ出力端子 120から出力する。オーディオ出力インターフエ ース 119は、バス 111を介して供給されるオーディオデータに必要な処理を施し、ォ 一ディォ出力端子 121から出力する。
[0035] ビデオ出力端子 120は、図示せぬ CRT(Cathode Ray Tube)や、液晶パネル等のビ デォ出力装置に接続されており、従って、ビデオ出力端子 120から出力されるビデオ データは、ビデオ出力装置に供給されて表示される。オーディオ出力端子 121は、 図示せぬスピーカやアンプなどのオーディオ出力装置に接続されており、従って、ォ 一ディォ出力端子 121から出力されるオーディオデータは、オーディオ出力装置に 供給されて出力される。
[0036] なお、ディスク装置から、ビデオ出力装置とオーディオ出力装置へのビデオデータ とオーディオデータの供給は、有線または無線の 、ずれによって行うことも可能であ る。
[0037] [ソフトウェアモジュール群の構成]
次に、図 2は、図 1の CPU112が実行するソフトウェアモジュール群の構成例を示し ている。
[0038] CPU112が実行するソフトウェアモジュール群は、オペレーティングシステム(OS) 2 01と、アプリケーションプログラムとしてのビデオコンテンッ再生プログラム 210に大 別される。
[0039] 「オペレーティングシステム 201」
オペレーティングシステム 201は、ディスク装置の電源が投入されると最初に起動し (CPU112がオペレーティングシステム 201を実行し)、初期設定等の必要な処理を 行 、、アプリケーションプログラムであるビデオコンテンツ再生プログラム 210を呼び 出す。
[0040] オペレーティングシステム 201は、ビデオコンテンツ再生プログラム 210に対して、 フアイノレの読み出し等のインフラ(インフラストラクチャ (infrastructure))的なサービスを 提供する。即ち、オペレーティングシステム 201は、例えば、ファイルの読み出しに関 しては、ビデオコンテンツ再生プログラム 210からのファイルの読み出しのリクエストに 対して、ドライブインターフェース 114を介してディスクドライブ 102を操作して、デイス ク 101のデータを読み出し、ビデオコンテンツ再生プログラム 210に渡すサービスを 提供する。また、オペレーティングシステム 201は、ファイルシステムの解釈等も行う。
[0041] なお、オペレーティングシステム 201は、マルチタスク処理の機能を備えており、複 数のソフトウェアモジュールを、時分割で (見かけ上)同時に動作させることができる。 即ち、ビデオコンテンツ再生プログラム 210は、幾つかのソフトウェアモジュールで構 成される力 各ソフトウェアモジュールは、並列で動作することができる。
[0042] 「ビデオコンテンッ再生プログラム 210」
ビデオコンテンツ再生プログラム 210は、スクリプト制御モジュール 211、プレイヤ制 御モジュール 212、コンテンツデータ供給モジュール 213、デコード制御モジュール 214、バッファ制御モジュール 215、ビデオデコーダ制御モジュール 216、オーディ ォデコーダ制御モジュール 217、字幕デコーダ制御モジュール 218、グラフィックス 処理モジュール 219、ビデオ出力モジュール 220、およびオーディオ出力モジユー ル 221で構成されている。
[0043] ビデオコンテンツ再生プログラム 210は、ディスク 101の再生にあたって中心的な役 割を果たすソフトウェアであり、ディスク 101がディスクドライブ 102に装着 (挿入)され ると、そのディスク 101が、コンテンツが記録された後述するフォーマットのディスクで あるかを確認する。さらに、ビデオコンテンツ再生プログラム 210は、ディスク 101から 、後述するスクリプトファイルを読み出して実行し、また、ディスク 101から、そのディス ク 101に記録されたコンテンツを再生するのに必要なメタデータ (データベース情報) のファイルを読み出し、そのメタデータに基づいて、コンテンツの再生を制御する。
[0044] 以下、図 2のビデオコンテンツ再生プログラム 210を構成するソフトウェアモジユー ルについて説明する。なお、図 2においては、原則として、実線の矢印は、コンテンツ のデータを表し、点線の矢印は、制御のデータを表す。
[0045] 「スクリプト制御モジュール 211」
スクリプト制御モジュール 211は、ディスク 101に記録されたスクリプトファイルに記 述されて!/、るスクリプトプログラム (スクリプト)を解釈して実行する。スクリプトプロダラ ムでは、例えば、「グラフィクス処理モジュール 219を操作し、メニュー等の画像を作 成して表示する」、「リモコン等の UKUser Interface)からの信号に従いメニューの表示 を変更する(例えば、メニュー上のカーソルを移動する等)」、「プレイヤ制御モジユー ル 212を制御する」等の動作を記述することができる。
[0046] 「プレイヤ制御モジュール 212」
プレイヤ制御モジュール 212は、ディスク 101に記録されて!、るメタデータ(データ ベース情報)等を参照し、コンテンツの再生に関する制御を行う。即ち、プレイヤ制御 モジュール 212は、例えば、ディスク 101に記録されている、後述する PlayListOや Cli p()を解析し、その解析結果にしたがって、コンテンツデータ供給モジュール 213や、 デコード制御モジュール 214、バッファ制御モジュール 215を制御する。また、プレイ ャ制御モジュール 212は、スクリプト制御モジュール 211や入力インターフェース 11 5からの指示にした力^、、再生対象のストリームを切り替える、後述するストリーム切り 替え等の制御を行う。さらに、プレイヤ制御モジュール 214は、デコード制御モジユー ル 214から時刻を取得し、時刻表示や、後述するマーク (MarkO)の処理等を行う。
[0047] 「コンテンツデータ供給モジュール 213」
コンテンツデータ供給モジュール 213は、プレイヤ制御モジュール 212の制御にし たがい、あるいは、バッファ制御モジュール 215に蓄積されたデータの量に基づき、 ディスク 101からのコンテンツのデータやメタデータ等の読み出しを、オペレーティン グシステム 201に要求する。
[0048] なお、オペレーティングシステム 201が、コンテンツデータ供給モジュール 213から の要求に応じてディスク 101から読み出したメタデータ等は、必要なモジュールに供 給される。また、オペレーティングシステム 201が、コンテンツデータ供給モジュール 2 13からの要求に応じてディスク 101から読み出したコンテンツのデータは、バッファ制 御モジュール 215に供給される。
[0049] 「デコード制御モジュール 214」
デコード制御モジュール 214は、プレイヤ制御モジュール 212からの制御にしたが い、ビデオデコーダ制御モジュール 216、オーディオデコーダ制御モジュール 217、 および字幕デコーダ制御モジュール 218の動作を制御する。また、デコード制御モ ジュール 214は、時刻を計時する計時部 214Aを内蔵し、ビデオデコーダ制御モジュ ール 216の制御によって出力されるビデオデータの出力と、そのビデオデータと同期 して出力されるべきデータ(出力データ)の出力、即ち、ここでは、オーディオデコー ダ制御モジュール 217の制御によって出力されるオーディオデータの出力との同期 を管理する。
[0050] 「バッファ制御モジュール 215」
バッファ制御モジュール 215は、図 1のメモリ 113の記憶領域の一部であるバッファ 215Aを内蔵しており、そのバッファ 215Aに、コンテンツデータ供給モジュール 213 がオペレーティングシステム 201に要求を行うことによってディスク 101から読み出さ れたコンテンツのデータを一時記憶する。
[0051] また、バッファ制御モジュール 215は、ビデオデコーダ制御モジュール 216、ォー ディォデコーダ制御モジュール 217、または字幕デコーダ制御モジュール 218の要 求にしたがって、ノッファ 215Aに記憶されたデータを、ビデオデコーダ制御モジュ ール 216、オーディオデコーダ制御モジュール 217、または字幕デコーダ制御モジュ ール 218に供給する。
[0052] 即ち、バッファ制御モジュール 215は、後述する図 3で説明するビデオ読み出し機 能部 233、オーディオ読み出し機能部 234、および字幕読み出し機能部 235を内蔵 している。そして、バッファ制御モジュール 215は、ビデオデコーダ制御モジュール 2 16からのデータの要求を、ビデオ読み出し機能部 233で処理することにより、ノ ッフ ァ 215Aに記憶されたデータを、ビデオデコーダ制御モジュール 216に供給する。同 様に、バッファ制御モジュール 215は、オーディオデコーダ制御モジュール 217から のデータの要求を、オーディオ読み出し機能部 234で処理することにより、ノ ッファ 2 15 Aに記憶されたデータを、オーディオデコーダ制御モジュール 217に供給するとと もに、字幕デコーダ制御モジュール 218からのデータの要求を、字幕読み出し機能 部 235で処理することにより、ノ ッファ 215Aに記憶されたデータを、字幕デコーダ制 御モジュール 218に供給する。
[0053] 「ビデオデコーダ制御モジュール 216」
ビデオデコーダ制御モジュール 216は、バッファ制御モジュール 215内のビデオ読 み出し機能部 233 (図 3)を操作して、ビデオデータを符号化したデータ (ビデオ符号 化データ)を、ビデオアクセスユニット単位で、バッファ制御モジュール 215のバッファ 215Aから読み出し、図 1のビデオデコーダ 116に供給する。また、ビデオデコーダ 制御モジュール 216は、ビデオデコーダ 116を制御し、ビデオアクセスユニット単位 のデータをデコードさせる。さらに、ビデオデコーダ制御モジュール 216は、ビデオデ コーダ 116でのデコードの結果得られるビデオデータを、グラフィクス処理モジュール 219に供給する。
[0054] ここで、ビデオアクセスユニットとは、例えば、ビデオデータの 1ピクチャ(1フレーム または 1フィールド)分である。
[0055] 「オーディオデコーダ制御モジュール 217」
オーディオデコーダ制御モジュール 217は、バッファ制御モジュール 215内のォー ディォ読み出し機能部 234 (図 3)を操作して、オーディオデータを符号化したデータ (オーディオ符号ィ匕データ)を、オーディオアクセスユニット単位で、ノ ッファ制御モジ ユール 215のバッファ 215Aから読み出し、図 1のオーディオデコーダ 117に供給す る。また、オーディオデコーダ制御モジュール 217は、オーディオデコーダ 117を制 御し、オーディオアクセスユニット単位のデータをデコードさせる。さらに、オーディオ デコーダ制御モジュール 217は、オーディオデコーダ 117でのデコードの結果得ら れるオーディオデータを、オーディオ出力モジュール 221に供給する。
[0056] ここで、オーディオアクセスユニットとは、オーディオデータの所定のデータ量分 (例 えば、 1ピクチャに同期して出力される分)である。本実施の形態では、オーディオア クセスユニットは、例えば、既知の固定長であるとする。
[0057] 「字幕デコーダ制御モジュール 218」
字幕デコーダ制御モジュール 218は、バッファ制御モジュール 215内の字幕読み 出し機能部 235 (図 3)を操作して、字幕データを符号化したデータ (字幕符号化デ ータ)を、字幕アクセスユニット単位で、バッファ制御モジュール 215のバッファ 215A から読み出す。また、字幕デコーダ制御モジュール 218は、内部に、図示せぬ字幕 デコードソフトウェアを備えており、ノッファ 215Aから読み出したデータをデコードす る。さらに、字幕デコーダ制御モジュール 218は、そのデコードの結果得られる字幕 データ(字幕の画像データ)を、グラフィクス処理モジュール 219に供給する。
[0058] ここで、字幕アクセスユニットとは、字幕データの所定のデータ量分 (例えば、 1ピク チヤに同期して出力される分)である。本実施の形態では、字幕アクセスユニットのサ ィズは、例えば、その字幕アクセスユニットの先頭に記述されていることとする。
[0059] 「グラフィクス処理モジュール 219」
グラフィクス処理モジュール 219は、プレイヤ制御モジュール 212の制御(指示)に したが 、、字幕デコーダ制御モジュール 218からの字幕データの拡大や縮小を行 ヽ 、ビデオデコーダ制御モジュール 216からのビデオデータと加算(オーバーレイ)する さらに、グラフィクス処理モジュール 219は、字幕データとの加算後のビデオデータの サイズ (画枠)を、図 1のビデオ出力端子 120に接続されたビデオ出力装置の表示画 面にあわせるための拡大または縮小等を行い、その結果得られるビデオデータを、ビ デォ出力モジュール 220に出力する。
[0060] また、グラフィクス処理モジュール 219は、スクリプト制御モジュール 211やプレイヤ 制御モジュール 212の指示 (制御)に従い、メニューやメッセージ等を生成し、出力ビ デォデータにオーバーレイする。 [0061] さらに、グラフィクス処理モジュール 219は、図 1のビデオ出力端子 120に接続され たビデオ出力装置のアスペクト比と、ディスク 101に記録されたビデオデータのァス ぺクト比を指示する情報等とに基づいて、ビデオ出力モジュール 220に出力するビ デォデータのアスペクト比の変換を行う。
[0062] 即ち、例えば、ビデオ出力装置のアスペクト比が 16:9である場合において、ビデオ データのアスペクト比を指示する情報力 :3のアスペクト比を表しているときには、ダラ フィクス処理モジュール 219は、ビデオ出力モジュール 220に出力するビデオデータ を、横方向(水平方向)にスクイーズ (縮小)処理し、左右に黒味を入れて出力する。 また、例えば、ビデオ出力装置のアスペクト比が 4:3である場合において、ビデオデー タのアスペクト比を指示する情報が 16:9のアスペクト比を表しているときには、グラフィ タス処理モジュール 219は、ビデオ出力モジュール 220に出力するビデオデータを、 縦方向(垂直方向)にスクイーズ (縮小)処理し、上下に黒味を入れて出力する。
[0063] なお、ビデオ出力装置のアスペクト比と、ビデオデータのアスペクト比を指示する情 報が表すアスペクト比と力 いずれも、 4:3や 16:9で、同一である場合、グラフィクス処 理モジュール 219は、ビデオ出力モジュール 220に出力するビデオデータを、スクイ ーズ処理することなぐそのまま出力する。
[0064] その他、グラフィクス処理モジュール 219は、例えば、プレイヤ制御モジュール 212 力 の要求に応じて、現在処理中のビデオデータをキヤプチャする。さらに、グラフィ タス処理モジュール 219は、そのキヤプチヤしたビデオデータを記憶し、あるいは、プ レイヤ制御モジュール 212に供給する。
[0065] 「ビデオ出力モジュール 220」
ビデオ出力モジュール 220は、図 1のメモリ 113の一部を排他的に占有して FIFO(F irst In First Out)220A (バッファ)として使用し、グラフィクス処理モジュール 219から のビデオデータを一時的に記憶し、また、その FIFO220Aに記憶されたビデオデー タを適宜読み出して、ビデオ出力端子 120 (図 1)に出力する。
[0066] 「オーディオ出力モジュール 221」
オーディオ出力モジュール 221は、図 1のメモリ 113の一部を排他的に占有して FIF 0221A (バッファ)として使用し、オーディオデコーダ制御モジュール 217 (オーディ ォデコーダ 117)力ものオーディオデータを一時的に記憶し、また、その FIF0221A に記憶されたオーディオデータを適宜読み出して、オーディオ出力端子 121 (図 1) に出力する。
[0067] さらに、オーディオ出力モジュール 221は、オーディオデコーダ制御モジュール 21 7からのオーディオデータが、左チャネルが「主音声」のオーディオデータで、右チヤ ネルの「副音声」のオーディオデータであるデュアル (Dual) (ニケ国語)モードのォー ディォデータである場合、あら力じめ指定された音声出力モードに従って、オーディ ォデコーダ制御モジュール 217からのオーディオデータを、オーディオ出力端子 12 1に出力する。
[0068] 即ち、音声出力モードとして、例えば、「主音声」が指定されているときには、オーデ ィォ出力モジュール 221は、オーディオデコーダ制御モジュール 217からのオーディ ォデータのうちの左チャネルのオーディオデータを、右チャネルのオーディオデータ としてコピーし、その左チャネルと右チャネルのオーディオデータ(「主音声」のォー ディォデータ)を、オーディオ出力端子 121に出力する。また、音声出力モードとして 、「副音声」が指定されているときには、オーディオ出力モジュール 221は、オーディ ォデコーダ制御モジュール 217からのオーディオデータのうちの右チャネルのォー ディォデータを、左チャネルのオーディオデータとしてコピーし、その左チャネルと右 チャネルのオーディオデータ(「副音声」のオーディオデータ)を、オーディオ出力端 子 121に出力する。さらに、音声出力モードとして、「主 ·副」が指定されているときに は、オーディオ出力モジュール 221は、オーディオデコーダ制御モジュール 217から のオーディオデータを、そのまま、オーディオ出力端子 121に出力する。
[0069] なお、オーディオデコーダ制御モジュール 217からのオーディオデータが、ステレ ォ (Stereo)モードのオーディオデータである場合、オーディオ出力モジュール 221は 、音声出力モードの指定にかかわらず、オーディオデコーダ制御モジュール 217から のオーディオデータを、そのまま、オーディオ出力端子 121に出力する。
[0070] ここで、音声出力モードの指定は、例えば、ビデオコンテンツ再生プログラム 210が 生成するメニューが表示された画面等にぉ 、て、ユーザがリモコン等を操作すること により対話的に行うことができる。 [0071] [バッファ制御モジュール 215の構成]
次に、図 3は、図 2のバッファ制御モジュール 215の構成例を示している。
[0072] バッファ制御モジュール 215は、図 1のメモリ 113の一部を、バッファ 215Aとして排 他的に使用し、そのバッファ 215Aに、ディスク 101から読み出されたデータを一時記 憶させる。また、ノ ッファ制御モジュール 215は、ノッファ 215Aに記憶されたデータ を読み出して、図 2のビデオデコーダ制御モジュール 216、オーディオデコーダ制御 モジュール 217、または字幕デコーダ制御モジュール 218に供給する。
[0073] 即ち、バッファ制御モジュール 215は、バッファ 215Aの他、メモリ 113の一部である データ先頭ポインタ記憶部 231、およびデータ書き込みポインタ記憶部 232を有する とともに、内部モジュールとして、ビデオ読み出し機能部 233、オーディオ読み出し機 能部 234、字幕読み出し機能部 235を有する。
[0074] ノッファ 215Aは、例えば、リングバッファであり、ディスク 101から読み出されたデ ータを順次記憶し、その記憶容量分のデータを記憶した後は、最も古いデータに上 書きする形で、最新のデータを、いわば無限ループ状に記憶していく。
[0075] データ先頭ポインタ記憶部 231は、ノ ッファ 215Aに記憶されたデータのうち、まだ 、ノッファ 215Aから読み出されて 、な 、最も古!、データが記憶されて 、る位置(アド レス)を指すデータ先頭ポインタを記憶する。
[0076] データ書き込みポインタ記憶部 232は、ディスク 101から読み出された最新のデー タが書き込まれるバッファ 215Aの位置 (アドレス)を指す書き込みポインタを記憶する
[0077] ここで、データ書き込みポインタが指す位置は、バッファ 215Aに、ディスク 101から 読み出されたデータが記憶されるごとに、図中、右回り(時計回り)に更新されていき 、データ先頭ポインタが指す位置は、ノ ッファ 215Aからのデータの読み出しに応じ て、図中、右回りに更新されていく。したがって、ノ ッファ 215Aに記憶されたデータ のうち、いわば有効なデータは、データ先頭ポインタが指す位置から、右回りに、デ ータ書き込みポインタが指す位置までに記憶されているデータである。
[0078] ビデオ読み出し機能部 233は、図 2のビデオデコーダ制御モジュール 216からの要 求に応じて、バッファ 215A力 ビデオストリーム(ビデオデータに関するエレメンタリ ストリーム)を読み出し、ビデオデコーダ制御モジュール 216に供給する。オーディオ 読み出し機能部 234も、図 2のオーディオデコーダ制御モジュール 217からの要求 に応じて、ノ ッファ 215A力もオーディオストリーム (オーディオデータに関するエレメ ンタリストリーム)を読み出し、オーディオデコーダ制御モジュール 217に供給する。 字幕読み出し機能部 235も、図 2の字幕デコーダ制御モジュール 218からの要求に 応じて、ノ ッファ 215Aから字幕ストリーム (字幕データに関するエレメンタリストリーム )を読み出し、字幕デコーダ制御モジュール 218に供給する。
[0079] 即ち、光ディスク 101には、例えば、 MPEG(Moving Picture Experts Group)2の規格 に準拠したプログラムストリーム(MPEG2- System Program Stream)が記録されており 、ノッファ 215Aには、光ディスク 101から読み出されたプログラムストリームが記憶さ れる。このプログラムストリームは、ビデオストリームや、オーディオストリーム、字幕スト リーム等の 1以上のエレメンタリストリームが時分割多重されている。ビデオ読み出し 機能部 233は、プログラムストリームのデマルチプレタスの機能を有し、ノ ッファ 215 Aに記憶されたプログラムストリームから、ビデオストリームを分離して読み出す。
[0080] 同様に、オーディオ読み出し機能部 234も、プログラムストリームのデマルチプレク スの機能を有し、ノ ッファ 215Aに記憶されたプログラムストリームから、オーディオス トリームを分離して読み出す。字幕読み出し機能部 235も、プログラムストリームのデ マルチプレタスの機能を有し、バッファ 215Aに記憶されたプログラムストリームから、 字幕ストリームを分離して読み出す。
[0081] ここで、ビデオ読み出し機能部 233は、図 1のメモリ 113の一部であるビデオ読み出 しポインタ記憶部 241、 streamjdレジスタ 242、および aujnformationOレジスタ 243を 有している。
[0082] ビデオ読み出しポインタ記憶部 241は、バッファ 215Aの、ビデオストリームが記憶 された位置 (アドレス)を指すビデオ読み出しポインタを記憶し、ビデオ読み出し機能 部 233は、ノ ッファ 215Aの、ビデオ読み出しポインタが指す位置に記憶されている データを、ビデオストリームとして読み出す。 streamjdレジスタ 242は、バッファ 215A に記憶されたプログラムストリームを解析し、そのプログラムストリームの中力も読み出 すビデオストリームを識別(特定)するための後述する streamjdを記憶する。 aujnform ationOレジスタ 243は、バッファ 215Aからビデオストリームを読み出すために必要な( ビデオストリームの読み出しに利用される)データである後述する aujnformationOを記 憶する。
[0083] オーディオ読み出し機能部 234は、図 1のメモリ 113の一部であるオーディオ読み 出しポインタ記憶部 251、 streamjdレジスタ 252、および private_stream_idレジスタ 25 3を有している。
[0084] オーディオ読み出しポインタ記憶部 251は、バッファ 215Aの、オーディオストリーム が記憶された位置 (アドレス)を指すオーディオ読み出しポインタを記憶し、オーディ ォ読み出し機能部 234は、ノ ッファ 215Aの、オーディオ読み出しポインタが指す位 置に記憶されているデータを、オーディオストリームとして読み出す。 streamjdレジス タ 252と private_stream_idレジスタ 253は、バッファ 215Aに記憶されたプログラムスト リームを解析し、そのプログラムストリームの中力 読み出すオーディオストリームを識 別するための後述する streamjdと private_stream_idを、それぞれ記憶する。
[0085] 字幕読み出し機能部 235は、図 1のメモリ 113の一部である字幕読み出し機能フラ グ記憶部 261、字幕読み出しポインタ記憶部 262、 streamjdレジスタ 263、および pri vate_stream jdレジスタ 264を有して!/、る。
[0086] 字幕読み出し機能フラグ記憶部 261は、字幕読み出し機能フラグを記憶する。字 幕読み出し機能フラグ記憶部 261に記憶された字幕読み出し機能フラグ力 例えば 0である場合、字幕読み出し機能部 235は機能動作せず、字幕読み出し機能フラグ 記憶部 261に記憶された字幕読み出し機能フラグが、例えば 1である場合、字幕読 み出し機能部 235は機能する。
[0087] 字幕読み出しポインタ記憶部 262は、ノ ッファ 215Aの、字幕ストリームが記憶され た位置 (アドレス)を指す字幕読み出しポインタを記憶し、字幕読み出し機能部 235 は、ノ ッファ 215Aの、字幕読み出しポインタが指す位置に記憶されているデータを、 字幕ストリームとして読み出す。 streamjdレジスタ 263と private_stream_idレジスタ 264 は、ノ ッファ 215Aに記憶されたプログラムストリームを解析し、そのプログラムストリー ムの中力 読み出す字幕ストリームを識別するための後述する streamjdと private_stre amjdを、それぞれ記憶する。 [0088] [ディスク 101に記録されたデータのデータフォーマットの説明]
次に、ディスク 101に記録されたデータのデータフォーマットについて説明する。
[0089] 図 4は、ディスク 101のディレクトリ構造を模式的に示している。
[0090] ディスク 101のファイルシステムとしては、例えば、 ISOdnternational Organization fo r Standardization)— 9660や、 UDF(Universai DISK Format:http://www.osta.org/specs /)などで規定されたファイルシステムが用いられており、ディスク 101に記録されたデ ータのファイルはディレクトリ構造により階層的に管理されている。ここで、ファイルシ ステムは、上述したファイルシステムに限定されるものではな!/、。
[0091] 図 4では、ファイルシステムの基点を示すルート (root)ディレクトリに、 "VIDEO"ディレ クトリが置かれ、 "VIDEO"ディレクトリには、 "CLIP"ディレクトリと、 "STREAM"ディレクト リとの 2つのディレクトリが置かれている。
[0092] "VIDEO"ディレクトリには、 "CLIP"ディレクトリと" STREAM"ディレクトリとの 2つのディ レクトリの他に、 "SCRIPT.DAT"ファイルと、 "PLAYLIST.DAT"ファイルの 2つのデータ ファイルが置かれている。
[0093] "SCRIPT.DAT〃ファイルは、スクリプトプログラムが記述されたスクリプトファイルであ る。即ち、 "SCRIPT.DAT"ファイルには、ディスク 101の再生形態をインタラクティブな ものとするために使用するスクリプトプログラムが記述されている。この" SCRIPT.DAT" ファイルに記述されたスクリプトプログラムは、図 2のスクリプト制御モジュール 211に よって解釈、実行される。
[0094] "PLAYLIST.DAT"ファイルには、ディスク 101に記録されたビデオデータ等のコン テンッの再生手順が記述されたプレイリスト(後述する図 5の PlayListO)が 1以上格納 されている。
[0095] "CLIP"ディレクトリには、 1以上のクリップ情報ファイルが置かれ、 "STREAM"ディレ クトリには、 1以上のクリップストリームファイルが置かれる。即ち、図 4では、 "CLIP"デ ィレクトリには、 3つのクリップ情報ファイル" 00001. CLP", "00002.CLP", "00003.CLP "が置かれており、 "STREAM"ディレクトリには、 3つのクリップストリームファイル" 0000 LPS", "00002.PS", "00003.PS"が置かれている。
[0096] クリップストリームファイルには、ビデオデータ、オーディオデータ、字幕データなど の 1以上のデータ (ストリーム)を圧縮、符号ィ匕して得られる 1以上のエレメンタリストリ ームを時分割多重化したプログラムストリームが格納されている。
[0097] クリップ情報ファイルには、対応するクリップストリームファイルの性質等の、クリップ ストリームに関する(ファイル)メタデータが記述されている。
[0098] 即ち、クリップストリームファイルとクリップ情報ファイルとは、 1対 1に対応している。
図 4では、クリップストリームファイルには、 5文字の数字 +ピリオド +"PS"という命名規 則にしたがって、ファイル名が付されており、クリップ情報ファイルには、対応するタリ ップストリームファイルと同一の 5文字の数字 +ピリオド +"CLP"という命名規則にした がって、ファイル名が付されている。
[0099] 従って、ファイルが、クリップストリームファイルまたはクリップ情報ファイルのうちのい ずれであるかは、ファイル名の拡張子 (ピリオドより右側の部分)によって識別すること ができ、さらに、対応するクリップストリームファイルとクリップ情報ファイルとは、フアイ ル名の拡張子以外の部分 (ピリオドより左側の部分)がー致するかどうかによって識別 することができる。
[0100] 以下、ディスク 101に記録された各ファイルの詳細について説明する。
[0101] 「PLAYLIST.DAT」
図 5は、図 4の' VIDEO"ディレクトリ下の" PLAYLIST.DAT"ファイルの内部構造(シ ンタクス (syntax))を示して 、る。
[0102] ここで、図 5において、 "Syntax〃の欄の記載がデータ構造を表し、 "No. of bits"の欄 の記載は、対応する行の" Syntax〃の欄のデータのビット長を表す。さらに、 "Mnemoni c"の欄の記載のうちの〃 bslb bit string left bit first)は、対応する行の" Syntax〃の欄 のデータが左のビットから送り出されることを意味し、 "uimsb unsigned integer most significant bit first)は、対応する行の" Syntax〃の欄のデータ力 符号なし整数値であ り、最上位ビットから送り出されることを意味する。以下説明する、図 5と同様の図につ いても、同様である。
[0103] "PLAYLIST.DAT"ファイルにおいては、その先頭から、その名称(ファイル名)等の 情報を記述するための namejength (8ビット)と name_string (255バイト)が順次配置さ れる。 [0104] 即ち、 namejengthは、その後に配置される name_stringのサイズを、バイト数で表す name_stringは、 "PLAYLIST.DAT"ファイルの名称(ファイル名 )を表す。
[0105] なお、 name_stringについては、その先頭から、 namejengthで表されるバイト数まで が有効な名称として使用される。たとえば namejengthが値 10である場合には、 name_s tringの先頭から 10バイト分が有効な名称として解釈される。
[0106] name_stringの後には、 number.of PlayLists (16ビット)が配置される。 number_of_Play Listsは、続く PlayListOの個数を表す。 number_of_PlayListsの後に、その number_of_Pla yListsの数だけの PlayListOが配置される。
[0107] PlayListOは、ディスク 101に記録されたクリップストリームファイルの再生手順が記 述されたプレイリストであり、以下のような内部構造を有する。
[0108] 即ち、 PlayListOの先頭には、 PlayList_data_length (32ビット)が配置される。 PlayList_ datajengthは、その PlayListOのサイズを表す。
[0109] PlayList— data— lengthの後には、 reserved— for— word— alignment (15ビット)と capture— ena ble_flag_PlayList (1ビット)力順次配置される。 15ビットの reserved_for_word_alignmentは 、その後に配置される 1ビットの capture_enable_flag_PlayListの位置で、いわゆるワード ァライン (word alignment)をとるため(16ビットの位置に揃えるため)に配置される。 cap ture_enable_flag_PlayListは、 PlayListOによって再生されるビデオストリームに対応す るビデオデータ(PlayListOに属するビデオデータ)の、光ディスク 101が再生される図 1のディスク装置内での 2次利用を許可するか否かを表す 1ビットのフラグである。 cap ture_enable_flag_PlayListが、 0または 1のうちの、例えば 1である場合、 PlayListOに属 するビデオデータの 2次利用が許可されて 、ることを表し、 capture_enable_flag_PlayLi stが、 0または 1のうちの、例えば 0である場合、 PlayListOに属するビデオデータの 2 次利用が許可されて 、な ヽ (禁止されて 、る)ことを表す。
[0110] なお、図 5では、 capture_enable_flag_PlayListを 1ビットとしたが、その他、 capture_ena ble _flag_PlayListは、複数ビットで構成し、 PlayListOに属するビデオデータの 2次利用 を、いわば段階的に許可するようにすることが可能である。即ち、 capture_enable_flag_ PlayListは、例えば、 2ビットで構成することができる。そして、 capture_enable_flag_Play Listの値が 00B (Bは、その前の数字が 2進数であることを表す)である場合には、ビデ ォデータの 2次利用を禁止し、 capture_enable_flag_PlayListの値力 1Βである場合に は、ビデオデータを、 64 X 64ピクセル以下のサイズに縮小して利用する 2次利用のみ を許可することができる。また、 capture_enable_flag_PlayListの値が 10Bである場合に は、サイズの制限なしで、ビデオデータの 2次利用を許可することができる。
[0111] さらに、上述のように、ビデオデータの 2次利用にあたって、サイズに制限を設ける のではなぐ用途に制限を設けるようにすることも可能である。即ち、 capture_enable_fl ag_PlayListの値が 01Bである場合には、ビデオコンテンツ再生アプリケーション 210 ( 図 2)のみでの 2次利用を許可し、 capture_enable_flag_PlayListの値が 10Bである場合 には、図 1のディスク装置内の、ビデオコンテンツ再生アプリケーション 210を含む任 意のアプリケーションによる 2次利用を許可することができる。ここで、図 1のディスク装 置内のビデオコンテンツ再生アプリケーション 210以外のアプリケーションとしては、 例えば、壁紙 (バックグラウンド)やスクリーンセーバーの表示の処理を行うアプリケー シヨンなどがある。
[0112] なお、 capture_enable_flag_PlayListを、上述のように、 2ビットとした場合、その前に配 置される reserved_for_word_alignmentは、ワードァラインをとるために、 14ビットとなる。
[0113] また、 capture_enable_flag_PlayListにより、ビデオデータのディスク装置内での 2次利 用を許可する他、ディスク装置外での 2次利用を許可するようにすることも可能である 。ここで、ビデオデータの、ディスク装置外での 2次利用を許可する場合には、ビデオ データは、例えば、ディスク装置に着脱可能な記録媒体やディスク装置に接続可能 な他の装置に着脱可能な記録媒体に記録され、あるいはインターネット等のネットヮ ークを介して、他の装置に送信 (配信)される。この場合、ビデオデータには、そのビ デォデータを記録媒体に記録する回数や配信する回数を制限する情報を付加する ようにすることができる。
[0114] capture— enable—flag— PlayListに続!、ては、 PlayList— name—length (8ビット)と PlayList— n ame_string (255バイト)とが順次配置される。 PlayList_name_lengthは、その後に配置さ れる PlayList_name_stringのサイズを、バイト数で表し、 PlayList_name_stringは、 PlayLi stOの名称を表す。 [0115] PlayList_name_stringの後には、 number_of_PlayItems (16ビット)が配置される。 numbe r_of_PlayItemsは、続く PlayltemOの個数を表す。
[0116] number_of_PlayItemsの後には、その number_of_PlayItemsの数だけの PlayltemOの構 造が記述される。
[0117] ここで、 1つの PlayListOでは、 PlayltemO単位で、コンテンツの再生手順を記述する ことができる。
[0118] また、 PlayListOの中の、 number_of_PlayItemsの数だけの PlayltemOそれぞれに対し ては、その PlayListOの中でユニークな ID(Identification)が付される。即ち、 PlayListO 中の最初の PlayltemOには、 IDとして 0番が付され、以下、続く PlayltemOに対して、そ の出現順に、 1番、 2番、 · · ·と通し番号の IDが付される。
[0119] number_of_PlayItemsの数だけの PlayltemOの後には、 1つの PlayListMarkOが配置さ れる。 PlayListMarkOは、 PlayListOにしたがって行われる再生の時間軸上の印となる 後述する MarkOの集合で、その詳細については、図 7を参照して後述する。
[0120] 「PlayItem0の説明」
次に、図 6は、図 5の PlayListOに含まれる PlayltemOの内部構造を示している。
[0121] PlayltemOの先頭には、 length (16ビット)が配置され、 lengthは、それを含む Playltem ()のサイズを表す。
[0122] lengthに fee ヽては、し lip— Information— file— name— length (16ヒット)とし lip— Information— fil e_name (可変長)が順次配置される。 Clipjnformationjilejiamejengthは、その後に配 置される Clip_Information_file_nameのサイズを、バイト数で表す。 Clip_Information_file— nameは、 PlayltemOによって再生するクリップストリームファイル(図 4の拡張子が PSの ファイル)に対応するクリップ情報ファイル(図 4の拡張子が CLPのファイル)のファイル 名を表す。なお、クリップストリームファイルおよびクリップ情報ファイルのファイル名の 、上述した命名規則により、 Clip_Information_file_nameから、 PlayltemOによって再生 するクリップ情報ファイルのファイル名を認識し、そのクリップストリームファイルを特定 することができる。
[0123] Clip_Information_file_nameに続 、ては、 IN.time (32ビット)と OUT_time (32ビット)が順 次配置される。 [0124] IN_timeと OUT_timeは、それぞれ、 ClipJnformation_file_nameから特定されるクリップ ストリームファイルの再生開始位置と再生終了位置を指定する時刻情報である。
[0125] IN_timeによれば、クリップストリームファイルの(先頭を含む)途中の位置を再生開始 位置として指定することができ、 OUT_timeによれば、クリップストリームファイルの(最 後を含む)途中の位置を再生終了位置として指定することができる。
[0126] ここで、 PlayltemOによれば、 Clip_Information_file_nameから特定されるクリップストリ ームファイルの、 IN_timeから OUT_timeまでの間のコンテンツが再生される。この Playlt emOによって再生されるコンテンツを、以下、適宜、クリップという。
[0127] 「PlayListMarkOの説明」
次に、図 7は、図 5の PlayListOに含まれる PlayListMarkOの内部構造を示している。
[0128] PlayListMarkOは、上述したように、その PlayListMarkOを含む PlayListO (図 5)にし たがって行われる再生の時間軸上の印となる、 0以上の MarkOの集合である。 1つの MarkOは、 PlayListOにしたがって行われる再生の時間軸上の 1つの時刻(位置)を表 す時刻情報、 MarkOのタイプを表すタイプ情報、およびタイプ情報力 Sイベントを発生さ せるタイプを表しているときの、そのイベントの引数となる引数情報を、少なくとも有す る。
[0129] 即ち、 PlayListMarkOの先頭には、 length (32ビット)が配置される。 lengthは、それを 含む PlayListMarkOのサイズを表す。
[0130] lengthの後には、 number— of— PlayList— marks (16ビット)が配置され、 number— of— PlayLi stjnarksは、それに続いて配置される MarkOの個数を表す。 number_of_PlayList_mark sの後には、その number_of_PlayList_marksの数だけ MarkOの構造が記述される。
[0131] MarkOの先頭には、 mark_type (8ビット)が配置される。 mark_typeは、上述のタイプ 情報であり、それを含む MarkOのタイプを表す。
[0132] 本実施の形態では、 MarkOのタイプとして、例えば、チヤプタ (Chapter)、インデクス (I ndex)、イベント (Event)の 3種類が用意されて!、る。
[0133] タイプがチヤプタの MarkO (以下、適宜、チヤプタマークと 、う)は、 PlayListOを分割 する頭出しの単位であるチヤプタの先頭位置の印である。また、タイプがインデタスの
MarkO (以下、適宜、インデクスマークという)は、チヤプタを細分ィ匕した単位であるィ ンデタスの先頭位置の印である。タイプがイベントの MarkO (以下、適宜、イベントマー クという)は、 PlayListOにしたがったコンテンツの再生中においてイベントを発生させ る位置の印である。イベントマークによるイベントの発生は、後述するように、スクリプト 制御モジュール 211に通知される。
[0134] ここで、 mark_typeの値と、 MarkOのタイプとの関係を、図 8に示す。図 8によれば、チ ャプタマークの markj peには、 1力セットされる。また、インデクスマークの mark_type には、 2がセットされ、イベントマークの markj peには、 3がセットされる。なお、図 8で は、 mark_typeで表される 8ビットの値のうちの、 0と、 4乃至 255は、将来の拡張のため の予約 (reserved)とされて 、る。
[0135] 図 7に戻り、 mark_typeの後には、 mark_name_length (8ビット)が配置される。また、 Ma rk()の最後には、 mark— name— string (24ノイト)が酉己置される。 mark— name—lengthと mark— name_stringは、 MarkOの名称を記述するためのものであり、 mark_name_lengthは、 mar k_name_stringの有効なサイズを、 mark_name_stringは、 MarkOの名称を、それぞれ表 す。従って、 mark— name— stringの先頭力ら mark— name—lengths表すノイト数まで;^、 M arkOの有効な名称を表す。
[0136] mark_name_lengthに続 、ては、 PlayListO上で定義される MarkOをクリップストリーム ファイルと対応付ける 4つの要素 ref_to_PlayItemjd (16ビット)、 mark_time_stamp (32ビ ット)、 entry_ES_stream_id (8ビット)、 entry_ES_private_stream_id (8ビット)力順次配置さ れる。
[0137] reむ o_PlayItem_idには、 MarkOが属する PlayltemOに対して通し番号で付された IDが 記述される。 reむ o_PlayItemjdによって、 MarkOが属する PlayltemO (図 6)が特定され 、ひいては、図 6で説明したように、クリップ情報ファイルとクリップストリームファイルが 特定される。
[0138] mark_time_stampは、 ref_to_PlayItemjdによって特定されるクリップストリームファイル 内での MarkOが表す位置(時刻)を表す。
[0139] ここで、図 9は、 PlayListO, PlayItemO、クリップ、およびクリップストリームファイルに 格納されたプログラムストリームの関係を示している。
[0140] 図 9では、 PlayListOは、 3つの PlayltemOから構成されており、その 3つの PlayltemO それぞれには、通し番号で付される ID#0, #1, #2が付されている。ここで、以下、適宜 、 IDffiが付された PlayltemOを、 Playltem#iと記述する。
[0141] また、図 9では、 Playltem#0, Playltem#l, Playltem#2によって再生されるコンテンツ であるクリップ力 それぞれ、クリップ A、クリップ B、クリップ Cとして示されている。
[0142] クリップの実体は、図 6の PlayltemOにおける Clip_Information_file_nameから特定され る(クリップ情報ファイルから、さらに特定される)クリップストリームファイルに格納され たプログラムストリームのうちの、 IN_timeから OUT_timeまでのプログラムストリームであ る。図 9では、クリップ A、クリップ B、クリップ Cの実体としてのプログラムストリームが、 プログラムストリーム A、プログラムストリーム B、プログラムストリーム Cとして、それぞれ 示されている。
[0143] 例えば、図 9において、 PlayListOにしたがって行われる再生の時間軸上の位置(時 刻) tOの印となる MarkOにおいては、その ref_to_PlayItem_idと mark_time_stampは、次 のように記述される。
[0144] 即ち、時刻 t0は、 Playltem#lの再生が行われる時刻であるため、 ref_to_PlayItemjd には、その Playltem#lの IDである 1が記述される。さらに、時刻 t0では、 Playltem#lに よって、クリップ Bの実体であるプログラムストリーム Bが再生されるため、 mark_time_st ampには、プログラムストリーム Bが格納されたクリップストリームファイルにおける時刻 t 0に相当する時刻が記述される。
[0145] 再び、図 7〖こ戻り、 entry_ES_stream_idと、 entry_ES_private_stream_idは、 MarkOを、 特定のエレメンタリストリームに関連付ける場合に、そのエレメンタリストリームを特定 するために使用される。即ち、 entry_ES_stream_idには、 MarkOを関連付けるエレメン タリストリーム(が配置される、後述する図 16乃至図 18に示す PES_packet0)の後述す る stream— id 己 される。ま 7こ、 entry— ES— private— stream— idには、必要に J し L、 Mar k0を関連付けるエレメンタリストリーム(が配置される、後述する図 21に示す private_st reaml— PE¾— payloadOにおけ private— headerO)の後述する private— stream— id力 己 さ れる。
[0146] 例えば、ビデオストリーム # 1とビデオストリーム # 2が多重化されているクリップにお いて、ビデオストリーム # 1を再生している場合と、ビデオストリーム # 2を再生してい る場合でチヤプタの発生時刻を変更したいときには、ビデオストリーム # 1再生時のチ ャプタマーク発生時刻の MarkOの entry_ES_stream_idと entry_ES_private_stream_idに、 ビデオストリーム # 1の streamjdと private_stream_idが記述され、また、ビデオストリー ム # 2再生時のチヤプタマーク発生時刻の Mark ()の entry_ES_stream_idと entry_ES_pr ivate_stream_idに、ヒァォストリーム #
Figure imgf000030_0001
[0147] なお、特定のエレメンタリストリームに関連付けない MarkOの entry_ES_streamjdと、 e ntry_ES_private_stream_idには、例えば、いずれも 0が記述される。
[0148] entry_ES_private_stream_idの後には、 mark.data (32ビット)が配置される。 mark_data は、 MarkOがイベントマークである場合に、そのイベントマークによって発生されるィ ベントの引数となる引数情報である。なお、 mark_dataは、 MarkOがチヤプタマークゃィ ンデタスマークである場合に、そのチヤプタマークやインデクスマークが表すチヤプタ やインデタスの番号として使用することも可能である。
[0149] 「ClipOの説明」
次に、図 4の" CLIP"ディレクトリに置かれる、拡張子が CLPのクリップ情報ファイルの 内部構造について説明する。
[0150] 図 4では、 "CLIP"ディレクトリに、 3つのクリップ情報ファイル" 00001. CLP", "00002.
CLP", "00003.CLP"が置かれており、それぞれには、 "STREAM〃ディレクトリに置か れたクリップストリームファイル" 00001.PS", "00002.PS", "00003.PS"の性質等を示す メタデータが格納されて 、る。
[0151] 図 10は、そのようなクリップ情報ファイル ClipOの内部構造を示している。
[0152] クリップ情報ファイル ClipOの先頭には、 presentation_start_timeと presentation_end_ti me (いずれも 32ビット)力 川頁次配置される。 presentation— start— timeと presentation— en d_timeは、クリップ情報ファイル ClipOに対応するクリップストリームファイル(に格納さ れているプログラムストリーム)の先頭と最後の時刻を表す。なお、クリップストリームフ アイルの時刻は、 MPEG2-Systemの時刻で使われて!/、る 90kHzの倍数で記述される。
[0153] presentation— end— timeに続 、て【ま、 reserved— for— word— alignment (7ヒット)と capture— e nable_flag_Clip (1ビット)が順次配置される。 7ビットの reserved_for_word_alignmentは、 ワードァラインをとるためのもので、 capture_enable_flag_Clipは、上述した図 5の captur e_enable_flag_PlayListと同様に、ビデオデータの 2次利用を許可するか否かを表すフ ラグである。
[0154] 但し、図 5の capture_enable_flag_PlayListは、 PlayListOによって再生されるビデオスト リームに対応するビデオデータ (PlayListOに属するビデオデータ)の 2次利用を許可 するか否かを表すのに対して、図 10の capture_enable_flag_Clipは、クリップ情報フアイ ル ClipOに対応するクリップストリームファイルに格納されて ヽるビデオストリーム(ビデ ォのエレメンタリストリーム)に対応するビデオデータの 2次利用を許可するか否かを 表す。従って、図 5の capture— enable—flag— PlayListと、図 10の capture— enable—flag— Clip とでは、 2次利用を許可するビデオデータの単位 (範囲)が異なる。
[0155] なお、図 10の capture_enable_flag_Clipも、図 5の capture_enable_flag_PlayListで説明 したように、 1ビットではなぐ複数ビットとすることが可能である。
[0156] capture_enable _flag_Clipの後には、 number_of_streams (8ビット)が配置され、この nu mber_of_streamsには、それに続く StreamlnfoO構造の個数が記述される。従って、 num ber_of_streamsに続 、ては、その number_of_Streamsの数だけ、 StreamlnfoOの構造が 記述される。
[0157] StreamlnfoOの先頭には、 length (16ビット)が配置され、この lengthは、それを含む St reamlnfoOのサイズを表す。 lengthに続いては、 stream_id (8ビット)と private_stream_id ( 8ビット)力 S酉己置されており、この streamjdと private_stream_idによって、 StreamlnfoOに 関連付けるエレメンタリストリームが特定 (識別)される。
[0158] ここで、図 11は、エレメンタリストリームを識別する streamjdおよび private_stream_id と、エレメンタリストリームとの関係を示している。
[0159] streamjdは、 MPEG2- System規格において規定されているのと同一のものであり、 その値は、 MPEG2- System規格において、エレメンタリストリーム(データ)の属性(種 類)ごとに、あらかじめ決められている。従って、 MPEG2-System規格で定義されてい る属性のエレメンタリストリームは、 streamjdだけで特定することができる。
[0160] 本実施の形態では、 MPEG2-System規格にお!、て規定されて!ヽな 、属性のエレメ ンタリストリームも扱うことが可能になっており、 private_stream_idは、 MPEG2- System 規格にぉ 、て規定されて 、な 、属性のエレメンタリストリームを識別するための情報 である。
[0161] 図 11では、 MPEGで規定されている符号化 (復号)方式でエンコードされたビデオ のエレメンタリストリーム、 ATRAC(Adaptive TRansform Acoustic Coding)方式でェン コードされたオーディオのエレメンタリストリーム(以下、適宜、 ATRACオーディオストリ ームという)、 LPCM(Linear Pulse Code Modulation)方式でエンコードされたオーディ ォのエレメンタリストリーム(以下、適宜、 LPCMオーディオストリームという)、字幕のェ レメンタリストリーム(以下、適宜、字幕ストリームという)の 4つの属性のエレメンタリスト リームにっ 、て、 streamjdおよび private_stream_idとの関係を示して 、る。
[0162] MPEG2-System規格では、 MPEGで規定されている符号化方式でエンコードされた ビデオのエレメンタリストリームは、 OxEO乃至 OxEFの範囲の値を(Oxは、その後に続く 文字列が 16進数であることを表す)、エレメンタリストリームを識別する streamjdとして 用いて多重化することが規定されている。従って、 MPEGで規定されている符号ィ匕方 式でエンコードされたビデオのエレメンタリストリームについては、 OxEO乃至 OxEFの範 囲の値の stream jdで識別することができる 16本のビデオのエレメンタリストリームを、 プログラムストリームに多重化することができる。
[0163] なお、 MPEGで規定されている符号化方式でエンコードされたビデオのエレメンタリ ストリームの識別は、 OxEO乃至 OxEFの範囲の値の streamjdで行うことができるので、 p rivate_stream_idは不要である(無視することができる)。
[0164] 一方、 MPEG2— Systemでは、 ATRACオーディオストリーム、 LPCMオーディオストリ ーム、字幕ストリームについては、 streamjdは定義されていない。
[0165] そこで、本実施の形態では、 MPEG2-Systemで streamjdが定義されて!ヽな 、エレメ ンタリストリームにっ ヽては、その streamjdに、 MPEG2-Systemにお ヽて private_strea m_lという属性を表す値である OxBDを採用し、さらに、図 11に示すように、 private_stre amjdを用いて識別(特定)を行うこととして 、る。
[0166] 即ち、 ATRACオーディオストリームの識別には、 0x00乃至 OxOFの範囲の値の privat e_streamjdが使用される。従って、プログラムストリームには、 16本の ATRACオーディ ォストリームを多重化することができる。また、 LPCMオーディオストリームの識別には 、 0x10乃至 OxlFの範囲の値 private_stream_idが使用される。従って、プログラムストリ ームには、 16本の LPCMオーディオストリームを多重化することができる。さらに、字幕 ストリームの識別には、 0x80乃至 0x9Fの範囲の値の private_stream_idが使用される。 従って、プログラムストリームには、 32本の字幕ストリームを多重化することができる。
[0167] なお、 streamjdおよび private_stream_idについては、さらに後述する。
[0168] 図 ΙΟίこ决り、 private— stream— idの後【こ ί 、 StaticInfoO, reserved— for— word— alignment ( 8ビット)が順次配置される。 StaticInfoOには、(その StaticInfoOを含む StreamlnfoOに 記述された) streamjdおよび private_stream_idによって特定されるエレメンタリストリー ムの再生中に変化しない情報が記述される。 StaticInfoOの詳細については、図 12を 参照して後述する。
[0169] reserved_for_word_alignmentは、ワードァラインをとるために使用される。
[0170] reserved— for— word— alignmentに ヽ飞 、 number— of— Dynamiclnfo (8ヒットノ力 S目置 れ、 number_of_DynamicInfoは、その後に続 、て配置される pts_change_point (32ビット) と DynamicInfoOのセットの数を表す。
[0171] 従って、 number_of_DynamicInfoに続いては、その number_of_Dynamidnfoの数だけ のセット数の pts_change_pointと DynamicInfoOの構造が記述される。
[0172] pts_change_pointは、それとセットになって!/、る DynamicInfoOの情報が有効になる時 刻を表す。ここで、エレメンタリストリームの先頭の時刻を表す pts_change_pointは、そ のエレメンタリストリームが格納されたクリップストリームファイルに対応するクリップ情 報ファイル ClipOの最初に記述される presentation_start_timeに等しい。
[0173] DynamicInfoOには、 streamjdおよび private_stream_idによって特定されるエレメンタ リストリームの再生中に変化する、いわば動的な情報が記述される。 DynamicInfoOに 記述された情報は、それとセットになって!/、る pts_change_pointが表す再生時刻となつ たときに有効になる。なお、 DynamicInfoOの詳細については、図 13を参照して後述 する。
[0174] number_of_DynamicInfoの数だけのセットの pts_change_pointと DynamicInfoOの後に は、 EP_map0が配置される。なお、 EP_map0については、図 14を参照して後述する。
[0175] 「StaticInfoOの説明」
次に、図 12を参照して、図 10の StaticInfoOの詳細について説明する。 [0176] 図 12は、 StaticInfoOのシンタクスを示している。
[0177] StaticInfoOは、対応するエレメンタリストリームの属性 (種類)により内容が異なって いる。 StaticInfoOに対応するエレメンタリストリームの属性は、その StaticInfoOを含む 図 10の StreamlnfoOに含まれる streamjdと private_stream_idにより判断される。
[0178] StaticInfoOに対応するエレメンタリストリームがビデオストリームである場合 (stream== VIDEO), StaticInfoOは、 picture— size (4ビット), frame— rate (4ビット),および cc— flag ( 1 ビット)と、ワードァラインをとるための reserved_for_word_alingmentとで構成される。
[0179] picture_sizeは、ビデオストリームに対応するビデオデータ(によって表示される画像 )の大きさを表す。 frame_rateは、ビデオストリームに対応するビデオデータのフレーム 周波数を表す。 cc_flagは、ビデオストリームにクローズドキャプション (Closed Caption) データが含まれているか否かを表す。即ち、例えば、ビデオストリームにクローズドキ ャプシヨンデータが含まれている場合には、 cc_flagは 1とされ、ビデオストリームにクロ ーズドキャプションデータが含まれて 、な 、場合には、 ccjkgは 0とされる。
[0180] StaticInfoOに対応するエレメンタリストリームがオーディオストリームである場合 (strea m==AUDIO)、 StaticInfoOは、 audio— language— code ( 16ビット) , channel—connguration (8 ビット), lfe— existence ( 1ビット)、および sampling— frequency (4ビット)と、ワードァライン をとるための reserved_for_word_alingmentとで構成される。
[0181] audio_language_codeには、オーディオストリームに含まれて 、るオーディオデータの 言語を表すコードが記述される。 channeLconfigurationは、モノラノレ (mono)/ステレオ (s tereo)/マルチチャネル等の、オーディオストリームに含まれて!/、るオーディオデータ の属性を表す。 lfe_existenceは、オーディオストリームに低域強調チャネルが含まれて いる力どう力を表し、含まれていれば 1となり、含まれていなければ 0となる。 samplingj requencyは、オーディオストリームに含まれて!/、るオーディオデータのサンプリング周 波数を示す情報である。
[0182] StaticInfoOに対応するエレメンタリストリームが字幕ストリームである場合 (stream==S UBTITLEA StaticInfoO ί 、 subtitle— language— code (lb cット)および configurable— flag ( 1ビット)と、ワードァラインをとるための reserved_for_word_alingmentとで構成される。
[0183] subtitle_language_codeには、字幕ストリームに含まれて 、る字幕データの言語を表 すコードが記述される。 configurable_flagは、字幕ストリームに含まれている字幕デー タの表示をデフォルトの表示方式力 変更することを許可する力否かを表す情報で、 例えば、表示方式の変更が許可されている場合には 1が記述され、許可されていな い場合には 0が記述される。なお、字幕データの表示方式としては、字幕データの表 示サイズや、表示位置、表示色、表示パターン (例えば、点滅表示など)、表示方向( 例えば、垂直方向や水平方向)などがある。
[0184] 「DynamicInfo()の説明」
次に、図 13を参照して、図 10の DynamidnfoOの詳細について説明する。
[0185] 図 13は、 DynamidnfoOのシンタクスを示している。
[0186] DynamidnfoOの先頭には、ワードァラインのための reserved_for_word_alignment (8ビ ット)が配置されており、その後に続く要素は、 DynamidnfoOに対応するエレメンタリス トリームの属性により内容が異なって 、る。 DynamidnfoOに対応するエレメンタリストリ ームの属性は、図 12で説明した StaticInfoOにおける場合と同様に、 DynamidnfoOを 含む図 10の StreamlnfoOに含まれる streamjdと private_stream_idにより判断される。
[0187] DynamidnfoOには、図 10で説明したように、エレメンタリストリームの再生中に変化 する動的な情報が記述される。この動的な情報は、特に限定されるものではないが、 図 13の実施の形態では、 DynamidnfoOに対応するエレメンタリストリームに対応する データ、即ち、エレメンタリストリームが処理されることによって出力されるデータの出 力属性 (エレメンタリストリーム力 得られるデータの出力属性)力 DynamidnfoOに記 述される。
[0188] 具体的には、 DynamidnfoOに対応するエレメンタリストリームがビデオストリームであ る場合 (stream==VIDEO)、 DynamidnfoOは、 display— aspect— ratio (4ビット)と、ワードァ フィンの 7こめの reserved— for— word— alingmentとで構成される。 diplay— aspect— ratioには、 ビデオストリームに対応するビデオデータの出力属性 (表示方式)としての、例えば、 そのビデオデータのアスペクト比が記述される。即ち、 diplay_aspect_ratioには、例え ば、アスペクト比が、 16:9または 4:3のうちのいずれであるかを表す情報が記述される 。なお、ビデオストリームの DynamidnfoOには、アスペクト比の他、例えば、ビデオデ ータによって表示される画像のサイズ (X画素 X Y画素)などを記述することが可能で ある。
[0189] DynamicInfoOに対応するエレメンタリストリームがオーディオストリームである場合 (st ream==AUDIO) DynamicInfoOは、 channel—assignment (4ビット)と、ワードァラインをと るための reserved— for— word— aiingmentとで構成 れる。 channel— assignmentには、才 ~~ ディォストリームに 2チャネルのオーディオデータが含まれている場合に、その 2チヤ ネルの出力属性(出力方式)が記述される。即ち、 channeLassignmentには、オーディ ォデータが、ステレオまたはデュアル(ニケ国語)のうちのいずれのチャネル割り当て 力 Sされているものであるかを表す情報が記述される。
[0190] DynamicInfoOに対応するエレメンタリストリームが字幕ストリームである場合 (stream= =SUBTITLE)、 DynamicInfoOは、ワードァラインをとるための reserved_for_word_alingme ntで構成される。即ち、図 13の実施の形態では、字幕ストリームに関しては、動的な 情報としての出力属性は定義されて ヽな ヽ。
[0191] 「EP_map0の説明」
次に、図 14を参照して、図 10の EPjnapOの詳細について説明する。
[0192] 図 14は、 EPjnapOのシンタクスを示している。
[0193] EPjnapOには、その EPjnapOを含む図 10のクリップ情報ファイル ClipOに対応するク リップストリームファイルに格納されたプログラムストリームに多重化されているエレメン タリストリーム毎に、各エレメンタリストリームの、デコードを開始することができるデコー ド開始可能点 (エントリポイント)の情報が記述される。
[0194] ここで、固定レートのストリームについては、デコード開始可能点は、計算によって 求めることができるが、可変レートのストリーム、あるいは MPEG規格にしたがって符号 化されたビデオストリームのように、ビデオアクセスアクセスユニットごとにサイズが異 なるストリームについては、デコード開始可能点は、計算によって求めることができず 、実際にストリームを解析しないと見つけることができない。デコード開始可能点を迅 速に認識することは、ランダムアクセスを行うために重要であり、 EPjnapOによれば、 デコード開始可能点を迅速に認識することができる。
[0195] なお、 MPEG2- Videoでは、 Sequence— headerO (シーケンスヘッダ)等を含めたイント ラビクチャの先頭力 デコード開始可能点である。 [0196] EP_mapOの先頭には、ワードァラインのための reserved_for_word_alignment (8ビット) が配置されており、続いて number_of_streamjd_entries (8ビット)が配置されている。 nu mber_of_stream_id_entriesは、 EP_mapOにデコード開始可能点の情報が記述されてい るエレメンタリストリームの本数を表す。
[0197] number_of_stream_id_entriesの後には、エレメンタリストリームを識別するための情報 と、そのエレメンタリストリームのデコード開始可能点の情報と力 number_of_stream_id _entriesが表す数だけ繰り返し配置される。
[0198] 即ち、 number_of_streamjd_entriesの直後には、エレメンタリストリームを識別する情 報としての stream_id (8ビット)と private_stream_id (8ビット)が配置され、それに続けて、 number_of_EP_entries (32ビット)が配置される。 number_of_EP_entriesは、その直前の st reamjdと private_stream_idで識別(特定)されるエレメンタリストリームのデコード開始 可能点の数を表す。
[0199] number_of_EP_entriesの後には、その直前の streamjdと private_stream_idで特定され るエレメンタリストリームのデコード開始可能点の情報としての PTS_EP_start (32ビット) と RPN_EP_start (32ビット)とのセットが、 number_of_EP_entriesが表す数だけ繰り返し配 置される。
[0200] デコード開始可能点の情報の 1つである PTS_EP_startは、上述のよう〖こ streamjdと p rivate_stream_idで特定されるエレメンタリストリームが多重化されているプログラムスト リームが格納されたクリップストリームファイル内での、デコード開始可能点の時刻(再 生時刻)を表す。
[0201] デコード開始可能点の情報の他の 1つである RPN_EP_startには、上述のように strea m_idと private_stream_idで特定されるエレメンタリストリームが多重化されているプログ ラムストリームが格納されたクリップストリームファイル内での、デコード開始可能点の 位置を、プログラムストリームの packO単位で数えたときの値が記述される。なお、本 実施の形態では、 packOのサイズは 2048バイトで固定であるとする。また、本実施の 形態では、ディスク 101 (図 1)の 1セクタ力 2048バイトであるとする。
[0202] ここで、ビデオストリームについては、そのデコード開始可能点(エントリポイント)の 直前に、後述する private_stream_2パケット(private_stream_2の属性の PES_packet()) 力 s配置されている。 private_stream_2パケットは、その private_stream_2パケットから、次 の private_stream_2パケットまでの間に配置されているビデオストリームをデコードする のに利用される情報が格納されている。このため、ビデオストリームについては、デコ ード開始可能点の情報としての RPN_EP_startには、実際のデコード開始可能点その ものではなく、実際のデコード開始可能点の直前に配置されて!、る private_stream_2 パケットの先頭の位置が記述される。
[0203] また、 EP_map()において、デコード開始可能点の情報としての PTS_EP_startと RPN_E P_startとのセットは、 streamjdと private_stream_idで特定されるエレメンタリストリームご とに、あら力じめ、昇順にソートされている。これにより、デコード開始可能点の情報と しての PTS_EP_startと RPN_EP_startとのセットは、二分探索が可能となって 、る。
[0204] なお、可変レートのストリームや、ビデオアクセスアクセスユニットごとにサイズが異な るストリームを対象としたランダムアクセスの方法は、例えば、特開 2000-341640号公 報 (特願平 11- 317738号)などに記載されて!、る。
[0205] 「クリップストリームファイルの説明」
次に、図 4の" STREAM"ディレクトリに置かれる、拡張子が PSのクリップストリームファ ィル(図 4では、 "00001.PS", "00002.PS", "00003.PS")の内部構造について説明す る。
[0206] クリップストリームファイルは、 MPEG- 2 System (ISO/IEC 13818- 1)に定義された MP
EG2_Program_StreamOをベースに構成されている。
[0207] 即ち、図 15は、 MPEG-2 System(ISO/IEC 13818-1:2000)規格に記述されている Ta ble2-31, Table2-32, Table2- 33を示している。
[0208] クリップストリームファイルに格納されたプログラムストリームは、 MPEG- 2 System規 格の Table2- 31に定義されて!、る MPEG2_Program_Stream()であり、 1つ以上の packO と、 1つの MPEG_program_end_codeで構成される。なお、 MPEG2_Program_Stream()の 説明は、特許第 2785220号などにも記載されている。
[0209] 1つの packOは、 MPEG- 2 System規格の Table2- 32に定義されているように、 1つの
Pack_header0と、任意の数の PES_packet()とで構成される。 Pack_header0の詳細は、
MPEG- 2 System規格の Table2- 33に定義されて!ヽる。 [0210] ここで、 MPEG- 2 System規格では、 pack()のサイズは、可変長として定義されて 、る 力 ここでは、図 14で説明したように、 2048バイトで固定であるとする。さらに、ここで は、 1つの packOの PES_packetOの数は、 1つ、 2つ、または 3つとする。 PackOが後述 する private_stream_2パケットで始まる場合、その直後(同じ PackO内)に対応するビデ ォストリームの PES_packet()が必ず存在する。またこれに加えて 3つ目の PES_packetO として padding_packet (パディングパケット)を置くことができる。なお private_stream_2 ケットは必ず PackOの先頭におかれる。
[0211] PackO力 ¾rivate_stream_2パケットで始まらな!/、場合には、 PackOの先頭にはビデオ、 オーディオ、字幕などのコンテンツデータの格納された PES_packetOが置かれる。これ に加えて 2つ目の PES_packetOとして padding_packet (パディングパケット)を置くことが できる。
[0212] 図 16乃至図 18は、 MPEG- 2 System規格の Table2- 17で定義されている PES_packet 0を示している。
[0213] PES— packetOは、 packet— start— code— prefix, stream— id、および PE¾— packet— length (図 16)と、 streamjd等により構造の変化するヘッダ部分(stuffing_byteを含む)(図 16乃 至図 18)と、 PES_packet_data_byte (図 18)とに大別することができる。なお、 PES_pack etO力 padding— packetで ¾>る場合 (stream— id==padding— stream)、 PE¾— packet— data— Dyt eに代えて、 padding_byte(0xFF) (図 18)が必要な数だけ繰り返し配置される。
[0214] ここで、 PES_packet()のヘッダ部分には、図 16および図 17に示すように、 PTS(Prese ntation Time Stamp)と呼ばれる表示タイミングを示す情報と、 DTS(Decoding Time Sta mp)と呼ばれるデコードタイミングを示す情報とを配置することができる。本実施の形 態では、すべてのアクセスユニット(MPEG2- Systemで定義された、エレメンタリストリ ームを構成するデコード単位)に対して PTSが付加され、 MPEG2- Systemに定める場 合に DTSが付加されるとする。
[0215] プログラムストリームに多重化されるエレメンタリストリームは、 PES_packet0の PES_pa cket_data_byte (図 18)に格納される。そして、 PES_packet0の streamjdには、その PES _packet_data_byteに格納されたエレメンタリストリームを識別するために、そのエレメン タリストリームの属性に応じた値が記述される。 [0216] PES_packetOの streamjdに記述される値と、エレメンタリストリームの属性(種類)との 関係は、 MPEG- 2 System規格の Table 2-18に定義されている。ここで、図 19に、 MP
EG- 2 System規格の Table 2- 18を示す。
[0217] 本実施の形態では、図 19に示した MPEG-2 System規格で定義されている streamj dのうちの、例えば、図 20に示す値を採用する。
[0218] 即ち、本実施の形態では、 10111101B, 10111110B, 10111111B, llOxxxxxB, 1110 xxxxBの 5パターンを、 streamjdの値として採用する。なお、 "x"は、 0または 1のうちの 任意の値を表す。
[0219] そして、 private_stream_lと呼ばれる属性のエレメンタリストリームの PES_packetOの st reamjdは、図 20にしたがい、 10111101Bとされる。また、 padding_packetの PES_packet ()の streamjdは、図 20にした力^、、 10111110Bとされる。さらに、 private_stream_2と呼 ばれる属性のエレメンタリストリームの PES_packetOの streamjdは、図 20にしたがい、 1 0111111Bとされる。
[0220] また、 MPEGで定義されたオーディオストリーム(オーディオのエレメンタリストリーム) の PES_packetOの streamjdは、 llOxxxxxBとされる。なお、 llOxxxxxBのうちの下位 5ビ ット xxxxxは、オーディオストリームを区別するオーディオストリームナンパであり、プロ グラムストリーム(MPEG2_Program_StreamO)には、このオーディオストリームナンパで 区別することのできる数である 32 ( = 25)本のオーディオストリーム (MPEGで定義され たオーディオストリーム)を多重化することができる。
[0221] さらに、 MPEGで定義されたビデオストリーム(ビデオのエレメンタリストリーム)の PES _packet()の streamjdは、 ΙΙΙΟχχχχΒとされる。なお、 ΙΙΙΟχχχχΒのうちの下位 4ビット xx XXは、ビデオストリームを区別するビデオストリームナンパであり、プログラムストリーム には、このビデオストリームナンパで区別することのできる数である 16 ( = 24)本のビ デォストリーム (MPEGで定義されたビデオストリーム)を多重化することができる。
[0222] ところで、 streamjdが ΙΙΙΟχχχχΒの PES_packetOは、 MPEGで定義されたビデオストリ ームを格納するために使用され、 streamjdが llOxxxxxBの PES_packet()は、 MPEGで 定義されたオーディオストリームを格納するために使用される。一方、 MPEGで定義さ れて ヽな 、符号化方式 (たとえば ATRAC方式)のエレメンタリストリームを格納するの に使用する PES_packetOの streamjdは、 MPEGでは規定されておらず、従って、 MPE Gで定義されて!、な!/、符号化方式のエレメンタリストリームは、 MPEGで定義されたビ デォストリームやオーディオストリームと同様に、単純に、 streamjdを指定して、 PES_p acketOに格納することはできな 、。
[0223] そこで、本実施の形態では、 private_stream_lの PES_packetOの PES_packet_data_byt eを拡張し、 MPEGで定義されて 、な 、符号ィ匕方式のエレメンタリストリームを格納す る。
[0224] ここで、 private_stream_lの PES_packetOの、拡張した PES_packet_data_byteを、 privat e—streaml— PES— payloadOと S己 する。
[0225] 「private—streaml— PES— payloadOの説明」
図 21は、 private_streaml_PES_payloadOのシンタクスを示して 、る。
[0226] private— streaml— PES— payloadOは、 private— headerOと private— payloadOとで構成 れ る。 private— payloadOには、 ATRACオーディオストリームや、 LPCMオーディオストリー ム、字幕ストリームなどの、 MPEGで定義されていない符号ィ匕方式のエレメンタリストリ ームが格納される。
[0227] private_header()の先頭には、 private_stream_id (8ビット)が配置される。
private_stream_idは、 private_payload0に格納されるエレメンタリストリームを識別する 識別情報で、その属性 (種類)に応じて、例えば、以下のような値とされる。
[0228] 即ち、図 22は、 private_stream_idの値と、 private_payload0に格納されるエレメンタリ ストリームの属性との関係を示している。
[0229] 図 22では、 OOOOxxxxB, OOOlxxxxB, ΙΟΟχχχχχΒの 3パターン力 private_stream_id の値として採用されている。なお、 "X "は、図 20における場合と同様に、 0または 1のう ちの任意の値を表す。
[0230] 図 22によれば、 ATRACオーディオストリームが private_payload()に格納される privat e—streaml— PES— payloadOの private— stream— idは、 OOOOxxxxBとされる。なお、 OOOOxxxx Bのうちの下位 4ビット xxxxは、 ATRACオーディオストリームを区別するオーディオスト リームナンパであり、プログラムストリーム(MPEG2_Program_Stream())には、このォー ディォストリームナンパで区別することのできる数である 16 ( = 24)本の ATRACオーデ ィォストリームを多重化することができる。
[0231] さらに、図 22によれば、 LPCMオーディオストリーム力 ¾rivate_payloadOに格納される private— streaml— PES— payloadOの private— stream— idは、 000丄 xxxxBとされる。なお、 0001 xxxxBのうちの下位 4ビット xxxxは、 LPCMオーディオストリームを区別するオーディオ ストリームナンパであり、プログラムストリームには、このオーディオストリームナンパで 区別することのできる数である 16 ( = 24)本の LPCMオーディオストリームを多重化す ることがでさる。
[0232] また、図 22によれば、字幕ストリームが private_payloadOに格納される private_stream l_PES_payload()の private_stream_idは、 lOOxxxxxBとされる。なお、 lOOxxxxxBのうちの 下位 5ビット xxxxxは、字幕ストリームを区別する字幕ストリームナンパであり、プロダラ ムストリームには、この字幕ストリームナンパで区別することのできる数である 32 ( = 25 )本の字幕ストリームを多重化することができる。
[0233] ここで、図 20と図 22の関係をまとめたもの力 上述した図 11である。
[0234] 図 21に戻り、 private— streaml— PES— payloadOにお 、て、 private— stream— idに続く要素 は、 private_payload0に格納されるエレメンタリストリームの属性により内容が異なって V、る。 private_payload0に格納されるエレメンタリストリームの属性は、 private_header() の先頭の private_stream_idにより判断される。
[0235] private_payload()に格納されるエレメンタリストリームが ATRACオーディオストリーム である場合 (private_stream_id==ATRAC)、将来の拡張用の reserved_for _foture_use (8 ビット)が配置され、その後、 AU_locator (16ビット)が配置される。 AU_locatorは、その AUJocatorの直後の位置を基準として、 private_payload0に格納された ATRACォー ディォストリームのオーディオアクセスユニット(ATRACオーディオアクセスユニット) ( オーディオフレーム)の先頭位置を表す。 private_payload0にオーディオアクセスュ- ットが存在しない場合、 AlUocatorには、例えば OxFFFFが記述される。
[0236] private_payload()に格納されるエレメンタリストリームが LPCMオーディオストリームで め 0 合 (private— stream— id==LPCM) fs— flag (lヒットノ , reserved— for— IUture— use (3ヒット ) , ch_flag (4ビット)、および AU_locator (16ビット)が順次配置される。
[0237] fs_flagは、 private_payload0に格納される LPCMオーディオストリームのサンプリング 周波数を示す。即ち、例えば、サンプリング周波数が 48KHzの場合、 fsjkgは 0とされ
、サンプリング周波数が 44. ΙΚΗζの場合、 fsjlagは 1とされる。
[0238] ch_flagは、 private_payload()に格納される LPCMオーディオストリームのチャネル数を 示す。例えば、 LPCMオーディオストリームがモノラルの場合、 ch_flagは 1とされ、 LPC
Mオーディオストリームがステレオの場合、 chjlagは 2とされる。
[0239] AUJocatorは、その AU_locatorの直後の位置を基準として、 private_payload()に格納 される LPCMオーディオストリームのオーディオアクセスユニット(LPCMオーディオア クセスユニット)(オーディオフレーム)の先頭位置を示す。 private_payloadOにオーデ ィォアクセスユニットが存在しない場合、 AU_locatorには、例えば OxFFFFが記述され る。
[0240] private_payload()に格納されるエレメンタリストリームが字幕ストリームである場合 (priv ate_stream_id==SUBTITLE)、将来の拡張のための reserved_for _foture_use (8ビット)が 配置され、その後に、 AU_locator (16ビット)が配置される。 AU_locatorは、その AU_loc atorの直後の位置を基準として、 private_payload0に格納される字幕ストリームの字幕 アクセスユニットの先頭位置を示す。 Private_payloadOに字幕アクセスユニットが存在 しない場合、 AU_locatorには、例えば OxFFFFが記述される。
[0241] 「private— stream2— PES— payloadOの説明」
次に、図 23は、 private_stream2_PES_payload()のシンタクスを示している。
[0242] private— stream2— PES— payloadO ί¾、 private— stream— 2の PE¾—packet()の PE¾— packet— da ta_byte (図 18)を拡張したもの、即ち、 private_stream_2の PES_packet0の、拡張した P ES_packet_data_byteであり、ビデオストリームのデコードに利用される情報が記述され る。
[0243] 本実施の形態では、 private_stream_2の PES_packet0は、ビデオストリームにおける デコード開始可能点の直前に配置される。従って、本実施の形態では、プログラムス トリームから private_stream_2の PES_packet()を見つければ、その直後のビデオストリー ム力 デコードを開始することができる。
[0244] ここで、上述した図 14の EP_map0の RPN_EP_startは、ビデオストリームについては、 private_stream_2の PES_packet0の先頭の位置を示す。 [0245] private_stream2_PES_payloadOの先頭には、将来の拡張用の reserved_for JUture_use (8ビット)が配置され、続けて、 video_stream_id (8ビット), lstRef_picture (16ビット), 2n dRef— picture (16ヒ、、ツト 3rdRef— picture (16ヒット) , 4thRef—picture (16t、 / ) , au— infor mationO,および VBlOが、順次配置される。
[0246] video_stream_idには、 private_stream_2の PES_packet()の直後に配置されるビデオス トリームの PES_packet0の streamjd (と同一の値)が記述される。この video_streamjdに よつ飞、 private— stream— 2の PE¾—packet0 (の private— stream2—PE¾—payload())【こ格糸内 れた情報を利用してデコードされるビデオストリーム(が格納された PES_packet0)が 特定される。
[0247] IstRef— picture, 2ndRef— picture, jrdRef— picture, 4tnRef— pictureは、 video— stream— id によって特定されるビデオストリームの、 private_stream_2の PES_packet()から次の priv ate_stream_2の PES_packet()までの中の 1, 2, 3, 4番目の参照画像を含む最後の pac k0の位置を相対値で、それぞれ表す。なお、 lstRef_picture, 2ndRef_picture, 3rdRef_ picture, 4thRef_pictureについては、例えば、特開平 09- 46712号公報(特願平 07- 211 420号)に、 bytes_to_first_P_pic bytes_to_second_P_picとして、その詳細が開示されてい る。
[0248] au— informationOには、 private— stream— 2の PES— packet0 ら、次の private— stream— 2の PES_packet0までのビデオストリームの中のビデオアクセスユニットに関する情報が記 述される。 aujnformationOの詳細については、図 24を参照して後述する。
[0249] VBI0は、 Closed Captionの情報を記述するために使用される。
[0250] 以上のような private— stream2— PES— payloadOを有する private— stream— 2の PES— packet(
)は、ビデオストリームごとの、デコード開始可能点ごとに配置される。
[0251] 次に、図 24は、図 23の aujnformationOのシンタクスを示している。
[0252] aujnformationOの先頭には、 length (16ビット)が配置される。 lengthは、それを含む a u— informationOのサ ス 表す。 length【こ ¾ ヽて ί¾、 reserved— for— word— alignment (8ピ ット)、および number— of— access— unit (8ビット)力川頁次酉己置される。 reserved— for— word— ali gnmentは、ワードァラインをとるために使用される。
[0253] number_of_access_unitは、それを含む private_stream_2の PES_packet0から、次の priv ate_stream_2の PES_packet()までの間に含まれるビデオアクセスユニット(ピクチャ)の 数を表す。
[0254] 即ち、 number— of— access— unitは、図 23の private— stream2— PES— payloadOが同一の vid eo— stream— idを有する private— stream— 2の PES— packetOの中で、この au— informatnioO力 ら次の aujnformationOの直前までに(この aujnfromationOがクリップストリームファイル で最後の aujnformationOであれば、クリップストリームファイルの最後までに)、 video_s treamjdで示されるビデオストリームに含まれるアクセスユニット(ピクチャ)の数を示す
[025¾」 number— of— access— unitの後には、ての number— of— access— unitの数 7 け forノレープの内 容カ ¾置 れる。良卩 、 number— of— access— unitを含む private— stream— 2の PES— packetO から、次の private_stream_2の PES_packetOまでの間に含まれる 1以上のビデオァクセ スユニットそれぞれに関する情報が配置される。
[0256] forループ内に配置される情報 (ビデオアクセスユニットに関する情報)は、以下のよ うになつている。
[0257] 即ち、 forループ内には、 pic_struct_copy (4ビット) , au_ref_flag (1ビット) , AUJength ( 21ビット), reservedが配置される。
[0258] pic_struct_copyには、ビデオストリームが MPEG4-AVC (ISO/IEC 14496-10)の場合 に、対応するビデオアクセスユニットに対して設定されている、 ISO/IEC 14496-10, D .2.2に定義されている pic_struct ()のコピーが記述される。なお、 pic_struct ()は、例え ば、ピクチャをフレームとして表示する、あるいは、ピクチャのトップフィールドを表示し て、その後、ボトムフィールドを表示する、などといった情報である。
[0259] au_ref_flagは、対応するアクセスユニット力 他のアクセスユニット(のピクチャ)のデコ ードにあたって参照される参照画像である力否かを表し、参照画像である場合には 1 とされ、参照画像でない場合には 0とされる。
[0260] AUJengthは、対応するアクセスユニットのサイズをバイト単位で表す。
[0261] [ディスク 101に記録されたデータの具体例]
次に、図 25乃至図 28は、図 1のディスク 101に記録された、上述したようなフォーマ ットのデータの具体例を示して 、る。 [0262] ここで、図 25乃至図 28では、ビデオストリームとしては、 MPEG2_Videoを採用し、ォ 一ディォストリームとしては、 ATRACオーディオストリームを採用している。但し、ビデ ォストリームやオーディオストリームは、これに限定されるものではない。即ち、ビデオ ストリームとしては、例えば、 MPEG4-Visualや MPEG4-AVCなどを採用することができ る。さらに、オーディオストリームとしては、例えば、 MPEG1/2/4オーディオや LPCMォ 一ディォストリームなどを採用することができる。
[0263] なお、字幕ストリームは、ビデオストリームやオーディオストリームと異なり、同じ間隔 で連続的なデコード '表示(出力)が行われるとは限らない。すなわち、字幕ストリーム は、時折、図 2のバッファ制御モジュール 215から字幕デコーダ制御モジュール 218 に供給されてデコードされる。
[0264] 図 25乃至図 28は、ディスク 101において、図 4に示したように、 "CLIP"ディレクトリ に、 3つのクリップ情報ファイル" 00001. CLP", "00002.CLP", "00003.CLP"が記録さ れ、 "STREAM"ディレクトリに、その 3つのクリップ情報ファイル" 00001. CLP", "00002. CLP", "00003.CLP"それぞれに対応する 3つのクリップストリームファイル" 00001.PS" , "00002.PS", "00003.PS"が記録されている場合の、 "PLAYLIST.DAT〃ファイル、タリ ップ情報ファイル" 00001. CLP", "00002.CLP",および" 00003.CLP"等の具体的な例 を示している。
但し、図 25乃至図 28では、 "PLAYLIST.DAT"ファイル等のデータの一部を省略して ある。
[0265] 即ち、図 25は、図 5で説明した" PLAYLIST.DAT〃ファイルの具体例を示している。
[0266] 図 25では、 number_of_PlayListsは 2となっており、従って、 "PLAYLIST.DAT"フアイ ルに含まれる PlayListOの数は 2である。図 25では、その 2つの PlayListOのうちの 1番 目が PlayList #0と、 2番目が PlayList #1と、それぞれ記載されている。
[0267] 1番目の PlayListOである PlayList #0については、 capture_enable_flag_PlayListが 1と なっており、従って、 PlayList #0にしたがって再生されるビデオデータの 2次利用が 許可されている。また、 PlayList #0については、 number_of_PlayItemsが 2となっており 、従って、 PlayList #0に含まれる PlayltemOの数は 2である。図 25では、その 2つの Pla yltemOである PlayItem#0と Playltem#lの具体例が、「PlayList#0」の欄の下方に記載さ れている。
[0268] PlayList #0に含まれる 1番目の PlayltemOである PlayItem#0では、図 6で説明した Cli p_Information_file_nameが" 00001.CLP"に、 In_timeが 180,090に、 OUT_time^27,180, 090に、それぞれなっている。従って、 PlayList #0の PlayItem#0によって再生されるタリ ップは、クリップ情報ファイル" 00001. CLP"に対応するクリップストリームファイル" 0000
1. PS"の、時刻 180,090から 27, 180,090までである。
[0269] PlayList #0に含まれる 2番目の PlayltemOである Playltem#lでは、図 6で説明した Cli p_Information_file_nameが" 00002.CLP"に、 In_timeが 90,000に、 OUT_timeが 27,090,0 00に、それぞれなっている。従って、 PlayList #0の Playltem#lによって再生されるタリ ップは、クリップ情報ファイル" 00002. CLP"に対応するクリップストリームファイル" 0000
2. PS〃の、時刻 90,000から 27,090,000までである。
[0270] 一方、図 25にお!/、て、 2番目の PlayListOである PlayList #1につ!/、ては、 capture.en able_flag_PlayListが 0となっており、従って、 PlayList #1にしたがって再生されるビデオ データの 2次利用が許可されていない(禁止されている)。また、 PlayList #1について は、 number_of_PlayItemsが 1となっており、従って、 PlayList #1に含まれる PlayltemOの 数は 1である。図 25では、その 1つの PlayltemOである PlayItem#0の具体例が、「PlayL ist#l」の欄の下方に記載されている。
[0271] PlayList #1に含まれる 1つの PlayltemOである PlayItem#0では、図 6で説明した ClipJ nformation— file— nameが" 00003.CLP"に、 In— timeが 90,000に、 OUT— timeが 81, 090,000 に、それぞれなっている。従って、 PlayList #1の PlayItem#0によって再生されるクリツ プは、クリップ情報ファイル" 00003.CLP"に対応するクリップストリームファイル" 00003. PS〃の、時刻 90,000から 81, 090,000までである。
[0272] 次に、図 26は、図 10で説明したクリップ情報ファイル ClipOの具体例を示している。
即ち、図 26は、図 4のクリップ情報ファイル" 00001. CLP", "00002. CLP", "00003.CL P〃の具体例を示して ヽる。
[0273] クリップ情報ファイル" 00001. CLP"にお 、ては、 presentation_start_timeが 90,000に、 presentation_end_timeが 27,990,000に、それぞれなっている。従って、クリップ情報フ アイル" 00001. CLP"に対応するクリップストリームファイル" 00001.PS"に格納されたプ ログラムストリームによれば、 310秒分((27,990,000-90,000)/90kHz)のコンテンツが利 用可能である。
[0274] また、クリップ情報ファイル" 00001. CLP "にお!/、ては、 capture_enable_flag_Clipが 1に なっており、従って、クリップ情報ファイル" 00001.CLP"に対応するクリップストリームフ アイル" 00001.PS"に格納されたプログラムストリームに多重化されたビデオストリーム( に対応するビデオデータ)については、その 2次利用が許可されている。
[0275] さらに、図 26において、クリップ情報ファイル" 00001.CLP"の number_of_streamsは 4 となっており、従って、対応するクリップストリームファイル" 00001.PS"に格納されたプ ログラムストリームには、 4本のエレメンタリストリームが多重化されて!/、る。
[0276] いま、その 4本のエレメンタリストリームを、 stream#0, stream#l, stream#2, stream#3 とすると、図 26では、その 4本のエレメンタリストリーム stream#0, stream#l, stream#2 , stream#3それぞれの StreamlnfoO (図 10)の具体例が、「"00001.CLP"」の欄の下方 に記載されている。
[0277] クリップストリームファイル" 00001.PS"の 1本目のエレメンタリストリーム stream#0につ いては、 streamjdが OxEOとなっており、従って、このエレメンタリストリーム stream#0は 、図 20および図 22 (あるいは図 11)で説明したように、ビデオストリームである。なお、 本実施の形態では、ビデオストリームについては、上述したように、 private_stream_id は無関係であるが、図 26では、 0x00になっている。
[0278] また、クリップストリームファイル" 00001.PS"の 1本目のエレメンタリストリームであるビ デォストリーム stream#0については、その StreamlnfoOに含まれる StaticInfoO (図 12) の picture_sizeが' 720 X 480'に、 frame_rateが' 29.97Hz'に、 cc_flagが' Yes'に、それぞれ なっている。従って、このビデオストリーム stream#0は、 720 X 480ピクセルの、フレーム 周期が 29.97Hzのビデオデータであり、さらに、クローズドキャプションデータを含んで いる。
[0279] さらに、クリップストリームファイル" 00001.PS"の 1本目のエレメンタリストリームである ビデオストリーム stream#0につ 、ては、 StreamlnfoO (図 10)の number_of_Dynamidnfo が 0になっており、 pts_change_pointと DynamicInfoOとのセットは存在しな ヽ。
[0280] 次に、クリップストリームファイル" 00001.PS"の 2本目のエレメンタリストリーム stream# 1につ ヽては、 streamjdが OxBDとなっており、 private_stream_idが 0x00となって ヽる。 従って、このエレメンタリストリーム stream#lは、図 20および図 22で説明したように、 A TRACオーディオストリームである。
[0281] また、クリップストリームファイル" 00001.PS"の 2本目のエレメンタリストリームである A TRACオーディオストリーム stream#lにつ 、ては、その StreamlnfoOに含まれる Staticln foO (図 12)の audio— language— code力 γ日本語に、 channel—configuration力 S 'STEREO' に、
Figure imgf000049_0001
それぞれなつている。 従って、この ATRACオーディオストリーム stream#lは、 日本語で、かつステレオのォ 一ディォデータである。また、低域強調チャネルは含まれておらず、サンプリング周波 数は、 48kHzである。
[0282] さらに、クリップストリームファイル" 00001.PS"の 2本目のエレメンタリストリームである ATRACオーディオストリーム stream#lにつ 、ては、 StreamlnfoO (図 10)の number— of— Dynamiclnfoが 0になっており、 pts_change_pointと DynamicInfoOとのセットは存在しな い。
[0283] 次に、クリップストリームファイル" 00001.PS"の 3本目のエレメンタリストリーム stream# 2につ 、ては、 streamjdが OxBDとなっており、 private_stream_idが 0x80となって ヽる。 従って、このエレメンタリストリーム stream#2は、図 20および図 22で説明したように、 字幕ストリームである。
[0284] また、クリップストリームファイル" 00001.PS"の 3本目のエレメンタリストリームである字 幕ストリーム stream#2については、その StreamlnfoOに含まれる StaticInfoO (図 12)の s ubtitle— language— code力 日本 g§ 'に、 configurable—flagが 0に、それてれなつて ヽる。従 つて、この字幕ストリーム stream#2は、 日本語の字幕データであり、また、その表示方 式を変更することは許可されて 、な 、 (禁止されて 、る)。
[0285] さらに、クリップストリームファイル" 00001.PS"の 3本目のエレメンタリストリームである 字幕ストリーム stream#2については、 StreamlnfoO (図 10)の number— of— Dynamiclnfoが 0になっており、 pts_change_pointと DynamicInfoOとのセットは存在しな ヽ。
[0286] 次に、クリップストリームファイル" 00001.PS"の 4本目のエレメンタリストリーム stream# 3につ ヽては、 streamjdが OxBDとなっており、 private_stream_idが 0x81となって ヽる。 従って、このエレメンタリストリーム stream#3は、図 20および図 22で説明したように、 字幕ストリームである。
[0287] なお、クリップストリームファイル" 00001.PS"の 3本目のエレメンタリストリームである 字幕ストリーム stream#2と、 4本目のエレメンタリストリームである字幕ストリーム stream# 3とを区別するために、それぞれの private_stream_idは、 0x80と 0x81とになっている。
[0288] また、クリップストリームファイル" 00001.PS"の 4本目のエレメンタリストリームである字 幕ストリーム stream#2については、その StreamlnfoOに含まれる StaticInfoO (図 12)の s ubtitle—language— code力 日本 g§ 'に、 configurable—flag力丄に、それてれなつて ヽる。従 つて、この字幕ストリーム stream#3は、 日本語の字幕データであり、また、その表示方 式を変更することが許可されて ヽる。
[0289] さらに、クリップストリームファイル" 00001.PS"の 4本目のエレメンタリストリームである 字幕ストリーム stream#3については、 StreamlnfoO (図 10)の number— of— Dynamiclnfoが 0になっており、 pts_change_pointと DynamicInfoOとのセットは存在しな ヽ。
[0290] 次に、図 26において、クリップ情報ファイル" 00002.CLP"については、 presentation start_time力 ^0,000に、 presentation_end_timeが 27,090,000に、それぞれなって!/ヽる。 従って、クリップ情報ファイル" 00002.CLP"に対応するクリップストリームファイル" 0000 2. PS"に格納されたプログラムストリームによれば、 300秒分((27,090,000-90,000)/90k Hz)のコンテンツが利用可能である。
[0291] また、クリップ情報ファイル" 00002.CLP"においては、 capture_enable_flag_Clipが 0に なっており、従って、クリップ情報ファイル" 00002.CLP"に対応するクリップストリームフ アイル" 00002.PS"に格納されたプログラムストリームに多重化されたビデオストリーム( に対応するビデオデータ)については、その 2次利用が許可されていない (禁止され ている)。
[0292] さらに、図 26において、クリップ情報ファイル" 00002.CLP"の number_of_streamsは 4 となっており、従って、対応するクリップストリームファイル" 00002.PS"に格納されたプ ログラムストリームには、上述したクリップストリームファイル" 00001.PS"における場合と 同様に、 4本のエレメンタリストリームが多重化されて!/、る。
[0293] いま、その 4本のエレメンタリストリームを、 stream#0, stream#l, stream#2, stream#3 とすると、図 26では、その 4本のエレメンタリストリーム stream#0, stream#l, stream#2 , stream#3それぞれの StreamlnfoO (図 10)の具体例が、「"00002.CLP"」の欄の下方 に記載されている。
[0294] ここで、図 26では、クリップストリームファイル" 00002.PS"の 1乃至 4本目のエレメンタ リストリーム stream#0乃至 #3それぞれの StreamlnfoOの内容は、上述したクリップストリ ームファイル" 00001.PS"の 1乃至 4本目のエレメンタリストリーム stream#0乃至 #3それ ぞれの StreamlnfoOの内容と同一になっているので、その説明は省略する。
[0295] なお、上述のように、クリップストリームファイル" 00002.PS"の 1乃至 4本目のエレメン タリストリーム stream#0乃至 #3それぞれの StreamlnfoOの内容は、クリップストリームファ ィル" 00001.PS"の 1乃至 4本目のエレメンタリストリーム stream#0乃至 #3それぞれの St reamlnfoOの内容と同一であるので、クリップストリームファイル" 00002.PS"の 1本目の エレメンタリストリーム stream#0はビデオストリームであり、 2本目のエレメンタリストリー ム stream#lは ATRACオーディオストリームである。また、その 3本目のエレメンタリスト リーム stream#2と、 4本目のエレメンタリストリーム stream#3は、いずれも字幕ストリーム である。
[0296] 次に、図 26において、クリップ情報ファイル" 00003.CLP"については、 presentation start_time力 ^0,000に、 presentation_end_timeが 81,090,000に、それぞれなっている。 従って、クリップ情報ファイル" 00003.CLP"に対応するクリップストリームファイル" 0000 3. PS"に格納されたプログラムストリームによれば、 900秒分((81,090,000-90,000)/90k Hz)のコンテンツが利用可能である。
[0297] また、クリップ情報ファイル" 00003.CLP "にお!/、ては、 capture_enable_flag_Clipが 1に なっており、従って、クリップ情報ファイル" 00003.CLP"に対応するクリップストリームフ アイル" 00003.PS"に格納されたプログラムストリームに多重化されたビデオストリーム については、その 2次利用が許可されている。
[0298] さらに、図 26において、クリップ情報ファイル" 00003.CLP"の number_of_streamsは 3 となっており、従って、対応するクリップストリームファイル" 00003.PS"に格納されたプ ログラムストリームには、 3本のエレメンタリストリームが多重化されて!/、る。
[0299] いま、その 3本のエレメンタリストリームを、 stream#0, stream#l, stream#2とすると、 図 26では、その 3本のエレメンタリストリーム stream#0, stream#l, stream#2それぞれ の StreamlnfoO (図 10)の具体例が、「"00003. CLP"」の欄の下方に記載されている。
[0300] クリップストリームファイル" 00003.PS"の 1本目のエレメンタリストリーム stream#0につ いては、 streamjdが OxEOとなっており、従って、このエレメンタリストリーム stream#0は 、図 20および図 22 (あるいは図 11)で説明したように、ビデオストリームである。なお、 クリップストリームファイル" 00001.PS"の 1本目のエレメンタリストリーム stream#0と同様 に、 private— stream— ια【ま、 0x00になって 、る。
[0301] また、クリップストリームファイル" 00003.PS"の 1本目のエレメンタリストリームであるビ デォストリーム stream#0については、その StreamlnfoOに含まれる StaticInfoO (図 12) の picture_sizeが' 720 X 480'に、 frame_rateが' 29.97Hz'に、 cc_flagが 'No'に、それぞれ なっている。従って、このビデオストリーム stream#0は、 720 X 480ピクセルの、フレーム 周期が 29.97Hzのビデオデータであり、さらに、クローズドキャプションデータを含んで いない。
[0302] さらに、クリップストリームファイル" 00003.PS"の 1本目のエレメンタリストリームである ビデオストリーム stream#0につ 、ては、 StreamlnfoO (図 10)の number_of_Dynamidnfo が 2になっており、従って、その StreamlnfoOには、 pts_change_pointと DynamicInfoOと のセットが 2セット記述されて!、る。
[0303] 次に、クリップストリームファイル" 00003.PS"の 2本目のエレメンタリストリーム stream# 1については、 streamjdが OxElとなっており、従って、このエレメンタリストリーム stream #1は、図 20および図 22 (あるいは図 11)で説明したように、ビデオストリームである。 なお、クリップストリームファイル" 00003.PS"の 1本目のエレメンタリストリームであるビ デォストリーム stream#0と、 2本目のエレメンタリストリームであるビデオストリーム strea m#lとを区別するために、それぞれの streamjdは、 OxEOと OxElとになっている。また、 クリップストリームファイル" 00001.PS"の 1本目のエレメンタリストリーム stream#0と同様 に、 private— stream— ια【ま、 0x00になって 、る。
[0304] また、クリップストリームファイル" 00003.PS"の 2本目のエレメンタリストリームであるビ デォストリーム stream#lについては、その StreamlnfoOに含まれる StaticInfoO (図 12) の picture_size, frame.rate, cc_flagが、 1本目のエレメンタリストリームであるビデオスト リーム stream#0についてのものと同一になっている。従って、クリップストリームフアイ ル" 00003.PS"の 2本目のエレメンタリストリームであるビデオストリーム stream#lは、 72 0 X 480ピクセルの、フレーム周期が 29.97Hzのビデオデータであり、さらに、クローズ ドキャプションデータを含んで ヽな 、。
[0305] さらに、クリップストリームファイル" 00003.PS"の 2本目のエレメンタリストリームである ビデオストリーム stream#lにつ 、ては、 StreamlnfoO (図 10)の number_of_Dynamidnfo が 0になっており、 pts_change_pointと DynamicInfoOとのセットは存在しな ヽ。
[0306] 次に、クリップストリームファイル" 00003.PS"の 3本目のエレメンタリストリーム stream# 2につ 、ては、 streamjdが OxBDとなっており、 private_stream_idが 0x00となって ヽる。 従って、このエレメンタリストリーム stream#2は、図 20および図 22で説明したように、 A TRACオーディオストリームである。
[0307] また、クリップストリームファイル" 00003.PS"の 3本目のエレメンタリストリームである A TRACオーディオストリーム stream#2につ 、ては、その StreamlnfoOに含まれる Staticln foO (図 12)の audio— language— code, channel—configuration, lfe— existence, sampling— fre quencyが、クリップストリームファイル" 00001. PS"の 2本目のエレメンタリストリームであ る ATRACオーディオストリーム stream#lのものと同一になっている。従って、クリップス トリームファイル" 00003.PS"の 3本目のエレメンタリストリームである ATRACオーディオ ストリーム stream#2は、 日本語で、かつステレオのオーディオデータである。
また、低域強調チャネルは含まれておらず、サンプリング周波数は、 48kHzである。
[0308] さらに、クリップストリームファイル" 00003.PS"の 3本目のエレメンタリストリームである ATRACオーディオストリーム stream#2については、 StreamlnfoO (図 10)の number— of— DynamicInfo }になつ飞おり、 つて、その StreamlnfoOには、 pts— cnange— pointと Dyn amicInfoOとのセットが 3セット記述されている。
[0309] 次に、図 27は、図 10で説明したクリップ情報ファイル ClipOのうちの EP_map()具体例 を示している。即ち、図 27は、図 4のクリップ情報ファイル" 00001.CLP"の中の、図 14 の EPjnapOの具体例を示して 、る。
[0310] 図 27にお 、て、 EP_map0の number_of_stream_id_entriesは 1になっており、従って、こ の EP_map0には、 1つのエレメンタリストリームについてのデコード開始可能点の情報 が記述されている。
[0311] また、図 27の EP_mapOでは、 streamjdが OxEOになっている。従って、図 20および図 22で説明したことから、 EP_map()には、 OxEOとなっている streamjdによって特定され るビデオストリームにつ 、てのデコード開始可能点の情報(PTS_EP_startと RPN_EP_st art (図 14) )が記述されている。即ち、図 27は、クリップ情報ファイル" 00001. CLP"の E P_map0であり、クリップ情報ファイル" 00001.CLP"に対応するクリップストリームフアイ ル" 00001.CLP"において、 streamjdが OxEOのエレメンタリストリームは、図 26で説明 したように、クリップストリームファイル" 00001. CLP"の 1本目のビデオストリーム stream #0であるから、図 27の EPjnapOに記述されている情報は、そのビデオストリーム strea m#0のデコード開始可能点の PTS_EP_startと RPN_EP_startである。
[0312] 図 27では、クリップストリームファイル" 00001.CLP"の 1本目のビデオストリーム strea m#0のデコード開始可能点のうちの、先頭から 5点の PTS_EP_startと RPN_EP_startが 記載されており、 6点目以降の PTS_EP_startと RPN_EP_startの記載は省略してある。
[0313] なお、図 27の EPjnapOにおいて、 private_stream_idは 0x00になっている力 streamj dがビデオストリームを表している場合は、上述したように、 private_stream_idは無関係 である (無視される)。
[0314] 次に、図 28は、図 25で説明した PlayList #0と PlayList #1 (図 5の PlayListO)の中の P layListMarkOの具体例を示して 、る。
[0315] 図 28上側は、 PlayList #0の PlayListMarkO (図 7)を示して!/、る。
[0316] 図 28上側において、 PlayList #0の PlayListMarkOにおける number_of_PlayList_mark sは 7になっており、従って、 PlayList #0 (の PlayListMarkO)に含まれる MarkOの数は 7 である。
[0317] また、図 28上側において、 PlayList #0に含まれる 7つの MarkOのうちの 1番目の Mar kOである Mark#0は、 markj pe (図 7)が' Chapter'になっているので、チヤプタマーク である。さらに、 Mark#0は、 reむ o_PlayItem_id (図 7)が 0になっているので、 PlayList #0 に含まれる図 25の 2つの PlayItem#0と #1のうちの、 PlayItem#0に属する。また、 Mark# 0は、 mark_time_stampが 180,090になっているので、 PlayList #0に含まれる PlayItem#0 によって再生されるクリップストリームファイルの時刻(再生時刻) 180,090上の印であ る。さらに、 Mark#0は、 entry— ES— stream— idおよび entry— ES— private— stream— id力いずれ も 0になっているので、いずれのエレメンタリストリームにも関連付けられていない。ま た、 Mark#0は、 mark_dataが 1になっているので、番号が 1のチヤプタを表す。
[0318] なお、ここでは、 PlayList #0に含まれる PlayItem#0によって再生されるクリップストリ ームファイルは、図 25で説明した、その PlayItem#0の Clip_Infomation_file_nameに記述 されている" 00001. CLP"から特定されるクリップストリームファイル" 00001.PS"であり、 従って、 Mark#0の mark_time_stampが表す、上述した時刻 180,090は、クリップストリー ムファイル" 00001.PS"の時刻である。
[0319] 図 28上側において、 PlayList #0に含まれる 7つの MarkOのうちの 5番目の MarkOで ある Mark#4も、 1番目の Mark#0と同様のチヤプタマークである。
[0320] 即ち、 5番目の MarkOである Mark#4は、 markj pe (図 7)が' Chapter'になっているの で、チヤプタマークである。さらに、 Mark#4は、 reむ o_PlayItem_id (図 7)力 になってい るので、 PlayList #0に含まれる図 25の 2つの PlayItem#0と #1のうちの、 Playltem#lに 属する。また、 Mark#4は、 mark_time_stampが 90,000になっているので、 PlayList #0に 含まれる Playltem#lによって再生されるクリップストリームファイルの時刻 90,000上の 印で teる。 らに、 Mark#4は、 entry— ES— stream— idおよび entry— ES— private— stream— id 、ずれも 0になって!/、るので、 V、ずれのエレメンタリストリームにも関連付けられて!/、な い。また、 Mark#4は、 mark_dataが 2になっているので、番号が 2のチヤプタを表す。
[0321] なお、ここでは、 PlayList #0に含まれる Playltem#lによって再生されるクリップストリ ームファイルは、図 25で説明した、その Playltem#lの Clip_Infomation_file_nameに記述 されている" 00002.CLP"から特定されるクリップストリームファイル" 00002.PS"であり、 従って、 Mark#4の mark_time_stampが表す、上述した時刻 90,000は、クリップストリーム ファイル" 00002.PS"の時刻である。
[0322] また、図 28上側において、 PlayList #0に含まれる 7つの MarkOのうちの 2番目の Mar kOである Mark#lは、 markj pe (図 7)が' Index'になっているので、インデクスマークで ある。さらに、 Mark#lは、 reむ o_PlayItem_id (図 7)が 0になっているので、 PlayList #0に 含まれる図 25の 2つの PlayItem#0と #1のうちの、 PlayItem#0に属する。また、 Mark#l は、 mark_time_stampが 5, 580,090になっているので、 PlayList #0に含まれる Playltem# 0によって再生されるクリップストリームファイルの時刻 5,580,090上の印である。さらに 、 Mark#l【ま、 entry— ES— stream— idおよび entry— ES— private— stream— id 、ずれも 0になつ ているので、いずれのエレメンタリストリームにも関連付けられていない。また、 Mark#l は、 mark_dataが 1になっているので、番号が 1のインデクスを表す。
[0323] なお、ここでは、 PlayList #0に含まれる PlayItem#0によって再生されるクリップストリ ームファイルは、上述したように、クリップストリームファイル" 00001.PS"であり、従って 、 Mark#lの mark_time_stampが表す、上述した時刻 5, 580,090は、クリップストリームフ アイル" 00001.PS"の時刻である。
[0324] 図 28上側において、 PlayList #0に含まれる 7つの MarkOのうちの 3番目、 6番目、 7 番目の MarkOである Mark#2, Mark#5, Mark#6も、 2番目の Mark#lと同様のインデクス マークである。
[0325] また、図 28上側において、 PlayList #0に含まれる 7つの MarkOのうちの 4番目の Mar kOである Mark#3は、 markj pe (図 7)力 S'Event'になっているので、イベントマークであ る。さらに、 Mark#3は、 reむ o_PlayItem_id (図 7)力^になっているので、 PlayList #0に 含まれる図 25の 2つの PlayItem#0と #1のうちの、 PlayItem#0に属する。また、 Mark#3 は、 mark_time_stampが 16,380,090になっているので、 PlayList #0に含まれる Playltem #0によって再生されるクリップストリームファイルの時刻 16,380,090上の印である。さら 【こ、 Markftjiま、 entry— ES— stream— idおよび entry— ES— private— stream— id¾ 、ずれも CHこな つているので、いずれのエレメンタリストリームにも関連付けられていない。また、 Mark #3は、 mark_dataが 0になっているので、引数として 0を伴うイベントを発生させる。
[0326] なお、ここでは、 PlayList #0に含まれる PlayItem#0によって再生されるクリップストリ ームファイルは、上述したように、クリップストリームファイル" 00001.PS"であり、従って 、 Mark#3の mark_time_stampが表す、上述した時刻 16,380,090は、クリップストリームフ アイル" 00001.PS"の時刻である。
[0327] ここで、図 28上側では、 PlayList #0の PlayListMarkOの一覧表の欄外の右側に、 Ma rk()が属する PlayltemOの先頭からの時間を示してあり、さらにその右側に、 PlayList # 0の先頭からの時刻を示してある。
[0328] 次に、図 28下側は、 PlayList#lの PlayListMarkO (図 7)を示している。 [0329] 図 28下側にぉ 、て、 PlayList#lの PlayListMarkOにおける number_of_PlayList_marks は 3になっており、従って、 PlayList#l (の PlayListMarkO)に含まれる Mark()の数は 3で ある。
[0330] また、図 28下側において、 PlayList#lに含まれる 3つの MarkOのうちの 1番目の Mar kOである Mark#0は、 markj pe (図 7)が' Chapter'になっているので、チヤプタマーク である。さらに、 Mark#0は、 reむ o_PlayItem_id (図 7)が 0になっているので、 PlayList#l に含まれる図 25の 1つの PlayItem#0に属する。また、 Mark#0は、 mark_time_stampが 9 0,000になっているので、 PlayList#lに含まれる PlayItem#0によって再生されるクリップ ストリームファイルの時刻 90,000上の印である。さらに、 Mark#0は、 entry_ES_stream_id および entry_ES_private_stream_idが 、ずれも 0になって 、るので、 V、ずれのエレメンタ リストリームにも関連付けられていない。また、 Mark#0は、 mark_dataが 0になっている ので、番号が 0のチヤプタを表す。
[0331] なお、ここでは、 PlayList#lに含まれる PlayItem#0によって再生されるクリップストリー ムファイルは、図 25で説明した、その PlayItem#0の Clip_Infomation_file_nameに記述さ れている" 00003.CLP"から特定されるクリップストリームファイル" 00003.PS"であり、従 つて、 Mark#0の mark_time_stampが表す、上述した時刻 90,000は、クリップストリームフ アイル" 00003.PS"の時刻である。
[0332] 図 28下側において、 PlayList#lに含まれる 3つの MarkOのうちの 2番目の MarkOで ある Mark#lは、 markj pe (図 7)力 'Event'になっているので、イベントマークである。さ らに、 Mark#lは、 reむ o_PlayItem_id (図 7)が 0になっているので、 PlayList#lに含まれ る図 25の 1つの PlayItem#0に属する。また、 Mark#lは、 mark_time_stampが 27,090,00 0になっているので、 PlayList#lに含まれる PlayItem#0によって再生されるクリップストリ ームファイルの時刻 27,090,000上の印である。さらに、 Mark#lは、 entry_ES_stream_id 力 χΕ0で、 entry_ES_private_stream_idが 0になって 、るので、 streamjdが OxEOで特定 (識別)されるエレメンタリストリーム、即ち、図 20および図 22で説明したように、ビデ ォストリームに関連付けられている。また、 Mark#lは、 mark_dataが 1になっているので 、引数として 1を伴うイベントを発生させる。
[0333] なお、ここでは、 PlayList#lに含まれる PlayItem#0によって再生されるクリップストリー ムファイルは、上述したように、クリップストリームファイル" 00003.PS"であり、従って、 M ark#lの mark_time_stampが表す、上述した時刻 27,090,000は、クリップストリームフアイ ル〃 00003.PS〃の時刻である。
[0334] また、 Mark#lが関連付けられて!/、る、 streamjdが OxEOのビデオストリームは、その M ark# 1が属する、図 25の PlayList# 1に含まれる PlayItem#0の Clip Jnfomation— file— name に記述されている" 00003.CLPΊこ記述されてぃるstream_idが0xE0のビデォストリーム 、即ち、図 26のクリップ情報ファイル" 00003.CLP"から特定される、クリップストリーム ファイル" 00003.PS"に多重化されている 3本のエレメンタリストリーム stream#0乃至 #2 のうちの、 1本目のエレメンタリストリーム(ビデオストリーム) stream#0である。
[0335] 次に、図 28下側において、 PlayList#lに含まれる 3つの MarkOのうちの 3番目の Mar k0である Mark#2は、 markj pe (図 7)力 S'Event'になっているので、イベントマークであ る。さらに、 Mark#2は、 ref_to_PlayItem_id (図 7)力^になっているので、 PlayList#lに含 まれる図 25の 1つの PlayItem#0に属する。また、 Mark#lは、 111 10:^6_3 &]1^が27,54 0,000になっているので、 PlayList#lに含まれる PlayItem#0によって再生されるクリップ ストリームファイルの時刻 27,540,000上の印である。さらに、 Mark#2は、 entry_ES_strea m_id力 SOxElで、 entry_ES_private_stream_idが 0になって 、るので、 streamjdが OxElで 特定 (識別)されるエレメンタリストリーム、即ち、図 20および図 22で説明したように、 ビデオストリームに関連付けられている。また、 Mark#2は、 mark_dataが 2になっている ので、引数として 2を伴うイベントを発生させる。
[0336] なお、ここでは、 PlayList#lに含まれる PlayItem#0によって再生されるクリップストリー ムファイルは、上述したように、クリップストリームファイル" 00003.PS"であり、従って、 M ark#2が表す、上述した時刻 27,540,000は、クリップストリームファイル" 00003.PS"の時 刻である。
[0337] また、 Mark#2が関連付けられて!/、る、 streamjdが OxElのビデオストリームは、その M ark#2が属する、図 25の PlayList# 1に含まれる PlayItem#0の Clip Jnfomation— file— name に記述されている" 00003. CLP"に記述されている streamjdが OxElのビデオストリーム 、即ち、図 26のクリップ情報ファイル" 00003.CLP"から認識される、クリップストリーム ファイル" 00003.PS"に多重化されている 3本のエレメンタリストリーム stream#0乃至 #2 のうちの、 2本目のエレメンタリストリーム(ビデオストリーム) stream#lである。
[0338] ここで、図 28下側では、 PlayList#lの PlayListMarkOの一覧表の欄外の右側に、 Ma rk()が属する PlayltemOの先頭からの時刻を示してある。
[0339] なお、図 28においては、チヤプタマークやインデクスマークが表すチヤプタゃイン デタスの番号が、 mark_dataに記述されている力 チヤプタマークやインデクスマーク が表すチヤプタゃインデタスの番号は、 mark_dataに記述しなくても、例えば、 PlayList MarkOにおけるチヤプタマークやインデクスマークの数をカウントすることによって認 識することができる。
[0340] [ディスク装置の動作説明]
次に、図 1のディスク 101に、図 25乃至図 28で説明したようなデータ(ファイル)が 記録されているとして、図 1のディスク装置の動作について説明する。
[0341] ディスク 101がディスクドライブ 102に挿入されると、その旨を示すメッセージがドラ イブインターフェース 114、さらには、図 2のオペレーティングシステム 201を経由して 、ビデオコンテンツ再生プログラム 210に伝えられる。ビデオコンテンツ再生プログラ ム 210は、ディスク 101がディスクドライブ 102に挿入された旨のメッセージをォペレ 一ティングシステム 201から受信すると、図 29の再生前処理を開始する。
[0342] 「再生前処理」
即ち、図 29は、ビデオコンテンツ再生プログラム 210が行う再生前処理を説明する フローチャートである。
[0343] ここで、以下、フローチャートによって説明するディスク装置の動作または処理は、 必ずしもフローチャートとして記載された順序に沿って時系列に行われる必要はなく 、並列的あるいは個別に行われることもある。但し、本明細書では、便宜上、ディスク 装置の動作または処理を、フローチャートに沿って説明する。
[0344] 再生前処理では、ビデオコンテンツ再生プログラム 210は、ステップ S101において 、オペレーティングシステム 201のファイルシステム機能を使用して、ディスク 101を チェックし、ディスク 101が、ビデオコンテンツ再生プログラム 210用の正常なディスク であるか否かを判定する。
[0345] ここで、上述したように、ディスク 101へのアクセス(ファイルの読み出し)は、ォペレ 一ティングシステム 201のファイルシステム機能を使用して行われる力 以下では、そ の説明は、適宜省略する。
[0346] ステップ S101において、ディスク 101が正常なディスクでないと判定された場合、 即ち、例えば、ディスク 101に採用されているファイルシステム力 オペレーティング システム 201の対応して!/、な!/、タイプであった場合や、ルートディレクトリに' VIDEO" ディレクトリが置かれて 、な 、場合、ビデオコンテンツ再生プログラム 210はディスク 1 01に対応していないと判断して、ステップ S102に進み、グラフィクス処理モジュール 219が、エラー処理を行って、再生前処理を終了する。
[0347] 即ち、グラフィックス処理モジュール 219は、エラー処理として、ディスク 101が正常 でない旨のエラーメッセージ(のビデオデータ)を生成し、ビデオ出力モジュール 220 力も出力させ、これにより、エラーメッセージを表示させる。なお、エラー処理としては 、その他、例えば、オーディオ出力モジュール 221からの警告音の出力や、ディスク ドライブ 102からのディスク 101の排出等を行うようにすることが可能である。
[0348] 一方、ステップ S101において、ディスク 101が正常なディスクであると判定された場 合、ステップ S103に進み、ビデオコンテンツ再生プログラム 210は、コンテンツデー タ供給モジュール 213によって、オペレーティングシステム 201に対し、ディスク 101 ( 図 4)の" VIDEO"ディレクトリに置力れて 、る" SCRIPT.DAT"ファイルと、 "PLAYLIST. DAT〃ファイルとの 2つのデータファイルを要求して読み込み、ステップ S 104に進む。 ステップ S104では、 "SCRIPT.DAT"ファイル力 スクリプト制御モジュール 211に供 給されるとともに、 "PLAYLIST.DAT〃ファイル力 プレイヤ制御モジュール 212に供給 される。
[0349] その後、ステップ S104力ら S105乃至 S107に進み、プレイヤ制御モジュール 212 は、初期化処理を行う。なお、スクリプト制御モジュール 211は、プレイヤ制御モジュ ール 212の初期化処理が終了するまで待つ。
[0350] 「プレイヤ制御モジュール 212の初期化処理」
初期化処理では、ステップ S105において、プレイヤ制御モジュール 212力 "PLA
YLIST.DAT"ファイルの解析を行 、、 "PLAYLIST.DAT"ファイルの中で使われて!/、る クリップ情報ファイルの数とそのファイル名を調査する。 [0351] 即ち、いまの場合、 "PLAYLIST.DAT"ファイルは、図 25に示したものとなっており、 プレイヤ制御モジュール 212は、図 25の" PLAYLIST.DAT"ファイルにお!/、て number_ of_PlayListsが 2になっていることから、 1番目の PlayList#0と 2番目の PlayList#lとの 2 つの PlayListOが存在することを認識する。さらに、プレイヤ制御モジュール 212は、 図 25の" PLAYLIST.DAT"ファイルにおける 1番目の PlayList#0について、 number_of_ Playltemsが 2となっていることから、その PlayList#0には、 1番目の PlayItem#0と 2番目 の Playltem#lとの 2つの PlayltemOが存在することを認識する。そして、プレイヤ制御 モジュール 212は、図 25の" PLAYLIST.DAT"ファイルにおける、 PlayList#0に含まれ る 1番目の PlayItem#0と 2番目の Playltem#lそれぞれの Clip_Information_file_nameを 参照することにより、 PlayList#0に含まれる 1番目の PlayItem#0のクリップ情報ファイル (のファイル名)が" 00001. CLP"であり、 2番目の Playltem#lのクリップ情報ファイル力 00002.CLP"であることを認識する。
[0352] プレイヤ制御モジュール 212は、 2番目の PlayList#lについても同様にして、その nu mber_of_PlayItemsが 1であることから、 1つの PlayltemO (PlayItem#0)が存在し、さらに 、その PlayItem#0の中の Clip_Information_file_nameから、その PlayItem#0のクリップ情 報ファイルが" 00003.CLP"であることを認識する。
[0353] その後、ステップ S105力ら S106に進み、プレイヤ制御モジュール 212は、ディスク 101力ら、ステップ S 105で認識したクリップ情報ファイル、即ち、ディスク 101の" VID EO"ディレクトリ内の" CLIP"ディレクトリ力 3つのクリップ情報ファイル" 00001.CLP", "00002. CLP", "00003. CLP"を読み込む。
[0354] ここで、ステップ S 106でのクリップ情報ファイルの読み込みは、最初に再生される P1 ayListOの Playltemのクリップ情報ファイルだけで十分である力 本実施の形態では、 上述したように、すべての PlayListOの PlayltemOのクリップ情報ファイルを先読みして おくこととする。
[0355] ステップ S106の処理後は、ステップ S107に進み、プレイヤ制御モジュール 212は 、ステップ S105で認識したクリップ情報ファイルの読み込みに成功した力どうかを判 定し、さらに、その読み込んだクリップ情報ファイルに対応するクリップストリームフアイ ルカ ディスク 101に存在するか否かを判定(チェック)する。即ち、ステップ S 107で は、クリップ情報ファイル" 00001. CLP", "00002. CLP", "00003. CLP"の読み込みに成 功し、さらに、そのクリップ情報ファイル" 00001.CLP", "00002.CLP", "00003.CLP"そ れぞれとファイル名の拡張子のみが異なるクリップストリームファイル" 00001.PS"、 "00 002.PS"、 "00003.PS"が、ディスク 101の" VIDEO"ディレクトリの下にある" STREAM" ディレクトリに存在するかどうかを判定する。
[0356] ステップ S107において、ステップ S 105で認識したクリップ情報ファイルの読み込 みに失敗したと判定されるカゝ、または、クリップ情報ファイルに対応するクリップストリ ームファイル力 ディスク 101に存在しないと判定された場合、即ち、例えば、 "PLAY LIST.DAT"ファイルにしたがった再生に必要なクリップ情報ファイルやクリップストリー ムファイル力 ディスク 101に記録されていない場合、ビデオコンテンツ再生プロダラ ム 210は、ディスク 101に対応していないと判断して、ステップ S102に進み、上述し たエラー処理が行われ、再生前処理を終了する。
[0357] 一方、ステップ S107において、ステップ S 105で認識したクリップ情報ファイルの読 み込みに成功し、かつ、クリップ情報ファイルに対応するクリップストリームファイルが 、ディスク 101に存在すると判定された場合、プレイヤ制御モジュール 212は、初期 化処理を終了し、ステップ S108に進む。
[0358] ステップ S108では、スクリプト制御モジュール 211が、 "SCRIPT.DAT"ファイルの解 釈と実行を開始する。
[0359] 例えば、 V、ま、スクリプト制御モジュール 211が、 "SCRIPT.DAT〃ファイルを実行する ことにより、 1番目の PlayListO(PlayList#0)の再生力 プレイヤ制御モジュール 212に 指示されたとすると、図 30の再生処理が行われる。
[0360] 「再生処理」
即ち、図 30は、ビデオコンテンツ再生プログラム 210が行う再生処理を説明するフ ローチャートである。
[0361] 「再生準備処理」
再生処理では、プレイヤ制御モジュール 212は、まずステップ S121と S122におい て、スクリプト制御モジュール 211から再生を指示された PlayList()、即ち、 1番目の Pla yListO(PlayList#0)の再生準備処理を行う。 [0362] 即ち、プレイヤ制御モジュール 212は、ステップ S121において、 1番目の PlayList# 0に含まれる 1番目の PlayItem#0の IN_time (図 6)を確認して、ステップ S122〖こ進み、 1番目の PlayList#0に含まれる 1番目の PlayItem#0によって再生されるクリップストリー ムファイル" 00001.PS"上の、その PlayItem#0の IN_timeに相当する、再生を開始する 再生開始位置を調査する。
[0363] ここで、 PlayltemOの IN_time (図 6)力 クリップストリームファイルの先頭を指し示して いる場合には、クリップストリームファイルの先頭から、プログラムストリームを読み出せ ば良いが、 IN_timeが、クリップストリームファイルの先頭以外を指し示している場合に は、 IN_timeに対応する位置を探し出し (調査し)、そこ力もプログラムストリームを読み 出す必要がある。
[0364] 具体的には、図 25に示した場合、 1番目の PlayList#0に含まれる 1番目の Playltem# 0の IN_timeは、 180,090である。プレイヤ制御モジュール 212は、 1番目の PlayList#0 に含まれる 1番目の PlayItem#0によって再生されるクリップストリームファイル" 00001.C LP"の、図 27に示した EP_map()から、 PlayItem#0の IN_timeである 180,090に適した再 生開始位置を探し出す。
[0365] 即ち、プレイヤ制御モジュール 212は、例えば、 EPjnapOに記述されたデコード開 始可能点を表す PTS_EP_startのうちの、式 PTS_EP_start≤ IN_timeを満たす最大の PT S_EP_startを、二分探索 (バイナリサーチ)等を用いて検索する。ここで、 IN_time以下 の PTS_EP_startを検索するのは、 IN_timeによって表される位置力 デコード開始可能 点であるとは限らな 、からである。
[0366] V、まの場合、 IN_timeは、上述したように、 180,090である。また、 1番目の PlayList#0 に含まれる 1番目の PlayItem#0によって再生されるクリップストリームファイル" 00001.C LP"の、図 27に示した EPjnapOにおいては、式 PTS_EP_start≤IN_timeを満たす最大 の PTS_EP_startとして、 180,090が記述されている。従って、プレイヤ制御モジユーノレ 2 12では、図 27〖こ示した EPjnapO力ら、その 180,090となっている PTS_EP_startが検索 される。
[0367] さらに、プレイヤ制御モジュール 212では、その検索された PTS_EP_startに対応す る RPN_EP_startである 305 (セクタ)が読み出され、その 305である RPN_EP_startによつ て表されるクリップストリームファイル" 00001.PS"上の位置力 再生開始位置として決 定される。
[0368] プレイヤ制御モジュール 212は、以上のようにして再生開始位置を決定すると、ス テツプ S 122力ら S 123に進み、タイムコードを表示するように、グラフィクス処理モジュ ール 219を制御する。グラフィクス処理モジュール 219は、プレイヤ制御モジュール 2 12の制御にしたカ^、、タイムコード(のビデオデータ)を生成してビデオ出力モジユー ル 220〖こ出力する。これにより、タイムコードの表示が開始される。
[0369] ここで、ステップ S 123で表示が開始されるタイムコードは、例えば、 PlayListOの先 頭を 00:00:00 (時間:分:秒)に換算した値とする。なお、タイムコードとともに、またはタ ィムコードではなぐチヤプタゃインデタスの番号を表示するようにしても良い。
[0370] 「PlaylistMarkOの解析処理」
ステップ S123でタイムコードの表示が開始された後は、ステップ S124に進み、プ レイヤ制御モジュール 212は、スクリプト制御モジュール 211から再生を指示された P1 ayList0、即ち、 1番目の PlayListO(PlayList#0)に記述されている PlayListMarkO (図 7 )を解析する解析処理を行う。
[0371] 具体的には、プレイヤ制御モジュール 212は、既に読み込んである" PLAYLIST.DA T' 'ファイルにおける 1番目の PlayList#0の、図 28上側に示した PlayListMarkOにおい て、 number_of_PlayList_marksが 7になって 、ることから、その PlayList#0に含まれる Ma rk()の数が 7であることを認識する。
[0372] さらに、プレイヤ制御モジュール 212は、 PlayList#0に含まれる、図 28上側の 7つの MarkOを解析し、その reむ o_PlayItem_idから、 7つの MarkOのうちの 1番目から 4番目ま での 4つの MarkOが、 PlayList#0の 1番目の PlayltemO (PlayItem#0)に属していること を認識する。
[0373] その後、プレイヤ制御モジュール 212は、 PlayList#0の 1番目の PlayItem#0に属して いる 4つの MarkOの mark_time_stampを取り出し、要素数力 の配列として、デコード制 御モジュール 214に渡す。即ち、これにより、図 28上側の 7つの MarkOのうちの 1番目 から 4番目までの 4つの MarkOそれぞれの mark_time_stampである {180,090}、 {5,580,09 0}、 {10,980,090}、 {16,380,090}の 4つの時刻力 プレイヤ制御モジュール 212から、 デコード制御モジュール 214に渡される。このときこれら時刻の属性は「マーク処理」 であることも、プレイヤ制御モジュール 212から、デコード制御モジュール 214に伝え られる。デコード制御モジュール 214は、計時部 214Aで計時している時刻が、「マー ク処理」の属性の時刻に一致したとき、その旨を示すメッセージ、「マーク処理」の属 性の時刻に一致した時刻、および「マーク処理」の属性を、プレイヤ制御モジュール 2 12に伝える。
[0374] 「再生するエレメンタリストリームの決定処理」
次に、ステップ S 124力ら S 125に進み、プレイヤ制御モジュール 212は、再生する エレメンタリストリームを決定する。
[0375] 即ち、プレイヤ制御モジュール 212は、スクリプト制御モジュール 211から再生を指 示された PlayListOである 1番目の PlayList#0における 1番目の Playltem#0 (図 25) (DC lip_Information_fime_nameにファイル名が記述されて 、る、図 26のクリップ情報フアイ ル" 00001.CLP"において、 number_of_streamsが 4になっていることから、対応するタリ ップストリームファイル" 00001.PS"に、 4本のエレメンタリストリームが多重化されている ことを認識する。さらに、プレイヤ制御モジュール 212は、その 4本のエレメンタリストリ ームに対する、図 26のクリップ情報ファイル" 00001.CLP"の StaticInfoOの streamjdと 必要な private_stream_idを順に調査し、その 4本のエレメンタリストリームが、 1本のビ デォストリーム、 1本の ATRACオーディオストリーム、および 2本の字幕ストリームであ ることを認識する。即ち、クリップストリームファイル" 00001.PS"に多重化されている各 属性のエレメンタリストリームの本数が認識される。
[0376] なお、クリップストリームファイルに多重化されている各属性のエレメンタリストリーム の本数の情報は、再生中でのエレメンタリストリームの切り替え (オーディオ切り替え、 字幕切り替え等)に使用される。また、字幕ストリームは、クリップストリームファイル中 に存在しない (コンテンツに字幕が含まれない)場合があり、字幕ストリームが存在す るかどうかの判断に、「字幕ストリーム」の属性のエレメンタリストリームの本数の情報が 使用される。
[0377] プレイヤ制御モジュール 212は、以上のような StaticInfoOの調査の結果に基づいて 、再生するエレメンタリストリームを選択、決定するが、いまの場合、クリップストリーム ファイル" 00001. PS"に多重化されて!/、る 4本のエレメンタリストリームの中に、「ビデオ ストリーム」と「オーディオストリーム」の属性のエレメンタリストリームは、それぞれ 1本し かないので、「ビデオストリーム」と「オーディオストリーム」の属性のエレメンタリストリー ムについては、選択の余地がなぐその 1本のビデオストリームとオーディオストリーム (ATRACオーディオストリーム)力 再生するエレメンタリストリームとして決定される。
[0378] また、「字幕ストリーム」の属性のエレメンタリストリームについては、クリップストリーム ファイル" 00001.PS"に多重化されて!/、る 4本のエレメンタリストリームの中に 2本存在 するので、その 2本の字幕ストリームのうちのいずれ力 1本の字幕ストリーム力 再生 するエレメンタリストリームとして選択、決定される。ここでは、例えば、 2本の字幕ストリ ームのうちの、クリップ情報ファイル" 00001.CLP"での出現順で最初の字幕ストリーム 力 S選択されることとする。
[0379] ここで、上述のように、クリップストリームファイル" 00001.PS"に多重化されている 4本 のエレメンタリストリームの属性と本数を認識するにあたっては、その 4本のエレメンタ リストリームそれぞれを特定する必要がある力 プレイヤ制御モジュール 212は、クリツ プストリームファイル" 00001.PS"に多重化されている 4本のエレメンタリストリームの特 疋 、 stream— idと必要な private— stream— idによって? Tつ。
[0380] 即ち、プレイヤ制御モジュール 212は、クリップストリームファイル" 00001.PS"に多重 化されている 4本のエレメンタリストリームのうちの、「ビデオストリーム」の属性のエレメ ンタリストリームであるビデオストリームを、図 26でクリップ情報ファイル" 00001.CLP" につ 、て説明したように、 OxEOとなって!/、る streamjdで特定する。
[0381] また、プレイヤ制御モジュール 212は、クリップストリームファイル" 00001.PS"に多重 ィ匕されて 、る 4本のエレメンタリストリームのうちの、「オーディオストリーム」の属性のェ レメンタリストリームである ATRACオーディオストリームを、図 26でクリップ情報フアイ ル" 00001.CLP"について説明したように、 OxBDとなっている stream_id、および 0x00と なつ ヽる private— stream— id "特疋する。
[0382] さらに、プレイヤ制御モジュール 212は、クリップストリームファイル" 00001.PS"に多 重化されて 、る 4本のエレメンタリストリームにおける「字幕ストリーム」の属性のエレメ ンタリストリームである 2本の字幕ストリームそれぞれを、図 26でクリップ情報ファイル" 00001. CLP"について説明したように、 OxBDとなっている stream_id、および 0x80となつ て!、る private_stream_idと、 OxBDとなって 、る stream_id、および 0x81となって 、る priva te_stream_idで、それぞれ特定する。
[0383] 以上のように、クリップストリームファイルに対応するクリップ情報ファイルのメタデー タとして記述される streamjdと private_stream_idの糸且み合わせによって、そのクリップス トリームファイルに多重化されているエレメンタリストリームを特定することができる。
[0384] ここで、 streamjdと private_streamjdの組み合わせは、 MPEG2- Systemの多重化を 拡張するために設けたメカニズムである。この stream jdと private_stream jdの組み合 わせを、メタデータ (データベース)において、エレメンタリストリームを特定するために 使用することにより、エレメンタリストリームを確実に特定することが可能になる。また、 将来、 private_stream_idの意味を拡張し、対応するエレメンタリストリームの本数や種 類 (属性)を増やした場合にも現在のメカニズムをそのまま使用可能であるため、拡張 性において勝っている。
[0385] 即ち、例えば、 BD(Blue ray Disc)規格では、データの特定に、 MPEG2規格のトラン スポートストリーム (Transport Stream)の PID(Packet ID)が用いられるため、 MPEG2規 格に拘束される。また、例えば、 DVD-Video規格では、 private_stream_idに類似する s ub_stream_idが定義されている力 sub_stream_idは、ストリームの特定のためにデータ ベース上に記述することができるようにはなっておらず、 8本あるいは 32本のストリーム 情報を記述する固定的な領域に記述することができるにすぎな 、ため(たとえば VI4- 49、 Table 4.2.1-2 (VTS- AST— ATRT)や VI4- 52、 Table 4.2.1-3 (VTS— SPST— ATRT)等 参照)、拡張性に乏しい。
[0386] これに対して、 streamjdと private_streamjdの組み合わせは、メタデータが記述され る、例えば、図 10のクリップ情報ファイル ClipOにおいて、 number_of_streamsで表すこ とができる数だけ記述することができ、従って、クリップストリームファイルに多重化さ れているエレメンタリストリームを、その数によらず(但し、 number_of_streamsで表すこ とができる数の範囲)、クリップ情報ファイル ClipOに記述されたメタデータとしての stre amjdと private_stream_idの組み合わせから特定することが可能となる。
[0387] なお、本実施の开態では、 streamjdと private_stream_idの組み合わせは、図 10のク リップ情報ファイルにお 、て、対応するクリップストリームファイルに多重化されて 、る エレメンタリストリームを特定するのに使用される他、例えば、図 7の PlayListMarkO〖こ 関連付けるエレメンタリストリームの特定にも使用される。さらに、 streamjdと private_st reamjdの組み合わせは、その他、例えば、図 14の EPjnapOにおいて、デコード可能 開始点の情報を記述するエレメンタリストリームの特定にも使用される。
[0388] 「出力属性の制御処理」
その後、ステップ S125力ら S126に進み、プレイヤ制御モジュール 212は、再生対 象のエレメンタリストリーム、即ち、ステップ S 125で再生すると決定したエレメンタリスト リームの出力属性の制御処理を行う。
[0389] 具体的には、プレイヤ制御モジュール 212は、まず、再生対象のエレメンタリストリ ーム、即ち、ステップ S125で再生すると決定したビデオストリーム、 ATRACオーディ ォストリーム、字幕ストリームそれぞれについて、出力属性が記述される DynamicInfoO (図 13)の数を表す number_of_DynamicInfo (図 10)を調査する。
[0390] ここで、 、まの場合、再生対象のビデオストリーム、 ATRACオーディオストリーム、字 幕ストリームは、クリップストリームファイル" 00001.PS"に多重化されているエレメンタリ ストリームであり、それらの number_of_Dynamidnfoは、図 26の" 00001. CLP"で説明し たように、いずれも 0になっている。このように、再生対象のエレメンタリストリームのす ベてについて、 number_of_Dynamidnfoが 0である場合、プレイヤ制御モジュール 212 は、再生対象のエレメンタリストリームの出力属性の制御処理としては、特に処理を行 わない。
[0391] なお、再生対象のエレメンタリストリームについての number_of_Dynamidnfoが 0でな い場合に、そのエレメンタリストリームの出力属性の制御として行われる処理について は、後述する。
[0392] 「再生開始の準備処理」
ステップ S 126の処理後は、ステップ S127に進み、プレイヤ制御モジュール 212は 、再生対象のエレメンタリストリームの再生開始の準備処理を行う。
[0393] 即ち、プレイヤ制御モジュール 212は、コンテンツデータ供給モジュール 213に対 し、再生対象のエレメンタリストリームが多重化されて 、るクリップストリームファイル" 0 0001. PS"のファイル名と、ステップ S122で決定した再生開始位置である EP_mapOに 記述された RPN_EP_start (=305)を与える。
[0394] さらに、プレイヤ制御モジュール 212は、再生対象のエレメンタリストリームが多重化 されているクリップストリームファイル" 00001.PS"に格納されたプログラムストリームの、 ノ ッファ制御モジュール 215への供給が開始される前に、バッファ制御モジュール 2 15を初期化する。
[0395] 具体的には、バッファ制御モジュール 215 (図 3)では、データ先頭ポインタ記憶部 231に記憶されるデータ先頭ポインタ、データ書き込みポインタ記憶部 232に記憶さ れるデータ書き込みポインタ、ビデオ読み出しポインタ記憶部 241に記憶されるビデ ォ読み出しポインタ、オーディオ読み出しポインタ記憶部 251に記憶されるオーディ ォ読み出しポインタ、字幕読み出しポインタ記憶部 262に記憶される字幕読み出しポ インタに、同じ値が代入される。
[0396] これにより、データ先頭ポインタ記憶部 231に記憶されたデータ先頭ポインタと、デ ータ書き込みポインタ 232に記憶されたデータ書き込みポインタとは、ノッファ制御モ ジュール 215のバッファ 215Aの同一の位置を指す。これは、バッファ 215Aに、有効 なデータが蓄積されて 、な 、状態を表す。
[0397] さらに、プレイヤ制御モジュール 212は、再生対象のエレメンタリストリームを識別 ( 特定)するための識別情報としての stream_id、さらには、必要に応じて、 private_strea mjdを、バッファ制御モジュール 215に供給する。
[0398] 即ち、上述したように、再生対象のエレメンタリストリームのうちの、「ビデオストリーム 」の属性のビデオストリームは、 OxEOとなっている streamjdによって特定され、「ォー ディォストリーム」の属性の ATRACオーディオストリームは、 OxBDとなって!/、る streamj d、および 0x00となっている private_streamjdによって特定され、「字幕ストリーム」の属 '性の字幕ストリームは、 OxBDとなっている stream jd、および 0x80となっている private_s treamjdによって特定される。プレイヤ制御モジュール 212は、これらの streamjdと pri vate_streamjdを、バッファ制御モジュール 215に供給する。
[0399] バッファ制御モジュール 215 (図 3)では、ビデオ読み出し機能部 233が、プレイヤ 制御モジュール 212からの、ビデオストリームについての OxEOとなっている streamjd を、 streamjdレジスタ 242に記憶させる。また、オーディオ読み出し機能部 234が、プ レイヤ制御モジュール 212からの、 OxBDとなっている streamjdと、 0x00となっている pr ivate_stream_idを、 streamjdレジスタ 252と private_stream_idレジスタ 253に、それぞ れ記憶させる。さら〖こ、字幕読み出し機能部 235が、プレイヤ制御モジュール 212か らの、 OxBDとなっている stream— idと、 0x80となっている private— stream— id 、 streamjd レジスタ 263と private_stream_idレジスタ 264に、それぞれ記憶させる。
[0400] なお、プレイヤ制御モジュール 212は、バッファ制御モジュール 215に供給した再 生対象のエレメンタリストリームの streamjdと private_stream_idを、今後の処理のため に記憶する。プレイヤ制御モジュール 212は、これらの streamjdや private_stream_id を、後述するストリーム切り替えを要求するメッセージの発生時や、後述するマーク処 理にお 、て現在再生中のストリームを特定するために使用する。
[0401] プレイヤ制御モジュール 212は、バッファ制御モジュール 215 (図 3)の初期化とし て、さらに、再生対象のエレメンタリストリームが多重化されているクリップストリームフ アイルに応じた値の字幕読み出し機能フラグを、字幕読み出し機能フラグ記憶部 26 1にセットする。
[0402] 即ち、 、まの場合、再生対象のエレメンタリストリームが多重化されて 、るクリップスト リームファイル" 00001.PS"には、字幕ストリームが含まれるため、字幕読み出し機能部 235を機能させるために、値が 1の字幕読み出し機能フラグが、字幕読み出し機能フ ラグ記憶部 261にセットされる。なお、再生対象のエレメンタリストリームが多重化され て!、るクリップストリームファイルに字幕ストリームが含まれて 、な 、場合、字幕読み出 し機能フラグ記憶部 261には、値が 0の字幕読み出し機能フラグがセットされる。この 場合、字幕読み出し機能部 235は機能しな 、 (特に処理を行わな ヽ)。
[0403] また、プレイヤ制御モジュール 212は、スクリプト制御モジュール 211から再生を指 示された 1番目の PlayList#0に含まれる 1番目の Playltem#0 (図 25)の IN_timeである 1 80,090と、 011丁_1:^6でぁる27,180,090とを、デコード制御モジュール 214に対して与 える。デコード制御モジュール 214では、 IN_timeは、 PlayltemOによって再生されるク リップのデコード開始の制御に、 OUT_timeは、そのクリップのデコード終了、さらには 、後述する Playltem乗り換えの制御に、それぞれ使用される。
[0404] さらに、プレイヤ制御モジュール 212は、グラフィクス処理モジュール 219に対する 字幕ストリームの表示方式の指示を初期化する。即ち、プレイヤ制御モジュール 212 は、字幕ストリームの表示方式を、例えば、デフォルトの表示方式とするように、グラフ イクス処理モジュール 219を制御する。
[0405] 「データ読み込み開始」
その後、ステップ S127力ら S128に進み、プレイヤ制御モジュール 212は、コンテ ンッデータ供給モジュール 213を制御し、これにより、コンテンツデータ供給モジユー ル 213は、オペレーティングシステム 201の機能を使用して、再生対象のエレメンタリ ストリームが多重化されたプログラムストリームが格納されたクリップストリームファイル を読み出す。すなわち、コンテンツデータ供給モジュール 213は、ディスク 101 (図 4) の' VIDEO"ディレクトリの下にある" STREAM"ディレクトリのクリップストリームファイル" 00001.PS"を指定し、さらに、ステップ S 122で決定された再生開始位置である 305セ クタを指定して、オペレーティングシステム 201に対してファイル読み出しを要求する 。また、コンテンツデータ供給モジュール 213は、ディスク 101から読み出したデータ を、バッファ制御モジュール 215に供給するように指定する。
[0406] これにより、ディスク 101からの、クリップストリームファイル" 00001.PS"に格納された プログラムストリームの読み出しが開始され、そのプログラムストリームは、バッファ制 御モジュール 215に供給される。
[0407] バッファ制御モジュール 215 (図 3)は、ディスク 101から読み出されて供給されたプ ログラムストリームを、バッファ 215Aのデータ書き込みポインタ記憶部 232のデータ 書き込みポインタが指す位置に書き込み、書き込んだデータのサイズだけデータ書 き込みポインタをインクリメントする。
[0408] ここで、以下、特に断らない限り、コンテンツデータ供給モジュール 213は、ノッファ 制御モジュール 215のバッファ 215Aに空きがあれば、ディスク 101からデータを読 み出し、ノッファ制御モジュール 215のバッファ 215Aに供給して記憶させることとす る。従って、ノ ッファ 215Aには、常時、十分なデータが蓄積されているとする。
[0409] 「デコーダ制御開始」 以上のようにして、ディスク 101からのデータの読み出しが開始され、そのデータが バッファ制御モジュール 215のバッファ 215Aに蓄積され始めると、ステップ S128か ら S129に進み、デコード制御モジュール 214は、ビデオデコーダ制御モジュール 21 6、オーディオデコーダ制御モジュール 217、字幕デコーダ制御モジュール 218を制 御し、デコード動作の前段階として、ノ ッファ 215Aからのデータの読み出しを開始さ せる。
[0410] 即ち、これにより、ビデオデコーダ制御モジュール 216は、バッファ制御モジュール 215 (図 3)のビデオ読み出し機能部 233にデータを要求し、その要求に応じてバッフ ァ制御モジュール 215から渡される、バッファ 215Aに記憶された 1つのビデオァクセ スユニット、そのビデオアクセスユニットに付加されている PTSと DTS (以下、適宜、タイ ムスタンプという)、およびデコード開始可能点の直前に配置されている private_strea m_2の PES_packet()に記述された情報(以下、適宜、付加情報とも 、う)である pic_struc t_copyや、 au_ref_flag、 AUJengthなどを得る。なお、タイムスタンプは、ビデオデコーダ 制御モジュール 216がビデオアクセスユニットを得る毎に、ビデオデコーダ制御モジ ユール 216からデコード制御モジュール 214に渡される。
[0411] 一方、オーディオデコーダ制御モジュール 217も、バッファ制御モジュール 215 (図 3)のオーディオ読み出し機能部 234にデータを要求し、その要求に応じてバッファ 制御モジュール 215から渡される、バッファ 215Aに記憶された 1つの (ATRAC)ォー ディォアクセスユニットと、そのオーディオアクセスユニットに付加されているタイムスタ ンプ(PTS, DTS)を得る。なお、タイムスタンプは、オーディオデコーダ制御モジユー ル 217がオーディオアクセスユニットを得る毎に、オーディオデコーダ制御モジユー ル 217からデコード制御モジュール 214に渡される。
[0412] さらに、字幕デコーダ制御モジュール 218は、バッファ制御モジュール 215 (図 3)の 字幕読み出し機能部 235にデータを要求し、その要求に応じてバッファ制御モジュ ール 215から渡される、バッファ 215Aに記憶された 1つの字幕アクセスユニットと、そ の字幕アクセスユニットに付加されているタイムスタンプを得る。なお、タイムスタンプ は、字幕デコーダ制御モジュール 218が字幕アクセスユニットを得る毎に、字幕デコ ーダ制御モジュール 218からデコード制御モジュール 214に渡される。また、再生対 象のエレメンタリストリームに、字幕ストリームが存在しない場合や、ノッファ 215Aに、 字幕アクセスユニットが記憶されていない場合は、バッファ制御モジュール 215から 字幕デコーダ制御モジュール 218には、データは渡されない。
[0413] ここで、ビデオデコーダ制御モジュール 216、オーディオデコーダ制御モジュール 2 17、および字幕デコーダ制御モジュール 218は、バッファ制御モジュール 215に対 してデータを要求する毎に、そのデータの要求に対する結果を、デコード制御モジュ ール 214に渡す。
[0414] また、バッファ制御モジュール 215から、ビデオデコーダ制御モジュール 216、ォー ディォデコーダ制御モジュール 217、および字幕デコーダ制御モジュール 218に対 してデータが渡されるときの、そのデータのバッファ 215Aからの読み出しの詳細につ いては、後述する。
[0415] 「デコード開始」
以上のように、ビデオデコーダ制御モジュール 216、オーディオデコーダ制御モジ ユール 217、字幕デコーダ制御モジュール 218力 バッファ制御モジュール 215のバ ッファ 215Aからデータを読み出し始めると、ステップ S129力 S130に進み、そのデ ータのデコードが開始される。
[0416] 即ち、デコード制御モジュール 214は、ステップ S 127でプレイヤ制御モジュール 2 12力ら与えられた、 PlayList#0に含まれる 1番目の PlayItem#0の IN_timeである 180,09 0、さらには、ビデオデコーダ制御モジュール 216、オーディオデコーダ制御モジユー ル 217、字幕デコーダ制御モジュール 218からステップ S 129で説明したように渡さ れるタイムスタンプに基づき、同期を確保するために必要であればタイミングをずらし て、デコード開始を、ビデオデコーダ制御モジュール 216、オーディオデコーダ制御 モジュール 217、および字幕デコーダ制御モジュール 218に指令する。
[0417] ここで、同期を確保するためのタイミングをずらしたデコード開始の指令の方法は、 例えば、特許第 3496725号に記載されており、簡単には、ビデオデコーダ制御モジュ ール 216、オーディオデコーダ制御モジュール 217、字幕デコーダ制御モジュール 2 18それぞれから渡されたタイムスタンプのうちの最小値を、計時部 214Aによって計 時される時刻の初期値として設定して時刻の計時を開始し、計時部 214Aによって計 時される時刻と、タイムスタンプとがー致した時点で、デコード開始を指令する方法が ある。
[0418] ビデオデコーダ制御モジュール 216は、デコード制御モジュール 214からのデコ一 ド開始の指示を受け、その指示に応じて、バッファ制御モジュール 215 (図 3)のビデ ォ読み出し機能部 233から得た 1つのビデオアクセスユニットを、ビデオデコーダ 11 6 (図 1)に渡してデコードさせる。さらに、ビデオデコーダ制御モジュール 216は、ビ デォデコーダ 116によるデコードの結果得られるビデオデータを、グラフィクス処理モ ジュール 219に供給する。
[0419] 以後、ビデオデコーダ制御モジュール 216は、バッファ制御モジュール 215のビデ ォ読み出し機能部 233から得られる 1ずつのビデオアクセスユニットを、ビデオデコー ダ 116で順次デコードし、そのデコードの結果得られるビデオデータを、グラフィクス 処理モジュール 219に供給して!/、く。
[0420] 一方、オーディオデコーダ制御モジュール 217も、デコード制御モジュール 214か らのデコード開始の指示を受け、その指示に応じて、ノッファ制御モジュール 215 ( 図 3)のオーディオ読み出し機能部 234力も得た 1つのオーディオアクセスユニットを 、オーディオデコーダ 117 (図 1)に渡してデコードさせる。さらに、オーディオデコー ダ制御モジュール 217は、オーディオデコーダ 117によるデコードの結果得られるォ 一ディォデータを、オーディオ出力モジュール 221に供給する。
[0421] 以後、オーディオデコーダ制御モジュール 217は、バッファ制御モジュール 215の オーディオ読み出し機能部 234から得られる 1ずつのオーディオアクセスユニットを、 オーディオデコーダ 117で順次デコードし、そのデコードの結果得られるオーディオ データを、オーディオ出力モジュール 221に供給して 、く。
[0422] また、字幕デコーダ制御モジュール 218も、デコード制御モジュール 214からのデ コード開始の指示を受け、その指示に応じて、ノ ッファ制御モジュール 215 (図 3)の 字幕読み出し機能部 235から得た 1つの字幕アクセスユニットを、内部に持つ字幕デ コードソフトウェアでデコードし、そのデコードの結果得られる字幕データ (字幕の画 像データ)を、グラフィクス処理モジュール 219に供給する。
[0423] 以後、字幕デコーダ制御モジュール 218は、バッファ制御モジュール 215の字幕読 み出し機能部 235から得られる 1ずつの字幕アクセスユニットを、内部に持つ字幕デ コードソフトウェアで順次デコードし、そのデコードの結果得られる字幕データを、ダラ フィクス処理モジュール 219に供給して!/、く。
[0424] 「グラフィクス処理」
その後、ステップ S130力ら S131に進み、グラフィクス処理モジュール 219は、上述 したようにして、ビデオデコーダ制御モジュール 216から供給されるビデオデータ、さ らには、必要に応じて、字幕デコーダ制御モジュール 218から供給される字幕データ を対象に、グラフィクス処理を行う。
[0425] 即ち、グラフィクス処理モジュール 219は、まず字幕デコーダ制御モジュール 218 からの字幕データを、プレイヤ制御モジュール 212からの表示方式の指示に従って、 拡大や縮小等する字幕処理を行う。プレイヤ制御モジュール 212から、表示方式の 指示がない場合、またはデフォルトの表示方式の指示があった場合、グラフィクス処 理モジュール 219は、字幕デコーダ制御モジュール 218からの字幕データを、そのま ま保存する。
[0426] さらに、グラフィクス処理モジュール 219は、ビデオデコーダ制御モジュール 216か らのビデオデータと、字幕デコーダ制御モジュール 218からの字幕データ、または字 幕処理後の字幕データとを加算し、ビデオデコーダ制御モジュール 216からのビデ ォデータに字幕データがオーバーレイされた出力ビデオデータを得て、ビデオ出力 モジュール 220に供給する。
[0427] なお、グラフィクス処理モジュール 219は、スクリプト制御モジュール 211やプレイヤ 制御モジュール 212力ら、例えば、メニューや、メッセージ、タイムコード、チヤプタま たはインデタスの番号等の情報の表示の指示を受けた場合は、その情報を生成し、 出力ビデオデータにオーバーレイして、ビデオ出力モジュール 220に供給する。
[0428] 「出力処理」
ステップ S131の処理後は、ステップ S132に進み、ビデオ出力モジュール 220は、 ステップ S 131で説明したようにしてグラフィクス処理モジュール 219から供給される 出力ビデオデータを、 FIFO220Aに順次記憶させ、その FIFO220Aに記憶された出 力ビデオデータを、あら力じめ決められた出力レートで順次出力する。 [0429] ビデオ出力モジュール 220は、 FIFO220Aの記憶容量 (残量)に余裕がある限り、 グラフィクス処理モジュール 219からの出力ビデオデータを受け入れる力 余裕がな い場合には、出力ビデオデータの受け入れの停止を、グラフィクス処理モジュール 2 19に要求する。これにより、グラフィクス処理モジュール 219は、処理を停止するとと もに、処理の停止を、ビデオデコーダ制御モジュール 216および字幕デコーダ制御 モジュール 218に要求する。これにより、ビデオデコーダ制御モジュール 216および 字幕デコーダ制御モジュール 218が処理を停止する。
[0430] ビデオ出力モジュール 220は、出力ビデオデータの受け入れの停止を、グラフイク ス処理モジュール 219に要求した後に、 FIFO220Aからの出力ビデオデータの出力 が進み、 FIFO220Aに余裕ができた時点で、出力ビデオデータの受け入れを、ダラ フィクス処理モジュール 219に要求する。この要求は、出力ビデオデータの受け入れ の停止の要求と同様に、グラフィクス処理モジュール 219から、ビデオデコーダ制御 モジュール 216および字幕デコーダ制御モジュール 218に伝えられる。これにより、 グラフィクス処理モジュール 219、さらには、ビデオデコーダ制御モジュール 216およ び字幕デコーダ制御モジュール 218は、停止して 、た処理を再開する。
[0431] 一方、オーディオ出力モジュール 221も、ステップ S130で説明したようにしてォー ディォデコーダ制御モジュール 217から供給されるオーディオデータを、 FIF0221A に順次記憶させ、その FIF0221Aに記憶されたオーディオデータを、あらかじめ決め られた出力レート (サンプリング周波数)で順次出力する。
[0432] オーディオ出力モジュール 221は、 FIF0221Aの記憶容量 (残量)に余裕がある限 り、オーディオデコーダ制御モジュール 217からのオーディオデータを受け入れるが 、余裕がない場合には、オーディオデータの受け入れの停止を、オーディオデコーダ 制御モジュール 217に要求する。これにより、オーディオデコーダ制御モジュール 21 7は、処理を停止する。
[0433] オーディオ出力モジュール 221は、オーディオデータの受け入れの停止を、オーデ ィォデコーダ制御モジュール 217に要求した後に、 FIF0221Aからのオーディオデ ータの出力が進み、 FIF0221Aに余裕ができた時点で、オーディオデータの受け入 れを、オーディオデコーダ制御モジュール 217に要求する。これにより、オーディオ デコーダ制御モジュール 217は、停止して!/、た処理を再開する。
[0434] 以上のようにして、ビデオ出力モジュール 220およびオーディオ出力モジュール 22 1からデータが出力されるにつれて、エレメンタリストリームのデコードが行われていく
[0435] 図 1のディスク装置がディスク 101を再生するときの全体の処理または動作の流れ は、図 29および図 30で説明したとおりである力 以下、ディスク装置においてデイス ク 101の再生が行われているときの、その他の処理または動作について説明する。
[0436] [Playltem乗り換え]
図 29および図 30で説明したようにして、図 25における 1番目の PlayList#0の 1番目 の PlayItem#0の再生が始まるが、 PlayList#0によれば、その 1番目の PlayItem#0の再 生が終了すると、 2番目の Playltem#lの再生が開始される。即ち、 PlayItem#0から Play Item#lに Playltemを乗り換える Playltem乗り換えが行われる。
[0437] そこで、図 31のフローチャートを参照して、この Playltem乗り換えの処理について説 明する。
[0438] 図 29および図 30で説明したようにして、図 25における PlayList#0の 1番目の Playlte m#0 (のクリップ)の再生が開始されると、デコード制御モジュール 214 (図 2)は、その 1番目の PlayItem#0の再生が行われて!/、る間、内蔵する計時部 214Aが計時して!/ヽ る時刻を確認し続けている。
[0439] 「PlayItem#0の再生終了」
そして、デコード制御モジュール 214は、計時部 214Aが計時している時刻力 図 3 0のステップ 127でプレイヤ制御モジュール 212から与えられた 1番目の PlayItem#0 の OUT_timeである 27,180,090 (図 25)に等しくなると、ステップ S151において、デコ ード中断制御を行 、、 PlayItem#0の再生を終了する。
[0440] 即ち、デコード制御モジュール 214は、ビデオデコーダ制御モジュール 216、ォー ディォデコーダ制御モジュール 217、字幕デコーダ制御モジュール 218を操作して、 デコード動作を停止させる。さらに、デコード制御モジュール 214は、ビデオ出力モジ ユール 220を制御し、現在出力中の出力ビデオデータを引き続き出力させる。
[0441] また、デコード制御モジュール 214は、 1番目の PlayItem#0の再生が終了した旨の メッセージを、プレイヤ制御モジユーノレ 212に伝える。
[0442] 「PlayItem#lの再生開始」
プレイヤ制御モジュール 212は、上述したように、図 29のステップ S105で、 1番目 の PlayList #0に、 1番目の PlayItem#0と 2番目の Playltem#lとが存在することを認識し ており、デコード制御モジュール 214から、 1番目の PlayItem#0の再生が終了した旨 のメッセージが伝えられると、ステップ S151力ら S152に進み、 2番目の Playltem#lの 再生を、上述した 1番目の PlayItem#0における場合と同様にして開始する。
[0443] 即ち、 2番目の Playltem#lの再生手順を概説すれば、まず、プレイヤ制御モジユー ル 212は、図 30のステップ S122における場合と同様にして、 2番目の Playltem#lに ついて、 EP_map()に記述された RPN_EP_startのうちのいずれかを、再生開始位置とし て決定する。
[0444] さらに、プレイヤ制御モジュール 212では、図 30のステップ S124で説明したように して、 2番目の Playltem#lに属する MarkOの認識や、図 30のステップ S 125で説明し たようにして、 Playltem#lによって再生されるクリップストリームファイル" 00002.PS"に 多重化されている各属性のエレメンタリストリームの本数の認識、さらには、再生する( 再生対象の)エレメンタリストリームの決定等が行われる。
[0445] そして、プレイヤ制御モジュール 212は、図 30のステップ S 127における場合と同 様の処理を行う。
[0446] 即ち、プレイヤ制御モジュール 212は、再生開始位置として決定した EPjnapOの RP N_EP_startと、再生対象のエレメンタリストリームが多重化されているクリップストリーム ファイルのファイル名、即ち、いまの場合、 2番目の Playltem#l (図 25)の Clipjnforma tion_file_nameに記述された" 00002. CLP"に対応するクリップストリームファイル" 00002 .PS"のファイル名を、コンテンツデータ供給モジュール 213に対して与える。
[0447] さらに、プレイヤ制御モジュール 212は、再生対象のエレメンタリストリームが多重化 されているクリップストリームファイル" 00002.PS"に格納されたプログラムストリームの、 ノ ッファ制御モジュール 215への供給が開始される前に、バッファ制御モジュール 2 15を初期化する。
[0448] 即ち、これにより、バッファ制御モジュール 215 (図 3)において、データ先頭ポイン タ記憶部 231に記憶されるデータ先頭ポインタ、データ書き込みポインタ記憶部 232 に記憶されるデータ書き込みポインタ、ビデオ読み出しポインタ記憶部 241に記憶さ れるビデオ読み出しポインタ、オーディオ読み出しポインタ記憶部 251に記憶される オーディオ読み出しポインタ、字幕読み出しポインタ記憶部 262に記憶される字幕読 み出しポインタに、同じ値が代入される。
[0449] さらに、プレイヤ制御モジュール 212は、再生対象のエレメンタリストリームを識別す るための識別情報としての stream_id、さらには、必要に応じて、 private_stream_idを、 バッファ制御モジュール 215に供給する。
[0450] ノッファ制御モジュール 215 (図 3)では、ビデオ読み出し機能部 233が、プレイヤ 制御モジュール 212からの、再生対象のエレメンタリストリームのうちのビデオストリー ムについての stream jdを、 streamjdレジスタ 242に記憶させる。また、オーディオ読 み出し機能部 234力 プレイヤ制御モジュール 212からの、再生対象のエレメンタリ ストリームのつちの才ーティ才ストリームの stream— idと private— stream— id 、 stream— idレ ジスタ 252と private_stream_idレジスタ 253に、それぞれ記憶させる。
[0451] さらに、いま再生対象となっているエレメンタリストリームが多重化されているクリップ ストリームファイル" 00002.PS"には、字幕ストリームが含まれるため、プレイヤ制御モジ ユール 212から字幕読み出し機能部 235には、再生対象のエレメンタリストリームのう ちの字幕ストリームの streamjdと private_stream_idが供給され、字幕読み出し機能部 2 35は、その stream— ιαと private— stream— idを、 stream— ιαレンスタ 2o 3と private— stream— id レジスタ 264〖こ、それぞれ記憶させる。
[0452] そして、プレイヤ制御モジュール 212は、バッファ制御モジュール 215 (図 3)の初期 化として、さらに、再生対象のエレメンタリストリームが多重化されているクリップストリ ームファイルに応じた値の字幕読み出し機能フラグを、字幕読み出し機能フラグ記憶 部 261にセットする。
[0453] 即ち、 、まの場合、再生対象のエレメンタリストリームが多重化されて 、るクリップスト リームファイル" 00002.PS"には、字幕ストリームが含まれるため、字幕読み出し機能部 235を機能させるために、値が 1の字幕読み出し機能フラグが、字幕読み出し機能フ ラグ記憶部 261にセットされる。 [0454] また、プレイヤ制御モジュール 212は、再生しょうとしている 2番目の Playltem#l (図 25)の IN_timeである 90,000と、 OUT_timeである 27,090,000とを、デコード制御モジュ ール 214に対して与える。
[0455] さらに、プレイヤ制御モジュール 212は、グラフィクス処理モジュール 219に対する 字幕ストリームの表示方式の指示を初期化する。即ち、プレイヤ制御モジュール 212 は、字幕ストリームの表示方式をデフォルトの表示方式とするように、グラフィクス処理 モジュール 219を制御する。
[0456] なお、再生対象の字幕ストリームについて、 configurablejlag (図 12)力 表示方式 の変更を許可する 1になっている場合には、プレイヤ制御モジュール 212からグラフィ タス処理モジュール 219に対する字幕ストリームの表示方式の指示は、現在の表示 方式のままとするようにしても良!、。
[0457] 以下、 2番目の Playltem#lの再生は、 1番目の PlayItem#0の再生と同様にして行わ れていく。そして、デコード制御モジュール 214は、その 2番目の Playltem#lの再生が 行われている間、内蔵する計時部 214Aが計時している時刻を確認し続けており、計 時部 214Aが計時して 、る時刻が、ステップ S 152 (図 31 )でプレイヤ制御モジュール 212から与えられた 2番目の Playltem#lの OUT_timeである 27,090,000 (図 25)に等し くなると、ステップ S151における場合と同様のデコード中断制御を行い、 Playltem#l の再生を終了する。
[0458] [タイムコードの表示]
次に、上述したように、図 30のステップ S123において、タイムコードの表示が開始 される力 このタイムコードの表示は、順次更新されていく。
[0459] そこで、図 32のフローチャートを参照して、タイムコードの表示の処理について説明 する。
[0460] デコード制御モジュール 214 (図 2)は、その内蔵する計時部 214Aによって 1秒が 計時されると、ステップ S 171において、 1秒が経過した旨のメッセージとともに、その 計時部 214Aによって計時されている現在時刻を、プレイヤ制御モジュール 212に 供給し、ステップ S172〖こ進む。ステップ S172では、プレイヤ制御モジュール 212は 、デコード制御モジュール 214からのメッセージと現在時刻を受信し、その現在時刻 を、タイムコードに換算して、ステップ S173に進む。
[0461] ステップ S173では、プレイヤ制御モジュール 212は、ステップ S 172で得たタイムコ ードを表示するように、グラフィクス処理モジュール 219を制御し、ステップ S171に戻 る。
[0462] これにより、タイムコードは、 1秒ごとに更新される。なお、タイムコードの更新の間隔 は、 1秒に限定されるものではない。
[0463] [ストリーム切り替え]
次に、図 25で説明した 1番目の PlayList#0を構成する 1番目の PlayItem#0によって 再生されるクリップストリームファイル" 00001.PS"や、 2番目の Playltem#lによって再生 されるクリップストリームファイル" 00002.PS"には、図 26で説明したように、 2本の字幕 ストリームが多重化されて 、る。
[0464] このように、クリップストリームファイルに、複数の、同一の属性のエレメンタリストリー ムが多重化されている場合においては、再生対象のエレメンタリストリームを、その複 数の、同一の属性のエレメンタリストリームのうちの 1つから、他の 1つに切り替えるスト リーム切り替えを行うことができる。
[0465] そこで、図 33のフローチャートを参照して、ストリーム切り替えの処理について説明 する。
[0466] ストリーム切り替えの要求は、例えば、 "SCRIPT.DAT"ファイル(図 4)に、ストリーム 切り替えの指示がスクリプトプログラムとして記述されて 、る場合に、スクリプト制御モ ジュール 211力 そのスクリプトプログラムを実行することによって、あるいは、ユーザ 力 Sリモコンを操作することによって、プレイヤ制御モジュール 212に与えられる。
[0467] 即ち、スクリプト制御モジュール 211は、ストリーム切り替えの指示が記述されている スクリプトプログラムを実行すると、ストリーム切り替えを要求するメッセージを、プレイ ャ制御モジュール 212に供給する。また、入力インターフェース 115は、ユーザがリ モコンを操作することによって、リモコンから、ストリーム切り替えを指示する信号を受 信すると、ストリーム切り替えを要求するメッセージを、プレイヤ制御モジュール 212に 供給する。
[0468] 例えば、いま、プレイヤ制御モジュール 212に対して、字幕ストリームの切り替えを 要求するメッセージである字幕ストリーム切り替えのメッセージが供給されたとすると、 プレイヤ制御モジュール 212は、ステップ S 191において、図 30のステップ S125で 行われた再生対象のエレメンタリストリームの決定のときに認識した字幕ストリームの 本数をチヱックする。
[0469] プレイヤ制御モジュール 212は、字幕ストリームの本数をチェックした結果、その本 数が 1本以下である場合、字幕ストリーム切り替えのメッセージを無視し、従って、以 降のステップ S 192乃至 S 194の処理は行われな!/、。
[0470] 一方、字幕ストリームの本数が 2本以上である場合、ステップ S 192乃至 S194に順 次進み、再生する字幕ストリーム力 現在再生されている字幕ストリームから、他の字 幕ストリームに切り替えられる。
[0471] 即ち、ステップ S192において、プレイヤ制御モジュール 212は、現在再生中の字 幕ストリームを、クリップ情報ファイル上で特定する。具体的には、例えば、いま、図 2 5で説明した 1番目の PlayList#0を構成する 2番目の Playltem#lによって、クリップスト リームファイル" 00002.PS "に多重化された、 stream jdが OxBDで、 private_stream_idが 0 x80の字幕ストリームが再生されていることとすると、ステップ S 192では、現在再生中 の字幕ストリームが、クリップストリームファイル" 00002.PS"に多重化された 2本の字幕 ストリームのうちの、図 26のクリップ情報ファイル" 00002.CLP"上で 3本目の字幕ストリ ームである stream#2であることが特定される。
[0472] そして、ステップ S193〖こ進み、プレイヤ制御モジュール 212は、ステップ S192で 特定した字幕ストリームの、クリップ情報ファイル上で次の字幕ストリームを、次に再生 する字幕ストリームとして認識 (特定)する。図 26では、クリップ情報ファイル" 00002.C LP"上で、 3本目の字幕ストリーム stream#2の次の字幕ストリームは、 4本目の字幕スト リーム stream#3であるから、ステップ S193では、この 4本目の字幕ストリーム stream#3 力 次に再生する字幕ストリームとして認識される。
[0473] なお、現在再生中の字幕ストリームが、クリップストリームファイル" 00002.PS"に多重 化された 2本の字幕ストリームのうちの、図 26のクリップ情報ファイル" 00002. CLP"上 で 4本目の字幕ストリームである stream#3であることが特定された場合は、例えば、 3 本目の字幕ストリーム stream#2が、次に再生する字幕ストリームとして認識される。 [0474] その後、ステップ S194〖こ進み、プレイヤ制御モジュール 212は、ステップ S193で 認識した次に再生する字幕ストリームの streamjdと private_streamjdを、バッファ制御 モジュール 215 (図 3)の字幕読み出し機能部 235に対して与え、その streamjdと priv ate_stream_idを、次回からの、字幕アクセスユニットのバッファ 215Aからの読み出し 力 使用するように指示する。
[0475] バッファ制御モジュール 215 (図 3)の字幕読み出し機能部 235では、ステップ S 19 4でプレイヤ制御モジユーノレ 212から与えられる streamjdと private_stream_idを、 strea m_idレジスタ 263と private_stream_idレジスタ 264に、それぞれ新たにセットし、次回以 降のバッファ 215Aからの読み出しは、その streamjdレジスタ 263と private_stream_id レジスタ 264にそれぞれ新たにセットされた streamjdと private_streamjdによって特定 される字幕アクセスユニットを対象として行われる。
[0476] 以上のようにして、再生する字幕ストリーム力 現在再生されて ヽる字幕ストリームか ら、他の字幕ストリームに切り替えられる。
[0477] [バッファ制御モジュール 215の処理]
次に、図 34乃至図 38を参照して、バッファ制御モジュール 215 (図 3)の処理、即ち 、バッファ 215Aへのデータの書き込みと、バッファ 215Aからのデータの読み出しに ついて説明する。
[0478] バッファ制御モジュール 215は、図 3で説明したように、バッファ 215Aに対するデ ータの読み書きを行うための 5つのポインタを有している。
[0479] 即ち、図 34および図 35に示すように、バッファ制御モジュール 215は、データ先頭 ポインタ記憶部 231に記憶されるデータ先頭ポインタ、データ書き込みポインタ記憶 部 232に記憶されるデータ書き込みポインタ、ビデオ読み出しポインタ記憶部 241に 記憶されるビデオ読み出しポインタ、オーディオ読み出しポインタ記憶部 251に記憶 されるオーディオ読み出しポインタ、および字幕読み出しポインタ記憶部 262に記憶 される字幕読み出しポインタを有して 、る。
[0480] なお、図 34および図 35では、図 3におけるビデオ読み出し機能部 233の streamjd レジスタ 242および aujnformationOレジスタ 243、オーディオ読み出し機能部 234の s treamjdレジスタ 252および private_stream_idレジスタ 253、並びに字幕読み出し機能 部 235の字幕読み出し機能フラグ記憶部 261、 streamjdレジスタ 263、および private _stream_idレジスタ 264の図示は、省略してある。
[0481] データ先頭ポインタ記憶部 231に記憶されたデータ先頭ポインタは、バッファ 215 Aに残る最も古いデータ(読み出す必要があるデータであって、まだ読み出されてい な!、データのうちの最も古 、データ)の位置を表す。データ書き込みポインタ記憶部 232に記憶されたデータ書き込みポインタは、バッファ 215Aへのデータの書き込み の位置を示し、この位置は、ノ ッファ 215Aで最も新しいデータが書き込まれる位置 である。
[0482] ビデオ読み出しポインタ記憶部 241に記憶されたビデオ読み出しポインタは、バッ ファ 215A力も読み出すビデオストリームの位置を表す。また、オーディオ読み出しポ インタ記憶部 251に記憶されたオーディオ読み出しポインタは、バッファ 215A力も読 み出すオーディオストリームの位置を表し、字幕読み出しポインタ記憶部 262に記憶 された字幕読み出しポインタは、ノッファ 215Aから読み出す字幕ストリームの位置を 表す。
[0483] なお、図 3で説明したように、データ先頭ポインタ、データ書き込みポインタ、ビデオ 読み出しポインタ、オーディオ読み出しポインタ、および字幕読み出しポインタは、い ずれも、バッファ 215Aを右回りに移動する。
[0484] さらに、本実施の形態では、データ先頭ポインタは、図 35に示すように、ビデオ読 み出しポインタ、オーディオ読み出しポインタ、または字幕読み出しポインタのうちの 、最も古いデータの位置を指しているものと同一の位置を指すように、常時更新され るものとする。ここで、図 35では、ビデオ読み出しポインタ、オーディオ読み出しボイ ンタ、または字幕読み出しポインタのうちの、オーディオ読み出しポインタが、最も古 いデータの位置を指しており、データ先頭ポインタは、そのオーディオ読み出しボイ ンタと一致している。
[0485] 以上のようなデータ先頭ポインタ、データ書き込みポインタ、ビデオ読み出しポイン タ、オーディオ読み出しポインタ、および字幕読み出しポインタを有するバッファ制御 モジュール 215では、データ書き込みポインタは、ディスク 101から新たなデータが読 み出され、ノッファ 215Aに書き込まれると、その書き込まれた新たなデータの直後の 位置を指すように、右回りに更新される。
[0486] さらに、ビデオ読み出しポインタ、オーディオ読み出しポインタ、または字幕読み出 しポインタは、バッファ 215Aから、ビデオストリーム、オーディオストリーム、または字 幕ストリームが読み出されると、その読み出し量に応じた分だけ、それぞれ、右回りに 更新される。ここで読み出し量に応じた分とは、実際に読み出したビデオ、オーディ ォ、字幕のデータに対応する部分と、読み出したデータの間に含まれており、読み出 しの際には読み飛ばしを行った、他のストリームのデータの部分をあわせたものとなる
[0487] また、データ先頭ポインタは、ビデオ読み出しポインタ、オーディオ読み出しポイン タ、または字幕読み出しポインタが更新されると、そのビデオ読み出しポインタ、ォー ディォ読み出しポインタ、または字幕読み出しポインタのうちの、最も古いデータの位 置を指しているものと同一の位置を指すように更新される。
[0488] ここで、バッファ制御モジュール 215は、バッファ 215Aへのデータの書き込みにつ いては、データ書き込みポインタがデータ先頭ポインタを追い越さないように、バッフ ァ 215Aへのデータの書き込みを制御する。
[0489] 即ち、データ書き込みポインタによるデータ先頭ポインタの追 、越しが発生しな!ヽ 限り、バッファ制御モジュール 215では、ディスク 101から読み出されたデータ力 デ ータ書き込みポインタが指すバッファ 215Aの位置に書き込まれ、データ書き込みポ インタが更新されていく。一方、データ書き込みポインタによるデータ先頭ポインタの 追い越しが発生しそうになると、ノ ッファ制御モジュール 215では、コンテンツデータ 供給モジュール 213に対して、ディスク 101からのデータの読み出しの停止(中断)が 要求され、さらに、バッファ 215Aへのデータの書き込みが停止される。これにより、バ ッファ 215Aのオーバーフローを防止することができる。
[0490] 以上のように、ディスク 101から読み出されたデータの、バッファ 215Aへの書き込 みは、データ先頭ポインタとデータ書き込みポインタとの 2つのポインタの位置関係だ けで制御される。
[0491] 一方、バッファ制御モジュール 215は、バッファ 215Aからのデータの読み出しにつ いては、ビデオ読み出しポインタ、オーディオ読み出しポインタ、および字幕読み出 しポインタ、ひいては、データ先頭ポインタ力 データ書き込みポインタを追い越さな
V、ように、バッファ 215Aからのデータの読み出しを制御する。
[0492] 即ち、ビデオ読み出しポインタ、オーディオ読み出しポインタ、または字幕読み出し ポインタによるデータ書き込みポインタの追い越しが発生しない限り、ノ ッファ制御モ ジュール 215では、ビデオデコーダ制御モジュール 216、オーディオデコーダ制御モ ジュール 217、または字幕デコーダ制御モジュール 218からの要求に応じて、ビデオ 読み出しポインタ、オーディオ読み出しポインタ、または字幕読み出しポインタが指す ノ ッファ 215Aの位置力もデータが読み出され、ビデオ読み出しポインタ、オーディオ 読み出しポインタ、または字幕読み出しポインタが更新されるとともに、必要に応じて 、データ先頭ポインタが更新される。一方、ビデオ読み出しポインタ、オーディオ読み 出しポインタ、または字幕読み出しポインタによるデータ書き込みポインタの追い越し が発生しそうになると、バッファ制御モジュール 215では、ビデオデコーダ制御モジュ ール 216、オーディオデコーダ制御モジュール 217、または字幕デコーダ制御モジュ ール 218からの要求力 例えば凍結され、十分なデータが用意されるまで待たされる 。これにより、バッファ 215Aのアンダーフローを防止することができる。
[0493] 以上から、ノ ッファ 215Aには、データ先頭ポインタが指す位置から、右回りに、デ ータ書き込みポインタが指す位置までの範囲(図 34および図 35において影を付して ある部分)に、ビデオデコーダ制御モジュール 216、オーディオデコーダ制御モジュ ール 217、および字幕デコーダ制御モジュール 218に供給すべきデータが記憶され ており、さらに、その範囲内に、ビデオ読み出しポインタ、オーディオ読み出しポイン タ、および字幕読み出しポインタは存在する。
[0494] なお、上述の場合には、データ先頭ポインタは、ビデオ読み出しポインタ、オーディ ォ読み出しポインタ、または字幕読み出しポインタが指している位置のうちの、最も古 いデータの位置を指すように更新することとした力 その他、データ先頭ポインタの更 新は、例えば、その最も古いデータの位置から、所定の時間(例えば、 1秒)分だけ過 去のデータの位置を指すように行うことが可能である。
[0495] 即ち、一般には、ビデオ読み出しポインタ、オーディオ読み出しポインタ、または字 幕読み出しポインタのうちの、ビデオ読み出しポインタやオーディオ読み出しポインタ iS 最も古 、データの位置を指すことが多 、と予想される。
[0496] 従って、データ先頭ポインタを、ビデオ読み出しポインタまたはオーディオ読み出し ポインタが指す最も古いデータの位置から、例えば、 1秒分だけ過去のデータの位置 を指すように更新した場合、図 34に示すように、ビデオ読み出しポインタまたはォー ディォ読み出しポインタが指す最も古いデータの位置力 過去 1秒分のデータを、バ ッファ 215Aに残しておくことができる。ここで、図 34では、オーディオ読み出しポイン タカ 最も古いデータの位置を指しており、データ先頭ポインタは、その位置から 1秒 分だけ過去のデータの位置を指して 、る。
[0497] 以上のように、 1秒分だけ過去のデータの位置を指すように、データ先頭ポインタを 更新することにより、ディスク装置の応答性を向上させることができる。
[0498] 即ち、図 35に示したように、オーディオ読み出しポインタが指している最も古いデー タの位置を指すように、データ先頭ポインタを更新する場合には、例えば、リバース方 向への特殊再生が指示されたときに、ノ ッファ 215A力もの読み出しが終了したデー タを、ディスク 101から再度読み出す必要があるため、特殊再生が指示されてから、 その特殊再生が可能となるまでに、ある程度の時間がかかる。
[0499] これに対して、図 34に示したように、オーディオ読み出しポインタが指している最も 古 ヽデータの位置から 1秒分だけ過去のデータの位置を指すように、データ先頭ボイ ンタを更新する場合には、リバース方向への特殊再生が指示されたときに、その特殊 再生を開始するのに必要なデータが、バッファ 215Aに記憶されている 1秒分だけ過 去のデータであれば、上述したようなディスク 101からのデータの再読み出しを行わ ずに、即座に、特殊再生を開始することが可能となる。
[0500] なお、オーディオ読み出しポインタが指して 、る最も古 、データの位置から 1秒分 だけ過去のデータの位置を指すように、データ先頭ポインタを更新する場合であって も、特殊再生を開始するのに必要なデータ力 ノ ッファ 215Aに記憶されていないこ とがあり得る。この場合には、特殊再生を開始するのに必要なデータ力 ディスク 101 力 再度読み出される。
[0501] 次に、バッファ 215Aからのビデオストリーム、オーディオストリーム、字幕ストリーム それぞれの読み出しの詳細について説明する。 [0502] 図 30のステップ S127で説明したように、クリップストリームファイルの再生が開始さ れるときに、バッファ制御モジュール 215においては、データ先頭ポインタ、データ書 き込みポインタ、ビデオ読み出しポインタ、オーディオ読み出しポインタ、字幕読み出 しポインタが、すべて、ノ ッファ 215A上の同じ位置を指すように初期化される。
[0503] そして、ディスク 101からクリップストリームファイルに格納されたプログラムストリーム (MPEG2- System Program Stream)が読み出され、バッファ制御モジュール 215に供 給されると、バッファ制御モジュール 215では、そのプログラムストリーム力 ノ ッファ 2 15Aのデータ書き込みポインタが指す位置に記憶されるとともに、データ書き込みポ インタが、右回りに更新されていく。
[0504] さらに、バッファ制御モジュール 215 (図 3)では、ビデオ読み出し機能部 233が、バ ッファ 215Aに記憶されたプログラムストリームの構文解析を行 、、ビデオデコーダ制 御モジュール 216からの要求に応じて、バッファ 215 Aに記憶されたプログラムストリ ームから、ビデオストリーム (ビデオアクセスユニット)を抽出(分離)して読み出し、ビ デォデコーダ制御モジュール 216に供給する。
[0505] 同様に、オーディオ読み出し機能部 234も、ノ ッファ 215Aに記憶されたプログラム ストリームの構文解析を行い、オーディオデコーダ制御モジュール 217からの要求に 応じて、ノッファ 215Aに記憶されたプログラムストリームから、オーディオストリーム( オーディオアクセスユニット)を抽出して読み出し、オーディオデコーダ制御モジユー ル 217に供給する。字幕読み出し機能部 235も、バッファ 215Aに記憶されたプログ ラムストリームの構文解析を行い、字幕デコーダ制御モジュール 218からの要求に応 じて、ノッファ 215Aに記憶されたプログラムストリームから、字幕ストリーム (字幕ァク セスユニット)を抽出して読み出し、字幕デコーダ制御モジュール 218に供給する。
[0506] 「ビデオストリームの読み出し」
次に、図 36のフローチャートを参照して、ビデオ読み出し機能部 233 (図 3)による、 ノ ッファ 215Aからのビデオストリームの読み出し処理の詳細について説明する。
[0507] ビデオ読み出し機能部 233は、まず最初に、ステップ S211において、バッファ 215 Aに記憶されたプログラムストリーム中の private_stream_2の PES_packet()を探索して 見つけ出す。すなわち、 private_stream_2の PES_packetOの streamjdは、図 20で説明 したように、 10111111B(=0xBF)であり、ビデオ読み出し機能部 233は、 streamjdが 10 111111Bとなって!/、る PES_packetOを探索して見つけ出す。
[0508] ここで、例えば、いま、上述したように、クリップストリームファイル" 00001.PS"に格納 されたプログラムストリームに多重化されたエレメンタリストリーム力 再生対象のエレメ ンタリストリームであるとすると、そのプログラムストリームをディスク 101から読み出して 、バッファ 215Aに記憶させるときに、図 30のステップ S 122において、クリップストリー ムファイル" 00001.PS"の EP_map() (図 27)に記述されたデコード開始可能点の情報か ら、 305セクタが再生開始位置として決定され、さらに、図 30のステップ S128におい て、再生開始位置である 305セクタが指定され、オペレーティングシステム 201に対し て、クリップストリームファイル" 00001.PS"に格納されたプログラムストリームの読み出 しが要求される。
[0509] また、ビデオストリームにつ 、ては、 EPjnapOに記述されたデコード開始可能点の情 報は、実際のデコード開始可能点の直前に配置された private_stream_2の PES_packe tOの位置を表す。
[0510] 従って、クリップストリームファイル" 00001.PS"に格納されたプログラムストリームがデ イスク 101から読み出され、ノ ッファ 215Aに記憶された直後においては、データ先 頭ポインタやビデオ読み出しポインタが指すバッファ 215Aの位置には、 private_strea m_2の PES_packet()が記憶されて 、る。
[0511] ビデオ読み出し機能部 233は、ステップ S211において、 private_stream_2の PES_pa cketOが見つかると、ステップ S212に進み、その private_stream_2の PES_packetOの P E¾— packet— data— byteである private— stream2—PE¾—payloadO (図 23)に己 されて 、る vi deo_streamjdを抜き出し、その video_stream_idが、図 30のステップ S 127で streamjd レジスタ 242 (図 3)に記憶された、再生対象のビデオストリームの streamjdと一致する かどうかを判定する。
[0512] ステップ S212にお 、て、 private_stream2_PES_payloadOに記述されて ヽる video_stre amjdが、 streamjdレジスタ 242に記憶された streamjdと一致しないと判定された場合 、即ち、直前のステップ S211で見つけ出された private_stream_2の PES_packet()が、 再生対象のビデオストリームのデコード開始点に配置されたものでな 、場合、ステツ プ S211に戻り、バッファ 215Aに記憶されたプログラムストリーム中の他の private_str eam_2の PES_packetOの探索が行われ、以下、同様の処理が繰り返される。
[0513] 一方、ステップ S212にお 、て、 private_stream2_PES_payload()に記述されて 、る vid eo_streamjd力 stream jdレジスタ 242に記憶された streamjdと一致すると判定された 場合、即ち、直前のステップ S211で見つけ出された private_stream_2の PES_packet() 力 再生対象のビデオストリームのデコード開始点に配置されたものである場合、ス テツプ S213に進み、ビデオ読み出し機能部 233は、その private_stream_2の PES_pac ketOの private— stream2— PES— payloadOに記述されている au— informationOを、ノ ッファ 2 15Aから読み出し、 aujnformationOレジスタ 243 (図 3)に記憶させ、ステップ S214に 進む。
[0514] ステップ S214では、ビデオ読み出し機能部 233は、直前のステップ S211で見つ け出した private— stream— 2の PES— packetO (video— stream— id (図 23)力 stream— idレジス タ 242 (図 3)に記憶された streamjdと一致する private_stream_2の PES_packet0)のサ ィズだけ、ビデオ読み出しポインタ記憶部 231に記憶されたビデオ読み出しポインタ を更新する。
[0515] 即ち、クリップストリームファイルでは、 private_stream_2の PES_packet()の直後に、そ の video_stream_idと一致する streamjdのビデオストリーム(PES_packet0)が配置され ており、従って、ステップ S214では、ビデオ読み出しポインタは、ビデオストリームの 実際のデコード開始可能点の位置を指すように更新される。
[0516] その後、ステップ S214力 S215に進み、ビデオ読み出し機能部 233は、ビデデコ ーダ制御モジュール 216から、データの要求があつたかどうかを判定し、ないと判定 した場合、ステップ S215〖こ戻り、同様の処理を繰り返す。
[0517] また、ステップ S215において、ビデオデコーダ制御モジュール 216から、データの 要求があつたと判定された場合、ステップ S216に進み、ビデオ読み出し機能部 233 は、ビデオ読み出しポインタが指しているバッファ 215Aの位置力ものプログラムストリ ームの構文解析を行 、つつ、 aujnformationOレジスタ 243に記憶された aujnformatio n()の AUJengthに記述されたバイト数のデータ、つまり 1つのビデオアクセスユニットを 、ノッファ 215Aから読み出し、ビデオデコーダ制御モジュール 216に供給するととも に、ビデオ読み出しポインタを、ノ ッファ 215A力も読み出した 1つのビデオアクセス ユニットのサイズ分だけ更新する。
[0518] 即ち、 aujnformationOには、図 24で説明したように、それを含む private_stream_2の PES_packetOから、次の private_stream_2の PES_packetOまでの間に含まれるビデオア クセスユニット(ピクチャ)の数を表す number_of_access_unitが記述されて 、る。
[0519] さらに、 aujnformationOには、図 24で説明したように、その number_of_access_unitの 数だけのビデオアクセスユニットそれぞれに関する情報としての pic_struct_copy, au_r ef_flag、および AUJengthが記述されて!、る。
[0520」 aujnformationOに number— of— access— unitの数 7こけ, ti; ^されて 、る AU— lengthそれて れは、図 24で説明したように、それを含む private_stream_2の PES_packet0から、次の private_stream_2の PES_packet0までの間に含まれる、 number_of_access_unitの数のビ デォアクセスユニットそれぞれのサイズを表すから、ビデオ読み出し機能部 233は、 その AUJengthを用いることで、ビデオストリームの構文解析を行うことなぐアクセスュ ニットの切り出しを行うことが出来る。
[0521] 即ち、従来、 MPEG2- Videoや MPEG4- AVCのアクセスユニットを切り出す場合には 、ビデオストリームの構文を知った上で、ビデオストリームの構文解析を行う必要があ つた力 ディスク 101に記録されたクリップストリームファイルに格納されたプログラム ストリームは、ビデオアクセスユニット単位のビデオストリームにおける 1以上の実際の デコード開始可能点それぞれの直前に、ビデオアクセスユニットのサイズを表す AUJ engthが記述された private_stream_2の PES_packet()を含んで 、るので、ビデオ読み出 し機能 233は、その private_stream_2の PES_packet0に記述された AU_lengthに基づき 、ビデオストリームの構文解析を行うことなぐノ ッファ 215Aから、ビデオアクセスュ- ット(単位のビデオストリーム)を読み出し、ビデオデコーダ制御モジュール 216に供 給することができる。
[0522] なお、ビデオ読み出し機能部 233は、ステップ S216において、ビデオアクセスュ- ットを、ビデオデコーダ制御モジュール 216に供給するときに、そのビデオアクセスュ ニットに関する情報として aujnformationOに記述されて 、る pic_struct_copy, au_ref_ fla g、および AUJengthと、ビデオアクセスユニット単位に付カ卩されているタイムスタンプ( PTS, DTS)も、ビデオデコーダ制御モジュール 216に供給する。
[0523] ステップ S216において、バッファ 215Aから 1つのビデオアクセスユニットが読み出 され、ビデオデコーダ制御モジュール 216に供給された後は、ステップ S217に進み 、ビデオ読み出し機能部 233は、 aujnformationOレジスタ 243に記憶された aujnform ationO (図 24)の number_of_access_unitが表す数だけのアクセスユニットを処理したか どうかを判定する。
[0524] ステップ S217にお!/、て、 number_of_access_unitが表す数だけのアクセスユニットを、 まだ処理して 、な 、と判定された場合、即ち、 number_of_access_unitが表す数だけの アクセスユニットを、まだ、バッファ 215Aから読み出してビデオデコーダ制御モジュ ール 216に供給していない場合、ステップ S215に戻り、以下、同様の処理が繰り返 される。
[0525] また、ステップ S217にお!/、て、 number_of_access_unitが表す数だけのアクセスュ- ットを処理したと判定された場合、即ち、 number_of_access_unitが表す数だけのァクセ スユニットを、バッファ 215Aから読み出してビデオデコーダ制御モジュール 216に供 給した場合、ステップ S211〖こ戻り、次の private— stream— 2の PES— packetOの探索が行 われ、以下、同様の処理が繰り返される。
[0526] 「オーディオストリームの読み出し」
次に、図 37のフローチャートを参照して、オーディオ読み出し機能部 234 (図 3)に よる、ノッファ 215Aからのオーディオストリームの読み出し処理の詳細について説明 する。
[0527] オーディオ読み出し機能部 234は、まず最初に、ステップ S230において、図 30の ステップ S127で streamjdレジスタ 252 (図 3)に記憶された、再生対象のオーディオ ストリームの streamjd力 private_stream_lの PES_packet()を表しているかどうかを半 U定 する。
[0528] ステップ S230において、 streamjdレジスタ 252に記憶された streamjd力 private.s tream_lの PES_packet0を表していない判定された場合、即ち、 streamjdレジスタ 252 に記憶された streamjdが、図 20で説明したように、 MPEG規格にしたがって符号化さ れたオーディオストリームに割り当てられる Ι ΙΟχχχχχΒである場合、ステップ S231に 進み、オーディオ読み出し機能部 234は、ノ ッファ 215Aに記憶されたプログラムスト リーム力ら、 MPEG Audioで定められたオーディオフレーム先頭を表す同期コードを 探す。同期コードの位置がオーディオフレーム先頭なので、オーディオ読み出し機能 部 234は、オーディオ読み出しポインタを、オーディオフレーム先頭の位置を示すよ うに更新し、ステップ S231力ら S232に進む。ステップ S232では、オーディオ読み出 し機能部 234は、バッファ 215Aに記憶されたプログラムストリーム中の、 stream jdレ ジスタ 252に記憶された streamjdに一致する PES_packet()を、オーディオ読み出しポ インタが示す位置力も探索して見つけ出し、ステップ S233に進む。
[0529] ステップ S233では、オーディオ読み出し機能部 234は、オーディオ読み出しポイン タ記憶部 251に記憶されたオーディオ読み出しポインタを、直前のステップ S232で 見つけ出した PES_packet()の PES_packet_data_byte (図 16乃至図 18)の先頭を指すよ う【こ更 ffし、ステップ S237〖こ itむ。
[0530] ステップ S237では、オーディオ読み出し機能部 234は、オーディオデコーダ制御 モジュール 217から、データの要求があつたかどうかを判定し、ないと判定した場合、 ステップ S237〖こ戻り、同様の処理を繰り返す。
[0531] また、ステップ S237において、オーディオデコーダ制御モジュール 217から、デー タの要求があつたと判定された場合、ステップ S238に進み、オーディオ読み出し機 能部 234は、オーディオ読み出しポインタが指しているバッファ 215Aの位置からの プログラムストリームの構文解析を行いつつ、既知の固定長の 1つのオーディオアク セスユニットを、バッファ 215Aから読み出し、そのオーディオアクセスユニットに付カロ されているタイムスタンプ(PTS, DTS)とともに、オーディオデコーダ制御モジュール 2 17に供給する。
[0532] そして、オーディオ読み出し機能部 234は、ノ ッファ 215Aから読み出した 1つのォ 一ディォアクセスユニットのサイズ分だけ、オーディオ読み出しポインタを更新して、 ステップ S237に戻り、以下、同様の処理が繰り返される。
[0533] 一方、ステップ S230にお 、て、 streamjdレジスタ 252に記憶された streamjd力 pri vate_stream_lの PES_packet()を表して 、ると判定された場合、即ち、 streamjdレジスタ 252に記憶された streamjdが、 10111101B(=0xBD)であり、図 20で説明したように、 pr ivate_stream_lの PES_packet()を表している場合、ステップ S234に進み、オーディオ 読み出し機能部 234は、バッファ 215Aに記憶されたプログラムストリーム中の private _stream_lの PES_packetOを探索して見つけ出す。すなわち、オーディオ読み出し機 能部 234は、 streamjdが 101111018となってぃる1^3_ &01½1:0を探索して見っけ出す
[0534] オーディオ読み出し機能部 234は、ステップ S234にお!/、て、 private_stream_lの PE S_packet0が見つかると、ステップ S235に進み、その private_stream_lの PES_packetO の PES_packet_data_byteである private_streaml_PES_payloadO (図 21)に記述されて!ヽ る private_stream_idを抜き出し、その private_streamjdが、図 30のステップ S 127で pri vate_stream_idレジスタ253 (図 3)に記憶された、再生対象のオーディオストリームの p rivate_stream_idと一致するかどうかを半 IJ定する。
[0535] ステップ S235にお 、て、 private_streaml_PES_payloadOに記述されて ヽる private_st ream— id力、、 private— stream— idレシスタ 25dに己'慮 れた private— stream— idと一致しな ヽ と判定された場合、即ち、直前のステップ S234で見つけ出された private_stream_lの PES_packetO力 再生対象のオーディオストリームではない場合、ステップ S 234に戻 り、バッファ 215Aに記憶されたプログラムストリーム中の他の private_stream_lの PES_ packetOの探索が行われ、以下、同様の処理が繰り返される。
[0536] 一方、ステップ S235にお 、て、 private_streaml_PES_payload()に記述されて ヽる pri vate— stream— id» 、 private— stream— idレンスタ 25dに c慮 れた private— stream— idと一致 すると判定された場合、即ち、直前のステップ S234で見つけ出された private_stream _1の PES_packet()力 再生対象のオーディオストリームである場合、ステップ S236に 進み、オーディオ読み出し機能部 234は、その private_stream_lの PES_packetOの priv ate_streaml_PES_payloadO (図 21)に記述されて!、る AU_locatorを、ノ ッファ 215A力 ら読み出し、その AU_locatorの直後の位置と、その AU_locatorが表す値とを加算する ことで、オーディオアクセスユニットの先頭位置を求める。
[0537] 即ち、 AU_locatorは、図 21で説明したように、その AU_locatorの直後の位置を基準 として、 private— streaml— PES— payloadOの private— payloadOに格納されるオーディオア クセスユニット(ある 、は字幕アクセスユニット)の先頭位置を表すから、 AU_locatorの 直後の位置に、その AlUocatorが表す値を加算することにより、オーディオアクセスュ ニットの(絶対的な)先頭位置を求めることができる。
[0538] オーディオ読み出し機能部 234は、さらに、ステップ S236において、以上のように して求めたオーディオアクセスユニットの先頭位置を指すように、オーディオ読み出し ポインタ記憶部 251に記憶されたオーディオ読み出しポインタを更新し、ステップ S2 37に進む。
[0539] ステップ S237では、オーディオ読み出し機能部 234は、オーディオデコーダ制御 モジュール 217から、データの要求があつたかどうかを判定し、ないと判定した場合、 ステップ S237〖こ戻り、同様の処理を繰り返す。
[0540] また、ステップ S237において、オーディオデコーダ制御モジュール 217から、デー タの要求があった力と判定された場合、ステップ S238に進み、オーディオ読み出し 機能部 234は、オーディオ読み出しポインタが指しているバッファ 215Aの位置から のプログラムストリームの構文解析を行いつつ、既知の固定長の 1つのオーディオア クセスユニットを、バッファ 215Aから読み出し、そのオーディオアクセスユニットに付 カロされているタイムスタンプとともに、オーディオデコーダ制御モジュール 217に供給 する。
[0541] そして、オーディオ読み出し機能部 234は、ノ ッファ 215Aから読み出した 1つのォ 一ディォアクセスユニットのサイズ分だけ、オーディオ読み出しポインタを更新して、 ステップ S237に戻り、以下、同様の処理が繰り返される。
[0542] 「字幕ストリームの読み出し」
次に、図 38のフローチャートを参照して、字幕読み出し機能部 235 (図 3)による、 ノ ッファ 215Aからの字幕ストリームの読み出し処理の詳細について説明する。
[0543] 字幕読み出し機能部 235は、まず最初に、ステップ S251において、図 30のステツ プ S127で字幕読み出し機能フラグ記憶部 261に記憶された字幕読み出し機能フラ グを判定する。ステップ S251において、字幕読み出し機能フラグ力^であると判定さ れた場合、即ち、例えば、再生対象のエレメンタリストリームが多重化されているクリツ プストリームファイルに字幕ストリームが含まれておらず、図 30のステップ S127で字 幕読み出し機能フラグ記憶部 261に、 0がセットされた場合、字幕読み出し機能部 23 5は特に処理を行わない。
[0544] 一方、ステップ S251において、字幕読み出し機能フラグが 1であると判定された場 合、即ち、例えば、再生対象のエレメンタリストリームが多重化されているクリップストリ ームファイルに字幕ストリームが含まれており、図 30のステップ S127で字幕読み出し 機能フラグ記憶部 261に、 1がセットされた場合、ステップ S252に進み、字幕読み出 し機能部 235は、 streamjdレジスタ 263 (図 3)に記憶された、再生対象の字幕ストリ ームの streamjdに一致する PES_packetOを、バッファ 215Aに記憶されたプログラムス トリーム力 探索する。
[0545] ここで、図 30のステップ S127で説明したように、 streamjdレジスタ 263 (図 3)には、 再生対象の字幕ストリームの streamjdが記憶される力 字幕ストリームの streamjdは、 図 20で説明したように、 private_stream_lの PES_packetOを表す 10111101B(=0xBD)で ある。
[0546] 従って、ステップ S252では、バッファ 215Aに記憶されたプログラムストリーム中の p rivate_stream_lの PES_packetOが探索されることになる。
[0547] ステップ S252において、 private_stream_lの PES_packetOの探索が行われ、 private_ stream_lの PES_packet()が見つ力ると、ステップ S253に進み、字幕読み出し機能部 2 35は、その private— stream— 1の PE¾—packetOの PES— packet— data— byteである private— stre aml_PES_payloadO (図 21)に記述されている private_stream_idを抜き出し、その privat e_streamjdが、図 30のステップ S127で private_stream_idレジスタ 264 (図 3)に記憶さ れた、再生対象の字幕ストリームの private_stream_idと一致するかどうかを判定する。
[0548] ステップ S253にお 、て、 private_streaml_PES_payloadOに記述されて ヽる private_st reamjd 、 private_stream_idレシスタ 264に己 '慮 れた private_stream_idと一致しな ヽ と判定された場合、即ち、直前のステップ S252で見つかった private_stream_lの PES_ packetOが、再生対象の字幕ストリームではない場合、ステップ S252〖こ戻り、バッファ 215Aに記憶されたプログラムストリーム中の他の private_stream_lの PES_packetOの 探索が行われ、以下、同様の処理が繰り返される。
[0549] 一方、ステップ S253にお 、て、 private_streaml_PES_payload()に記述されて ヽる pri vate— stream— id» 、 private— stream— idレンスタ 264にじ '慮 れた private— stream— idと一致 すると判定された場合、即ち、直前のステップ S252で見つかった private_stream_lの PES_packetOが、再生対象の字幕ストリームである場合、ステップ S254に進み、字幕 読み出し機能部 235は、その private_stream_lの PES_packetOの private_streaml_PES_ payloadO (図 21)に記述されている AU_locatorを、バッファ 215Aから読み出し、その AUJocatorの直後の位置と、その AU_locatorが表す値とをカ卩算することで、字幕ァク セスユニットの先頭位置を求める。
[0550] 即ち、 AU_locatorは、図 21で説明したように、その AU_locatorの直後の位置を基準 として、 private_streaml_PES_payloadOの private_payload0に格納される字幕アクセス ユニット(あるいはオーディオアクセスユニット)の先頭位置を表すから、 AU_locatorの 直後の位置に、その AlUocatorが表す値を加算することにより、字幕アクセスユニット の(絶対的な)先頭位置を求めることができる。
[0551] 字幕読み出し機能部 235は、さらに、ステップ S254において、以上のようにして求 めた字幕アクセスユニットの先頭位置を指すように、字幕読み出しポインタ記憶部 26 2に記憶された字幕読み出しポインタを更新し、ステップ S 255に進む。
[0552] ステップ S255では、字幕読み出し機能部 235は、字幕デコーダ制御モジュール 2 18から、データの要求があった力どうかを判定し、ないと判定した場合、ステップ S25 5に戻り、同様の処理を繰り返す。
[0553] また、ステップ S255において、字幕デコーダ制御モジュール 218から、データの要 求があった力と判定された場合、ステップ S256に進み、字幕読み出し機能部 235は 、字幕読み出しポインタが指しているバッファ 215Aの位置力ものプログラムストリーム の構文解析を行いつつ、字幕アクセスユニットの先頭に記述されているサイズ分の 1 つの字幕アクセスユニットを、バッファ 215Aから読み出し、その字幕アクセスユニット に付加されているタイムスタンプとともに、字幕デコーダ制御モジュール 218に供給 する。即ち、字幕アクセスユニットの先頭には、図 2で説明したように、その字幕ァクセ スユニットのサイズが記述されており、字幕読み出し機能部 235は、そのサイズ分の データを、字幕読み出しポインタが指しているバッファ 215Aの位置力も読み出し、そ の読み出したデータである字幕アクセスユニットを、その字幕アクセスユニットに付カロ されているタイムスタンプとともに、字幕デコーダ制御モジュール 218に供給する。 [0554] そして、字幕読み出し機能部 235は、ノッファ 215Aから読み出した 1つの字幕ァク セスユニットのサイズ分だけ、字幕読み出しポインタを更新して、ステップ S255に戻り 、以下、同様の処理が繰り返される。
[0555] [再同期処理]
次に、図 2のデコード制御モジュール 214による、ビデオデータとオーディオデコー ダとの同期制御について説明する。
[0556] 図 30の S130で説明したように、デコード制御モジュール 214は、同期を確保する ために必要であればタイミングをずらして、デコード開始を、ビデオデコーダ制御モジ ユール 216、オーディオデコーダ制御モジュール 217、および字幕デコーダ制御モ ジュール 218に指令する力 例えば、その後のビデオデコーダ 116とオーディオデコ ーダ 117のデコード処理の進行程度によって、ビデオデータの出力と、そのビデオデ ータと同期して出力されるべき出力データとしてのオーディオデータの出力とがずれ ることがある。
[0557] そこで、デコード制御モジュール 214では、ビデオデータの出力と、そのビデオデ ータと同期して出力されるべきオーディオデータの出力とに生じたずれを補正し、ビ デォデータとオーディオデータとが同期して出力されるようにするための再同期処理 が行われる。
[0558] 図 39のフローチャートを参照して、再同期処理について説明する。
[0559] 再同期処理では、まず最初に、ステップ S271において、デコード制御モジュール 2 14は、ビデオデコーダ制御モジュール 216からのビデオアクセスユニットのタイムスタ ンプと、オーディオ制御モジュール 217からのオーディオアクセスユニットのタイムスタ ンプとのずれが大であるかどうかを判定する。
[0560] 即ち、図 30のステップ S129で説明したように、ビデオデコーダ制御モジュール 21 6は、バッファ制御モジュール 215からビデオアクセスユニットを得るたびに、そのビ デォアクセスユニットのタイムスタンプを、デコード制御モジュール 214に供給する。 同様に、オーディオ制御モジュール 217も、バッファ制御モジュール 215からオーデ ィォアクセスユニットを得るたびに、そのオーディオアクセスユニットのタイムスタンプを 、デコード制御モジュール 214に供給する。 [0561] ステップ S271では、デコード制御モジュール 214は、ビデオデコーダ制御モジユー ル 216とオーディオ制御モジュール 217とのそれぞれから、同一タイミングで(同一タ イミングとみなすことができる、ある時間内に)供給されるタイムスタンプどうしを比較し 、それらのタイムスタンプのずれが大であるかどうかを判定する。
[0562] ステップ S271にお!/、て、ビデオデコーダ制御モジュール 216からのビデオアクセス ユニットのタイムスタンプと、オーディオ制御モジュール 217からのオーディオアクセス ユニットのタイムスタンプとのずれが大でないと判定された場合、即ち、ビデオァクセ スユニットのタイムスタンプと、オーディオアクセスユニットのタイムスタンプとのずれが 、あら力じめ定められた同期がとれているとみなすことができる範囲内である、例えば 、 2ビデオフレーム (約 66ミリ秒)である場合、ステップ S271に戻り、タイムスタンプどう しのずれの判定 (監視)が続行される。
[0563] 一方、ステップ S271にお!/、て、ビデオデコーダ制御モジュール 216からのビデオ アクセスユニットのタイムスタンプと、オーディオ制御モジュール 217からのオーディオ アクセスユニットのタイムスタンプとのずれが大であると判定された場合、即ち、ビデオ アクセスユニットのタイムスタンプと、オーディオアクセスユニットのタイムスタンプとの ずれ力 あら力じめ定められた同期がとれているとみなすことができる範囲外である場 合、ステップ S272に進み、デコード制御モジュール 214は、ビデオデコーダ制御モ ジュール 216からのビデオアクセスユニットのタイムスタンプと、オーディオ制御モジュ ール 217からのオーディオアクセスユニットのタイムスタンプとを比較することにより、 ビデオデータの出力(デコード)と、オーディオデータの出力とのうちのいずれが遅れ ているかを判定する。
[0564] ステップ S272において、ビデオデータの出力が、オーディオデータの出力よりも遅 れていると判定された場合、ステップ S273に進み、デコード制御モジュール 214は、 1ビデオアクセスユニットだけ、ビデオアクセスユニットの処理を進めるために、ビデオ デコーダ制御モジュール 216に対して、ビデオアクセスユニットのデコードと出力(表 示)を行わない旨の指示、即ち、ビデオアクセスユニットの処理のスキップの指示を出 力して、ステップ S274に進む。
[0565] ステップ S274では、ビデオデコーダ制御モジュール 216は、デコード制御モジユー ル 214からのスキップの指示を受信し、そのスキップの指示に応じて、バッファ制御モ ジュール 215からのビデオアクセスユニットとともに供給される au_ref_flag (図 24)を検 查する。
[0566] 即ち、 private— stream— 2の PES— packetOの private— stream2— PES— payloadO (図 23)に配 置された aujnformationO (図 24)には、アクセスユニットに関する情報としての au_ref_fl agが含まれており、バッファ制御モジュール 215は、図 30のステップ S129や、図 36 のステップ S216で説明したように、ビデオアクセスユニットとともに、そのビデオァクセ スユニットの au ref flagを、ビデオデコーダ制御モジュール 216に供給する。
[0567] ステップ S274では、このように、アクセスユニットとともに供給される、そのアクセス ユニットの au ref flagが検査される。
[0568] そして、ステップ S274力ら S275に進み、ビデオデコーダ制御モジュール 216は、 バッファ制御モジュール 215から供給されたビデオアクセスユニットの au_ref_flagの検 查の結果に基づき、そのビデオアクセスユニットが、他のピクチヤのデコードにあたつ て参照されない非参照画像であるかどうかを判定する。
[0569] ここで、図 24で説明したように、ビデオアクセスユニットの au_ref_flagは、そのアクセス ユニットが参照画像である力否かを表し、参照画像である場合には 1とされ、参照画 像でない場合、即ち、非参照画像である場合には 0とされる。
[0570] ステップ S275において、バッファ制御モジュール 215から供給されたビデオァクセ スユニットが非参照画像 (のビデオアクセスユニット)でな ヽと判定された場合、即ち、 ノ ッファ制御モジュール 215から供給されたビデオアクセスユニットが参照画像であ る場合、ステップ S276に進み、ビデオデコーダ制御モジュール 216は、通常通り、そ のビデオアクセスユニットを、ビデオデコーダ 116に処理させ、次のビデオアクセスュ ニットが、バッファ制御モジュール 215から供給されるのを待って、ステップ S274に 戻る。
[0571] また、ステップ S275において、バッファ制御モジュール 215から供給されたビデオ アクセスユニットが非参照画像であると判定された場合、ステップ S277に進み、ビデ ォデコーダ制御モジュール 216は、そのビデオアクセスユニットの、ビデオデコーダ 1 16による処理をスキップさせ、次のビデオアクセスユニットが、バッファ制御モジユー ル 215から供給されるのを待って、ステップ S271に戻る。
[0572] このように、ビデオアクセスユニットの処理がスキップされることにより、ビデオァクセ スユニットの処理力 ほぼ 1ビデオアクセスユニット分だけ進められる(処理時間が短 縮される)。その結果、オーディオデータの出力よりも遅れていたビデオデータの出 力が早まることになる。
[0573] 一方、ステップ S272において、ビデオデータの出力が、オーディオデータの出力よ りも遅れていないと判定された場合、即ち、オーディオデータの出力が、ビデオデー タの出力よりも遅れている場合、ステップ S278に進み、デコード制御モジュール 214 は、ビデオアクセスユニットの処理を待たせるために、ビデオデコーダ制御モジユー ル 216に対して、 V、まデコードされて!/、るビデオアクセスユニットに対応するビデオデ ータを繰り返して出力する繰り返し出力の指示を出力して、ステップ S279に進む。
[0574] ステップ S279では、ビデオデコーダ制御モジュール 216は、デコード制御モジユー ル 214からの繰り返し出力の指示を受信し、その繰り返し出力の指示に応じて、いま ビデオデコーダ 116でデコードされて!/、るビデオアクセスユニットに対応するビデオ データを繰り返して、グラフィクス処理モジュール 219に出力し、次のビデオアクセス ユニットが、バッファ制御モジュール 215から供給されるのを待って、ステップ S271に 戻る。
[0575] 以上のように、デコード制御モジュール 214では、ビデオデータの出力が、オーディ ォデータの出力よりも遅れている力否かを判定し、ビデオデータの出力力 オーディ ォデータの出力よりも遅れている場合には、 1つのアクセスユニットの処理のスキップ を、ビデオデコーダ制御モジュール 216に指示する。そして、ビデオデコーダ制御モ ジュール 216では、スキップが指示されたアクセスユニットの au_ref_flagに基づき、その アクセスユニットが参照画像である力、または非参照画像であるかを判定し、非参照 画像である場合に、ビデオデコーダ 116に、スキップが指示されたアクセスユニットの 処理をスキップさせる。従って、ビデオデータの出力と、オーディオデータの出力との 同期を、容易にとることができる。
[0576] 即ち、処理をスキップするアクセスユニットが参照画像である場合、そのアクセスュ ニットに対応するビデオデータは、その後にデコードされる他のアクセスユニットのデ コード時に参照するためにデコードする必要がある。従って、ビデオデータの出力と、 オーディオデータの出力との同期をとるための同期制御において、参照画像のァク セスユニットの処理をスキップしてしまうと、その参照画像を参照する他のアクセスュ ニットをデコードすることができず、その結果、ビデオデータの表示において、同期制 御がノイズとして現れてしまう。
[0577] このため、処理をスキップするのは、参照画像でないアクセスユニット、即ち、非参 照画像のアクセスユニットとするのが望まし!/、。
[0578] 一方、従来のエレメンタリストリームにっ 、て、非参照画像のアクセスユニットを探す ためには、エレメンタリストリームの構文解析を行う必要がある力 例えば、 MPEG4-A VCなどにしたがった符号ィ匕により得られるエレメンタリストリームは、構文が非常に複 雑であるため、構文解析に、多大なコストがかかる。
[0579] これに対して、ディスク 101に記録されたクリップストリームファイルに格納されたプ ログラムストリームには、ビデオアクセスユニットが PES_packet_data_byteに配置される P ES_packet() (図 16乃至図 18)とは別に、 PES_packet_data_byteを拡張した private_stre am2_PES_payloadO (図 23)が配置された private_stream_2の PES_packetOが多重化さ れており、その private_stream2_PES_payloadOの aujnformationO (図 24)には、ビデオ アクセスユニットごとに、そのビデオアクセスユニットが参照画像である力、または非参 照画像であるかを表す au_ref_flagが記述されている。そして、その au_ref_flagは、対応 するビデオアクセスユニットとともに、バッファ制御モジュール 215からビデオデコーダ 制御モジュール 216に供給される。従って、ビデオデコーダ制御モジュール 216は、 ビデオアクセスユニットとともに供給される、そのビデオアクセスユニットの au_ref_flagを 検査することにより、コストをほとんどかけずに、ビデオアクセスユニットが参照画像で あるか、または非参照画像であるかを認識することができる。
[0580] [マーク処理]
次に、図 40のフローチャートを参照して、 PlayListMarkO (図 7)に記述された Mark() に基づ!/、て行われるマーク処理につ!、て説明する。
[0581] デコード制御モジュール 214は、内蔵する計時部 214Aによって計時されている現 在時刻を、常時確認しており、ステップ S301において、現在時刻が、 PlayListMarkO (図 7)に記述された!、ずれかの MarkOの mark_time_stampに一致したか否かを判定す る。
[0582] 即ち、図 30のステップ S124で説明したように、プレイヤ制御モジュール 212は、図 25に示した 1番目の PlayList#0の 1番目の PlayItem#0を再生しょうとするときに、図 28 上側に示した PlayListMarkOに含まれる 7つの MarkOのうちの 1番目から 4番目までの 4つの MarkOが、 PlayList#0の 1番目の PlayItem#0に属していることを認識し、その 4つ の MarkOの mark_time_stampである {180,090}、 {5,580,090}、 {10,980,090}、 {16,380,09 0}を、その mark_time_stampが表す時刻の属性が「マーク処理」である旨とともに、デコ ード制御モジュール 214に渡している。
[0583] ステップ S301では、デコード制御モジュール 214において、現在時刻が、上述の ようにしてプレイヤ制御モジュール 212から供給された「マーク処理」の属性の時刻 (m ark_time_stamp)のうちのいずれ力と一致するかどうかが判定される。
[0584] ステップ S301において、現在時刻が、「マーク処理」の属性の時刻のうちのいずれ とも一致しないと判定された場合、ステップ S301に戻り、同様の処理が繰り返される
[0585] また、ステップ S301において、現在時刻が、「マーク処理」の属性の時刻のうちの いずれかと一致すると判定された場合、デコード制御モジュール 214は、現在時刻が 、「マーク処理」の属性の時刻となった旨のメッセージと、現在時刻と一致した「マーク 処理」の属性の時刻とを、プレイヤ制御モジュール 212に供給して、ステップ S302に 進む。
[0586] ステップ S302では、プレイヤ制御モジュール 212が、現在時刻が、「マーク処理」 の属性の時刻となった旨のメッセージと、現在時刻と一致した「マーク処理」の属性の 時刻 (mark_time_stamp)とを、デコード制御モジュール 214から受信し、 mark_time_sta mpが現在時刻に一致した MarkOを、マーク処理の処理対象とする MarkO (以下、適 宜、処理対象 markという)として認識する。
[0587] 即ち、プレイヤ制御モジュール 212は、現在再生されている PlayListOの PlayltemO を認識しており、その PlayListOおよび PlayltemOと、デコード制御モジュール 214から の、現在時刻と一致した「マーク処理」の属性の時刻 (mark_time_stamp) (以下、適宜、 マーク時刻と 、う)と力ら、 "PLAYLIST.DAT"ファイル(図 5)の PlayListMarkO (図 7)を 参照することにより、処理対象 markを認識する。
[0588] 具体的には、例えば、いま、図 25に示した 1番目の PlayList#0の 1番目の Playltem# 0が再生されているとすると、そのことにより、プレイヤ制御モジュール 212は、マーク 時刻が、図 28上側に示した PlayListMarkOに含まれる 7つの MarkOのうちの 1番目力 ら 4番目までの 4つの MarkOのうちの 、ずれかの mark_time_stampであることを認識す る。
[0589] そして、デコード制御モジュール 214からプレイヤ制御モジュール 212に供給され たマーク時刻が、例えば、 16,380,090であったとすると、プレイヤ制御モジュール 212 は、図 28上側に示した PlayListMarkOに含まれる 1番目から 4番目までの 4つの Mark( )のうちの、 mark_time_stampが、マーク時刻である 16,380,090に一致する 4番目の Mar k0を、処理対象 markとして認識する。
[0590] プレイヤ制御モジュール 212は、以上のようにして、処理対象 markを認識すると、ス テツプ S302力ら S303に進み、処理対象 markにおいて、エレメンタリストリームを特定 する entry_ES_stream_idと entry_ES_private_stream_id (図 7)が記述されて 、る力どう力 を判定する。
[0591] ステップ S303において、処理対象 markに、エレメンタリストリームを特定する entry_ ES_stream_idと entry_ES_private_stream_id (図 7)が記述されて 、な 、と判定された場 合、即ち、 entry_ES_stream_idと entry_ES_private_stream_idが、いずれも 0x00である場 合、ステップ S304をスキップして、ステップ S305〖こ進み、以下、処理対象 markに応 じた処理が行われる。
[0592] また、ステップ S303において、処理対象 markに、エレメンタリストリームを特定する e ntry_ES_stream_idと entry_ES_private_stream_id (図 7)が記述されて 、ると判定された 場合、ステップ S304に進み、プレイヤ制御モジュール 212は、再生中のエレメンタリ ストリーム〖こ、その entry_ES_stream_id、さら〖こは、必要に応じて entry_ES_private_strea mjdによって特定されるエレメンタリストリームが含まれるかどうかを判定する。
[0593] ステップ S304において、再生中のエレメンタリストリームに、処理対象 markの entry_ ES_stream_idと entry_ES_private_stream_idによって特定されるエレメンタリストリームが 含まれないと判定された場合、ステップ S301に戻る。即ち、処理対象 markの entry_E S_stream_idと entry_ES_private_stream_idによって特定されるエレメンタリストリームが再 生されていない場合、処理対象 markは、無視される。
[0594] 一方、ステップ S304において、再生中のエレメンタリストリームに、処理対象 markの entry_ES_stream_idと entry_ES_private_stream_idによって特定されるエレメンタリストリ ームが含まれると判定された場合、即ち、処理対象 markの entry_ES_stream_idと entry_ ES_private_stream_idによって特定されるエレメンタリストリームが再生されている場合 、処理対象 markは有効であるとして、ステップ S305に進み、以下、その処理対象 mar kに応じた処理が行われる。
[0595] 即ち、ステップ S305では、プレイヤ制御モジュール 212は、処理対象 markの mark_ type (図 7)を参照することにより、その処理対象 markを判定する。
[0596] ステップ S305において、処理対象 mark力 チヤプタマークまたはインデクスマーク であると判定された場合、即ち、処理対象 markの mark_typeが、 'Chapter'または' Inde x'である場合、ステップ S 306に進み、プレイヤ制御モジュール 212は、グラフィクス処 理モジュール 219に命じて、チヤプタまたはインデタスの番号の表示を、処理対象 ma rkであるチヤプタマークまたはインデクスマークが表すチヤプタまたはインデタスの番 号に更新させて、ステップ S301に戻る。
[0597] また、ステップ S 305において、処理対象 markが、イベントマークであると判定され た場合、即ち、処理対象 markの markj peが、 'Event'である場合、ステップ S307に 進み、プレイヤ制御モジュール 212は、イベントの発生を表すイベントメッセージと、 処理対象 markの mark_dataを、スクリプト制御モジュール 211に通知(供給)して、ステ ップ S 308に進む。
[0598] ステップ S308では、スクリプト制御モジュール 211が、プレイヤ制御モジュール 212 からのイベントメッセージと mark_dataとを受信し、イベントメッセージを割り込み要求と して、あらかじめ" SCRIPT.DAT〃ファイルに記述された一連の処理を、 mark_dataを引 数として行って、ステップ S301に戻る。
[0599] 即ち、スクリプト制御モジュール 211では、 mark_dataに対応した処理が行われる。
[0600] 具体的には、例えば、図 28下側に示した PlayList #1の PlayListMarkOでは、 2番目 の MarkO (Mark#l)と 3番目の MarkO (Mark#2)とは、 、ずれも、 mark_typeが'Event'で あるが、 mark_dataは、それぞれ 1 (Mark#l)と 2 (Mark#2)で異なって!/、る。
[0601] スクリプト制御モジュール 211は、 2番目の MarkOに対応するイベントメッセージを受 信した場合と、 3番目の MarkOに対応するイベントメッセージを受信した場合の、いず れも場合も、そのイベントメッセージに応じて、同一のイベントハンドラ (割り込み処理 ルーチン)で処理を行うが、イベントハンドラ内において、イベントメッセージとともに供 給される mark_dataを検査することにより、イベントメッセージに対して、 mark_dataごと に異なる処理を行う。
[0602] 具体的には、例えば、 mark_dataが 1である場合には、スクリプト制御モジュール 211 は、グラフィクス処理モジュール 219を制御して、第 1の種類のアイコンの表示を行わ せる。また、例えば、 mark_dataが 2である場合、スクリプト処理モジュール 211は、ダラ フィクス処理モジュール 219を制御して、第 2の種類のアイコンの表示を行わせる。
[0603] なお、 mark_dataは、 1や 2に限定されるものではなぐまた、 mark_dataに対応して行 われる処理も、上述したような、単なるアイコンの表示限定されるものではない。
[0604] 即ち、例えば、 mark_dataが 3乃至 18の範囲の値である場合には、スクリプト制御モ ジュール 211は、グラフィクス処理モジュール 219を制御し、第 1の種類のアイコンの 表示を、 mark_dataから 2を減じた値(1〜16の数値)に対応する明るさで行わせる。ま た、例えば、 mark_dataが 19乃至 34の範囲の値である場合には、スクリプト制御モジュ ール 211は、グラフィクス処理モジュール 219を制御し、第 2の種類のアイコンの表示 を、 mark_dataから 18を減じた値(1〜16の数値)に対応する明るさで行わせる。
[0605] その他、例えば、入力インターフェース 115 (図 1)に、ユーザが操作するコントロー ラが接続されており、そのコントローラ力 DC(Direct Current)モータの軸に偏芯させ たおもりを取り付けた、 DCモータを動作させると振動が発生する振動モータを内蔵す る場合には、 mark_dataが 35乃至 42の範囲の値であるときに、その振動モータを、 mar k_dataから 34を減じた値(1〜8の数値)に応じた動作時間だけ動作させることができる
[0606] mark_dataは数値であり、その使用法やアルゴリズムは、スクリプト制御モジュール 2 11が実行するスクリプトプログラムにより記述することができる。従って、 mark_dataは、 事前に取り決められたルールで使用する他、ディスク 101の製造者、あるいはデイス ク 101に記録されるデータを提供するコンテンツプロノイダなどが独自に設定したル ールで使用することが可能である。
[0607] 以上のように、マーク処理では、現在時刻が、「マーク処理」の属性の時刻と一致す ると、その「マーク処理」の属性の時刻であるマーク時刻から、処理対象 markが認識 される。さらに、処理対象 markにおいて、エレメンタリストリームを特定する entry_ES_st reamjdと entry_ES_private_stream_idが記述されて 、な 、場合には、処理対象 markの mark_typeに応じた処理が行われる。また、処理対象 markにおいて、エレメンタリストリ ームを特定する entry_ES_stream_idと entry_ES_private_stream_idが記述されている場 合で teつても、 "Irの entry— ES— stream— idと entry— E¾— private— stream— idによって特疋 れ るエレメンタリストリームが再生中であれば、処理対象 markの mark_typeに応じた処理 が行われる。
[0608] 従って、例えば、いま、図 25に示した 2番目の PlayList#lの再生が行われていると すると、以下のようなマーク処理が行われる。
[0609] 即ち、 2番目の PlayList#lの PlayListMarkOにおいては、図 28下側に示したように、 mark_time_stampがそれぞれ 90,000, 27,090,000, 27,540,000に指定されている 1番目 の MarkO(Mark#0)、 2番目の MarkO (Mark#l)、 3番目の MarkO (Mark#2)が記述され ている。
[0610] さらに、図 28下側の PlayListMarkOにおいては、 2番目の MarkOと 3番目の MarkOの entry_ES_streamjdには、それぞれ、 OxEOと OxElが記述されているから、 2番目の Mar k0と 3番目の MarkOは、それぞれ、 streamjdが OxEOと OxElで特定されるエレメンタリス トリームが関連付けられている。
[0611] ここで、図 25で説明したように、 2番目の PlayList#lには、 1つの PlayItemO(PlayItem #0)だけが記述され、その PlayItem#0によれば、クリップストリームファイル" 00003.PS" が再生される。そして、クリップストリームファイル" 00003.PS"には、そのクリップストリ ームファイル" 00003.PS"に対応する図 26のクリップ情報ファイル" 00003.CLP"で説明 したように、 OxEOとなっている streamjdで特定されるビデオストリーム stream#0、 OxEl となって 、る streamjdで特定されるビデオストリーム stream#l、 OxBDとなって 、る strea m_idおよび 0x00となっている private_stream_idで特定されるオーディオストリーム strea m#2の 3つのエレメンタリストリームが多重化されて!/、る。
[0612] 従って、図 28下側の PlayListMarkOの 2番目の MarkOには、クリップストリームフアイ ル" 00003.PS"に多重化されて!/、る、 streamjdが OxEOとなって!/、るビデオストリーム str eam#0が関連付けられており、 3番目の MarkOには、クリップストリームファイル" 00003. PS"に多重化されている、 streamjdが OxElとなっているビデオストリーム stream#lが関 連付けられている。
[0613] 図 25の 2番目の PlayList#lの PlayItem#0の再生が開始される場合、図 30のステップ S 124で説明したようにして、プレイヤ制御モジュール 212は、図 28下側に示した Pla yListMarkOに含まれる 3つの MarkOが、 PlayList#lの PlayItem#0に属して!/、ることを認 識し、その 3つの MarkOの mark_time_stampである {90,000}、 {27,090,000}、 {27,540,000} を、その mark_time_stampが表す時刻の属性が「マーク処理」である旨とともに、デコー ド制御モジュール 214に渡している。
[0614] マーク処理では、デコード制御モジュール 214が、 PlayList#lの PlayItem#0の再生 中に、計時部 214Aによって計時される現在時刻力 属性が「マーク処理」の時刻 {90 ,000}、 {27,090,000k {27,540,000}のうちのいずれかに一致するかを、常時確認してお り(ステップ S301)、現在時刻力 属性が「マーク処理」の時刻に一致すると、現在時 刻と一致した「マーク処理」の属性の時刻であるマーク時刻と、現在時刻が、「マーク 処理」の属性の時刻となった旨のメッセージとを、プレイヤ制御モジュール 212に供 給する。
[0615] 即ち、例えば、いま、現在時刻が、「マーク処理」の属性の時刻 {90,000}、 {27,090,00 0}、 {27,540,000}のうちの、 27,090,000に一致したとすると、デコード制御モジュール 2 14は、現在時刻と一致した「マーク処理」の属性の時刻であるマーク時刻 27,090,000 と、現在時刻が、「マーク処理」の属性の時刻となった旨のメッセージとを、プレイヤ制 御モジュール 212に供給する。
[0616] プレイヤ制御モジュール 212は、 PlayList#lの PlayItem#0が現在再生されていること を認識しており、その PlayList#lの図 28下側に示した PlayListMarkOに記述された Ma rk()のうちの、 PlayItem#0に属する 3つの MarkOの mark_time_stampである 90,000, 27,0 90,000, 27,540,000それぞれと、デコード制御モジュール 214からのマーク時刻であ る 27,090,000とを比較することにより、そのマーク時刻 27,090,000に、 mark_time_stamp がー致する Mark0、即ち、図 28下側の PlayListMarkOに記述された 2番目の MarkO(M ark#l)を、処理対象 markとして認識する(ステップ S302)。
[0617] 処理対象 markである、図 28下側の PlayListMarkOに記述された 2番目の MarkOに おいては、 entry_ES_stream_idとして、 OxEOが指定されている。この OxEOとなっている e ntry_ES_stream_idは、上述したことから、クリップストリームファイル" 00003.PS"に多重 ィ匕されて 、る、 streamjdが OxEOとなって!/、るビデオストリーム stream#0 (図 26)を表す ものであり、プレイヤ制御モジュール 212は、再生中のエレメンタリストリームの中に、 そのビデオストリーム stream#0が含まれるかどうかを判定する(ステップ S303, S304
) o
[0618] そして、再生中のエレメンタリストリームの中に、ビデオストリーム stream#0が含まれ ない場合には、処理対象 markは無視される(ステップ S304)。
[0619] 一方、再生中のエレメンタリストリームの中に、ビデオストリーム stream#0が含まれる 場合には、処理対象 markは有効であるとして、その処理対象 markに応じた処理が行 われる(ステップ S305乃至 S308)。
[0620] 即ち、いまの場合、処理対象 markである、図 28下側の PlayListMarkOに記述された 2番目の MarkOは、その mark_typeが' Event'になっているからイベントマークであり、従 つて、プレイヤ制御モジュール 212は、イベントの発生を表すイベントメッセージと、処 理対象 markの mark_dataを、スクリプト制御モジュール 211に供給する(ステップ S 305 , S307)。そして、スクリプト制御モジュール 211では、プレイヤ制御モジュール 212 力ものイベントメッセージを割り込み要求として、あらかじめ" SCRIPT.DAT"ファイルに 記述された一連の処理を、そのイベントメッセージとともに供給された mark_dataを引 数として行う(ステップ S308)。
[0621] 以上のように、マーク処理によれば、 PlayListOの時間軸上の 1つの再生時刻を表す mark_time_stampと、 MarkOのタイプを表す mark_typeと、イベントマークの引数となる m ark_dataとを含む 0以上の MarkOを有する PlayListMarkO (図7)を含む PlayListO (図5) にしたがって再生されているクリップストリームファイルの再生時刻である現在時刻が 、 mark_time_stamp〖こ一致するか否かが判定され、現在時刻力 mark_time_stamp〖こ一 致する場合に、その一致した現在時刻であるマーク時刻に等し ヽ mark_time_stampを 有する MarkOが、処理対象 markとして認識される。さらに、その処理対象 markが有す る mark_typeが、イベントを発生させるタイプを表している場合、即ち、処理対象 mark 力 イベントマークである場合、処理対象 markが有する mark_dataとイベントメッセージ とが通知され、その mark_dataに応じた処理が実行される。従って、クリップストリームフ アイルの再生時刻に応じ、 mark_dataに応じた処理を実行することが可能となる。
[0622] [出力属性の制御処理]
次に、図 41のフローチャートを参照して、図 30のステップ S126などで行われる出 力属性の制御処理の詳細について説明する。
[0623] 図 30のステップ S126で説明したように、プレイヤ制御モジュール 212は、まず、再 生対象の 1以上のエレメンタリストリーム、即ち、図 30のステップ S125で再生すると決 定した 1以上のエレメンタリストリームそれぞれについて、出力属性が記述される Dyna micInfoO (図 13)の数を表す number_of_Dynamidnfo (図 10)を調査する。
[0624] そして、再生対象の 1以上のエレメンタリストリームのすべてについて、 number_of_Dy namiclnfo力^になっている場合、プレイヤ制御モジュール 212は、特に処理を行わな い。
[0625] 一方、再生対象のエレメンタリストリームについての number_of_Dynamidnfoが 0でな い場合、プレイヤ制御モジュール 212は、図 41のフローチャートにしたがった出力属 性の制御処理を行う。
[0626] 従って、ディスク 101に記録された 3つのクリップ情報ファイル" 00001.CLP", "00002 .CLP", "00003.CLP"が、例えば、図 26に示したようになつている場合に、クリップ情 報ファイル" 00001.CLP"に対応するクリップストリームファイル" 00001.PS" (を再生する 1番目の PlayList#0の 1番目の PlayItem#0)が再生されるときには、クリップ情報フアイ ル" 00001.CLP" (図 26)では、クリップストリームファイル" 00001.PS"に多重化されてい る 4つのエレメンタリストリーム stream#0乃至 stream#3のすべてにっ 、て、 number_of_D ynamiclnfoが 0になって!/、るから、出力属性の制御処理は行われな!/、。
[0627] 同様に、クリップ情報ファイル" 00002.CLP"に対応するクリップストリームファイル" 00 002. PS" (を再生する 1番目の PlayList#0の 2番目の Playltem#l)が再生されるときも、 クリップ情報ファイル" 00002.CLP" (図 26)では、クリップストリームファイル" 00002.PS" に多重化されている 4つのエレメンタリストリーム stream#0乃至 stream#3のすべてにつ いて、 number_of_Dynamidnfoが 0になっているから、出力属性の制御処理は行われな い。
[0628] 一方、クリップ情報ファイル" 00003.CLP"に対応するクリップストリームファイル" 0000
3. PS" (を再生する 2番目の PlayList#lの PlayItem#0)が再生されるときは、クリップ情 報ファイル" 00003.CLP" (図 26)において、クリップストリームファイル" 00003.PS"に多 重化されている 3つのエレメンタリストリーム stream#0乃至 stream#2のうちの、 1番目の エレメンタリストリームであるビデオストリーム stream#0と、 3番目のエレメンタリストリー ムであるオーディストリーム stream#2につ 、て、 number_of_Dynamidnfo力^でな ヽ 2と 3 に、それぞれなつているから、出力属性の制御処理が行われる。
[0629] 即ち、出力属性の制御処理では、まず最初に、ステップ S320において、プレイヤ 制御モジュール 212は、再生対象のクリップストリームファイルに対応するクリップ情 報ファイル ClipO (図 10)に記述された pts_change_pointを、「DynamicInfoO処理」の属 性の時刻である旨とともに、デコード制御モジュール 214に渡し、デコード制御モジュ ール 214は、プレイヤ制御モジュール 212からの「DynamidnfoO処理」の属性の時刻 である pts_change_pointを受信して、ステップ S321に進む。
[0630] ステップ S321では、デコード制御モジュール 214力 計時部 214Aによって計時さ れて 、る現在時刻が、「DynamicInfo()処理」の属性の時刻である pts_change_point (の いずれか)に一致したかどうかを判定し、一致していないと判定した場合、ステップ S3 21に戻る c
[0631] また、ステップ S321にお!/、て、現在時刻が、「DynamicInfoO処理」の属性の時刻 ( のいずれか)に一致したと判定された場合、デコード制御モジュール 214は、現在時 刻が、「DynamicInfoO処理」の属性の時刻となった旨のメッセージと、現在時刻と一致 した「DynamicInfo()処理」の属性の時刻(以下、適宜、 Dynamiclnfo時刻という)とを、 プレイヤ制御モジュール 212に供給して、ステップ S 322に進む。
[0632] ステップ S332では、プレイヤ制御モジュール 212が、現在時刻が、「DynamidnfoO 処理」の属性の時刻となった旨のメッセージと、 Dynamiclnfo時刻とを、デコード制御 モジュール 214から受信し、その Dynamiclnfo時刻に一致する pts_change_point (図 10 )とセットになっている DynamicInfoOを、処理対象の DynamicInfoOである処理対象 Dyn amicInfoOとして認識して、ステップ S323〖こ進む。
[0633] ステップ S323では、プレイヤ制御モジュール 212は、処理対象 DynamicInfoOとなつ ている DynamicInfoO (図 13)に記述された出力属性を、グラフィクス処理モジュール 2 19またはオーディオ出力モジュール 221に供給して、ステップ S 324に進む。
[0634] ステップ S324では、グラフィクス処理モジュール 219またはオーディオ出力モジュ ール 221力 直前のステップ S323でプレイヤ制御モジュール 212から供給された出 力属性にしたがって、ビデオデータまたはオーディオデータの出力の制御を、それぞ れ開始し、ステップ S321〖こ戻る。
[0635] これにより、ビデオデータが、出力属性 (表示方式)として記述された、例えばァスぺ タト比に応じて出力され、あるいは、オーディオデータが、出力属性(出力方式)として 記述された、例えば、ステレオまたはデュアル(ニケ国語)に応じて出力される。
[0636] 次に、図 42を参照して、出力属性の制御処理の詳細について、さらに説明する。
[0637] 即ち、図 42は、図 26のクリップ情報ファイル" 00003.CLP"に記述されている pts_cha nge_pointと DynamicInfoOとのセット(図 10)を示している。
[0638] ここで、上述したように、クリップストリームファイル" 00003.PS"に多重化されている 3 つのエレメンタリストリーム stream#0乃至 stream#2のうちの、 1番目のエレメンタリストリ ームであるビデオストリーム stream#0と、 3番目のエレメンタリストリームであるオーディ ストリーム stream#2については、図 26のクリップ情報ファイル" 00003. CLP"において、 number_of_Dynamidnfoが、それぞれ 2と 3になっている。従って、クリップ情報ファイル" 00003. CLP"において、クリップストリームファイル" 00003.PS"の 1番目のビデオストリ ーム stream#0については、 2セットの pts_change_pointおよび DynamicInfoOが記述され ており、 3番目のオーディオストリーム stream#2については、 3セットの pts_change_poin tおよび DynamicInfoOが記述されて 、る。
[0639] 図 42上側は、クリップストリームファイル" 00003.PS"の 1番目のビデオストリーム strea m#0につ 、て記述されて 、る 2セットの pts_change_pointおよび DynamicInfoOを示して おり、図 42下側は、クリップストリームファイル" 00003.PS"の 3番目のオーディオストリ ーム stream#2について記述されている 3セットの pts_change_pointおよび DynamicInfoO を示している。
[0640] なお、図 42上側では、 1番目のビデオストリーム stream#0につ!/、て記述されて!、る 2 セットの pts_change_pointおよび DynamicInfoOの他に、そのビデオストリーム stream#0 につ 、て、図 26のクリップ情報ファイル" 00003.CLP"に記述されて!、る stream_id(=0x E0), private— stream— ια(=0χ00), number— of— DynamicInfo(=2)も、図不し飞ある。同様に、 図 42下側でも、 3番目のオーディオストリーム stream#2について記述されている 3セッ トの pts_change_pointおよび DynamicInfoOの他に、そのオーディオストリーム stream#2 につ 、て、図 26のクリップ情報ファイル" 00003.CLP"に記述されて!、る stream_id(=0x BD), private— stream— id、=0x00), number_of_DynamicInfo(=3)b ^ |≤3 してある。
[0641] 図 42上側において、ビデオストリーム stream#0について記述されている 2セットの pt s_change_pointおよび DynamicInfoOのうちの 1セット目では、 pts_change_pointが 90,000 になっており、 DynamicInfoOの display_aspect_ratio (図 13)力 4:3'になっている。さら に、その 2セット目では、 pts_change_pointが 54,090,000になっており、 DynamicInfoOの display— aspect— ratio 16:9'になって!/、る。
[0642] 一方、図 42下側において、オーディオストリーム stream#2について記述されている 3セットの pts— change— pointおよび DynamicInfoOのつちの 1セット目では、 pts— change— poi ntが 90,000になっており、 DynamicInfoOの channeLassignment (図 13)が' Dual'になつ ている。さらに、その 2セット目では、 pts_change_pointが 27,090,000になっており、 Dyn amicInfoOの channeLassignmentが' Stereo'になっている。また、その 3セット目では、 pt s— change— point力 32, 490, 000になつており、 DynamicInfoOの channel— assignment Oua 1 'になっている。
[0643] 例えば、いま、図 30のステップ S125において、クリップストリームファイル" 00003.PS "の、 OxEOとなっている streamjdで特定される 1番目のビデオストリーム stream#0と、 Ox BDとなっている streamjdおよび 0x00となっている private_stream_idで特定される 3番 目のオーディオストリーム streamsと力 再生対象のストリームとして決定されたとする [0644] この場合、プレイヤ制御モジュール 212は、 OxEOとなっている streamjdで特定され るビデオストリーム stream#0につ!/、て記述されて!、る図 42上側の 2セットの pts_change _pointおよび DynamicInfoOと、 OxBDとなって 、る streamjdおよび 0x00となって ヽる priv ate_stream_idで特定されるオーディオストリーム stream#2につ!/、て記述されて!、る図 4 2下側の 3セットの pts_change_pointおよび DynamicInfoOとの中の pts_change_pointを 調査し、初期値を認識する。
[0645] 即ち、 OxEOとなって!/、る streamjdで特定されるビデオストリーム stream#0につ!/、て記 述されている図 42上側の 2セットの pts_change_pointおよび DynamicInfoOのうちの 1セ ット目では、 pts_change_pointが 90,000になっている。そして、この 90,000という時刻は 、ビデオストリーム stream#0が多重化されて!/、るクリップストリームファイル" 00003.PS" に対応する図 26のクリップ情報ファイル" 00003.CLP"において、クリップストリームファ ィル" 00003.PS"の先頭の時刻を表す presentation_start_timeに記述されている時刻 9 0,000に一致する。
[0646] 同様に、 OxBDとなって 、る streamjdおよび 0x00となって 、る private_stream_idで特 定されるオーディオストリーム stream#2について記述されている図 42下側の 3セットの pts— change— pointおよび DynamicInfoOのつちの 1セット目では、 pts— change— pointが 90,0 00になっている。そして、この 90,000という時刻は、オーディオストリーム stream#2が多 重化されているクリップストリームファイル" 00003.PS"に対応する図 26のクリップ情報 ファイル" 00003.CLP"において、クリップストリームファイル" 00003.PS"の先頭の時刻 を表す presentation_start_timeに記述されている時刻 90,000に一致する。
[0647] プレイヤ制御モジュール 212は、クリップストリームファイル" 00003.PS"の先頭の時 刻を表す presentation_start_timeに記述されている時刻 90,000に一致する pts_change_ pointを、初期値として認識する。従って、図 42上側の 2セットの pts_change_pointおよ び DynamicInfoOのうちの 1セット目の pts_change_pointと、図 42下側の 3セットの pts_ch ange_pointおよび DynamicInfoOのうちの 1セット目の pts_change_pointが、初期値として 認識される。
[0648] そして、プレイヤ制御モジュール 212は、クリップストリームファイル" 00003.PS"の再 生が開始される前に(図 30のステップ S 126で)、初期値として認識した pts_change_p ointとセットになっている DynamidnfoOにしたがって、対応するエレメンタリストリームの 出力属性を指示する。
[0649] 即ち、 OxEOとなって!/、る streamjdで特定されるビデオストリーム stream#0につ!/、ては 、図 42上側で、初期値である 90,000になって!/、る pts_change_pointとセットになって!/ヽ る DynamidnfoOにおいて、 display_aspect_ratioが' 4:3'になっている。この場合、プレイ ャ制御モジュール 212は、 display_aspect_ratioが' 4:3'になっている旨、即ち、ビデオ ストリーム stream#0が、 4 : 3のアスペクト比のビデオデータである旨の出力属性の情 報を、グラフィクス処理モジュール 219を制御する。
[0650] また、 OxBDとなって 、る streamjdおよび 0x00となって 、る private_stream_idで特定さ れるオーディオストリーム stream#2については、図 42下側で、初期値である 90,000に なつて V、る pts— change— pointとセットになって 、る DynamidnfoOにお ヽ飞、 channel—assi gnmentが' Dual'になっている。この場合、プレイヤ制御モジュール 212は、 channel.as signmentが' Dual'になっている旨、即ち、オーディオストリーム stream#2が、デュアノレ のオーディオデータである旨の出力属性の情報を、オーディオ出力モジュール 221 に供給する。
[0651] ここで、図 30のステップ S126では、以上のような初期値としての pts_change_pointを 対象とした出力属性の制御処理が行われる。
[0652] その後、プレイヤ制御モジュール 212は、ビデオストリーム stream#0についての図 4 2上側の 2つの pts_change_pointである 90,000および 54,090,000と、オーディオストリー ム stream#2についての図 42下側の 3つの pts_change_pointである 90,000, 27,090,000 、および 32,490,000のうちの、初期値 90,000以外の時刻である {27,090,000}, {32,490, 000}, {54,090,000}を、「DynamicInfo0処理」の属性の時刻である旨とともに、デコード 制御モジュール 214に渡す (ステップ S320)。
[0653] デコード制御モジュール 214は、プレイヤ制御モジュール 212からの、「DynamicInf o()処理」の属性の時刻 {27,090,000}, {32,490,000}, {54,090,000}を受信し、さらに、ビ デォストリーム stream#0およびオーディオストリーム stream#2の再生(クリップストリーム ファイル" 00003.PS"を再生する 2番目の PlayList#lの PlayItem#0の再生)の開始後、 計時部 214Aによって計時されている現在時刻の監視を開始する。 [0654] そして、デコード制御モジュール 214は、現在時刻が、「DynamicInfoO処理」の属性 の時刻 {27,090,000}, {32,490,000}, {54,090,000}のうちの!/、ずれかに一致した場合、 その現在時刻と一致した「DynamicInfoO処理」の属性の時刻である Dynamiclnfo時刻 を、プレイヤ制御モジュール 212に供給する(ステップ S321)。
[0655] 即ち、例えば、現在時刻が、 27,090,000になったとすると、デコード制御モジュール 214は、「DynamicInfoO処理」の属性の時刻のうちの、現在時刻と一致する 27,090,00 0を、 Dynamiclnfo時刻として、プレイヤ制御モジュール 212に供給する
[0656] プレイヤ制御モジュール 212は、デコード制御モジュール 214からの Dynamiclnfo時 刻である 27,090,000を受信し、ビデオストリーム stream#0についての図 42上側の 2つ の pts_change_pointと、オーディオストリーム stream#2につ 、ての図 42下側の 3つの pt s_change_pointとの中から、 Dynamiclnfo時刻である 27,090,000に一致する pts_change_ pointを調査し、その 27,090,000に一致する pts_change_pointとセットになっている Dyna miclnfo0、即ち、オーディオストリーム stream#2についての図 42下側の 2番目の Dyna midnfoOを、処理対象 DynamidnfoOとして認識する(ステップ S322)。
[0657] 処理対象 DynamidnfoOが、ビデオストリームにつ 、ての DynamidnfoOである場合、 プレイヤ制御モジュール 212は、処理対象 DynamidnfoOに記述されている出力属性 を、グラフィクス処理モジュール 219に供給する(ステップ S323)。また、処理対象 Dy namicInfoOが、オーディオストリームについての DynamidnfoOである場合、プレイヤ制 御モジュール 212は、処理対象 DynamidnfoOに記述されている出力属性を、オーデ ィォ出力モジュール 221に供給する(ステップ S323)。
[0658] グラフィクス処理モジュール 219は、プレイヤ制御モジュール 212から出力属性が 供給されると、その出力属性にしたがって、ビデオデータの出力の制御を開始する( ステップ S324)。
[0659] 即ち、グラフィクス処理モジュール 219は、例えば、プレイヤ制御モジュール 212か らの出力属性が表す、ビデオデータのアスペクト比の指示 (display_aspect_ratio (図 13 ))と、図 1のビデオ出力端子 120に接続されたビデオ出力装置のアスペクト比とに基 づいて、ビデオ出力モジュール 220に出力するビデオデータのアスペクト比の変換を 行う。 [0660] 具体的には、例えば、ビデオ出力装置のアスペクト比が 16:9である場合において、 出力属性としてのビデオデータのアスペクト比の指示が 4:3のアスペクト比を表してい るときには、グラフィクス処理モジュール 219は、ビデオ出力モジュール 220に出力す るビデオデータを、横方向にスクイーズ処理し、左右に黒味を入れて出力する。また 、例えば、ビデオ出力装置のアスペクト比が 4:3である場合において、出力属性として のビデオデータのアスペクト比の指示が 16:9のアスペクト比を表しているときには、グ ラフイクス処理モジュール 219は、ビデオ出力モジュール 220に出力するビデオデー タを、縦方向にスクイーズ処理し、上下に黒味を入れて出力する。さら〖こ、例えば、ビ デォ出力装置のアスペクト比と、出力属性としてのビデオデータのアスペクト比の指 示が表すアスペクト比と力 いずれも、 4:3や 16:9で、同一である場合、グラフィクス処 理モジュール 219は、ビデオ出力モジュール 220に出力するビデオデータを、スクイ ーズ処理することなぐそのまま出力する。
[0661] ここで、図 42上側において、 OxEOとなっている streamjdで特定されるビデオストリー ム stream#0について記述されている 2セットの pts_change_pointおよび DynamicInfoOに よれば、ビデオストリーム stream#0の再生開始時である時刻 90,000から、時刻 54,090, 000の直前までは、ビデオストリーム stream#0から、 4 : 3のアスペクト比のビデオデータ が得られる。そして、時刻 54,090,000以後は、ビデオストリーム stream#0から、 16 : 9の アスペクト比のビデオデータが得られる。
[0662] 従って、例えば、図 1のビデオ出力端子 120に接続されたビデオ出力装置のァスぺ タト比が 4:3であるとすると、グラフィクス処理モジュール 219では、時刻 90,000から時 刻 54,090,000の直前までは、ビデオストリーム stream#0から得られる 4 : 3のアスペクト 比のビデオデータ力 そのまま 4: 3のアスペクト比のビデオ出力装置に供給されて表 示される。
[0663] そして、時刻 54,090,000以後は、ビデオストリーム stream#0から得られる 16: 9のァス ぺクト比のビデオデータ力 縦方向にスクイーズ処理され、さらに、上下に黒味が入つ た 4: 3のアスペクト比のビデオ信号に変換され、 4: 3のアスペクト比のビデオ出力装 置に供給されて表示される。
[0664] 一方、オーディオ出力モジュール 221は、プレイヤ制御モジュール 212から出力属 性が供給されると、その出力属性にしたがって、オーディオデータの出力の制御を開 始する(ステップ S324)。
[0665] 即ち、オーディオ出力モジュール 221は、例えば、プレイヤ制御モジュール 212か らの出力属性が表す、オーディオデータのチャネル割り当ての指示 (channeLassignm ent (図 13) )と、ユーザがリモコンを操作することによって入力インターフェース 115 ( 図 1)を介してプレイヤ制御モジュール 212から供給される音声出力モードとに基づ いて、オーディオデコーダ制御モジュール 217からのオーディオデータを処理し、ォ 一ディォ出力端子 121 (図 1)に出力する。
[0666] 具体的には、例えば、出力属性が表すオーディオデータのチャネル割り当ての指 示が、左チャネルが「主音声」のオーディオデータで、右チャネルの「副音声」のォー ディォデータであるデュアル (Dual) (ニケ国語)モードを表して 、る場合、オーディオ 出力モジュール 221は、プレイヤ制御モジュール 212から供給される音声出力モード にしたがって、オーディオデコーダ制御モジュール 217からのオーディオデータを処 理して、オーディオ出力端子 121に出力する。
[0667] 即ち、音声出力モードとして、例えば、「主音声」が指定されているときには、オーデ ィォ出力モジュール 221は、オーディオデコーダ制御モジュール 217からのオーディ ォデータのうちの左チャネルのオーディオデータを、右チャネルのオーディオデータ としてコピーし、その左チャネルと右チャネルのオーディオデータ(「主音声」のォー ディォデータ)を、オーディオ出力端子 121に出力する。また、音声出力モードとして 、「副音声」が指定されているときには、オーディオ出力モジュール 221は、オーディ ォデコーダ制御モジュール 217からのオーディオデータのうちの右チャネルのォー ディォデータを、左チャネルのオーディオデータとしてコピーし、その左チャネルと右 チャネルのオーディオデータ(「副音声」のオーディオデータ)を、オーディオ出力端 子 121に出力する。さらに、音声出力モードとして、「主 ·副」が指定されているときに は、オーディオ出力モジュール 221は、オーディオデコーダ制御モジュール 217から のオーディオデータを、そのまま、オーディオ出力端子 121に出力する。
[0668] また、例えば、出力属性が表すオーディオデータのチャネル割り当ての指示が、ス テレオ (Stereo)モードを表している場合、オーディオ出力モジュール 221は、プレイヤ 制御モジュール 212から供給される音声出力モードにかかわらず、オーディオデコー ダ制御モジュール 217からのオーディオデータを、そのまま、オーディオ出力端子 12 1に出力する。
[0669] ここで、図 42下側にお!、て、 OxBDとなって!/、る streamjdおよび 0x00となって!/、る pri vate_stream_idで特定されるオーディオストリーム stream#2につ 、て記述されて 、る 3 セットの pts— change— pointおよび DynamicInfoOによれば、オーディオストリーム stream# 2の再生開始時である時刻 90,000から、時刻 27,090,000の直前までは、オーディオス トリーム stream#2から、デュアルのオーディオデータが得られる。また、時刻 27,090,00 0から、時刻 32,490,000の直前までは、オーディオストリーム stream#2から、ステレオの オーディオデータが得られ、時刻 32,490,000以後は、オーディオストリーム stream#2 から、デュアルのオーディオデータが得られる。
[0670] 従って、例えば、音声出力モードとして、「主音声」が指定されているとすると、ォー ディォ出力出力モジュール 221では、時刻 90,000から、時刻 27,090,000の直前まで は、オーディオストリーム stream#2から得られるデュアルのオーディオデータのうちの 左チャネルのオーディオデータ力 右チャネルのオーディオデータとしてコピーされ、 その左チャネルと右チャネルのオーディオデータ力 オーディオ出力端子 121に出 力される。
[0671] また、時刻 27,090,000から、時刻 32,490,000の直前までは、オーディオストリーム str eam#2から得られるステレオのオーディオデータ力 そのまま、オーディオ出力端子 1 21に出力される。
[0672] そして、時刻 32,490,000以後は、オーディオストリーム stream#2から得られるデュア ルのオーディオデータのうちの左チャネルのオーディオデータが、右チャネルのォー ディォデータとしてコピーされ、その左チャネルと右チャネルのオーディオデータが、 オーディオ出力端子 121に出力される。
[0673] 以上のように、出力属性の制御処理では、クリップストリームファイルに多重化され て 、るエレメンタリストリームごとに、そのエレメンタリストリームの再生時刻を表す pts_c hange_pointと、そのエレメンタリストリームの出力属性を含む DynamicInfoOとのセットを 0セット以上含むクリップ情報ファイル ClipO (図 10)の記述に基づき、再生中のエレメ ンタリストリームの再生時刻力 pts_change_pointに一致するか否かが判定される。そ して、再生中のエレメンタリストリームの再生時刻力 pts_change_pointに一致する場 合、その pts_change_pointとセットになっている DynamicInfoOが認識され、その認識さ れた DynamicInfoOに含まれる出力属性にしたがって、再生中のエレメンタリストリーム の出力が制御される。従って、エレメンタリストリームの再生時刻と出力属性に応じて 、そのエレメンタリストリームの出力を制御することが可能となる。
[0674] [字幕表示制御処理]
次に、図 43のフローチャートを参照して、字幕ストリームに対応する字幕データの 表示を制御する字幕表示制御処理につ!、て説明する。
[0675] PlayListO (図 5) (の PlayltemO)の再生が開始されると、プレイヤ制御モジュール 21 2は、ステップ S341において、グラフィクス処理モジュール 219に対する字幕データ の表示方式の指示を初期化する。即ち、プレイヤ制御モジュール 212は、字幕デー タの表示方式をデフォルトの表示方式とするように、グラフィクス処理モジュール 219 を制御する。なお、ステップ S341で行われる表示方式の指示の初期化は、図 30の 1 27で説明した表示方式の指示の初期化に対応する。
[0676] ステップ S341の処理後は、ステップ S342に進み、プレイヤ制御モジュール 212は 、ユーザがリモコンを操作することにより入力インターフェース 115から、字幕データ の表示について、新たな表示方式の指示があった力どうかを判定する。
[0677] ステップ S342にお 、て、新たな表示方式の指示があつたと判定された場合、ステツ プ S343に進み、プレイヤ制御モジュール 212は、字幕ストリーム(に対応する字幕デ ータ)を、現在再生しているかどうかを判定する。
[0678] ステップ S343において、字幕ストリームが再生されていないと判定された場合、ス テツプ S342に戻る。
[0679] また、ステップ S343において、字幕ストリームが再生されていると判定された場合、 ステップ S345に進み、プレイヤ制御モジュール 212は、新たな表示方式の指示が、 デフォルトの表示方式の指示であるかどうかを判定する。ステップ S343において、新 たな表示方式の指示が、デフォルトの表示方式の指示であると判定された場合、ステ ップ S341に戻り、上述したように、プレイヤ制御モジュール 212は、字幕データの表 示方式をデフォルトの表示方式とするように、グラフィクス処理モジュール 219を制御 する。
[0680] 一方、ステップ S345において、新たな表示方式の指示が、デフォルトの表示方式 の指示でないと判定された場合、即ち、新たな表示方式の指示が、例えば、字幕デ ータを拡大や縮小して表示する、あるいは明るさを変えて見やすくする等、デフォルト でない表示方式の指示である場合、ステップ S346に進み、プレイヤ制御モジュール 212は、現在再生している字幕ストリームが多重化されたクリップストリームファイルに 対応するクリップ情報ファイル ClipO (図 10)の StaticInfoO (図 12)のうちの、現在再生 している字幕ストリームについての StaticInfoOを取得し、ステップ S347に進む。
[0681] ステップ S347では、プレイヤ制御モジュール 212は、ステップ S346で取得した Sta tidnfoOの configurable_flagを判定する。
[0682] ステップ S347において、 configurable_flagが、字幕データの表示方式の変更を許可 しない旨の 0になっていると判定された場合、ステップ S348に進み、プレイヤ制御モ ジュール 212は、グラフィクス処理モジュール 219を制御することにより、出力ビデオ データに、字幕データの表示方式を変更することができない旨のエラーメッセージを オーバーレイさせ、ステップ S342〖こ戻る。これ〖こより、エラーメッセージが表示される
[0683] 一方、ステップ S347にお!/、て、 configurablejlag力 字幕データの表示方式の変更 を許可する旨の 1になっていると判定された場合、ステップ S349に進み、プレイヤ制 御モジュール 212は、ユーザがリモコンを操作することにより入力インターフェース 11 5から供給された新たな表示方式の指示を、グラフィクス処理モジュール 219に供給 して、ステップ S350に進む。
[0684] ステップ S350では、グラフィクス処理モジュール 219は、字幕デコーダ制御モジュ ール 218から供給される字幕データを、直前のステップ S349でプレイヤ制御モジュ ール 212から供給された表示方式の指示にしたがって拡大または縮小等あるいは明 るさを変える等の処理を開始し、ステップ S342に戻る。これにより、字幕データは、ュ 一ザがリモコンを操作することによって指示した表示方式にしたがった表示サイズや
、表示位置、表示色等で表示される。 [0685] 一方、ステップ S342にお 、て、新たな表示方式の指示がなかったと判定された場 合、ステップ S351に進み、プレイヤ制御モジュール 212は、図 31で説明した Playlte m0の乗り換えが行われたかどうかを判定し、行われていないと判定した場合、ステツ プ S342に戻る。
[0686] また、ステップ S351にお!/、て、 PlayltemOの乗り換えが行われたと判定された場合、 ステップ S341に戻り、上述したように、プレイヤ制御モジュール 212は、字幕データ の表示方式をデフォルトの表示方式とするように、グラフィクス処理モジュール 219を 制御する。即ち、この場合、 PlayltemOの乗り換えが行われたときには、字幕データの 表示方式は、デフォルトの表示方式に戻される。
[0687] 以上のように、字幕表示制御処理にお!、ては、字幕ストリームの configurable _flagが 、表示方式の変更を許可する旨の 1になっている場合にのみ、その字幕ストリームに 対応する字幕データの表示方式が、例えば、ユーザがリモコンを操作することにより 入力される表示方式の指示に応じて変更される。
[0688] 従って、例えば、図 26に示したクリップ情報ファイル" 00001.CLP"によれば、対応す るクリップストリームファイル" 00001.PS"に多重化されている 4本のエレメンタリストリー ムのうちの 3本目のエレメンタリストリームである字幕ストリーム stream#2についての con figurable_flagは、表示方式の変更を許可しない旨の 0になっているので、その字幕スト リーム streamsが表示されているときに、ユーザが字幕の表示を変更するようにリモコ ンを操作しても、その表示は変更されない。
[0689] 一方、例えば、クリップストリームファイル" 00001.PS"に多重化されている 4本のエレ メンタリストリームのうちの 4本目のエレメンタリストリームである字幕ストリーム stream#3 につ 、ての configurable _flagは、表示方式の変更を許可する旨の 1になって!/、るので 、その字幕ストリーム stream#3が表示されているときに、ユーザが字幕の表示を変更 するようにリモコンを操作すると、その操作に応じて、字幕の表示サイズ等が変更され る。
[0690] 即ち、例えば、いま、図 25の 1番目の PlayList#0の 1番目の PlayItem#0にした力^、、 クリップストリームファイル" 00001.PS"が再生されているとする。また、図 26でクリップ 情報ファイル" 00001.CLP"について説明したように、クリップストリームファイル" 00001. PS"に多重化されて!/、る 4本のエレメンタリストリームのうちの、 3本目と 4本目が字幕ス トリームであるが、その 3本目の字幕ストリーム stream#2と、 4本目の字幕ストリーム stre am#3のうちの、例えば、 3本目の字幕ストリーム stream#2が、現在再生されているとす る。
[0691] ユーザが、リモコンを操作することにより、字幕の表示方式の指示を入力すると (ス テツプ S342)、その表示方式の指示は、入力インターフェース 115 (図 1)力もプレイ ャ制御モジュール 212に供給される。プレイヤ制御モジュール 212は、表示方式の 指示が供給されると、再生中の字幕ストリームに対応する StatidnfoO (図 10)を、クリツ プ情報ファイル力も探し出す (ステップ S346)。
[0692] 即ち、いまの場合、再生中の字幕ストリームは、クリップストリームファイル" 00001.PS "に多重化されている 3本目の字幕ストリーム stream#2であり、プレイヤ制御モジユー ル 212は、対応するクリップ情報ファイル" 00001. CLP"から、 3本目の字幕ストリーム st ream#2につ!/、ての StatidnfoOを探し出す。
[0693] さらに、プレイヤ制御モジュール 212は、図 26において 3本目の字幕ストリーム strea m#2につ!/、ての StatidnfoOに記述されて 、る、 0になって!/、る configurable_flagを判定 し (ステップ S347)、これにより、 3本目の字幕ストリーム stream#2については、表示方 式の変更が許可されて 、な 、ことを認識する。
[0694] この場合、プレイヤ制御モジュール 212は、再生中の字幕ストリーム(に対応する字 幕データ)が拡大縮小等に対応していないと判断し、グラフィクス処理モジュール 21 9を制御することにより、その旨のエラーメッセージを生成させ (ステップ S348)、ビデ ォデータにオーバーレイして出力させる。
[0695] 一方、クリップストリームファイル" 00001.PS"に多重化されている 4本のエレメンタリス トリームの 3本目の字幕ストリーム stream#2と、 4本目の字幕ストリーム stream#3のうち の、 3本目の字幕ストリーム stream#2ではなぐ 4本目の字幕ストリーム stream#3力 現 在再生されて 、る場合には、ユーザがリモコンを操作することによって表示方式の指 示の供給を受けたプレイヤ制御モジュール 212は、対応するクリップ情報ファイル" 00 001.CLP"から、 4本目の字幕ストリーム stream#3についての StatidnfoOを探し出す。
[0696] さらに、プレイヤ制御モジュール 212は、図 26において 4本目の字幕ストリーム strea m#3につ!/、ての StaticInfoOに記述されて 、る、 1になって 、る configurable_flagを判定 し (ステップ S347)、これにより、 4本目の字幕ストリーム stream#3については、表示方 式の変更が許可されて 、ることを認識する。
[0697] この場合、プレイヤ制御モジュール 212は、再生中の字幕ストリーム(に対応する字 幕データ)が拡大縮小等に対応していると判断し、ユーザがリモコンを操作することに よって供給された表示方式の指示を、グラフィクス処理モジュール 219に供給する (ス テツプ S349)。
[0698] これにより、その後、グラフィックス処理制御モジュール 219は、プレイヤ制御モジュ ール 212からの表示方式の指示にした力^、、字幕デコーダ制御モジュール 218から の字幕データを拡大または縮小等し、ビデオデコーダ制御モジュール 216からのビ デォデータにオーバーレイして出力する。
[0699] なお、プレイヤ制御モジュール 212は、 PlayListOの最初の PlayltemOの再生開始時 に、グラフィクス処理モジュール 219に対する字幕データの表示方式の指示を初期 化する(ステップ S341)。即ち、プレイヤ制御モジュール 212は、字幕データの表示 方式をデフォルトの表示方式とするように、グラフィクス処理モジュール 219を制御す る。
[0700] さらに、プレイヤ制御モジュール 212は、 PlayltemOの乗り換え時にも、グラフィクス 処理モジュール 219に対する字幕データの表示方式の指示を初期化する (ステップ S341, S351)。
[0701] 但し、 PlayltemOの乗り換え時においては、その後に新たに再生される PlayltemOに したがって再生される新たな字幕ストリームにつ 、ての configurable_flagを調査し、 con figurable_flagが 0である場合には、グラフィクス処理モジュール 219に対する字幕デー タの表示方式の指示を初期化し、 configurable_flagが 1である場合には、グラフィクス 処理モジュール 219に対する表示方式の指示を、 PlayltemOの乗り換え前のまま維持 するようにすることが可能である。
[0702] また、図 43の字幕表示制御処理では、ユーザがリモコンを操作することにより、新た な表示方式の指示が入力された場合に、その新たな表示方式の指示を、グラフィクス 処理モジュール 219に供給するようにしたが(ステップ S349)、表示方式の指示は、 例えば、メモリ 113 (図 1)を構成する不揮発性メモリに記憶し、その不揮発性メモリ〖こ 記憶された表示方式の指示を、グラフィクス処理モジュール 219に供給するようにす ることが可能である。
[0703] 即ち、例えば、図 1のディスク装置の初期設定として、不揮発性メモリに、ユーザ設 定の表示方式の指示を記憶させておき、ユーザがリモコンを操作することにより、新 たな表示方式の指示が入力された場合には、不揮発性メモリに記憶された表示方式 の指示を、新たな表示方式の指示に更新する一方、その不揮発性メモリに記憶され た表示方式の指示を、グラフィクス処理モジュール 219に供給するようにすることが可 能である。この場合、不揮発性メモリには、前回の再生終了時における表示方式の 指示が保持されるので、次回の PlayListOの再生時に、ユーザがリモコンを操作するこ とにより、前回の再生終了時における表示方式の指示を入力しなくても、その表示方 式で、字幕データの表示が開始される。
[0704] なお、この場合、不揮発性メモリに記憶させる表示方式の指示には、例えば、字幕 データを拡大または縮小するときの拡大率または縮小率等が含まれるものとする。
[0705] 以上のように、字幕表示制御処理によれば、クリップ情報ファイル ClipO (図 10)に含 まれる、エレメンタリストリームごとの、そのエレメンタリストリームの再生中に変化しな Vヽ StaticInfoOのうちの、字幕データの StaticInfoOが取得され、その StaticInfoOに含ま れる、字幕データの表示をデフォルトの表示方式から変更することを許可するか否か を表す configurable_flagに基づき、再生中の字幕データの表示をデフォルトの表示方 式力も変更することが許可されているか否かが判定される。そして、再生中の字幕デ ータの表示をデフォルトの表示方式力も変更することが許可されて 、る場合には、字 幕データの表示方式の変更の指示にしたがって、その字幕データの表示処理、即ち 、例えば、字幕データを拡大または縮小、あるいは表示色を変更する等して表示する 処理が行われる。従って、字幕データの表示方式の変更を制御することができる。
[0706] [キヤプチヤ制御処理]
次に、図 44のフローチャートを参照して、ビデオストリームに対応するビデオデータ のキヤプチャを制御するキヤプチャ制御処理について説明する。なお、図 44には、キ ャプチヤ制御処理を説明するフローチャートとともに、そのキヤプチャ制御処理によつ てキヤプチヤされたビデオデータを 2次利用する処理の例であるバックグラウンド Zス クリーンセーバ処理を説明するフローチャートも、図示してある。
[0707] キヤプチャ制御処理は、例えば、ユーザがリモコンを操作することにより、ビデオデ ータのキヤプチャを指示するキヤプチャ指示力 入力インターフェース 115 (図 1)を 介して、プレイヤ制御モジュール 212に供給されると開始される。
[0708] 即ち、キヤプチャ制御処理では、まず最初に、ステップ S371において、プレイヤ制 御モジュール 212が、ビデオストリームを再生中であるかどうかを判定し、再生中でな V、と判定した場合、キヤプチャ制御処理は終了する。
[0709] 一方、ステップ S371において、ビデオストリームを再生中であると判定された場合、 ステップ S372に進み、プレイヤ制御モジュール 212は、再生中のビデオストリームに 対応する PlayListO (図 5)から、 capture_enable_flag_PlayListを取得するとともに、再生 中のビデオストリームに対応するクリップ情報ファイル ClipO (図 10)から、 capture.ena ble_flag_Clipを取得する。
[0710] ここで、 PlayListOにおける capture_enable_flag_PlayListは、図 5で説明したように、そ の PlayListOによって再生されるビデオストリームに対応するビデオデータ(PlayListO に属するビデオデータ)の 2次利用を許可するか否かを表す。また、クリップ情報ファ ィル ClipOにおける capture_enable _flag_Clipは、図 10で説明したように、そのクリップ情 報ファイル ClipOに対応するクリップストリームファイルに格納されているビデオストリー ムに対応するビデオデータの 2次利用を許可する力否かを表す。
[0711] ステップ S372の処理後は、ステップ S373に進み、プレイヤ制御モジュール 212は 、直前のステップ S373で取得された capture_enable_flag_PlayListと capture_enable_fla g_Clipとに基づき、キヤプチャ指示が入力インターフェース 115 (図 1)力も入力された ときに再生されていたビデオデータのピクチャのキヤプチヤの可否を判定する。
[0712] ステップ S373において、キヤプチャ指示が入力インターフェース 115から入力され たときに再生されていたビデオデータのピクチャのキヤプチヤが不可であると判定さ れた場合、即ち、直前のステップ S373で取得された capture_enable_flag_PlayListまた は capture_enable_flag_Clipのうちの少なくとも一方力 ビデオデータの 2次利用を許可 しない旨の 0になっている場合、ステップ S374に進み、プレイヤ制御モジュール 212 は、グラフィクス処理モジュール 219を制御することにより、ビデオデータのキヤプチャ が不可である旨のエラーメッセージをオーバーレイさせ、キヤプチャ制御処理を終了 する。これにより、エラーメッセージが表示される。
[0713] 一方、ステップ S373において、キヤプチャ指示が入力インターフェース 115から入 力されたときに再生されていたビデオデータのピクチャのキヤプチヤが可能であると 判定された場合、即ち、直前のステップ S373で取得された capture_enable_flag_PlayL istおよび capture_enable_flag_Clipの両方力 ビデオデータの 2次利用を許可する旨の 1になっている場合、ステップ S375に進み、プレイヤ制御モジュール 212は、キヤプ チヤ指示が入力インターフェース 115から入力されたときに再生されていたビデオデ 一タのピクチャのキヤプチヤの指示を、グラフィクス処理モジュール 219に供給し、ス テツプ S376に進む。
[0714] ステップ S376では、グラフィクス処理モジュール 219は、プレイヤ制御モジュール 2 12からのキヤプチヤの指示にした力^、、ビデオデコーダ制御モジュール 216からのビ デォデータのピクチャをキヤプチヤし、メモリ 113 (図 1)に記憶させて、キヤプチャ制 御処理を終了する。なお、 capture_enable_flagが複数ビット構成になっており、使用条 件の制約が行われて 、る場合にはこの時点で対応が行われる。すなわちキヤプチャ した画像の大きさに制限がある場合には、この時点で縮小した画像がキヤプチヤされ る。
また使用するアプリケーションに制約がある場合にはその旨を知らせるフラグが同時 に記録される。
[0715] 以上のように、キヤプチャ制御処理では、ユーザからのキヤプチャ指示があつたとき に再生されて ヽるビデオストリームに対応する PlayListO (図 5)とクリップ情報ファイル ClipO (図 10)それぞれの capture— enable—flag— PlayListと capture— enable—flag— Clipとの餘 理積をとつて、その論理積が 1である場合、即ち、 capture_enable_flag_PlayListと captur e_enable_flag_Clip力 いずれも、 2次利用を許可する 1になっている場合にのみ、ビデ ォデータの 2次利用が可能であると判断され、キヤプチヤが行われる。
[0716] 従って、例えば、図 25における 1番目の PlayList#0の 1番目の PlayItem#0にしたがつ て、ビデオストリームの再生、即ち、クリップストリームファイル" 00001.PS"に多重化さ れたビデオストリームの再生が行われている場合に、ユーザ力 のキヤプチャ指示が あったときには、 1番目の PlayList#0における capture_enable_flag_PlayListは 1であり、 その 1番目の PlayItem#0によって再生されるクリップストリームファイル" 00001.PS"に 対応する図 26のクリップ情報ファイル" 00001.CLP"における capture_enable_flag_Clip は 1であるから、再生中のビデオデータ(クリップストリームファイル" 00001.PS"に多重 化されたビデオストリームに対応するビデオデータ)の 2次利用は可能であると判断さ れ、キヤプチヤが行われる。
[0717] また、例えば、図 25における 1番目の PlayList#0の 2番目の Playltem#lにしたがって 、ビデオストリームの再生、即ち、クリップストリームファイル" 00002.PS"に多重化され たビデオストリームの再生が行われて 、る場合に、ユーザ力ものキヤプチャ指示があ つたときには、 1番目の PlayList#0における capture_enable_flag_PlayListは 1であり、そ の 2番目の Playltem#lによって再生されるクリップストリームファイル" 00002.PS"に対 応する図 26のクリップ情報ファイル" 00002.CLP"における capture_enable_flag_Clipは 0 であるから、再生中のビデオデータ(クリップストリームファイル" 00002.PS"に多重化さ れたビデオストリームに対応するビデオデータ)の 2次利用は不可であると判断され、 キヤプチヤが行われな 、。
[0718] さらに、例えば、図 25における 2番目の PlayList#lの PlayItem#0にしたがって、ビデ ォストリームの再生、即ち、クリップストリームファイル" 00003.PS"に多重化されたビデ ォストリームの再生が行われて 、る場合に、ユーザ力ものキヤプチャ指示があつたとき には、 2番目の PlayList#lにおける capture_enable_flag_PlayListは 0であり、 2番目の Pla yList#lの PlayItem#0によって再生されるクリップストリームファイル" 00003.PS"に対応 する図 26のクリップ情報ファイル" 00003.CLP"における capture_enable_flag_Clipは 1で ある力 、再生中のビデオデータ(クリップストリームファイル" 00003.PS"に多重化され たビデオストリームに対応するビデオデータ)の 2次利用は不可であると判断され、キ ャプチヤは行われない。
[0719] なお、この場合、 2番目の PlayList#lにおける capture_enable _flag_PlayListが 0である ことが確認された時点で、ビデオデータの 2次利用は不可であると判断することがで きるので、 2番目の PlayList#lの PlayItem#0によって再生されるクリップストリームフアイ ル" 00003.PS"に対応する図 26のクリップ情報ファイル" 00003.CLP"における capture_ enable_flag_Clipの確認は省略することができる。
[0720] キヤプチャ制御処理によってキヤプチヤされ、メモリ 113に記憶されたピクチャは、バ ックグラウンド Zスクリーンセーバ処理において 2次利用することができる。
[0721] バックグラウンド Zスクリーンセーバ処理は、例えば、プレイヤ制御モジュール 212 が動作している力 エレメンタリストリームの再生が行われていない状態、即ち、デイス クドライブ 102 (図 1)にディスク 101が挿入されていない状態、あるいはエレメンタリス トリームの再生が終了した状態となったときなどに行われる。
[0722] 即ち、バックグラウンド Zスクリーンセーバ処理では、ステップ S381において、プレ ィャ制御モジュール 212は、キヤプチャ制御処理によってメモリ 113に記憶されたピク チヤを表示するように、グラフィクス処理モジュール 219を制御する。グラフィクス処理 モジュール 219は、プレイヤ制御モジュール 212からの制御にした力^、、キヤプチャ 制御処理によってメモリ 113に記憶されたピクチャを表示させる。
[0723] ここで、グラフィクス処理モジュール 219にお!/、て、メモリ 113に記憶されたピクチャ を静止画で表示させれば、いわゆる壁紙 (バックグラウンド)が実現され、一定周期で 拡大や縮小、移動等しながら表示させれば、スクリーンセーバーが実現される。また、 キヤプチャ制御処理によってメモリ 113に記憶されたピクチャの表示を行うバックダラ ゥンド Zスクリーンセーバ処理は、プレイヤ制御モジュール 212ではなぐ他の独立し たアプリケーションによって行うことが可能である。
[0724] また、このときメモリ 113に記憶されたピクチャに使用制限を表すフラグが付加され ている場合にはその制限に従う。
[0725] 以上のように、ビデオアクセスユニット単位より大きな単位の、例えば、 PlayListOや P layltemOに対応するビデオデータの 2次利用を許可するか否かを表す、再生中のビ テオテータに对する capture— enable—flag— PlayListや capture— enable— flag— Clip力 S取得 れ、その capture— enable—flag— PlayListや capture— enable—flag— Clipに基づき、再生中のビ デォデータの 2次利用が許可されている力否かが判定される。そして、再生中のビデ ォデータの 2次利用が許可されていると判定された場合、再生中のビデオデータが キヤプチヤされ、そのキヤプチャされたビデオデータを利用したバックグラウンド Zスク リーンセーバ処理が実行される。従って、ビデオデータの 2次利用の制御が可能とな る。
[0726] なお、図 44のキヤプチャ制御処理では、 PlayListO (図 5)にお!/、て、 capture_enable— flag_PlayListを設けるとともに、 PlayltemOによって再生されるクリップストリームファイル に対応するクリップ情報ファイル ClipO (図 10)において、 capture_enable_flag_Clipを設 け、その capture— enable— flag— PlayListと capture— enable— flag— Clipとの両方を用 ヽて、 2 次利用の許可(可否)を判定するようにした力 PlayListO (図 5)において、 capture_en able_flag_PlayListを設けるだけ力、または、 PlayltemOによって再生されるクリップストリ ームファイルに対応するクリップ情報ファイル ClipO (図 10)において、 capture_enable_f lag—し lipを設ける 7こけにし飞、 capture— enable— flag— PlayListま 7こは capture— enable—flag—し lipの一方だけを用いて、 2次利用の可否を判定するようにすることも可能である。
[0727] また、図 44のキヤプチャ制御処理では、ステップ S376において、グラフィクス処理 モジュール 219力 プレイヤ制御モジュール 212からのキヤプチヤの指示にした力 Sい 、ビデオデコーダ制御モジュール 216からのビデオデータのピクチャ、即ち、 1つのピ クチャだけをキヤプチヤするようにした力 その他、複数のピクチャをキヤプチヤするこ とも可能である。つまり、ビデオデコーダ制御モジュール 216が出力する時系列の複 数のピクチャ(動画としての複数のピクチャのシーケンス)をキヤプチヤすることが可能 である。この場合、一度にキヤプチャされるピクチャの枚数は、例えば、あらかじめ決 めてお \こと力できる。め ヽは、 capture— enable— flag— PlayListA capture— enable— flag— C1 ipのビットを拡張して、その capture— enable— flag— PlayListや capture— enable— flag— Clipに、 一度にキヤプチャ可能なピクチヤの枚数の情報を含めるようにしても良い。
[0728] さらに、上述の場合には、ビデオデータの 2次利用を許可する力否かの利用許可情 報、 capture— enable— flag— PlayList, capture— enable— flag— Clipノ 、 PlayListOや、クリップ†青 報ファイル ClipOに記述し、その利用許可情報によって、 PlayListOによって再生され るビデオデータ全体や、クリップ情報ファイル ClipOに対応するクリップストリームフアイ ルに多重化されたビデオストリームに対応するビデオデータ全体についての 2次利用 の可否を判定するようにした力 利用許可情報は、その他の任意の単位のビデオデ ータについて記述し、その利用許可情報によって、任意の単位のビデデータについ ての 2次利用の可否を判定することが可能である。
[0729] 即ち、図 45は、利用許可情報が配置された private_stream2_PES_payloadOのシンタ タスを示しており、図 46は、利用許可情報が配置された aujnformationOのシンタクス を示している。
[0730] なお、図 45の private_stream2_PES_payloadOは、 video_stream_idの直前に、利用許 可情報としての capture_enable_flag_ps2が配置されて!、る他は、図 23における場合と 同様に構成されている。図 46の aujnformationOも、 pic_struct_copyの直前に、利用許 可情報としての capture_enable _flag_AUが配置されて!、る他は、図 24における場合と 同様に構成されている。
[0731] 図 45の private_stream2_PES_payloadOに配置された capture_enable_flag_ps2は、その private— stream2— PES— payloadO .む private— stream— 2の PE¾— packetO力ら、次の pnva te_stream_2の PES_packet0の直前までに配置されるビデオストリームに対応するビデ ォデータの 2次利用を許可するか否かを表す。従って、図 45の private_stream2_PES_ payloadOに配置された capture_enable_flag_ps2によれば、あるデコード開始可能点力 ら次のデコード開始可能点までの間のビデオデータにっ 、て、その 2次利用を許可 する力否かを判定することができる。
[0732] また、図 46の aujnformationOに配置された capture_enable_flag_AUは、その capture_ enable_flag_AUに対応するビデオアクセスユニットのビデオデータの 2次利用を許可 するか否かを表す。従って、図 46の aujnformationOに配置された capture_enable_flag_ AUによれば、ビデオアクセスユニット単位のビデオデータについて、即ち、ピクチャ 単位で、その 2次利用を許可するカゝ否かを判定することができる。
[0733] ここで、 PlayListO (図 5)における利用許可情報としての capture_enable_flag_PlayList 、クリップ情報ファイル ClipO (図 10)における利用許可情報としての capture_enable_fla g_Clip、 private_stream2_PES_payloadO (図 45)における利用許可情報としての capture _enable_flag_ps2, aujnformationO (図 46)における禾 lj用許可情報としての capture_ena ble_flag_AUは、そのうちの 2以上を重複して採用することが可能であり、この場合、あ るビデオデータのピクチャの 2次利用の可否は、その重複して採用される 2以上の利 用許可情報の論理積等に基づいて判定することができる。 [0734] また、図 46の aujnformationOが配置される図 23または図 45の private_stream2_PES _payload0を含む private_stream_2の PES_packetOは、図 36のステップ S211で説明し たように、バッファ制御モジュール 215 (図 3)のビデオ読み出し機能部 233が、バッフ ァ 215Aに記憶されたプログラムストリーム中力も探索する。従って、 capture_enable_fl ag— ps2が配置された図 45の private— stream2— PES— payloadOや、 capture— enable—flag—AU が配置された図 46の aujnformationOを採用する場合には、プレイヤ制御モジュール 212は、ビデオデータの 2次利用の可否を判定するにあたって、 capture_enable_flag_ ps2や capture_enable_flag_AUを、ビデオ読み出し機能部 233に問 、合わせる必要が ある。
[0735] なお、本実施の形態では、上述した一連の処理を、ソフトウェアによって行うこととし た力 上述した一連の処理は、専用のハードウェアにより行うこともできる。
[0736] また、本実施の形態では、ビデオデコーダ 116 (図 1)として、ハードウェアデコーダ を採用することとした力 ビデオデコーダ 116としては、ソフトウェアデコーダを採用す ることも可能である。オーディオデコーダ 117(図 1)についても、同様である。
[0737] さらに、本実施の形態では、字幕デコーダとして、ソフトウェアデコーダを採用するこ ととしたが、字幕デコーダとしては、ハードウェアデコーダを採用することも可能である

Claims

請求の範囲
[1] データ記録媒体に記録されて 、る記録データを処理するデータ処理装置にぉ 、て 前記記録データは、
1以上のデータが多重化された多重化データと、
前記多重化データに関するメタデータと
を含み、
前記メタデータは、
所定の規格においてデータの属性ごとに規定されている、データを識別するため の第 1の識別情報と、
前記所定の規格にぉ 、て規定されて 、な 、属性のデータを識別するための第 2 の識別情報と
のセットを、前記多重化データに多重化されて 、るデータの数だけ含み、 前記メタデータを読み出す読み出し手段と、
前記メタデータに含まれる前記第 1と第 2の識別情報に基づき、前記多重化データ に多重化されて!/、るデータを特定する特定手段と、
前記特定手段において特定されたデータを処理する処理手段と
を備えることを特徴とするデータ処理装置。
[2] データ記録媒体に記録されて!、る記録データを処理するデータ処理方法にぉ 、て 前記記録データは、
1以上のデータが多重化された多重化データと、
前記多重化データに関するメタデータと
を含み、
前記メタデータは、
所定の規格においてデータの属性ごとに規定されている、データを識別するため の第 1の識別情報と、
前記所定の規格にぉ 、て規定されて 、な 、属性のデータを識別するための第 2 の識別情報と
のセットを、前記多重化データに多重化されて 、るデータの数だけ含み、 前記メタデータを読み出す読み出しステップと、
前記メタデータに含まれる前記第 1と第 2の識別情報に基づき、前記多重化データ に多重化されているデータを特定する特定ステップと、
前記特定ステップにおいて特定されたデータを処理する処理ステップと を含むことを特徴とするデータ処理方法。
[3] データ記録媒体に記録されている記録データを処理するデータ処理を、コンビユー タに行わせるプログラムにお 、て、
前記記録データは、
1以上のデータが多重化された多重化データと、
前記多重化データに関するメタデータと
を含み、
前記メタデータは、
所定の規格においてデータの属性ごとに規定されている、データを識別するため の第 1の識別情報と、
前記所定の規格にぉ 、て規定されて 、な 、属性のデータを識別するための第 2 の識別情報と
のセットを、前記多重化データに多重化されて 、るデータの数だけ含み、 前記メタデータを読み出す読み出しステップと、
前記メタデータに含まれる前記第 1と第 2の識別情報に基づき、前記多重化データ に多重化されているデータを特定する特定ステップと、
前記特定ステップにおいて特定されたデータを処理する処理ステップと を含むことを特徴とするプログラム。
[4] データ記録媒体に記録されている記録データを処理するデータ処理を、コンビユー タに行わせるプログラムが記録されて 、るプログラム記録媒体にぉ ヽて、
前記記録データは、
1以上のデータが多重化された多重化データと、 前記多重化データに関するメタデータと
を含み、
前記メタデータは、
所定の規格においてデータの属性ごとに規定されている、データを識別するため の第 1の識別情報と、
前記所定の規格にぉ 、て規定されて 、な 、属性のデータを識別するための第 2 の識別情報と
のセットを、前記多重化データに多重化されて 、るデータの数だけ含み、 前記メタデータを読み出す読み出しステップと、
前記メタデータに含まれる前記第 1と第 2の識別情報に基づき、前記多重化データ に多重化されているデータを特定する特定ステップと、
前記特定ステップにおいて特定されたデータを処理する処理ステップと を含むことを特徴とするプログラムが記録されているプログラム記録媒体。
[5] 1以上のデータが多重化された多重化データと、
前記多重化データに関するメタデータと
を含む記録データが記録されており、
前記メタデータは、
所定の規格においてデータの属性ごとに規定されている、データを識別するため の第 1の識別情報と、
前記所定の規格にぉ 、て規定されて 、な 、属性のデータを識別するための第 2 の識別情報と
のセットを、前記多重化データに多重化されて 、るデータの数だけ含む ことを特徴とするデータ記録媒体。
[6] 1以上のデータが多重化された多重化データと、前記多重化データに関するメタデ 一タとを含むデータ構造にぉ 、て、
前記メタデータは、所定の規格においてデータの属性ごとに規定されているデータ を識別するための第 1の識別情報と、前記所定の規格において規定されていない属 性のデータを識別するための第 2の識別情報とのセットを、前記多重化データに多重 化されているデータの数だけ含むことを特徴とするデータ構造。
PCT/JP2005/009438 2004-06-11 2005-05-24 データ処理装置およびデータ処理方法、プログラムおよびプログラム記録媒体、データ記録媒体並びにデータ構造 WO2005122170A1 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
EP05743606A EP1755122A4 (en) 2004-06-11 2005-05-24 DATA PROCESSING DEVICE AND METHOD, PROGRAM RECORDING MEDIUM PROGRAM, DATA RECORDING MEDIUM, AND DATA STRUCTURE
KR1020067025761A KR101104507B1 (ko) 2004-06-11 2005-05-24 데이터 처리 장치 및 데이터 처리 방법, 프로그램 기록 매체, 데이터 기록 매체
US11/570,082 US8154964B2 (en) 2004-06-11 2005-05-24 Data processing device, data processing method, program, program recording medium, data recording medium, and data structure
CN2005800190363A CN1965365B (zh) 2004-06-11 2005-05-24 数据处理设备和数据处理方法

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2004-174550 2004-06-11
JP2004174550A JP4524582B2 (ja) 2004-06-11 2004-06-11 データ処理装置およびデータ処理方法、プログラムおよびプログラム記録媒体、並びにデータ記録媒体

Publications (1)

Publication Number Publication Date
WO2005122170A1 true WO2005122170A1 (ja) 2005-12-22

Family

ID=35503329

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2005/009438 WO2005122170A1 (ja) 2004-06-11 2005-05-24 データ処理装置およびデータ処理方法、プログラムおよびプログラム記録媒体、データ記録媒体並びにデータ構造

Country Status (7)

Country Link
US (1) US8154964B2 (ja)
EP (1) EP1755122A4 (ja)
JP (1) JP4524582B2 (ja)
KR (1) KR101104507B1 (ja)
CN (1) CN1965365B (ja)
TW (1) TWI263978B (ja)
WO (1) WO2005122170A1 (ja)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7587507B2 (en) * 2005-07-22 2009-09-08 Microsoft Corporation Media recording functions in a streaming media server
US20080120648A1 (en) * 2006-11-21 2008-05-22 Carlson Michael P System and method to change stations and start programming at beginning of segments
US20080279535A1 (en) * 2007-05-10 2008-11-13 Microsoft Corporation Subtitle data customization and exposure
US8428437B2 (en) * 2008-02-14 2013-04-23 Panasonic Corporation Reproduction device, integrated circuit, reproduction method, program, and computer-readable recording medium
US8804860B2 (en) * 2008-05-27 2014-08-12 Nec Corporation Cognitive radio system, cognitive radio apparatus, and radio signal detection method
JP5130313B2 (ja) * 2010-04-02 2013-01-30 株式会社日立製作所 管理システム及び計算機システムの管理方法
WO2011156516A2 (en) * 2010-06-08 2011-12-15 Gibby Media Group Inc. Systems and methods for real-time and on-demand multimedia streaming
JP5728649B2 (ja) * 2010-08-06 2015-06-03 パナソニックIpマネジメント株式会社 再生装置、集積回路、再生方法、プログラム
US11044386B1 (en) * 2014-12-18 2021-06-22 The Directv Group, Inc. Method and system for synchronizing playback of independent audio and video streams through a network
US10803083B2 (en) * 2015-08-27 2020-10-13 Infosys Limited System and method of generating platform-agnostic abstract syntax tree
CN106210750B (zh) * 2016-06-27 2019-04-23 杭州当虹科技有限公司 一种Bluray-DVD视频正片内容提取系统
CN106682124A (zh) * 2016-12-09 2017-05-17 百度在线网络技术(北京)有限公司 一种图片识别方法、装置和设备
CN107886527A (zh) * 2017-11-21 2018-04-06 桂林爱家购股份有限公司 一种图像处理系统和方法
CN108174242A (zh) * 2018-01-09 2018-06-15 武汉斗鱼网络科技有限公司 直播数据复用方法、装置、存储介质及设备
CN108521570A (zh) * 2018-03-16 2018-09-11 网宿科技股份有限公司 一种视频播放器的监控系统
JPWO2020166612A1 (ja) * 2019-02-12 2021-12-16 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカPanasonic Intellectual Property Corporation of America 三次元データ多重化方法、三次元データ逆多重化方法、三次元データ多重化装置、及び三次元データ逆多重化装置
US11790092B1 (en) * 2020-05-26 2023-10-17 Amazon Technologies, Inc. Cryptoprocessor access management

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003168266A (ja) * 2001-11-30 2003-06-13 Sony Corp 情報記録装置および方法、情報再生装置および方法、情報記録媒体、プログラム格納媒体、並びにプログラム
JP2003317439A (ja) * 2002-04-24 2003-11-07 Pioneer Electronic Corp 情報記録媒体、情報記録装置及び方法、情報再生装置及び方法、情報記録再生装置及び方法、記録又は再生制御用のコンピュータプログラム、並びに制御信号を含むデータ構造

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3589241B2 (ja) * 1992-09-22 2004-11-17 ソニー株式会社 データ符号化装置および方法、データ復号化装置および方法
JP2000041221A (ja) * 1998-07-23 2000-02-08 Sony Corp 画像データ送信装置および方法、画像データ受信装置および方法、提供媒体、並びにデータ記録媒体
JP3436505B2 (ja) * 1999-04-28 2003-08-11 日本ビクター株式会社 デジタル情報信号記録方法、デジタル情報信号記録装置、及びデジタル情報信号記録媒体
WO2001082611A1 (fr) * 2000-04-21 2001-11-01 Sony Corporation Procede et appareil de traitement d'informations, support enregistre, et programme
JP2003006999A (ja) * 2001-04-19 2003-01-10 Sony Corp データ記録媒体、データ記録方法及び装置、並びに、データ伝送方法及び装置
JP2003007035A (ja) * 2001-06-27 2003-01-10 Hitachi Ltd データ記録方法、及びデータ記録再生装置
JP3862630B2 (ja) * 2001-07-23 2006-12-27 松下電器産業株式会社 情報記録媒体、情報記録媒体に情報を記録する装置及び方法
JP4504601B2 (ja) * 2001-08-24 2010-07-14 財団法人エヌエイチケイエンジニアリングサービス データ受信端末及びデータ受信プログラム
DE10163152A1 (de) * 2001-12-20 2003-07-03 Thomson Brandt Gmbh MPEG-Video-Aufzeichnungsträger und Wiedergabegerät
JP4228767B2 (ja) * 2003-04-25 2009-02-25 ソニー株式会社 再生装置、再生方法、再生プログラムおよび記録媒体
US7421454B2 (en) * 2004-02-27 2008-09-02 Yahoo! Inc. Method and system for managing digital content including streaming media
WO2009146437A1 (en) * 2008-05-31 2009-12-03 Strands, Inc. Adaptive recommender technology

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003168266A (ja) * 2001-11-30 2003-06-13 Sony Corp 情報記録装置および方法、情報再生装置および方法、情報記録媒体、プログラム格納媒体、並びにプログラム
JP2003317439A (ja) * 2002-04-24 2003-11-07 Pioneer Electronic Corp 情報記録媒体、情報記録装置及び方法、情報再生装置及び方法、情報記録再生装置及び方法、記録又は再生制御用のコンピュータプログラム、並びに制御信号を含むデータ構造

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See also references of EP1755122A4 *

Also Published As

Publication number Publication date
KR20070017550A (ko) 2007-02-12
TW200606828A (en) 2006-02-16
JP4524582B2 (ja) 2010-08-18
EP1755122A1 (en) 2007-02-21
JP2005353211A (ja) 2005-12-22
TWI263978B (en) 2006-10-11
US20070223332A1 (en) 2007-09-27
EP1755122A4 (en) 2007-12-26
CN1965365B (zh) 2010-06-02
CN1965365A (zh) 2007-05-16
US8154964B2 (en) 2012-04-10
KR101104507B1 (ko) 2012-01-12

Similar Documents

Publication Publication Date Title
WO2005122170A1 (ja) データ処理装置およびデータ処理方法、プログラムおよびプログラム記録媒体、データ記録媒体並びにデータ構造
US7584511B2 (en) Data processing apparatus, data processing method, program, program recording medium, data recording medium, and data structure
EP1761057A1 (en) Data processing device, data processing method, program, program recording medium, data recording medium, and data structure
JP4575129B2 (ja) データ処理装置およびデータ処理方法、並びにプログラムおよびプログラム記録媒体
WO2005122570A1 (ja) データ処理装置およびデータ処理方法、プログラムおよびプログラム記録媒体、データ記録媒体並びにデータ構造
JP2006164337A (ja) データ処理装置およびデータ処理方法、プログラムおよびプログラム記録媒体、並びにデータ記録媒体
KR101118823B1 (ko) 데이터 처리 장치, 데이터 처리 방법 및 기록 매체
WO2005122168A1 (ja) データ処理装置およびデータ処理方法、プログラムおよびプログラム記録媒体、データ記録媒体並びにデータ構造
JP4536497B2 (ja) データ処理装置およびデータ処理方法、プログラムおよびプログラム記録媒体、並びにデータ記録媒体
AU2005253423B2 (en) Data processing device, data processing method, program, program recording medium, data recording medium, and data structure
KR20070020503A (ko) 데이터 처리 장치 및 데이터 처리 방법, 프로그램 및프로그램 기록 매체, 데이터 기록 매체, 및, 데이터 구조

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BW BY BZ CA CH CN CO CR CU CZ DE DK DM DZ EC EE EG ES FI GB GD GE GH GM HR HU ID IL IN IS KE KG KM KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NA NG NI NO NZ OM PG PH PL PT RO RU SC SD SE SG SK SL SM SY TJ TM TN TR TT TZ UA UG US UZ VC VN YU ZA ZM ZW

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): BW GH GM KE LS MW MZ NA SD SL SZ TZ UG ZM ZW AM AZ BY KG KZ MD RU TJ TM AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IS IT LT LU MC NL PL PT RO SE SI SK TR BF BJ CF CG CI CM GA GN GQ GW ML MR NE SN TD TG

121 Ep: the epo has been informed by wipo that ep was designated in this application
WWE Wipo information: entry into national phase

Ref document number: 5808/DELNP/2006

Country of ref document: IN

WWE Wipo information: entry into national phase

Ref document number: 2005743606

Country of ref document: EP

WWE Wipo information: entry into national phase

Ref document number: 11570082

Country of ref document: US

Ref document number: 2007223332

Country of ref document: US

WWE Wipo information: entry into national phase

Ref document number: 1020067025761

Country of ref document: KR

WWE Wipo information: entry into national phase

Ref document number: 200580019036.3

Country of ref document: CN

NENP Non-entry into the national phase

Ref country code: DE

WWW Wipo information: withdrawn in national office

Ref document number: DE

WWP Wipo information: published in national office

Ref document number: 1020067025761

Country of ref document: KR

WWP Wipo information: published in national office

Ref document number: 2005743606

Country of ref document: EP

WWP Wipo information: published in national office

Ref document number: 11570082

Country of ref document: US