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

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

Info

Publication number
WO2006059482A1
WO2006059482A1 PCT/JP2005/021070 JP2005021070W WO2006059482A1 WO 2006059482 A1 WO2006059482 A1 WO 2006059482A1 JP 2005021070 W JP2005021070 W JP 2005021070W WO 2006059482 A1 WO2006059482 A1 WO 2006059482A1
Authority
WO
WIPO (PCT)
Prior art keywords
stream
time
data
video
control module
Prior art date
Application number
PCT/JP2005/021070
Other languages
English (en)
French (fr)
Other versions
WO2006059482A9 (ja
Inventor
Yasushi Fujinami
Toshiya Hamada
Tatsuya Kakumu
Akihiko Ueda
Koji Ihara
Shusuke Utsumi
Original Assignee
Sony Corporation
Sony Computer Entertainment Inc.
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, Sony Computer Entertainment Inc. filed Critical Sony Corporation
Priority to US11/720,630 priority Critical patent/US8346059B2/en
Priority to CN2005800476816A priority patent/CN101111897B/zh
Priority to CA2588198A priority patent/CA2588198C/en
Priority to EP05803958A priority patent/EP1818931A4/en
Publication of WO2006059482A1 publication Critical patent/WO2006059482A1/ja
Publication of WO2006059482A9 publication Critical patent/WO2006059482A9/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
    • 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/19Indexing; Addressing; Timing or synchronising; Measuring tape travel by using information detectable on the record carrier
    • G11B27/28Indexing; Addressing; Timing or synchronising; Measuring tape travel by using information detectable on the record carrier by using information signals recorded by the same method as the main recording
    • G11B27/30Indexing; Addressing; Timing or synchronising; Measuring tape travel by using information detectable on the record carrier by using information signals recorded by the same method as the main recording on the same track as the main recording
    • G11B27/3027Indexing; Addressing; Timing or synchronising; Measuring tape travel by using information detectable on the record carrier by using information signals recorded by the same method as the main recording on the same track as the main recording used signal is digitally coded
    • G11B27/3036Time code signal
    • 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
    • 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
    • G11B20/12Formatting, e.g. arrangement of data block or words on the record carriers
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/76Television signal recording
    • H04N5/91Television signal processing therefor
    • 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
    • G11B20/10527Audio or video recording; Data buffering arrangements
    • G11B2020/1062Data buffering arrangements, e.g. recording or playback buffers
    • G11B2020/10629Data buffering arrangements, e.g. recording or playback buffers the buffer having a specific structure
    • G11B2020/10666Ring buffers, e.g. buffers wherein an iteratively progressing read or write pointer moves back to the beginning of the buffer when reaching the last storage cell
    • 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
    • G11B20/10527Audio or video recording; Data buffering arrangements
    • G11B2020/1062Data buffering arrangements, e.g. recording or playback buffers
    • G11B2020/10805Data buffering arrangements, e.g. recording or playback buffers involving specific measures to prevent a buffer overflow
    • 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
    • G11B20/10527Audio or video recording; Data buffering arrangements
    • G11B2020/1062Data buffering arrangements, e.g. recording or playback buffers
    • G11B2020/10814Data buffering arrangements, e.g. recording or playback buffers involving specific measures to prevent a buffer underrun
    • 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)
  • Signal Processing For Digital Recording And Reproducing (AREA)
  • Television Signal Processing For Recording (AREA)
  • Indexing, Searching, Synchronizing, And The Amount Of Synchronization Travel Of Record Carriers (AREA)

Abstract

データを再生する装置で、単独にカウントする時計が無くてもストリームデータをタイムスタンプに応じて再生できるようにする。ステップS141において、受け取ったアクセスユニットがタイムスタンプが付加されているか否かが判定され、アクセスユニットにタイムスタンプが付加されていた場合、ステップS142において、タイムスタンプ(PTS)の値が設定される。アクセスユニットにタイムスタンプが付加されていなかった場合、ステップS144において、現在時刻に前回のpic_structで決まる値が加算される。その後、ステップS143において、今回のpic_structが次回の処理のために保存される。本発明は、例えば、DVDを利用したゲーム装置などに適用できる。

Description

明 細 書
データ処理装置およびデータ処理方法、 プログラムおよびプロダラ ム記録媒体、 データ記録媒体、 並びにデータ構造 技術分野
本発明は、 デ一夕処理装置およびデータ処理方法、 プログラムおよ びプログラム記録媒体、 データ記録媒体、 並びにデ一夕構造に関し、 特に、 例えば、 利便性等の高いデータ処理を可能とするデータ処理装 置およびデータ処理方法、 プログラムおよびプログラム記録媒体、 デ 一夕記録媒体、 並びにデータ構造に関する。 背景技術
近年、 大容量で、 ランダムアクセスが可能な記録メディアとして、 例えば、 DVD (Digital Versat i le Disc)が普及し、 さらに、 DVDを利用 して各種の処理を行う DVD装置も広く普及している。
DVD装置としては、 例えば、 DVDに対して、 テレビジョン放送番組の デ一夕等の記録再生を行う DVDレコーダゃ、 DVDに地図情報等を記録し 、 その地図情報の表示を行う力一ナビゲ一シヨンシステム、 DVDにゲ —ムのプログラム等を記録し、 そのプログラムを実行するゲーム装置 などがある。
なお、 DVDについては、 例えば、 非特許文献 1 「DVD Specification s for Read-Only Disc Part 3; Version 1.1 December 1997J に、 そ の詳細が記載されている。
DVD装置のように、 大量のデ一夕を処理することができる装置にお いて、 利便性の高いデータ処理を行うことが要請される。 発明の開示
i 本発明は、 このような状況に鑑みてなされたものであり、 利便性等 の高いデータ処理を行うことができるようにするものである。. ' 本発明のデータ処理装置は、 所定の変数を用いて時刻を計時するよ うに構成された計時部と、 アクセスユニットのタイムスタンプの有無 を検出し、 前記アクセスユニットにタイムスタンプがある場合、 前記 タイムスタンプの値を前記変数に代入し、 前記アクセスュニッ卜に夕 ィムスタンプがない場合、 表示時間の情報を取得し、 取得された前記 表示時間の情報により得られる値を加算して、 前記変数を設定するよ うに構成された設定部とを備えることを特徴とする。
前記表示時間の情報は、 処理される処理データの 1フィールドを単 位とした表示時間を示す情報とするようにすることができる。
前記処理データは、 ビデオデータまたは字幕データであるとするよ うにすることができる。
前記設定部は、 表示時間の情報を取得した際に、 取得された表示時 間の情報により得られる値を、 アクセスユニットの直後のアクセスュ ニッ 卜の表示を開始するタイミングで加算して、 変数を設定するよう にすることができる。
前記設定部は、 表示時間の情報を取得した際に、 取得された表示時 間の情報により得られる値を、 アクセスユニットの直後のアクセスュ ニットの表示を開始するタイミングで加算して、 変数を設定するよう にすることができる。
所定のアクセスュニットに対して所定のマークタイムスタンプの時 刻で所定の処理を施すように構成されたマーク処理部をさらに備え、 設定部は、 所定のアクセスユニットに対して所定の処理を施すマ一ク タイムスタンプの時刻が、 計時部により計時されている時刻から、 表 示時間内の時刻であるとき、 計時部により計時されている時刻が前記 マークタイムスタンプの時刻となっていることをマ一ク処理部に対し て通知し、 マーク処理部は、 通知に基づいて、 所定のアクセスュ二''ッ 卜に対して所定の処理を施すようにさせることができる。
前記マークタイムスタンプの時刻の最小間隔は、 アクセスユニッ ト の最大表示時間であるようにすることができる。
本発明のデータ処理方法は、 所定の変数を用いて時刻を計時する計 時ステップと、 アクセスュニッ 卜のタイムスタンプの有無を検出し、 アクセスュニッ 卜にタイムスタンプがある場合、 タイムスタンプの値 を変数に代入し、 アクセスユニッ トにタイムスタンプがない場合、 表 示時間の情報を取得し、 取得された表示時間の情報により得られる値 を加算して、 変数を設定する設定ステップとを含むことを特徴とする 本発明のプログラム記録媒体のプログラムは、 所定の変数を用いて 時刻を計時する計時ステップと、 アクセスユニッ トのタイムスタンプ の有無を検出し、 アクセスユニッ トにタイムスタンプがある場合、 夕 ィムスタンプの値を変数に代入し、 アクセスュニッ 卜にタイムスタン プがない場合、 表示時間の情報を取得し、 取得された表示時間の情報 により得られる値を加算して、 変数を設定する設定ステップとを含む ことを特徴とする。
本発明のプログラムは、 所定の変数を用いて時刻を計時する計時ス テツプと、 アクセスユニッ トのタイムスタンプの有無を検出し、 ァク セスュニッ トにタイムスタンプがある場合、 タイムスタンプの値を変 数に代入し、 アクセスユニッ トにタイムスタンプがない場合、 表示時 間の情報を取得し、 取得された表示時間の情報により得られる値を加 算して、 変数を設定する設定ステップとを含む処理をコンピュータに 実行させることを特徴とする。
本発明のデ一夕記録媒体は、 所定の変数を用いて時刻を計時す ^よ うに構成された計時部と、 処理データが所定のアクセスュニッ ト毎に 処理される際に、 アクセスュニッ 卜のタイムスタンプの有無を検出し 、 アクセスユニッ トにタイムスタンプがある場合、 タイムスタンプの 値を変数に代入し、 アクセスュニッ 卜にタイムスタンプがない場合、 表示時間の情報を取得し、 取得された表示時間の情報により得られる 値を加算して、 変数を設定するように構成された設定部と、 所定のァ クセスュニッ トに対して所定のマークタイムスタンプの時刻で所定の 処理を施すように構成されたマーク処理部とを備えるデ一夕処理装置 により読み出されるデータを記録するデ一夕記録媒体であって、 所定 のアクセスユニッ トに対して所定の時刻で所定の処理を施すマークタ ィムスタンプを含むデータが記録され、 マークタイムスタンプの時刻 の最小間隔が、 アクセスュニッ 卜の最大表示時間であることを特徴と する。
本発明のデ一夕構造は、 処理データが所定のアクセスュニッ ト毎に 処理される際に、 アクセスュニッ トのタイムスタンプの有無を検出し 、 前記アクセスユニッ トにタイムスタンプがある場合、 前記タイムス タンプの値を前記変数に代入し、 前記アクセスュニッ トにタイムス夕 ンプがない場合、 前記表示時間の情報を取得し、 取得された前記表示 時間の情報により得られる値を加算して、 前記変数を設定するように 構成された設定部と、 所定のアクセスュニッ 卜に対して所定のマーク タイムスタンプの時刻で所定の処理を施すように構成されたマーク処 理部とを備えるデータ処理装置により読み出されるデータのデ一夕構 造であって、 前記所定のアクセスユニッ トに対して所定の時刻で所定 の処理を施すマークタイムスタンプを含み、 前記マークタイムスタン プの時刻の最小間隔が、 前記アクセスュニッ トの最大表示時間である ことを特徴とする。 5 本発明のデータ処理装置および方法、 並びに、 プログラムおよびプ 口グラム記録媒体においては、 所定の変数を用いて時刻が計時され、 アクセスユニッ トのタイムスタンプの有無が検出され、 アクセスュニ ッ 卜にタイムスタンプがある場合、 タイムスタンプの値が変数に代入 され、 アクセスユニッ トにタイムスタンプがない場合、 表示時間の情 報が取得され、 取得された表示時間の情報により得られる値が加算さ れ、 変数が設定される。
本発明のデ一夕記録媒体およびデータ構造においては、 所定のァク セスュニットに対して所定の時刻で所定の処理を施すマ一ク夕ィムス タンプを含むデ一夕が記録され、 マークタイムスタンプの時刻の最小 間隔が、 アクセスユニッ トの最大表示時間とされる。
本発明のデータ処理装置は、 独立した装置であっても良いし、 デ一 夕処理を行うブロックであっても良い。
本発明によれば、 利便性等の高いデータ処理が可能となる。 特に、 効率的な再生を可能にすると共に、 スト.リームデータを再生する装置 が単独で計時する時計の機能がなくてもタイムスタンプに従って正確 にストリ一ムデ一夕を再生することが可能になる。 図面の簡単な説明
第 1図は、 本発明を適用したディスク再生装置の一実施の形態のハ 一ドウエア構成例を示すブロック図、 第 2図 Aおよび第 2図 Bは、 CP U 1 1 2が実行するソフ トウェアモジュール群の構成例を示すブロッ ク図、 第 3図は、 実際の時間経過と 90kHzの時計の計時との関係を示 した図、 第 4図は、 実際の時間経過とビデオデコーダのビデオデータ の出力に応じて時刻を更新する時計の計時との関係を示した図、 第 5 図は、 バッファ制御モジュール 2 1 5の構成例を示すブロック図、 第 6図は、 ディスク 1 0 1におけるディレクトリ構成例を示す図、 第マ 図は、 "PLAYLIST.DAT"ファイルのシンタクスを示す図、 第 8図は、 P1 ay.ItemOのシンタクスを示す図、 第 9図は、 P yLi s tMarkOのシン夕 クスを示す図、 第 1 0図は、 mark— typeの値と、 MarkOのタイプとの 関係を示す図、 第 1 1図は、 PlayListO, Playltem()、 クリップ、 お よびクリップストリームファイルに格納されたプログラムストリーム の関係を示す図、 第 1 2図は、 クリップ情報ファイル ClipOのシン夕 クスを示す図、 第 1 3図は、 エレメン夕リストリームを識別する stre am_idおよび private— stream_idと、 エレメン夕リストリ一ムとの関係 を示す図、 第 1 4図は、 StaticInfoOのシンタクスを示す図、 第 1 5 図は、 DynamicInfoOのシンタクスを示す図、 第 1 6図は、 EP— mapO のシンタクスを示す図、 第 1 7図は、 第 1 6図の index— N— minuslの値 と IstRef— Picture乃至 4thRef— Pictureとの関係を示す図、 第 1 8図 A および第 1 8図 Bは、 MPEG- 2 Sys temのプログラムストリーム、 プロ グラムストリ一ムパック、 およびプログラムストリームパックヘッダ のシンタクスを示す図、 第 1 9図 Aおよび第 1 9図 Bは、 MPEG- 2 Sys temの PESパケットのシンタクスを示す図、 第 2 0図 A、 第 2 0図 Bお よび第 2 0図 Cは、 MPEG-2 Systemの PESパケットのシンタクスを示す 図、 第 2 1図 Aおよび第 2 1図 Bは、 MPEG- 2 Sys temの PESパケットの シンタクスを示す図、 第 2 2図 Aおよび第 2 2図 Bは、 MPEG-2 Syste mにおける PES— packet Oの streamjdに記述される値と、 エレメン夕リ ストリームの属性との関係を示す図、 第 2 3図は、 ディスク再生装置 が採用する stream— idを示す図、 第 2 4図は、 private— streanil—PES—p ayloadOのシンタクスを示す図、 第 2 5図は、 private stream idの 値と、 private— payloadOに格納されるエレメン夕リストリ一ムの属 性との関係を示す図、 第 2 6図は、 rivate_streani2_PES_payload() のシンタクスを示す図、 第 2 7図は、 au— informationOのシンタクス を示す図、 第 2 8図は、 pic— structを説明する図、 第 2 9図は、 "PLA YLIST.DAT"ファイルの具体例を示す図、 第 3 0図 Aおよび第 3 0図 B は、 クリップ情報ファイル" 00001. CLP", " 00002. CLP", " 00003. CLP" の具体例を示す図、 第 3 1図は、 クリップ情報ファイル" 00001. CLP" の中の EP_map()の具体例を示す図、 第 3 2図は、 PlayList #0と PlayL ist #1の中の PlayListMarkOの具体例を示す図、 第 3 3図は、 再生前 処理を説明するフローチャート、 第 34図は、 再生処理を説明するフ ローチヤ—ト、 第 3 5図は、 デコード順序と出力順序の関係を説明す るフローチャート、 第 3 6図は、 ビデオデコーダの構成を説明する図 、 第 3 7図は、 第 3 6図の DPBの構成を説明する図、 第 3 8図は、 時 刻更新処理を説明するフローチャート、 第 3 9図は、 pic— structの値 に応じた時刻更新処理を説明する図、 第 40図は、 Playltem乗り換え 処理を説明するフローチャート、 第 4 1図は、 タイムコード表示処理 を説明するフローチャート、 第 4 2図は、 ストリーム切り替え処理を 説明するフロ一チャート、 第 4 3図は、 バッファ制御モジュール 2 1 5の処理を説明するフローチャート、 第 44図は、 バッファ制御モジ ユール 2 1 5の処理を説明するフローチャート、 第 4 5図は、 ビデオ ストリ一ムの読み出しの処理を説明するフローチヤ一ト、 第 46図は 、 オーディオストリームの読み出しの処理を説明するフ口一チヤ一ト 、 第 4 7図は、 字幕ストリームの読み出しの処理を説明するフローチ ヤート、 第 4 8図は、 再同期処理を説明するフローチャート、 第 4 9 図は、 マーク処理を説明するフローチャート、 第 5 0図は、 マーク処 理における一致判定を説明する図、 第 5 1図は、 p yListEnd夕イミ ングを説明する図、 第 5 2図は、 playListEndタイミングを説明する 図、 第 5 3図は、 イベントの間隔を説明する図、 第 5 4図は、 出 ^属 性の制御処理を説明するフローチャート、 第 5 5図は、 クリップ情'報 フアイル" 00003. CLP"に記述されてぃる 15_(11&1^6_0011^と0 1^111^111 fo()とのセッ トの具体例を示す図、 第 5 6図は、 字幕表示制御処理を 説明するフローチャート、 第 5 7図は、 キヤプチャ制御処理とバック グラウンドノスクリーンセーバ処理を説明するフローチヤ一ト、 第 5 8図は、 private— st ream2一 PES_pay load 0の他のシンタクスを示す図 、 第 5 9図は、 au— informationOの他のシンタクスを示す図、 第 6 0 図は、 ディスク記録装置のハードウェア構成例を示すブロック図、 第 6 1図は、 第 6 0図のディスク記録装置により実現される機能を説明 するブロック図、 第 6 2図は、 Ep_map生成処理を説明するフローチヤ —ト、 第 6 3図は、 早送り再生処理を説明するフローチャート、 第 6 4図は、 エントリポイント選定処理を説明するフローチャート、 第 6 5図は、 第 6 0図のディスク記録装置により実現されるその他の機能 を説明するブロック図、 第 6 6図は、 EP—map()のその他のシンタクス を示す図、 第 6 7図は、 第 6 5図の priority— flagを説明する図、 第 6 8図は、 プライオリティ設定処理を説明するフローチャートである
発明を実施するための最良の形態
以下に本発明の実施の形態を説明するが、 請求の範囲に記載の構成 要件と、 発明の実施の形態における具体例との対応関係を例示すると 、 次のようになる。 この記載は、 請求の範囲に記載されている発明を サポートする具体例が、 発明の実施の形態に記載されていることを確 認するためのものである。 従って、 発明の実施の形態中には記載され ているが、 構成要件に対応するものとして、 ここには記載されていな い具体例があつたとしても、 そのことは、 その具体例が、 その構成要 件に対応するものではないことを意味するものではない。 逆に、 具''体 例が構成要件に対応するものとしてここに記載されていたとしても、 そのことは、 その具体例が、 その構成要件以外の構成要件には対応し ないものであることを意味するものでもない。
さらに、 この記載は、 発明の実施の形態に記載されている具体例に 対応する発明が、 請求の範囲に全て記載されていることを意味するも のではない。 換言すれば、 この記載は、 発明の実施の形態に記載され ている具体例に対応する発明であって、 この出願の請求の範囲には記 載されていない発明の存在、 すなわち、 将来、 分割出願されたり、 補 正により追加される発明の存在を否定するものではない。
すなわち、 本発明のデータ処理装置は、 所定の変数を用いて時刻を 計時する計時手段 (例えば、 第 2図 Aおよび第 2図 Bの計時部 2 1 4 A ) と、 アクセスユニットのタイムスタンプの有無を検出し、 前記ァ クセスュニッ 卜にタイムスタンプがある場合、 前記表示時間の情報を 取得し、 取得された前記表示時間の情報により得られる値を加算して 、 前記変数を設定する設定手段 (例えば、 第 2図 Aおよび第 2図 Bの デコード制御モジュール 2 1 4 ) とを備えることを特徴とする。
また、 本発明のデータ処理方法は、 所定の変数を用いて時刻を計時 する計時ステップと、 アクセスュニッ 卜のタイムスタンプの有無を検 出し (例えば、 第 3 8図のフローチャートにおけるステップ S 1 4 1 の処理) 、 前記アクセスユニットにタイムスタンプがある場合、 前記 タイムスタンプの値を前記変数に代入し (例えば、 第 3 8図のフロー チャートにおけるステップ S 1 4 2の処理) 、 前記アクセスユニッ ト にタイムスタンプがない場合、 前記表示時間の情報を取得し、 取得さ れた前記画像の表示時間の情報により得られる値を加算して、 前記変 数を設定する設定ステップ (例えば、 第 3 8図のフローチャート(;:お けるステップ S 1 4 4の処理) とを含むことを特徴とする。 ' 尚、 プログラム記録媒体およびプログラムについては、 データ処理 方法と同様であるので、 その説明は省略する。
以下、 図面を参照して、 本発明の実施の形態について説明する。
[八一ドウエア構成]
第 1図は、 本発明を適用したディスク再生装置の一実施の形態のハ ―ドウエアの構成例を示すブロック図である。
第 1図のディスク再生装置は、 例えば、 ディスクプレーヤや、 ゲ一 ム装置、 力一ナビゲ一ションシステムその他に適用することができる 第 1図のディスク再生装置において、 ディスク 1 0 1は、 例えば、 DVDなどの光ディスク、 あるいは光磁気ディスク、 磁気ディスクなど であり、 ビデオデ一夕や、 オーディオデータ、 字幕デ一夕などのコン テンッデ一夕、 さらには、 コンテンツデータを再生するのに必要なデ 一夕が記録されている。 .
なお、 ディスク 1 0 1に記録されるデータには、 必要に応じて、 コ ンピュー夕が実行可能なプログラムも含まれる。 また、 本実施の形態 では、 記録媒体として、 ディスク状の記録媒体であるディスク 1 0 1 を採用するが、 その他、 記録媒体としては、 例えば、 半導体メモリや 、 テープ状の記録媒体であってもよい。 さらに、 第 1図のディスク再 生装置には、 遠方にあるディスク 1 0 1から読み出されて送信されて くるデータを入力することができる。 即ち、 ディスク 1 0 1からのデ —夕の読み出しは、 ディスク再生装置に接続した別の装置で行い、 そ の別の装置で読み出されたデータを、 ディスク再生装置で受信して処 理することができる。 また、 ディスク再生装置では、 ディスク 1 0 1 に記録されたデ一夕と同様のデータをストレージに記憶しているザ'一 バ等から、 インターネッ ト等のネッ トワークを介して、 データの配'信 を受けて処理することも可能である。.さらに、 ディスク再生装置では 、 サーバその他の装置からのデータを受信し、 一旦、 ディスク 1 0 1 に記録してから、 そのディスク 1 0 1に記録されたデータを処理する こと.も可能である。
ディスク ドライブ 1 0 2には、 ディスク 1 0 1が着脱可能になって いる。 ディスク ドライブ 1 0 2は、 図示せぬインターフェースを内蔵 し、 そのインタ一フェースを通じて、 ドライブイン夕一フェース 1 1 4に接続されている。 ディスク ドライブ 1 0 2は、 そこに装着された ディスク 1 0 1を駆動し、 ドライブイン夕一フエ一ス 1 1 4からの読 み出し等の命令にしたがって、 ディスク 1 0 1からデータを読み出し て、 ドライブインターフェース 1 1 4に供給する等の処理を行う。 バス 1 1 1には、 CPU Cen t ra l Proces s i ng Un i t) 1 1 2、 メモリ 1 1 3、 ドライブインタ一フェース 1 1 4、 入力インタ一フェース 1 1 5、 ビデオデコーダ 1 1 6、 オーディオデコ一ダ 1 1 7、 ビデオ出力 インタ一フェース 1 1 8、 オーディオ出力イン夕一フェース 1 1 9が 接続されている。
CPU 1 1 2およびメモリ 1 1 3は、 コンピュータシステムを形成し ている。 即ち、 CPU 1 1 2は、 メモリ 1 1 3に記憶されたプログラム である、 後述するソフトウェアモジュール群を実行し、 ディスク再生 装置全体を制御するとともに、 後述する各種の処理を行う。 メモリ 1 1 3は、 CPU 1 1 2が実行するソフトウエアモジュール群を記憶して いる。 また、 メモリ 1 1 3は、 CPU 1 1 2の動作上必要なデータを一 時記憶する。 なお、 メモリ 1 1 3は、 不揮発性メモリのみ、 または揮 発性メモリと不揮発性メモリとの組み合わせで構成することが可能で ある。 また、 第 1図のディスク再生装置に、 ハードディスクを設け、 そのハ一ドディスクに、 CPU 1 1 2が実行するソフ トウェアモジ ^一 ル群を記録 (インスト一ル) しておく場合には、 メモリ 1 1 3は、 揮 発性メモリのみで構成することが可能である。
ここで、 CPU 1 1 2が実行するプログラム (ソフトウェアモジユー ル群.) は、 ディスク再生装置に内蔵されている記録媒体としてのメモ リ 1 1 3に予め格納しておく ことができる。
あるいはまた、 プログラムは、 ディスク 1 0 1、 さらには、 デイス ク 1 0 1以外のフレキシブルディスク、 CD-ROM (Compact Disc Read 0 nly Memory), MO (Magneto Opt ical)ディスク、 磁気ディスク、 メモリ 力ードなどのリム一バブル記録媒体に、 一時的あるいは永続的に格納 しておく ことができる。 このようなリムーバブル記録媒体は、 いわゆ るパッケージソフトウェアとして提供することができる。
なお、 プログラムは、 メモリ 1 1 3にあらかじめ記憶させておくこ と、 あるいは、 上述したようなリム一バブル記録媒体からディスク再 生装置にインスト一ルすることができる。 また、 プログラムは、 ダウ ンロードサイ 卜から、 ディジタル衛星放送用の人工衛星を介して、 デ イスク再生装置に無線で転送したり、 LAN(Local Area Network) ィ ン夕ーネッ トといったネッ トワークを介して、 ディスク再生装置に有 線で転送し、 ディスク再生装置では、 そのようにして転送されてくる プログラムを、 入力インターフェース 1 1 5で受信し、 内蔵するメモ リ 1 1 3にィンストールすることができる。
さらに、 プログラムは、 1の CPUにより処理されるものであっても 良いし、 複数の CPUによって分散処理されるものであっても良い。
ドライブイン夕一フェース 1 1 4は、 CPU1 1 2の制御の下、 ディ スク ドライブ 1 0 2を制御し、 これにより、 ディスク ドライブ 1 0 2 がディスク 1 0 1から読み出したデータを、 バス 1 1 1を介して、 'CP Ul 1 2や、 メモリ 1 1 3、 ビデオデコ^ "ダ 1 1 6、 オーディオデコ —ダ 1 1 7などに供給する。
入力インタ一フェース 1 1 5は、 図示せぬキ一 (ポタン) や、 リモ コン (リモートコントロールコマンダ) がュ一ザに操作されることに よって供給される信号を受信し、 バス 1 1 1を介して、 CPU 1 1 2に 供給する。 なお、 入力イン夕一フェース 1 1 5は、 その他、 例えば、 モテム (ADSL (Asymmetric Digital Subscriber Line)モテムを含む) や、 NIC(Network Interface Card)などの通信インタ一フェースとし ても機能する。
ビデオデコーダ 1 1 6は、 ディスク ドライブ 1 0 2によってデイス ク 1 0 1から読み出され、 ドライブイン夕一フェース 1 1 4およびバ ス 1 1 1を介して供給される符号化ビデオデータをデコードし、 その 結果得られるビデオデ一夕を、 バス 1 1 1を介して、 CPU1 1 2ゃビ デォ出力インターフェース 1 1 8に供給する。
オーディオデコーダ 1 1 7は、 デイス.ク ドライブ 1 02によってデ イスク 1 0 1から読み出され、 ドライブインターフェース 1 1 4およ びバス 1 1 1を介して供給される符号化ォ一ディォデ一夕をデコード し、 その結果得られるオーディオデ一夕を、 バス 1 1 1を介して、 CP Ul 1 2やオーディオ出力インタ一フェース 1 1 9に供給する。
ビデオ出カインターフェース 1 1 8は、 バス 1 1 1を介して供給さ れるビデオデ一夕に必要な処理を施し、 ビデオ出力端子 1 2 0から出 力する。 オーディオ出力インタ一フェース 1 1 9は、 バス 1 1 1を介 して供給されるオーディオデータに必要な処理を施し、 オーディオ出 力端子 1 2 1から出力する。 W ビデオ出力端子 1 2 0は、 図示せぬ CRT (Ca t h ode Ray Tube)や、 液 晶パネル等のビデオ出力装置に接続されており、 従って、 ビデオ出力 端子 1 2 0から出力されるビデオデータは、 ビデオ出力装置に供給さ れて表示される。 オーディオ出力端于 1 2 1は、 図示せぬスピーカや アンプなどのオーディオ出力装置に接続されており、 従って、 オーデ ィォ出力端子 1 2 1から出力されるオーディオデータは、 オーディオ 出力装置に供給されて出力される。
なお、 ディスク再生装置から、 ビデオ出力装置とオーディオ出力装 置へのビデオデータとオーディォデ一夕の供給は、 有線または無線の いずれによって行うことも可能である。
[ソフトウエアモジュール群の構成]
次に、 第 2図 Aおよび第 2図 Bは、 第 1図の CPU 1 1 2が実行する ソフトウェアモジュール群の構成^を示している。
CPU 1 1 2が実行するソフ トウェアモジュール群は、 オペレーティ ングシステム (OS) 2 0 1 と、 アプリケーションプログラムとしての ビデオコンテンツ再生プログラム 2 1 0に大別される。
「オペレーティングシステム 2 0 1」 - オペレーティングシステム 2 0 1は、 ディスク再生装置の電源が投 入されると最初に起動し、 初期設定等の必要な処理を行い、 アプリケ ーションプログラムであるビデオコンテンツ再生プログラム 2 1 0を 呼び出す。
オペレーティングシステム 2 0 1は、 ビデオコンテンツ再生プログ ラム 2 1 0に対して、 ファイルの読み出し等のインフラ (インフラス トラクチャ(i n f r as t ruc t u r e) ) 的なサ一ビスを提供する。 即ち、 オペ レ一ティングシステム 2 0 1は、 例えば、 ファイルの読み出しに関し ては、 ビデオコンテンツ再生プログラム 2 1 0からのファイルの読み 出しのリクエストに対して、 ドライブイン夕一フェース 1 1 4を介し てディスク ドライブ 1 0 2を操作して、 ディスク 1 0 1のデータを読 み出し、 ビデオコンテンツ再生プログラム 2 1 0に渡すサービスを'提 供する。 また、 オペレーティングシステム 2 0 1は、 ファイルシステ ムの解釈等も行う。
なお、 オペレーティングシステム 2 0 1は、 マルチタスク処理の機 能を備えており、 複数のソフトウェアモジュールを、 時分割に動作さ せることができる。 即ち、 ビデオコンテンツ再生プログラム 2 1 0は 、 幾つかのソフトウェアモジュールで構成されるが、 各ソフ トウェア モジュールは、 並列で動作することができる。
「ビデオコンテンツ再生プログラム 2 1 0」
ビデオコンテンツ再生プログラム 2 1 0は、 スクリプト制御モジュ —ル 2 1 1、 プレイヤ制御モジュール 2 1 2、 コンテンツデータ供給 モジュール 2 1 3、 デコード制御モジュ一ル 2 1 4、 バッファ制御モ ジュール 2 1 5、 ビデオデコーダ制御モジュール 2 1 6、 オーディオ デコーダ制御モジュール 2 1 7、 字幕デコーダ制御モジュール 2 1 8 、 グラフィクス処理モジュール 2 1 9、 ビデオ出力モジュール 2 2 0 、 およびオーディオ出力モジュール 2 2 1で構成されている。
ビデオコンテンッ再生プログラム 2 1 0は、 ディスク 1 0 1の再生 にあたって中心的な役割を果たすソフトウェアであり、 ディスク 1 0 1がディスク ドライブ 1 0 2に装着 (挿入) されると、 そのディスク 1 0 1が、 コンテンツが記録された後述するフォーマツ卜のディスク であるかを確認する。 さらに、 ビデオコンテンツ再生プログラム 2 1 0は、 ディスク 1 0 1から、 後述するスクリプトファイルを読み出し て実行し、 また、 ディスク 1 0 1から、 そのディスク 1 0 1に記録さ れたコンテンツを再生するのに必要なメタデータのファイルを読み出 し、 そのメタデータに基づいて、 コンテンツの再生を制御する。
以下、 第 2図 Aおよび第 2図 Bのビデオコンテンッ再生プログラム 2 1 0を構成するソフトウエアモジュールについて説明する。 なお、 第 2図 Aおよび第 2図 Bにおいては、 原則として、 実線の矢印は、 コ ンテンッのデ一夕を表し、 点線の矢印は、 制御のデータを表す。
「スクリブト制御モジュール 2 1 1」
スクリブト制御モジュール 2 1 1は、 ディスク 1 0 1に記録された スクリプトファイルに記述されているスクリプトプログラム (スクリ ブト) を解釈して実行する。 スクリプトプログラムでは、 例えば、 「 グラフィクス処理モジュール 2 1 9を操作し、 メニュー等の画像を作 成して表示する」 、 「リモコン等の U I (User I n t er f ace)からの信号に 従いメニューの表示を変更する (例えば、 メニュー上の力一ソルを移 動する等) 」 、 「プレイヤ制御モジュール 2 1 2を制御する」 等の動 作を記述することができる。
「プレイヤ制御モジュール 2 1 2」
プレイヤ制御モジュール 2 1 2は、 ディスク 1 0 1に記録されてい るメタデータ等を参照し、 コンテンツの再生に関する制御を行う。 即 ち、 プレイヤ制御モジュール 2 1 2は、 例えば、 ディスク 1 0 1に記 録されている、 後述する P l ayL i s t Oや C l i p Oを解析し、 その解析結果 にしたがって、 コンテンツデータ供給モジュール 2 1 3や、 デコード 制御モジュール 2 1 4、 バッファ制御モジュール 2 1 5を制御する。 また、 プレイヤ制御モジュール 2 1 2は、 スクリプト制御モジュール 2 1 1や入カインターフェ一ス 1 1 5からの指示にしたがい、 再生対 象のストリームを切り替える、 後述するストリーム切り替え等の制御 を行う。 さらに、 プレイヤ制御モジュール 2 1 2は、 デコード制御モ ジュール 2 1 4から時刻を取得し、 時刻表示や、 後述するマーク (Ma rk O ) の処理等を行う。
「コンテンツデータ供給モジュ一ル 2 1 3 J
コンテンツデータ供給モジュール 2 1 3は、 プレイヤ制御モジュ''一 ル 2 1 2の制御にしたがい、 あるい ('ま、 バッファ制御モジュール 2 1 5に蓄積されたデ一夕の量に基づき、 ディスク 1 0 1からのコンテン ッのデ一夕やメタデ一夕等の読み出しを、 オペレーティングシステム 2 0 1に要求する。
なお、 オペレーティングシステム 2 0 1力 コンテンツデ一タ供給 モジュール 2 1 3からの要求に応じてディスク 1 0 1から読み出した メタデータ等は、 必要なモジュールに供給される。 また、 オペレ一テ ィングシステム 2 0 1が、 コンテンツデ一夕供給モジュール 2 1 3か らの要求に応じてディスク 1 0 1から読み出したコンテンツのデ一夕 は、 バッファ制御モジュール 2 1 5に供給される。
「デコ一ド制御モジュール 2 1 4」
デコ一ド制御モジュール 2 1 4は、 プレイヤ制御モジュール 2 1 2 からの制御にしたがい、 ビデオデコーダ制御モジュ一ル 2 1 6、 ォー ディォデコーダ制御モジュール 2 1 7、 および字幕デコーダ制御モジ ユール 2 1 8の動作を制御する。 また、 デコード制御モジュール 2 1 4は、 時刻を計時する計時部 2 1 4 Aを内蔵し、 ビデオデコーダ制御 モジュール 2 1 6の制御によって出力されるビデオデータの出力と、 そのビデオデ一夕と同期して出力されるべきデ一夕 (出力デ一夕) の 出力、 即ち、 ここでは、 オーディオデコーダ制御モジュール 2 1 7の 制御によって出力されるオーディォデ一夕の出力との同期を管理する 計時部 2 1 4 Aは、 外部から供給された基準クロックあるいは、 デ コ一ダ等に同期する内部クロックを計数することにより自律的に計時 するようにしてもよい。
しかしながら、 第 2図 Aおよび第 2図 Bで示される各種のモジュし ルを制御することにより実現される、 ソフトウエアベースのデコーダ では、 これらの処理とは別に、 独立した計時処理をソフトウェアによ り実行させることは、 CPU 1 1 2の処理負荷を増大させることになる 。 このため、 計時部 2 1 4 Aは、 デコーダからのビデオデータの出力 に応じて時刻を更新するという方式が求められている。
第 3図は、 計時部 2 1 4 Aが独立した時計を示す場合の時刻と実際 の時間経過の関係を図に示している。 第 3図においては、 計時部 2 1 4 Aは 90kHzのクロックでカウントアップするので、 時刻 0から右上が りの直線で増加し、 時刻 33. 3ミリ秒の瞬間に時計が示す時刻は 3003と なっている。
第 4図は、 計時部 2 1 4 Aがビデオデコーダのビデオデータの出力 に応じて時刻を更新する時計を示す場合の時刻の一例を示している。 第 4図の場合、 時刻は、 例えば、 33. 3ミリ秒が経過すると時計の出力 時刻が 3003に更新され、 83. 3ミリ秒が経過すると出力時刻は 7507に更 新され、 また、 1 1 6ミリ秒が経過すると出力時刻は 1 051 0に更新される 。 ここで、 1フレームの出力時間は、 1 6. 66ミリ秒である。
尚、 第 3図においては、 実際には l /90kHzの分解能であらわされる 階段状に時刻が推移することになるが、 第 4図との対比のため、 第 3 図では直線で表現されている。 また、 以降においては、 計時部 2 1 4 Aは、 第 4図を参照して説明した、 ビデオデータの出力に応じて時刻 を更新するという方式であるものとして説明する。
「バッファ制御モジユール 2 1 5」
バッファ制御モジュール 2 1 5は、 第 1図のメモリ 1 1 3の記憶領 域の一部であるバッファ 2 1 5 Aを内蔵しており、 そのバッファ 2 1 5 Aに、 コンテンツデ一夕供給モジュール 2 1 3がオペレーティング システム 2 0 1に要求を行うことによってディスク 1 0 1から読み出 されたコンテンツのデ一夕を一時記憶する。
また、 バッファ制御モジュール 2 1 5は、 ビデオデコーダ制御モジ ユール 2 1 6、 オーディオデコーダ制御モジュール 2 1 7、 または字 幕デコーダ制御モジュール 2 1 8の要求にしたがって、 バッファ 2 1 5 A.に記憶されたデ一夕を、 ビデオデコーダ制御モジュール 2 1 6、 オーディオデコーダ制御モジュール 2 1 7、 または字幕デコーダ制御 モジュール 2 1 8に供給する。
即ち、 バッファ制御モジュール 2 1 5は、 後述する第 5図で説明す るビデオ読み出し機能部 2 3 3、 オーディオ読み出し機能部 2 3 4、 および字幕読み出し機能部 2 3 5を内蔵している。 そして、 バッファ 制御モジュール 2 1 5は、 ビデオデコーダ制御モジュール 2 1 6力、ら のデ一夕の要求を、 ビデオ読み出し機能部 2 3 3で処理することによ り、 バッファ 2 1 5 Aに記憶されたデータを、 ビデオデコーダ制御モ ジュール 2 1 6に供給する。 同様に、 バッファ制御モジュール 2 1 5 は、 オーディオデコーダ制御モジュール.2 1 7からのデータの要求を 、 オーディオ読み出し機能部 2 3 4で処理することにより、 バッファ 2 1 5 Aに記憶されたデータを、 オーディオデコーダ制御モジュール 2 1 7に供給するとともに、 字幕デコーダ制御モジュール 2 1 8から のデ一夕の要求を、 字幕読み出し機能部 2 3 5で処理することにより 、 バッファ 2 1 5 Aに記憶されたデ一夕を、 字幕デコーダ制御モジュ —ル 2 1 8に供給する。
「ビデオデコーダ制御モジュール 2 1 6」
ビデオデコーダ制御モジュール 2 1 6は、 バッファ制御モジュール 2 1 5内のビデオ読み出し機能部 2 3 3 (第 5図) を操作して、 ビデ ォデ一夕を符号化したデ一夕 (ビデオ符号化データ) を、 ビデオァク セスュニット単位で、 ノ ッファ制御モジュール 2 1 5のバッファ 2 1 5 Aから読み出し、 第 1図のビデオデコーダ 1 1 6に供給する。 また 、 ビデオデコーダ制御モジュール 2 1 6は、 ビデオデコ一ダ 1 1 6を 制御し、 ビデオアクセスユニット単位のデータをデコードさせる。 さ らに、 ビデオデコーダ制御モジュール 2 1 6は、 ビデオデコーダ 1 1 6でのデコードの結果得られるビデオデータを、 グラフィクス処理モ ジュール 2 1 9に供給する。
ここで、 ビデオアクセスユニットとは、 例えば、 ビデオデ一夕の 1 ピクチャ ( 1フレームまたは 1フィールド) 分である。
「オーディオデコーダ制御モジュール 2 1 7」
オーディオデコーダ制御モジュール 2 1 7は、 バッファ制御モジュ ール 2 1 5内のオーディオ読み出し機能部 2 3 4 (第 5図) を操作し て、 ォ一ディォデ一夕を符号化したデ一夕 (オーディオ 号化データ ) を、 オーディオアクセスユニット単位で、 バッファ制御モジュール 2 1 5のバッファ 2 1 5 Aから読み出し、 第 1図のォ一ディォデコ一 ダ 1 1 7に供給する。 また、 オーディオ.デコーダ制御モジュール 2 1 7は、 オーディオデコーダ 1 1 7を制御し、 オーディオアクセスュニ ット単位のデータをデコードさせる。 さらに、 オーディオデコーダ制 御モジュール 2 1 7は、 オーディオデコーダ 1 1 7でのデコードの結 果得られるオーディォデ一夕を、 オーディォ出力モジュール 2 2 1に 供給する。
ここで、 オーディオアクセスユニットとは、 オーディオデータの所 定のデ一夕量分 (例えば、 1ピクチャに同期して出力される分) であ る。 本実施の形態では、 オーディオアクセスユニットは、 例えば、 既 知の固定長であるとする。 「字幕デコーダ制御モジュール 2 1 8」
字幕デコーダ制御モジュール 2 1 8は、 バッファ制御モジュール 2 1 5内の字幕読み出し機能部 2 3 5 (第 5図) を操作して、 字幕デ''一 夕を符号化したデータ (字幕符号化デ一夕) を、 字幕アクセスュニッ ト単位で、 バッファ制御モジュール 2 1 5のバッファ 2 1 5 Aから読 み出す。 また、 字幕デコーダ制御モジュール 2 1 8は、 内部に、 図示 せぬ字幕デコ一ドソフトウエアを備えており、 バッファ 2 1 5 Aから 読み出したデータをデコードする。 さらに、 字幕デコーダ制御モジュ —ル 2 1 8は、 そのデコードの結果得られる字幕データ (字幕の画像 デ一夕) を、 グラフィクス処理モジュール 2 1 9に供給する。
ここで、 字幕アクセスユニッ トとは、 字幕データの所定のデ一夕量 分 (例えば、 1 ピクチャに同期して出力される分) である。 本実施の 形態では、 字幕アクセスユニッ トのサイズは、 例えば、 その字幕ァク セスュニッ 卜の先頭に記述されていることとする。
「グラフィクス処理モジュール 2 1 9」
グラフィクス処理モジュール 2 1 9は、 プレイヤ制御モジュール 2 1 2の指示にしたがい、 字幕デコーダ制御モジュール 2 1 8からの字 幕データの拡大や縮小を行い、 ビデオデコーダ制御モジュール 2 1 6 からのビデオデータに字幕デ一夕を重ね合わせる。 さらに、 グラフィ クス処理モジュール 2 1 9は、 字幕データと重ね合わせた後のビデオ データの画枠を、 第 1図のビデオ出力端子 1 2 0に接続されたビデオ 出力装置の表示画面にあわせるための拡大または縮小等を行い、 その 結果得られるビデオデータを、 ビデオ出力モジュール 2 2 0に出力す る。
また、 グラフィクス処理モジュール 2 1 9は、 スクリプト制御モジ ユール 2 1 1やプレイヤ制御モジュール 2 1 2の指示に従い、 メニュ —ゃメッセージ等を生成し、 出力ビデオデータにオーバ一レイする。 さらに、 グラフィクス処理モジュール 2 1 9は、 第 1図のビデオ'出 力端子 1 2 0に接続されたビデオ出力装置のァスぺク ト比と、 デ^ス ク 1 0 1に記録されたビデオデ一夕のァスぺク ト比を指示する情報等 とに基づいて、 ビデオ出力モジュール 2 2 0に出力するビデオデータ のァスぺク ト比の変換を行う。
即ち、 例えば、 ビデオ出力装置のアスペク ト比が 1 6 : 9である場合に おいて、 ビデオデ一夕のァスぺク ト比を指示する情報が 4 : 3のァスぺ ク ト比を表しているときには、 グラフィクス処理モジュール 2 1 9は 、 ビデオ出力モジュール 2 2 0に出力するビデオデ一夕を、 横方向 ( 水平方向) に縮小させるスクイーズ処理をし、 左右に黒色を表示させ るデ一夕を入れて出力する。 また、 例えば、 ビデオ出力装置のァスぺ ク 卜比が 4 : 3である場合において、 ビデオデータのァスぺク ト比を指 示する情報が 1 6 : 9のァスぺク ト比を表しているときには、 グラフイク ス処理モジュール 2 1 9は、 ビデオ出力モジュール 2 2 0に出力する ビデオデ一夕を、 縦方向 (垂直方向) にスクイ一ズ処理し、 上下に黒 色を表示させるデータを入れて出力する。
なお、 ビデオ出力装置のアスペク ト比と、 ビデオデータのァスぺク ト比を指示する情報が表すアスペク ト比とが、 いずれも、 4 : 3や 1 6 : 9 で、 同一である場合、 グラフィクス処理モジュール 2 1 9は、 ビデオ 出力モジュール 2 2 0に出力するビデオデータを、 スクイーズ処理す ることなく、 そのまま出力する。
その他、 グラフィクス処理モジュール 2 1 9は、 例えば、 プレイヤ 制御モジュール 2 1 2からの要求に応じて、 現在処理中のビデオデ一 夕をキヤプチヤする。 さらに、 グラフィクス処理モジュ一ル 2 1 9は 、 そのキヤプチヤしたビデオデ一夕を記憶し、 あるいは、 プレイヤ制 P T/JP2005/021070 御モジュール 2 1 2に供給する。
「ビデオ出力モジュール 2 2 0」
ビデオ出力モジュール 22 0は、 第 1図のメモリ 1 1 3の一部を'排 他的に占有して FIFO (First In First Out)のバッファ 2 2 O Aとして 使用し、 グラフィクス処理モジュール 2 1 9からのビデオデータを一 時的に記憶し、 また、 そのバッファ 2 2 O Aに記憶されたビデオデー タを適宜読み出して、 ビデオ出力端子 1 2 0 (第 1図) に出力する。
「オーディオ出力モジュ一ル 2 2 1」
ォ一ディォ出力モジュール 2 2 1は、 第 1図のメモリ 1 1 3の一部 を排他的に占有して FIFOのバッファ 2 2 1 Aとして使用し、 オーディ ォデコーダ制御モジュール 2 1 7 (ォ一ディォデコーダ 1 1 7) から のオーディオデ一夕を一時的に記憶し、 また、 そのバッファ 2 2 1 A に記憶されたオーディォデ一夕を適宜読み出して、 オーディォ出力端 子 1 2 1 (第 1図) に出力する。
さらに、 オーディオ出力モジュール 2 2 1は、 オーディオデコーダ 制御モジュール 2 1 7からのオーディオデータが、 左チャネルが 「主 音声」 のォ—ディォデ一夕で、 右チャネルの 「副音声」 のオーディオ データであるデュアル(Dual) (ニケ国語) モードのオーディオデータ である場合、 あらかじめ指定された音声出力モードに従って、 オーデ ィォデコーダ制御モジュール 2 1 7からのオーディオデータを、 ォ一 ディォ出力端子 1 2 1に出力する。
即ち、 音声出力モードとして、 例えば、 「主音声」 が指定されてい るときには、 オーディオ出力モジュール 2 2 1は、 オーディオデコ一 ダ制御モジュール 2 1 7からのオーディオデータのうちの左チャネル のオーディオデータを、 右チャネルのオーディオデータとしてコピー し、 その左チャネルと右チャネルのオーディオデータ ( 「主音声」 の オーディオデータ) を、 オーディオ出力端子 1 2 1に出力する。 また 、 音声出力モードとして、 「副音声」 が指定されているときには ォ —ディォ出力モジュール 2 2 1は、 オーディオデコーダ制御モジュ '一 ル 2 1 7からのオーディオデータのうちの右チャネルのオーディオデ —夕を、 左チャネルのオーディオデータとしてコピーし、 その左チヤ ネルと右チャネルのォ一ディォデ一夕 ( 「副音声」 のオーディオデー 夕) .を、 オーディオ出力端子 1 2 1に出力する。 さらに、 音声出力モ —ドとして、 「主 '副」 が指定されているときには、 ォ一ディォ出力 モジュール 2 2 1は、 オーディオデコーダ制御モジュール 2 1 7から のオーディオデータを、 そのまま、 オーディオ出力端子 1 2 1に出力 する。
なお、 オーディオデコーダ制御モジュール 2 1 7からのオーディオ データが、 ステレオ(S t e reo)モードのオーディォデ一夕である場合、 オーディオ出力モジュール 2 2 1は、 音声出力モードの指定にかかわ らず、 ォ一ディォデコーダ制御モジュール 2 1 7からのオーディオデ 一夕を、 そのまま、 オーディオ出力端子 1 2 1に出力する。
ここで、 音声出力モードの指定は、 例.えば、 ビデオコンテンツ再生 プログラム 2 1 0が生成するメニューが表示された画面等において、 ユーザがリモコン等を操作することにより対話的に行うことができる 。
[バッファ制御モジュール 2 1 5の構成]
次に、 第 5図は、 第 2図 Aおよび第 2図 Bのバッファ制御モジュ一 ル 2 1 5の構成例を示している。
ノ ッファ制御モジユール 2 1 5は、 第 1図のメモリ 1 1 3の一部を 、 バッファ 2 1 5 Aとして排他的に使用し、 そのバッファ 2 1 5 Aに 、 ディスク 1 0 1から読み出されたデータを一時記憶させる。 また、 バッファ制御モジュール 2 1 5は、 バッファ 2 1 5 Aに記憶されたデ 一夕を読み出して、 第 2図 Aおよび第 2図 Bのビデオデコーダ制御モ ジュール 2 1 6、 オーディオデコーダ制御モジュール 2 1 7、 また ^は 字幕デコーダ制御モジュール 2 1 8に供給する。
即ち、 バッファ制御モジュ一ル 2 1 5は、 ノ ッファ 2 1 5 Aの他、 メモリ 1 1 3の一部であるデータ先頭ボイン夕記憶部 2 3 1、 および データ書き込みボイン夕記憶部 2 3 2を有するとともに、 内部モジュ ールとして、 ビデオ読み出し機能部 2 3 3、 オーディオ読み出し機能 部 2 3 4、 字幕読み出し機能部 2 3 5を有する。
バッファ 2 1 5 Aは、 例えば、 リングバッファであり、 ディスク 1 0 1から読み出されたデ一夕を順次記憶し、 その記憶容量分のデータ を記憶した後は、 最も古いデ一夕に上書きする形で、 最新のデータを 、 いわば無限ループ状に記憶していく。
データ先頭ポインタ記憶部 2 3 1は、 バッファ 2 1 5 Aに記憶され たデータのうち、 まだ、 バッファ 2 1 5 Aから読み出されていない最 も古いデータが記憶されている位置 (アドレス) を指すデータ先頭ポ イン夕を記憶する。 .
デ一夕書き込みボインタ記憶部 2 3 2は、 ディスク 1 0 1から読み 出された最新のデ一夕が書き込まれるバッファ 2 1 5 Aの位置 (アド レス) を指す書き込みポインタを記憶する。
ここで、 デ一夕書き込みポインタが指す位置は、 バッファ 2 1 5 A に、 ディスク 1 0 1から読み出されたデ一夕が記憶されるごとに、 図 中、 右回り (時計回り) に更新されていき、 データ先頭ポインタが指 す位置は、 バッファ 2 1 5 Aからのデータの読み出しに応じて、 図中 、 右回りに更新されていく。 したがって、 バッファ 2 1 5 Aに記憶さ れたデ一夕のうち、 いわば有効なデータは、 デ一夕先頭ポインタが指 す位置から、 右回りに、 データ書き込みポインタが指す位置までに記 憶されているデ一夕である。
ビデオ読み出し機能部 2 3 3は、 第 2図 Aおよび第 2図 Bのビデオ デコ一ダ制御モジュール 2 1 6からの要求に応じて、 ノ ッファ 2 1 5 Aからビデオストリーム (ビデオデータに関するエレメンタリストリ ーム) を読み出し、 ビデオデコーダ制御モジュール 2 1 6に供給する 。 ォ,一ディォ読み出し機能部 2 3 4も、 第 2図 Aおよび第 2図 Bのォ —ディォデコーダ制御モジュール 2 1 7からの要求に応じて、 バッフ ァ 2 1 5 Aからオーディォストリーム (オーディォデ一夕に関するェ レメンタリストリーム) を読み出し、 オーディオデコーダ制御モジュ —ル 2 1 7に供給する。 字幕読み出し機能部 2 3 5も、 第 2図 Aおよ び第 2図 Bの字幕デコーダ制御モジュール 2 1 8からの要求に応じて 、 バッファ 2 1 5 Aから字幕ストリーム (字幕データに関するエレメ ンタリストリ一ム) を読み出し、 字幕デコーダ制御モジュール 2 1 8 に供給する。
即ち、 ディスク 1 0 1には、 例えば、 MPEG (Mov i ng P i c t u re Expe r t, s Group) 2の規格に準拠したプログラムストリーム (MPEG2- Sys t em P r ogram S t r eam) が記録されており、 バッファ 2 1 5 Aには、 ディスク 1 0 1から読み出されたプログラムストリームが記憶される。 このプ ログラムストリームは、 ビデオストリームや、 オーディオストリーム 、 字幕ストリーム等の 1以上のエレメンタリストリームが時分割多重 されている。 ビデオ読み出し機能部 2 3 3は、 プログラムストリーム のデマルチプレクスの機能を有し、 バッファ 2 1 5 Aに記憶されたプ ログラムストリームから、 ビデオストリームを分離して読み出す。 同様に、 オーディオ読み出し機能部 2 3 4も、 プログラムストリー ムのデマルチプレクスの機能を有し、 バッファ 2 1 5 Aに記憶された プログラムストリームから、 オーディォストリームを分離して読み出 す。 字幕読み出し機能部 2 3 5も、 プログラムストリームのデマ チ プレクスの機能を有し、 バッファ 2 1 5 Aに記憶されたプログラム''ス トリ一ムから、 字幕ストリームを分 して読み出す。
ここで、 ビデオ読み出し機能部 2 3 3は、 第 1図のメモリ 1 1 3の 一部であるビデオ読み出しボイン夕記憶部 2 4 1、 stream— idレジス 夕 2.4 2、 ぉょび&11_11^0^^ 011()レジスタ 24 3を有している。 ビデオ読み出しポインタ記憶部 2 4 1は、 バッファ 2 1 5 Aの、 ビ デォストリームが記憶された位置 (アドレス) を指すビデオ読み出し ポインタを記憶し、 ビデオ読み出し機能部 2 3 3は、 バッファ 2 1 5 Aの、 ビデオ読み出しポインタが指す位置に記憶されているデ一夕を 、 ビデオストリームとして読み出す。 stream— idレジスタ 2 4 2は、 バッファ 2 1 5 Aに記憶されたプログラムストリームを解析し、 その プログラムストリームの中から読み出すビデオストリームを特定する ための後述する stream_idを記憶する。 au— information 0レジス夕 2 4 3は、 バッファ 2 1 5 Aからビデオストリームを読み出すために必 要なデ一夕である後述する au_informationOを記憶する。
オーディオ読み出し機能部 2 34は、 第 1図のメモリ 1 1 3の一部 であるオーディォ読み出しボイン夕記憶部 2 5 1、 stream— idレジス 夕 2 5 2、 および private_s earn— idレジス夕 2 5 3を有している。 オーディォ読み出しボイン夕記憶部 2 5 1は、 バッファ 2 1 5 Aの 、 オーディオストリームが記憶された位置 (アドレス) を指すオーデ ィォ読み出しポインタを記憶し、 オーディオ読み出し機能部 2 34は 、 バッファ 2 1 5 Aの、 オーディオ読み出しポインタが指す位置に記 憶されているデータを、 オーディオストリームとして読み出す。 stre am— idレジス夕 2 5 2と private stream idレジス夕 2 5 3は、 バッフ ァ 2 1 5 Aに記憶されたプログラムストリームを解析し、 そのプログ ラムストリームの中から読み出すオーディォストリームを識別する こ めの後述する st ream— idと private— stream— idを、 それぞれ記憶する 字幕読み出し機能部 2 3 5は、 第 1図のメモリ 1 1 3の一部である 字幕読み出し機能フラグ記憶部 2 6 1、 字幕読み出しポインタ記憶部
2 6 2、 stream— idレジスタ 2 6 3、 および private— stream_idレジス 夕 2 ,64を有している。
字幕読み出し機能フラグ記憶部 2 6 1は、 字幕読み出し機能フラグ を記憶する。 字幕読み出し機能フラグ記憶部 2 6 1に記憶された字幕 読み出し機能フラグが、 例えば 0である場合、 字幕読み出し機能部 2
3 5は機能動作せず、 字幕読み出し機能フラグ記憶部 2 6 1に記憶さ れた字幕読み出し機能フラグが、 例えば 1である場合、 字幕読み出し 機能部 2 3 5は機能する。
字幕読み出しボイン夕記憶部 2 6 2は、 バッファ 2 1 5 Aの、 字幕 ストリームが記憶された位置 (アドレス) を指す字幕読み出しポイン 夕を記憶し、 字幕読み出し機能部 2 3 5は、 ノ ッファ 2 1 5 Aの、 字 幕読み出しボイン夕が指す位置に記憶されているデータを、 字幕スト リームとして読み出す。 stream— idレジス夕 2 6 3と private— stream— idレジスタ 2 64は、 ノ ッファ 2 1 5 Aに記憶されたプログラムスト リームを解析し、 そのプログラムストリームの中から読み出す字幕ス トリームを識別するための後述する st ream— idと private_st ream一 idを 、 それぞれ記憶する。
[ディスク 1 0 1に記録されたデータのデ一夕フォーマツトの説明
]
次に、 ディスク 1 0 1に記録されたデータのデータフォーマッ トに ついて説明する。 第 6図は、 ディスク 1 0 1のディ レク トリ構造を模式的に示してい る。
ディスク 1 0 1のファイルシステムとしては、 例えば、 ISO(Inte'rn at ional Organization for S tandard i zat i on) - 9660や、 UDF (Universa 1 Disk Formaし 'http:/ vww. osta. org/specs/)などで規定されたファ ィルシステムが用いられており、 ディスク 1 0 1に記録されたデータ のファイルはディ レク トリ構造により階層的に管理されている。 ここ で、 ファイルシステムは、 上述したファイルシステムに限定されるも のではない。
第 6図では、 ファイルシステムの基点を示すルート(root)ディ レク トリに、 "VIDEO"ディ レク トリが置かれ、 "VIDEO"ディ レク トリには、 " CLIP"ディ レク トリと、 " STREAM"ディ レク トリとの 2つのディ レク ト リが置かれている。
"VIDEO"ディ レク トリには、 "CLIP"ディ レク トリと" STREAM"ディ レ ク トリとの 2つのディ レク トリの他に、 "SCRIPT.DAT"ファイルと、 "P LAYLIST.DAT"ファイルの 2つのデータファイルが置かれている。
"SCRIPT.DAT"ファイルは、 スクリブトプログラムが記述されたスク リプトファイルである。 即ち、 "SCRIPT.DAT"ファイルには、 ディスク 1 0 1の再生形態をィン夕ラクティプなものとするために使用するス クリプトプログラムが記述されている。 この" SCRIPT.DAT"ファイルに 記述されたスクリプトプログラムは、 第 2図 Aおよび第 2図 Bのスク リブ卜制御モジュール 2 1 1によって解釈、 実行される。
"PLAYLIST.DAT"ファイルには、 ディスク 1 0 1に記録されたビデオ データ等のコンテンツの再生手順が記述されたプレイリスト (後述す る第 7図の PlayList ()) が 1以上格納されている。
"CLIP"ディ レク トリには、 1以上のクリップ情報ファイルが置かれ 、 " STREAM"ディ レク トリには、 1以上のクリップストリームファイル が置かれる。 即ち、 第 6図では、 " CL IP"ディ レク トリには、 3つのク リップ情報ファイル" 00001 . CLP" , " 00002. CLP" , " 00003. CLP",が置か れており、 " STREAM"ディ レク トリには、 3つのクリッブストリ一ムフ アイル" 00001 . PS" , " 00002. PS" , " 00003. PS"が置かれている。
クリップストリームファイルには、 ビデオデータ、 オーディオデ一 夕、 字幕データなどのデータを圧縮、 符号化して得られる 1以上のェ レメン夕リストリームを時分割多重化したプログラムストリ一ムが格 納されている。
クリツプ情報ファイルには、 対応するクリッブストリ一ムファイル の性質等の、 クリップストリ一ムに関するメタデータが記述されてい る。
即ち、 クリップストリームファイルとクリップ情報ファイルとは、
1対 1に対応している。 第 6図では、 クリップストリームファイルに は、 5文字の数字 +ピリオド + " PS"という命名規則にしたがって、 フ アイル名が付されており、 クリップ情報ファイルには、 対応するクリ ッブストリ一ムファイルと同一の 5文字の数字 +ピリォド + " CLP"とい う命名規則にしたがって、 ファイル名が付されている。
従って、 ファイルが、 クリップストリームファイルまたはクリップ 情報ファイルのうちのいずれであるかは、 ファイル名の拡張子 (ピリ ォドより右側の部分) によって識別することができ、 さらに、 対応す るクリップストリームファイルとクリップ情報フアイルとは、 フアイ ル名の拡張子以外の部分 (ピリオドより左側の部分) がー致するかど うかによって識別することができる。
以下、 ディスク 1 0 1に記録された各ファイルの詳細について説明 する。 · rPLAYLIST.DAT J
第 7図は、 第 6図の" VIDEO"ディレク トリ下の" PLAYLIST.DAT" ァ ィルの内部構造 (シンタクス(syntax)) を示している。 ' ここで、 第 7図において、 "シンタクス (Syntax) "の欄の記載がデ 一夕構造を表し、 "ビッ ト数 (No. of bits) "の欄の記載は、 対応す る行の "シンタクス"の欄のデータのビッ ト長を表す。 さらに、 "二一 モニック (Mnemonic) "の欄の記載のうちの" bs lbf" (b i t string left bit first)は、 対応する行の"シンタクス"の欄のデータが左のビッ トから送り出されることを意味し、 "uimsbf" (unsigned integer most significant bit first)は、 対応する行の "シンタクス"の欄のデ一 夕が、 符号なし整数値であり、 最上位ビットから送り出されることを 意味する。 以下説明する、 第 7図と同様の図についても、 同様である
"PLAYLIST.DAT"ファイルにおいては、 その先頭から、 その名称 (フ アイル名) 等の情報を記述するための name— length (8ビット) と name —string (255バイ ト) が順次配置される。
即ち、 name— lengthは、 その後に配置される name— stringのサイズを 、 バイ ト数で表す。 name— s ingは、 " PLAYLIST. DAT"ファイルの名称 (ファイル名) を表す。
なお、 name— stringについては、 その先頭から、 name— lengthで表さ れるバイ ト数までが有効な名称として使用される。 たとえば name_len gthが値 10である場合には、 name— stringの先頭から 10バイト分が有効 な名称として解釈される。
name— stringの後には、 number— οし P yLists (16ビット) が配置さ れる。 number_oし PUyListsは、 続く PlayList 0の個数を表す。 numbe r of PlayListsの後に、 その number of ?1& 315の数だけの?1& 3 t()が配置される。
PlayListOは、 ディスク 1 0 1に記録されたクリップストリーム 3フ アイルの再生手順が記述されたプレイリストであり、 以下のような'内 部構造を有する。
即ち、 PlayListOの先頭には、 PlayList_data_length (32ビット) が配置される。 PlayList— data_lengthは、 その PlayList 0のサイズを 表す.。
PlayList— data— lengthの後には、 reserved_for_word_al ignment ( 1 5ビット) と capture— enable— flag— PlayList (1ビット) が順次配置さ れる。 15ビッ トの reserved_for— word— al ignmentは、 その後に配置さ れる 1ビットの capture_enable— flag— PlayListの位置で、 1 6ビッ ト の位置に揃えるために配置される。 capture一 enable—flag一 PlayListは 、 PlayListOによって再生されるビデオストリームに対応するビデオ データ (PlayList 0に属するビデオデ一夕) の、 ディスク 1 0 1が再 生される第 1図のディスク再生装置内での 2次利用を許可するか否か を表す 1ビットのフラグである。 capture— enable— flag_PlayListが、 0または 1のうちの、 例えば 1である場合、 PlayList 0に属するビデ ォデ一夕の 2次利用が許可されていることを表し、 capture— enable— f lag— PlayListが、 0または 1のうちの、 例えば 0である場合、 PlayLi st ()に属するビデオデータの 2次利用が許可されていないことを表す なお、 第 7図では、 capture_enable— ag— PlayListを 1ビットとし たが、 その他、 capture— enable_flag_PlayListは、 複数ビッ卜で構成 し、 PlayListOに属するビデオデータの 2次利用を、 いわば段階的に 許可するようにすることが可能である。 即ち、 capture—enable— flag— PlayListは、 例えば、 2ビッ トで構成することができる。 そして、 ca pture— enable— flag_PlayListの値が 00B (Bは、 その前の数字が 2進数 であることを表す) である場合には、 ビデオデータの 2次利用を^止 し、 capture_enable— f lag— PlayListの値が 01Bである場合には、 ビデ ォデ一夕を、 64X64ピクセル以下のサイズに縮小して利用する 2次利 用のみを許可することができる。 また、 capture— enable— flag— PlayLi stの値が 10Bである場合には、 サイズの制限なしで、 ビデオデータの 2次利用を許可することができる。
さらに、 上述のように、 ビデオデータの 2次利用にあたって、 サイ ズに制限を設けるのではなく、 用途に制限を設けるようにすることも 可能である。 即ち、 capture_enable— flag— P yListの値が 01Bである 場合には、 ビデオコンテンツ再生プログラム 2 1 0 (第 2図 Aおよび 第 2図 B) のみでの 2次利用を許可し、 capture— enable_f lag— PlayLi stの値が 10Bである場合には、 第 1図のディスク再生装置内の、 ビデ ォコンテンッ再生プログラム 2 1 0を含む任意のアプリケーションに よる 2次利用を許可することができる。 ここで、 第 1図のディスク再 生装置内のビデオコンテンツ再生プログラム 2 1 0以外のアプリケー シヨンとしては、 例えば、 壁紙ゃスクリ.一ンセ一バの表示の処理を行 うアプリケーションなどがある。
なお、 capture— enable_nag—PlayListを、 上述のように、 2ビット とした場合、 その前に配置される reserved— for— word_al ignmentは、 ワードァラインをとるために、 1 4ビットとなる。
また、 capture— enable— flag— PlayListにより、 ビテオデ一夕のディ スク再生装置内での 2次利用を許可する他、 ディスク再生装置外での 2次利用を許可するようにすることも可能である。 ここで、 ビデオデ —夕の、 ディスク再生装置外での 2次利用を許可する場合には、 ビデ ォデ一夕は、 例えば、 ディスク再生装置に着脱可能な記録媒体やディ スク再生装置に接続可能な他の装置に着脱可能な記録媒体に記録され 、 あるいはインターネット等のネッ トヮ一クを介して、 他の装置 送 信される。 この場合、 ビデオデータには、 そのビデオデ一夕を記録媒 体に記録する回数や配信する回数を制限する情報を付加するようにす ることができる。
capture_enable_f 1 ag_P 1 ayL i s tに続レ て【ま、 PI ayL i s t— name— 1 eng t h (8ビット) と PlayList— name—string (255バイ ト) とが順次配置され る。 PlayList— name_lengthは、 その後に配置される PlayList— name— st ringのサイズを、 バイ ト数で表し、 PlayLisし name— stringは、 PUyLi st()の名称を表す。
PlayList— name— stringの後には、 number— of— PI ay 11 ems (16ヒッ卜 ) が配置される。 nuniber_of— Playl temsは、 続く Playl tem()の個数を 表す。
number— 0し Playl temsの後には、 その number— of—P yl temsの数だけ の PlayltemOの構造が記述される。
ここで、 1つの PlayList 0では、 PlayltemO単位で、 コンテンツの 再生手順を記述することができる。 .
また、 PlayList 0の中の、 number— of_PlayI temsの数だけの Playl te m 0それぞれに対しては、 その P 1 ayL i s t 0の中でユニークな ID (Ident i f ication)が付される。 即ち、 PI ayL i s t 0中の最初の P 1 ayl tem 0には 、 IDとして 0番が付され、 以下、 続く PlayltemOに対して、 その出現 順に、 1番、 2番、 · · · と通し番号の IDが付される。
number— of— Playl temsの数だけの PlayltemOの後には、 1つの PlayL istMarkOが配置される。 PlayLis tMarkOは、 PlayList 0にしたがつ て行われる再生の時間軸上の印となる後述する MarkOの集合で、 その 詳細については、 第 9図を参照して後述する。 rpiayltemOの説明」
次に、 第 8図は、 第 7図の PlayListOに含まれる PlayltemOの内1部 構造を示している。 1 PlayltemOの先頭には、 length (16ビット) が配置され、 lengthは 、 それを含む PlayltemOのサイズを表す。
lengthに続レ ては、 CI ip_Inf ormat i on_f i le_name_ length (16ヒッ ト) と Clip— Information— file— name (可変長) が順次配置される。 C1 ip— Information— file— name— lengthは、 その後に配置される CI ip— Info rmation— nie_nameのサイズを、 バイ ト数で表す。 CI ip— Inf ormati on— file— nameは、 Playl temOによって再生するクリップストリームファ ィル (第 6図の拡張子が PSのファイル) に対応するクリップ情報ファ ィル (第 6図の拡張子が CLPのファイル) のファイル名を表す。 なお 、 クリップストリームフアイルおよびクリップ情報ファイルのフアイ ル名の、 上述した命名規則により、 Clip— Iiiformation_nie_nameから 、 PlayltemOによって再生するクリップ情報ファイルのファイル名を 認識し、 そのクリッブス卜リ一ムファイルを特定することができる。
Clip—Information— file— nameに続いては、 IN— time (32ビット) と 0 UT—time (32ビット) が順次配置される。
IN— timeと OUT— timeは、 それぞれ、 CI ip_Inf ormat ion— Π le_nameか ら特定されるクリッブストリ一ムファイルの再生開始位置と再生終了 位置を指定する時刻情報である。
lit imeによれば、 クリップストリームフアイルの先頭を含む中の 位置を再生開始位置として指定することができ、 OUTJimeによれば、 クリップストリ一ムファイルの最後を含む途中の位置を再生終了位置 として指定することができる。
ここで、 PlayltemOによれば、 Clip Information file— nameから特 定されるクリッブストリ一ムフアイルの、 IN_timeから OUTJimeまで の間のコンテンツが再生される。 この Play Item 0によって再生さ る コンテンツを、 以下、 適宜、 クリップという。 ' 「PlayListMark()の説明」
次に、 第 9図は、 第 7図の PlayList 0に含まれる PlayListMarkOの 内部構造を示している。
PlayListMarkOは、 上述したように、 その PlayListMarkOを含む P1 ayListO (第 7図) にしたがって行われる再生の時間軸上の印となる 、 0以上の MarkOの集合である。 31つの MarkOは、 PlayList 0にした
6
がって行われる再生の時間軸上の 1つの時刻を表す時刻情報、 MarkO のタイプを表すタイプ情報、 およびタイプ情報がイベントを発生させ るタイプを表しているときの、 そのイベントの引数となる引数情報を 、 少なくとも有する。
即ち、 PlayListMarkOの先頭には、 length (32ビット) が配置され る。 lengthは、 それを含む PlayLis tMarkOのサイズを表す。
lengthの後には、 number— 0し PlayList_marks (16ビッ ト) が配置さ れ、 11111^6し0し1)1& 1^3し1^ 5は、 それに続いて配置される MarkOの 個数を表す。 number— of— PlayLisし marksの後には、 その number— oし P 1 ayLi st— marksの数だけ MarkOの構造が記述される。
MarkOの先頭には、 markjype (8ビット) が配置される。 mark— typ eは、 上述のタイプ情報であり、 それを含む MarkOのタイプを表す。 本実施の形態では、 MarkOのタイプとして、 例えば、 チヤプ夕(Cha pter)、 インデクス(Index)、 イベント(Event)の 3種類が用意されて いる。
タイプがチヤプ夕の MarkO (以下、 適宜、 チヤプ夕マークという) は、 PlayListOを分割する頭出しの単位であるチヤプタの先頭位置の 印である。 また、 タイプがインデクスの MarkO (以下、 適宜、 インデ クスマークという) は、 チヤプ夕を細分化した単位であるインデク ''ス の先頭位置の印である。 タイプがイベントの MarkO (以下、 適宜 ィ ベントマークという) は、 PlayList 0にしたがったコンテンツの再生 中においてイベントを発生させる位置の印である。 イベントマークに よるイベントの発生は、 後述するように、 スクリプト制御モジュール 2 1 1に通知される。
ここで、 mark— typeの値と、 MarkOのタイプとの関係を、 第 1 0図 に示す。 第 1 0図によれば、 チヤプ夕マークの markjypeには、 1が セッ トされる。 また、 インデクスマークの mark— typeには、 2がセッ 卜され、 イベントマークの mark— typeには、 3がセッ トされる。 なお 、 第 1 0図では、 mark— typeで表される 8ビッ トの値のうちの、 0と 、 4乃至 2 5 5は、 将来の拡張のための予約(reserved)とされている 第 9図に戻り、 mark— typeの後には、 niark_name— length (8ビッ ト) が配置される。 また、 MarkOの最後には、 mark— name— s t r ing (24バイ 卜) 力 S配置さ才飞る。 mark— name— lengthと iark— name— st. ringは、 MarkO の名称を記述するためのものであり、 mark_name— lengthは、 mark— nam e— stringの有効なサイズを、 mark— nanie_stringは、 MarkOの名称を、 それぞれ表す。 従って、 mark_name— stringの先頭から mark— name_leng thが表すバイ ト数までが、 MarkOの有効な名称を表す。
mark— name— lengthに続いては、 PlayList 0上で定義される MarkOを クリップストリームファイルと対応付ける 4つの要素 ref— to— Playlte m_id (16匕ッ 卜) 、 mark— t inie—s tamp (32ヒッ 卜.) 、 entry_ES_stream —id (8ビッ ト) 、 en y—ES— private— stream— id (8ビッ ト) が順次配 置される。 ref— to_PlayItem_idには、 MarkOが属する Playl teniOに対して通し 番号で付された IDが記述される。 ref_to_PlayItem_idによって、 ¾ rk 0 が属する PlayltemO (第 8図) が特定され、 ひいては、 第 8図で 説明したように、 クリップ情報ファイルとクリップストリ一ムフアイ ルが特定される。
mark— time— st a即は、 re f_to— PI ayl tem— idによって特定されるクリ ップストリームファイル内での MarkOが表す時刻を表す。
ここで、 第 1 1図は、 P yListO, PlayltemO, クリップ、 および クリップストリームファイルに格納されたプログラムストリームの関 係を示している。
第 1 1図では、 PlayListOは、 3つの P 1 ay I tem 0から構成されてお り、 その 3つの PlayltemOそれぞれには、 通し番号で付される IM0, #1, #2が付されている。 ここで、 '以下、 適宜、 ID#iが付された Playlt em()を、 Playltem#iと記述する。
また、 第 1 1図では、 PlayItem#0, Playltemtl, P yItem#2によつ て再生されるコンテンツであるクリップが、 それぞれ、 クリップ A、 クリップ B、 クリップ Cとして示されている。
クリップの実体は、 第 8図の PlayltemOにおける CI ip— Information _f i 1 e— nameから特定されるクリップストリームファイルに格納された プログラムストリームのうちの、 INjimeから 0UT_tinieまでのプログ ラムストリームである。 第 1 1図では、 クリップ A、 クリップ B、 ク リップ cの実体としてのプログラムストリームが、 プログラムストリ 一ム八、 プログラムストリーム B、 プログラムストリーム Cとして、 それぞれ示されている。
例えば、 第 1 1図において、 PlayListOにしたがって行われる再生 の時間軸上の時刻 tOの印となる MarkOにおいては、 その ref— to— Playl tem_idと mark— t ime— s t ampは、 次のように言己述さ 飞る。
即ち、 時刻 tOは、 Playlteniitlの再生が行われる時刻であるため、 re し to— Playltem— idには、 その PI ayl tem#lの IDである 1が記述される'。 さらに、 時刻 tOでは、 P yltemlflによって、 クリップ Bの実体である プログラムス トリーム Bが再生されるため、 mark— time— stampには、 プログラムス 卜リーム Bが格納されたクリッブス卜リ一ムファイルに おける時刻 tOに相当する時刻が記述される。
再び、 第 9図に戻り、 entry— ES— stream— idと、 entry—ES— private一 s tream_idは、 MarkOを特定のエレメン夕リストリ一ムに関連付ける場 合に、 そのエレメン夕リストリームを特定するために使用される。 即 ち、 entry— ES— stream— idには、 Mark 0を関連付けるエレメン夕リスト リームの後述する stream— idが記述される。 また、 entry— ES_private— stream— idには、 必要に応じて、 MarkOを関連付けるエレメンタリス トリームの後述する private— stream_idが記述される。
例えば、 ビデオストリーム # 1 とビデオストリーム # 2が多重化さ れているクリップにおいて、 ビデオストリ一ム # 1を再生している場 合と、 ビデオストリ一ム # 2を再生して.いる場合でチヤプ夕の発生時 刻を変更したいときには、 ビデオストリーム # 1再生時のチヤプ夕マ ーク発生時刻の MarkOの entry— ES— stream— idと entry— ES— private— str eam— idに、 ビ 才ス卜リーム # 1の stream— idと private— stream— id力 記述され、 また、 ビデオストリーム # 2再生時のチヤプ夕マーク発生 時亥 ijの Mark 0 の entry— ES— stream— idと entry— ES— private— stream— id に、 ビデオストリ一ム # 2の stream— idと pr ivate_stream— idが記述さ れる。
なお、 特定のエレメン夕リストリームに関連付けない MarkOの entr y ES— stream— idと、 entry— ES— private— s eam— idには、 例えぱ、、 レ ず れも 0が記述される。
entry_ES— private— stream— idの後に【ま、 mark—data ( 3 2ビッ ト') が配置される。 mark— dataは、 MarkOがイベントマ一クである場合に 、 そのィベントマ一クによって発生されるィベントの引数となる引数 情報である。 なお、 mark— dataは、 Mark 0がチヤプ夕マークやインデ クスマークである場合に、 そのチヤプ夕マークやインデクスマークが 表すチヤプ夕ゃィンデクスの番号として使用することも可能である。
「Clip()の説明」
次に、 第 6図の" CLIP"ディ レク トリに置かれる、 拡張子が CLPのク リップ情報ファイルの内部構造について説明する。
第 6図では、 " CLIP"ディ レク トリに、 3つのクリップ情報ファィル " 00001. CLP", " 00002. CLP" , " 00003. CLP"が置かれており、 それぞれ には、 "STREAM"ディ レク トリに置かれたクリッブストリームファイル " 00001.PS", " 00002.PS", " 00003.PS"の性質等を示すメ夕デ一夕が格 納されている。
第 1 2図は、 そのようなクリップ情報ファイル ClipOの内部構造を 示している。 .
クリップ情報フアイル ClipOの先頭には、 presentation— start— tim eと presentation— end— time (いずれも 3 2ビッ ト) 力 順次配置され る。 presentat ion_start— t imeと presentat ion— end_timeは、 クリップ 情報ファイル ClipOに対応するクリッブストリームファイルの先頭と 最後の時刻を表す。 なお、 クリップストリームファイルの時刻は、 MP EG2- Sy s t emの時刻で使われている 90kHzの倍数で記述される。
presentation— end— 11]116こ続レ て(ま、 reserved— for— word— a 1 ignment (7ビッ ト) と capture_enable_flag— CI ip (1ビッ ト) が順次配置され る。 7ビッ 卜の reserved— for— word— al ignmentは、 ヮ一ドアラインをと るためのもので、 capture— enable— flag_Cl ipは、 上述した第 7図の ca pture— enable— flag— PlayListと同様に、 ビデオデータの 2次利用を ¾許 可するか否かを表すフラグである。
但し、 第 7図の capture— enable jlag_PlayListは、 PlayListOによ つて再生されるビデオストリームに対応する、 PlayList 0に属するビ デォデ一夕の 2次利用を許可するか否かを表すのに対して、 第 1 2図 の capture— enable— flag_Clipは、 クリップ情報ファイル CI ip 0に対応 するクリッブストリームファイルに格納されているビデオのエレメン 夕リストリ一ムに対応するビデオデ一夕の 2次利用を許可するか否か を表す。 従って、 第 7図の capture— enable— flag— PlayListと、 第 1 2 図の capture_enable_flag— Clipとでは、 2次利用を許可するビデオデ —夕の単位が異なる。
なお、 第 1 2図の capture—enable_f lag_Cl ipも、 第 7図の capture— enable_ilag_PlayListで説明したように、 1 ビッ トではなく、 複数ビ ットとすることが可能である。
capture— enable— flag— CI ipの後 ίこ ¾、 number— of— s t reams (8ヒッ卜 ) が配置され、 この numbeし oし streamsには、 それに続く Streamlnfo ( )構造の個数が記述される。 従って、 number_oし streamsに続いては、 その number_oし Streamsの数だけ、 S t reamlnf o 0の構造が記述される 。
StreamlnfoOの先頭には、 length (16ビット) が配置され、 この le ngthは、 それを含む StreamlnfoOのサイズを表す。 lengthに続いては 、 stream— id (8ビッ ト) と private— stream_id (8ビッ ト) が配置され ており、 この stream— idと private— stream— idによって、 StreamlnfoO に関連付けるエレメン夕リストリ一ムが特定される。
ここで、 第 1 3図は、 エレメンタリストリ一ムを識別する stream_i dおよび private— stream_idと、 エレメンタリストリ一ムとの関係を示 している。
stream_idは、 MPEG2-Sys tem規格において規定されているのと同'一 のものであり、 その値は、 MPEG2- System規格において、 エレメンタリ ストリームの属性ごとに、 あらかじめ決められている。 従って、 MPEG 2-System規格で定義されている属性のエレメン夕リストリームは、 st ream— idだけで特定することができる。
本実施の形態では、 MPEG2- System規格において規定されていない属 性のエレメンタリス卜リームも扱うことが可能になっており、 privat e_stream_idは、 MPEG2-System規格において規定されていない属性の エレメンタリストリームを識別するための情報である。
第 1 3図では、 MPEGで規定されている符号化方式でエンコードされ たビデオのエレメン夕リストリーム、 ATRAC (Adaptive TRansform Aco ustic Coding)方式でェンコ一ドされたオーディォのエレメン夕リス トリーム (以下、 適宜、 ATRACオーディオストリームという) 、 LPCM( Linear Pulse Code Modulation)方式でエンコードされたオーディオ のエレメン夕リストリーム (以下、 適宜.、 LPCMオーディオストリーム という) 、 字幕のエレメン夕リストリーム (以下、 適宜、 字幕ストリ —ムという) の 4つの属性のエレメン夕リストリームについて、 stre am— idおよび private— stream— idとの関係を示している。
MPEG2-System規格では、 MPEGで規定されている符号化方式でェンコ ―ドされたビデオのエレメン夕リストリームは、 OxEO乃至 OxEFの範囲 の値を (Oxは、 その後に続く文字列が 1 6進数であることを表す) 、 エレメンタリストリ一ムを識別する stream— idとして用いて多重化す ることが規定されている。 従って、 MPEGで規定されている符号化方式 でェンコ一ドされたビデオのエレメン夕リストリームについては、 (k EO乃至 OxEFの範囲の値の stream— idで識別することができる 16本のビ デォのエレメンタリストリームを、 プログラムストリ一ムに多重ィ す ることができる。
なお、 MPEGで規定されている符号化方式でェンコ一ドされたビデオ のエレメン夕リストリ一ムの識別は、 OxEO乃至 OxEFの範囲の値の stre am— idで行うことができるので、 pr ivate_s t ream— idは不要である。
—方、 MPEG2- Systemでは、 ATRACオーディオストリーム、 LPCMォ一 ディォストリーム、 字幕ストリームについては、 stream— idは定義さ れていない。
そこで、 本実施の形態では、 MPEG2- Systemで stream_idが定義され ていないエレメン夕リストリームについては、 その stream_idに、 MPE G2 - Systemにおいて pri vat e_st ream— 1という属性を表す値である OxBD を採用し、 さらに、 第 1 3図に示すように、 private— s eam— idを用 いて特定を行うこととしている。
即ち、 ATRACオーディオストリームの識別には、 0x00乃至 OxOFの範 囲の値の private_stream_idが使用される。 従って、 プログラムスト リームには、 16本の ATRACォ一ディォス.トリームを多重化することが できる。 また、 LPCMオーディオストリームの識別には、 0x10乃至 OxlF の範囲の値 private— stream— idが使用される。 従って、 プログラムス トリームには、 16本の LPCMオーディオストリームを多重化することが できる。 さらに、 字幕ストリームの識別には、 0x80乃至 0x9Fの範囲の 値の private— stream— idが使用される。 従って、 プログラムストリー ムには、 32本の字幕ストリームを多重化することができる。
なお、 stream_idおよび private— stream— idについては、 さらに後述 する。
第 1 2図に戻り、 private_stream— idの後には、 Stat iclnfo 0 , res erved_for_word_al ignment (8ビット) が順次配置される。 Staticlnf οθには、 その Static Info 0を含む S eamlnf o 0に記述された s t re m—
1(1ぉょび131~^&16_5 6&111—1(]にょって特定されるェレメン夕リスト''リ
—ムの再生中に変化しない情報が記述される。 StaticInfoOの詳細に ついては、 第 1 4図を参照して後述する。
reserved— for— word— a 1 ignment ヮ一ドアラインをとるために使 用される。
reserved— for— word— a 1 ignmenUこ続レ て【ま、 number— of— Dynamic Info (8ビット) が配置され、 number— of_DynamicInfoは、 その後に続いて 配置される pts— change— point (32ビッ ト) と Dynamiclnf o 0のセット の数を表す。
従って、 number— of— Dynamiclnfoに続レ て(ま、 その number— of— Dynam ic Infoの数だけのセッ ト数の pts— change— pointと Dynamic Info 0の構 造が記述される。
pts— change— pointは、 それとセッ トになっている DynamicInfoOの 情報が有効になる時刻を表す。 ここで、 エレメン夕リストリームの先 頭の時刻を表す pts— change— pointは、 そ.のエレメン夕リストリームが 格納されたクリップストリ一ムファイルに対応するクリップ情報ファ ィル CI ip()の最初に記述される presentations tart— timeに等しい。
Dynamiclnfo 0には、 s t ream— idおよび pr ivate— s eam— idによって 特定されるエレメン夕リストリームの再生中に変化する、 いわば動的 な情報が記述される。 DynamicInfoOに記述された情報は、 それとセ ットになっている p t s_ch ange— po i n tが表す再生時刻となったときに有 効になる。 なお、 DynamicInfoOの詳細については、 第 1 5図を参照 して後述する。
number of— Dynamiclnfoの数だけのセッ卜の pts— change_po int.と Dyn amicInfoOの後には、 EP— map 0が配置される。 なお、 EP_map()につい ては、 第 1 6図を参照して後述する。 j 「StaticInfo()の説明」 ' 次に、 第 1 4図を参照して、 第 1 2図の StaticInfoOの詳細につい て説明する。
第 1 4図は、 StaticInfoOのシンタクスを示している。
StaticInfoOは、 対応するエレメン夕リストリームの属性により内 容が異なっている。 StaticInfoOに対応するエレメン夕リストリーム の属性は、 その StaticInfoOを含む第 1 2図の Streamlnfo 0に含まれ る stream— idと private— stream— idにより判断される。
StaticInfoOに対応するエレメンタリストリームがビデオストリ一 ムである場合(stream==VIDE0)、 S t iclnf o 0は、 picture— size (4ビ ッ ト) , frame— rate (4ビット) , および cc— flag (1ビッ ト) と、 ヮ —ドアライン とるための reserved— for—wo rd—al ingnientとで構成さ れる。
picture— sizeは、 ビデオストリームに対応するビデオデータによつ て表示される画像の大きさを表す。 fram.e— rateは、 ビデオストリーム に対応するビデオデ一夕のフレーム周波数を表す。 cc— flagは、 ビデ ォストリームにクローズドキヤプション(Closed Caption)データが含 まれているか否かを表す。 即ち、 例えば、 ビデオストリームにクロ一 ズドキヤプションデ一夕が含まれている場合には、 cc— flagは 1とさ れ、 ビデオストリ一ムにクローズドキヤプションデ一夕が含まれてい ない場合には、 cc— flagは 0とされる。
StaticInfoOに対応するエレメン夕リストリームがオーディオスト リームである場合(stream==AUDI0)、 Stat iclnf o 0は、 audio_languag e一 code (16ビッ卜) , channe 1一 conf igurat ion (8ビッ卜) , lfe— exis tence (1ビッ卜) 、 および sa即 1 ing— frequency (4ビッ 卜) と、 ヮ一 ドアラインをとるための reserved—f or— word一 a 1 ingmentとで構成され る。 ' audiojanguage— codeには、 ォ一ディォストリームに含まれている オーディオデータの言語を表すコードが記述される。 channel— config urationは、 モノラル(mono) /ステレオ(s tereo) /マルチチャネル等の 、 オーディオストリームに含まれているオーディオデータの属性を表 す。 lfe_existenceは、 オーディオストリームに低域強調チャネルが 含まれているかどうかを表し、 含まれていれば 1となり、 含まれてい なければ 0となる。 sanipl ing_frequencyは、 オーディオストリームに 含まれているオーディォデ一夕のサンプリング周波数を示す情報であ る。
StaticInfoOに対応するエレメン夕リス卜リ一ムが字幕ス卜リーム である場合(stream==SUBTITLE)、 StaticInfoOは、 subt i t le_languag e_code (16ビッ ト) および configurabl e— Π ag (1ビット) と、 ヮ一ド ァラインをとるための reserved—for—word—al ingnientとで構成される subtitle— language_codeには、 字幕ストリームに含まれている字幕 データの言語を表すコードが記述される。 configurable— flagは、 字 幕ストリームに含まれている字幕データの表示をデフォルトの表示方 式から変更することを許可するか否かを表す情報で、 例えば、 表示方 式の変更が許可されている場合には 1が記述され、 許可されていない 場合には 0が記述される。 なお、 字幕デ一夕の表示方式としては、 字 幕データの表示サイズや、 表示位置、 表示色、 表示パターン (例えば 、 点滅表示など) 、 表示方向 (例えば、 垂直方向や水平方向) などが ある。 「DynamicInfo()の説明」
次に、 第 1 5図を参照して、 第 1 2図の DynamicInfoOの詳細 っ いて説明する。 ' 第 1 5図は、 DynamicInfoOのシンタクスを示している。
DynamicInfoOの先頭には、 ワードァラインのための reserved jor— word_alignment (8ビット) が配置されており、 その後に続く要素は 、 DynamicInfoOに対応するエレメンタリストリームの属性により内 容が異なっている。 DynamicInfoOに対応するエレメン夕リストリ一 ムの属性は、 第 14図で説明した Static Info 0における場合と同様に 、 DynamicInfoOを含む第 1 2図の StreamlnfoOに含まれる stream— id と private— stream— idにより判断される。
DynamicInfoO ('こは、 第 1 2図で説明したように、 エレメンタリス トリームの再生中に変化する動的な情報が記述される。 この動的な情 報は、 特に限定されるものではないが、 第 1 5図の実施の形態では、 DynamicInfoOに対応するエレメン夕リストリームに対応するデータ 、 即ち、 エレメン夕リストリ一ムが処理されることによって出力され るデー夕の出力属性が、 Dynami c Ιηί 00に記述される。
具体的には、 DynamicInfoOに対応するエレメンタリストリームが ビデオストリームである場合(streani==VIDE0)、 Dynamic info 0は、 di splay— aspecし rat io (4ビッ卜) と、 ヮ一ドアラインのための reserve d— for— word— a 1 ingmentとで構成される。 di pi ay— aspect— ratioには、 ビデオストリームに対応するビデオデータの出力方式としての、 例え ば、 そのビデオデ一夕のアスペクト比が記述される。 即ち、 dip y_a specし ratioには、 例えば、 アスペクト比が、 16: 9または 4: 3のうちの いずれであるかを表す情報が記述される。 なお、 ビデオストリームの DynamicInfoOには、 アスペクト比の他、 例えば、 ビデオデータによ つて表示される画像のサイズ (X画素 XY画素) などを記述すること が可能である。 j
DynamicInfoOに対応するエレメン夕リストリームがォ一ディ才ス トリ一ムである場合(stream AUDIO) DynamicInfoOは、 channel— as s ignment (4ヒッ ト) と、 ワードァラインをとるための reserved— for— word— al ingmentとで構成される。 channe 1— ass ignmentには、 オーディ ォストリームに 2チャネルのオーディォデ一夕が含まれている場合に 、 その 2チャネルの出力方式が記述される。 即ち、 channel— assignme ntには、 オーディオデータが、 ステレオまたはデュアル (ニケ国語) のうちのいずれのチャネル割り当てがされているものであるかを表す 情報が記述される。
DynamicInfoOに対応するエレメン夕リストリームが字幕ストリー ムである場合(st.ream==SUBTITLE)、 Dynami c Inf o 0は、 ワードァライ ンをとるための reserved—for— word_al ingmentで構成される。 即ち、 第 1 5図の実施の形態では、 字幕ストリームに関しては、 動的な情報 としての出力属性は定義されていない。
「EP_map()の説明」 .
次に、 第 1 6図を参照して、 第 1 2図の EP— map()の詳細について説 明する。
第 1 6図は、 EP_map()のシンタクスを示している。
EP_map()には、 その EP— map 0を含む第 1 2図のクリップ情報フアイ ル ClipOに対応するクリップストリームファイルに格納されたプログ ラムストリームに多重化されているエレメン夕リストリーム毎に、 各 エレメンタリストリームの、 デコードを開始することができるデコ一 ド開始可能点 (エントリポイント) の情報が記述される。
ここで、 固定レートのストリームについては、 デコード開始可能点 は、 計算によって求めることができるが、 可変レートのストリーム、 あるいは MPEG規格にしたがって符号化されたビデオストリームのよう に、 ビデオアクセスュニッ トごとにサイズが異なるストリームに,い ては、 デコード開始可能点は、 計算によって求めることができず、 実 際にストリームを解析しないと見つけることができない。 デコード開 始可能点を迅速に認識することは、 ランダムアクセスを行うために重 要であり、 EP— map()によれば、 デコード開始可能点を迅速に認識する ことができる。
なお、 MPEG2- Videoでは、 Sequence— header 0 (シーケンスヘッダ) 等を含めたイントラピクチャの先頭が、 デコード開始可能点である。
EP— map()の先頭には、 ヮードアラインのための reserved— for_word— alignment (8ビット) が配置されており、 続いて number— of_s t ream— i d— entries (8ビッ卜) 力 s配置されてレ る。 number— of— s t ream— id— entr iesは、 EP— mapOにデコード開始可能点の情報が記述されているエレ メン夕リストリームの本数を表す。
111111^6し0し3 6&111—1(1—611 163の後には、 エレメン夕リストリーム を識別するための情報と、 そのエレメンタリストリームのデコード開 始可能点の情報とが、 numb e r_oし s t r e am_ i d— en t r i e sが表す数だけ繰 り返し配置される。
即ち、 number— 0し stream— id_entr iesの直後には、 エレメンタリス トリ一ムを識別する情報としての stream— id (8ビッ ト) と private— st ream— id (8ビット) が配置され、 それに続けて、 number_oし EP— entr i es (32ピット) が配置される。 number— oi_EP— entr iesは、 その直前の stream— idと private— st ream_idで特定されるエレメン夕リストリーム のデコード開始可能点の数を表す。
number— of— EP— entriesの後には、 その直前の stream idと private s tream一 idで特定されるエレメンタリストリームのデコード開始可能点 の情報が numb e r_o f_EP_en t r i e sが表す数だけ繰り返し配置される。 すなわち、 該当エレメン夕リス卜リ一ムがビデオストリームである 場合には、 まず indexjjninuslと N-th— Ref_picture— copyが置かれ、 その後ろにデコード開始可能点の情報としての PTS— EP_s rt (32ビッ ト) と RPN_EP_start (32ビット) が置かれ、 これらが繰り返し配置さ れる。 index— N—minuslと N-th—Ref— picture— copyについては後述する また、 該当エレメンタリストリームがビデオストリーム以外である 場合には、 16ビッ トの reserved— for— future— useの後にデコード開始 可能点の情報としての PTS—EP— start (32ビッ ト) と RPN_EP— start (32 ビッ ト) が置かれ、 これらが繰り返し配置される。
N - th— Reし picture— copyには、 後述する RPN_EP_startで示される pri vate_stream— 2に記録されている、 IstRef— picture、 2ndReし picture 、 3rdRef_picture, 4thRei_pictureのいずれかがコピーされる。 また i n d ex_N_m i n u s 1にはどのフィールドをコピーしたかという情報が第 1 7図に示す値を用いて記録される。 すな.わち、 第 1 7図で示されるよ うに、 index— N—minuslには、 IstReし pictureがコピーされた場合、 0 が、 2ndRef— pictureがコピーされた場合、 1が、 3rdReし pictureがコ ピ一された場合、 2が、 4thReし pictureがコピーされた場合、 4が、 記録されることになる。
デコード開始可能点の情報の 1つである PTS— EP—startは、 上述のよ うに st reanし idと private— stream— idで特定されるエレメンタリストリ ームが多重化されているプログラムストリームが格納されたクリップ ストリームファイル内での、 デコード開始可能点の時刻 (再生時刻) を表す。 デコ一ド開始可能点の情報の他の 1つである RPN— EP— startには、 上 述のように stream— idと private— stream— idで特定されるエレメン リ ストリームが多重化されているプログラムストリームが格納された'ク リップストリームファイル内での、 デコード開始可能点の位置を、 プ ログラムストリームの packO単位で数えたときの値が記述される。 な お、 本実施の形態では、 packOのサイズは 2048バイ トで固定であると する。 また、 本実施の形態では、 ディスク 1 0 1 (第 1図) の 1セク 夕が、 2048バイ トであるとする。
ここで、 ビデオストリームについては、 そのデコード開始可能点 ( エントリポイント) の直前に、 後述する privat e— st ream_2パケット ( private一 stream— 2の属性の PES_packet 0) が配置されている。 rivat e— stream— 2パケッ トは、 その pr ivate—s t ream— 2パケットから、 次の pr ivate— stream_2バケツ卜までの間に配置されているビデオストリーム をデコードするのに利用される情報が格納されている。 このため、 ビ デォストリームについては、 デコ一ド開始可能点の情報としての RPN— EP— startには、 実際のデコード開始可能点そのものではなく、 実際の デコ一ド開始可能点の直前に配置されて.いる private_stream_2バケツ 卜の先頭の位置が記述される。
また、 EP— map()において、 デコード開始可能点の情報としての PTS— EP— start.と RPN— EP— startとのセットは、 stream—idと private— stream— idで特定されるエレメンタリストリームごとに、 あらかじめ、 昇順に ソートされている。 これにより、 デコード開始可能点の情報としての PTS— EP— startと RPIEP— startとのセッ トは、 二分探索が可能となって いる。
なお、 可変レー卜のストリームや、 ビデオアクセスユニットごとに サイズが異なるストリームを対象としたランダムアクセスの方法は、 例えば、 特開 2000- 341640号公報 (特願平 11-317738号) などに記載さ れている。 ' 「クリップストリームファイルの説明」
次に、 第 6図の" STREAM"ディレクトリに置かれる、 拡張子が PSのク リップストリームファイル (第 6図では、 " 00001.PS", " 00002.PS", " 00003.PS") の内部構造について説明する。
クリップストリームファイルは、 MPEG- 2 System (ISO/IEC 13818-1 )に定義された MPEG2— Program_Stream()をベースに構成されている。 即ち、 第 1 8図 Aおよび第 1 8図 Bは、 MPEG-2 Sys tern (IS0/IEC 13 818- 2000)規格に記述されているテーブル 2- 31, テーブル 2-32, テ —ブル 2- 33を示している。
クリップストリームファイルに格納されたプログラムストリームは 、 MPEG- 2 System規格のテーブル 2- 31に定義されている MPEG2— Progfam — StreamOであり、 1つ以上の packOと、 1つの MPEG— program— end— co deで構成される。 なお、 MPEG2— Program— StreamOの説明は、 特許第 27 85220号などにも記載されている。
1つの packOは、 MPEG-2 Sys tem規格^テーブル 2-32に定義されて いるように、 1つの Pack_header()と、 任意の数の PES— packet 0とで 構成される。 Pack— header 0の詳細は、 MPEG-2 Sys tem規格のテーブル 2- 33に定義されている。
ここで、 MPEG- 2 System規格では、 packOのサイズは、 可変長とし て定義されているが、 ここでは、 第 1 6図で説明したように、 2048バ イトで固定であるとする。 さらに、 ここでは、 1つの packOの PES_pa cketOの数は、 1つ、 2つ、 または 3つとする。 PackOが後述する pr ivate— stream— 2パケットで始まる場合、 その直後に対応するビデオス トリ一ムの PES_packe t 0が必ず存在する。 またこれに加えて 3つ目の PES一 packet 0として padding—packet ひ デイングパケット) を置くこ とができる。 なお private_stream_2バケツトは必ず Pack 0の先頭 お かれる。 ' PackOが private— strea,m_2バケツ卜で始まらない場合には、 PackO の先頭にはビデオ、 オーディオ、 字幕などのコンテンツデ一夕の格納 された PES— packet ()が置かれる。 これに加えて 2つ目の PES_packet 0 として padding— packet (パディングパケット) を置くことができる。 第 1 9図 Aおよび第 1 9図 B乃至第 2 1図 Aおよび第 2 1図 Bは、 MPEG- 2 System規格のテーブル 2- 17で定義されている PES— packet 0を 示している。
PES— packet 0は、 packet— start— code— pref ix, stream— id、 および P ES_packet_length (第 1 9図 Aおよび第 1 9図 B ) と、 stream_id等 により構造の変化するヘッダ部分 (stuf f ing— byteを含む) (第 1 9 図 Aおよび第 1 9図 B乃至第 2 1図 Aおよび第 2 1図 B) と、 PES_pa cket_data— byte (第 2 1図 Aおよび第 2 1図 B) とに大別することが できる。 なお、 PES— packet 0が、 padding— packet.である場合(stream— id==padding_s tream) > PES— packet—data— byteに代えて、 padding— byt e(OxFF) (第 2 1図 Aおよび第 2 1図 B) が必要な数だけ繰り返し配 置される。
ここで、 PES_packet ()のヘッダ部分には、 第 1 9図 Aおよび第 1 9 図 B、 ならびに、 第 2 0図 A、 第 2 0図 Bおよび第 2 0図 Cに示すよ うに、 PTS (Presentation Time Stamp)と呼ばれる表示タイミングを示 す情報と、 DTS (Decoding Time Stamp)と呼ばれるデコードタイミング を示す情報とを配置することができる。 本実施の形態では、 すべての アクセスユニッ ト (MPEG2-Systeniで定義された、 エレメンタリストリ —ムを構成するデコード単位) に対して PTSが付加され、 MPEG2-Syste mに定める場合に DTSが付加されるとする。
プログラムストリ一ムに多重化されるエレメン夕リストリーム 、 PES_packet ()の PES— packet— data— byte (第 2 1図 Aおよび第 2 1図 'Β ) に格納される。 そして、 PES_packet 0の stream— idには、 その PES— p ackeし data_byteに格納されたエレメン夕リストリームを識別するた めに、 そのエレメン夕リストリームの属性に応じた値が記述される。
PES— packet 0の st ream— idに記述される値と、 エレメンタリストリ —ムの属性 (種類) との関係は、 MPEG- 2 System規格のテ一ブル 2-18 に定義されている。 ここで、 第 2 2図 Aおよび第 2 2図 Bに、 MPEG - 2 System規格のテーブル 2-18を示す。
本実施の形態では、 第 2 2図 Aおよび第 2 2図 Bに示した MPEG- 2 S ystem規格で定義されている stream— idのうちの、 例えば、 第 2 3図に 示す値を採用する。
即ち、 本実施の形態では、 10111101B, 10111110B, 10111111B, 110 χχχχχΒ, ΙΙΙΟχχχχΒの 5パターンを、 s eam— i dの値として採用する。 なお、 "X"は、 0または 1のうちの任意の値を表す。
そして、 private— stream— 1と呼ばれる属性のエレメン夕リストリ一 ムの PES— packet 0の stream— idは、 第 2 3図にしたがい、 10111101Bと される。 また、 padding— packetの PES— packet 0の stream— idは、 第 2 3図にしたがい、 10111110Bとされる。 さらに、 pr ivate— s t ream— 2と 呼ばれる属性のエレメン夕リストリームの PES— packet 0の s earn— id は、 第 2 3図にしたがい、 10111111Bとされる。
また、 MPEGで定義されたオーディオストリーム (ォ一ディォのエレ メン夕リス卜リーム) の PES— packet 0の stream— idは、 ΙΙΟχχχχχΒとさ れる。 なお、 ΙΙΟχχχχχΒのうちの下位 5ビット xxxxxは、 オーディオス トリームを区別するオーディオストリームナンパであり、 プログラム ストリーム (MPEG2— Progranし StreamO) には、 このオーディオストリ —ムナンパで区別することのできる数である 3 2 (= 25) 本のォー ディォストリーム (MPEGで定義されたオーディオストリーム) を多重 化することができる。
さらに、 MPEGで定義されたビデオストリーム (ビデオのエレメン夕 リストリーム) の PES— packet ()の s earn— idは、 ΙΙΙΟχχχχΒとされる。 なお、 ΙΙΙΟχχχχΒのうちの下位 4ビッ ト xxxxは、 ビデオストリ一ムを 区別するビデオストリ一ムナンパであり、 プログラムス卜リームには 、 このビデオストリームナンパで区 5 別することのできる数である 1 6
5
(= 24) 本のビデオストリーム (MPEGで定義されたビデオストリ一 ム) を多重化することができる。
ところで、 stream一 idが ΙΙΙΟχχχχΒの PES— packetOは、 MPEGで定義さ れたビデオストリームを格納するために使用され、 stream_idが ΙΙΟχχ xxxBの PES_packet 0は、 MPEGで定義されたォ一ディォストリ一ムを格 納するために使用される。 一方、 MPEGで定義されていない符号化方式 (たとえば ATRAC方式) のエレメン夕リストリームを格納するのに使 用する PES— packetOの stream_idは、 MP.EGでは規定されておらず、 従 つて、 MPEGで定義されていない符号化方式のエレメン夕リストリーム は、 MPEGで定義されたビデオストリームゃォ一ディォス卜リームと同 様に、 単純に、 stream— idを指定して、 PES— packet.0に格納すること はできない。
そこで、 本実施の形態では、 private_stream— 1の PES— packet 0の PE S— packet— data—byteを拡張し、 MPEGで定義されていない符号化方式の エレメン夕リストリームを格納する。
ここで、 pr ivate_stream_lの PES— packet ()の、 拡張した PES— packet —data byteを、 pr ivate_streaml PES payloadOと記述 "^る。 「pr ivate_s eaml— PES— payloadOの説明」
第 2 4図は、 private_streaml— PES_payload()のシンタクスを示 sし ている。 ' pr i vat e_streaml_PES_pay load ()は、 pr i vat e— header ()と private— p ayloadOとで構成される。 private— payload 0には、 ATRACオーディオ ストリームや、 LPCMオーディオストリーム、 字幕ストリームなどの、 MPEGで定義されていない符号化方式のエレメンタリストリ一ムが格納 される。
private— header 0の先頭には、 private— stream— id (8ビット) が配 置される。 private— stream— idは、 pr ivate_payload 0に格納されるェ レメン夕リストリームを識別する識別情報で、 その属性に応じて、 例 えば、 以下のような値とされる。
即ち、 第 2 5図は、 private— stream— idの値と、 r ivate_pay load 0 に格納されるエレメン夕リストリームの属性との関係を示している。 第 2 5図では、 OOOOxxxxB, OOOlxxxxB, ΙΟΟχχχχχΒの 3パターンが 、 private— stream— idの値として採用されている。 なお、 "は、 第 2 3図における場合と同様に、 0または 1.のうちの任意の値を表す。 第 2 5図によれば、 ATRACオーディオストリームが private— payload 0に格納される private— s eaml— PES— payload 0の private— stream— id は、 OOOOxxxxBとされる。 なお、 OOOOxxxxBのうちの下位 4ビット xxxx は、 ATRACオーディォストリームを区別するオーディォストリームナ ンバであり、 プログラムストリーム (MPEG2— Program— StreamO) には 、 このオーディォストリームナンパで区別することのできる数である 1 6 (= 24) 本の ATRACオーディオストリームを多重化することが できる。
さらに、 第 2 5図によれば、 LPCMオーディオストリームが private— pay load 0に格納される private— s eaml— PES— pay load () Dprivate_st reanし idは、 OOOlxxxxBとされる。 なお、 OOOlxxxxBのうちの下位 4ビ ッ ト xxxxは、 LPCMオーディォストリームを区別するオーディォス卜リ ームナンパであり、 プログラムストリームには、 このオーディオスト リームナンパで区別することのできる数である 1 6 (= 24) 本の LP CMオーディォストリ一ムを多重化することができる。
また、 第 2 5図によれば、 字幕ストリームが private— payloadOに 格納される private— streaml— PES— pay load 0の private— stream— idは、 lOOxxxxxBとされる。 なお、 ΙΟΟχχχχχΒのうちの下位 5ビッ ト xxxxxは 、 字幕ストリームを区別する字幕ストリ一ムナンパであり、 プロダラ ムストリームには、 この字幕ストリ一ムナンパで区別することのでき る数である 3 2 (= 2 5) 本の字幕ストリームを多重化することがで きる。
ここで、 第 2 3図と第 2 5図の関係をまとめたものが、 上述した第 1 3図である。
第 2 4図に戻り、 private— streamし PES— payloadOにおいて、 priva te_stream— idに続く要素は、 pr ivate— p y load 0に格納されるエレメ ン夕リストリームの属性により内容が異なっている。 private_payloa d()に格納されるエレメン夕リストリ一ムの属性は、 private— header ( )の先頭の private— stream— idにより判断される。
private— payloadOに格納されるエレメン夕リストリームが ATRACォ —ディォストリームである場合(private一 stream— id==ATRAC)、 将来の 拡張用の reserved— for— future— use (8ビット) が配置され、 その後、 AU_locator (16ビット) が配置される。 AU_locatorは、 その AU_locat orの直後の位置を基準として、 private— payloadOに格納さ'れた ATRAC オーディォストリ一ムのオーディォアクセスュニットの先頭位置を表 す。 private— payloadOにォ一ディォアクセスュニッ 卜が存在しない 場合、 AU— locatorには、 例えば OxFFFFが記述される。 ¾ private— pay load 0に格納されるエレメン夕リストリ一ムが LPCMォ —ディォストリームである場合(private— stream— id==LPCM)、 fs_f lag (1ヒッ 卜 , reserved— for— future— use (3ヒッ卜) , ch— flag (4ヒ ット) 、 および AU— locator (16ビット) が順次配置される。
fs— flagは、 rivate_payload()に格納される LPCMォ一ディォストリ —ムのサンプリング周波数を示す。 即ち、 例えば、 サンプリング周波 数が 48KHzの場合、 fs— flagは 0とさ 5れ、 サンプリング周波数が 44. ΙΚΗζ
8
の場合、 fs— flagは 1とされる。
clし flagは、 private— payloadOに格納される LPCMォ一ディォストリ —ムのチャネル数を示す。 例えば、 LPCMオーディォストリームがモノ ラルの場合、 chjlagは 1とされ、 LPCMオーディオストリームがスデレ ォの場合、 ch_flagは 2とされる。
AU— locatorは、 その AU— locatorの直後の位置を基準として、 privat e_payload()に格納される LPCMォ一ディォストリ一ムのオーディオア クセスュニッ 卜の先頭位置を示す。 private— payloadOにオーディオ アクセスユニットが存在しない場合、 AU— locatorには、 例えば OxFFFF が記述される。
private— payloadOに格納されるエレメン夕リストリ一ムが字幕ス トリ—ムである場合(privat e_str earn— id==SUBTITLE)、 将来の拡張の ための reserved— for— future— use (8ビッ ト) が配置され、 その後に 、 AU_locator (16ビット) が配置される。 AU— locatorは、 その AU— loc at orの直後の位置を基準として、 private_payload()に格納される字 幕ストリームの字幕アクセスユニッ トの先頭位置を示す。 private— pa yloadOに字幕アクセスユニットが存在しない場合、 AU locatorには 、 例えば OxFFFFが記述される。
「private— stream2— PES— payloadOの説明」
次に、 第 2 6図は、 private— stream2— PES_payload()のシンタクス を示している。
private— stream2— PES— payload 0は、 private— stream— 2の PES— packe t 0の PES— packet— data— byte (第 2 1図 Aおよび第 2 1図 B) を拡張 したもの、 即ち、 private— stream_2の PES— packet ()の、 拡張した PES— packet— datajjyteであり、 ビデオストリ一ムのデコードに利用される 情報が記述される。
本実施の形態では、 private_stream— 2の PES_packet 0は、 ビデオス トリームにおけるデコード開始可能点の直前に配置される。 従って、 本実施の形態では、 プログラムストリ一ムから private— stream_2の PE S— packetOを見つければ、 その直後のビデオストリームからデコード を開始することができる。
こ で、 上述した第 1 6図の EP— map()の RPN— EP— startは、 ビデオス トリ一ムについては、 private一 stream— 2の PES一 packet 0の先頭の位置 を示す。 .
private— stream2— PES_payload()の先頭には、 将来の拡張用の reser ved— for一 future— use (Sビット) が配置され、 続けて、 video— stream一 id (8ビット) , IstReし picture (16ビット) , 2ndRef— pic ture (16 ビット) , 3rdRef— picture (16ビッ 卜) , 4thRef_picture (16ビッ ト ) , au— information 0、 および VBIOが、 順次配置される。
video— stream— idには、 private— s tream— 2の PES— packet 0の直後に 配置されるビデオストリームの PES— packet ()の stream— idと同一の値 が記述される。 この video— stream— idによって、 private— stream__2の P ES— packet ()の private stream2 PES— payload 0に格納された情報を利 用してデコードされるビデオストリ一ムが格納された PES_packet ()が 特定される。
IstRef— picture, 2ndRef_pic ture, 3rdReし picture, 4thRef_pietu reは、 video— stream— idによって特定されるビデオストリームの、 pri vate— stream— 2の PES— packet ()力 ら次の private— stream— 2の PES— packe tOまでの中の 1, 2 , 3, 4番目の参照画像を含む最後の packOの 位置を相対値で、 それぞれ表す。 なお、 IstReし picture, 2ndRef_pic ture, 3rdRef— picture, 4thRef— pictureについては、 例えば、 特開平 09 - 46712号公報 (特願平 07- 211420 6号) に、 bytes— to— f irst— P— pic by o
tes— to_second— P_picとして、 その詳細が開示されている。
au— inf ormat ion ()には、 private— stream_2 DPES— packet 0力、ら、 次 の private— stream— 2の PES— packet 0までのビデオストリ一ムの中のビ デォアクセスュニットに関する情報が記述される。 au_information() の詳細については、 第 2 7図を参照して後述する。
VBI0は、 Closed Capt ionの情報を記述するために使用される。 以上のよう ¾ r ivate_s t ream2_PES_pay load 0を有 る private— str earn— 2の PES— packet ()は、 ビデオストリ一ムごとの、 デコード開始可 能点ごとに配置される。
次に、 第 2 7図は、 第 2 6図の au_information()のシンタクスを示 している。
au— informationOの先頭には、 length (16ビット) が配置される。 lengthは、 それを含む au— informationOのサイズを表す。 lengthに続 て【ま、 reserved— for— word— al ignment (8ヒ 、 および number— o f_access_uni t (8ビッ卜) が順次酉己置される。 reserved— for—word— al ignmentは、 ヮ一ドアラインをとるために使用される。
number— of— access— uni "ま、 それを含む pri vate— stream— 2の PES— pac ket 0から、 次の private_streanし 2の PES— packet 0までの間に含まれ るビデオアクセスュニッ 卜の数を表す。
即ち、 number— of— access— uni tは、 第 2 6図の private— s eam2— PES —pay load 0力 s同一の video— s treaiiし idを有する private— s earn— 2の PES — packet 0の中で、 この au— inf ormatnio 0力、ら次の au— inf ormat. ion 0 の直前までに、 すなわち、 この au— infromationOがクリップストリー ムファイルで最後の aujnformat ion 0であれば、 クリップス卜リーム ファイルの最後までに、 video_streain— idで示されるビデオストリ一 ムに含まれるアクセスユニット (ピクチャ) の数を示す。
number— of— access— uni tの後には、 その number— oし access— uni tの数 だけ forループの内容が配置される。 即ち、 number— of— access— unitを 含む private— stream— 2の PES— packet 0力、ら、 次の private— s tream— 2の PES— packet 0までの間に含まれる 1以上のビデオアクセスュニッドそ れぞれに関する情報が配置される。
forループ内に配置される情報 (ビデオアクセスユニッ トに関する 情報) は、 以下のようになつている。
即ち、 forループ内には、 pic— struct_popy (4ビッ ト) , au— ref_fl ag (1ビット) , AUJeiigth (21ビット) , reservedが配置される。 pic— strucし copyには、 ビデオストリームが MPEG4-AVC (IS0/IEC 14 496-10) の場合に、 対応するビデオアクセスユニットに対して設定さ れている、 IS0/IEC 14496-10, D.2.2に定義されている p i c— s t rue t ( ) のコピーが記述される。 なお、 pic— struct 0 は、 例えば、 ピクチ ャをフレームとして表示する、 あるいは、 ピクチャのトップフィール ドを表示して、 その後、 ボトムフィールドを表示する、 などといった 情報である。
ここで、 第 2 8図に、 pic_structのテーブルを示す。 pic— structは、 ピクチャをどのように表示するかの表示方式を指示 する表示方式指示情報として使用される。
第 2 8図の pi c_s true tのテ一ブルによれば、 ピクチャによって 1 フレームを表示することを指示する場合には、 そのピクチャの pic_st ruct.には、 第 2 8図の最も左の Valueの欄に示されているように、 0が セットされる。 同様に、 ピクチャによって、 トップフィールドまたは ボトムフィールドを表示することを指示する場合には、 そのピクチャ の pic— strucUこは、 それぞれ 1または 2がセッ トされる。 さらに、 ピク チヤによって、 トップフィールドとボトムフィールドをその順で表示 することを指示する場合には、 そのピクチャの pic— structには、 3が セットされ、 ポトムフィ一ルドとトツプフィ一ルドをその順で表示す ることを指示する場合には、 pic— structには、 4がセッ トされる。 ま た、 ピクチャによって、 トップフィールド、 ボトムフィールド、 繰り 返しトップフィールドをその順で表示することを指示する場合には、 そのピクチャの pic_structには、 5がセッ トされ、 ボトムフィールド 、 トップフィールド、 繰り返しボトムフィールドをその順で表示する ことを指示する場合には、 pic— structには、 6がセットされる。 さら に、 ピクチャによって、 1フレームを 2回繰り返しまたは 3回繰り返 し表示することを指示する場合には、 そのピクチャの pic_structには 、 それぞれ 7または 8がセットされる。
au— ref— f lagは、 対応するアクセスユニットが、 他のアクセスュニ ットのデコードにあたつて参照される参照画像であるか否かを表し、 参照画像である場合には 1とされ、 参照画像でない場合には 0とされ -©。
AU— lengthは、 対応するアクセスユニッ トのサイズをバイ ト単位で 表す。 [ディスク 1 0 1に記録されたデータの具体例]
次に、 第 2 9図乃至第 3 2図は、 第 1図のディスク 1 0 1に記 ^さ れた、 上述したようなフォーマツ卜のデータの具体例を示している"。
ここで、 第 2 9図乃至第 3 2図では、 ビデオストリームとしては、 MPEG2- Videoを採用し、 オーディオストリームとしては、 ATRACオーデ ィォストリームを採用している。 但し、 ビデオストリームやオーディ ォストリームは、 これに限定されるものではない。 即ち、 ビデオスト リームとしては、 例えば、 MPEG4-Visualや MPEG4- AVCなどを採用する ことができる。 さらに、 オーディオストリ一ムとしては、 例えば、 MP EG1/2/4オーディォゃ LPCMオーディォストリ一ムなどを採用すること ができる。
なお、 字幕ストリームは、 ビデオストリームやオーディオストリ一 ムと異なり、 同じ間隔で連続的なデコードや表示が行われるとは限ら ない。 すなわち、 字幕ストリームは、 時折、 第 2図 Aおよび第 2図 B のバッファ制御モジュール 2 1 5から字幕デコーダ制御モジュール 2 1 8に供給されてデコードされる。
第 2 9図乃至第 32図は、 ディスク 1.0 1において、 第 6図に示し たように、 "CLIP"ディレクトリに、 3つのクリップ情報ファイル" 000 01. CLP", " 00002. CLP", " 00003. CLP"が記録され、 "STREAM"ディレク トリに、 その 3つのクリップ情報ファイル" 00001. CLP", " 00002. CLP" , " 00003. CLP"それぞれに対応する 3つのクリップストリ一ムフアイ ル" 00001.PS", " 00002.PS" , " 00003.PS"が記録されている場合の、 "P LAYLIST.DAT"ファイル、 クリップ情報ファイル" 00001. CLP", " 00002. CLP"、 および" 00003. CLP"等の具体的な例を示している。 但し、 第 2 9図乃至第 3 2図では、 "PLAYLIST.DAT"ファイル等のデータの一部を 省略してある。 即ち、 第 2 9図は、 第 7図で説明した" PLAYLIST.DAT"ファイルの具 体例を示している。
第 2 9図では、 number— of— PlayListsは 2となっており、 従って、 LAYLIST.DAT"ファイルに含まれる PlayListOの数は 2である。 第 2 9 図では、 その 2つの PlayList 0のうちの 1番目が P yList #0と、 2 番目が PlayList #1と、 それぞれ記載されている。
1番目の PlayList 0である Playい st #0については、 capture— enabl e— flag— PlayListが 1となっており、 従って、 PlayList #0にしたがつ て再生されるビデオデータの 2次利用が許可されている。 また、 Play List #0については、 number— 0し Playltemsが 2となっており、 従って 、 PlayList #0に含まれる Playl temOの数は 2である。 第 2 9図では、 その 2つの?1& 6111()でぁる?1& 1{6111#0と?1& 116111#1の具体例が、 「
PlayList#Oj の檷の下方に記載されている。
PlayList #0に含まれる 1番目の P 1 ay 11 em 0である P 1 ay I tem#0では 、 第 8図で説明した Clip— Information— file— nameが" 00001. CLP"に、 I n— timeが 180, 090に、 0UT_t imeが 27, 180, 090に、 それぞれなっている 。 従って、 PlayList #0の Playl tem#0によって再生されるクリップは 、 クリップ情報フアイル" 00001. CLP"に対応するクリップストリーム ファイル" 00001.PS"の、 時刻 180, 090から 27, 180, 090までである。
PlayList #0に含まれる 2番目の P 1 ay I tem 0である Play 11 em#lでは 、 第8図で説明した(:110—11^01"1^ 011_ 16—11&1116が"00002.(:[^"に、 I n_tinieが 90, 000に、 OUT— t imeが 27, 090, 000に、 それぞれなっている。 従って'、 PlayList #0の P 1 ayl tem#lによって再生されるクリップは、 クリップ情報ファイル" 00002. CLP"に対応するクリッブストリームフ アイル" 00002.PS"の、 時刻 90, 000から 27, 090, 000までである。
一方、 第 2 9図において、 2番目の PlayListOである PlayList tl については、 capture— enable— flag_P yUstが 0となっており、 従つ て、 P yList #1にしたがって再生されるビデオデータの 2次利用が 許可されていない。 また、 PlayList #1については、 number— of— Playl temsが 1となっており、 従って、 PlayList #1に含まれる Playl tem() の数は 1である。 第 2 9図では、 その 1つの PlayltemOである Playlt em#0の具体例が、 「PlayList#l」 の欄の下方に記載されている。
PlayList #1に含まれる 1つの P 1 ay I temOである PI ayltemtOでは、 第 8図で説明した CI ip—Inforn t ion— Π le— nameが" 00003. CLP"に、 In— timeが 90, 000に、 OUT— timeが 81, 09 60, 000に、 それぞれなっている。 従 つて、 PlayList itlの P 1 ayl tem#0によって再生されるクリップは、 ク リップ情報ファイル" 00003. CLP"に対応するクリッブストリームファ ィル" 00003.PS"の、 時刻 90, 000から 81, 090, 000までである。
次に、 第 30図 Aおよび第 30図 Bは、 第 12図で説明したクリッ プ情報ファイル ClipOの具体例を示している。 即ち、 第 30図 Aおよ び第 3 0図 Bは、 第 6図のクリップ情報ファイル" 00001. CLP", " 0000 2. CLP", " 00003. CLP"の具体例を示している。
クリップ情報ファイル" 00001. CLP"においては、 presentation— star t— timeが 90, 000に、 presentat ion— end_t imeが 27, 990, 000に、 それぞ れなっている。 従って、 クリップ情報ファイル" 00001.CLP"に対応す るクリップストリームファイル" 00001.PS"に格納されたプログラムス トリ一ムによれば、 310秒分 ((27,990,000- 90, 000)/90kHz) のコンテ ンッが利用可能である。
また、 クリップ情報ファイル" 00001. CLP"においては、 capture_ena ble_flag— Clipが 1になっており、 従って、 クリップ情報ファイル" 00 001. CLP"に対応するクリップストリ一ムファイル" 00001.PS"に格納さ れたプログラムストリームに多重化されたビデオストリ一ムについて は、 その 2次利用が許可されている。
さらに、 第 3 0図 Aおよび第 3 0図 Bにおいて、 クリップ情報 ァ ィル" 00001. CLP"の number— of_streamsは 4となっており、 従って、 対 応するクリップストリームファイル" 00001.PS"に格納されたプロダラ ムストリームには、 4本のエレメンタリストリームが多重化されてい る。
いま、 その 4本のエレメン夕リストリームを、 stream#0, streamtl , stream#2, s treara#3とすると、 第 3 0図 Aおよび第 3 0図 Bでは、 その 4本のエレメンタリストリ一ム stream#0, streamtl, stream#2, stream^それぞれの S eamlnioO (第 1 2図) の具体例が、 「" 00001 . CLP"」 の欄の下方に記載されている。
クリップストリームフアイル" 00001.PS"の 1本目のエレメン夕リス トリ一ム stream#0については、 s tream_i dが OxEOとなっており、 従つ て、 このエレメンタリストリーム stream#0は、 第 2 3図および第 2 5 図 (あるいは第 1 3図) で説明したように、 ビデオストリームである 。 なお、 本実施の形態では、 ビデオストリームについては、 上述した ように、 private_stream_idは無関係であるが、 第 3 0図 Aおよび第 3 0図8では、 0x00になっている。
また、 クリッブストリームファイル" 00001.PS"の 1本目のエレメン 夕リストリームであるビデオストリーム streani#0については、 その St reamlnfoOに含まれる StaticInfoO (第 1 4図) の picture— sizeが' 7 20X480'に、 frame_rateが' 29.97Hz'に、 cc— f lagが' Yes'に、 それぞ れなっている。 従って、 このビデオストリーム stream#0は、 720X480 ピクセルの、 フレーム周期が 29.97Hzのビデオデ一夕であり、 さらに 、 クローズドキャプションデータを含んでいる。
さらに、 クリッブス卜リ一ムファイル" 00001.PS"の 1本目のエレメ ンタリストリームであるビデオストリーム stream#0については、 Stre amlnfoO (第 1 2図) の number— of— Dynamiclnfoが 0になっており、 s p ts— change— pointと Dynamiclnfo 0とのセットは存在しない。 ■' 次に、 クリップストリ一ムファイル" 00001.PS"の 2本目のエレメン タリストリーム streamitlについては、 3 6&11し1(1が(^80となってぉり 、 private— stream— idが 0x00となっている。 従って、 このエレメン夕 リス.トリ一ム stream#lは、 第 2 3図および第 2 5図で説明したように 、 ATRACオーディオストリームである。
また、 クリップストリームフアイル" 00001. PS"の 2本目のエレメン タリストリ一ムである ATRACオーディォストリ一ム streamttlについて は、 その StreamlnioOに含まれる StaticInfoO (第 1 4図) の audio_ language— code力 '日本語'(こ、 channel— conf igurai ion力 ' STEREO' こ、 lfe— existenceカ O に、 sampl ίη — frequency力 48kHz に、 そ て'れ なっている。 従って、 この ATRACオーディオストリーム streamitlは、 日本語で、 かつステレオのオーディオデ一夕である。 また、 低域強調 チャネルは含まれておらず、 サンプリング周波数は、 48kHzである。 さらに、 クリップストリームファイル:' 00001.PS"の 2本目のエレメ ン夕リストリームである ATRACオーディォストリーム streamsについ ては、 StreamlnfoO (第 1 2図) の number— oし Dynamiclnfoが 0にな つており、 pts_change— pointと DynamicInfoOとのセッ トは存在しな い。
次に、 クリップス卜リームファイル" 00001.PS"の 3本目のエレメン タリストリーム stream については、 s t ream_i dが OxBDとなっており 、 private— stream— idが 0x80となっている。 従って、 このエレメン夕 リストリーム stream#2は、 第 2 3図および第 2 5図で説明したように 、 字幕ストリ一ムである。 また、 クリップストリ一ムファイル" 00001.PS"の 3本目のエレメン 夕リストリ一ムである字幕ストリーム stream については、 その
Figure imgf000070_0001
amlnfoOに含まれる StaticInfoO (第 1 4図) の subt i tie— language— codeが' 日本語'に、 configurable— flagが 0に、 それぞれなっている 。 従って、 この字幕ストリーム stream#2は、 日本語の字幕デ一夕であ り、 また、 その表示方式を変更することは許可されていない。
さらに、 クリップストリームファイル" 00001.PS"の 3本目のエレメ ンタリストリームである字幕ストリーム s eam#2については、 Stream InfoO (第 1 2図) の number— of— Dynamiclnfoが 0になっており、 pts —change一 pointと Dynamiclnfo 0とのセッ 卜は存在しなレ 。
次に、 クリップストリームファイル" 00001.PS"の 4本目のエレメン 夕リストリーム stream#3については、 stream— idが OxBDとなっており 、 private— stream— idが 0x81となっている。 従って、 このエレメン夕 リストリーム stream#3は、 第 2 3図および第 2 5図で説明したように 、 字幕ストリームである。
なお、 クリップストリ一ムファイル" 00001.PS"の 3本目のエレメン 夕リストリームである字幕ストリーム st.ream#2と、 4本目のエレメン 夕リストリームである字幕ストリーム stream#3とを区別するために、 それぞれの pri vat e_st ream—idは、 0x80と 0x81とになっている。
また、 クリップストリームファイル" 00001.PS"の 4本目のエレメン タリストリームである字幕ス卜リーム stream#2については、 その St re amlnfoOに含まれる StaticInfoO (第 1 4図) の subt i t le— language— codeが' 日本語'に、 configurable_nagが 1に、 それぞれなっている 。 従って、 この字幕ストリーム stream#3は、 日本語の字幕データであ り、 また、 その表示方式を変更することが許可されている。
さらに、 クリップストリームファイル" 00001.PS"の 4本目のエレメ ンタリストリームである字幕ストリーム streani#3については、 Stream InfoO (第 1 2図) の number— of Dynamiclnfoが 0になっており、 ts change— pointと Dynamic InfoOとのセットは仔在しない。
次に、 第 3 0図 Aおよび第 3 0図 Bにおいて、 クリップ情報フアイ ル" 00002. CLP"については、 presentation—start— timeが 90, 000に、 pr esentation— end—timeが 27, 090, 000に、 それぞれなっている。 従って 、 クリップ情報ファイル" 00002. CLP"に対応するクリッブストリーム ファイル" 00002.PS"に格納されたプログラムストリームによれば、 30 0秒分 ((27, 090, 000-90, 000) /90kHz) のコンテンツが利用可能である また、 クリップ情報ファイル" 00002. CLP"においては、 capture— ena blejlag—Clipが 0になっており、 従って、 クリップ情報ファイル" 00 002. CLP"に対応するクリッブストリームファイル" 00002.PS"に格納さ れたプログラムストリームに多重化されたビデオストリームについて は、 その 2次利用が許可されていない。
さらに、 第 3 0図 Aおよび第 3 0図 Bにおいて、 クリップ情報ファ ィル" 00002. CLP"の number_oし streamsは 4となっており、 従って、 対 応するクリップストリームファイル" 00002.PS"に格納されたプログラ ムストリームには、 上述したクリップストリームファイル" 00001.PS" における場合と同様に、 4本のエレメンタリストリームが多重化され ている。
いま、 その 4本のエレメン夕リストリームを、 stream#0, stream#l , stream#2, s t ream#3とすると、 第 3 0図 Aおよび第 3 0図 Bでは、
Figure imgf000071_0001
リス卜リーム s tream#0, stream#l, s eam#2 streani#3それぞれの StreanilnfoO (第 1 2図) の具体例が、 「" 00002 .CLP"」 の欄の下方に記載されている。 ここで、 第 3 0図 Aおよび第 3 0図 Bでは、 クリップス トリームフ アイル" 00002.PS"の 1乃至 4本目のエレメンタリストリーム streai^O 乃至 #3それぞれの StreanilnfoOの内容は、 上述したクリッブストリ'一 ムファイル" 00001.PS"の 1乃至 4本目のエレメンタリストリーム st re am#0乃至 #3それぞれの StreamlnfoOの内容と同一になっているので、 その説明は省略する。
なお、 上述のように、 クリ ップストリームファイル" 00002.PS"の 1 乃至 4本目のエレメン夕リストリーム3 6&111#0乃至#3それぞれの5 6 amlnfoOの内容は、 クリップストリームファイル" 00001. PS"の 1乃至 4本目のエレメン夕リストリーム stream#0乃至 #3それぞれの Streamln fo()の内容と同一であるので、 クリッブストリームファイル" 00002. P S"の 1本目のエレメン夕リストリーム stream#0はビデオストリームで あり、 2本目のエレメンタリストリーム s eam#lは ATRACオーディオ ストリームである。 また、 その 3本目のエレメン夕リストリーム stre am#2と、 4本目のエレメンタリストリ一ム s t ream#3は、 いずれも字幕 ス卜リームである。
次に、 第 30図 Aおよび第 30図 Bにおいて、 クリップ情報フアイ ル" 00003. CLP"については、 presentation— start— timeが 90, 000に、 r esentation一 end— timeが 81, 090, 000に、 それぞれなっている。 従って 、 クリップ情報ファイル" 00003. CLP' 'に対応するクリップストリーム ファイル" 00003.PS"に格納されたプログラムストリームによれば、 90 0秒分 ((81, 090, 000-90, 000) /90kHz) のコンテンツが利用可能である また、 クリップ情報ファイル" 00003. CLP"においては、 capture— ena ble— flag— Clipが 1になっており、 従って、 クリップ情報ファイル" 00 003. CLP"に対応するクリップストリームファイル" 00003.PS"に格納さ れたプログラムストリームに多重化されたビデオストリームについて は、 その 2次利用が許可されている。
さらに、 第 3 0図 Aおよび第 3 0図 Bにおいて、 クリップ情報ァァ ィル" 00003.CLP"の numbeし 0し s earnsは 3となっており、 従って、 対 応するクリッブストリ一ムファイル" 00003.PS"に格納されたプロダラ ムストリームには、 3本のエレメン夕リストリームが多重化されてい る。
いま、 その 3本のエレメン夕リストリームを、 stream#0, streamtl , stream#2とすると、 第 3 0図 Aおよび第 3 0図 Bでは、 その 3本の エレメン夕リストリ一ム st.ream#0, streamtl, stream#2それぞれの St reamlnfoO (第 1 2図) の具体例が、 「" 00003. CLP"」 の欄の下方に 記載されている。
クリップストリームファイル" 00003. FS"の 1本目のエレメンタリス トリ一ム siream#0については、 s ί ream—i dが Ολ'ΕΟとなっており、 従つ て、 このエレメン夕リストリーム stream#0は、 第 2 3図および第 2 5 図 (あるいは第 1 3図) で説明したように、 ビデオストリ一ムである 。 なお、 クリップストリームファイル" 0.000i.PS"の 1本目のエレメン タリストリーム stream#0と同様に、 pr ivate— s tream— idは、 0x00にな つている。
また、 クリップストリームファイル" 00003.PS"の 1本目のエレメン 夕リストリームであるビデオストリーム stream#0については、 その St reamlnfoOに含まれる StaticInfoO (第 1 4図) の picture_sizeが' 7 20X480'に、 frame_rateが' 29.97Hz'に、 cc— flagが' No'に、 それぞれ なっている。 従って、 このビデオストリーム siream#0は、 720X 480ピ クセルの、 フレーム周期が 29.97Hzのビデオデ一夕であり、 さらに、 クロ一ズドキヤプションデ一夕を含んでいない。 さらに、 クリップストリームファイル" 00003.PS"の 1本目のエレメ ン夕リストリ一ムであるビデオストリ一ム stream#0については、 s e amlnfoO (第 1 2図) の number— of_DynamicInfoが 2になっており、 従って、 その S t reamlnfo 0には、 pts— change— pointと Dynamiclnfo 0 とのセッ トが 2セッ ト記述されている。
次に、 クリップストリームファイル" 00003.PS"の 2本目のエレメン 夕リストリーム stream#lについては、 s t ream— i dが OxElとなっており 、 従って、 このエレメン夕リストリーム stream#lは、 第 2 3図および 第 2 5図 (あるいは第 1 3図) で説明したように、 ビデオストリーム である。 なお、 クリップストリームファイル" 00003.PS"の 1本目のェ レメン夕リストリームであるビデオストリーム streani#0と、 2本目の エレメン夕リストリームであるビデオストリーム stream#lとを区別す るために、 それぞれの s eam— idは、 OxEOと OxElとになっている。 ま た、 クリップストリームファイル" 00001.PS"の 1本目のエレメン夕リ ストリーム stream#0と同様に、 pr ivate— s tream— idは、 0x00になって いる。
また、 クリッブストリ一ムファイル" Q0003.PS"の 2本目のエレメン タリス トリームであるビデオストリ一ム stream#lについては、 その St reamlnfoOに含まれる S ticInfoO (第 1 4図) の picture_s ize, f r ame— rate, cc— flagが、 1本目のエレメン夕リストリームであるビデ ォストリ一ム streani#0についてのものと同一になっている。 従って、 クリップストリームファイル" 00003.PS"の 2本目のエレメン夕リス 卜 リームであるビデオストリ一ム stream#lは、 720 X 480ピクセルの、 フ レーム周期が 29.97Hzのビデオデ一夕であり、 さらに、 クローズドキ ャプシヨンデ一夕を含んでいない。
さらに、 クリップストリームファイル" 00003.PS' 'の 2本目のエレメ ン夕リストリームであるビデオストリーム stream#lについては、 Stre amlnfoO (第 1 2図) の number— of— Dynamiclnf oが 0になっており p ts— change—pointと Dynamiclnfo 0とのセットは存在しなレ 。 ■ 次に、 クリップストリームファイル" 00003.PS"の 3本目のエレメン タリストリ一ム stream については、 stream— idが OxBDとなっており 、 private_stream— idが 0x00となっている。 従って、 このエレメンタ リストリーム stream#2は、 第 2 3図および第 2 5図で説明したように 、 ATRACオーディオストリームである。
また、 クリップストリームファイル" 00003.PS"の 3本目のエレメン タリストリームである ATRACォ一ディォストリ一ム stream#2について は、 その StreamlnfoOに含まれる StaticInfoO (第 14図) の audio_ 1 anguage— code, channel_conf igurat ion, 1 f e_exis tence, sampling一 frequencyが、 クリップストリームファイル" 00001. PS"の 2本目の:!: レメンタリストリームである ATRACオーディォストリ一ム streamttlの ものと同一になっている。 従って、 クリップストリームファイル" 000 03.PS"の 3本目のエレメン夕リストリームである ATRACオーディォス 卜リーム stream#2は、 日本語で、 かつステレオのオーディオデータで ある。 また、 低域強調チャネルは含まれておらず、 サンプリング周波 数は、 48kHzである。
さらに、 クリップストリームファイル" 00003.PS"の 3本目のエレメ ン夕リストリームである ATRACオーディォストリーム stream#2につい ては、 StreamlnfoO (第 1 2図) の number一 of— Dynamiclnfoが 3にな つており、 従って、 その StreamlnfoOには、 pts— change— pointと Dyna micInfoOとのセッ卜が 3セット記述されている。
次に、 第 3 1図は、 第 1 2図で説明したクリップ情報ファイル Clip 0のうちの EP_map()具体例を示している。 即ち、 第 3 1図は、 第 6図 のクリップ情報ファイル" 00001. CLP"の中の、 第 1 6図の EPjnapOの 具体例を示している。
第 3 1図において、 EP— map()の number— 0し s tream— id_entriesは こ なっており、 従って、 この EP— mapOには、 1つのエレメン夕リストリ —ムについてのデコード開始可能点の情報が記述されている。
また、 第 3 1図の EPjnapOでは、 s t ream— i dが OxEOになっている。 従って、 第 2 3図および第 2 5図で説明したことから、 EPjnapOには 、 OxEOとなっている streanし idによって特定されるビデオストリ一ム についてのデコード開始可能点である RAPI (ランダムアクセスボイン ト情報) の情報として、 PTS— EP_startと RPN_EP_start (第 1 6図) が 記述されている。 即ち、 第 3 1図は、 クリップ情報ファイル" 00001. C LP"の EP— map 0であり、 クリップ情報ファイル" 00001. CLP"に対応する クリップストリームファイル" 00001. CLP"において、 stream— idが OxEO のエレメン夕リストリームは、 第 3 0図 Aおよび第 3 0図 Bで説明し たように、 クリップストリームファイル" 00001. CLP"の 1本目のビデ ォストリーム stream#0であるから、 第 3 1図の EP—map 0に記述されて いる情報は、 そのビデオストリーム stre i#0のデコード開始可能点の PTS— EP一 s t ar tと RPN_EP_s t ar tである。
第 3 1図では、 クリップストリームファイル" 00001. CLP"の 1本目 のビデオストリーム streamsのデコード開始可能点のうちの、 先頭か ら 5点の PTS_EP— startと RPN— EP— startが記載されており、 6点目以降 の PTS— EP— startと RPN_EP— startの記載は省略してある。
RPN— EP— start、 PTS_EP— s t ar t、 1 s tReし P i c ture、 2ndReし Picture, 3rdReし Picture, 4thReし Pictureは、 多重化ストリームに多重化され たすベての RAPIの開始位置に加えて、 RAPI直後に置かれているイント ラピクチャ及びそれにつづく 2枚目、 3枚目、 4枚目の参照画像の終了 位置が示されている。
先頭の RAPIの位置は 0 (セクタ) であり、 直後のイントラピク ヤ の PTSは 90, 000である。 また、 該当イントラピクチャ、 および 2枚目'、 3枚目、 4枚目の参照画像の終了位置は、 RAPIの先頭からの相対セクタ 数でそれぞれ、 28, 37, 48, 58である。
また、 2番目の RAPIの位置は 244 (セクタ) であり、 直後のイント ラピクチャの PTSは 135,045である。 また、 該当イントラピクチャ、 お よび 2枚目、 3枚目、 4枚目の参照画像の終了位置は、 RAPIの先頭から の相対セクタ数でそれぞれ 10, 18, 25, 31である。
さらに、 3番目の RAPIの位置は 305 (セクタ) であり、 直後のイン トラピクチャの PTSは 180, 090である。 また、 該当イントラピクチャ、 および 2枚目、 3枚目、 4枚目の参照画像の終了位置は、 RAPIの先頭か らの相対セクタ数でそれぞれ 25, 44, 50, 54である。
また、 4番目の RAPIの位置は 427 (セクタ) であり、 直後のイント ラピクチャの: PTSは 225, 135である。 また、 該当イントラピクチャ、 お よび 2枚目、 3枚目、 4枚目の参照画像の終了位置は、 RAPIの先頭から の相対セクタ数でそれぞれ 8, 15, 22, 2.9である。
さらに、 5番目の RAPIの位置は 701 (セクタ) であり、 直後のイン トラピクチャの Sは 270, 180である。 また、 該当イントラピクチャ、 および 2枚目、 3枚目、 4枚目の参照画像の終了位置は、 RAPIの先頭か らの相対セクタ数でそれぞれ 26, 32, 41, 48である。
N - th—Ref— picture— copyは、 4点の参照画像終了位置 (IstRefJPict ure、 2ndRef—Picture、 3rc!Ref_Picture, 4thReし Picture) のうち、 所定のセクタ数 (エンコード処理において、 まとめて読出可能なセク 夕数) に近い値が格納される。 第 3 1図においては、 セクタ数が" 30" に一番近いものが選択されている。 例えば、 先頭のェントリに対しては1^3_5?__31& =90,000、 RPN_EP — start = 0である。 N-th— Reし picture— copyは、 28, 37, 48, 58のなか から" 30"に一番近い 28が選択され、 この結果
Figure imgf000078_0001
eし p i c t u r eを示す値 " 0 "が格納されている。
次に、 2番目のエントリに対しては PTS_EP_start = 135, 045、 RPIE P_s rt = 244である。 N_th— Reし pic ture— copyは、 10, 18, 25, 31の なかから" 30"に一番近い 31が選択され、 この結果 index— N— minuslには 4 thReし pictureを示す値" 3"が格納されている。
これにより、 第 3 1図の例の 5点 7のエントリに対する index— Iminus
6
1と N- th_Reし picture— copyは (0, 28) , (3, 31) , (0, 25) , (3 , 29) , (1, 32) が格納される。
この選択アルゴリズムは、 再生機器における再生品質等、 総合的に 勘案して決定される。 そこで、 本実施例においては、 比較的小さいセ クタ数" 30"に一番近いものを選ぶとしているが、 これ以外のセクタ数 であってもよい。 また、 indexJUninuslの値が小さいとき、 RAPIの位 置から N- t.h_Rei_picture一 copyの大きさだけデータを読み込んだとき に、 そこに含まれる参照画像の数が少な.く、 逆に indexji—minuslの値 が大きいときは、 含まれている参照画像の数が多いということになる
さらに、 この例では 5点のデータ全てに 4枚の参照画像の終了位置 が記述されているが、 ビデオエンコードの方法、 あるいはイントラピ クチャの間隔によっては、 参照画像が 4枚未満となる可能性もある。 そのような場合には、 各エントリポイントに対して存在する、 4枚以 下の最大の参照画像の終了位置を記述するという方法も考えられる。 なお、 第 3 1図の EPjnapOにおいて、 pr ivate— s t reanし i dは 0x00に なっているが、 stream_idがビデオストリームを表している場合は、 上述したように、 private— st ream_idは無関係である。
次に、 第 3 2図は、 第 2 9図で説明した P yUst #0と PlayLis #1 (第 7図の P yUst 0) の中の?13 311^ 0の具体例を示'してぃる 第 3 2図上側は、 ayList #0の P 1 ayL i s tMark 0 (第 9図) を示し ている。
第 3 2図上側において、 PlayList #0の P yListMarkOにおける num ber_oし PlayList— marksは 7になっており、 従って、 P yList IfOの Pla yL is tMark 0に含まれる Mark 0の数は 7である。
また、 第 3 2図上側において、 PlayList #0に含まれる 7つの Mark( ;)のうちの 1番目の MarkOである MarkifOは、 markjype (第 9図) が' C hapter'になっているので、 チヤプ夕マ一クである。 さらに、 Mark#0 は、 ref_to— Playltem— id (第 9図) が 0になっているので、 PlayList #0に含まれる第 2 9図の 2つの PlayItem#0と #1のうちの、 PlayItem#0 に属する。 また、 Mark#0は、 mark— t ime— s t ampが 180, 090になっている ので、 PlayList #0に含まれる PlayltemitOによって再生されるクリツ プストリームファイルの時刻 (再生時刻) 180, 090上の印である。 さ らに、 Mark#0は、 entry— ES— stream— idおよび entry— ES— private— strea m— idがいずれも 0になっているので、 いずれのエレメン夕リストリー ムにも関連付けられていない。 また、 Mark#0は、 mark一 dataが 1になつ ているので、 番号が 1のチヤプ夕を表す。
なお、 ここでは、 PlayList #0に含まれる Playl tem#0によって再生 されるクリップストリームファイルは、 第 2 9図で説明した、 その P1
3 116111#0の(:1113_11 011^ 011— 16—1^1116に記述されてぃる"00001. (:1^" から特定されるクリップストリームファイル" 00001.PS"であり、 従つ て、 MarklfOの mark— time stampが表す、 上述した時刻 180, 090は、 クリ ップストリームフアイル" 00001.PS"の時刻である。
第 3 2図上側において、 PlayList #0に含まれる 7つの MarkOの Sう ちの 5番目の MarkOである Mark#4も、 1番目の Mark#0と同様のチヤ'プ 夕マークである。
即ち、 5番目の MarkOである Mark#4は、 mark— type (第 9図) が' Ch apter'になっているので、 チヤプ夕マークである。 さらに、 Mark#4は 、 ref—to—Playltem— id (第 9図) が 1になっているので、 PlayList #0 に含まれる第 2 9図の 2つの Playltem#0と #1のうちの、 Playitem#lに 属する。 また、 Mark#4は、 mark— time— stampが 90, 000になっているの で、 PlayList #0に含まれる Playl tem#lによって再生されるクリップ ストリ一ムファイルの時刻 90, 000上の印である。 さらに、 Mark#4は、 entry— ES— stream— idおよひ en try— ES— private— stream— idがレ ずれも 0 になっているので、 いずれのエレメンタリストリームにも関連付けら れていない。 また、 Mark#4は、 mark_da が 2になっているので、 番号 が 2のチヤプタを表す。
なお、 ここでは、 PlayList #0に含まれる P 1 ay I tem#lによって再生 されるクリップストリームファイルは、 第 2 9図で説明した、 その P1 ayl tem#lの Clip_Infomai ion_fi le— nameに記述されている" 00002. CLP" から特定されるクリップストリームファイル" 00002.PS"であり、 従つ て、 Mark#4のmark—tiIne_stampが表す、 上述した時刻90,000は、 クリ ップストリームファイル" 00002.PS"の時刻である。
また、 第 3 2図上側において、 PlayList #0に含まれる 7つの Mark( )のうちの 2番目の MarkOである Mark#lは、 niark_type (第 9図) が' I ndex'になっているので、 インデクスマークである。 さらに、 Mark#l は、 reし to— Playltem— id (第 9図) が 0になっているので、 PlayList #0に含まれる第 2 9図の 2つの P yltemftOと #1のうちの、 P yltemitO に属する。 また、 Markiflは、 mark— t ime— stampが 5, 580, 090になってい るので、 PlayList #0に含まれる P 1 ay 11 em#0によって再生されるグリ ップストリームファイルの時刻 5, 580, 090上の印である。 さらに、 Mar k#lte、 entry_ES_s t ream— i dおよび ent ry— ES— pr ivate— s t ream— id力 い ずれも 0になっているので、 いずれのエレメン夕リストリームにも関 連付けられていない。 また、 Mark#lは、 mark_dataが 1になっているの で、 番号が 1のインデクスを表す。
なお、 ここでは、 PlayList #0に含まれる Playl tem#0によって再生 されるクリップストリームファイルは、 上述したように、 クリップス トリ一ムファイル" 00001.PS"であり、 従って、 Mark#lの mark— time_st ampが表す、 上述した時刻 5, 580, 090は、 クリップストリームファイル " 00001.PS"の時刻である。
第 3 2図上側において、 PlayList #0に含まれる 7つの MarkOのう ちの 3番目、 6番目、 7番目の MarkOである Mark#2, Markt5, ark#6 も、 2番目の Markltlと同様のインデクスマークである。
また、 第 3 2図上側において、 PlayList #0に含まれる 7つの Mark( )のうちの 4番目の MarkOである Mark#3は、 mark— type (第 9図) が 'E vent'になっているので、 イベントマークである。 さらに、 Mark#3は 、 ref— to— Playltem— id (第 9図) が 0になっているので、 PlayList #0 に含まれる第 2 9図の 2つの PlayItem#0と #1のうちの、 PlayltemifOに 属する。 また、 Mark#3は、 markjime— stampが 16, 380, 090になってい るので、 PlayList #0に含まれる Playl tem#0によって再生されるクリ ップストリームファイルの時刻 16, 380, 090上の印である。 さらに、 Ma rk#3は、 entry— ES—s t ream— idおよび entry— ES— private— s t ream— id力 Sレ ずれも 0になっているので、 いずれのエレメン夕リストリームにも関 連付けられていない。 また、 Mark#3は、 mark dataが 0になっているの で、 引数として 0を伴うイベントを発生させる。
なお、 ここでは、 PlayList #0に含まれる P lay I tem#0によって; ^生 されるクリップストリームファイルは、'上述したように、 クリップス トリ一ムファイル" 00001.PS"であり、 従って、 Mark#3の mark— time一 st ampが表す、 上述した時刻 16,380,090は、 クリップストリ一ムフアイ ル" 00001.PS"の時刻である。
ここで、 第 3 2図上側では、 PlayList #0の PlayListMarkOの一覧 表の欄外の右側に、 M a r 1ί 0が属する P I a y 11 e m 0の先頭からの時間を示 してあり、 さらにその右側に、 PlayList #0の先頭からの時刻を示し てある。
次に、 第 3 2図下側は、 PlayLis lの PlayListMarkO (第 9図) を 示している。
第 3 2図下側において、 PlayLis 1の PlayListMarkOにおける numb er—oし PlayList— marksは 3になっており、 従って、 PlayListJlの PlayL istMarkOに含まれる Mark 0の数は 3である。
また、 第 3 2図下側において、 P yList#lに含まれる 3つの MarkO のうちの 1番目の MarkOである Mark#0は、 markjype (第 9図) が' Ch apter'になっているので、 チヤプ夕マークである。 さらに、 Mark#0は 、 ref_to_PlayItem_id (第 9図) が 0になっているので、 PlayListm に含まれる第 2 9図の 1つの PlayltemttOに属する。 また、 MarkltOは、 mark— time—stampが 90, 000になっているので、 PlayList#lに含まれる P layltem#0によって再生されるクリッブストリ一ムファイルの時刻 90, 000上の印である。 さらに、 Mark#0は、 entry— ES—s tream— idおよび ent ry—ES— private— st reamjdがいずれも 0になっているので、 いずれのェ レメンタリストリームにも関連付けられていない。 また、 Mark#0は、 mark— dataが 0になっているので、 番号が 0のチヤプ夕を表す。 なお、 ここでは、 ?1& ぃ5 1に含まれる?1& 116111#0にょって再生さ れるクリップストリームファイルは、 第 2 9図で説明した、 その Play I tem#0の CI ip— Infonmt ion— Π le_nameに記述されている" 00003. CLP"か ら特定されるクリッブストリームフ: rィル" 00003.PS"であり、 従って 、 Mark#0の mark— time— stampが表す、 上述した時刻 90, 000は、 クリツ ブストリームファイル" 00003.PS"の時刻である。
第 3 2図下側において、 PlayList#lに含まれる 3つの MarkOのうち の 2番目の MarkOである Mark#lは、 mark— type (第 9図) 力 'Event'に なっているので、 イベントマークである。 さらに、 Mark#lは、 ref—〖o — Playltem— id (第 9図) が 0になっているので、 PlayLis t#lに含まれ る第 2 9図の 1つの PlayItem#0に属する。 また、 Markiflは、 mark— tini e一 st ampが 27, 090, 000になっているので、 PlayList#lに含まれる Playl tem#0によって再生されるクリッブストリ一ムファイルの時刻 27, 090, 000上の印である。 さらに、 Markitlは、 entry_ES_streanし idが OxEOで 、 entry— ES— private— stream—id力 0になっているので、 stream— idが Ox E0で特定されるエレメンタリストリーム、 即ち、 第 2 3図および第 2 5図で説明したように、 ビデオストリームに関連付けられている。 ま た、 Mark#lは、 mark— dataが 1になっているので、 引数として 1を伴う イベントを発生させる。
なお、 ここでは、 PlayList#lに含まれる P yltemifOによって再生さ れるクリッブストリームフアイルは、 上述したように、 クリッブスト リームファイル" 00003.PS"であり、 従って、 MarklHの markjime— stam pが表す、 上述した時刻 27, 090, 000は、 クリップストリームファイル" 00003.PS"の時刻である。
また、 Mark#lが関連付けられている、 s eam_i dが OxEOのビデオス 'トリ一ムは、 その Mark#lが属する、 第 2 9図の PlayLis lに含まれる Playl tem#0の CI ip— Infomat ion— Π le一 nameに記述されている" 00003. CL P"に記述されている stream_idが OxEOのビデオストリ一ム、 即ち、 第 3 0図 Aおよび第 3 0図 Bのクリップ情報ファイル" 00003. CLP"がら 特定される、 クリップストリームファイル" 00003.PS"に多重化されて いる 3本のエレメン夕リストリーム stream#0乃至 Πのうちの、 1本目 のエレメン夕リストリーム (ビデオストリーム) stream#0である。 次に、 第 3 2図下側において、 PlayListtnに含まれる 3つの MarkO のうちの 3番目の MarkOである Mark#2は、 mark_type (第 9図) が 'Ev ent'になっているので、 イベントマークである。 さらに、 Mark#2は、 ref_to_PlayItem_id (第 9図) が 0になっているので、 P yListitlに 含まれる.第 2 9図の 1つの PlayItem#0に属する。 また、 Mark#lは、 ma rk_Ume— stampが 27, 540, 000になっているので、 PlayList#lに含まれ る PlayItem#0によって再生されるクリップストリ一ムフアイルの時刻 27, 540, 000上の印である。 さらに、 Mark#2は、 en t ry— ES— s t ream_i dが OxElで、 entry— ES—private_stream_idが 0になっているので、 stream— idが OxElで特定されるエレメンタリストリ一ム、 即ち、 第 2 3図およ び第 2 5図で説明したように、 ビデオス.トリームに関連付けられてい る。 また、 Mark#2は、 mark_da が 2になっているので、 引数として 2 を伴うィベントを発生させる。
なお、 ここでは、 PlayList#lに含まれる PlayItem#0によって再生さ れるクリップストリ一ムファイルは、 上述したように、 クリップスト リームファイル" 00003.PS"であり、 従って、 Mark#2が表す、 上述した 時刻 27, 540, 000は、 クリ ップストリームファイル" 00003.PS"の時刻で める。
また、 Mark#2が関連付けられている、 s t ream— i dが OxElのビデオス トリ一ムは、 その Mark#2が属する、 第 2 9図の P yList#lに含まれる Playl tem#0の CI ip— Infomat ion— Π le— nameに記述されている" 00003. CL P"に記述されている stream— idが OxElのビデオス トリ一ム、 即ち、 S第 3 0図 Aおよび第 3 0図 Bのクリップ情報ファイル" 00003. CLP"がら 認識される、 クリッブストリ一ムファイル'' 00003.PS"に多重化されて いる 3本のエレメンタリストリーム stream#0乃至 #2のうちの、 2本目 のエレメンタリストリーム (ビデオストリーム) stream#lである。 ここで、 第 3 2図下側では、 P yList#lの PlayListMarkOの一覧表 の欄外の右側に、 MarkOが属する PlayltemOの先頭からの時刻を示し てある。
なお、 第 3 2図においては、 チヤプ夕マークやインデクスマークが 表すチヤプ夕ゃィンデクスの番号が、 mark_da に記述されているが 、 チヤプ夕マークゃィンデクスマ一夕が表すチヤプタゃィンデクスの 番号は、 mark— dataに記述しなくても、 例えば、 PlayListMarkOにお けるチヤプタマ一クゃインデクスマークの数をカウントすることによ つて認識することができる。
[ディスク再生装置の動作説明]
次に、 第 1図のディスク 1 0 1に、 第.2 9図乃至第 3 2図で説明し たようなデ一夕が記録されているとして、 第 1図のディスク再生装置 の動作について説明する。
ここで、 多重方式としている MPEG2- systemの規定に拠れば、 タイム スタンプは全てのアクセスュニッ 卜に付加する必要は無く、 その間隔 が 0.7秒以下で良いとされている。 つまり、 タイムスタンプを持つァ クセスユニッ トと持たないアクセスユニッ トが存在する。
尚、 ここで説明している例では、 デコード開始位置のビデオストリ —ムのアクセスユニッ トには必ず夕ィムス夕ンプが付加されていると 仮定している。 すなわち 「再生準備処理」 で後述するように、 デコー ド開始位置は EP— map 0を使用して式 PTS— EP— s t a r t≤ I N— ti n】eを満たす 最大の PTS_EP—startを、 二分探索 (バイナリサーチ) 等を用いて検索 している。 EPjnapOに登録されているビデオの再生開始位置直後のァ さらに、 孤立フィールド(non-paired field)は存在しないとしてい る。 すなわち、 pic— struc 1のアクセスユニッ トの直後には必ず pic— struct = 2のアクセスュニッ 卜が置かれる。 また pic— s uct = 2のァクセ スュニッ トの直後には必ず pic— struc 1のアクセスュニッ 卜が置かれ る。
さらにこの例では pic— s uct= 7と 8は発生しないとする。
ディスク 1 0 1がディスク ドライブ 1 0 2に挿入されると、 その旨 を示すメッセージがドライブインターフェ一ス 1 1 4、 さらには、 第 2図 Aおよび第 2図 Bのオペレーティングシステム 2 0 1を経由して 、 ビデオコンテンツ再生プログラム 2 1 0に伝えられる。 ビデオコン テンッ再生プログラム 2 1 0は、 ディスク 1 0 1がディスク ドライブ 1 0 2に挿入された旨のメッセ一ジをオペレーティングシステム 2 0 1から受信すると、 第 3 3図の再生前処理を開始する。
「再生前処理」
即ち、 第 3 3図は、 ビデオコンテンツ再生プログラム 2 1 0が行う 再生前処理を説明するフローチャートである。
ここで、 以下、 フロ一チャートによって説明するディスク再生装置 の動作または処理は、 必ずしもフローチヤ一トとして記載された順序 に沿って時系列に行われる必要はなく、 並列的あるいは個別に行われ ることもある。 但し、 本明細書では、 便宜上、 ディスク再生装置の動 作または処理を、 フローチャートに沿って説明する。
再生前処理では、 ビデオコンテンツ再生プログラム 2 1 0は、 ステ ップ S 1 0 1において、 オペレーティ ングシステム 2 0 1のファイル システム機能を使用して、 ディスク 1 0 1をチェックし、 ディスク f l 0 1力 ビデオコンテンツ再生プログラム 2 1 0用の正常なデイス' 'ク であるか否かを判定する。
ここで、 上述したように、 ディスク 1 0 1へのアクセス (ファイル の読み出し) は、 オペレーティングシステム 2 0 1のファイルシステ ム機能を使用して行われるが、 以下では、 その説明は、 適宜省略する ステツプ S 1 0 1において、 ディスク 1 0 1が正常なディスクでな いと判定された場合、 即ち、 例えば、 ディスク 1 0 1に採用されてい るファイルシステムが、 オペレーティングシステム 2 0 1の対応して いないタイプであった場合や、 ルートディ レク トリに" V I DEO"ディ レ ク トリが置かれていない場合、 ビデオコンテンツ再生プログラム 2 1 0はディスク 1 0 1に対応していないと判断して、 ステップ S 1 0 2 に進み、 グラフィクス処理モジュール 2 1 9力 、 エラ一処理を行って 、 再生前処理を終了する。
即ち、 グラフィクス処理モジュール 2 .1 9は、 エラ一処理として、 ディスク 1 0 1が正常でない旨のエラ一メッセージを生成し、 ビデオ 出力モジュール 2 2 0から出力させ、 これにより、 エラーメッセージ を表示させる。 なお、 エラー処理としては、 その他、 例えば、 オーデ ィォ出力モジュール 2 2 1からの警告音の出力や、 ディスク ドライブ 1 0 2からのディスク 1 0 1の排出等を行うようにすることが可能で ある。
一方、 ステップ S 1 0 1において、 ディスク 1 0 1が正常なデイス クであると判定された場合、 ステップ S 1 0 3に進み、 ビデオコンテ ンッ再生プログラム 2 1 0は、 コンテンツデータ供給モジュール 2 1 3によって、 ォペレ一ティングシステム 2 0 1に対し、 ディスク 1 0 1 (第 6図) の" VIDEO"ディ レク トリに置かれている" SCRIPT. DAT"' アイルと、 "PLAYLIST.DAT"ファイルとの 2つのデータファイルを要求 して読み込み、 ステップ S 1 0 4に進む。 ステップ S 1 0 4では、 "S CRIPT. DAT"フアイルが、 スクリブト制御モジユール 2 1 1に供給され るとともに、 "PLAYLIST.DAT"ファイルが、 プレイヤ制御モジュール 2 1 2に供給される。
その後、 ステップ S 1 0 4から S 1 0 5乃至 S 1 0 7に進み、 プレ ィャ制御モジュール 2 1 2は、 初期化処理を行う。 なお、 スクリプト 制御モジュール 2 1 1は、 プレイヤ制御モジュール 2 1 2の初期化処 理が終了するまで待つ。
「プレイヤ制御モジュール 2 1 2の初期化処理」
初期化処理では、 ステップ S 1 0 5において、 プレイヤ制御モジュ ール 2 1 2が、 "PLAYLIST.DAT"ファイルの解析を行い、 "PLAYL1ST.DA T"ファイルの中で使われているクリップ情報ファイルの数とそのファ ィル名を調査する。
即ち、 いまの場合、 "PLAYLIST.DAT"フ.アイルは、 第 2 9図に示した ものとなっており、 プレイヤ制御モジュール 2 1 2は、 第 2 9図の" P LAYL 1ST. DAT"フアイルにおいて number_o f_P 1 ayL i s t sが 2になっている ことから、 1番目の PlayListlfOと 2番目の PlayListitlとの 2つの Play List 0が存在することを認識する。 さらに、 プレイヤ制御モジュール 2 1 2は、 第 2 9図の" PLAYLIST.DAT"ファイルにおける 1番目の P 1 ay List#0について、 numbeし of_Playnems力 2となっていることから、 そ の PlayList#0には、 1番目の Playl tem#0と 2番目の Playltem#lとの 2 つの PlayltemOが存在することを認識する。 そして、 プレイヤ制御モ ジュール 2 1 2は、 第 2 9図の" PLAYLIST.DAT"ファイルにおける、 P1 ayListifOに含まれる 1番目の PlayltemitOと 2番目の PI ay I temiflそれぞ れの Clip— Information_file_nameを参照することにより、 PlayLisl#0 に含まれる 1番目の PlayItem#0のクリ ップ情報ファイルが' ' 00001. CLP "であり、 2番目の Playltemitlのクリップ情報ファイルが" 00002. CLP" であることを認識する。
プレイヤ制御モジュール 2 1 2は、 2番目の PlayListiflについても 同様にして、 その number一 of_PlayItemsが 1であることから、 1つの P1 ay It em 0 (PlayItem#0) が存在し、 さらに、 その PlayItem#0の中の C1 ip— Information— file— nameから、 その PlayltemitOのクリップ情報ファ ィルが" 00003. CLP"であることを認識する。
その後、 ステップ S 1 0 5から S 1 0 6に進み、 プレイヤ制御モジ ユール 2 1 2は、 ディスク 1 0 1から、 ステップ S 1 0 5で認識した クリップ情報ファイル、 即ち、 ディスク 1 0 1の" VIDEO"ディ レク ト リ内の" CLIP"ディ レクトリから 3つのクリップ情報ファイル" 00001. C LP", " 00002. CLP", " 00003. CLP"を読み込む。
ここで、 ステップ S 1 0 6でのクリップ情報ファイルの読み込みは 、 最初に再生される PlayListOの Playlt.emのクリップ情報ファイルだ けで十分であるが、 本実施の形態では、 上述したように、 すべての P1 ayList 0の PlayltemOのクリップ情報ファイルを先読みしておく こと とする。
ステップ S 1 0 6の処理後は、 ステップ S 1 0 7に進み、 プレイヤ 制御モジュール 2 1 2は、 ステップ S 1 0 5で認識したクリップ情報 ファイルの読み込みに成功したかどうかを判定し、 さらに、 その読み 込んだクリップ情報フアイルに対応するクリップストリームフアイル 力 、 ディスク 1 0 1に存在するか否かを判定する。 即ち、 ステップ S 1 0 7では、 クリップ情報ファイル" 00001. CLP", " 00002. CLP" , "000 03. CLP' 'の読み込みに成功し、 さらに、 そのクリップ情報ファイル" 00 001. CLP", " 00002. CLP", " 00003. CLP"それぞれとファイル名の拡張子 のみが異なるクリッブス 卜リ—ムファイル" 00001.PS"、 " 00002.PS"'、 " 00003.PS"が、 ディスク 1 0 1の" VIDEO"ディ レク トリの下にある" ST REAM"ディ レク トリに存在するかどうかを判定する。
ステツプ S 1 0 7において、 ステツプ S 1 0 5で認識したクリップ 情報ファイルの読み込みに失敗したと判定されるか、 または、 クリツ プ情報ファイルに対応するクリッブス 卜リームファイルが、 ディスク 1 0 1に存在しないと判定された場合、 即ち、 例えば、 "PLAYLIST.DA T"ファイルにしたがった再生に必要なクリップ情報ファイルゃクリッ ブストリ一ムファイルが、 ディスク 1 0 1に記録されていない場合、 ビデオコンテンッ再生プログラム 2 1 0は、 ディスク 1 0 1に対応し ていないと判断して、 ステップ S 1 0 2に進み、 上述したエラ一処理 が行われ、 再生前処理を終了する。
一方、 ステップ S 1 0 7において、 ステップ S 1 0 5で認識したク リップ情報ファイルの読み込みに成功し、 かつ、 クリップ情報フアイ ルに対応するクリップストリームファイルが、 ディスク 1 0 1に存在 すると判定された場合、 プレイヤ制御モジュール 2 1 2は、 初期化処 理を終了し、 ステップ S 1 0 8に進む。
ステップ S 1 0 8では、 スクリプ卜制御モジユール 2 1 1 、 " SCR IPT.DAT"ファイルの解釈と実行を開始する。
例えば、 いま、 スクリプト制御モジュール 2 1 1が、 "SCRIPT.DAT" ファイルを実行することにより、 1番目の PlayList () (PlayList#0) の再生が、 プレイヤ制御モジュール 2 1 2に指示されたとすると、 第 3 4図の再生処理が行われる。
「再生処理」 即ち、 第 34図は、 ビデオコンテンツ再生プログラム 2 1 0が行う 再生処理を説明するフローチャートである。 ¾ 「再生準備処理」 " 再生処理では、 プレイヤ制御モジュール 2 1 2は、 まずステップ S 1 2 1と S 1 2 2において、 スクリプト制御モジュール 2 1 1から再 生を指示された PlayList 0、 即ち、 1番目の P 1 ayL i s t 0 (PI ayL i s t#0 ) の再生準備処理を行う。
即ち、 プレイヤ制御モジュール 2 1 2は、 ステップ S 1 2 1におい て、 1番目の PlayList#0に含まれ 8る 9 1番目の Playltem#0の INJime ( 第 8図) を確認して、 ステップ S 1 2 2に進み、 1番目の PlayLisiJO に含まれる 1番目の PlayItem#0によって再生されるクリップストリー ムファイル" 00001.PS"上の、 その Playnem#0の IN— timeに相当する、 再生を開始する再生開始位置を調査する。
ここで、 PlayltemOの IN— time (第 8図) が、 クリップストリーム ファイルの先頭を指し示している場合には、 クリップストリームファ ィルの先頭から、 プログラムストリームを読み出せば良いが、 IN_tim eが、 クリップストリームファイルの先頭以外を指し示している場合 には、 IN— timeに対応する位置を検出し、 そこからプログラムストリ ームを読み出す必要がある。
具体的には、 第 2 9図に示した場合、 1番目の PlayList#0に含まれ る 1番目の P yltemltOの INJimeは、 180,090である。 プレイヤ制御モ ジュール 2 1 2は、 1番目の P yL is t#0に含まれる 1番目の: Play Item #0によって再生されるクリップストリームフアイル" 00001. CLP"の、 第 3 1図に示した EP— mapOから、 P 1 ay 11 eni#0の IN— timeである 180, 090 に適した再生開始位置を探し出す。
即ち、 プレイヤ制御モジュール 2 1 2は、 例えば、 EPjiapOに記述 されたデコード開始可能点を表す PTS_EP_startのうちの、 式 PTS— EP— s rt≤IN_timeを満たす最大の PTS_EP— s rtを、 二分探索 ひ'ィヂリ サーチ) 等を用いて検索する。 ここで、 IN— time以下の PTS_EP_sta.Tt を検索するのは、 IN— timeによって表される位置が、 デコード開始可 能点であるとは限らないからである。
いまの場合、 IfLUmeは、 上述したように、 180, 090である。 また、 1番目の PlayListJOに含まれる 1番目の Play ltem#0によって再生され るクリップストリームファイル" 00001. CLP"の、 第 3 1図に示した EP— map 0においては、 式 PTS_EP— start≤IN— t imeを満たす最大の PTS— EP— s tartとして、 180, 090が記述されている。 従って、 プレイヤ制御モジ ユール 2 1 2では、 第 3 1図に示した EPjnapOから、 その 180, 090と なっている PTS一 EP一 s tartが検索される。
さらに、 プレイヤ制御モジュール 2 1 2では、 その検索された PTS_ EP— startに対応する RPN_EP_startである 305 (セクタ) が読み出され 、 その 305である RPN—EP— startによって表されるクリップストリーム ファイル" 00001.PS"上の位置が、 再生開始位置として決定される。 プレイヤ制御モジュール 2 1 2は、 以上のようにして再生開始位置 を決定すると、 ステップ S 1 22から S 1 2 3に進み、 タイムコ一ド を表示するように、 グラフィクス処理モジュール 2 1 9を制御する。 グラフィクス処理モジュール 2 1 9は、 プレイヤ制御モジュール 2 1 2の制御にしたがい、 タイムコードを生成してビデオ出力モジュール 2 2 0に出力する。 これにより、 タイムコードの表示が開始される。 ここで、 ステップ S 1 2 3で表示が開始されるタイムコードは、 例 えば、 PlayList 0の先頭を 00:00:00 (時間:分:秒) に換算した値とす る。 なお、 タイムコードとともに、 またはタイムコードではなく、 チ ャプ夕ゃィンデクスの番号を表示するようにしても良い。 「PlaylistMark()の解析処理」
ステップ S 1 2 3でタイムコードの表示が開始された後は、 ス ツ プ S 1 2 4に進み、 プレイヤ制御モジュール 2 1 2は、 スクリブ卜制 御モジュール 2 1 1から再生を指示された P yList()、 即ち、 1番目 の PlayList 0 (PlayListftO) に記述されている PlayListMarkO (第 9 図) を解析する解析処理を行う。
具体的には、 プレイヤ制御モジュール 2 1 2は、 既に読み込んであ る" PLAYLIST. DAT"ファイルにおける 1番目の PlayList#0の、 第 3 2図 上側に示した P 1 ayL i s t Mark 0において、 画 be r—o f_P layLis t— marksが 7になっていることから、 その PlayList#0に含まれる MarkOの数が 7 であることを認識する。
さらに、 プレイヤ制御モジュ一ル 2 1 2は、 PlayListltOに含まれる 、 第 3 2図上側の 7つの MarkOを解析し、 その ref— to_PlayI tem— idか ら、 7つの MarkOのうちの 1番目から 4番目までの 4つの Mark 0が、 PlayListftOの 1番目の P yltemO (PlayItem#0) に属していることを 認識する。
その後、 プレイヤ制御モジュール 2 1 2は、 PlayList#0の 1番目の PUyltemltOに属している 4つの MarkOの mark_t ime— sta即を取り出し 、 要素数が 4の配列として、 デコード制御モジュール 2 1 4に渡す。 即ち、 これにより、 第 3 2図上側の 7つの MarkOのうちの 1番目から 4番目までの 4つの MarkOそれぞれの mark— time_stampである(180, 09 0}、 {5, 580,090}、 {10,980,090}、 U 6, 380, 090}の 4つの時刻が、 プレイヤ制御モジュール 2 1 2から、 デコード制御モジュール 2 1 4 に渡される。 このときこれら時刻の属性は 「マーク処理」 であること も、 プレイヤ制御モジュール 2 1 2から、 デコード制御モジュール 2 1 4に伝えられる。 デコード制御モジュール 2 1 4は、 計時部 2 1 4 Aで計時している時刻が、 「マーク処理」 の属性の時刻に一致したと き、 その旨を示すメッセージ、 「マーク処理」 の属性の時刻に一^:し た時刻、 および 「マーク処理」 の属性を、 プレイヤ制御モジュール 2 1 2に伝える。
「再生するエレメンタリストリームの決定処理」
次に、 ステップ S 1 2 4から S 1 2 5に進み、 プレイヤ制御モジュ ール 2 1 2は、 再生するエレメン夕リストリ一ムを決定する。
即ち、 プレイヤ制御モジュール 2 1 2は、 スクリプト制御モジュ一 ル 2 1 1から再生を指示された ayListOである 1番目の P 1 ayL i s t #0 における 1番目の PlayltemltO (第 2 9図) の CI ip— InformaUon— f ime— nameにファイル名が記述されている、 第 3 0図 Aおよび第 3 0図 Bの クリップ情報ファイル" 00001. CLP"において、 number— 0し st reamsが 4 になっていることから、 対応するクリップストリームファイル" 00001 .PS"に、 4本のエレメン夕リストリームが多重化されていることを認 識する。 さらに、 プレイヤ制御モジュール 2 1 2は、 その 4本のエレ メン夕リストリームに対する、 第 3 0図 Aおよび第 3 0図 Bのクリツ プ情報ファイル" 00001.CLP"の StaticInf.oOの stream_idと必要な priv at stream— idを順に調査し、 その 4本のエレメン夕リストリームが 、 1本のビデオストリーム、 1本の ATRACオーディオストリーム、 お よび 2本の字幕ストリームであることを認識する。 即ち、 クリップス トリームファイル" 00001.PS"に多重化されている各属性のエレメン夕 リストリームの本数が認識される。
なお、 クリッブス卜リームファイルに多重化されている各属性のェ レメンタリス トリームの本数の情報は、 再生中でのエレメン夕リスト リームの切り替え (オーディオ切り替え、 字幕切り替え等) に使用さ れる。 また、 字幕ストリームは、 クリップス トリームファイル中に存 W 在しない (コンテンツに字幕が含まれない) 場合があり、 字幕ストリ ームが存在するかどうかの判断に、 「字幕ストリーム」 の属性の:^レ メン夕リストリームの本数の情報が使用される。 ' プレイヤ制御モジュール 2 1 2は、 以上のような S ticInfoOの調 査の結果に基づいて、 再生するエレメンタリストリ一ムを選択、 決定 するが、 いまの場合、 クリップストリームファイル" 00001.PS"に多重 化されている 4本のエレメン夕リス卜リームの中に、 「ビデオストリ ーム」 と 「オーディオストリーム」 の属性のエレメン夕リストリ一ム は、 それぞれ 1本しかないので、 「ビデオストリーム」 と 「オーディ ォストリーム」 の属性のエレメン夕リストリームについては、 選択の 余地がなく、 その 1本のビデオストリームとオーディオストリーム ( ATRACオーディオス トリーム) が、 再生するエレメンタリストリーム として決定される。
また、 「字幕ストリーム」 の属性のエレメンタリストリームについ ては、 クリップストリームファイル" 00001.PS"に多重化されている 4 本のエレメンタリストリームの中に 2本存在するので、 その 2本の字 幕ストリ一ムのうちのいずれか 1本の字幕ストリームが、 再生するェ レメン夕リストリームとして選択、 決定される。 ここでは、 例えば、 2本の字幕ス卜リ一ムのうちの、 クリップ情報フアイル" 00001. CLP" での出現順で最初の字幕ストリームが選択されることとする。
ここで、 上述のように、 クリップストリ一ムファイル" 00001.PS"に 多重化されている 4本のエレメンタリストリームの属性と本数を認識 するにあたっては、 その 4本のエレメン夕リストリームそれぞれを特 定する必要があるが、 プレイヤ制御モジュール 2 1 2は、 クリップス トリ一ムファイル" 00001.PS' 'に多重化されている 4本のエレメン夕リ ストリームの特定を、 streamjdと必要な private stream idによって ίτつ。
即ち、 プレイヤ制御モジュール 2 1 2は、 クリップス トリーム ァ ィル" 00001.PS"に多重化されている 4本のエレメン夕リストリームの うちの、 「ビデオストリーム」 の属性のエレメン夕リストリームであ るビデオストリームを、 第 3 0図 Αおよび第 3 0図 Βでクリップ情報 ファイル" 00001. CLP"について説明したように、 OxEOとなっている str eani_idで特定する。
また、 プレイヤ制御モジュール 2 1 2は、 クリップストリームファ ィル" 000(H.PS"に多重化されている 4本のエレメンタリストリームの うちの、 「オーディオストリーム」 の属性のエレメン夕リストリーム である ATRACォ一ディォス トリームを、 第 3 0図 Aおよび第 3 0図 B でクリップ情報ファイル" 00001. CLP"について説明したように、 OxBD となっている stream— id、 および 0x00となっている pr ivate—s t ream— id で特定する。
さらに、 プレイヤ制御モジュール 2 1 2は、 クリップストリームフ アイル" 00001.PS"に多重化されている 4本のエレメン夕リストリーム における 「字幕ストリーム」 の属性の Xレメン夕リストリームである 2本の字幕ストリームそれぞれを、 第 3 0図 Aおよび第 3 0図 Bでク リップ情報ファイル" 00001. CLP"について説明したように、 OxBDとな つている stream— id、 および 0x80となっている private_stream— idと、 OxBDとなっている stream_id、 および 0x81となっている pri vat e_strea m— idで、 それぞれ特定する。
以上のように、 クリップス卜リームファイルに対応するクリップ情 報フアイルのメタデータとして記述される s earn— idと private— strea m_idの組み合わせによって、 そのクリップストリームファイルに多重 化されているエレメンタリス トリームを特定することができる。 ここで、 stream— idと private—streanし idの組み合わせは、 MPEG2 - Sy stemの多重化を拡張するために設けたメカニズムである。 この st ream —idと private— s earn— idの組み合わせを、 メタデータにおいて、 卫レ メン夕リストリ一ムを特定するために使用することにより、 エレメン 夕リストリームを確実に特定することが可能になる。 また、 将来、 pr ivate stream— idの意味を拡張し、 対応するエレメンタリストリーム の本数や属性を増やした場合にも現在のメカニズムをそのまま使用可 能であるため、 拡張性において勝っている。
即ち、 例えば、 BD(Blu- ray Disc 9) 5規格では、 データの特定に、 MPEG 2規格のトランスポ一トストリ一ム(Transport Stream)の PID(Packet ID)が用いられるため、 MPEG2規格に拘束される。 また、 例えば、 DVD- Video規格では、 pr ivate一 st ream— idに類似する sub一 st ream_idが定義 されているが、 sub_stream_idは、' ストリームの特定のためにデータ ベ一ス上に記述することができるようにはなっておらず、 8本あるい は 32本のストリーム情報を記述する固定的な領域に記述することがで きるにすぎないため (たとえば VI4- 49、 テーブル 4.2.1-2 (VTS-AST—A TRT) や VI4- 52、 テーブル 4.2.卜 3 (VTSJPST— ATRT) 等参照) 、 拡張 性に乏しい。
これに対して、 stream— idと private一 stream— idの組み合わせは、 メ タデ一夕が記述される、 例えば、 第 1 2図のクリツプ情報ファイル C 1 ip()において、 number一 0し streamsで表すことができる数だけ記述す ることができ、 従って、 クリップストリームファイルに多重化されて いるエレメン夕リストリームを、 その数によらず (但し、 number一 of一 streamsで表すことができる数の範囲) 、 クリップ情報ファイル CI ip ( )に記述されたメタデータとしての 5 6&111—1(1と01"^&16_31^&111—1(1の 組み合わせから特定することが可能となる。 なお、 本実施の形態では、 sti'eam_idと private— stream_idの組み合 わせは、 第 1 2図のクリップ情報ファイルにおいて、 対応するクリ'ッ プス卜リームファイルに多重化されているエレメンタリストリーム'を 特定するのに使用される他、 例えば、 第 9図の PlayListMarkOにおけ ¾entry_ES_s tream_id< entry_ES_pr iv te_s t ream— idの組み合わせと して、 MarkOを関連付けるエレメン夕リストリ一ムの特定にも使用さ れる。 さらに、 stream— idと private_stream_idの組み合わせは、 その 他、 例えば、 第 1 6図の EPjnapOにおいて、 デコード可能開始点の情 報を記述するエレメンタリストリー 9 6ムの特定にも使用される。
「出力属性の制御処理」
その後、 ステップ S 1 2 5から S 1 2 6に進み、 プレイヤ制御モジ ユール 2 1 2は、 再生対象のエレメン夕リストリーム、 即ち、 ステツ プ S 1 2 5で再生すると決定したエレメン夕リストリームの出力属性 の制御処理を行う。
具体的には、 プレイヤ制御モジュール 2 1 2は、 まず、 再生対象の エレメンタリストリーム、 即ち、 ステップ S 1 2 5で再生すると決定 したビデオストリーム、 ATRACオーディすストリーム、 字幕ストリ一 ムそれぞれについて、 出力属性が記述される DynamicInfoO (第 1 5 図) の数を表す number— of— Dynamiclnfo (第 1 2図) を調査する。
ここで、 いまの場合、 再生対象のビデオストリーム、 ATRACオーデ ィォストリーム、 字幕ストリームは、 クリップストリームファイル" 0 0001. PS"に多重化されているエレメン夕リストリームであり、 それら の number— of— Dynamiclnfoは、 第 3 0図 Aおよび第 3 0図 Bの" 00001. CLP"で説明したように、 いずれも 0になっている。 このように、 再生 対象のエレメン夕リストリームのすべてについて、 number_of— Dynami clnfoが 0である場合、 プレイヤ制御モジュール 2 1 2は、 再生対象の エレメンタリストリ一ムの出力属性の制御処理としては、 特に処理を 行わない。
なお、 再生対象のエレメン夕リストリームについての number一 of二 Dy namiclnfoが 0でない場合に、 そのエレメン夕リストリームの出力属性 の制御として行われる処理については、 後述する。
「再生開始の準備処理」
ステップ S 1 2 6の処理後は、 ステップ S 1 2 7に進み、 プレイヤ 制御モジュール 2 1 2は、 再生対象のエレメンタリストリ一ムの再生 開始の準備処理を行う。 9
7
即ち、 プレイヤ制御モジュール 2 1 2は、 コンテンツデ一夕供給モ ジュール 2 1 3に対し、 再生対象のエレメン夕リストリームが多重化 されているクリッブストリ一ムファイル" 00001.PS"のファイル名と、 ステップ S 1 2 2で決定した再生開始位置である EP— niapOに記述ざれ た RPN— EP— start (=305) を与える。
さらに、 プレイヤ制御モジュール 2 1 2は、 再生対象のエレメン夕 リストリ一ムが多重化されているクリッブストリームファイル" 00001 .PS"に格納されたプログラムス卜リーム.の、 Γ\つファ制御モジュール 2 1 5への供給が開始される前に、 バッファ制御モジュール 2 1 5を 初期化する。
具体的には、 バッファ制御モジュール 2 1 5 (第 5図) では、 デー 夕先頭ポインタ記憶部 2 3 1に記憶されるデータ先頭ポインタ、 デー 夕書き込みボインタ記憶部 2 3 2に記憶されるデータ書き込みボイン 夕、 ビデオ読み出しポインタ記憶部 2 4 1に記憶されるビデオ読み出 しボイン夕、 オーディォ読み出しボイン夕記憶部 2 5 1に記憶される オーディオ読み出しポインタ、 字幕読み出しポインタ記憶部 2 6 2に 記憶される字幕読み出しボイン夕に、 同じ値が代入される。 これにより、 データ先頭ポインタ記憶部 2 3 1に記憶されたデータ 先頭ポインタと、 データ書き込みポインタ記憶部 2 3 2に記憶され ¾た データ書き込みポインタとは、 バッファ制御モジュール 2 1 5のノゃッ ファ 2 1 5 Aの同一の位置を指す。 これは、 ノ ッファ 2 1 5 Aに、 有 効なデ一夕が蓄積されていない状態を表す。
さらに、 プレイヤ制御モジュール 2 1 2は、 再生対象のエレメン夕 リストリームを特定するための識別情報としての stream_id、 さらに は、 必要に応じて、 private— stream_idを、 バッファ制御モジュール 2 1 5に供給する。
即ち、 上述したように、 再生対象のエレメン夕リストリームのうち の、 「ビデオストリーム」 の属性のビデオストリームは、 OxEOとなつ ている stream— idによって特定され、 「ォ一ディォストリーム」 の属 性の ATRACオーディオストリームは、 OxBDとなっている stream— id、 お よび 0x00となっている private— stream—idによって特定され、 「字幕 ストリーム」 の属性の字幕ストリームは、 OxBDとなっている stream— i d、 および 0x80となっている private_streanし idによって特定される。 プレイヤ制御モジュール 2 1 2は、 これらの stream— idと private_str earn— idを、 バッファ制御モジュール 2 1 5に供給する。
バッファ制御モジュール 2 1 5 (第 5図) では、 ビデオ読み出し機 能部 2 3 3が、 プレイヤ制御モジュール 2 1 2からの、 ビデオストリ —ムについての OxEOとなっている stream_idを、 s t ream— idレジスタ 2 4 2に記憶させる。 また、 オーディオ読み出し機能部 2 3 4が、 プレ ィャ制御モジュール 2 1 2からの、 OxBDとなっている stream— idと、 0 xOOとなつてレ る private— stream— idを、 s t ream— idレジス夕 2 5 2と p rivate— streamjdレジスタ 2 5 3に、 それぞれ記憶させる。 さらに、 字幕読み出し機能部 2 3 5が、 プレイヤ制御モジュール 2 1 2からの 、 OxBDとなっている stream_idと、 0x80となっている pr i vat e一 s earn— idを、 stream— idレジス夕 2 6 3と private— stream_idレジスタ 2 6 4 に、 それぞれ記億させる。 ' なお、 プレイヤ制御モジュール 2 1 2は、 バッファ制御モジュール 2 1 5に供給した再生対象のエレメン夕リストリームの stream_idと p rivate— streanし idを、 今後の処理のために記憶する。 プレイヤ制御モ ジュール 2 1 2は、 これらの stream—idや private_stream一 idを、 後述 するス卜リ一ム切り替えを要求するメッセージの発生時や、 後述する マーク処理において現在再生中のストリ一ムを特定するために使用す る。
プレイヤ制御モジュール 2 1 2は、 バッファ制御モジュール 2 1 5 (第 5図) の初期化として、 さらに、 再生対象のエレメン夕リストリ —ムが多重化されているクリップストリームファイルに応じた値の字 幕読み出し機能フラグを、 字幕読み出し機能フラグ記憶部 2 6 1にセ ッ 卜する。
即ち、 いまの場合、 再生対象のエレメン夕リストリームが多重化さ れているクリップス卜リームファイル" 00001.PS"には、 字幕ストリ一 ムが含まれるため、 字幕読み出し機能部 2 3 5を機能させるために、 値が 1の字幕読み出し機能フラグが、 字幕読み出し機能フラグ記憶部 2 6 1にセッ トされる。 なお、 再生対象のエレメン夕リストリームが 多重化されているクリップストリームフアイルに字幕ス卜リームが含 まれていない場合、 字幕読み出し機能フラグ記憶部 2 6 1には、 値が 0の字幕読み出し機能フラグがセッ トされる。 この場合、 字幕読み出 し機能部 2 3 5は特に処理を行わない。
また、 プレイヤ制御モジュール 2 1 2は、 スクリプト制御モジユー ル 2 1 1から再生を指示された 1番目の PlayList#0に含まれる 1番目 2005/021070 の Playltem#0 (第 2 9図) の IN_t imeである 180, 090と、 OUT— timeであ る 27, 180, 090とを、 デコード制御モジュール 2 1 4に対して与える s。 デコード制御モジュール 2 1 4では、 IN—timeは、 PlayltemOによ'つ て再生されるクリップのデコード開始の制御に、 0UT_timeは、 そのク リップのデコード終了、 さらには、 後述する P yltem乗り換えの制御 に、 それぞれ使用される。
さらに、 プレイヤ制御モジュール 2 1 2は、 グラフィクス処理モジ ュ一ル 2 1 9に対する字幕ストリームの表示方式の指示を初期化する 。 即ち、 プレイヤ制御モジュール 2 1 2は、 字幕ストリームの表示方 式を、 例えば、 デフォルトの表示方式とするように、 グラフィクス処 理モジュール 2 1 9を制御する。
「データ読み込み開始」
その後、 ステップ S 1 2 7から S 1 2 8に進み、 プレイヤ制御モジ ユール 2 1 2は、 コンテンツデータ供給モジュ ル 2 1 3を制御し、 これにより、 コンテンツデ一夕供給モジュール 2 1 3は、 オペレ一テ イングシステム 2 0 1の機能を使用して、 再生対象のエレメン夕リス トリームが多重化されたプログラムスト.リームが格納されたクリップ ストリームファイルを読み出す。 すなわち、 コンテンツデータ供給モ ジュール 2 1 3は、 ディスク 1 0 1 (第 6図) の" VIDEO"ディ レク ト リの下にある" STREAM"ディ レク トリのクリッブストリ一ムフアイル" 0 0001. PS"を指定し、 さらに、 ステップ S 1 2 2で決定された再生開始 位置である 305セク夕を指定して、 オペレーティ ングシステム 2 0 1 に対してファイル読み出しを要求する。 また、 コンテンツデータ供給 モジュール 2 1 3は、 ディスク 1 0 1から読み出したデータを、 ノ ツ ファ制御モジュール 2 1 5に供給するように指定する。
これにより、 ディスク 1 0 1からの、 クリップストリ一ムフアイル " 00001. PS"に格納されたプログラムストリームの読み出しが開始され 、 そのプログラムストリームは、 バッファ制御モジュール 2 1 5に供 給される。
バッファ制御モジュール 2 1 5 (第 5図) は、 ディスク 1 0 1から 読み出されて供給されたプログラムストリームを、 バッファ 2 1 5 A のデータ書き込みボイン夕記憶部 2 3 2のデ一夕書き込みボイン夕が 指す位置に書き込み、 書き込んだデータのサイズだけデータ書き込み ポインタをインクリメントする。
ここで、 以下、 特に断らない限り、 コンテンツデ一夕供給モジュ一 ル 2 1 3は、 バッファ制御モジュール 2 1 5のバッファ 2 1 5 Aに空 きがあれば、 ディスク 1 0 1からデータを読み出し、 バッファ制御モ ジュール 2 1 5のバッファ 2 1 5 Aに供給して記憶させることとする 。 従って、 バッファ 2 1 5 Aには、 常時、 十分なデ一夕が蓄積されて いるとする。
「デコーダ制御開始」
以上のようにして、 ディスク 1 0 1からのデ一夕の読み出しが開始 され、 そのデ 夕がバッファ制御モジュール 2 1 5のバッファ 2 1 5 Aに蓄積され始めると、 ステップ S 1 2 8から S 1 2 9に進み、 デコ —ド制御モジュール 2 1 4は、 ビデオデコーダ制御モジュール 2 1 6 、 オーディオデコーダ制御モジュール 2 1 7、 字幕デコーダ制御モジ ユール 2 1 8を制御し、 デコード動作の前段階として、 バッファ 2 1 5 Aからのデ一夕の読み出しを開始させる。
即ち、 これにより、 ビデオデコーダ制御モジュール 2 1 6は、 バッ ファ制御モジュール 2 1 5 (第 5図) のビデオ読み出し機能部 2 3 3 にデータを要求し、 その要求に応じてバッファ制御モジュール 2 1 5 から渡される、 ノ'ッファ 2 1 5 Aに記憶された 1つのビデオアクセス ユニット、 そのビデオアクセスユニッ トに付加されている PTSと DTS ( 以下、 適宜、 タイムスタンプという) 、 およびデコード開始可能 の 直前に配置されている private_stream— 2の PES— packet 0に記述された 情報 (以下、 適宜、 付加情報ともいう) である pic_strucし copyや、 a u_reし flag、 AUJengthなどを得る。 なお、 タイムスタンプは、 ビデ ォデコーダ制御モジュール 2 1 6がビデオアクセスュニッ トを得る毎 に、 ビデオデコーダ制御モジュール 2 1 6からデコード制御モジユー ル 2 1 4に渡される。
ここで以下の時刻更新のために使用する pic— strucし copyは、 ビデ ォ読み出し機能部 2 3 3から渡されたものであるが、 構文解析の結果 得られたビットストリーム中に含まれる pic— structを使用することも 可能である。
一方、 オーディオデコーダ制御モジュール 2 1 7も、 バッファ制御 モジュール 2 1 5 (第 5図) のオーディオ読み出し機能部 2 34にデ —夕を要求し、 その要求に応じてバッファ制御モジュール 2 1 5から 渡される、 バッファ 2 1 5 Aに記憶された 1つの(ATRAC)ォ一ディォ アクセスユニッ トと、 そのオーディォアクセスュニットに付加されて いるタイムスタンプ (PTS, DTS) を得る。 なお、 タイムスタンプは、 オーディオデコーダ制御モジュール 2 1 7がオーディオアクセスュニ ットを得る毎に、 オーディオデコーダ制御モジュール 2 1 7からデコ —ド制御モジュール 2 1 4に渡される。
さらに、 字幕デコーダ制御モジュール 2 1 8は、 バッファ制御モジ ユール 2 1 5 (第 5図) の字幕読み出し機能部 2 3 5にデ一夕を要求 し、 その要求に応じてバッファ制御モジュール 2 1 5から渡される、 バッファ 2 1 5 Aに記憶された 1つの字幕アクセスユニッ トと、 その 字幕アクセスュニッ 卜に付加されているタイムスタンプを得る。 なお 、 タイムスタンプは、 字幕デコーダ制御モジュール 2 1 8が字幕ァク セスユニッ トを得る毎に、 字幕デコーダ制御モジュール 2 1 8か έデ コード制御モジュール 2 1 4に渡される。 また、 再生対象のエレメン タリストリームに、 字幕ストリームが存在しない場合や、 バッファ 2 1 5 Αに、 字幕アクセスユニットが記憶されていない場合は、 バッフ ァ制御モジュール 2 1 5から字幕デコーダ制御モジュール 2 1 8には 、 データは渡されない。
ここで、 ビデオデコーダ制御モジュール 2 1 6、 オーディオデコ一 ダ制御モジュール 2 1 7、 および字幕デコーダ制御モジュール 2 1 8 は、 バッファ制御モジュール 2 1 5に対してデータを要求する毎に、 そのデ一夕の要求に対する結果を、 デコード制御モジュール 2 1 4に 渡す。
また、 バッファ制御モジュール 2 1 5から、 ビデオデコーダ制御モ ジュール 2 1 6、 オーディオデコーダ制御モジュ一ル 2 1 7、 および 字幕デコーダ制御モジュール 2 1 8に対してデータが渡されるときの 、 そのデータのバッファ 2 1 5 Aからの読み出しの詳細については、 後述する。 .
「デコ一ド開始」
以上のように、 ビデオデコーダ制御モジュール 2 1 6、 オーディオ デコーダ制御モジュール 2 1 7、 字幕デコーダ制御モジュール 2 1 8 が、 ッファ制御モジュール 2 1 5のバッファ 2 1 5 Aからデータを 読み出し始めると、 ステツプ S 1 2 9から S 1 3 0に進み、 そのデ一 夕のデ'コードが開始される。
即ち、 デコード制御モジュール 2 1 4は、 ステップ S 1 2 7でプレ ィャ制御モジュール 2 1 2から与えられた、 P l ayL i s t #0に含まれる 1 番目の P l ay I t em#0の IN t i meである 180, 090、 さらには、 ビデオデコー ダ制御モジュール 2 1 6、 オーディオデコーダ制御モジュール 2 1 7 、 字幕デコーダ制御モジュール 2 1 8からステップ S 1 2 9で説明''し たように渡されるタイムスタンプに基づき、 同期を確保するために必 要であればタイミングをずらして、 デコード開始を、 ビデオデコーダ 制御モジュール 2 1 6、 オーディオデコーダ制御モジュール 2 1 7、 および字幕デコーダ制御モジュール 2 1 8に指令する。
ここで、 同期を確保するためのタイミングをずらしたデコード開始 の指令の方法は、 例えば、 特許第 3496725号に記載されており、 簡単 には、 ビデオデコーダ制御モジュ 11ー oル 2 1 6、 オーディオデコーダ制
4
御モジュール 2 1 7、 字幕デコーダ制御モジュール 2 1 8それぞれか ら渡されたタイムスタンプのうちの最小値を、 計時部 2 1 4 Aによつ て計時される時刻の初期値として設定して時刻の計時を開始し、 計時 部 2 1 4 Aによって計時される時刻と、 タイムスタンプとがー致した 時点で、 デコード開始を指令する方法がある。
ビデオデコーダ制御モジュール 2 1 6は、 デコード制御モジュール 2 1 4からのデコード開始の指示を受け、 その指示に応じて、 バッフ ァ制御モジュール 2 1 5 (第 5図) のビデオ読み出し機能部 2 3 3か ら得た 1つのビデオアクセスユニットを、 ビデオデコーダ 1 1 6 (第 1図) に渡してデコードさせる。 さらに、 ビデオデコーダ制御モジュ —ル 2 1 6は、 ビデオデコーダ 1 1 6によるデコードの結果得られる ビデオデータを、 グラフィクス処理モジュール 2 1 9に供給する。 以後、 ビデオデコーダ制御モジュール 2 1 6は、 バッファ制御モジ ユール 2 1 5のビデオ読み出し機能部 2 3 3から得られる 1ずつのビ デォアクセスュニッ 卜を、 ビデオデコーダ 1 1 6で順次デコードし、 そのデコードの結果得られるビデオデ一夕を、 グラフィクス処理モジ ュ一ル 2 1 9に供給していく。 このとき、 ビデオデコーダ 1 1 6内部では、 デコードと出力でビデ ォデ一夕の順番入れ替え (リオーダリング) が発生している。 例え ^ば 第 3 5図に示すように、 デコードの順番は I I , BO, P3, B2, P5, B4'だ が、 表示の順番は B0, I I , B2, P3, B4, P5になることがある。 このた めにビデオデコーダ 1 1 6内にはデコード後の画像を s t o reしておく ための decoded p i c t ure bu f f erが設けられている。 第 3 5図において 、 Inは、 n番目の Iピクチャを示し、 Bnは、 n番目の Bピクチャを示し 、 Pnは、 n番目の Pピクチャを示している。
一方、 オーディオデコーダ制御モジュール 2 1 7も、 デコード制御 モジュール 2 1 4からのデコード開始の指示を受け、 その指示に応じ て、 バッファ制御モジュール 2 1 5 (第 5図) のオーディオ読み出し 機能部 2 3 4から得た 1つのオーディォアクセスュニッ卜を、 オーデ ィォデコーダ 1 1 7 (第 1図) に渡してデコードさせる。 さらに、 ォ —ディォデコーダ制御モジュール 2 1 7は、 オーディオデコーダ 1 1 7によるデコードの結果得られるオーディオデータを、 オーディオ出 力モジュール 2 2 1に供給する。
以後、 オーディオデコーダ制御モジュール 2 1 7は、 バッファ制御 モジュール 2 1 5のォ一ディォ読み出し機能部 2 3 4から得られる 1 ずつのオーディォアクセスュニットを、 オーディォデコーダ 1 1 7で 順次デコードし、 そのデコードの結果得られるオーディオデ一夕を、 オーディォ出力モジュール 2 2 1に供給していく。 '
また、 字幕デコーダ制御モジュール 2 1 8も、 デコード制御モジュ ール 2 1 4からのデコード開始の指示を受け、 その指示に応じて、 バ ッファ制御モジュール 2 1 5 (第 5図) の字幕読み出し機能部 2 3 5 から得た 1つの字幕アクセスユニットを、 内部に持つ字幕デコードソ フトウェアでデコードし、 そのデコードの結果得られる字幕デ一夕 ( 字幕の画像データ) を、 グラフィクス処理モジュール 2 1 9に供給す る。
以後、 字幕デコーダ制御モジュール 2 1 8は、 バッファ制御モジュ ール 2 1 5の字幕読み出し機能部 2 3 5から得られる 1ずつの字幕ァ クセスユニッ トを、 内部に持つ字幕デコードソフ トウェアで順次デコ —ドし、 そのデコードの結果得られる字幕データを、 グラフィクス処 理モジュール 2 1 9に供給していく。
「グラフィクス処理」
その後、 ステップ S 1 3 0から S 1 3 1に進み、 グラフイクス処理 モジュール 2 1 9は、 上述したようにして、 ビデオデコーダ制御モジ ユール 2 1 6から供給されるビデオデータ、 さらには、 必要に応じて 、 字幕デコーダ制御モジュール 2 1 8から供給される字幕データを対 象に、 グラフィクス処理を行う。
即ち、 グラフィクス処理モジュール 2 1 9は、 まず字幕デコーダ制 御モジュール 2 1 8からの字幕データを、 プレイヤ制御モジュ一ル 2 1 2からの表示方式の指示に従って、 拡大や縮小等する字幕処理を行 う。 プレイヤ制御モジュール 2 1 2から.、 表示方式の指示がない場合 、 またはデフォルトの表示方式の指示があった場合、 グラフィクス処 理モジュール 2 1 9は、 字幕デコーダ制御モジュール 2 1 8からの字 幕デ一夕を、 そのまま保存する。
さらに、 グラフィクス処理モジュール 2 1 9は、 ビデオデコーダ制 御モジュ一 ./レ 2 1 6からのビデオデータと、 字幕デコーダ制御モジュ —ル 2' 1 8からの字幕データ、 または字幕処理後の字幕データとを加 算し、 ビデオデコーダ制御モジュール 2 1 6からのビデオデータに字 幕データがオーバーレイされた出力ビデオデータを得て、 ビデオ出力 モジュール 2 2 0に供給する。 なお、 グラフィクス処理モジュール 2 1 9は、 スクリプト制御モジ ユール 2 1 1やプレイヤ制御モジュール 2 1 2から、 例えば、 メ ュ —や、 メッセージ、 タイムコード、 チヤプ夕またはインデクスの番号 等の情報の表示の指示を受けた場合は、 その情報を生成し、 出力ビデ ォデ一夕にォ一パ一レイして、 ビデオ出力モジュール 2 2 0に供給す
「出力処理」
ステップ S 1 3 1の処理後は、 ステップ S 1 3 2に進み、 ビデオ出 力モジュール 2 2 0は、 ステップ S 1 3 1で説明したようにしてダラ フィクス処理モジュール 2 1 9から供給される出力ビデオデ一夕を、 F IFO 2 2 O Aに順次記憶させ、 その F IFO 2 2 O Aに記憶された出力ビ デォデ一夕を、 あらかじめ決められた出力レートで順次出力する。 ビデオ出力モジュール 2 2 0は、 F IFO 2 2 O Aの記憶容量 (残量) に余裕がある限り、 グラフィクス処理モジュール 2 1 9からの出力ビ デォデ一夕を受け入れるが、 余裕がない場合には、 出力ビデオデ一夕 の受け入れの停止を、 グラフィクス処理モジュール 2 1 9に要求する 。 これにより、 グラフィクス処理モジュ.一ル 2 1 9は、 処理を停止す るとともに、 処理の停止を、 ビデオデコーダ制御モジュール 2 1 6お よび字幕デコーダ制御モジュール 2 1 8に要求する。 これにより、 ビ デォデコーダ制御モジュール 2 1 6および字幕デコーダ制御モジユー ル 2 1 8が処理を停止する。
ビデオ出 モジュール 2 2 0は、 出力ビデオデータの受け入れの停 止を、 グラフィクス処理モジュール 2 1 9に要求した後に、 F IF0 2 2 0 Aからの出力ビデオデ一夕の出力が進み、 F IFO 2 2 O Aに余裕がで きた時点で、 出力ビデオデ一夕の受け入れを、 グラフィクス処理モジ ユール 2 1 9に要求する。 この要求は、 出力ビデオデータの受け入れ の停止の要求と同様に、 グラフィクス処理モジュール 2 1 9から、 ビ デォデコーダ制御モジュール 2 1 6および字幕デコーダ制御モジ 一 ル 2 1 8に伝えられる。 これにより、 グラフィクス処理モジュール 2 1 9、 さらには、 ビデオデコーダ制御モジュール 2 1 6および字幕デ コーダ制御モジュール 2 1 8は、 停止していた処理を再開する。
一方、 オーディォ出力モジュール 2 2 1も、 ステップ S 1 3 0で説 明したようにしてオーディオデコーダ制御モジュール 2 1 7から供給 されるオーディオデータを、 F IF0 2 2 1 Aに順次記憶させ、 その F IFO 2 2 1 Aに記憶されたオーディオデータを、 あらかじめ決められた出 力レート (サンプリング周波数) で順次出力する。
オーディオ出力モジュール 2 2 1は、 F IF0 2 2 1 Aの記憶容量 (残 量) に余裕がある限り、 オーディオデコーダ制御モジュール 2 1 7か らのオーディオデータを受け入れるが、 余裕がない場合には、 オーデ ィォデ一夕の受け入れの停止を、 ォ一ディォデコーダ制御モジュール 2 1 7に要求する。 これにより、 オーディオデコーダ制御モジュール 2 1 7は、 処理を停止する。
オーディオ出力モジュール 2 2 1は、 .オーディオデータの受け入れ の停止を、 オーディオデコーダ制御モジュール 2 1 7に要求した後に 、 F IFO 2 2 1 Aからのオーディォデ一夕の出力が進み、 F IF0 2 2 1 A に余裕ができた時点で、 オーディオデ一夕の受け入れを、 オーディオ デコーダ制御モジュール 2 1 7に要求する。 これにより、 オーディオ デコーダ制御モジュール 2 1 7は、 停止していた処理を再開する。 以上のようにして、 ビデオ出力モジュール 2 2 0およびオーディオ 出力モジュール 2 2 1からデータが出力されるにつれて、 エレメン夕 リストリームのデコードが行われていく。
[ビデオデコーダ 1 1 6の内部構造の説明] 第 3 6図にビデオデコーダ 1 1 6の内部構造を示す。 この例ではビ デォデコーダ 1 1 6の内部はビデオデコードエンジン 1 1 6八と0 8 (デコ一デッ ドピクチャバッファ) 1 1 6 Bで構成されている。 DPB 1 1 6 Bの内部はさらに細分化されており、 DPB 1 1 6 B— 1乃至 DPB 1 1 6 B - n (以降において、 特に区別する必要が無い場合、 単に DB P 1 1 6 Bと称するものとする) で構成されている。 さらに、 第 3 7 図で示されるように、 DPB 1 1 6 Bの内部はビデオバッファ 3 0 1と 付加情報バッファ 3 0 2に分けられている。
ビデオデコードエンジン 1 1 6 A oはビデオデ一夕のデコード処理に
9
際して、 デコード中のビデオデ一夕を一時保存する、 あるいは将来の 参照画像として使用するために保持する等の用途のために、 DPB 1 1 6 Bのビデオバッファ 3 0 1を使用する。 このとき、 付加情報バッフ ァ 3 0 2には、 ビデオバッファ 3 0 1に保存されたビデオデータに対 応するべき、 ビデオ読み出し機能部 2 3 3から得た付加情報や、 ァク セスユニットを構文解析して得られたパラメ一夕 (例えば p i s t ruc t 等) が記録される。
次に、 第 1図のディスク再生装置がディスク 1 0 1を再生するとき の全体の処理または動作の流れは、 第 3 3図および第 3 4図で説明し たとおりであるが、 以下、 ディスク再生装置においてディスク 1 0 1 の再生が行われているときの、 その他の処理または動作について説明 す
[時刻情幸 をデコード制御モジュール 2 1 4に渡す]
以下、 時計 (計時部 2 1 4 A ) の更新について説明する。 ビデオデ コーダ制御モジュール 2 1 6は、 入力したビデオアクセスュニットを ビデオデコーダ 1 1 6に指示してデコードさせる。 ビデオデコーダ 1 1 6によるデコード及びリオ一ダリング処理の後、 1フレーム (2フ ィ一ルド) 分のビデオデータがグラフィクス処理モジュール 2 1 9に 出力されると同時に、 該当ビデオデータのタイムスタンプ (PTS/lks ) と pic— struct情報がビデオデコーダ制御モジュール 2 1 6からデコ ード制御モジュール 2 1 4に渡される。
アクセスュニッ トの pic— s uctが 1あるいは 2の場合にはこれらは 1フィールド分のアクセスユニッ トであるため、 1フレーム分とする ために 2つ分のアクセスュニッ 卜の出力が行われる段階で先行フィー ルドの pk— structと、 先行フィ一ルドのアクセスュニッ トにタイムス タンプが有った場合にはタイムス夕ンプが、 ビデオデコーダ制御モジ ユール 2 1 6からデコード制御モジュール 2 1 4に渡される。 ここで 先行フィールドがタイムスタンプを持たない場合には、 タイムスタン プがないという情報が渡される。 上述したように孤立フィールドは許 していないため、 pic_structが 1あるいは 2のフィ一ルドの直後には pic_structが 2あるいは 1のフィールドが置かれている。 この 2のフ ィールドを 1にまとめに扱うときには、 先行しているフィ一ルドの夕 ィムスタンプを代表値として使用する。
また、 アクセスユニッ トの pic— struct.が 0 , 3 , 4, 5 , 6の場合 には、 1のアクセスュニッ 卜の出力が行われる段階で 1の pic一 struct と、 該当アクセスユニッ トにタイムスタンプが有った場合にはタイム スタンプが、 ビデオデコ一ダ制御モジュ一ル 2 1 6からデコード制御 モジュール 2 1 4に渡される。 タイムスタンプを持たないアクセスュ ニッ トでは、 タイムスタンプがないという情報が渡される。
デコード制御モジュール 2 1 4は、 受け取ったタイムスタンプと pi c_struciの情報を用いて計時部 2 1 4 Aを更新する。
以下、 第 3 8図のフローチャートを参照して更新の方法を説明する デコード制御モジュール 2 1 4は、 受け取ったアクセスユニットが タイムスタンプが付加されているか否かを判定する (ステップ s r 4
1 ) 。 例えば、 アクセスユニットにタイムスタンプが付加されていた 場合、 デコード制御モジュール 2 1 4は、 タイムスタンプ(PTS)の値 を計時部 2 1 4 Aに設定する (ステップ S 1 4 2 ) 。 上述したように デコード開始直後は必ずタイムスタンプが存在するため、 初回でも問 題は発生しない。 アクセスュニッ卜にタイムスタンプが付加されてい なかった場合、 現在時刻に前回の pic— structで決まる値を加算する ( ステップ S 1 44) 。 その後、 今回の pic_structを次回の処理のため に保存し終了する (ステップ S 1 4 3) 。
pic_structで決まる値は、 第 3 9図で示されるように、 保存してあ つた pic_structが 0, 3あるいは 4だった場合、 計時部 2 1 4 Aは 2 フィ一ルド時間分の時間を加算する。 また pic— structが 5あるいは 6 であった場合、 計時部 2 1 4 Aは 3フィールド時間分の時間を加算す る。 さらに、 保存してあった pic— structが 1あるいは 2だった場合、 計時部 2 1 4 Aは 2フィ一ルド時間分の時間を加算する。
このような時刻変更処理により、 計時部 2 1 4 Aの示す時刻の値は 、 ビデオデコ一ダ制御モジユール 2 1 6からグラフイクス処理モジュ —ル 2 1 9への出力が終了した ( 1フレーム分の) アクセスユニット の表示開始時刻を示す。 すなわち、 該当ビデオデータがタイムスタン プを持つ場合には PTSが代入される。 またタイムスタンプを持たない 場合には、 表示順で直前のビデオデータの表示間隔が加算される。
この例ではビデオ符号化方式として AVCを使用しているが、 例えば M PEG2- Videoにおいても repeat— firsし fieldを使用することによりァク セスュニッ 卜の表示 dura onを知ることができる。
なお、 上述したように、 この場合も、 FIF02 2 0 Aの記憶容量に余 裕がない場合にはビデオデコーダ制御モジュール 2 1 6からのビデオ データの出力が停止する。 この場合には計時部 2 1 4 Aの更新も 動 的に停止する。 また、 F IF0 2 2 0 Aへのビデオデータの更新が再開す ると計時部 2 1 4 Aの更新も自動的に再開する。
すなわち、 ュ一ザからの指示により再生モードがポーズ状態に遷移 した場合、 ビデオ出力モジュール 2 2 0の更新が止められることによ り、 連動してビデオデコ一ダ制御モジュール 2 1 6が停止し、 さらに それとリンクしている時計 (計時部 2 1 4 A ) も連動して止められる ことを意味している。 また、 ポ一ズ状態から通常再生状態へ復帰した 場合、 ビデオ出力モジュールの更新が許可されることにより、 連動し てビデオデコーダ制御モジュール 2 1 6の動作およびビデオデータの 出力が再開され、 さらにそれとリンクしている時計 (計時部 2 1 4 A ) も連動して更新が再開されることを意味している。
このような動作はスロー再生に対しても期待できる。 すなわち、 ス ロー再生はポーズと通常再生を短い周期で交互に繰り返している状態 であり、 その際にも時計 (計時部 2 1 4 A ) はビデオ出力に同期して 更新される。 .
なお、 この例では計時部 2 1 4 Aの更新をビデオデコーダ制御モジ ユール 2 1 6からのビデオデータ出力と同期して行うと説明した。 し かしながら、 ビデオデコーダ制御モジュール 2 1 6以降のディレイ、 ここではグラフィクス処理モジュール 2 1 9およびビデオ出力モジュ —ル 2 2 0で生じるディレイが大きい場合、 実際にユーザに対して提 供されているビデオデータと時計 (計時部 2 1 4 A ) の関係がずれて しまう可能性がある。 そのような場合には、 時計 (計時部 2 1 4 A ) の更新をビデオ出力モジュール 2 2 0からのビデオデ一夕出力と同期 して行うという方式を採用することによって防ぐことが可能である。 具体的には、 グラフィクス処理モジュール 2 1 9とビデオ出力モジ ユール 2 2 0および FIFO 2 2 0 Aでのビデオデータの処理部分に、 第
3 7図を参照して説明した付加情報バッファ 3 02を追加し、 出力に いたるまで、 ビデオデータと付加情報を常に一組として扱う。 さらに 、 ビデオ出力モジュール 2 2 0からのビデオデータの出力に際して、 対応する付加情報がデコード制御モジュール 2 1 4に渡される。 デコ ード制御モジュールは上述したアルゴリズムにより時計 (計時部 2 1
4 A) を更新する。
このような方法をとることにより、 ビデオデコーダ以降のディレイ の多少にかかわらず、 表示されるビデオデ一夕と時計 (計時部 2 1 4 A) の同期を合わせることが可能になる。
結果として、 ストリームデ一夕を再生する装置で、 単独にカウント する時計を備えていない状態であっても、 正確にストリームデータを 再生することが可能となり、 CPU1 1 2などの処理負荷を低減させる ことが可能となる。
[Playltem乗り換え]
第 3 3図および第 34図で説明した うにして、 第 2 9図における 1番目の PlayListifOの 1番目の Playl tem#0の再生が始まるが、 P yLi st#0によれば、 その 1番目の PlayItem#0の再生が終了すると、 2番目 の Playltemttlの再生が開始される。 即ち、 Playl tem#0から Playl tem#l に PI ay It emを乗り換える PI ay It em乗り換えが行われる。
次に、 第 40図のフローチャートを参照して、 この Playliem乗り換 えの処理について説明する。
第 3 3図および第 34図で説明したようにして、 第 2 9図における PlayListitOの 1番目の Playl tem#0のクリップの再生が開始されると、 デコード制御モジュール 2 1 4 (第 2図 Aおよび第 2図 B) は、 その 1番目の PlayltemifOの再生が行われている間、 内蔵する計時部 2 1 4 Aが計時している時刻を確認し続けている。
「PlayItem#0の再生終了」 ' そして、 デコード制御モジュール 2 14は、 計時部 2 1 4Aが計時 している時刻が、 第 34図のステップ 1 2 7でプレイヤ制御モジユー ル 2 1 2から与えられた 1番目の?1& 6111#0の0{]11_ ]116でぁる27, 180 ,090 (第 29図) に等しくなると、 ステツプ S 1 5 1において、 デコ 一ド中断制御を行い、 Playnem#0の再生を終了する。
ところで、 計時部 2 1 4Aは、 90kHzで変化するものではない場合 、 すなわち、 ビデオデータの出力に応じて時刻を更新するという方式 である場合、 計時部.2 1 4 Aが計時している時刻は、 厳密には、 Play ltem#0の OUT— timeと等しくならないことがある。 そのようなとき、 P1 ayltem#0の OUTJimeの時刻と計時部 2 1 4 Aの計時する時刻が近傍の 値となったタイミングで、 デコード中断制御が行われ、 PlayItem#0の 再生が終了されることになる。 尚、 この処理については、 第 5 1図, 第 5 2図を参照して詳細を後述する。
即ち、 デコード制御モジュール 2 14.は、 ビデオデコーダ制御モジ ユール 2 1 6、 オーディオデコーダ制御モジュール 2 1 7、 字幕デコ ーダ制御モジュール 2 1 8を操作して、 デコード動作を停止させる。 さらに、 デコード制御モジュール 2 14は、 ビデオ出力モジュール 2 20を制御し、 現在出力中の出力ビデオデータを引き続き出力させる また、 デコード制御モジュール 2 1 4は、 1番目の PlayltemifOの再 生が終了した旨のメッセージを、 プレイヤ制御モジュール 2 1 2に伝 える。
「PlayItem#lの再生開始」 プレイヤ制御モジュール 2 1 2は、 上述したように、 第 33図のス テツプ S 1 0 5で、 1番目の PlayList #0に、 1番目の P yl
Figure imgf000117_0001
2番目の P 1 ay 11 em#lとが存在することを認識しており、 デコード制御 モジュール 2 1 4から、 1番目の PlayItem#0の再生が終了した旨のメ ッセ一ジが伝えられると、 ステップ S 1 5 1から S 1 5 2に進み、 2 番目の Playlteni#lの再生を、 上述した 1番目の P yltemitOにおける場 合と同様にして開始する。
即ち、 2番目の Play Item#lの再生手順を概説すれば、 まず、 プレイ ャ制御モジュール 2 1 2は、 第 34図のステップ S 1 2 2における場 合と同様にして、 2番目の Playltem について、 EP— map 0に記述され た RPN—EP— startのうちのいずれかを、 再生開始位置として決定する。 さらに、 プレイヤ制御モジュール 2 1 2では、 第 34図のステップ S 1 24で説明したようにして、 2番目の ayltem#lに属する MarkO の認識や、 第 34図のステップ S 1 2 5で説明したようにして、 Play Item#lによって再生されるクリップストリームファイル" 00002. PS"に 多重化されている各属性のエレメン夕リストリームの本数の認識、 さ らには、 再生するエレメン夕リストリームの決定等が行われる。
そして、 プレイヤ制御モジュール 2 1 2は、 第 34図のステップ S 1 2 7における場合と同様の処理を行う。
即ち、 プレイヤ制御モジュール 2 1 2は、 再生開始位置として決定 した£?—1^0()の1^1£?—31 1^と、 再生対象のエレメンタリストリーム が多重化されているクリッブストリームファイルのファイル名、 即ち 、 いまの場合、 2番目の Playltem#l (第 2 9図) の CI ip— Informat ion — file— nameに記述された" 00002. CLP"に対応するクリップストリ一ム ファイル" 00002.PS"のファイル名を、 コンテンツデータ供給モジユー ル 2 1 3に対して与える。 さらに、 プレイヤ制御モジュ一ル 2 1 2.は、 再生対象のエレメン夕 リストリームが多重化されているクリッブストリームファイル" 00002 . PS"に格納されたプログラムストリームの、 バッファ制御モジュ一ル 2 1 5への供給が開始される前に、 バッファ制御モジュール 2 1 5を 初期化する。
即ち、 これにより、 バッファ制御モジュール 2 1 5 (第 5図) にお いて、 データ先頭ポインタ記憶部 2 3 1に記憶されるデータ先頭ボイ ン夕、 データ書き込みボイン夕記憶部 2 3 2に記憶されるデータ書き 込みボイン夕、 ビデオ読み出しボインタ記憶部 2 4 1に記憶されるビ デォ読み出しポインタ、 オーディオ読み出しポインタ記憶部 2 5 1に 記憶されるオーディォ読み出しボイン夕、 字幕読み出しボインタ記憶 部 2 6 2に記憶される字幕読み出しボイン夕に、 同じ値が代入される さらに、 プレイヤ制御モジュール 2 1 2は、 再生対象のエレメン夕 リストリームを識別するための識別情報としての stream— id、 さらに は、 必要に応じて、 private— stream— idを、 バッファ制御モジュール 2 1 5に供給する。 .
バッファ制御モジュール 2 1 5 (第 5図) では、 ビデオ読み出し機 能部 2 3 3が、 プレイヤ制御モジュール 2 1 2からの、 再生対象のェ レメンタリストリームのうちのビデオストリームについての stream_i dを、 streanし idレジスタ 24 2に記憶させる。 また、 オーディオ読み 出し機能部 2 3 4が、 プレイヤ制御モジュール 2 1 2からの、 再生対 象のエレメンタリストリ一ムのうちのオーディオフ、トリームの stream — idと private— stream— idを、 stream— idレシス夕 2 5 2と private— str eam_idレジスタ 2 5 3に、 それぞれ記憶させる。
さらに、 いま再生対象となっているエレメン夕リス 卜リームが多重 化されているクリップストリームファイル" 00002.PS"には、 字幕スト リームが含まれるため、 プレイヤ制御モジュール 2 1 2から字幕読み 出し機能部 2 3 5には、 再生対象のエレメンタリストリームのうちの 字幕ストリ一ムの stream— idと pri vat st ream— idが供給され、 字幕読 み出し機能部 2 3 5は、 その stream— idと private— stream— idを、 stre am— idレジス夕 2 6 3と private—stream— idレジスタ 2 6 4に、 それぞ れ記.憶させる。
そして、 プレイヤ制御モジュール 2 1 2は、 バッファ制御モジユー ル 2 1 5 (第 5図) の初期化として、 さらに、 再生対象のエレメン夕 リストリームが多重化されているクリップストリ一ムファイルに応じ た値の字幕読み出し機能フラグを、 字幕読み出し機能フラグ記憶部 2 6 1にセットする。
即ち、 いまの場合、 再生対象のエレメン夕リストリームが多重化さ れているクリッブストリームファイル" 00002.PS"には、 字幕ストリー ムが含まれるため、 字幕読み出し機能部 2 3 5を機能させるために、 値が 1の字幕読み出し機能フラグが、 字幕読み出し機能フラグ記憶部 2 6 1にセッ 卜される。 ·
また、 プレイヤ制御モジュール 2 1 2は、 再生しょうとしている 2 番目の Playltem#l (第 2 9図) の IN— timeである 90, 000と、 OUT— time である 27, 090, 000とを、 デコード制御モジュール 2 1 4に対して与え る。
さらに、 プレイヤ制御モジュール 2 1 2は、 グラフィクス処理モジ ユール 2 1 9に対する字幕ストリームの表示方式の指示を初期化する 。 即ち、 プレイヤ制御モジュール 2 1 2は、 字幕ストリームの表示方 式をデフォルトの表示方式とするように、 グラフィクス処理モジユー ル 2 1 9を制御する。 なお、 再生対象の字幕ストリームについて、 configurablejlag ( 第 1 4図) 力 表示方式の変更を許可する 1になっている場合には、 プレイヤ制御モジュール 2 1 2からグラフィクス処理モジュール 2' 1 9に対する字幕ス卜リームの表示方式の指示は、 現在の表示方式のま まとするようにしても良い。
以下、 2番目の P yItem#lの再生は、 1番目の PlayIiem#0の再生と 同様にして行われていく。 そして、 デコード制御モジュール 2 1 4は 、 その 2番目の PlayltemiHの再生が行われている間、 内蔵する計時部 2 1 4 Aが計時している時刻を確認し続けており、 計時部 2 14 Aが 計時している時刻が、 ステップ S 1 52 (第 40図) でプレイヤ制御 モジュール 2 1 2から与えられた 2番目の Playltem#lの OUTJimeであ る 27, 090, 000 (第 2 9図) に等しくなると、 ステップ S 1 5 1におけ る場合と同様のデコード中断制御を行い、 Playlteminの再生を終了す る。 尚、 上述したように、 計時部 2 14 Aが計時している時刻は、 厳 密には、 PlayItem#0の 0UT_timeと等しくならないことがある。 そのよ うなとき、 PlayItem#0の OUTJimeの時刻と計時部 2 14Aの計時する 時刻が近傍の値となったタイミングで、 .デコード中断制御が行われ、 PiayUem#0の再生が終了されることになる。 尚、 この処理については 、 第 5 1図, 第 5 2図を参照して詳細を後述する。
[タイムコードの表示]
次に、 上述したように、 第 34図のステップ S 1 2 3において、 夕 ィムコードの表示が開始されるが、 このタイムコードの表示は、 順次 更新されていく。
そこで、 第 4 1図のフローチャートを参照して、 タイムコードの表 示の処理について説明する。
デコード制御モジュール 2 1 4 (第 2図 Aおよび第 2図 B) は、 そ の内蔵する計時部 2 1 4 Aによって 1秒が計時されると、 ステップ S 1 7 1において、 1秒が経過した旨のメッセージとともに、 その ^時 部 2 1 4 Aによって計時されている現在時刻を、 プレイヤ制御モジ'ュ —ル 2 1 2に供給し、 ステップ S 1 7 2に進む。 ステップ S 1 7 2で は、 プレイヤ制御モジュール 2 1 2は、 デコード制御モジュール 2 1 4からのメッセージと現在時刻を受信し、 その現在時刻を、 タイムコ —ドに換算して、 ステップ S 1 7 3に進む。
ステップ S 1 7 3では、 プレイヤ制御モジュール 2 1 2は、 ステツ プ S 1 7 2で得たタイムコードを表 1i 示するように、 グラフィクス処理
9
モジュール 2 1 9を制御し、 ステップ S 1 7 1に戻る。
これにより、 タイムコードは、 1秒ごとに更新される。 なお、 タイ ムコードの更新の間隔は、 1秒に限定されるものではない。
[ストリーム切り替え]
次に、 第 2 9図で説明した 1番目の PlayList#0を構成する 1番目の PlayItem#0によって再生されるクリップス卜リームファイル" 00001. P S"や、 2番目の Playltemttlによって再生されるクリップストリームフ アイル" 00002.PS"には、 第 3 0図 Aおよび第 3 0図 Bで説明したよう に、 2本の字幕ストリームが多重化されている。
このように、 クリップストリ一ムファイルに、 複数の、 同一の属性 のエレメン夕リストリームが多重化されている場合においては、 再生 対象のエレメン夕リストリームを、 その複数の、 同一の属性のエレメ ン夕リストリームのうちの 1つから、 他の 1つに切り替えるストリー ム切り替えを行うことができる。
そこで、 第 42図のフローチヤ一トを参照して、 ストリーム切り替 えの処理について説明する。
ストリーム切り替えの要求は、 例えば、 "SCRIPT.DAT"ファイル (第 6図) に、 ストリーム切り替えの指示がスクリプトプログラムとして 記述されている場合に、 スクリプト制御モジュール 2 1 1が、 そ idス クリプ卜プログラムを実行することによって、 あるいは、 ユーザがリ モコンを操作することによって、 プレイヤ制御モジュール 2 1 2に与 えられる。
即ち、 スクリプト制御モジュール 2 1 1は、 ストリーム切り替えの 指示が記述されているスクリプトプログラムを実行すると、 ストリ一 ム切り替えを要求するメッセージを、 プレイヤ制御モジュール 2 1 2 に供給する。 また、 入力インターフェ一ス 1 1 5は、 ユーザがリモコ ンを操作することによって、 リモコンから、 ストリーム切り替えを指 示する信号を受信すると、 ストリーム切り替えを要求するメッセ一ジ を、 プレイヤ制御モジュール 2 1 2に供給する。
例えば、 いま、 プレイヤ制御モジュール 2 1 2に対して、 字幕スト リームの切り替えを要求するメッセージである字幕ストリ一ム切り替 えのメッセージが供給されたとすると、 プレイヤ制御モジュール 2 1 2は、 ステツプ S 1 9 1において、 第 3 4図のステツプ S 1 2 5で行 われた再生対象のエレメンタリストリ一.ムの決定のときに認識した字 幕ストリームの本数をチェックする。
プレイヤ制御モジュ一ル 2 1 2は、 字幕ストリームの本数をチエツ クした結果、 その本数が 1本以下である場合、 字幕ストリーム切り替 えのメッセージを無視し、 従って、 以降のステツプ S 1 9 2乃至 S 1 9 4の処理は行われない。
一方、 字幕ストリームの本数が 2本以上である場合、 ステップ S 1 9 2乃至 S 1 9 4に順次進み、 再生する字幕ストリームが、 現在再生 されている字幕ストリームから、 他の字幕ストリームに切り替えられ 即ち、 ステップ S 1 9 2において、 プレイヤ制御モジュール 2 1 2 は、 現在再生中の字幕ストリームを、 クリップ情報ファイル上で 定 する。 具体的には、 例えば、 いま、 第 2 9図で説明した 1番目の Play List#0を構成する 2番目の Playltem#lによって、 クリツブストリーム ファイル" 00002.PS"に多重化された、 stream— idが OxBDで、 private— s tream_idが 0x80の字幕ストリームが再生されていることとすると、 ス テツプ S 1 9 2では、 現在再生中の字幕ストリームが、 クリップスト リームファイル" 00002.PS"に多重化された 2本の字幕ストリームのう ちの、 第 3 0図 Aおよび第 3 0図 Bのクリップ情報ファイル" 00002. C LP"上で 3本目の字幕ストリ一ムである s eam#2であることが特定さ れる。
そして、 ステップ S 1 9 3に進み、 プレイヤ制御モジュール 2 1 2 は、 ステップ S 1 9 2で特定した字幕ストリームの、 クリップ情報フ アイル上で次の字幕ストリ一ムを、 次に再生する字幕ストリームとし て特定する。 第 3 0図 Aおよび第 3 0図 Bでは、 クリップ情報フアイ ル" 00002.CLP"上で、 3本目の字幕ス トリーム stream#2の次の字幕ス トリ一ムは、 4本目の字幕ストリーム st.ream#3であるから、 ステップ S 1 9 3では、 この 4本目の字幕ストリーム stream#3が、 次に再生す る字幕ストリームとして認識される。
なお、 現在再生中の字幕ストリームが、 クリップストリ一ムフアイ ル" 00002.PS"に多重化された 2本の字幕ストリームのうちの、 第 3 0 図 Aおよび第 3 0図 Bのクリップ情報ファイル" 00002. CLP"上で 4本 目の字幕ストリームである streani#3であることが特定された場合は、 例えば、 3本目の字幕ストリーム streani#2が、 次に再生する字幕スト リームとして認識される。
その後、 ステップ S 1 9 4に進み、 プレイヤ制御モジュール:] 1 2 は、 ステツプ S 1 9 3で認識した次に再生する字幕ストリ一ムの stre am_idと private— stream— idを、 バッファ制御モジュール 2 1 5 (第 5 図) の字幕読み出し機能部 2 3 5に対して与え、 その s eam_idと p'ri vate— stream— idを、 次回からの、 字幕アクセスユニットのバッファ 2 1 5 Aからの読み出しから使用するように指示する。
バッファ制御モジュール 2 1 5 (第 5図) の字幕読み出し機能部 2 3 5では、 ステップ S 1 9 4でプレイヤ制御モジュール 2 1 2から与 んられる stream— idと private— stream— idを、 s t ream— i dレジス夕 2 6
3と131" ^6_3 63111—1(1レジス夕 2 6 4に、 それぞれ新たにセットし 、 次回以降のバッファ 2 1 5 Aからの読み出しは、 その s eam—idレ ジス夕 2 6 3と private_stream— idレジス夕 2 6 4にそれぞれ新たに セッ卜された st. ream— idと private— st reanし idによつて特定される字幕 アクセスユニットを対象として行われる。
以上のようにして、 再生する字幕ストリームが、 現在再生されてい る字幕ストリームから、 他の字幕ストリームに切り替えられる。
[バッファ制御モジュール 2 1 5の処理]
次に、 第 4 3図乃至第 4 7図を参照して、 バッファ制御モジュール 2 1 5 (第 5図) の処理、 即ち、 バッファ 2 1 5 Aへのデータの書き 込みと、 バッファ 2 1 5 Aからのデ一夕の読み出しについて説明する 。
バッファ制御モジュール 2 1 5は、 第 5図で説明したように、 バッ ファ 2 1 5 Aに対するデータの読み書きを行うための 5つのボインタ を有している。
即ち、 第 4 3図および第 44図に示すように、 バッファ制御モジュ —ル 2 1 5は、 データ先頭ポインタ記憶部 2 3 1に記憶されるデータ 先頭ポインタ、 デ一夕書き込みポインタ記憶部 2 3 2に記憶されるデ 一夕書き込みポインタ、 ビデオ読み出しポインタ記憶部 2 4 1に記憶 されるビデオ読み出しボイン夕、 オーディォ読み出しボイン夕記 部 2 5 1に記憶されるオーディォ読み出しボインタ、 および字幕読み出 しボインタ記憶部 2 6 2に記憶される字幕読み出しボイン夕を有して いる。
なお、 第 4 3図および第 44図では、 第 5図におけるビデオ読み出 し機能部 2 3 3の st ream— idレジスタ 2 4 2および au— inf ormat i on 0 レジスタ 2 4 3、 オーディオ読み出し機能部 2 3 4の stream— idレジ ス夕 2 5 2および private— s earn— 2 idレジスタ 2 5 3、 並びに字幕読
3
み出し機能部 2 3 5の字幕読み出し機能フラグ記憶部 2 6 1、 stream — idレジスタ 2 6 3、 および pri vat e_stream_idレジスタ 2 64の図示 は、 省略してある。
データ先頭ボインタ記憶部 2 3 1に記憶されたデータ先頭ボイン夕 は、 バッファ 2 1 5 Aに残る最も古いデータ (読み出す必要があるデ 一夕であって、 まだ読み出されていないデータのうちの最も古いデ一 夕) の位置を表す。 デ一タ書き込みポインタ記憶部 2 3 2に記憶され たデ一夕書き込みポインタは、 バッファ.2 1 5 Aへのデータの書き込 みの位置を示し、 この位置は、 バッファ 2 1 5 Aで最も新しいデータ が書き込まれる位置である。
ビデオ読み出しポインタ記憶部 2 4 1に記憶されたビデオ読み出し ボイン夕は、 バッファ 2 1 5 Aから読み出すビデオストリームの位置 を表す。 また、 オーディオ読み出しポインタ記憶部 2 5 1に記憶され たオーディオ読み出しポインタは、 バッファ 2 1 5 Aから読み出すォ 一ディォストリームの位置を表し、 字幕読み出しボイン夕記憶部 2 6 2に記憶された字幕読み出しポインタは、 バッファ 2 1 5 Aから読み 出す字幕ストリームの位置を表す。 なお、 第 5図で説明したように、 データ先頭ポインタ、 デ一夕書き 込みポインタ、 ビデオ読み出しポインタ、 オーディオ読み出しボイン 夕、 および字幕読み出しポインタは、 いずれも、 バッファ 2 1 5 A.を 右回りに移動する。
さらに、 本実施の形態では、 デ一夕先頭ポインタは、 第 4 4図に示 すように、 ビデオ読み出しポインタ、 オーディオ読み出しポインタ、 または字幕読み出しボイン夕のうちの、 最も古いデ一夕の位置を指し ているものと同一の位置を指すように、 常時更新されるものとする。 ここで、 第 4 4図では、 ビデオ読み出しポインタ、 オーディオ読み出 しポインタ、 または字幕読み出しポインタのうちの、 オーディオ読み 出しポインタが、 最も古いデータの位置を指しており、 デ一夕先頭ポ ィンタは、 そのオーディォ読み出しボイン夕と一致している。
以上のようなデ一夕先頭ポインタ、 デ一夕書き込みポインタ、 ビデ ォ読み出しポインタ、 オーディオ読み出しポインタ、 および字幕読み 出しポインタを有するバッファ制御モジュール 2 1 5では、 デ一夕書 き込みボイン夕は、 ディスク 1 0 1から新たなデータが読み出され、 バッファ 2 1 5 Aに書き込まれると、 そ 書き込まれた新たなデ一夕 の直後の位置を指すように、 右回りに更新される。
さらに、 ビデオ読み出しポインタ、 オーディオ読み出しポインタ、 または字幕読み出しポインタは、 バッファ 2 1 5 Aから、 ビデオスト リーム、 オーディオストリーム、 または字幕ストリームが読み出され ると、 その み出し量に応じた分だけ、 それぞれ、 右回りに更新され る。 ここで読み出し量に応じた分とは、 実際に読み出したビデオ、 ォ 一ディォ、 字幕のデータに対応する部分と、 読み出したデータの間に 含まれており、 読み出しの際には読み飛ばしを行った、 他のストリー ムのデータの部分をあわせたものとなる。 また、 データ先頭ポインタは、 ビデオ読み出しポインタ、 オーディ ォ読み出しボイン夕、 または字幕読み出しボイン夕が更新されると そのビデオ読み出しボインタ、 オーディォ読み出しボインタ、 または 字幕読み出しボインタのうちの、 最も古いデ一夕の位置を指している ものと同一の位置を指すように更新される。
ここで、 ノ ッファ制御モジュール 2 1 5は、 ノ ッファ 2 1 5 Aへの データの書き込みについては、 データ書き込みボイン夕がデータ先頭 ポィン夕を追い越さないように、 バッファ 2 1 5 Aへのデ一夕の書き 込みを制御する。
即ち、 デ一夕書き込みポインタによるデータ先頭ポインタの追い越 しが発生しない限り、 バッファ制御モジュ一ル 2 1 5では、 ディスク 1 0 1から読み出されたデータが、 'データ書き込みポインタが指すバ ッファ 2 1 5 Aの位置に書き込まれ、 デ一夕書き込みボイン夕が更新 されていく。 一方、 データ書き込みポインタによるデータ先頭ポイン 夕の追い越しが発生しそうになると、 バッファ制御モジュール 2 1 5 では、 コンテンツデータ供給モジュール 2 1 3に対して、 ディスク 1 0 1からのデータの読み出しの停止が要求され、 さらに、 バッファ 2 1 5 Aへのデータの書き込みが停止される。 これにより、 バッファ 2 1 5 Aのオーバ一フローを防止することができる。
以上のように、 ディスク 1 0 1から読み出されたデータの、 バッフ ァ 2 1 5 Aへの書き込みは、 データ先頭ボイン夕とデータ書き込みポ イン夕との 2つのポインタの位置関係だけで制御される。
一方、 ノ ツファ制御モジュール 2 1 5は、 ノ ツファ 2 1 5 Aからの データの読み出しについては、 ビデオ読み出しポインタ、 オーディオ 読み出しポインタ、 および字幕読み出しポインタ、 ひいては、 デ一夕 先頭ポインタが、 データ書き込みポインタを追い越さないように、 バ ッファ 2 1 5 Aからのデータの読み出しを制御する。
即ち、 ビデオ読み出しポインタ、 オーディオ読み出しポインタ ま たは字幕読み出しボイン夕によるデータ書き込みボイン夕の追い越'し が発生しない限り、 バッファ制御モジュール 2 1 5では、 ビデオデコ —ダ制御モジュール 2 1 6、 オーディオデコーダ制御モジュール 2 1 7、 または字幕デコーダ制御モジュール 2 1 8からの要求に応じて、 ビデオ読み出しポインタ、 オーディオ読み出しポインタ、 または字幕 読み出しボイン夕が指すバッファ 2 1 5 Aの位置からデータが読み出 され、 ビデオ読み出しポインタ、 オーディオ読み出しポインタ、 また は字幕読み出しポインタが更新されるとともに、 必要に応じて、 デ一 タ先頭ポインタが更新される。 一方、 ビデオ読み出しポインタ、 ォー ディォ読み出しボインタ、 または字幕読み出しボイン夕によるデータ 書き込みボイン夕の追い越しが発生しそうになると、 バッファ制御モ ジュール 2 1 5では、 ビデオデコーダ制御モジュール 2 1 6、 オーデ ィォデコーダ制御モジュール 2 1 7、 または字幕デコーダ制御モジュ ール 2 1 8からの要求が、 例えば凍結され、 十分なデータが用意され るまで待たされる。 これにより、 バッファ 2 1 5 Aのアンダ一フロー を防止することができる。
以上から、 バッファ 2 1 5 Aには、 データ先頭ポインタが指す位置 から、 右回りに、 デ一夕書き込みポインタが指す位置までの範囲 (第 4 3図および第 4 4図において影を付してある部分) に、 ビデオデコ ーダ制御モジュール 2 1 6、 オーディオデコーダ制御モジュール 2 1 7、 および字幕デコーダ制御モジュール 2 1 8に供給すべきデ一夕が 記憶されており、 さらに、 その範囲内に、 ビデオ読み出しポインタ、 オーディオ読み出しポインタ、 および字幕読み出しポインタは存在す なお、 上述の場合には、 データ先頭ポインタは、 ビデオ読み出しポ イン夕、 オーディオ読み出しポインタ、 または字幕読み出しポイ タ が指している位置のうちの、 最も古いデータの位置を指すように更新 することとしたが、 その他、 データ先頭ポインタの更新は、 例えば、 その最も古いデータの位置から、 所定の時間 (例えば、 1秒) 分だけ 過去のデータの位置を指すように行うことが可能である。
即ち、 一般には、 ビデオ読み出しポインタ、 オーディオ読み出しポ インタ、 または字幕読み出しポインタのうちの、 ビデオ読み出しボイ ンタゃオーディォ読み出しボイン夕が、 最も古いデータの位置を指す ことが多いと予想される。
従って、 データ先頭ポインタを、 ビデオ読み出しポインタまたはォ 一ディォ読み出しボイン夕が指す最も古いデータの位置から、 例えば
、 1秒分だけ過去のデータの位置を指すように更新した場合、 第 4 3 図に示すように、 ビデオ読み出しボイン夕またはオーディォ読み出し ポインタが指す最も古いデータの位置から過去 1秒分のデ一夕を、 バ ッファ 2 1 5 Aに残しておくことができる。 ここで、 第 4 3図では、 ォ一ディォ読み出しボイン夕が、 最も古.ぃデ一夕の位置を指しており 、 データ先頭ポインタは、 その位置から 1秒分だけ過去のデータの位 置を指している。
以上のように、 1秒分だけ過去のデータの位置を指すように、 デー 夕先頭ボイン夕を更新することにより、 ディスク再生装置の応答性を 向上させることができる。
即ち'、 第 4 4図に示したように、 オーディオ読み出しポインタが指 している最も古いデ一夕の位置を指すように、 デ一夕先頭ボイン夕を 更新する場合には、 例えば、 リバース方向への特殊再生が指示された ときに、 バッファ 2 1 5 Aからの読み出しが終了したデ一夕を、 ディ スク 1 0 1から再度読み出す必要があるため、 特殊再生が指示されて から、 その特殊再生が可能となるまでに、 ある程度の時間がかか^)。
これに対して、 第 4 3図に示したように、 オーディオ読み出しボイ ン夕が指している最も古いデータの位置から 1秒分だけ過去のデータ の位置を指すように、 デ一夕先頭ポインタを更新する場合には、 リバ —ス方向への特殊再生が指示されたときに、 その特殊再生を開始する のに必要なデ一夕が、 バッファ 2 1 5 Aに記憶されている 1秒分だけ 過去のデータであれば、 上述したようなディスク 1 0 1からのデータ の再読み出しを行わずに、 即座に、 特殊再生を開始することが可能と なる。
なお、 オーディォ読み出しボイン夕が指している最も古いデ一夕の 位置から 1秒分だけ過去のデータの位置を指すように、 デ一夕先頭ポ ィン夕を更新する場合であっても、 特殊再生を開始するのに必要なデ
—夕が、 バッファ 2 1 5 Aに記憶されていないことがあり得る。 この 場合には、 特殊再生を開始するのに必要なデ一夕が、 ディスク 1 0 1 から再度読み出される。
次に、 ノ'ッファ 2 1 5 Aからのビデオ,ストリーム、 オーディオスト リーム、 字幕ストリームそれぞれの読み出しの詳細について説明する 第 3 4図のステップ S 1 2 7で説明したように、 クリップストリー ムファイルの再生が開始されるときに、 バッファ制御モジュール 2 1 5において【 、 データ先頭ポインタ、 データ書き込みポインタ、 ビデ ォ読み出しポインタ、 オーディオ読み出しポインタ、 字幕読み出しポ イン夕が、 すべて、 バッファ 2 1 5 A上の同じ位置を指すように初期 化される。
そして、 ディスク 1 0 1からクリッブストリームフアイルに格納さ 1070 れたプログラムストリーム(MPEG2-Sys t em P r ogr am S t r e am)が読み出 され、 バッファ制御モジュール 2 1 5に供給されると、 ノ ッファ制 P モジュール 2 1 5では、 そのプログラムストリームが、 バッファ 2 ' 1 5 Aのデータ書き込みボイン夕が指す位置に記憶されるとともに、 デ —夕書き込みポインタが、 右回りに更新されていく。
さらに、 バッファ制御モジュール 2 1 5 (第 5図) では、 ビデオ読 み出し機能部 2 3 3が、 バッファ 2 1 5 Aに記憶されたプログラムス トリームの構文解析を行い、 ビデオデコーダ制御モジュール 2 1 6か らの要求に応じて、 バッファ 2 1 5 Aに記憶されたプログラムストリ —ムから、 ビデオアクセスユニッ トを抽出して読み出し、 ビデオデコ —ダ制御モジュ一ル 2 1 6に供給する。
同様に、 オーディォ読み出し機能部 2 3 4も、 ノ ッファ 2 1 5 Aに 記憶されたプログラムストリ一ムの構文解析を行い、 オーディオデコ —ダ制御モジュール 2 1 7からの要求に応じて、 バッファ 2 1 5 Aに 記憶されたプログラムストリームから、 オーディオアクセスユニッ ト を抽出して読み出し、 オーディォデコーダ制御モジュール 2 1 7に供 給する。 字幕読み出し機能部 2 3 5も、 バッファ 2 1 5 Aに記憶され たプログラムストリームの構文解析を行い、 字幕デコーダ制御モジュ —ル 2 1 8からの要求に応じて、 ノ、ッファ 2 1 5 Aに記憶されたプロ グラムストリームから、 字幕アクセスユニッ トを抽出して読み出し、 字幕デコーダ制御モジュール 2 1 8に供給する。
「ビデオストリームの読み出し」
次に、 第 4 5図のフローチャートを参照して、 ビデオ読み出し機能 部 2 3 3 (第 5図) による、 ) j、 ファ 2 1 5 Aからのビデオストリ一 ムの読み出し処理の詳細について説明する。
ビデオ読み出し機能部 2 3 3は、 まず最初に、 ステップ S 2 1 1に おいて、 バッファ 2 1 5 Aに記憶されたプログラムス卜リーム中の pr ivate— stream— 2の PES— packet ()を探索して見つけ出す。 すなわち、 r ivate_stream一 2の PES— packe )の stream_idは、 第 2 3図で説明した ように、 10111111B(=0xBF)であり、 ビデオ読み出し機能部 2 3 3は、 stream— idが 10111111Bとなっている PES— packet 0を探索して見つけ出 す。
ここで、 例えば、 いま、 上述したように、 クリップストリームファ ィル" 00001.PS"に格納されたプログラムストリームに多重化されたェ レメン夕リストリームが、 再生対象のエレメン夕リストリームである とすると、 そのプログラムストリームをディスク 1 0 1から読み出し て、 バッファ 2 1 5 Aに記憶させるときに、 第 3 4図のステップ S 1 2 2において、 クリップストリームファイル" 00001.PS"の EP— map 0 ( 第 3 1図) に記述されたデコード開始可能点の情報から、 305セクタ が再生開始位置として決定され、 さらに、 第 34図のステップ S 1 2 8において、 再生開始位置である 305セクタが指定され、 オペレーテ ィングシステム 2 0 1に対して、 クリップストリームファイル" 00001 .PS"に格納されたプログラムストリーム.の読み出しが要求される。 また、 ビデオストリームについては、 EP_MPOに記述されたデコー ド開始可能点の情報は、 実際のデコード開始可能点の直前に配置され た private__strean 2の PES_packet 0の位置を表す。
従って、 クリップストリ一ムファイル" 00001.PS"に格納されたプロ グラムストリームがディスク 1 0 1から読み出され、 バッファ 2 1 5 Aに記憶された直後においては、 データ先頭ボインタゃビデオ読み出 しポインタが指すバッファ 2 1 5 Aの位置には、 private— stream— 2の PES— packet 0が記憶されている。
ビデオ読み出し機能部 2 3 3は、 ステップ S 2 1 1において、 priv ate_stream— 2の PES_packet 0が見つかると、 ステップ S 2 1 2に進み 、 その private— streanし 2の PES_packet 0の PES— packet— data— by teであ る private— stream2_PES—payload() (第 2 6図) に記述されている v'id eo_stream— idを抜き出し、 その video_stream_idが、 第 3 4図のステ ップ S 1 2 7で s eam_idレジスタ 2 4 2 (第 5図) に記憶された、 再生対象のビデオストリームの stream— idと一致するかどうかを判定 する。
ステップ S 2 1 2において、 private_stream2— PES— pay load 0に記 述されている video_stream— idが、 stream_idレジスタ 2 4 2に記憶さ れた stream— idと一致しないと判定された場合、 即ち、 直前のステツ プ S 2 1 1で見つけ出された private— stream— 2の PES— packet 0が、 再 生対象のビデオス卜リームのデコード開始点に配置されたものでない 場合、 ステップ S 2 1 1に戻り、 バッファ 2 1 5 Aに記憶されたプロ グラムストリ一ム中の他の private_stream— 2の PES— packet 0の探索が 行われ、 以下、 同様の処理が繰り返される。
一方、 ステップ S 2 1 2において、 private_stream2_PES— payload( )に記述されている video— stream— idが、 .s t ream_i dレジスタ 2 4 2に 記憶された stream—idと一致すると判定された場合、 即ち、 直前のス テツプ S 2 1 1で見つけ出された private_stream— 2の PES— packet 0が 、 再生対象のビデオストリームのデコード開始点に配置されたもので ある場合、 ステップ S 2 1 3に進み、 ビデオ読み出し機能部 2 3 3は 、 その private— stream— 2の PES— packet () CDpr ivate_stream2_PES_payl oad()に記述されている au— informationOを、 バッファ 2 1 5 Aから 読み出し、 au— informationOレジスタ 2 4 3 (第 5図) に記憶させ、 ステップ S 2 1 4に進む。
ステップ S 2 1 4では、 ビデオ読み出し機能部 2 3 3は、 直前のス テツプ S 2 1 1で見つけ出した private— s eam— 2の PES— packet 0 (vi deo_stream_id (第 2 6図) 力 stream— idレジス夕 2 4 2 (第 5図) に記憶された st ream— idと一致する private— stream— 2の PES— Dacket 0 ) のサイズだけ、 データ先頭ポインタ記憶部 2 3 1に記憶されたビデ ォ読み出しポインタを更新する。
即ち、 クリップストリームファイルでは、 private— st ream_2の PES— packet 0の直後に、 その video— stream_idと一致する stream— idのビデ ォストリーム (PES— packet 0) が配置されており、 従って、 ステップ S 2 1 4では、 ビデオ読み出しポイ 3ンタは、 ビデオストリームの実際
2
のデコード開始可能点の位置を指すように更新される。
その後、 ステップ S 2 1 4から S 2 1 5に進み、 ビデオ読み出し機 能部 2 3 3は、 ビデオコーダ制御モジュール 2 1 6から、 データの要 求があつたかどうかを判定し、 ないと判定した場合、 ステップ S 2 1 5に戻り、 同様の処理を繰り返す。
また、 ステップ S 2 1 5において、 ビデオデコ一ダ制御モジュール 2 1 6から、 デ一夕の要求があつたと判定された場合、 ステップ S 2 1 6に進み、 ビデオ読み出し機能部 2 3.3は、 ビデオ読み出しポイン 夕が指しているバッファ 2 1 5 Aの位置からのプログラムストリーム の構文解析を行いつつ、 au— informationOレジスタ 2 4 3に記憶され た au— informationOの AU—lengthに記述されたバイ ト数のデータ、 つ まり 1つのビデオアクセスュニットを、 バッファ 2 1 5 Aから読み出 し、 ビデオ コーダ制御モジュール 2 1 6に供給するとともに、 ビデ ォ読み出しポインタを、 バッファ 2 1 5 Aから読み出した 1つのビデ ォアクセスュニッ トのサイズ分だけ更新する。
即ち、 au— informationOには、 第 2 7図で説明したように、 それを 含む private stream 2の PES— packet 0力 ら、 次の private— stream— 2の PES— packetOまでの間に含まれるビデオアクセスュニット (ピクチャ ) の数を表す number_of— access_unitが記述されている。
さらに、 au— informationOには、 第 2 7図で説明したように、 そ"の number_oし access— uni tの数だけのビデオアクセスュニットそれぞれ に関する情報としての pic_struct— copy, au_ref_f lag> および AU_len gthが記述されている。
au_inf ormat ion 0 (こ number— o f— access— uni tの数だナ記述されてレ る AU— lengthそれぞれは、 第 2 7図で説明したように、 それを含む pri vate— stream— 2の PES— packet 0力、ら、 次の private— stream— 2の PES— pac ket 0までの間に含まれる、 number— oし access_uni tの数のビデオァク セスュニットそれぞれのサイズを表すから、 ビデオ読み出し機能部 2 3 3は、 その AU— lengthを用いることで、 ビデオストリームの構文解 析を行うことなく、 アクセスュニヅ卜の切り出しを行うことが出来る 即ち、 従来、 MPEG2-Videoや MPEG4- AVCのアクセスユニットを切り出 す場合には、 ビデオストリームの構文を知った上で、 ビデオストリー ムの構文解析を行う必要があつたが、 ディスク 1 0 1に記録されたク リップストリームファイルに格納されたプログラムストリームは、 ビ デォアクセスュニット単位のビデオストリ一ムにおける 1以上の実際 のデコード開始可能点それぞれの直前に、 ビデオアクセスユニットの サイズを表す AU— lengthが記述された private— st ream_2の PES— packet ( )を含んでいるので、 ビデオ読み出し機能部 2 3 3は、 その private_s treanし 2の PES—packet ()に記述された AU_lengihに基づき、 ビデオスト リ一ムの構文解析を行うことなく、 バッファ 2 1 5 Aから、 ビデオア クセスユニッ ト (単位のビデオストリーム) を読み出し、 ビデオデコ ―ダ制御モジュール 2 1 6に供給することができる。 なお、 ビデオ読み出し機能部 2 3 3は、 ステップ S 2 1 6において 、 ビデオアクセスユニッ トを、 ビデオデコーダ制御モジュール 2 1(6 に供給するときに、 そのビデオアクセスュニッ 卜に関する情報として au_inf ormat i on 0 ίこ 述さ てレ る pic一 s t rue t一 copy, au一 ref一 f lag、 および AU— lengthと、 ビデオアクセスユニッ ト単位に付加されている タイムスタンプ (PTS, DTS) も、 ビデオデコーダ制御モジュール 2 1 6に供給する。
ステップ S 2 1 6において、 ノ ッファ 2 1 5 Aから 1つのビデオア クセスュニッ 卜が読み出され、 ビデオデコーダ制御モジュール 2 1 6 に供給された後は、 ステップ S 2 1 7に進み、 ビデオ読み出し機能部 2 3 3は、 au— informationOレジス夕 2 4 3に記憶された au— inf orma tionO (第 2 7図) の number_of—access— uni tが表す数だけのァクセ スュニッ 卜を処理したかどうかを判定する。
ステップ S 2 1 7において、 number— of—access_uni tが表す数だけ のアクセスユニッ トを、 まだ処理していないと判定された場合、 即ち 、 number_of—access— unitが表す数だけのアクセスユニッ トを、 まだ 、 バッファ 2 1 5 Aから読み出してビデすデコーダ制御モジュール 2 1 6に供給していない場合、 ステップ S 2 1 5に戻り、 以下、 同様の 処理が繰り返される。
また、 ステップ S 2 1 7において、 number_of— access_uni tが表す 数だけのアクセスユニッ トを処理したと判定された場合、 即ち、 numb er_of— access— unitが表す数だけのアクセスュニッ トを、 バッファ 2 1 5 Aから読み出してビデオデコーダ制御モジュール 2 1 6に供給し た場合、 ステップ S 2 1 1に戻り、 次の private_stream— 2の PES_pack et()の探索が行われ、 以下、 同様の処理が繰り返される。
「オーディオストリームの読み出し」 次に、 第 4 6図のフローチャートを参照して、 オーディオ読み出し 機能部 2 3 4 (第 5図) による、 バッファ 2 1 5 Aからのオーディ4ォ ストリームの読み出し処理の詳細について説明する。
オーディオ読み出し機能部 2 3 4は、 まず最初に、 ステップ S 2 3 0において、 第 3 4図のステツプ S 1 2 7で stream_idレジス夕 2 5 2 (第 5図) に記憶された、 再生対象のオーディオストリームの stre am— idが、 private— stream— 1の PES— packet 0を表しているかどうかを 判定する。
ステツプ S 2 3 0において、 stream_idレジス夕 2 5 2に記憶され た stream— idが、 pr ivate_s t ream— 1の PES_packe t 0を表していない判 定された場合、 即ち、 stream_idレジスタ 2 5 2に記憶された stream— idが、 第 2 3図で説明したように、 MPEG規格にしたがって符号化され たオーディォストリ一ムに割り当てられる ΙΙΟχχχχχΒである場合、 ス テツプ S 2 3 1に進み、 オーディオ読み出し機能部 2 3 4は、 バッフ ァ 2 1 5 Aに記憶されたプログラムストリームから、 MPEG Audioで定 められたオーディオフレーム先頭を表す同期コードを探す。 同期コ一 ドの位置がオーディオフレーム先頭なの.で、 オーディォ読み出し機能 部 2 3 4は、 オーディオ読み出しポインタを、 オーディオフレーム先 頭の位置を示すように更新し、 ステップ S 2 3 1から S 2 3 2に進む 。 ステップ S 2 3 2では、 オーディオ読み出し機能部 2 3 4は、 ノ ツ ファ 2 1 5 Aに記憶されたプログラムストリ一ム中の、 s earn— idレ ジス夕 2 5 2に記憶された stream— idに一致する PES_packet ()を、 ォ 一ディォ読み出しボイン夕が示す位置から探索して見つけ出し、 ステ ップ S 2 3 3に進む。
ステップ S 2 3 3では、 オーディオ読み出し機能部 2 3 4は、 ォー ディォ読み出しポインタ記憶部 2 5 1に記憶されたオーディオ読み出 しボインタを、 直前のステップ S 2 3 2で見つけ出した PES—packet 0 の PES— packet— data— byte (第 1 9図 Aおよび第 1 9図 B乃至第 2 図 Aおよび第 2 1図 B) の先頭を指すように更新し、 ステップ S 2 3'7 に進む。
ステップ S 2 3 7では、 オーディオ読み出し機能部 2 3 4は、 ォー ディォデコーダ制御モジュール 2 1 7から、 データの要求があつたか どうかを判定し、 ないと判定した場合、 ステップ S 2 3 7に戻り、 同 様の処理を繰り返す。
また、 ステップ S 2 3 7において、 オーディオデコーダ制御モジュ
3 6
ール 2 1 7から、 データの要求があつたと判定された場合、 ステップ S 2 3 8に進み、 オーディオ読み出し機能部 2 3 4は、 オーディオ読 み出しボイン夕が指しているバッファ 2 1 5 Aの位置からのプロダラ ムストリームの構文解析を行いつつ、 既知の固定長の 1つのオーディ ォアクセスュニッ トを、 バッファ 2 1 5 Aから読み出し、 そのオーデ ィォアクセスユニットに付加されているタイムスタンプ (PTS, DTS) とともに、 ォ一ディォデコーダ制御モジュール 2 1 7に供給する。 そして、 オーディオ読み出し機能部 2.34は、 ノ、ッファ 2 1 5 Aか ら読み出した 1つのオーディォアクセスュニットのサイズ分だけ、 ォ 一ディォ読み出しポインタを更新して、 ステップ S 2 3 7に戻り、 以 下、 同様の処理が繰り返される。
一方、 ステップ S 2 3 0において、 stream— idレジスタ 2 5 2に記 憶された stream— idが、 pr i vat e—s t ream— 1の PES— packet 0を表してい ると判'定された場合、 即ち、 stream—idレジスタ 2 5 2に記憶された s treanし idが、 10111101B (=0xBD)であり、 第 2 3図で説明したように、 private— streanし 1の PES_packet 0を表している場合、 ステップ S 2 3 4に進み、 オーディオ読み出し機能部 2 34は、 バッファ 2 1 5 Aに 記憶されたプログラムストリ一ム中の private_stream— 1の PES— packet 0を探索して見つけ出す。 すなわち、 オーディオ読み出し機能部 3 4は、 stream— idが 10111101Bとなっている PES— packet ()を探索しで見 つけ出す。
オーディオ読み出し機能部 2 3 4は、 ステップ S 2 3 4において、 private— stream_lの PES— packet 0が見つかると、 ステップ S 2 3 5に 進み、 その private— stream— 1の PES— packet 0の PES— packet— data— byte である private_streamし PES— payloadO (第 2 4図) に記述されてい る private一 stream_idを抜き出し、 その private— stream— idが、 第 3 4 図のステップ S 1 2 7で private— stream— idレジスタ 2 5 3 (第 5図 ) に記憶された、 再生対象のオーディオストリームの private— stream —idと一致するかどうかを判定する。
ステップ S 2 3 5において、 private— st reamし PES— payloadOに記 述されている private— stream— idカ、 private— s t ream— idレジス夕 2 5 3に記憶された private— stream— idと一致しないと判定された場合、 即ち、 直前のステップ S 2 3 4で見つけ出された private— stream— 1の PES_packet ()が、 再生対象のオーディオストリ一ムではない場合、 ス テツプ S 2 3 4に戻り、 ノ ッファ 2 1 5 Aに記憶されたプログラムス トリ一ム中の他の private— stream_lの PES_packet ()の探索が行われ、 以下、 同様の処理が繰り返される。
一方、 ステップ S 2 3 5において、 private_streaml— PES—payload ( )に霄己述されている private— stre am— i d力 r ivate_s tre am一 i dレジス 夕 2 5 3に記憶された private一 stream— idと一致すると判定された場 合、 即ち、 直前のステップ S 2 3 4で見つけ出された private— stream —1の PES— packet 0が、 再生対象のオーディオストリームである場合、 ステップ S 2 3 6に進み、 オーディオ読み出し機能部 2 3 4は、 その pr ivate_s t ream_lの PES— packet 0の pr ivat e— s t r earn 1— PES— pay 1 oad 0 (第 2 4図) に記述されている AU_locat,orを、 バッファ 2 1 5 Aから 読み出し、 その AU_locatorの直後の位置と、 その AU— locatorが表す'値 とを加算することで、 オーディオアクセスュニッ 卜の先頭位置を求め る。
即ち、 AU— locatorは、 第 24図で説明したように、 その AU— locator の直後の位置を基準として、 private一 streaml— PES_payload()の priva te_payload()に格納されるオーディォアクセスュニットあるいは字幕 アクセスュニットの先頭位置を表すから、 AU一 locatorの直後の位置に 、 その AU— locatorが表す値を加算することにより、 オーディオアクセ スュニッ卜の先頭位置を求めることができる。
オーディオ読み出し機能部 2 3 4は、 さらに、 ステップ S 2 3 6に おいて、 以上のようにして求めたオーディオアクセスュニッ卜の先頭 位置を指すように、 オーディオ読み出しポインタ記憶部 2 5 1に記憶 されたオーディオ読み出しポインタを更新し、 ステップ S 2 3 7に進 む。
ステップ S 2 3 7では、 オーディオ読み出し機能部 2 3 4は、 ォー ディォデコーダ制御モジュール 2 1 7から、 デ一夕の要求があつたか どうかを判定し、 ないと判定した場合、 ステップ S 2 3 7に戻り、 同 様の処理を繰り返す。
また、 ステップ S 2 3 7において、 オーディオデコーダ制御モジュ ール 2 1 7から、 データの要求があつたかと判定された場合、 ステツ プ S 2 3 8に進み、 オーディオ読み出し機能部 2 3 4は、 オーディオ 読み出しボイン夕が指しているバッファ 2 1 5 Aの位置からのプログ ラムストリームの構文解析を行いつつ、 既知の固定長の 1つのオーデ ィォアクセスユニッ トを、 バッファ 2 1 5 Aから読み出し、 そのォー ディォアクセスュニッ卜に付加されているタイムスタンプとともに、 オーディオデ 'コーダ制御モジュール 2 1 7に供給する。
そして、 オーディオ読み出し機能部 2 3 4は、 バッファ 2 1 5 Aか ら読み出した 1つのオーディオアクセスュニッ卜のサイズ分だけ、 ォ —ディォ読み出しポインタを更新して、 ステップ S 2 3 7に戻り、 以 下、 同様の処理が繰り返される。
「字幕ストリームの読み出し」
次に、 第 4 7図のフローチャートを参照して、 字幕読み出し機能部 2 3 5 (第 5図) による、 バッファ 2 1 5 Aからの字幕ストリームの 読み出し処理の詳細について説明する。
字幕読み出し機能部 2 3 5は、 まず最初に、 ステップ S 2 5 1にお いて、 第 3 4図のステップ S 1 2 7で字幕読み出し機能フラグ記憶部 2 6 1に記憶された字幕読み出し機能フラグを判定する。 ステップ S 2 5 1において、 字幕読み出し機能フラグが 0であると判定された場 合、 即ち、 例えば、 再生対象のエレメンタリストリームが多重化され ているクリップストリームファイルに字幕ストリームが含まれておら ず、 第 3 4図のステップ S 1 2 7で字幕韓み出し機能フラグ記憶部 2 6 1に、 0がセッ トされた場合、 字幕読み出し機能部 2 3 5は特に処 理を行わない。
一方、 ステップ S 2 5 1において、 字幕読み出し機能フラグが 1で あると判定された場合、 即ち、 例えば、 再生対象のエレメン夕リスト リ一ムが多 化されているクリップストリームファイルに字幕ストリ ームが'含まれており、 第 3 4図のステップ S 1 2 7で字幕読み出し機 能フラグ記憶部 2 6 1に、 1がセッ トされた場合、 ステップ S 2 5 2 に進み、 字幕読み出し機能部 2 3 5は、 s t r eam— i dレジスタ 2 6 3 ( 第 5図) に記憶された、 再生対象の字幕ストリームの s e arn— i dに一 致する PES_packet 0を、 ノ'ッファ 2 1 5 Aに記憶されたプログラムス トリ一ムから探索する。 ¾ ここで、 第 3 4図のステップ S 1 2 7で説明したように、 stream— i dレジスタ 2 6 3 (第 5図) には、 再生対象の字幕ストリームの strea m_idが記憶されるが、 字幕ストリームの stream_idは、 第 2 3図で説 明したように、 private— stream— 1の PES— packet 0を表す 10111101B (=0 xBD)である。
従って、 ステップ S 2 5 2では、 バッファ 2 1 5 Aに記憶されたプ ログラムストリーム中の private— st ream_Jの PES— packet ()が探索され ることになる。
ステツプ S 2 5 2において、 private_stream— 1の PES_packet 0の探 索が行われ、 private—stream— 1の PES— packet 0が見つかると、 ステツ プ S 2 5 3に進み、 字幕読み出し機能部 2 3 5は、 その private_st're anし 1の PES— packet 0の PES— packet— data— by teである pri vat e—s t reamし PES— payloadO (第 2 4図) に記述されている private— stream_idを抜 き出し、 その private_stream— idが、 第 3 4図のステップ S 1 2 7で ρ rivate一 s earn— idレジス夕 2 6 4 (第 5.図) に記憶された、 再生対象 の字幕ス卜リームの private— stream— idと一致するかどうかを判定す る。
ステップ S 2 5 3において、 private_streamし PES— payloadOに記 述されて(^る private— s tream— idが、 pr i vaie— s tream— idレジスタ 2 6 4に記憶された privat.e__stream_i(3と一致しないと判定された場合、 即ち、 直前のステップ S 2 5 2で見つかった private_streanし 1の PES_ packet 0が、 再生対象の字幕ストリームではない場合、 ステップ S 2 5 2に戻り、 バッファ 2 1 5 Aに記憶されたプログラムストリーム中 の他の private— stream— 1の PES Dacket 0の探索が行われ、 以下、 同様 の処理が繰り返される。
一方、 ステップ S 2 5 3において、 private— streamし PES— payl(^d( )に言己述されている pr ivate— s t ream— id力 r i vate_s t ream— i dレジ'ス 夕 2 6 4に記憶された private_stream_idと一致すると判定された場 合、 即ち、 直前のステップ S 2 5 2で見つかった private_stream— 1の PES一 packet ()が、 再生対象の字幕ストリームである場合、 ステップ S 2 5 4に進み、 字幕読み出し機能部 2 3 5は、 その private_stream— 1 の PES— packet 0の private— streaml— PES— payloadO (第 2 4図) に記 述されている ALUocatorを、 バッファ 2 1 5 Aから読み出し、 その Αϋ 一 locatorの直後の位置と、 その Allocatorが表す値とを加算すること で、 字幕アクセスユニットの先頭位置を求める。
即ち、 Αϋ— locatorは、 第 2 4図で説明したように、 その AU_locator の直後の位置を基準として、 private—streaidJES—payloadOの priva te一 payloadOに格納される字幕アクセスュニット (あるいはオーディ ォアクセスユニット) の先頭位置を表すから、 Allocatorの直後の位 置に、 その AU— locatorが表す値を加算することにより、 字幕アクセス ュニッ卜の先頭位置を求めることができ ¾。
字幕読み出し機能部 2 3 5は、 さらに、 ステップ S 2 5 4において 、 以上のようにして求めた字幕アクセスュニッ卜の先頭位置を指すよ うに、 字幕読み出しポインタ記憶部 2 6 2に記憶された字幕読み出し ポインタを更新し、 ステップ S 2 5 5に進む。
ステップ S 2 5 5では、 字幕読み出し機能部 2 3 5は、 字幕デコー ダ制御モジュール 2 1 8から、 データの要求があつたかどうかを判定 し、 ないと判定した場合、 ステップ S 2 5 5に戻り、 同様の処理を繰 り返す。
また、 ステップ S 2 5 5において、 字幕デコーダ制御モジュール 2 1 8から、 データの要求があつたかと判定された場合、 ステップ S 2 5 6に進み、 字幕読み出し機能部 2 3 5は、 字幕読み出しポイン が 指しているバッファ 2 1 5 Aの位置からのプログラムストリームの構 文解析を行いつつ、 字幕アクセスュニットの先頭に記述されているサ ィズ分の 1つの字幕アクセスュニットを、 バッファ 2 1 5 Aから読み 出し、 その字幕アクセスュニッ卜に付加されているタイムスタンプと ともに、 字幕デコーダ制御モジュール 2 1 8に供給する。 即ち、 字幕 アクセスュニットの先頭には、 第 2図 Aおよび第 2図 Bで説明したよ うに、 その字幕アクセスユニットのサイズが記述されており、 字幕読 み出し機能部 2 3 5は、 そのサイズ分のデータを、 字幕読み出しボイ ン夕が指しているバッファ 2 1 5 Aの位置から読み出し、 その読み出 したデータである字幕アクセスュニットを、 その字幕アクセスュニッ トに付加されているタイムスタンプとともに、 字幕デコーダ制御モジ ユール 2 1 Sに供給する。
そして、 字幕読み出し機能部 2 3 5は、 バッファ 2 1 5 Aから読み 出した 1つの字幕アクセスュニッ卜のサイズ分だけ、 字幕読み出しポ イン夕を更新して、 ステップ S 2 5 5に戻り、 以下、 同様の処理が繰 り返される。
[再同期処理]
次に、 第 2図 Aおよび第 2図 Bのデコード制御モジュール 2 1 4に よる、 ビデオデータとオーディォデコーダとの同期制御について説明 する。 '
第 3 4図のステップ S 1 3 0で説明したように、 デコード制御モジ ユール 2 1 4は、 同期を確保するために必要であればタイミングをず らして、 デコード開始を、 ビデオデコーダ制御モジュール 2 1 6、 ォ 一ディォデコーダ制御モジュール 2 1 7、 および字幕デコーダ制御モ ジュール 2 1 8に指令するが、 例えば、 'その後のビデオデコーダ 1 1 6とオーディォデコ一ダ 1 1 7のデコード処理の進行程度によって、 ビデオデ一夕の出力と、 そのビデオデータと同期して出力されるべき 出力データとしてのオーディォデ一夕の出力とがずれることがある。 そこで、 デコード制御モジュール 2 1 4では、 ビデオデータの出力 と、 そのビデオデータと同期して出力されるべきオーディォデータの 出力とに生じたずれを補正し、 ビデオデータとオーディォデ一夕とが 同期して出力されるようにするための再同期処理が行われる。
第 4 8図のフローチャートを参照して、 再同期処理について説明す る。
再同期処理では、 まず最初に、 ステップ S 2 7 1において、 デコー ド制御モジュール 2 1 4は、 ビデオデコーダ制御モジュール 2 1 6か らのビデオアクセスュニッ卜のタイムスタンプと、 オーディオデコ一 ダ制御モジュール 2 1 7からのオーディオアクセスユニットのタイム スタンプとのずれが大であるかどうかを判定する。
即ち、 第 3 4図のステップ S 1 2 9で説明したように、 ビデオデコ ―ダ制御モジユール 2 1 6は、 ノ ッファ.制御モジュール 2 1 5からビ デォアクセスュニットを得るたびに、 そのビデオアクセスュニットの タイムスタンプを、 デコード制御モジュール 2 1 4に供給する。 同様 に、 オーディオデコーダ制御モジュール 2 1 7も、 バッファ制御モジ ユール 2 1 5からオーディォアクセスュニットを得るたびに、 そのォ 一ディオア セスュニッ 卜のタイムスタンプを、 デコード制御モジュ —ル 2 1 4に供給する。
ステップ S 2 7 1では、 デコード制御モジュール 2 1 4は、 ビデオ デコ一ダ制御モジュール 2 1 6とオーディオデコーダ制御モジュ一ル 2 1 7とのそれぞれから、 同一タイミングとみなすことができる、 あ る時間内に供給されるタイムスタンプどうしを比較し、 それらのタイ ムス夕ンプのずれが大であるかどうかを判定する。
ステップ S 2 7 1において、 ビデオデコーダ制御モジュール 2 1' 6 からのビデオアクセスュニッ卜のタイムスタンプと、 ォ一ディォデコ ーダ制御モジュール 2 1 7からのオーディォアクセスュニッ卜のタイ ムスタンプとのずれが大でないと判定された場合、 即ち、 ビデオァク セスュニットのタイムスタンプと、 ォ一ディォアクセスュニットの夕 ィムスタンプとのずれが、 あらかじめ定められた同期がとれていると みなすことができる範囲内である、 例えば、 2ビデオフレーム (約 6 6ミリ秒) である場合、 ステップ S 2 7 1に戻り、 タイムスタンプど うしのずれの判定が続行される。
一方、 ステップ S 2 7 1において、 ビデオデコーダ制御モジュール 2 1 6からのビデオアクセスュニッ卜のタイムスタンプと、 オーディ ォデコーダ制御モジュール 2 1 7からのオーディオアクセスュニット のタイムスタンプとのずれが大であると判定された場合、 即ち、 ビデ ォアクセスユニットのタイムスタンプと、 オーディォアクセスュニッ 卜のタイムスタンプとのずれが、 あらか.じめ定められた同期がとれて いるとみなすことができる範囲外である場合、 ステップ S 2 7 2に進 み、 デコ一ド制御モジュール 2 1 4は、 ビデオデコーダ制御モジュ一 ル 2 1 6からのビデオアクセスユニッ トのタイムスタンプと、 オーデ ィォデコーダ制御モジュール 2 1 7からのオーディオアクセスュニッ トのタイムスタンプとを比較することにより、 ビデオデータの出力と 、 オーディォデータの出力とのうちのいずれが遅れているかを判定す る。
ステップ S 2 7 2において、 ビデオデ一夕の出力が、 オーディオデ 一夕の出力よりも遅れていると判定された場合、 ステップ S 2 7 3に 進み、 デコード制御モジュール 2 1 4は、 1 ビデオアクセスユニッ ト だけ、 ビデオアクセスユニッ トの処理を進めるために、 ビデオデ l一 ダ制御モジュール 2 1 6に対して、 ビデオアクセスュニッ トのデコー ドと表示を行わない旨の指示、 即ち、 ビデオアクセスユニッ トの処理 のスキップの指示を出力して、 ステップ S 2 7 4に進む。
ステップ S 2 7 4では、 ビデオデコーダ制御モジュール 2 1 6は、 デコード制御モジュール 2 1 4からのスキップの指示を受信し、 その スキップの指示に応じて、 バッファ制御モジュール 2 1 5からのビデ ォアクセスュニッ 卜とともに供給される au— ref—flag (第 2 7図) を 検査する。
即ち、 private— s earn— 2の PES— packet 0の pr ivate— s t ream2— PES— pa yloadO (第 2 6図) に配置された au— informat ion 0 (第 2 7図) に は、 ァ'クセスュニッ 卜に関する情報としての au— ref_flagが含まれて おり、 ノ ッファ制御モジユール 2 1 5は、 第 3 4図のステップ S 1 2 9や、 第 4 5図のステップ S 2 1 6で説明したように、 ビデオァクセ スュニッ トとともに、 そのビデオアクセスュニッ 卜の au— ref_flagを 、 ビデオデコーダ制御モジュール 2 1 6.に供給する。
ステップ S 2 7 4では、 このように、 アクセスユニッ トとともに供 給される、 そのアクセスュニッ トの au— ref—flagが検査される。
そして、 ステップ S 2 7 4から S 2 7 5に進み、 ビデオデコーダ制 御モジュール 2 1 6は、 バッファ制御モジュール 2 1 5から供給され たビデオアクセスュニッ トの au_ref_flagの検査の結果に基づき、 そ のビデオアクセスュニッ 卜が、 他のピクチャのデコードにあたって参 照されない非参照画像であるかどうかを判定する。
ここで、 第 2 7図で説明したように、 ビデオアクセスユニッ トの au — ref— flagは、 そのアクセスュニッ トが参照画像であるか否かを表し 、 参照画像である場合には 1 とされ、 参照画像でない場合、 即ち、 非 参照画像である場合には 0とされる。
ステップ S 2 7 5において、 バッファ制御モジュール 2 1 5から'供 給されたビデオアクセスユニッ トが非参照画像のビデオアクセスュニ ッ トでないと判定された場合、 即ち、 バッファ制御モジュール 2 1 5 から供給されたビデオアクセスュニッ トが参照画像である場合、 ステ ップ S 2 7 6に進み、 ビデオデコーダ制御モジュール 2 1 6は、 通常 通り、 そのビデオアクセスユニッ トを、 ビデオデコーダ 1 1 6に処理 させ、 次のビデオアクセスユニッ トが、 バッファ制御モジュール 2 1 5から供給されるのを待って、 ステップ S 2 7 4に戻る。
また、 ステップ S 2 7 5において、 バッファ制御モジュール 2 1 5 から供給されたビデオアクセスユニッ トが非参照画像であると判定さ れた場合、 ステップ S 2 7 7に進み、 ビデオデコーダ制御モジュール 2 1 6は、 そのビデオアクセスユニッ トの、 ビデオデコーダ 1 1 6に よる処理をスキップさせ、 次のビデオアクセスユニッ トが、 バッファ 制御モジュール 2 1 5から供給されるのを待って、 ステップ S 2 7 1 に戻る。 .
このように、 ビデオアクセスュニッ 卜の処理がスキップされること により、 ビデオアクセスユニッ トの処理が、 ほぼ 1 ビデオアクセスュ ニッ ト分だけ進められる。 その結果、 オーディオデータの出力よりも 遅れていたビデオデ一夕の出力が早まることになる。
一方、 ステップ S 2 7 2において、 ビデオデータの出力が、 オーデ ィォデータの出力よりも遅れていないと判定された場合、 即ち、 ォー ディォデータの出力が、 ビデオデータの出力よりも遅れている場合、 ステップ S 2 7 8に進み、 デコード制御モジュール 2 1 4は、 ビデオ アクセスュニッ トの処理を待たせるために、 ビデオデコーダ制御モジ ユール 2 1 6に対して、 いまデコードされているビデオアクセスュニ ッ トに対応するビデオデ一夕を繰り返して出力する繰り返し出力 (^指 示を出力して、 ステップ S 2 7 9に進む。 ' ステップ S 2 7 9では、 ビデオデコーダ制御モジュール 2 1 6は、 デコード制御モジュール 2 1 4からの繰り返し出力の指示を受信し、 その繰り返し出力の指示に応じて、 いまビデオデコーダ 1 1 6でデコ 一ドされているビデオアクセスュニッ トに対応するビデオデータを繰 り返して、 グラフィクス処理モジュール 2 1 9に出力し、 次のビデオ アクセスユニッ トが、 バッファ制御モジュール 2 1 5から供給される のを待って、 ステップ S 2 7 1に戻る。
以上のように、 デコード制御モジュール 2 1 4では、 ビデオデ一夕 の出力が、 オーディォデータの出力よりも遅れているか否かを判定し 、 ビデオデータの出力が、 オーディオデータの出力よりも遅れている 場合には、 1つのアクセスユニッ トの処理のスキップを、 ビデオデコ ーダ制御モジュール 2 1 6に指示する。 そして、 ビデオデコーダ制御 モジュール 2 1 6では、 スキップが指示されたアクセスユニッ トの au —reし f l agに基づき、 そのアクセスユニッ トが参照画像であるか、 ま たは非参照画像であるかを判定し、 非参照画像である場合に、 ビデオ デコーダ 1 1 6に、 スキップが指示されたアクセスユニッ トの処理を スキップさせる。 従って、 ビデオデータの出力と、 オーディオデータ の出力との同期を、 容易にとることができる。
即ち、 処理をスキップするアクセスュニッ 卜が参照画像である場合 、 そのアクセスユニッ トに対応するビデオデータは、 その後にデコー ドされる他のアクセスュニッ トのデコ一ド時に参照するためにデコー ドする必要がある。 従って、 ビデオデータの出力と、 オーディオデー 夕の出力との同期をとるための同期制御において、 参照画像のァクセ スュニットの処理をスキップしてしまうと、 その参照画像を参照する 他のアクセスユニットをデコードすることができず、 その結果、 ピデ ォデータの表示において、 同期制御がノイズとして現れてしまう。' このため、 処理をスキップするのは、 参照画像でないアクセスュニ ット、 即ち、 非参照画像のアクセスユニットとするのが望ましい。 一方、 従来のエレメン夕リストリームについて、 非参照画像のァク セスュニットを探すためには、 エレメン夕リストリームの構文解析を 行う必要があるが、 例えば、 MPEG4-AVCなどにしたがった符号化によ り得られるエレメンタリストリ一ムは、 構文が非常に複雑であるため 、 構文解析に、 多大なコストがかかる。
これに対して、 ディスク 1 0 1に記録されたクリップストリ一ムフ アイルに格納されたプログラムストリームには、 ビデオアクセスュ.二 ットが PES— packet_data_byteに配置される PES_packet 0 (第 1 9図 A および第 1 9図 B乃至第 2 1図 Aおよび第 2 1図 B) とは別に、 PES— packet— data— byteを拡張した private— stream2— PES— payloadO (第 2 6図) が配置された private_stream— 2の PES_packet 0が多重化されて おり、 その private— stream2— PES— payloadOの au—information() (第 2 7図) には、 ビデオアクセスユニットごとに、 そのビデオアクセス ュニッ 卜が参照画像であるか、 または非参照画像であるかを表す au一 r eし flagが記述されている。 そして、 その au_reし flagは、 対応するビ デォアクセスュニットとともに、 バッファ制御モジュール 2 1 5から ビデオデコーダ制御モジュール 2 1 6に供給される。 従って、 ビデオ デコーダ制御モジュール 2 1 6は、 ビデオアクセスユニットとともに 供給される、 そのビデオアクセスュニッ卜の au— ref— flagを検査する ことにより、 コストをほとんどかけずに、 ビデオアクセスユニットが 参照画像であるか、 または非参照画像であるかを認識することができ る。
[マーク処理]
次に、 第 49図のフローチャートを参照して、 PlayListMarkO (第 9図) に記述された MarkOに基づいて行われるマーク処理について説 明する。
デコード制御モジュール 2 1 4は、 内蔵する計時部 2 1 4 Aによつ て計時されている現在時刻を、 常時確認しており、 ステップ S 3 0 1 において、 現在時刻が、 PlayListMarkO (第 9図) に記述されたいず れかの Mark ()の mark一 time— st ampに一致したか否かを判定する。
即ち、 第 34図のステップ S 1 2 4で説明したように、 プレイヤ制 御モジュール 2 1 2は、 第 2 9図に示した 1番目の PlayList#0の 1番 目の PlayItem#0を再生しょうとするときに、 第 3 2図上側に示した P1 ayListMarkOに含まれる 7つの Mark 0のうちの 1番目から 4番目まで の 4つの Mark ()が、 PlayList#0の 1番目の Playl tem#0に属しているこ とを認識し、 その 4つの MarkOの mark— time— stampである {180, 090}、 , 580,090}、 {10, 980,090}, 6, 380, 090}を、 その mark— t ime— s t a mpが表す時刻の属性が 「マーク処理」 ある旨とともに、 デコード制 御モジュール 2 1 4に渡している。
ステツプ S 3 0 1では、 デコード制御モジュール 2 1 4において、 現在時刻が、 上述のようにしてプレイヤ制御モジュール 2 1 2から供 給された 「マーク処理」 の属性の時刻(mark_time_sta即)のうちのい ずれかと一 ¾するかどうかが判定される。
ステップ S 3 0 1において、 現在時刻が、 「マーク処理」 の属性の 時刻のうちのいずれとも一致しないと判定された場合、 ステップ S 3 0 1に戻り、 同様の処理が繰り返される。
[マーク処理における一致判定] ここで、 マーク処理に関して、 ステップ S 3 0 1においてデコード 制御モジュール 2 1 4は、 現在時刻と Diark_time__stampのいずれがが 一致しているか否かの判定を行っている。 しかしながら、 本実施例に おいては、 第 4図に示すように、 計時部 2 1 4 Aの示す時刻が離散的 な値を示すため、 単純な一致判定では問題が発生することがある。 第 5 0図を用い、 少し単純化した例で説明する。 第 5 0図の上部で 10, PI, P2, P3はビデオアクセスユニットである。 これらの pic_stru ctはすべて 3であり、 すなわち表示 durationは 1フレーム (90kHz換算 で 3003) とする。 また、 この例ではデコード順と表示順が同じである としており、 リオーダリングは発生しない。 また、 10は 「再生準備処 理 J で説明したように EP— mapOに登録されているアクセスュニッ卜で あり、 タイムスタンプを持っており PTS=180,090であるとする。 P1, P2, P3のアクセスユニッ トはタイムスタンプを持っていない。
このようなビデオデ一夕が処理される場合、 計時部 2 1 4Aの示す 時計は第 5 0図の下部で示されるように更新される。 すなわち、 10の 出力時は、 10の PTSと 10の pic_structが渡され、 PTSが存在するので計 時部 2 1 4 Aに PTSが代入されて 180, 090となる。 P1の出力時には、 PT Sは存在せず、 P1の pic_structが渡され、 10の pic_structが 3である ため、 1フレーム分の時間 (90kHzで 3003) が計時部 2 1 4Aに加算さ れ、 183,093となる。 同様に P2の出力時には P1の pic— structが 3である ことから 3003が加算されて 186, 096、 P3の出力時にも 3003が加算され て 189, 099と'なる。
ここで、 PlayListMarkO (第 9図及び第 3 2図) に登録されたうち のひとっのマ一クの ^_"1116ー31&即が186, 000であったときの処理を 考える。 上述したように時計 (計時部 2 1 4A) の出力する値は、 18 0, 090, 183,093、 186,096、 189, 099であるため、 マークの時刻と一致 する 186,000という時刻は出力しない。 このため、 mark_time— sta即と 時刻の単純な比較、 すなわち差分が 0であるか否かの確認では問韙が 発生する。 , このため、 ここでは時刻の一致判定に対して一定のルールが適用さ れる。 すなわち、 ここでは、 所定のイベントの mark一 time_stampが、 所定の画像の表示 durat ion中に含まれる場合、 その所定のィベントは 該当する画像の表示開始時刻に発生すると定義する。 例えば上記の例 では、 mark一 time_stamp=186, 000は、 画像 P1の表示 durat ionに含まれ ている。 このため、 このイベントは P1の表示開始時刻すなわち 183, 09 3に発生するとする。
このような定義の下で一致判定を行うためのデコード制御モジユー ル 2 1 4の判定アルゴリズムについて説明する。
なお、 この例の場合、 時刻 (計時部 2 1 4A) の更新はビデオデ一 夕の更新の際にのみ発生する。 つまり、 第 4 9図のステップ S 3 0 1 は、 時刻の更新の際にのみ行われることになる。 ソフトウェアで構成 する再生機器では、 処理を大幅に減らすことができ有利である。
さて、 時刻の更新に応じて第 4 9図の.処理が呼び出される。 デコ一 ド制御モジュール 2 1 4は、 ステップ S 3 0 1において、 現在時刻に 一致と判定されるイベントが存在するか否かの確認を行う。 すなわち 、 現在時刻と、 表示中の画像の表示 durationから現在表示中の画像の 表示 durat ionに含まれているイベントが存在するかどうかの確認を行 レ 一致と判定されるイベントが存在しない場合、 処理はステップ S 3 0 1に戻る。 また、 一致と判定されるイベントが存在する場合、 処 理はステップ S 3 0 2に進む。 尚、 イベントが存在しない場合には、 処理が終了されるようにしても良い。
具体的には、 例えば 10を表示中の場合に、 時刻は 180, 090であり、 I 0の pic_structが 3であることから 10の表示 durat ionは 3003であること が分かっている。 このため、 180,090≤mark_tiffle_stampく lSihOQO O 03を満たす Diark_Ume_stampを探す。 このとき例示したィベント時刻 1 86, 000はこの式を満たさないため、 一致と判定されない。
次に、 例えば IIを表示中の場合に、 時刻は 183, 093であり、 IIの pic _structが 3であることから 10の表示 (Jurat ionは 3003であることが分か つている。 このため、 lS3,093≤fflark—time_sta即く 183,093+3003を満 たす mark_time_stampを探す。 このとき例示したィベン卜時刻 186, 000 はこの式を満たすので、 時刻が一致すると判定され、 ステップ S 3 0 2以降の処理が行われる。
この例では、 時刻の一致判定の 1の例を示したが、 他の定義を適用 することも可能である。 例えば、 あるイベントの mark_time— stampが 、 "ある画像の表示開始一《"の時刻以上、 "次の表示画像の表示開始 時刻一 ο;"の時刻未満に含まれる場合、 そのィベントは該当する画像 の表示開始時刻に発生すると定義することも可能である。 また判定基 準はそのままで、 イベントの発生時刻を例えば"該当画像の表示開始 時刻一 α"に発生すると定義することも可能である。
なお、 このような定義を導入することにより、 マークの時刻すなわ ち mark一 time_stainpの設定時にビデオス卜リームの時刻を知る必要が 無くなる。 このため、 ォーサリングにおけるビデオエンコードとデー 夕ベース作成の独立性が高まり、 作業を分離することが可能となる。 また、 ス ップ S 30 1において、 現在時刻が、 「マーク処理」 の 属性の時刻のうちのいずれかと一致すると判定された場合、 デコード 制御モジュール 2 1 4は、 現在時刻が、 「マーク処理」 の属性の時刻 となった旨のメッセージと、 現在時刻と一致した 「マーク処理」 の属 性の時刻とを、 プレイヤ制御モジュール 2 1 2に供給して、 ステップ S 3 0 2に進む。
ステップ S 3 0 2では、 プレイヤ制御モジュール 2 1 2が、 現在時 刻が、 「マーク処理」 の属性の時刻となった旨のメッセージと、 現在 時刻と一致した 「マーク処理」 の属性の時刻(mark— time_stamp)とを 、 デコード制御モジュール 2 1 4から受信し、 mar time_sta即が現 在時刻に一致した MarkOを、 マーク処理の処理対象とする MarkO (以 下、 適宜、 処理対象 markという) として認識する。
即ち、 プレイヤ制御モジュール 2 1 2は、 現在再生されている Play List 0の Play Item ()を認識しており、 その P yList 0および Play Item 0と、 デコード制御モジュール 2 1 4からの、 現在時刻と一致した 「 マーク処理」 の属性の時刻(mark jime一 stamp) (以下、 適宜、 マーク 時刻という) とから、 "PLAYLIST.DAT"ファイル (第 7図) の PlayList MarkO (第 9図) を参照することにより、 処理対象 markを認識する。 具体的には、 例えば、 いま、 第 2 9図に示した 1番目の PlayList#0 の 1番目の PlayItem#0が再生されているとすると、 そのことにより、 プレイヤ制御モジュール 2 1 2は、 マーク時刻が、 第 3 2図上側に示 した PI ayListMarkOに含まれる 7つの MarkOのうちの 1番目から 4番 目までの 4つの MarkOのうちのいずれかの mark_t ime一 s ta即であるこ とを認識する。
そして、 デコード制御モジュール 2 1 4からプレイヤ制御モジユー ル 2 1 2に供給されたマーク時刻が、 例えば、 16,380, 090であったと すると、 プレイヤ制御モジュール 2 1 2は、 第 3 2図上側に示した P1 ayListMarkOに含まれる 1番目から 4番目までの 4つの MarkOのうち の、 mark_time_stampが、 マーク時刻である 16, 380, 090に一致する 4 番目の MarkOを、 処理対象 markとして認識する。
プレイヤ制御モジュール 2 1 2は、 以上のようにして、 処理対象 ma rkを認識すると、 ステップ3 3 0 2から 3 3 0 3に進み、 処理対象 ma rkにおいて、 エレメン夕リストリームを特定する entry一 ES_stream'_ id < en t ry_ES_pr i va t e_s t r eam_i d (第 9図) が記述されているかどうか を判定する。
ステップ S 3 0 3において、 処理対象 markに、 エレメンタリストリ —ムを特疋する en try— ES一 stream一 idと en try一 ES— private— stream— id ( 第 9図) が記述されていないと判定された場合、 即ち、 entry_ES_str eam— idと entry—ES—private—stream_i(^S、 いずれも 0x00である場合、 ステップ S 3 04をスキップして、 ステップ S 3 0 5に進み、 以下、 処理対象 markに応じた処理が行われる。
また、 ステップ S 3 0 3において、 処理対象 markに、 エレメンタリ ス卜リームを特定する en try— ES— stream— idと entry— ES— private— strea m_id (第 9図) が記述されていると判定された場合、 ステップ S 3 0 4に進み、 プレイヤ制御モジュール 2 1 2は、 再生中のエレメンタリ ストリームに、 その entry_ES— stream_id、 さらには、 必要に応じて en try_ES_private_stream— idによって特定されるエレメンタリストリ一 ムが含まれるかどうかを判定する。
ステップ S 3 04において、 再生中のエレメンタリストリームに、 処理対象 markの en try— ES— stream— idと entry— ES— private— stream— idに よって特定されるエレメン夕リストリームが含まれないと判定された 場合、 ステップ S 3 0 1に戻る。 即ち、 処理対象 markの entry_ES一 str
6&01_1(1と611 —85_01<^&16_5 6&111_1(1にょって特定されるェレメンタ リス! ^リームが再生されていない場合、 処理対象 markは、 無視される 一方、 ステップ S 3 0 4において、 再生中のエレメンタリストリー ムに、 処理対象 markの entry— ES stream— idと entry ES— private— strea m_idによって特定されるエレメンタリストリ一ムが含まれると判定さ れた場合、 即ち、 処理対象 markの entry_ES_stream— idと entry— ES」pri vate_stream一 idによって特定されるエレメンタリストリームが再生さ れている場合、 処理対象 markは有効であるとして、 ステップ S 3 0 5 に進み、 以下、 その処理対象 markに応じた処理が行われる。
即ち、 ステップ S 3 0 5では、 プレイヤ制御モジュール 2 1 2は、 処理対象 markの mark_type (第 9図) を参照することにより、 その処 理対象! narkを判定する。
ステップ S 3 0 5において、 処理対象 markが、 チヤプタマークまた はインデクスマークであると判定された場合、 即ち、 処理対象 markの mark_typeが、 ' Chapter'または' Index'である場合、 ステップ S 3 0 6に進み、 プレイヤ制御モジュール 2 1 2は、 グラフィクス処理モジ ユール 2 1 9に命じて、 チヤプタまたはインデクスの番号の表示を、 処理対象 markであるチヤプタマークまたはィンデクスマークが表すチ ャプ夕またはインデクスの番号に更新させて、 ステップ S 3 0 1に戻 る。
また、 ステップ S 3 0 5において、 処理対象 markが、 イベントマー クであると判定された場合、 即ち、 処理対象 markの mark一 typeが、 ' Ev ent'である場合、 ステップ S 3 0 7に進み、 プレイヤ制御モジュール 2 1 2は、 イベントの発生を表すイベントメッセージと、 処理対象 ma rkの mark_dataを、 スクリプト制御モジュール 2 1 1に供給して、 ス テツプ S 3 '0 8に進む。
ス ップ S 3 0 8では、 スクリプト制御モジュ一ル 2 1 1が、 プレ ィャ制御モジュール 2 1 2からのイベントメッセージと mark_dataと を受信し、 イベントメッセージを割り込み要求として、 あらかじめ" S CRIPT.DAT"ファイルに記述された一連の処理を、 mark_dataを引数と して行って、 ステップ S 30 1に戻る。
即ち、 スクリプト制御モジュール 2 1 1では、 mark— dataに対^し た処理が行われる。
具体的には、 例えば、 第 3 2図下側に示した PlayList #1の PlayLis tMarkOでは、 2番目の MarkO (Mark#l) と 3番目の MarkO (Mark#2 ) とは、 いずれも、 mark一 typeが' Event'であるが、 mark— dataは、 そ れぞれ 1 (Mark#l) と 2 (Markf2) で異なっている。
スクリプト制御モジュール 2 1 1は、 2番目の MarkOに対応するィ ベントメッセージを受信した場合と、 3番目の MarkOに対応するィべ ントメッセージを受信した場合の、 いずれも場合も、 そのイベントメ ッセージに応じて、 同一のイベントハンドラ (割り込み処理ルーチン ) で処理を行うが、 イベントハンドラ内において、 イベントメッセ一 ジとともに供給される mark_dataを検査することにより、 ィベントメ ッセージに対して、 mark_dataごとに異なる処理を行う。
具体的には、 例えば、 mark— dataが 1である場合には、 スクリプト制 御モジュール 2 1 1は、 グラフィクス処理モジュール 2 1 9を制御し て、 第 1の種類のアイコンの表示を行わせる。 また、 例えば、 mark— d ataが 2である場合、 スクリプト制御モジュール 2 1 1は、 グラフイク ス処理モジュール 2 1 9を制御して、 第 2の種類のアイコンの表示を 行わせる。
なお、 mark一 dataは、 1や 2に限定されるものではなく、 また、 mar k— dataに対 jfeして行われる処理も、 上述したような、 単なるアイコン の表^に限定されるものではない。
即ち、 例えば、 mark— dataが 3乃至 18の範囲の値である場合には、 ス クリブト制御モジュール 2 1 1は、 グラフィクス処理モジュール 2 1 9を制御し、 第 1の種類のアイコンの表示を、 mark dataから 2を減じ た値 (1乃至 16の数値) に対応する明るさで行わせる。 また、 例えば 、 mark_dataが 19乃至 34の範囲の値である場合には、 スクリプト鈉御 モジュール 2 1 1は、 グラフィクス処理モジュール 2 1 9を制御し、 第 2の種類のアイコンの表示を、 mark_dataから 18を減じた値 (1乃至 16の数値) に対応する明るさで行わせる。
その他、 例えば、 入カイン夕ーフェース 1 1 5 (第 1図) に、 ュ一 ザが操作するコントローラが接続されており、 そのコントローラが、 DC (Direct Current)モ一夕の軸に偏芯させたおもりを取り付けた、 DC モータを動作させると振動が発生する振動モー夕を内蔵する場合には 、 mark_dataが 35乃至 42の範囲の値であるときに、 その振動モ一夕を 、 mark_dataから 34を減じた値 (1乃至 8の数値) に応じた動作時間だ け動作させることができる。
mark_dataは数値であり、 その使用法やアルゴリズムは、 スクリブ ト制御モジュール 2 1 1が実行するスクリブトプログラムにより記述 することができる。 従って、 mark_dataは、 事前に取り決められたル ールで使用する他、 ディスク 1 0 1の製造者、 あるいはディスク 1 0 1に記録されるデータを提供するコンテ.ンップロバイダなどが独自に 設定したルールで使用することが可能である。
以上のように、 マーク処理では、 現在時刻が、 「マーク処理」 の属 性の時刻と一致すると、 その 「マーク処理」 の属性の時刻であるマ一 ク時刻から、 処理対象 markが認識される。 さらに、 処理対象 markにお いて、 エレメン夕リストリームを特定する entry_ES_streamJdと entr y— ES_private_streanUdが記述されていない場合には、 処理対象 mark の markjypeに応じた処理が行われる。 また、 処理対象 markにおいて 、 エレメンタリストリームを特定する entry_ES— stream_idと entry_ES _private_stream_idが記述されている場合であっても、 その entry_ES — stream_idと entry_ES_private_stream— idによつて特定されるエレメ ンタリストリームが再生中であれば、 処理対象 markの mark_type 応 じた処理が行われる。
従って、 例えば、 いま、 第 2 9図に示した 2番目の PlayList#lの再 生が行われているとすると、 以下のようなマーク処理が行われる。 即ち、 2番目の PlayUst#lの PlayListMarkOにおいては、 第 3 2図 下側に示したように、 1^1"^^_31&1^がそれぞれ90,000, 27,090,00 0, 27,540,000に指定されている 1番目の MarkO (Mark#0)、 2番目の M arkO (Mark#l) 、 3番目の MarkO (Mark#2) が記述されている。 さらに、 第 3 2図下側の PlayListMarkOにおいては、 2番目の Mark 0と 3番目の MarkOの entry_ES_stream一 idには、 それぞれ、 OxEOと Ox Elが記述されているから、 2番目の MarkOと 3番目の MarkOは、 それ ぞれ、 st ream一 idが OxEOと OxElで特定されるエレメンタリストリーム が関連付けられている。
ここで、 第 2 9図で説明したように、 2番目の PlayList#lには、 1 つの PlayltemO (Playl tem#0)だけが記述され、 その Playl tem#0によれ ば、 クリップストリ一ムファイル" OOOO^PS"が再生される。 そして、 クリッブス卜リームファイル" 00003.PS"には、 そのクリッブストリー ムファイル" 00003.PS"に対応する第 3 0図 Aおよび第 3 0図 Bのクリ ップ情報ファイル" 00003. CLP"で説明したように、 OxEOとなっている s tream_idで特定されるビデオストリーム stream#0、 OxElとなっている st ream—idで特定されるビデオストリーム stream#l、 OxBDとなってい る stream_idおよび 0x00となっている private_stream_idで特定される オーディオストリーム stream#2の 3つのエレメン夕リス卜リームが多 重化されている。
従って、 第 3 2図下側の PlayListMarkOの 2番目の MarkOには、 ク リップス卜リームファイル" 00003.PS"に多重化されている、 st ream— i dが OxEOとなっているビデオストリーム stream#0が関連付けられセぉ り、 3番目の Mark 0には、 クリップストリームファイル" 00003. PS"に 多重化されている、 stream_idが OxElとなっているビデオストリーム s tream#lが関連付けられている。
第 2 9図の 2番目の PlayList#lの P yltemifOの再生が開始される場 合、 第 3 4図のステップ S 1 24で説明したようにして、 プレイヤ制 御モジュール 2 1 2は、 第 3 2図下側に示した?1& 1^3^&1^0に含ま れる 3つの Mark 0が、 PlayList#lの PlayItem#0に属していることを認 識し、 その 3つの MarkOの nmrk_Jime_stampである {90,000}、 {27, 090 ,000}、 {27, 540, 000}を、 その mark— t ime_sta即が表す時刻の属性が 「 マーク処理」 である旨とともに、 デコード制御モジュール 2 1 4に渡 している。
マーク処理では、 デコード制御モジュール 2 1 4が、 PlayList#lの PlayItem#0の再生中に、 計時部 2 1 4 Aによって計時される現在時刻 が、 属性が 「マーク処理」 の時刻 {90, 000}、 7, 090, 000}、 {27, 540, 000}のうちのいずれかに一致するかを、.常時確認しており (ステップ S 3 0 1 ) 、 現在時刻が、 属性が 「マーク処理」 の時刻に一致すると 、 現在時刻と一致した 「マーク処理」 の属性の時刻であるマーク時刻 と、 現在時刻が、 「マーク処理」 の属性の時刻となった旨のメッセ一 ジとを、 プレイヤ制御モジュール 2 1 2に供給する。
即ち、 例えば、 いま、 現在時刻が、 「マーク処理」 の属性の時刻 {9 0, 000}, {27,090,000}、 {27, 540, 000}のうちの、 27, 090, 000に一致し たとすると、 デコード制御モジュール 2 1 4は、 現在時刻と一致した 「マーク処理」 の属性の時刻であるマーク時刻 27, 090,000と、 現在時 刻が、 「マーク処理」 の属性の時刻となった旨のメッセージとを、 プ レイヤ制御モジュール 2 1 2に供給する。
プレイヤ制御モジュール 2 1 2は、 PlayListinの PlayItem#0が璁在 再生されていることを認識しており、 その PlayList#lの第 3 2図下側 に示した1)1& 1^31¾1&^0に記述された MarkOのうちの、 PlayItem#0に 属する 3つの MarkOの mark_time_stainpである 90, 000, 27, 090, 000, 2 7, 540, 000それぞれと、 デコード制御モジュール 2 1 4からのマーク 時刻である 27, 090, 000とを比較することにより、 そのマーク時刻 27, 0 90,000に、 mark_time_sta即が一致する Mark()、 即ち、 第 3 2図下側 の?1& 5^&^0に記述された 2番目の MarkO (Mark#l)を、 処理対象 markとして認識する (ステップ S 3 0 2 ) 。
処理対象 markである、 第 3 2図下側の PlayListMarkOに記述された 2番目の MarkOにおいては、 entry— ES— stream— idとして、 OxEOが指定 されている。 この OxEOとなっている entry— ES— stream一 idは、 上述した ことから、 クリップストリームファイル" 00003.PS"に多重化されてい る、 stream_idが OxEOとなっているビデオストリーム stream#0 (第 3 0図 Aおよび第 3 0図 B) を表すものであり、 プレイヤ制御モジユー ル 2 1 2は、 再生中のエレメン夕リストリームの中に、 そのビデオス トリーム stream#0が含まれるかどうかを判定する (ステップ S 3 0 3 , S 3 0 4) 。
そして、 再生中のエレメン夕リストリームの中に、 ビデオストリー ム stream#0が含まれない場合には、 処理対象 markは無視される (ステ ップ S 3 04 ) 。
一^、 再生中のエレメン夕リストリームの中に、 ビデオストリーム stream#0が含まれる場合には、 処理対象 markは有効であるとして、 そ の処理対象 markに応じた処理が行われる (ステップ S 3 0 5乃至 S 3 0 8) 即ち、 いまの場合、 処理対象 markである、 第 3 2図下側の PlayList MarkOに記述された 2番目の MarkOは、 その mark_typeが' Event' こな つているからイベントマークであり、 従って、 プレイヤ制御モジユー ル 2 1 2は、 イベントの発生を表すイベントメッセージと、 処理対象 markの mar dataを、 スクリプト制御モジュール 2 1 1に供給する ( ステップ S 3 0 5 , S 3 0 7 ) 。 そして、 スクリブト制御モジュール 2 1 1では、 プレイヤ制御モジュール 2 1 2からのィベントメッセ一 ジを割り込み要求として、 あらかじめ" SCRIPT. DAT"ファイルに記述さ れた一連の処理を、 そのイベントメッセージとともに供給された mark —dataを引数として行う (ステップ S 3 0 8) 。
以上のように、 マーク処理によれば、 PlayList 0の時間軸上の 1つ の再生時刻を表す mark— time_stanipと、 MarkOのタイプを表す mark— ty peと、 ィベントマークの引数となる mark_dataとを含む 0以上の Mark ( )を有する PlayListMarkO (第 9図) を含む PlayList 0 (第 7図) に したがって再生されているクリップストリームファイルの再生時刻で ある現在時刻が、 mark_time_s 即に一致するか否かが判定され、 現 在時刻が、 Diark_Ume_stampに一致する場合に、 その一致した現在時 刻であるマーク時刻に等しい mark— time_s tampを有する MarkOが、 処 理対象 markとして認識される。 さらに、 その処理対象 markが有する ma rk_typeが、 イベントを発生させるタイプを表している場合、 即ち、 処理対象 markが、 イベントマ一クである場合、 処理対象 markが有する mark_dataとィベントメッセージとが通知され、 その mark一 dataに応じ た処 が実行される。 従って、 クリップストリームファイルの再生時 刻に応じ、 mar dataに応じた処理を実行することが可能となる。
[ouし time処理における一致判定]
ところで、 上述したように、 デコード制御モジュール 2 1 4は計時 部 2 1 4 Aが計時している時刻が、 プレイヤ制御モジュール 2 1 2か ら与えられた Playltemの 0UT_timeに等しくなると、 デコ一ド中断制御 が行われ、 Playltemの再生が終了されるという制御が行われる。 本実 施例では、 PlayltenijfOの終了については、 第 40図のフロ一チャート におけるステップ S 1 5 1で説明されている。
この場合にも、 時刻と 0UT_timeの単純に比較での一致判定では、 問 題が生じる可能性がある。 このため、 時刻と 0UT_timeの比較において も上述した一致判定の定義を使用する。
すなわち、 第 5 1図で示されるように PlayListEndに対応する Playl temの OUTJimeが、 playListで最後に表示される FoCFP (再生中のビデ ォストリーム内の frame or complementary field pair) の PETより小 さい場合、 卩13 1^51511(1の時刻に相当する01^_^ 11116を表示(111 "011に 含む FoCFPの表示開始時刻(PTS)に PlayListEndィベン卜が発生すると き、 すなわち、 ? 31:。„11[3]≤01]11_^1116<0^:1\!0(111[3]でぁるとき、 FoCFP [3] の表示開始時刻 PTS FP[3]で、 PlayListEndイベントが発生する。 ここ で PETFDemi0は 「PTS FP wに p i c_s t r uc tで決まる表示 du r a t i onを加えた 時刻」 を示す。 .
これにより、 時刻の一致判定がビデオ出力の際に限定されるため、 処理が軽くなる。 また、 上述したようにビデオストリームの準備とデ 一夕ベースの準備の独立性が高まる。
さらに、 Playltemの再生終了がデコード制御モジュール 2 1 4から プレイヤ制細モジュール 2 1 2に伝えられ、 プレイヤ制御モジュール 2 1 2'がそれを再生中の最後の PlayListの Playltemであると判断する と、 スクリプト制御モジュール 2 1 1に対して01& 31611(1のィべン 卜を発生する。
スクリブト制御モジュール 2 1 1は、 PlayListEndのィベントを受 けるとることにより、 再生を指示した PlayListの再生が終了したこと を知り、 その後プログラミングされてある動作を続行する。 すなおち 、 別の playListを再生する、 メニューを表示する、 動作を終了する等 が実行される。
なお、 第 52図で示されるような場合、 すなわち、 OUT— timeが Play Item中で最後に表示される画像の表示終了時刻に等しい場合には、 上 記の一致判定では処理できない場合がある。 第 5 2図において、 例え ば、 FoCFP[2]を表示して pauseしているとき、 playStop 0が callされ ると、 FoCFP[3]を表示して pauseする。 その後再度 playStopOが call されると表示される画像には変更なく pi ayListEndが発生する。
すなわち、 最後の画像の表示開始時刻 + pic一 5 1(^で決まる(11] " on = 0UT_t i meとなってしまうため、 最後の画像の表示開始時刻 + p i c— s true tで決まる durationく 0UT_timeを満たさない。
このような場合には、 ビデオデコーダ制御モジュール 2 1 6が最後 の画像を出力した後、 該当画像の表示 duration経過後に表示終了を示 す情報をデコード制御モジュール 2 1 4に渡し、 これにより時計を" 最後の画像の表示開始時刻 + pic_strucfで決まる duration"に進める ことで、 一致条件を満たすようにすることが出来る。
[字幕デコード]
字幕デコーダ制御モジュール 2 1 8は、 バッファ制御モジュール 2 1 5 (第 5図) の字幕読み出し機能部 2 3 5から、 バッファ 2 1 5 A に記憶されこ 1つの字幕アクセスュニットと、 その字幕アクセスュニ ッ卜に'付加されているタイムスタンプを得るたびに、 内部に持つ字幕 デコードソフトウエアでデコードを開始し、 同時にタイムスタンプと durationをデコード制御モジュール 2 1 4に渡す。
デコード制御モジュール 2 14は、 ビデオデコーダ制御モジュール 2 1 6からの情報により時計 (計時部 2 1 4 A ) の時刻を変更した際 に、 字幕デコーダ制御モジュール 2 1 8から渡された字幕ァクセ ュ ニットの P T Sを吟味する。 すなわち、 字幕アクセスユニッ トの PTS と時刻が上述の一致判定基準に照らした上で一致と判断されると、 デ コード制御モジュール 2 1 4はグラフィクス処理モジュール 2 1 9に 対して字幕入力の指示を行うと同時に、 字幕デコーダ制御モジュール 2 1 8に対して出力の指示を行う。
デコード制御モジュール 2 1 4から出力の指示を受けた字幕デコー ダ制御モジュール 2 1 8は、 デコードされた字幕画像データをグラフ イクス処理モジュール 2 1 9に供給する。 グラフィクス処理モジユー ル 2 1 9は入力された字幕データを蓄積し、 以降入力するビデオデ一 夕に対して合成を行う。
デコード制御モジュール 2 1 4はさらに字幕の表示 dura t i onの検査 を行う。 すなわち、 "該当字幕の表示開始時刻 +表示 dura t i on"の値と 現在時刻が、 上述の一致判定基準に照らした上で一致と判断されると 、 デコ一ド制御モジュール 2 1 4はグラフィクス処理モジュール 2 1 9に対して字幕の消去を命じる。 グラフ.ィクス処理モジュール 2 1 9 は蓄積している入力された字幕デ一夕を消去し、 以降入力するビデオ データに対しての合成は行わない。
[マーク間隔の必然性]
以上に説明した一致判定基準では、 一定の範囲の時刻を単一時刻に 量子化している。 すなわち、 あるビデオデ一夕の表示開始時刻≤ t < 表示終了時刻を満たす全ての tの時刻は該当ビデオデータの表示開始 時刻に量子化 (round i ng) が行われている。
このため、 隣り合う二つのイベントの位置関係によっては、 同一の 時刻に丸められてしまうことがある。 例えば第 5 0図の例では、 186, 000に置かれたィベントの直前のィベントの mark— time— stampが 184, 00 0であった場合、 この二つのィベン卜はいずれも P1の表示開始時^に 発生すると定義される。
このような状況を避けるためには、 単一のビデオに対しては単一の イベントのみを設定できることを保証する必要がある。 このため、 隣 あったィベン卜の間隔を 3フィ一ルド以上 (pic_structで設定される 最大表示時間以上) とすることで、 上記条件を保証する。
第 5 3図は、 上記条件の一例を示している。 すなわち、 第 5 3図に おいては、 ケース Aは、 フレームレート (frame rate) が 5005/24000 0 (プログレッシブの 23.976Hz) であって、 その場合、 90kHzで表現し た最小イベント間隔は、 7507となり、 ケース Bは、 フレームレート ( frame rate) が 4004/240000 (インタレースの 59.94Hz) であって、 そ の場合、 90kHzで表現した最小イベント間隔は、 6006となることが示 されている。
AVCや MPEG2 Video等のビデオ符号化方式では、 2- 3プルダウン画像 を効率よく符号化するために、 〗フレーム信号を 3フィールドの時間だ け表示するという機能を持っている。 ςのため 1フレームの信号の最 大の durationは 3フィールドである。 すなわち、 隣り合ったイベント の間隔を 3フィ一ルド以上の時間だけ離すことによって、 この二つの 隣り合ったイベントが単一のビデオデータの表示開始時刻に発生する と判断されることを防ぐというものである。
また、 3フ'ィ一ルドを越える間隔で定義することも可能である。 例 えば!^り合ったイベントの間隔を 2フレーム以上と定義することも可 能である。
なお、 全てのイベントが対応するビデオデータを調査し、 それらが 重複していないということを確認することによって上記を保証する方 法も考えられる。
[出力属性の制御処理]
次に、 第 5 4図のフローチャートを参照して、 第 34図のステップ S 1 2 6などで行われる出力属性の制御処理の詳細について説明する 第 34図のステップ S 1 2 6で説明したように、 プレイヤ制御モジ ユール 2 1 2は、 まず、 再生対象の 1以上のエレメンタリストリーム 、 即ち、 第 3 4図のステップ S 1 2 5で再生すると決定した 1以上の エレメンタリストリームそれぞれについて、 出力属性が記述される Dy namidnfoO (第 1 5図) の数を表す number— oし Dynamiclnfo (第 1 2 図) を調査する。
そして、 再生対象の 1以上のエレメンタリストリームのすべてにつ いて、 number_oし Dynamiclnfoが 0になっている場合、 プレイヤ制御モ ジュール 2 1 2は、 特に処理を行わない。
一方、 再生対象のエレメン夕リストリームについての number_oし Dy namiclnfoが 0でない場合、 プレイヤ制御モジュール 2 1 2は、 第 5 4 図のフローチャートにしたがった出力屌性の制御処理を行う。
従って、 ディスク 1 0 1に記録された 3つのクリップ情報ファイル " 00001. CLP", " 00002. CLP", " 00003. CLP"が、 例えば、 第 3 0図 Aお よび第 3 0図 Bに示したようになつている場合に、 クリップ情報ファ ィル" 00001. CLP"に対応するクリップストリ一ムフアイル" 00001.PS" を再生する 1番目の PlayList#0の 1番目の Play It eni#0が再生されると きには、 クリップ情報ファイル" 00001. CLP" (第 3 0図 Aおよび第 3 0図 B) では、 クリップストリームファイル" 00001.PS"に多重化され ている 4つのエレメンタリストリ一ム streani#0乃至 stream#3のすベて について、 numbeし of_DynamicInfoが 0になっているから、 出力属性の 制御処理は行われない。
同様に、 クリップ情報ファイル" 00002. CLP"に対応するクリップス トリームファイル" 00002.PS"を再生する 1番目の PlayList#0の 2番目 の Playltem#lが再生されるときも、 クリップ情報ファイル" 00002. CLP " (第 3 0図 Aおよび第 3 0図 B) では、 クリップストリームフアイ ル" 00002.PS"に多重化されている 4つのエレメンタリストリーム stre am#0乃至 stream#3のすべてについて、 number_of— Dynamic Infoが 0にな つているから、 出力属性の制御処理は行われない。
一方、 クリップ情報ファイル" 00003. CLP"に対応するクリップスト リームファイル" 00003.PS"を再生する 2番目の PlayList#lの Playltem #0が再生されるときは、 クリップ情報ファイル" 00003. CLP" (第 3 0 図 Aおよび第 3 0図 B) において、 クリップストリームファイル" 000 03. PS"に多重化されている 3つのエレメンタリストリ一ム stream#0乃 至 stream#2のうちの、 1番目のエレメンタリストリ一ムであるビデオ ストリーム stream#0と、 3番目のエレメン夕リストリームであるォ一 ディストリ一ム stream#2について、 number— of—DynamicInf oが 0でない 2と 3に、 それぞれなつているから、 出力.属性の制御処理が行われる。 即ち、 出力属性の制御処理では、 まず最初に、 ステップ S 3 2 0に おいて、 プレイヤ制御モジュール 2 1 2は、 再生対象のクリップスト リームファイルに対応するクリップ情報ファイル ClipO (第 1 2図) に記述された pts— change_pointを、 「DynamicInfo 0処理」 の属性の 時刻である とともに、 デコード制御モジュール 2 1 4に渡し、 デコ ード制御モジュール 2 1 4は、 プレイヤ制御モジュール 2 1 2からの 「DynamicInfo()処理」 の属性の時刻である pts— change—pointを受信 して、 ステップ S 3 2 1に進む。
ステップ S 3 2 1では、 デコード制御モジュール 2 1 4が、 計時部 2 1 4 Aによって計時されている現在時刻が、 「DynamicInfo()処理 」 の属性の時刻である pts_change一 pointに一致したかどうかを判定し 、 一致していないと判定した場合、 ステップ S 3 2 1に戻る。
また、 ステップ S 3 2 1において、 現在時刻が、 「DynamicInfo() 処理」 の属性の時刻に一致したと判定された場合、 デコード制御モジ ユール 2 1 4は、 現在時刻が、 「DynamicInfo()処理」 の属性の時刻 となった旨のメッセージと、 現在時刻と一致した 「DynamicInfo()処 理」 の属性の時刻 (以下、 適宜、 Dynamiclnfo時刻という) とを、 プ レイヤ制御モジュール 2 1 2に供給して、 ステップ S 3 2 2に進む。 ステップ S 332では、 プレイヤ制御モジュール 2 1 2が、 現在時 刻が、 「DynamicInfo()処理」 の属性の時刻となった旨のメッセージ と、 Dynamiclnfo時刻とを、 デコード制御モジュール 2 1 4から受信 し、 その Dynamiclnfo時刻に一致する pts_change一 point (第 1 2図) とセットになっている DynamicInfoOを、 処理対象の DynamicInfoOで ある処理対象 DynamicInfoOとして認識して、 ステップ S 3 2 3に進 む。
ステップ S 32 3では、 プレイヤ制御.モジュール 2 1 2は、 処理対 象 DynamicInfoOとなっている DynamicInfoO (第 1 5図) に記述され た出力属性を、 グラフィクス処理モジュール 2 1 9またはオーディォ 出力モジュール 2 2 1に供給して、 ステップ S 3 24に進む。
ステップ S 324では、 グラフィクス処理モジユール 2 1 9または オーディォ出力モジュール 2 2 1が、 直前のステップ S 3 2 3でプレ ィヤ 御モジュール 2 1 2から供給された出力属性にしたがって、 ビ デォデ一夕またはオーディォデータの出力の制御を、 それぞれ開始し 、 ステップ S 32 1に戻る。
これにより、 ビデオデータが、 出力方式として記述された、 例えば アスペクト比に応じて出力され、 あるいは、 ォ一ディォデ一夕が、 出 力方式として記述された、 例えば、 ステレオまたはデュアル (ニ 国 語) に応じて出力される。
次に、 第 5 5図を参照して、 出力属性の制御処理の詳細について、 さらに説明する。
即ち、 第 5 5図は、 第 3 0図 Aおよび第 30図 Bのクリップ情報フ アイル" 00003. CLP"に記述されている pts一 change— pointと Dynamic Info 0とのセット (第 1 2図) を示している。
ここで、 上述したように、 クリップストリームファイル" 00003.PS" に多重化されている 3つのエレメン夕リストリーム5 6&111#0乃至3 6 am#2のうちの、 1番目のエレメンタリストリームであるビデオストリ —ム stream#0と、 3番目のエレメン夕リストリームであるオーディス トリーム stream#2については、 第 ·3 0図 Αおよび第 30図 Bのクリッ プ情報ファイル" 00003. CLP"において、 number— 0し Dynamiclnfoが、 そ れぞれ 2と 3になっている。 従って、 クリップ情報ファイル" 00003. CLP "において、 クリップストリームファイル" 00003.PS"の 1番目のビデ ォストリ一ム stream#0については、 2セットの pts— change— pointおよ び DynamicInfoOが記述されており、 3番目のオーディォストリーム s tream#2については、 3セッ卜の pts— change— pointおよび Dynamiclnfo 0が記述されている。
第 5 5図上側は、 クリップストリームファイル" 00003.PS"の 1番目 のビデオストリーム stream#0について記述されている 2セットの pts— change— pointおよび DynamicInfoOを示しており、 第 5 5図下側は、 クリップストリームファイル" 00003.PS"の 3番目のォ一ディォストリ —ム stream#2について記述されている 3セットの pts_change_pointお よび DynamicInfoOを示している。 なお、 第 5 5図上側では、 1番目のビデオストリーム streamifOにつ いて記述されている 2セットの pts_change— pointおよび DynamicInfo( )の他に、 そのビデオストリーム stream#0について、 第 3 0図 Aおよ び第 3 0図 Bのクリップ情報ファイル" 00003. CLP"に記述されている s tream_id(=0xE0) , private— stream— id(=0x00), number— of— Dynamic In fo(=2)も、 図示してある。 同様に、 第 5 5図下側でも、 3番目のォー ディォストリーム stream#2について記述されている 3セッ卜の pts— ch ange— pointおよび DynamicInfoOの他に、 そのオーディォストリーム s tream#2について、 第 3 0図 Aおよび第 3 0図 Bのクリツプ情報ファ ィル" 00003. CLP"に記述されている stream—id(=OxBD), pr ivate_s t rea m_id(=0x00)f number_oし Dynamiclnfo (=3)も、 図示してある。
第 5 5図上側において、 ビデオストリーム stream#0について記述さ れている 2セットの pts_change_pointおよび DynamicInfoOのうちの 1セット目では、 {5_(;11&1½6_0011^が90,000になってぉり、 Dynamicl nfoOの display— aspect— ratio (第 1 5図) が' 4: 3'になっている。 さ らに、 その 2セット目では、 pts_change_pointが 54, 090, 000になって おり、 Dynami c Info 0の display— aspecし ratioが' 16:9'になっている 一方、 第 5 5図下側において、 オーディオストリーム stream#2につ いて記述されている 3セッ卜の pts一 change一 pointおよび DynamicInfo( )のうちの 1セッ ト目では、 pts_change_pointが 90, 000になっており 、 DynamicInfoOの channel— assignment (第 1 5図) が' Dual'になつ ている。 さらに、 その 2セット目では、 pts— change_pointが 27, 090, 0 00になっており、 DynamicInfoOの channel— ass ignment力 Stereo'に なっている。 また、 その 3セット目では、 pts_change_pointが 32, 490 , 00(Hこなって: ¾り、 Dynamiclnfo 0の channel ass ignment力 ' Dua ίこ なっている。
例えば、 いま、 第 34図のステップ S 1 2 5において、 クリツ 。ス トリームフアイル" 00003.PS"の、 OxEOとなっている stream_idで特定 される 1番目のビデオストリーム stream#0と、 OxBDとなっている stre am_jdおよび 0x00となっている private_stream_idで特定される 3番目 のオーディォストリーム s eam#2とが、 再生対象のストリームとして 決定されたとする。
この場合、 プレイヤ制御モジュール 2 1 2は、 OxEOとなっている st ream_idで特定されるビデオストリ一ム stream#0について記述されて いる第 5 5図上側の 2セッ卜の pts一 change_pointおよび DynamicInfo( )と、 OxBDとなっている s eam_idおよび 0x00となっている private— st ream_idで特定されるオーディォス卜リーム stream#2について記述さ れている第 5 5図下側の 3セッ卜の pts— change_poiniおよび Dynamicl nfoOとの中の Pts— change— pointを調査し、 初期値を認識する。
即ち、 OxEOとなっている streanし idで特定されるビデオストリーム s tream#0について記述されている第 5 5図上側の 2セッ卜の pts_chang e— pointおよび Dynamic Info 0のうちの 1セット目では、 pts— change— p ointが 90, 000になっている。 そして、 この 90, 000という時刻は、 ビデ ォストリーム stream#0が多重化されているクリップストリームフアイ ル" 00003.PS"に対応する第 3 0図 Aおよび第 3 0図 Bのクリップ情報 ファイル" 00003. CLP"において、 クリップストリ—ムファイル" 00003. PS"の先頭の時刻を表す presentaUon_starし timeに記述されている時 刻 90, 000に一致する。
同様に、 OxBDとなってい stream_idおよび 0x00となっている priva te_stream_idで特定されるオーディォストリ一ム s tream#2について記 述されている第 5 5図下側の 3セッ卜の pts change pointおよび Dyna micInfoOのうちの 1セット目では、 pts— cliange_pointが 90, 000にな つている。 そして、 この 90,000という時刻は、 オーディオストリ丄ム stream#2が多重化されているクリップストリームファイル" 00003..PS" に対応する第 3 0図 Aおよび第 3 0図 Bのクリップ情報ファイル" 000 03.CLP"において、 クリップストリームファイル" 00003.PS"の先頭の 時刻を表す presentations tarし timeに記述されている時刻 90, 000に 一致する。
プレイヤ制御モジュール 2 1 2は、 クリップストリ一ムファイル" 0 0003. PS"の先頭の時刻を表す present at ion_s tart— timeに記述されて いる時刻 90, 000に一致する pts__change_pointを、 初期値として認識す る。 従って、 第 5 5図上側の 2セッ トの pts_change_pointおよび Dyna micInfoOのうちの 1セッ 卜目の pis— change_pointと、 第 5 5図下側 の 3セットの pts— change_pointおよび Dynamiclnfo 0のうちの 1セッ ト目の pts一 change_pointが、 初期値として認識される。
そして、 プレイヤ制御モジュール 2 1 2は、 クリップストリームフ アイル" 00003.PS"の再生が開始される前に、 第 3 4図のステップ S 1 2 6で初期値として認識した pts_chang— pointとセッ卜になっている DynamicInfoOにしたがって、 対応するエレメンタリストリームの出 力属性を指示する。
即ち、 OxEOとなっている streamjdで特定されるビデオストリーム s tream#0については、 第 5 5図上側で、 初期値である 90, 000になって いる pts一 change_pointとセッ トになっている DynamicInfoOにおいて 、 display_aspecし ratioが' 4:3'になっている。 この場合、 プレイヤ 制御モジュール 2 1 2は、 display_aspecし ratioが' 4:3'になってい る旨、 即ち、 ビデオストリーム streamsが、 4 : 3のアスペクト比の ビデオデータである旨の出力属性の情報を、 グラフィクス処理モジュ W ール 2 1 9を制御する。
また、 OxBDとなっている stream_idおよび 0x00となっている priv te _stream_idで特定されるオーディォストリ一ム stream#2については、 第 5 5図下側で、 初期値である 90, 000になっている pts_change— point とセットになっている DynamicInfoOにおいて、 channeし ass ignment が' Dual'になっている。 この場合、 プレイヤ制御モジュール 2 1 2は 、 channeし assignmentが' Dua になっている旨、 即ち、 オーディオス トリ一ム stream が、 デュアルのオーディォデ一夕である旨の出力属 性の情報を、 オーディオ出力モジュール 2 2 1に供給する。
ここで、 第 34図のステップ S 1 2 6では、 以上のような初期値と しての pts_change_pointを対象とした出力属性の制御処理が行われる その後、 プレイヤ制御モジュール 2 1 2は、 ビデオストリーム stre am#0についての第 5 5図上側の 2つの pts— change_pointである 90, 000 および 54, 090, 000と、 オーディオストリーム stream についての第 5 5図下側の 3つの pts_change_pointである 90, 000, 27,090,000、 およ び 32, 490, 000のうちの、 初期値 90, 000以.外の時刻である {27, 090, 000} , {32, 490, 000}, {54, 090, 000}を、 「DynamicInfo 0処理」 の属性の 時刻である旨とともに、 デコード制御モジュール 2 14に渡す (ステ ップ S 3 2 0 ) 。
デコード制御モジュール 2 14は、 プレイヤ制御モジュール 2 1 2 からの、 iDynamicInfoO処理」 の属性の時刻 {27, 090, 000} , {32,490 , 000}, {54, 090, 000}を受信し、 さらに、 ビデオストリーム s eam#0 およびオーディオストリーム stream#2の再生の開始後、 計時部 2 1 Aによって計時されている現在時刻の監視を開始する。
そして、 デコード制御モジュール 2 1 4は、 現在時刻が、 「Dynami clnfoO処理」 の属性の時刻 {27,090, 000}, {32, 490, 000}, {54,090,0 00}のうちのいずれかに一致した場合、 その現在時刻と一致した 「'byn amicInfoO処理」 の属性の時刻である Dynamiclnfo時刻を、 プレイヤ 制御モジュール 2 1 2に供給する (ステップ S 3 2 1) 。
即ち、 例えば、 現在時刻が、 27, 090, 000になったとすると、 デコー ド制御モジュール 2 1 4は、 「DynamicInfo()処理」 の属性の時刻の うちの、 現在時刻と一致する 27,090,000を、 Dynamiclnfo時刻として 、 プレイヤ制御モジュール 2 1 2に供給する。
プレイヤ制御モジュール 2 1 2は、 デコード制御モジュール 2 1 4 からの Dynamiclnfo時刻である 27, 090, 000を受信し、 ビデオストリー ム stream#0についての第 5 5図上側の 2つの pts_change_pointと、 ォ —ディォストリーム stream#2についての第 5 5図下側の 3つの pts_ch ange_pointとの中から、 Dynamiclnfo時刻である 27, 090, 000に一致す る pts_change_pointを調査し、 その 27, 090, 000に一致する pts— change — pointとセッ トになっている DynamicInfo()、 即ち、 オーディオスト リーム stream#2についての第 5 5図下側の 2番目の Dynamic Info 0を 、 処理対象 DynamicInfoOとして認識す!) (ステップ S 3 2 2) 。
処理対象 DynamicInfoOが、 ビデオストリームについての Dynamicln fo()である場合、 プレイヤ制御モジュール 2 1 2は、 処理対象 Dynami clnfoOに記述されている出力属性を、,グラフィクス処理モジュール 2 1 9に供給する (ステップ S 3 2 3 ) 。 また、 処理対象 Dynamiclnf o()が、 オーディォストリームについての DynamicInfoOである場合、 プレイヤ制御モジュール 2 1 2は、 処理対象 DynamicInfoOに記述さ れている出力属性を、 オーディオ出力モジュール 2 2 1に供給する ( ステップ S 3 2 3 ) 。
グラフィクス処理モジュール 2 1 9は、 プレイヤ制御モジュール 2 1 2から出力属性が供給されると、 その出力属性にしたがって、 ビデ ォデータの出力の制御を開始する (ステップ S 3 24) 。 f 即ち、 グラフィクス処理モジュール 2 1 9は、 例えば、 プレイヤ制 御モジュール 2 1 2からの出力属性が表す、 ビデオデータのァスぺク ト比の指示(display_aspecし ratio (第 1 5図) )と、 第 1図のビデオ 出力端子 1 2 0に接続されたビデオ出力装置のァスぺク ト比とに基づ いて、 ビデオ出力モジュール 2 2 0に出力するビデオデータのァスぺ クト比の変換を行う。
具体的には、 例えば、 ビデオ出力装置のアスペクト比が 16:9である 場合において、 出力属性としてのビデオデータのアスペクト比の指示 が 4:3のアスペクト比を表しているときには、 グラフィクス処理モジ ユール 2 1 9は、 ビデオ出力モジュール 2 2 0に出力するビデオデー 夕を、 横方向にスクイーズ処理し、 左右に黒を表示させるデータを入 れて出力する。 また、 例えば、 ビデオ出力装置のアスペクト比が 4:3 である場合において、 出力属性としてのビデオデータのアスペクト比 の指示が 16 :9のァスぺクト比を表しているときには、 グラフィクス処 理モジュール 2 1 9は、 ビデオ出力モジュール 2 2 0に出力するビデ ォデータを、 縦方向にスクイーズ処理し、 上下に黒を表示させるデ一 夕を入れて出力する。 さらに、 例えば、 ビデオ出力装置のアスペクト 比と、 出力属性としてのビデオデータのアスペクト比の指示が表すァ スぺク ト比とが、 いずれも、 4:3や 16:9で、 同一である場合、 グラフ ィクス処理 ΐジュール 2 1 9は、 ビデオ出力モジュール 2 2 0に出力 するヒ'デォデータを、 スクイーズ処理することなく、 そのまま出力す る。
ここで、 第 5 5図上側において、 ΟχΕΟとなっている stream_idで特 定されるビデオストリーム stream#0について記述されている 2セット の pts_change_po intおよび Dynamic Info 0によれば、 ビデオストリー ム s tream#0の再生開始時である時刻 90, 000から、 時刻 54, 090, 0000直 前までは、 ビデオストリーム stream#0から、 4 : 3のアスペクト比の ビデオデータが得られる。 そして、 時刻 54, 090, 000以後は、 ビデオス トリ一ム stream#0から、 1 6 : 9のアスペクト比のビデオデ一夕が得 られる。
従って、 例えば、 第 1図のビデオ出力端子 1 2 0に接続されたビデ ォ出力装置のァスぺクト比が 4 :3であるとすると、 グラフィクス処理 モジュール 2 1 9では、 時刻 90, 000から時刻 54, 090, 000の直前までは 、 ビデオストリーム stream#0から得られる 4 : 3のアスペクト比のビ デォデータが、 そのまま 4 : 3のアスペクト比のビデオ出力装置に供 給されて表示される。
そして、 時刻 54, 090, 000以後は、 ビデオストリーム stream#0から得 られる 1 6 : 9のアスペクト比のビデオデータが、 縦方向にスクイ一 ズ処理され、 さらに、 上下に黒を表示させるデータが入った 4 : 3の アスペクト比のビデオ信号に変換され、 4 : 3のアスペクト比のビデ ォ出力装置に供給されて表示される。 .
一方、 オーディオ出力モジュール 2 2 1は、 プレイヤ制御モジユー ル 2 1 2から出力属性が供給されると、 その出力属性にしたがって、 オーディオデータの出力の制御を開始する (ステップ S 3 24) 。
即ち、 オーディオ出力モジュール 2 2 1は、 例えば、 プレイヤ制御 モジュール 2 1 2からの出力属性が表す、 オーディオデータのチヤネ ル割り当ての指示(channeし assignment (第 1 5図) )と、 ュ一ザがリ モコンを操作することによって入カインタ一フェース 1 1 5 (第 1図 ) を介してプレイヤ制御モジュール 2 1 2から供給される音声出力モ —ドとに基づいて、 オーディオデコーダ制御モジュール 2 1 7からの オーディオデータを処理し、 オーディオ出力端子 1 2 1 (第 1図) に 出力する。 ¾ 具体的には、 例えば、 出力属性が表すオーディオデータのチャネル 割り当ての指示が、 左チャネルが 「主音声」 のオーディオデータで、 右チャネルの 「副音声」 のオーディオデータであるデュアル(Dual) ( ニケ国語) モードを表している場合、 オーディオ出力モジュール 2 2 1は、 プレイヤ制御モジュール 2 1 2から供給される音声出力モード にしたがって、 オーディオデコーダ制御モジュール 2 1 7からのォー ディォデ一夕を処理して、 オーディオ出力端子 1 2 1に出力する。 即ち、 音声出力モードとして、 例えば、 「主音声」 が指定されてい るときには、 オーディオ出力モジュール 2 2 1は、 オーディオデコー ダ制御モジュール 2 1 7からのオーディオデータのうちの左チャネル のオーディォデータを、 右チャネルのオーディォデータとしてコピー し、 その左チャネルと右チャネルのオーディオデータ ( 「主音声」 の オーディオデータ) を、 オーディオ出力端子 1 2 1に出力する。 また 、 音声出力モードとして、 「副音声」 が指定されているときには、 ォ 一ディォ出力モジュール 2 2 1は、 オーディオデコーダ制御モジユー ル 2 1 7からのオーディオデータのうちの右チャネルのオーディオデ 一夕を、 左チャネルのオーディオデータとしてコピーし、 その左チヤ ネルと右チャネルのオーディオデータ ( 「副音声」 のオーディオデ一 夕〉 を、 オーディオ出力端子 1 2 1に出力する。 さらに、 音声出力モ ードとして、' 「主 ·副」 が指定されているときには、 オーディオ出力 モジュール 2 2 1は、 オーディオデコーダ制御モジュール 2 1 7から のオーディオデータを、 そのまま、 オーディオ出力端子 1 2 1に出力 する。
また、 例えば、 出力属性が表すオーディオデ一夕のチャネル割り当 ての指示が、 ステレオ(Stereo)モードを表している場合、 オーディオ 出力モジュール 2 2 1は、 プレイヤ制御モジュール 2 1 2から供 さ れる音声出力モードにかかわらず、 オーディォデコーダ制御モジユー ル 2 1 7からのオーディオデータを、 そのまま、 オーディオ出力端子 1 2 1に出力する。
ここで、 第 5 5図下側において、 OxBDとなっている stream_idおよ び 0x00となっている private_stream_idで特定されるオーディォスト リーム stream#2について記述されている 3セットの pts_change_point および Dynamic Info 0によれば、 オーディオストリーム stream#2の再 生開始時である時刻 90, 000から、 時刻 27, 090, 000の直前までは、 ォー ディォストリーム stream#2から、 デュアルのォ一ディォデ一夕が得ら れる。 また、 時刻 27,090, 000から、 時刻 32,490,000の直前までは、 ォ —ディォストリ一ム stream#2から、 ステレオのオーディォデータが得 られ、 時刻 32, 490, 000以後は、 オーディオストリーム stream#2から、 デュアルのオーディオデ一夕が得られる。
従って、 例えば、 音声出力モードとして、 「主音声」 が指定されて いるとすると、 オーディオ出力モジュール 2 2 1では、 時刻 90,000か ら、 時刻 27, 090, 000の直前までは、 オーディオストリーム stream#2か ら得られるデュアルのォ一ディォデ一夕のうちの左チャネルのォ一デ ィォデ一夕が、 おチャネルのオーディオデータとしてコピーされ、 そ の左チャネルと右チャネルのオーディォデータが、 オーディォ出力端 子 1 2 1に tB力される。
また、 時刻 27, 090, 000から、 時刻 32,490,000の直前までは、 オーデ ィォストリーム stream#2から得られるステレオのオーディォデ一夕が 、 そのまま、 オーディオ出力端子 1 2 1に出力される。
そして、 時刻 32, 490, 000以後は、 オーディオストリーム streamsか ら得られるデュアルのオーディォデ一夕のうちの左チャネルのオーデ ィォデータが、 右チャネルのオーディォデータとしてコピーされ、(そ の左チャネルと右チャネルのオーディォデータが、 オーディォ出力端 子 1 2 1に出力される。
以上のように、 出力属性の制御処理では、 クリップストリームファ ィルに多重化されているエレメン夕リストリームごとに、 そのエレメ ンタリストリームの再生時刻を表す pts_change_pointと、 そのエレメ ン夕リストリームの出力属性を含む Dynamic Info 0とのセッ トを 0セ ット以上含むクリップ情報ファイル ClipO (第 1 2図) の記述に基づ き、 再生中のエレメン夕リストリームの再生時刻が、 pts_change— poi ntに一致するか否かが判定される。 そして、 再生中のエレメンタリス トリ一ムの再生時刻が、 pts_change_pointに一致する場合、 その pts— change— pointとセッ 卜になっている Dynamic Info 0が認識され、 その 認識された Dynamic Info 0に含まれる出力属性にしたがって、 再生中 のエレメン夕リストリームの出力が制御される。 従って、 エレメンタ リストリームの再生時刻と出力属性に応じて、 そのエレメンタリスト リームの出力を制御することが可能となる。
[字幕表示制御処理]
次に、 第 5 6図のフローチャートを参照して、 字幕ストリームに対 応する字幕データの表示を制御する字幕表示制御処理について説明す る。
PlayListOの再生が開始されると、 プレイヤ制御モジュール 2 1 2 は、 ステップ S 34 1において、 グラフィクス処理モジュール 2 1 9 に対する字幕データの表示方式の指示を初期化する。 即ち、 プレイヤ 制御モジュ一ル 2 1 2は、 字幕データの表示方式をデフォルトの表示 方式とするように、 グラフィクス処理モジュール 2 1 9を制御する。 なお、 ステップ S 3 4 1で行われる表示方式の指示の初期化は、 第 3 4図の 1 2 7で説明した表示方式の指示の初期化に対応する。 、 ステップ S 3 4 1の処理後は、 ステップ S 3 4 2に進み、 プレイヤ 制御モジュール 2 1 2は、 ユーザがリモコンを操作することにより入 力インターフェース 1 1 5から、 字幕データの表示について、 新たな 表示方式の指示があつたかどうかを判定する。
ステップ S 3 4 2において、 新たな表示方式の指示があつたと判定 された場合、 ステップ S 3 4 3に進み、 プレイヤ制御モジュール 2 1 2は、 字幕ストリームを、 現在再生しているかどうかを判定する。 ステップ S 3 4 3において、 字幕ストリームが再生されていないと 判定された場合、 ステップ S 3 4 2に戻る。
また、 ステップ S 3 4 3において、 字幕ストリームが再生されてい ると判定された場合、 ステップ S 3 4 5に進み、 プレイヤ制御モジュ ール 2 1 2は、 新たな表示方式の指示が、 デフォルトの表示方式の指 示であるかどうかを判定する。 ステップ S 3 4 3において、 新たな表 示方式の指示が、 デフォルトの表示方式の指示であると判定された場 合、 ステップ S 3 4 1に戻り、 上述し ように、 プレイヤ制御モジュ ール 2 1 2は、 字幕データの表示方式をデフォルトの表示方式とする ように、 グラフィクス処理モジュール 2 1 9を制御する。
一方、 ステップ S 3 4 5において、 新たな表示方式の指示が、 デフ オルトの表示方式の指示でないと判定された場合、 即ち、 新たな表示 方式の指示 、 例えば、 字幕デ一夕を拡大や縮小して表示する、 ある いは るさを変えて見やすくする等、 デフォルトでない表示方式の指 示である場合、 ステップ S 3 4 6に進み、 プレイヤ制御モジュール 2 1 2は、 現在再生している字幕ストリームが多重化されたクリップス トリームフアイルに対応するクリップ情報ファィル C I i p () (第 1 2図 ) の StaticInfoO (第 1 4図) のうちの、 現在再生している字幕スト リームについての Static Info 0を取得し、 ステップ S 347に進む。 ステップ S 347では、 プレイヤ制御モジュール 2 1 2は、 ステツ プ S 346で取得した 3{&"(;11^0()の0011 811 1)16_ &8を判定する ステップ S 347において、 conf igurable_f lagが、 字幕データの 表示方式の変更を許可しない旨の 0になっていると判定された場合、 ステップ S 348に進み、 プレイヤ制御モジュール 2 1 2は、 グラフ イクス処理モジュール 2 1 9を制御することにより、 出力ビデオデー 夕に、 字幕データの表示方式を変更することができない旨のエラ一メ ッセージをオーバーレイさせ、 ステップ S 342に戻る。 これにより 、 エラーメッセージが表示される。
一方、 ステップ S 347において、 conf igurable— f lagが、 字幕デ —夕の表示方式の変更を許可する旨の 1になっていると判定された場 合、 ステップ S 349に進み、 プレイヤ制御モジュール 2 1 2は、 ュ 一ザがリモコンを操作することにより入力インターフェース 1 1 5か ら供給された新たな表示方式の指示を、.グラフィクス処理モジュール 2 1 9に供給して、 ステップ S 3 5 0に進む。
ステップ S 3 5 0では、 グラフィクス処理モジュール 2 1 9は、 字 幕デコーダ制御モジュール 2 1 8から供給される字幕データを、 直前 のステップ S 349でプレイヤ制御モジュール 2 1 2から供給された 表示方式の ½示にしたがって拡大または縮小等あるいは明るさを変え る等の処理を開始し、 ステップ S 342に戻る。 これにより、 字幕デ 一夕は、 ユーザがリモコンを操作することによつて指示した表示方式 にしたがった表示サイズや、 表示位置、 表示色等で表示される。 一方、 ステップ S 342において、 新たな表示方式の指示がなかつ たと判定された場合、 ステップ S 3 5 1に進み、 プレイヤ制御モジュ —ル 2 1 2は、 第 4 0図で説明した Play Item ()の乗り換えが行わ た かどうかを判定し、 行われていないと判定した場合、 ステップ S 34 2に戻る。
また、 ステップ S 3 5 1において、 PlayltemOの乗り換えが行われ たと判定された場合、 ステップ S 34 1に戻り、 上述したように、 プ レイヤ制御モジュール 2 1 2は、 字幕デ一夕の表示方式をデフォルト の表示方式とするように、 グラフィクス処理モジュール 2 1 9を制御 する。 即ち、 この場合、 PlayltemOの乗り換えが行われたときには、 字幕データの表示方式は、 デフォルトの表示方式に戻される。
以上のように、 字幕表示制御処理においては、 字幕ストリームの CO nfigurable— flagが、 表示方式の変更を許可する旨の 1になっている場 合にのみ、 その字幕ストリームに対応する字幕データの表示方式が、 例えば、 ユーザがリモコンを操作することにより入力される表示方式 の指示に応じて変更される。
従って、 例えば、 第 3 0図 Aおよび第 3 0図 Bに示したクリップ情 報ファイル" 00001. CLP"によれば、 対応.するクリップストリームファ ィル" 00001.PS"に多重化されている 4本のエレメン夕リストリームの うちの 3本目のエレメンタリストリームである字幕ストリーム stream #2についての configurable—flagは、 表示方式の変更を許可しない旨 の 0になっているので、 その字幕ストリ一ム stream#2が表示されてい るときに、 ユーザが字幕の表示を変更するようにリモコンを操作して も、 の表示は変更されない。
一方、 例えば、 クリップストリームファイル" 00001.PS"に多重化さ れている 4本のエレメン夕リストリームのうちの 4本目のエレメン夕 リストリームである字幕ストリ一ム st ream#3についての configurable —flagは、 表示方式の変更を許可する旨の 1になっているので、 その字 幕ストリ一ム stream^が表示されているときに、 ュ一ザが字幕の 示 を変更するようにリモコンを操作すると、 その操作に応じて、 字幕の 表示サイズ等が変更される。
即ち、 例えば、 いま、 第 2 9図の 1番目の PlayList#0の 1番目の P1 ayltem#0にしたがい、 クリップストリ一ムファイル" 00001. PS"が再生 されているとする。 また、 第 3 0図 Aおよび第 3 0図 Bでクリップ情 報ファイル' '00001. CLP"について説明したように、 クリップストリー ムファイル" 00001.PS"に多重化されている 4本のエレメンタリストリ ームのうちの、 3本目と 4本目が字幕ストリームであるが、 その 3本 目の字幕ストリーム stream#2と、 4本目の字幕ストリーム s t ream#3の うちの、 例えば、 3本目の字幕ストリーム stream#2が、 現在再生され ているとする。
ユーザが、 リモコンを操作することにより、 字幕の表示方式の指示 を入力すると (ステップ S 3 4 2) 、 その表示方式の指示は、 入カイ ンターフェース 1 1 5 (第 1図) からプレイヤ制御モジュール 2 1 2 に供給される。 プレイヤ制御モジュール.2 1 2は、 表示方式の指示が 供給されると、 再生中の字幕ストリームに対応する StaticInfoO (第 1 2図) を、 クリツプ情報ファイルから探し出す (ステップ S 3 4 6 ) 。
即ち、 いまの場合、 再生中の字幕ストリームは、 クリップストリー ムファイル" 00001.PS"に多重化されている 3本目の字幕ストリーム st ream#2であり、 プレイヤ制御モジュール 2 1 2は、 対応するクリップ 情報ファイル" 00001. CLP"から、 3本目の字幕ストリーム stream#2に ついての StaticInfoOを探し出す。
さらに、 プレイヤ制御モジュール 2 1 2は、 第 3 0図 Aおよび第 3 0図 Bにおいて 3本目の字幕ストリ一ム stream#2についての Stat icln fo()に記述されている、 0になっている configurable— flagを判定 ( ステップ S 3 4 7 ) 、 これにより、 3本目の字幕ストリーム stream#2 については、 表示方式の変更が許可されていないことを認識する。 この場合、 プレイヤ制御モジュール 2 1 2は、 再生中の字幕ストリ —ムが拡大縮小等に対応していないと判断し、 グラフィクス処理モジ ユール 2 1 9を制御することにより、 その旨のエラーメッセージを生 成させ (ステップ S 34 8) 、 ビデオデータにオーバ一レイして出力 させる。
一方、 クリップストリームファイル" 00001.PS"に多重化されている 4本のエレメン夕リストリームの 3本目の字幕ストリ一ム stream#2と 、 4本目の字幕ストリーム stream#3のうちの、 3本目の字幕ストリ一 ム stream ではなく、 4本目の字幕ストリーム stream#3が、 現在再生 されている場合には、 ユーザがリモコンを操作することによって表示 方式の指示の供給を受けたプレイヤ制御モジュール 2 1 2は、 対応す るクリップ情報ファイル" 00001. CLP"から、 4本目の字幕ストリーム s t ream#3についての Static Info ()を探し出す。
さらに、 プレイヤ制御モジュール 2 1 2は、 第 3 0図 Aおよび第 3 0図 Bにおいて 4本目の字幕ストリーム stream#3についての Stat icln fo()に記述されている、 1になっている configurable—flagを判定し ( ステップ S 3 4 7 ) 、 これにより、 4本目の字幕ストリーム stream#3 については、 表示方式の変更が許可されていることを認識する。
この場合、 プレイヤ制御モジュール 2 1 2は、 再生中の字幕ストリ —ムが拡大縮小等に対応していると判断し、 ユーザがリモコンを操作 することによって供給された表示方式の指示を、 グラフィクス処理モ ジュール 2 1 9に供給する (ステップ S 34 9) 。 これにより、 その後、 グラフィクス処理モジュール 2 19は、 プレ ィャ制御モジュール 212からの表示方式の指示にしたがい、 字 ¾デ コーダ制御モジュール 2 18からの字幕データを拡大または縮小等し 、 ビデオデコーダ制御モジュール 2 1 6からのビデオデータにオーバ —レイして出力する。
なお、 プレイヤ制御モジュール 2 12は、 PlayListOの最初の Play ItemOの再生開始時に、 グラフィクス処理モジュール 2 1 9に対する 字幕データの表示方式の指示を初期化する (ステップ S 341) 。 即 ち、 プレイヤ制御モジュール 212は、 字幕データの表示方式をデフ オルトの表示方式とするように、 グラフィクス処理モジュール 2 1 9 を制御する。
さらに、 プレイヤ制御モジュール 2 1 2は、 PlayltemOの乗り換え 時にも、 グラフィクス処理モジュール 219に対する字幕データの表 示方式の指示を初期化する (ステップ S 341, S 35 1) 。
但し、 PlayltemOの乗り換え時においては、 その後に新たに再生さ れる PlayltemOにしたがって再生される新たな字幕ストリームについ ての con figur able— flagを調査し、 conf.igurable— f lagが 0である場合 には、 グラフィクス処理モジュール 2 19に対する字幕デ一夕の表示 方式の指示を初期化し、 coniigurable_f lagが 1である場合には、 ダラ フィクス処理モジュール 2 19に対する表示方式の指示を、 Playltem 0の乗り換え前のまま維持するようにすることが可能である。
また、 第 56図の字幕表示制御処理では、 ユーザがリモコンを操作 することにより、 新たな表示方式の指示が入力された場合に、 その新 たな表示方式の指示を、 グラフィクス処理モジュール 2 19に供給す るようにしたが (ステップ S 349) 、 表示方式の指示は、 例えば、 メモリ 1 13 (第 1図) を構成する不揮発性メモリに記憶し、 その不 揮発性メモリに記憶された表示方式の指示を、 グラフィクス処理モジ ュ一ル 2 1 9に供給するようにすることが可能である。
即ち、 例えば、 第 1図のディスク再生装置の初期設定として、 不揮 発性メモリに、 ユーザ設定の表示方式の指示を記憶させておき、 ユー ザがリモコンを操作することにより、 新たな表示方式の指示が入力さ れた場合には、 不揮発性メモリに記憶された表示方式の指示を、 新た な表示方式の指示に更新する一方、 その不揮発性メモリに記憶された 表示方式の指示を、 グラフィクス処理モジュール 2 1 9に供給するよ うにすることが可能である。 この場合、 不揮発性メモリには、 前回の 再生終了時における表示方式の指示が保持されるので、 次回の PlayLi st 0の再生時に、 ユーザがリモコンを操作することにより、 前回の再 生終了時における表示方式の指示を入力しなくても、 その表示方式で 、 字幕データの表示が開始される。
なお、 この場合、 不揮発性メモリに記憶させる表示方式の指示には 、 例えば、 字幕データを拡大または縮小するときの拡大率または縮小 率等が含まれるものとする。
以上のように、 字幕表示制御処理によ.れば、 クリップ情報ファイル ClipO (第 1 2図) に含まれる、 エレメン夕リストリームごとの、 そ のエレメン夕リストリームの再生中に変化しない StaticInfoOのうち の、 字幕データの StaticInfoOが取得され、 その StaticInfoOに含ま れる、 字幕データの表示をデフォルトの表示方式から変更することを 許可するか否かを表す configurable一 flagに基づき、 再生中の字幕デ 一夕の表示をデフォルトの表示方式から変更することが許可されてい るか否かが判定される。 そして、 再生中の字幕データの表示をデフォ ルトの表示方式から変更することが許可されている場合には、 字幕デ 一夕の表示方式の変更の指示にしたがって、 その字幕デ一夕の表示処 理、 即ち、 例えば、 字幕デ一夕を拡大または縮小、 あるいは表示色を 変更する等して表示する処理が行われる。 従って、 字幕データの 示 方式の変更を制御することができる。 ' [キヤプチヤ制御処理]
次に、 第 5 7図のフローチャートを参照して、 ビデオストリームに 対応するビデオデータのキヤプチャを制御するキヤプチャ制御処理に ついて説明する。 なお、 第 5 7図には、 キヤプチャ制御処理を説明す るフローチャートとともに、 そのキヤプチャ制御処理によってキヤプ チヤされたビデオデータを 2次利用する処理の例であるバックグラウ ンド スクリーンセ一バ処理を説明するフローチャートも、 図示して ある。
キヤプチャ制御処理は、 例えば、 ユーザがリモコンを操作すること により、 ビデオデータのキヤプチャを指示するキヤプチャ指示が、 入 力インターフェース 1 1 5 (第 1図) を介して、 プレイヤ制御モジュ ール 2 1 2に供給されると開始される。
即ち、 キヤブチヤ制御処理では、 まず最初に、 ステップ S 3 7 1に おいて、 プレイヤ制御モジュール 2 1 2.が、 ビデオストリームを再生 中であるかどうかを判定し、 再生中でないと判定した場合、 キヤプチ ャ制御処理は終了する。
一方、 ステップ S 37 1において、 ビデオストリームを再生中であ ると判定された場合、 ステップ S 3 7 2に進み、 プレイヤ制御モジュ —ル 2 1 2は、 再生中のビデオストリームに対応する PlayListO (第 7図) から、 capture一 enablejlag— PlayListを取得するとともに、 再 生中のビデオストリームに対応するクリップ情報ファイル ClipO (第 1 2図) から、 capture__enable_flag__Cl ipを取得する。
ここで、 PlayList 0における capture enable flag PlayListは、 第 7図で説明したように、 その PlayList()によって再生されるビデオス トリームに対応するビデオデータの 2次利用を許可するか否かを す 。 また、 クリップ情報ファイル ClipOにおける capture_enable_flag_ Clipは、 第 1 2図で説明したように、 そのクリップ情報ファイル Clip 0に対応するクリップストリームファイルに格納されているビデオス トリームに対応するビデオデータの 2次利用を許可するか否かを表す ステップ S 3 72の処理後は、 ステップ S 3 7 3に進み、 プレイヤ 制御モジュール 2 1 2は、 直前のステップ S 37 3で取得された capt ure— enable— flag_PlayLi stと capt. u re— enable— f lag— CI ipとに つき、 キヤプチャ指示が入カインターフェース 1 1 5 (第 1図) から入力さ れたときに再生されていたビデオデータのピクチャのキヤプチヤの可 否を判定する。
ステップ S 3 7 3において、 キヤプチャ指示が入カインターフェ一 ス 1 1 5から入力されたときに再生されていたビデオデータのピクチ ャのキヤプチヤが不可であると判定された場合、 即ち、 直前のステツ プ S 3 7 3で取得された capture_enabl f lagJ ayListまたは captur e_enable_flag_Clipのうちの少なくとも一方が、 ビデオデータの 2次 利用を許可しない旨の 0になっている場合、 ステツプ S 3 74に進み 、 プレイヤ制御モジュール 2 1 2は、 グラフィクス処理モジュール 2 1 9を制御することにより、 ビデオデータのキヤプチヤが不可である 旨のエラ一メッセージをオーバーレイさせ、 キヤプチャ制御処理を終 了する。 これにより、 エラーメッセージが表示される。
一方、 ステップ S 3 7 3において、 キヤプチャ指示が入力インター フェース 1 1 5から入力されたときに再生されていたビデオデータの ピクチャのキヤプチヤが可能であると判定された場合、 即ち、 直前の ステップ S 3 7 3で取得された capture— enable_f gJ ayListおよび capture— enable_flag_Clipの両方が、 ビデオデータの 2次利用を #可 する旨の 1になっている場合、 ステップ S 3 7 5に進み、 プレイヤ制 御モジュール 2 1 2は、 キヤプチャ指示が入カインタ一フェース 1 1 5から入力されたときに再生されていたビデオデータのピクチャのキ ャプチヤの指示を、 グラフィクス処理モジュール 2 1 9に供給し、 ス テツ.プ S 37 6に進む。
ステップ S 3 7 6では、 グラフィクス処理モジュール 2 1 9は、 プ レイヤ制御モジュール 2 1 2からのキヤプチヤの指示にしたがい、 ビ デォデコーダ制御モジュール 2 1 6からのビデオデータのピクチャを キヤプチヤし、 メモリ 1 1 3 (第 1図) に記憶させて、 キヤプチャ制 御処理を終了する。 なお、 capture_enable_f gが複数ビッ ト構成に なっており、 使用条件の制約が行われている場合にはこの時点で対応 が行われる。 すなわちキヤプチャした画像の大きさに制限がある場合 には、 この時点で縮小した画像がキヤプチャされる。 また使用するァ プリケ一ションに制約がある場合にはその旨を知らせるフラグが同時 に記録される。 .
以上のように、 キヤプチャ制御処理では、 ユーザからのキヤプチャ 指示があつたときに再生されているビデオストリームに対応する Play ListO (第 7図) とクリップ情報ファイル ClipO (第 1 2図) それぞ れの capture一 enable— flag— PlayListと capture— enable— flag_C I ipとの 論理積をとつて、 その論理積が 1である場合、 即ち、 capture— enable— flag_PlayListと capture— enable— flag_Clipが、 いずれも、 2次利用 を許可する 1になっている場合にのみ、 ビデオデータの 2次利用が可 能であると判断され、 キヤプチヤが行われる。
従って、 例えば、 第 2 9図における 1番目の PlayList#0の 1番目の PlayItem#0にしたがって、 ビデオストリームの再生、 即ち、 クリップ ストリームファイル' '00001.PS"に多重化されたビデオストリームの再 生が行われている場合に、 ユーザからのキヤプチャ指示があつたとき には、 1番目の PlayList#0における capture_enable_flag_PlayListは 1であり、 その 1番目の PlayItem#0によって再生されるクリップスト リームファイル" 00001.PS"に対応する第 30図 Aおよび第 3 0図 Bの クリップ情報ファイル" 00001. CLP"における capture一 enable_flag_Cli pは 1であるから、 再生中のビデオデ一夕 (クリップストリームフアイ ル" 00001.PS"に多重化されたビデオストリームに対応するビデオデー 夕) の 2次利用は可能であると判断され、 キヤプチヤが行われる。 また、 例えば、 第 2 9図における 1番目の PlayListitOの 2番目の P1 ayltem#lにしたがって、 ビデオストリームの再生、 即ち、 クリップス トリームファイル" 00002.PS"に多重化されたビデオストリームの再生 が行われている場合に、 ユーザからのキヤプチャ指示があつたときに は、 1番目の PlayList#0における capture_enable_f lag_PlayListは 1 であり、 その 2番目の Play It em#lによって再生されるクリッブストリ —ムファイル" 00002.PS"に対応する第 3.0図 Aおよび第 3 0図 Bのク リップ情報ファイル" 00002. CLP"における capture_enable— flag— Clip は 0であるから、 再生中のビデオデータ (クリップストリームフアイ ル" 00002.PS"に多重化されたビデオストリ一ムに対応するビデオデー 夕) の 2次利用は不可であると判断され、 キヤプチヤが行われない。 さらに、 例えば、 第 2 9図における 2番目の PlayList#lの Playltem #0にしたがって、 ビデオストリームの再生、 即ち、 クリップストリー ムファイル" 00003.PS"に多重化されたビデオストリームの再生が行わ れている場合に、 ユーザからのキヤプチャ指示があったときには、 2 番目の PlayList#lにおける capture enable f g_PlayListは 0であり 、 2番目の P【ayList#lの PlayltemitOによって再生されるクリップスト リームファイル" 00003.PS"に対応する第 3 0図 Aおよび第 30図 の クリップ情報ファイル" 00003. CLP"における capture_enable flag_Cli Pは 1であるから、 再生中のビデオデ一夕 (クリップストリームフアイ ル" 00003.PS"に多重化されたビデオストリームに対応するビデオデー 夕) の 2次利用は不可であると判断され、 キヤプチャは行われない。 なお、 この場合、 2番目の PlayList#lにおける capture_enable_fla g_PlayListが 0であることが確認された時点で、 ビデオデ一夕の 2次 利用は不可であると判断することができるので、 2番目の PlayList#l の PlayItem#0によって再生されるクリップストリームファイル" 00003 .PS"に対応する第 30図 Aおよび第 30図 Bのクリップ情報ファイル " 00003. CLP"における capture_enable_flag_Cl ipの確認は省略するこ とができる。
キヤプチャ制御処理によってキヤプチヤされ、 メモリ 1 1 3に記憶 されたピクチャは、 バックグラウンド Zスクリーンセーバ処理におい て 2次利用することができる。
バックグラウンド スクリーンセ一パ:処理は、 例えば、 プレイヤ制 御モジュ一ル 2 1 2が動作しているが、 エレメンタリストリームの再 生が行われていない状態、 即ち、 ディスクドライブ 1 0 2 (第 1図) にディスク 1 0 1が挿入されていない状態、 あるいはエレメン夕リス トリームの再生が終了した状態となったときなどに行われる。
即ち、 バックグラウンド Zスクリーンセ一バ処理では、 ステップ S 380において、 プレイヤ制御モジュール 2 1 2は、 キヤプチャ制御 処理によってメモリ 1 1 3に記憶されたピクチャを表示するように、 グラフィクス処理モジュール 2 1 9を制御する。 グラフィクス処理モ ジュ一ル 2 1 9は、 プレイヤ制御モジュール 2 1 2からの制御にした がい、 キヤプチャ制御処理によってメモリ 1 1 3に記憶されたピクチ ャを表示させる。
ここで、 グラフィクス処理モジュール 2 1 9において、 メモリ 1 1 3に記憶されたピクチャを静止画で表示させれば、 いわゆる壁紙が実 現され、 一定周期で拡大や縮小、 移動等しながら表示させれば、 スク リーンセ一バが実現される。 また、 キヤプチャ制御処理によってメモ リ 1 1 3に記憶されたピクチャの表示を行うバックグラウンド Zスク リーンセ一バ処理は、 プレイヤ制御モジュール 2 1 2ではなく、 他の 独立したアプリケ一ションによって行うことが可能である。
また、 このときメモリ 1 1 3に記憶されたピクチャに使用制限を表 すフラグが付加されている場合にはその制限に従う。
以上のように、 ビデオアクセスユニット単位より大きな単位の、 例 えば、 PlayList 0や PlayltemOに対応するビデオデータの 2次利用を 許可するか否かを表す、 再生中のビデオデータに対する capture_enab le— flag— PlayListや capture_enable— flag— CI ipが取得され、 その capt ure— enable— flag— PlayListや capture— enable— flag— CI ipに基つき、 再 生中のビデオデータの 2次利用が許可されているか否かが判定される 。 そして、 再生中のビデオデータの 2次利用が許可されていると判定 された場合、 再生中のビデオデータがキヤプチヤされ、 そのキヤプチ ャされたビデオデータを利用したバックグラウンドノスクリーンセ一 バ処理が実行される。 従って、 ビデオデータの 2次利用の制御が可能 となる。
なお、 第 5 7図のキヤプチャ制御処理では、 PlayList 0 (第 7図) において、 capture_enable_flag_PlayListを設けるとともに、 Playlt em()によって再生されるクリップストリームファイルに対応するクリ ップ情報ファイル ClipO (第 1 2図) において、 capture_enable— fla g_Cl ipを設け、 その capture— enable_flagJPl ayLi stと capture— enable _f 1 ag_C 1 ipとの両方を用いて、 2次利用の許可を判定するように iiた が、 PlayList () (第 7図) において、 capture— enable— flag— PlayList を設けるだけか、 または、 PlayltemOによって再生されるクリップス トリームファイルに対応するクリップ情報ファイル ClipO (第 1 2図 ) において、 capture_enable_nag_Clipを設けるだけにして、 captur e— enable— f lag_P yListまたは capture_enable_f lag— CI ipの一方たけ を用いて、 2次利用の可否を判定するようにすることも可能である。 また、 第 5 7図のキヤプチャ制御処理では、 ステップ S 3 76にお
9 3
いて、 グラフィクス処理モジュール 2 1 9が、 プレイヤ制御モジュ一 ル 2 1 2からのキヤプチヤの指示にしたがい、 ビデオデコーダ制御モ ジュール 2 1 6からのビデオデータのピクチャ、 即ち、 1つのピクチ ャだけをキヤプチヤするようにしたが、 その他、 複数のピクチャをキ ャプチヤすることも可能である。 つまり、 ビデオデコーダ制御モジュ —ル 2 1 6が出力する時系列の複数のピクチャをキヤプチヤすること が可能である。 この場合、 一度にキヤプチャされるピクチャの枚数は 、 例えば、 あらかじめ決めておくことができる。 あるいは、 capture_ enable— flagJ ayUstや capture— enable— flag— CI ipのビッ卜 し て、 その capture— enable— flagJPlayLis tや capture— enable_f lag— CI ip に、 一度にキヤプチャ可能なピクチヤの枚数の情報を含めるようにし ても良い。
さらに、 上述の場合には、 ビデオデ一夕の 2次利用を許可するか否 力の禾 |J用許可情報 (capture— enable_f lag— PlayL is t, capture—enable— flag_Clip)を、 PlayListOや、 クリップ情報ファイル CI ip 0に記述し 、 その利用許可情報によって、 PlayUstOによって再生されるビデオ データ全体や、 クリップ情報ファイル ClipOに対応するクリップスト リームファイルに多重化されたビデオストリームに対応するビデオデ
—夕全体についての 2次利用の可否を判定するようにしたが、 利用許 可情報は、 その他の任意の単位のビデオデータについて記述し、 その 利用許可情報によって、 任意の単位のビデオデータについての 2次利 用の可否を判定することが可能である。
即ち、 第 5 8図は、 利用許可情報が配置された private_stream2— PE S一 payloadOのシンタクスを示しており、 第 5 9図は、 利用許可情報 が配置された au— informationOのシンタクスを示している。
なお、 第 5 8図の pr ivate— stream2— PES_payload 0は、 video— strea m— idの直前に、 利用許可情報としての capture_enable— f lag一 ps2が配 置されている他は、 第 2 6図における場合と同様に構成されている。 第 5 9図の au—information()も、 pic一 struct_copyの直前に、 利用許 可情報としての capture_enable— flag— AUが配置されている他は、 第 2 7図における場合と同様に構成されている。
第 5 8図の private— stream2一 PES— payloadOに配置された capture— e nable— flag— ps2は、 -^CD r iva te_stream2_PES_pay load 0を含む pr iva te— s tream— 2の PES— packet 0力 ら、 次の pr ivate— s tream— 2の PES— packe tOの直前までに配置されるビデオストリームに対応するビデオデ一 夕の 2次利用を許可するか否かを表す。 従って、 第 5 8図の private_ stream2_PES_payload()に配置された capture— enable_f lag一 ps2によれ ば、 あるデコード開始可能点から次のデコード開始可能点までの間の ビデオデータについて、 その 2次利用を許可するか否かを判定するこ とができる。
また、 第 5 9図の au— informationOに配置された capture_enable— f lag_AUは、 その capture一 enable— flag_A こ対応するビデオアクセスュ ニットのビデオデータの 2次利用を許可するか否かを表す。 従って、 第 5 9図の au_information()に配置された capture_enable— flag— Αϋに よれば、 ビデオアクセスユニット単位のビデオデータについて、 ち 、 ピクチャ単位で、 その 2次利用を許可するか否かを判定することが できる。
ここで、 PlayListO (第 7図) における利用許可情報としての capt ure_enable_f lag_PlayList, クリップ情報ファイル CI ip() (第 1 2図 ) における利用許可情報としての capture_enable_nag_Clip、 privat e_stream2_PES_payload() (第 5 S図) における利用許可情報として の capture_enable_f lag_ps2, au_informat ion() (第 5 9図) におけ る利用許可情報としての capture_enable_flag_AUは、 そのうちの 2以 上を重複して採用することが可能であり、 この場合、 あるビデオデ一 夕のピクチャの 2次利用の可否は、 その重複して採用される 2以上の 利用許可情報の論理積等に基づいて判定することができる。
また、 第 5 9図の au_informaUon()が配置される第 2 6図または第 5 8図の private— stream2_PES_payload()を含む private_streanし 2の P ES一 packet ()は、 第 4 5図のステップ S 2 1 1で説明したように、 バ ッファ制御モジュール 2 1 5 (第 5図) .のビデオ読み出し機能部 2 3 3が、 バッファ 2 1 5 Aに記憶されたプログラムストリーム中から探 索する。 従って、 capture— enable_flag_ps2が配置された第 5 8図の p rivate—strean^—PES— payloadOや、 capture— enable— flag— AUが配置さ れた第 5 9図の au_iniormationOを採用する場合には、 プレイヤ制御 モジュール 2 1 2は、 ビデオデータの 2次利用の可否を判定するにあ たって、 capture— enable— flag— ps2や capture— enable— flag— AUを、 ビ デォ読み出し機能部 2 3 3に問い合わせる必要がある。
次に、 第 6 0図を参照して、 ディスク記録装置のハードウェアの構 成について説明する。 第 6 0図のディスク記録装置は、 例えば、 ディスクプレーヤや、 ゲ —ム装置、 カーナビゲーションシステムその他に適用することが き る。
第 6 0図のディスク記録装置において、 ディスク 4 1 0は、 例えば 、 DVDなどの光ディスク、 あるいは光磁気ディスク、 磁気ディスクな どであり、 ビデオデータや、 オーディオデータ、 字幕デ一夕などのコ ンテンッデータ、 さらには、 コンテンツデータを記録することができ る。 尚、 ディスク 4 1 0は、 各種のデータが記録されることにより、 第 1図のディスク 1 0 1として使用することが可能となる。
ビデオ入力端子 4 0 0 Aは、 図示せぬ撮像装置などのビデオ入力装 置に接続されており、 ビデオ入力装置より供給されるビデオデータを ビデオ入力インターフェース 4 0 1に供給する。 オーディオ入力端子 4 0 0 Bは、 図示せぬマイクロフォンやアンプ (アンプリファイャ) などのオーディォ入力装置に接続されており、 入力されたオーディォ データを、 オーディオ入力インターフェース 4 0 2に供給する。 ビデオ入力インタ一フェース 4 0 1は、 入力されるビデオデータに 必要な処理を施し、 バス 4 1 1を介して.ビデオエンコーダ 4 0 3に供 給する。 オーディオ入力インターフェース 4 0 2は、 入力されるォ一 ディォデ一夕に所定の処理を施し、 バス 4 1 1を介してオーディォェ ンコーダ 4 0 4に供給する。
ビデオエンコーダ 4 0 3は、 CPU 4 0 5やビデオ入カインターフェ ース 4 0 1より供給されるビデオデータをエンコードし、 その結果得 られる、 圧縮符号化データ (符号化ビデオデータ :例えば、 MPEG 2ビ デォストリーム) を、 バス 4 1 1を介してディスクドライブ 4 0 9に よりディスク 4 1 0に記録させる。
オーディォエンコーダ 4 0 4は、 CPU 4 0 5やオーディォ入カイン と、 あるいは、 上述したようなリム一バブル記録媒体からディスク記 録装置にインストールすることができる。 また、 プログラムは、 タウ ンロードサイ トから、 ディジ夕ル衛星放送用の人工衛星を介して、.'デ イスク再生装置に無線で転送したり、 LAN(Local Area Network), ィ ンターネットといったネットワークを介して、 ディスク再生装置に有 線で転送し、 ディスク再生装置では、 そのようにして転送されてくる プログラムを、 入力インターフェース 4 0 8で受信し、 内蔵するメモ リ 40 6にィンストールすることができる。
さらに、 プログラムは、 1の CPUにより処理されるものであっても 良いし、 複数の CPUによって分散処理されるものであっても良い。
ドライブインターフェース 4 0 7は、 CPU4 0 5の制御の下、 ディ スクドライブ 40 9を制御し、 これにより、 バス 4 1 1を介して、 CP U4 0 5や、 メモリ 4 0 6、 ビデオエンコーダ 4 0 3、 オーディオェ ンコーダ 404より供給されるデ一夕をディスクドライブ 4 0 9に対 して供給し、 ディスク 4 1 0に記録させる、 または、 ディスク 4 1 0 に記録されたデ一夕を読み出し、 バス 4 1 1を介して、 CPU4 0 5や 、 メモリ 4 0 6に供給する。 .
入力インターフェース 40 8は、 図示せぬキー (ポタン) や、 リモ コン (リモートコントロールコマンダ) がユーザに操作されることに よって供給される信号を受信し、 バス 4 1 1を介して、 CPU40 5に 供給する。 なお、 入力インターフェース 4 0 8は、 その他、 例えば、 モテム (ADSL (Asymmetric Digital Subscriber Line)モデムを含む) や、 N'IC(Network Interface Card)などの通信インタ一フェースとし ても機能する。
なお、 ビデオ入力装置とオーディオ入力装置からのディスク記録装 置へのビデオデータとオーディォデータの供給は、 有線または無線の いずれによって行うことも可能である。
ディスクドライブ 4 0 9には、 ディスク 4 1 0が着脱可能にな て いる。 ディスクドライブ 4 0 9は、 図示せぬインタ一フェースを内蔵 し、 そのインタ一フェースを通じて、 ドライブインターフェース 4 0 7に接続されている。 ディスクドライブ 4 0 9は、 そこに装着された ディスク 4 1 0を駆動し、 ドライブインターフェース 4 0 7からの記 録等の命令にしたがって、 ディスク 4 1 0にデータを記録する等の処 理を行う。
なお、 ディスク 4 1 0に記録されるデータ (記録データ) には、 必 要に応じて、 コンピュータが実行可能なプログラムも含まれる。 また 、 本実施の形態では、 記録媒体として、 ディスク状の記録媒体である ディスク 4 1 0を採用するが、 その他、 記録媒体としては、 例えば、 半導体メモリや、 テープ状の記録媒体であってもよい。
バス 4 1 1には、 CPU Cen t ra l Process i ng Un i t) 4 0 5、 メモリ 4 0 6、 ドライブインターフェース 4 0 7、 入力インターフェース 4 0 8、 ビデオエンコーダ 4 0 3、 オーディオエンコーダ 4 0 4、 ビデオ 入力インターフェース 4 0 1、 オーディォ入カインタ一フェース 4 0 2が接続されている。
次に、 第 6 1図を参照して、 本発明のデータ符号化方法を具現化し たディスク記録装置により実現される機能について説明する。 この図 に示すディスク記録装置により実現される機能において、 オーディォ エンコーダ^: 0 はオーディォ入力端子 4 0 0 Bおよびオーディォ入 カイ タ一フェース 4 0 2を介して入力されたオーディォ信号を圧縮 符号化して多重化器 4 2 1に出力する。
また、 ビデオエンコーダ 4 0 3はビデオ入力端子 4 0 0 Aおよびビ デォ入カインターフェ一ス 4 0 1を介して入力されたビデオ信号を圧 縮符号化して多重化器 4 2 1に出力する。
多重化器 4 2 1は、 入力された MPEG 2ビデオストリームと MPEG ォ —ディォストリームをバケツト化して、 上述した第 1 8図 Αおよび第 1 8図 B乃至第 2 7図を用いて説明したように時分割多重化している 。 多重化器 4 2 1は、 ストリーム中のイントラピクチャを選び、 およ そ 1秒に 2回程度の頻度で第 2 6図に示す private_stream_2の PES_pack et()を揷入する。
多重化器 4 2 1は、 多重化ストリームを、 FIF04 2 2を経由して RA PI書換器 42 4に出力するとともに、 RAPI情報抽出器 4 2 3にも同時 に出力する。 RAPI情報抽出器 42 3では、 多重化ストリームに多重化 されたビデオストリームのなかの private_stream_2の PES_packet ()の 開始位置と、 private一 stream_2の PES— packet 0直後に置かれているィ ントラピクチャの持つタイムスタンプ (PTS) 値、 及び該当イントラ ピクチャと、 それにつづく 2枚目、 3枚目、 4枚目の参照画像の終了位 置を検出し、 記憶する。
なお、 ここでいう RAP1とは、 private_stream— 2の PES_packet ()のこ とである。
RAPI情報抽出器 4 2 3は検出した該当イントラピクチャと、 それに つづく 2枚目、 3枚目、 4枚目の参照画像の終了位置を RAPI書換器 4 2 4に出力する。 RAPI書換器 4 2 4では、 RAPIの情報として第 2 6図の lstRef_picture, 2ndRef_picture, 3rdRef_picture> 4thReし pic ture のフィール'ドが上書きされ、 それぞれ先頭、 2枚目、 3枚目、 4枚目の 参照 1®像の終了位置が、 セクタ単位の数値で記録され、 出力サーバ 4 2 6に蓄積される。
コントローラ 4 2 5は、 多重化ストリーム全体の処理が終了すると 、 RAPI情報抽出器 42 3で抽出、 蓄積された、 多重化ストリームに多 重化されたすべての RAP Iの開始位置と、 RAP I直後に置かれているィン トラピクチャ及びそれにつづく 2枚目、 3枚目、 4枚目の参照画像の終 了位置を取得する。 ·' コント口一ラ 4 2 5は、 入力された情報を使用して、 第 1 6図を用 いて説明した EP—map Oを作成する。
コントローラ 4 2 5は、 RAP I情報抽出器 4 2 3から入力されたデー タから、 RAP Iに対して、 そのアドレス、 直後のイントラピクチャの持 つ PTS、 そしてイントラピクチャ及びそれにつづく 2枚目、 3枚目、 4枚 目の参照画像の終了位置のうちの 1を選び出して、 クリップ情報ファ ィル内の EPjnap Oを作成し、 出力サーバ 4 2 6に蓄積する。
ここで、 第 6 2図のフローチャートを参照して、 EP_map 0 生成処 理について説明する。
ステツプ S 3 8 1において、 ビデオエンコーダ 4 0 3はビデオ入力 端子 4 0 0 Aおよびビデオ入カイン夕一フェース 4 0 1を介して入力 されたビデオ信号を圧縮符号化して多重化器 4 2 1に出力する。 また 、 オーディオエンコーダ 4 0 4はオーディオ入力端子 4 0 0 Bおよび オーディォ入カイン夕ーフェース 4 0 2.を介して入力されたオーディ ォ信号を圧縮符号化して多重化器 4 2 1に出力する。 この場合、 ォー ディォエンコーダ 4 0 4から出力されるストリームは、 MPEG 2ォ一デ ィォストリ一ムとされ、 ビデオエンコーダ 4 0 3から出力されるスト リームは、 MPEG 2ビデオストリームとされる。
ステップ S 3 8 2において、 多重化器 4 2 1は、 入力された MPEG 2 ビデオストリームと MPEG 2オーディォストリームをバケツト化して、 第 1 8図 Aおよび第 1 8図 B乃至第 2 7図を用いて説明したように時 分割多重化 (パケタイズ) し、 ストリーム中のイントラピクチャを選 び、 およそ 1秒に 2回程度の頻度で第 2 6図に示す pr i va t e_s t ream_2の PES_packet ()を挿入する。 ここで pr ivate_stream_2の PES_packet 0は 、 他のピクチャを参照しなくてもデコード可能なビデオのィントラピ クチャが直後に置かれていることを示している。 このとき、 該当イン トラピクチャにはタイムスタンプ (PTS/DTS) が必ず付与される。 なお、 この段階では、 第 2 6図で説明した IstRef— picture, 2ndRef — picture、 3rdRef— picture、 4thRef— pictureのフィー レドにまデ一夕 が記録されていない。 さらに、 図示されていないが、 サブタイ トルス トリームを多重化器 4 2 1に入力して、 ビデオストリーム、 オーディ ォストリームと共に多重化してもよい。
ステツプ S 3 8 3において、 多重化器 4 2 1は、 多重化ストリーム を、 FIF04 2 2を経由して RAPI書換器 424に出力するとともに、 RA PI情報抽出器 42 3にも同時に出力する。 RAPI情報抽出器 4 2 3では 、 多重化ス卜リームに多重化されたビデオストリームのなかの privat e一 stream_2の PES_packet 0の開始位置と、 private— stream— 2の PES_pa cketO直後に置かれているイントラピクチャの持つタイムスタンプ ( PTS) 値、 及び該当イントラピクチャと、 それにつづく 2枚目、 3枚目 、 4枚目の参照画像の終了位置を検出し、 記憶する。
さらに、 RAPI情報抽出器 42 3は検出した該当イントラピクチャと 、 それにつづく 2枚目、 3枚目、 4枚目の参照画像の終了位置を RAPI書 換器 42 4に出力する。 RAPI書換器 42 4は、 RAPIの情報、 うち第 2 6図の IstRef一 picture, 2ndReし picture, 3rdRef— picture, 4thRef_p ictureのフィールドを上書きし、 それぞれ先頭、 2枚目、 3枚目、 4枚 目の参照画像の終了位置を、 セクタ単位の数値で記録し、 さらに出力 サーバ 4 2 6に蓄積させる。
ステップ S 3 8 5において、 RAPI情報抽出器 42 3で抽出、 蓄積さ れた、 多重化ストリームに多重化されたすべての RAPIの開始位置と、 RAPI直後に置かれているィントラピクチャ及びそれにつづく 2枚目、 3 枚目、 4枚目の参照画像の終了位置が、 コントローラ 4 2 5に入: ήさ れる。
コントローラ 42 5は、 入力された情報を使用して、 第 1 6図を用 いて説明した EPjnapOを作成する。 ここで作成する EPjnapOはビデオ ストリームのみの情報が含まれているとする。 ビデオに関する EP—map 0は、 ストリーム中に置かれた全ての RAPI、 すなわち private_stream — 2の PES—packetOの位置であり、 この情報は RAPI情報抽出器 42 3か らコントローラ 42 5に入力された情報で作成される。
より詳細には、 コントローラ 42 5は、 RAPI情報抽出器 42 3から 入力されたデ一夕から、 RAPIに対して、 そのアドレス、 直後のイント ラピクチャの持つ PTS、 そしてイントラピクチャ及びそれにつづく 2枚 目、 3枚目、 4枚目の参照画像の終了位置のうちの 1を選び出して、 ク リップ情報ファイル内の EPjnapOを作成し、 出力サーバ 426に蓄積 する。 すなわち、 コント口一ラ 42 5は、 4点の参照画像終了位置 ( IstReし Picture, 2ndRef_Picture> 3rdReし Picture, 4thRef— Picture ) のうち、 所定のセクタ数 (エンコード.処理において、 まとめて読出 可能なセクタ数) に近い値を、 N- th一 Ref_picture一 copyにコピ一する ステップ S 3 8 6において、 コントローラ 42 5は、 N- th_Ref_pic ture_copyに基づいて、 indexjninuslを決定し記録し、 ディスク 4 1 0に記録させる。 ここでは、 出力サーバ 426に蓄積されたストリ一 ムデ一夕とデータべ一ス系のファイルは、 ドライブインタ一フェース 407よりディスクドライブ 409に供給されて、 ディスク 4 1 0に 記録される。
以上の処理により、 第 3 1図で示されるように EP mapが生成される [IstReし Picture、 2ndRef—Picture、 3rdReし Picture, 4thReiJPic tureの使い方]
次に、 第 6 3図のフローチャートを参照して、 第 3 1図の EPjnapO を用いた早送り再生処理について説明する。
図示せぬユーザがビデオコンテンツ再生プログラム 2 1 0に対して 早送りを指令したとする。 プレイヤ制御モジュール 2 1 2は再生中の ストリームのクリップ情報ファイルから、 EPjnapOに登録されている 再生可能開始位置の 1を選択し (ステップ S 3 9 1) 、 そこに記述さ れている RPN_EP_startから、 N- th_Reし Pic ture_copyだけの大きさか らの読み出しデータを決定する (ステップ S 3 9 2) 。 プレイヤ制御 モジュール 2 1 2は、 この情報をコンテンツデ一夕供給モジュール 2 1 3に伝え、 さらにデコード制御モジュール 2 14に対して早送り再 生を指示する。
コンテンツデータ供給モジュール 2 1 3は、 オペレーティングシス テム 20 1の機能を使用して、 再生対象のエレメン夕リストリームが 多重化されたプログラムストリームが格納されたクリップス卜リーム ファイルを読み出してバッファ制御モジュール 2 1 5に供給させる ( ステップ S 3 9 3) 。 既にファイル名等は指示してあるので、 ここで は繰り返さない。 再生開始時とは異なり、 読み込み開始のアドレスと 転送するデータの大きさを伝えて読み込みを指示する。
ビデオ読み出し機能部 2 33は、 バッファ制御モジュール 2 1 5に 入力された多重化データを多重化分離し (ステップ S 3 94) 、 ビデ ォストリームのみをビデオデコーダ制御モジュール 2 1 6に供給する 。 この場合、 早送りの処理であるため、 オーディオデコーダ制御モジ ユール 2 1 7、 字幕デコーダ制御モジュール 2 1 8、 オーディオ読み 出し機能部 234、 字幕読み出し機能部 2 3 3は動作しない。
入力されたデータには、 1枚以上 4枚以下の参照画像が含まれ七い る。 ここで、 早送り処理では、 第 64図のフローチャートを参照して 説明するエントリポイント選定処理 (ステップ S 3 9 5 ) により選定 されたエントリポイントに基づいて、 参照画像のみがデコードされて 表示されるが、 デコード制御モジュール 2 1 4にはあらかじめ index_ N_minuslが送られており、 デコード制御モジュール 2 14は指定され た数だけの参照画像をデコードし、 順次後段に送って表示させる (ス テツプ S 396 ) 。
表示が終了すると、 プレイヤ制御モジュール 2 1 2は、 次に表示す る EP_map()ェントリポィントを選択し、 上記に説明したことを繰り返 すことによって早送り画像を出力する (ステップ S 39 7 ) 。
このとき、 次に表示する EP_nia0O内のジャンプ先のェントリポイン トを選択する際に、 index_N_minuslを使用する方法を説明する。 既に 説明したように index— Iminuslは N - th_Ref— Picture—copyまで読み込 んだときに、 そのデ一夕に含まれる参照画像の枚数を示している。 第 3 1図のデ一タ例では、 1番目、 および 3番目のエントリポイントで は indexJLminuxlは 0であるから、 イントラピクチャ 1枚であり、 2 番目、 および 4番目のエントリポイントでは、 index_Njninuslは 3で あるから、 4枚の参照画像が含まれている。
早送り画像は、 2枚以上の参照画像が出力されることにより、 その 主観品質が高まるという性質がある。 しかしながら、 多くの参照画像 を出力するためにはデータ読み出し量を多くする必要があり、 更新の 頻度が遅くなるという トレードオフの関係にある。 このため、 プレイ ャ制御モジュール 2 1 2は次に表示する EPjnapO内のエントリポイン トを選択するにあたり、 index N minuslの値を評価する。 すなわち、 早送りの速度が早いときには、 EP_map()内のエントリポ ィントの間引き間隔が大きくなるが、 その際に index— Njninuslが き いもの (すなわち、 主観画質の高くなるもの) を優先的に選択する。 また、 早送りの速度が遅いときには、 index_N_ininuslの小さいものも 選択する。
上記に説明した i ndex_N_m i nu s 1決定のアルゴリズムでは、 N- 1 h— Re f — picture_copyの値が" 30"に近いものを選択している。 すなわち、 こ のようなアルゴリズムの下で作成された EPjnap 0では、 N- 1 h_Re f_p i c ture_copyの通りに読み出すときにデ一夕読み出し量がほぼ" 30"セク 夕になる。 デ一夕読み出し速度が支配的な場合には、 一定の読み出し 時間であることが重要であるため、 こういうエントリポイントを選択 する方法も有効である。 '
次に、 第 64図のフローチャートを参照して、 早送り時のエントリ ボイントの選択処理について説明する。
プレイヤ制御モジュール 2 1 2は、 ステップ S 40 1で、 早送りの モードが高速モードかあるいは低速モードか否かを判定する。 早送り が高速モードであると判定された場合、 .処理は、 ステップ S 40 2に 進み、 低速モードであると判定された場合、 処理は、 ステップ S 4 1 1に進む。
<低速モード早送りの場合の選択の説明 >
ステップ S 402では、 プレイヤ制御モジュール 2 1 2は、 早送り が低速モードであるため、 選択するエントリポイントの番号 (該当ェ ントリ (N) ) を前回の該当エントリから 2だけインクリメントする (該当エントリ番号 + = 2 ) 。 そして、 ステップ S 40 3において、 プレイヤ制御モジュール 2 1 2は、 該当エントリ N、 1前のエントリ (N— 1 ) 、 1先のエントリ (N+ 1 ) から index Njninuslを読み取 る。
ステップ S 404では、 プレイヤ制御モジュール 2 1 2は、 in(fe_N _minus(N)、 すなわち N番目のェントリポイントの持つ index一 Njni'nus 1の値が 0あるいは 1であるか否かを判定する。 ステツプ S 404にお いて、 例えば、 index_N_niinuslの値が 0あるいは 1であった場合、 処理 は、 ステップ S 40 5に進み、 プレイヤ制御モジュール 2 1 2は、 N 番目のエントリポイントを選定して処理を終了する。 一方、 ステップ S 404において、 index_N_minuslの値が 0でも 1でも無い場合、 処理 は、 ステップ S 40 6に進む。
ステップ S 40 6では、 プレイヤ制御モジュール 2 1 2は、 inde_N —minus (N+1)、 すなわち(N + 1)番目のエントリポイントの持つ index__N — minuslの値が、 0あるいは 1であるか否かを判定する。 ステップ S 4 06において、 inde— N_minus(N+l)が、 0あるいは 1であった場合、 処 理は、 ステップ S 40 7に進み、 プレイヤ制御モジュール 2 1 2は、 (N + 1)番目のエントリポイントを選定して処理を終了する。 一方、 ス テツプ S 40 6において、 inde_N_minus (N+1)が、 0でも 1でも無い場 合、 処理は、 ステップ S 408に進む。 .
ステップ S 40 8では、 プレイヤ制御モジュール 2 1 2は、 inde_N _minus(N-l), すなわち(N-1)番目のエントリポイントの持つ index_N jninuslの値が 0あるいは 1であるか否かを判定する。 ステップ S 40 8において、 index_N_minuslの値が 0あるいは 1であった場合、 処理は 、 ステップ S 40 9に進み、 プレイヤ制御モジュール 2 1 2は、 (N- 1)番目のエントリボイントを選定して処理を終了する。 0でも 1でも無 い場合にはステツプ S 4 1 0に進む。
ステップ S 4 1 0ではエントリ N、 (N+1), (N- 1)の全てのエントリ ボイントにおいて index— N minuslが 0でも 1でもないことが判明してい ることになるので、 プレイヤ制御モジュール 2 1 2は、 N番目のェン トリポイントを選定して処理を終了する。
<高速モード早送りの場合の選択の説明 >
ステップ S 4 1 1では、 早送りが高速モードであるため、 プレイヤ 制御モジュール 2 1 2は、 選択するエントリポイントの番号 (該当ェ ントリ) (N) を前回の該当エントリポイントから 5だけインクリメ ン卜する。 (該当ェントリ番号 + = 5) 。 そしてステップ S 4 1 2に おいて、 プレイヤ制御モジュール 2 1 2は、 該当エントリ N、 1前の エントリ (N— 1 ) 、 1先のエントリ (N+ 1 ) から index_N— minus 1 を読み取る。
ステップ S 4 1 3では、 プレイヤ制御モジュール 2 1 2は、 inde_N _minus(N)、 すなわち N番目のェントリポイン卜の持つ index_N_minus 1の値が 3あるいは 2であるか否かを判定する。 ステツプ S 4 1 3にお いて、 N番目のェントリポィン卜の持つ index— N— minuslの値が 3ある いは 2であった場合、 処理は、 ステップ S 4 1 4に進み、 プレイヤ制 御モジュール 2 1 2は、 N番目のェントリポィン卜を選定して処理を 終了する。 ステップ S 4 1 3において、 . N番目のエントリの持つ inde x_Njninuslの値が 3でも 2でも無い場合、 処理は、 ステップ S 4 1 5に 進む。
ステップ S 4 1 5では、 プレイヤ制御モジュール 2 1 2は、 inde_N _minus(N+l)、 すなわち(N + 1)番目のエントリポイントの持つ index— N jninuslの値が 3あるいは 2であるか否かを判定する。 ステップ S 4 1 5において、 (N + 1)番目のエントリポイン卜の持つ index_N_minuslの 値が 3あるいは 2であった場合、 処理は、 ステップ S 4 1 6に進み、 プ レイヤ制御モジュール 2 1 2は、 (N + 1)番目のエントリポイントを選 定して処理を終了する。 一方、 ステップ S 4 1 5において、 (NH)番 目のェントリポイン卜の持つ index_N_minuslの値が、 3でも 2でも無い 場合、 処理は、 ステップ S 41 7に進む。
ステップ S 4 1 7では、 プレイヤ制御モジュール 2 1 2は、 inde_N —minus (N-1)、 すなわち(N-1)番目のェントリポイン卜の持つ index— N — minuslの値が 3あるいは 2であるか否かを判定する。 ステップ S 4 1 7において、 (N-1)番目のエントリポイントの持つ index_N_minuslの 値が 3あるいは 2であった場合、 処理は、 ステップ S 4 1 8に進み、 プ レイヤ制御モジュール 2 1 2は、 (N-1)番目のエントリポイントを選 定して処理を終了する。 3でも 2でも無い場合にはステップ S 4 1 9に 進む。
ステップ S 4 1 9では N、 (N+1), (N-1)の全てのエントリにおいて i ndexJLminuslが 3で 2でもないことが判明していることになるので、 プレイヤ制御モジュール 2 1 2は、 N番目のエントリポイントを選定 して処理を終了する。
すなわち、 早送りの速度が早いときには、 EP_map()内のエントリポ イン卜の間引き間隔が大きくなるが、 その際に i ndex_N_m i nus 1が大き いもの (すなわち、 主観画質の高くなる.もの) を優先的に選択する。 また、 早送りの速度が遅いときには、 indexJUninuslの小さいものも 選択する。
以上の処理により、 主観画質を低下させること無く、 高速で早送り 再生を実現させるようにすることが可能となる。 また、 低速の早送り 再生では、 より多くの参照画像を用いて早送り再生させることが可能 となるので、 再生画像の画質の低減を抑制することが可能となる。 以上の例においては、 再生処理において、 読み出されるエントリポ イントの情報は、 常に一定であることが前提となるが、 このような場 合、 処理能力の高いディスク再生装置では、 多くのエントリポイント が読み出されることで再生画像を向上させることが可能となるが、 一 方で、 処理能力の低いディスク再生装置で読み込むェントリポイ ト の情報を大量にすると、 処理速度が遅れてしまう恐れがある。 そこで 、 読み込むエントリポイントの情報にプライオリティを設定し、 高い 処理能力を持つディスク再生装置では、 全てのエントリポイントの情 報を用いるようにし、 逆に、 処理能力の低いディスク再生装置では、 プライオリティの高いエントリボイントのみを読み出して処理するよ うにしても良い。
第 6 5図は、 エントリポイントにプライオリティを設定するように した、 ディスク記録装置の機能を説明する機能ブロック図である。 尚 、 第 6 5図のディスク記録装置において、 第 6 1図のディスク記録装 置の機能と同一の機能については、 同一の符号を付しており、 その説 明は、 適宜省略するものとする。
Sub t i t l eエンコーダ 4 4 3は、 字幕素材サーバ 4 4 2より字幕の素 材を読み取り、 圧縮符号化して字幕データサーバ 4 4 4に書き込む。 字幕デ一夕はビデオデータやオーディォデータとは異なり、 時間軸上 に間欠的に存在している。 このため、 字幕素材サーバ 4 4 2に記録さ れた字幕素材および字幕データサーバ 4 4 4に記録された字幕データ のそれぞれの表示開始時刻及び表示 dura t i onは字幕夕イミング情報 4 4 5に用意される。
多重化器 4 4 1は、 第 6 1図の多重化器 4 2 1と基本的には同様の 機能を有するが、 さらに、 字幕データと字幕タイミング情報を多重化 する。 すなわち、 多重化器 4 4 1は、 入力された MPEG 2ビデオストリ ームと MPEG 2オーディォストリーム、 および字幕データサーバ 4 4 4 から供給された字幕データと字幕夕イミング情報 4 4 5を読み込み、 上述した第 1 8図 Aおよび第 1 8図 B乃至第 2 7図を用いて説明した ように時分割多重化している。
多重化器 44 1は、 ストリーム中のイントラピクチャを選び、 ょ そ 1秒に 2回程度の頻度で第 2 3図に示す private_stream_2の PES_pack et()を挿入する。 ここで private_stream_2の PES_packet 0は、 他のピ クチャを参照しなくてもデコ一ド可能なビデオのィントラピクチャが 直後に置かれていることを示している。 このとき、 該当イントラピク チヤにはタイムスタンプ (PTS/DTS) が必ず付与される。
また、 字幕デ一夕の全てのアクセスュニッ 卜にはタイムスタンプが 必ず付与されている。
なお、 この段階では、 第 2 6図で説明した Is ef_piciure、 2ndRef _picture、 3rdRef_pic ture> 4thRei— pictureのフィー レドにまテータ が記録されていない。 さらに、 図示されていないが、 サブタイトルス トリームを多重化器 44 1に入力して、 ビデオストリーム、 オーディ ォストリームと共に多重化してもよい。
多重化器 44 1は、 多重化ストリームを FIF04 2 2を経由して RAPI 書換器 4 24に供給するとともに、 RAPI情報抽出器 4 2 3にも同時に 供給する。 PI情報抽出器 4 2 3は、 多重化ストリームに多重化され たビデオストリームの情報と字幕ストリームの情報を抽出し記憶する 。 すなわち、 RAPI情報抽出器 42 3は、 ビデオストリームに関しては private— s eam— 2の PES— packet 0の開始位置と、 pr ivate_s tream_2の PES一 packet ()直後に置かれているィントラピクチヤの持つタイムス夕 ンプ (P T S) 値、 及び該当イントラピクチャと、 それにつづく 2枚 目、 3枚目、 4枚目の参照画像の終了位置を検出し、 記憶する。 また、 字幕ス卜リームに関しては、 全ての字幕アクセスュニッ 卜の開始位置 とタイムスタンプを検出し、 記憶する。
コントローラ 44 6は入力された情報を使用して、 例えば、 第 6 6 図で示されるような EP_map 0を作成する。 ここで作成する EP_map 0は ビデオストリームと字幕ストリームに関する情報が含まれているとす る。 ビデオに関する EPjnapOの主たる情報は、 ストリーム中に置かれ た全ての RAP I、 すなわち private— 3 6&111ー2の?£3_0&^^10の位置と直 後のイントラピクチャのタイムスタンプであり、 これらの情報は RAPI 情報抽出器 42 3からコントローラ 44 6に入力した情報で作成する ことができる。 また、 字幕に関する EPjnapOの主たる情報は、 字幕ァ クセスュニットの位置とタイムスタンプであり、 これらの情報も RAP I 情報抽出器 4 2 3からコントローラ 44 6に入力した情報で作成する ことができる。
コントローラ 44 6は RAPI情報抽出器 42 3から入力されたデータ から、 EPjnapOの情報のうち、 まだ確定していない後述する prioirty —flagを作成する。 すなわち、 全てのビデオのエントリポイント (RAP Iのェントリポィント) および字幕アクセスュニッ卜に対してその夕 ィムスタンプを評価し (後述する) priority— flagを設定する。 コン トロ一ラ 446にはこのためにチヤプ夕 ·シーンチェンジ情報 44 7 が入力されている。 .
[EP_mapの説明]
ここで、 第 6 6図を参照して、 ファイルにプライオリティを設定す るときの EPjnapについて説明する。 第 6 6図で示されるように、 numb er— 0し EP— ent r iesの後には、 その直刖の s t ream_idと pr ivate— s tream— idで特定されるエレメン夕リストリームのデコ一ド開始可能点の情報 としての prior i ty— flag (2ビッ卜) と reserved— for— future— use (14 ビット) 、 さらに PTS—EP— start (32ビット) と RPN_EP— s tar t (32ビッ ト) とのセットが、 number— oし EP_entriesが表す数だけ繰り返し配置 される。 priority_flagは、 第 6 7図で示されるような意味を持つ。 すなわ ち、 ビデオストリームのエントリでは、 priority_flagの値が 3の場合 、 そのエントリがチヤプ夕先頭に対応していることを示す。 また、 ' pr iority_flagの値が 2の場合、 上記以外で 1分おきの重要なシーンチェ ンジに該当するのエントリであることを示す。 また priority_flagの 値が 1の場合は、 上記以外でシーンチェンジに該当する 3秒おきのェン トリであることを示す。 また、 それ以外のエントリは全て priority— f lagの値が 0であるとする。
Subtitleストリームに対応するェントリも同様に、 priority_f lag の値が 3の場合、 そのエントリがチヤプタ先頭に対応していることを 示す。 また、 priority一 flagの値が 2の場合、 上記以外で重要なシーン チェンジに該当するェントリであることを示す。 また priority— flag の値が 1の場合、 上記以外でシーンチェンジに該当するェントリであ ることを示す。 また、 それ以外のエントリは全て priori ty_f lagの値 が 0であるとする。
例えば、 このクリップが 2時間の映画であり、 1秒に 2回のランダム アクセスボイントが存在するならば、 ェ.ントリ数は全体で 14400(= 2 時間 X 3 6 0 0秒 X 2回)となる。 また、 チヤプ夕数が、 およそ数十 であるとした場合、 priority一 flag=3のェントリは数十個の同数とな る。 重要なシーンチェンジ (priori ty一 flag=2) とその他のシーンチ ェンジ (priority_flag=l) の数はコンテンツに依存するためにー概 には言えないが、 priority一 flag=3あるいは 2のエントリは約 200、 pri ority— f lag=3あるいは 2あるいは 1のェントリは約 2400、 その他全てを 含めると全部で 14400となるここでは例えば prioiry_flag=2のものと = 1のものの総計が 1000であったとする。 この場合、 priority一 flag=3, 2, 1のエントリだけを読み込むことにすると、 全部を読み込んだ場合 に比べて約 1000/14, 400= 14分の 1のメモリ量となる。 またこの例で はひとつのェントリが 10バイトなので一本のビデオストリームに舟し て、 10バイ ト X (14400-1000) = 120134キロバイ トのメモリを節約す ることが可能となる。
また、 字幕に関しては 2時間の映画に対して 1000から 2000の字幕が 存在するといわれており、 これに対してチヤプ夕は数十なので、 prio rity_flag=3のェントリだけを読み込むとすると数十を 1000あるいは 2 000で除して数十分の一のメモリに節約することが可能となる。 字幕 ストリームはビデオストリームに比べて本数が多くなるため、 削減効 果も十分である。
なお、 この例ではフラグを 3, 2, 1, 0の値で示しているが、 それぞ れをビットで表現し、 対応するピットを 1とセッ トするという方法も 考えられる。 すなわち、 このフィールドを 3ビッ トとし、 最上位ビッ 卜が 1の場合にはチヤプタ先頭であることを示し、 次のビッ卜が 1の場 合には 1分おきのエントリであることを示し、 最下位ビットが 1の場合 には 5秒おきのェントリであることを示し、 全てのビッ卜が 0であれば 、 それら三つのカテゴリに含まれないと定義することも考えられる。
Subtitleストリームに対応するェントリでは、 priority一 flagの値 が 1の場合にはそのェントリがチヤプタ先頭に対応していることを示 す。 それ以外のエントリでは全て priority—flagの値が 0であるとする 次に、 第 6 8図のフローチャートを参照して、 01^0 1 ー &8設定 処理について説明する。
ステップ S 44 1において、 コントローラ 44 6は、 ビデオのェン トリに対して、 ビデオのチヤプ夕の先頭位置であるか否か、 すなわち 、 評価中のェントリがチヤプ夕 · シーンチェンジ情報 447にあるチ ャプ夕の時刻に該当しているか否かを判定する。 ここで該当している とは差分が 0と定義する。 例えば、 チヤプ夕の時刻に該当してい 場 合、 ステップ S 442において、 コントローラ 446は、 priori^— f lag=3として設定し出力サーバ 426に記憶させる。
一方、 ステップ S 44 1において、 ビデオのチヤプ夕の先頭位置で はないと判定された場合、 ステップ S 443において、 コントローラ 446は、 ビデオの重要なシーンチェンジの位置であるか否か、 すな わち、 次に評価中のェントリがチヤプタ · シーンチェンジ情報 447 にある 「重要なシーンチェンジ」 先頭から 1分おきの位置に該当する か否かを判定する。 ステップ S 443において、 例えば、 「重要なシ ーンチェンジ」 先頭から 1分おきの位置に該当している場合、 ステツ プ S 444において、 コントローラ 446は、 priority— flag=2に設 定する。
ステップ S 443において、 重要なシーンチェンジではないと判定 された場合、 ステップ S 445において、 コントローラ 446は、 ビ デォの通常のシーンチェンジであるか否か、 すなわち、 次に評価中の ェントリがチヤプ夕 · シーンチェンジ情.報 447にある 「シーンチェ ンジ」 の先頭から 3秒おきの位置に該当するか否かを判定する。 ステ ップ S 445において、 例えば、 「シーンチェンジ」 の先頭から 3秒 おきの位置に該当している場合、 ステップ S 446において、 コント 口一ラ 446は、 priority_flag=lに設定する。
ステップ S 445において、 通常のシーンチェンジではないと判定 された場合、 すなわち、 いずれのシーンチェンジにも該当しないと判 定された場合、 ステップ S 447において、 コントローラ 446は、 priori
Figure imgf000216_0001
に設定する。
ステップ S 448において、 コントローラ 446は、 全てのビデオ の全てのェントリについて処理が終了したか否かを判定し、 終了して いないと判定された場合、 処理は、 ステップ S 4 4 1に戻り、 そ 以 降の処理が繰り返される。 すなわち、 ビデオのエントリについて全て の pr i or ny_f l agが設定されるまで、 ステップ S 4 4 1乃至 S 4 4 8 の処理が繰り返される。
そして、 ステップ S 4 4 8において、 全ての処理が終了したと判定 された場合、 すなわち、 ビデオの全てのエントリについての処理が終 了したと判定された場合、 その処理は、 ステップ S 4 4 9に進む。 ステップ S 4 4 9において、 コントローラ 4 4 6は、 字幕に関して 、 エントリがチヤプタ先頭位置に該当するか否か、 すなわち、 評価中 のェントリがチヤプ夕 · シーンチェンジ情報 4 4 7にあるチヤプ夕の 時刻に該当しているか否かを判定する。 ステップ S 4 4 9において、 ェントリがチヤプ夕の時刻に該当している場合、 ステップ S 4 5 0に おいて、 コントローラ 4 4 6は、 pr i or i ty_f l ag=3に設定する。
一方、 ステップ S 4 4 9において、 字幕のチヤプ夕の先頭位置では ないと判定された場合、 ステップ S 4 5 1において、 コントローラ 4 4 6は、 字幕の重要なシーンチェンジの.位置であるか否か、 すなわち 、 次に評価中のェントリがチヤプタ · シーンチェンジ情報 4 4 7にあ る 「重要なシーンチェンジ」 先頭から 1分おきの位置に該当するか否 かを判定する。 ステップ S 4 5 1において、 例えば、 「重要なシーン チェンジ」 先頭から 1分おきの位置に該当している場合、 ステップ S 4 5 2において、 コントローラ 4 4 6は、 pr i or i ty—f l ag= 2に設定す る。
ステップ S 4 5 1において、 重要なシーンチェンジではないと判定 された場合、 ステップ S 4 5 3において、 コントローラ 4 4 6は、 字 幕の通常のシーンチェンジであるか否か、 すなわち、 次に評価中のェ ントリがチヤプタ · シーンチェンジ情報 447にある 「シーンチェン ジ」 の先頭から 3秒おきの位置に該当するか否かを判定する。 ス ッ プ S 45 3において、 例えば、 「シーンチェンジ」 の先頭から 3秒お きの位置に該当している場合、 ステップ S 454において、 コント口 —ラ 446は、 priority— flag=lに設定する。
ステツプ S 45 3において、 通常のシーンチェンジではないと判定 された場合、 すなわち、 いずれのシーンチェンジにも該当しないと判 定された場合、 ステップ S 45 5において、 コントローラ 446は、 priority_flag=0に設定する。
ステップ S 45 6において、 コントローラ 446は、 字幕の全ての ェントリについて処理が終了したか否かを判定し、 終了していないと 判定された場合、 処理は、 ステップ S 449に戻り、 それ以降の処理 が繰り返される。 すなわち、 字幕のエントリについて全ての priority — flagが設定されるまで、 ステップ S 449乃至 S 45 6の処理が繰 り返され、 ステップ S 456において、 字幕の全てのエントリについ て処理が終了したと判定されると、 コントローラ 446は、 第 66図 の構文に従った EPjnapOのデータを出力サーバ 426に対して出力す る。
[再生側の動作: EP_map()の間引き]
以上のように設定された priority一 flagに基づいて、 ディスク再生 装置は、 メモリ (例えば、 第 1図のメモリ 1 1 3) の大きさにより、 EPjnapOを間引く。 すなわち、 コストを削減するために機能を減らし ているディスク再生装置では、 高い値の priority— flagを持つェント リのみをメモリに残す。 もちろん、 メモリの容量が、 EP一 mapO全体を 保持することができるでけ確保している機器ではこのような作業を必 ずしも行う必要はない。 例えば、 第 3 3図のフローチャートにおけるステップ S 1 0 6の処 理において、 ビデオに関しては priority_flag=l以上のェントリ メ モリに保持し、 字幕に関しては priority_flag=l以上のェントリをメ モリに保持するとする。 この場合、 EP_map()の読み出しの際に、 stre am— idと private— stream_idの値により、 プレイヤ制御モジュール 2 1 2はストリームの種類がビデオであったとき、 priority一 flagの値が 3 , 2、 あるいは 1のエントリはメモリに読み込み、 priority_flagの値 が 0のェントリはメモリに読み込まない。 またストリームの種類が字 幕であった場合、 prioirty_flag=3および 21のエントリは読み込み、 p riority_flagの値が 1, 0のエントリは読み捨てる。
以上の処理を行うことにより、 一本のビデオストリームに対する EP _mapのために必要なメモリの容量は、 1/6乃至 1/10程度とすることが 可能となる。 また、 一本の字幕ストリームに対する EPjnapのために必 要なメモリ量はおよそ数十分の一程度とすることが可能となる。 結果 として、 低コストのディスク再生装置でも、 メモリの容量に応じてェ ントリを記憶させることができ、 効率的な再生処理を実現させること が可能となる。 .
なお、 ここでは priori ty一 flag=3をチヤプタ先頭と意味づけしてい るが、 チヤプタ先頭及び重要なシーンチェンジボイントなど任意の意 味に定義することが可能である。
なお、 本実施の形態では、 上述した一連の処理を、 ソフトウェアに よって行うこととしたが、 上述した一連の処理は、 専用のハードゥエ ァにより行うこともできる。
また、 本実施の形態では、 ビデオデコーダ 1 1 6 (第 1図) および ビデオエンコーダ 403 (第 60図) として、 ハードウェアデコーダ を採用することとしたが、 ビデオデコーダ 1 1 6およびビデオェンコ ーダ 4 0 3 (第 6 0図) としては、 ソフトウェアデコーダを採用する ことも可能である。 オーディオデコーダ 1 1 7 (第 1図) およびT— ディォエンコーダ 4 0 4 (第 6 0図) についても、 同様である。 ' さらに、 本実施の形態では、 字幕デコーダとして、 ソフトウェアデ コ一ダを採用することとしたが、 字幕デコーダとしては、 ハードゥエ アデコーダを採用することも可能である。
2
9

Claims

請 求 の 範 囲
1 . 処理データを所定のアクセスュニット毎に処理するデ一夕処¾装 置において、 ' 所定の変数を用いて時刻を計時するように構成された計時部と、 アクセスユニットのタイムスタンプの有無を検出し、 前記アクセス ュニッ卜にタイムスタンプがある場合、 前記タイムスタンプの値を前 記変数に代入し、 前記アクセスュニッ 卜にタイムスタンプがない場合 、 表示時間の情報を取得し、 取得された前記表示時間の情報により得 られる値を加算して、 前記変数を設定するように構成された設定部と を備えるデータ処理装置。
2 . 前記表示時間の情報は、 処理される前記処理データの 1フィール ドを単位とした表示時間を示す情報である
ことを特徴とする請求の範囲 1に記載のデータ処理装置。
3 . 前記処理データは、 ビデオデータまたは字幕データである 請求の範囲 1に記載のデータ処理装置。
4 . 前記設定部は、 前記表示時間の情報を取得した際に、 取得された 前記表示時間の情報により得られる値を.、 前記アクセスュニットの直 後のアクセスュニッ卜の表示を開始するタイミングで加算して、 前記 変数を設定する
請求の範囲 1に記載のデータ処理装置。
5 .. 前記設定部は、 前記表示時間の情報を取得した際に、 取得された 前記表示時間の情報により得られる値を、 前記アクセスュニッ卜の直 後のアクセスュニッ卜の表示を開始するタイミングで加算して、 前記 変数を設定する
請求の範囲 1に記載のデータ処理装置。
6 . 所定のアクセスュニッ卜に対して所定のマ一クタイムスタンプの 時刻で所定の処理を施すように構成されたマーク処理部をさらに備え 前記設定部は、 前記所定のアクセスュニッ トに対して所定の処理を 施すマークタイムスタンプの時刻が、 前記計時部により計時されてい る時刻から、 前記表示時間内の時刻であるとき、 前記計時部により計 時されている時刻が前記マークタイムスタンプの時刻となっているこ とを前記マーク処理部に対して通知し、 前記マーク処理部は、 前記通 知に基づいて、 前記所定のアクセスュニッ トに対して所定の処理を施 す
請求の範囲 1に記載のデータ処理装置。
7 . 前記マークタイムスタンプの時刻の最小間隔は、 前記アクセスュ ニッ トの最大表示時間である
請求の範囲 6に記載のデータ処理装置。
8 . 処理データを所定のアクセスュニッ ト毎に処理するデータ処理方 法において、
所定の変数を用いて時刻を計時する計時ステツプと、
アクセスュニッ トのタイムスタンプの有無を検出し、 前記アクセス ュニッ 卜にタイムスタンプがある場合、 前記タイムスタンプの値を前 記変数に代入し、 前記アクセスュニッ 卜にタイムスタンプがない場合 、 前記表示時間の情報を取得し、 取得された前記表示時間の情報によ り得られる値を加算して、 前記変数を設定する設定ステップと を含むデータ処理方法。
9 . 処理データを所定のアクセスュニッ ト毎に処理するデ一夕処理プ ログラムが記録されたプログラム記録媒体において、
所定の変数を用いて時刻を計時する計時ステツプと、
アクセスュニッ 卜のタイムスタンプの有無を検出し、 前記アクセス ュニッ 卜にタイムスタンプがある場合、 前記タイムスタンプの値を前 記変数に代入し、 前記アクセスュニッ 卜にタイムスタンプがない Λ合 、 前記表示時間の情報を取得し、 取得された前記表示時間の情報によ り得られる値を加算して、 前記変数を設定する設定ステップと を含むプログラムが記録されたプログラム記録媒体。
1 0 . 処理データを所定のアクセスュニッ 卜毎に処理するデータ処理 プログラムにおいて、
所定の変数を用いて時刻を計時する計時ステップと、
アクセスュニッ トのタイムスタンプの有無を検出し、 前記アクセス ユニッ トにタイムスタンプがある場合、 前記タイムスタンプの値を前 記変数に代入し、 前記アクセスュニッ 卜にタイムスタンプがない場合 、 前記表示時間の情報を取得し、 取得された前記表示時間の情報によ り得られる値を加算して、 前記変数を設定する設定ステップと を含む処理をコンピュータに実行させるプログラム。
1 1 . 所定の変数を用いて時刻を計時するように構成された計時部と 処理データが所定のアクセスュニッ ト.毎に処理される際に、 ァクセ スュニッ トのタイムスタンプの有無を検出し、 前記アクセスュニッ ト にタイムスタンプがある場合、 前記タイムスタンプの値を前記変数に 代入し、 前記アクセスユニッ トにタイムスタンプがない場合、 前記表 示時間の情報を取得し、 取得された前記表示時間の情報により得られ る値を加算して、 前記変数を設定するように構成された設定部と、 所定のアクセスュニッ トに対して所定のマークタイムスタンプの時 刻で所定の処理を施すように構成されたマーク処理部と
を備えるデータ処理装置により読み出されるデ一夕を記録するデー 夕記録媒体であって、 前記所定のアクセスュニッ卜に対して所定の時刻で所定の処理を施 すマークタイムスタンプを含むデ一夕が記録され、
前記マークタイムスタンプの時刻の最小間隔が、 前記アクセスュニ ッ卜の最大表示時間である
データ記録媒体。
1 2 . 所定の変数を用いて時刻を計時するように構成された計時部と 処理データが所定のアクセスュニッ卜毎に処理される際に、 ァクセ スュニッ 卜のタイムスタンプの有無を検出し、 前記アクセスュニット にタイムスタンプがある場合、 前記タイムスタンプの値を前記変数に 代入し、 前記アクセスユニットにタイムスタンプがない場合、 前記表 示時間の情報を取得し、 取得された前記表示時間の情報により得られ る値を加算して、 前記変数を設定するように構成された設定部と、 所定のアクセスュニットに対して所定のマークタイムスタンプの時 刻で所定の処理を施すように構成されたマーク処理部と
を備えるデータ処理装置により読み出されるデータのデ一夕構造で あって、 ,
前記所定のアクセスュニッ卜に対して所定の時刻で所定の処理を施 すマークタイムスタンプを含み、
前記マ一クタイムスタンプの時刻の最小間隔が、 前記アクセスュニ ットの最大表示時間である
つ "―夕構造。
PCT/JP2005/021070 2004-12-02 2005-11-10 データ処理装置およびデータ処理方法、プログラムおよびプログラム記録媒体、データ記録媒体、並びにデータ構造 WO2006059482A1 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
US11/720,630 US8346059B2 (en) 2004-12-02 2005-11-10 Data processing device, data processing method, program, program recording medium, data recording medium, and data structure
CN2005800476816A CN101111897B (zh) 2004-12-02 2005-11-10 数据处理装置和数据处理方法
CA2588198A CA2588198C (en) 2004-12-02 2005-11-10 Data processing apparatus, data processing method, program, program record medium, data record medium, and data structure
EP05803958A EP1818931A4 (en) 2004-12-02 2005-11-10 DATA PROCESSING DEVICE, DATA PROCESSING METHOD, PROGRAM RECORDING MEDIUM, DATA RECORDING MEDIUM E DATA STRUCTURE

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2004-350486 2004-12-02
JP2004350486A JP4536497B2 (ja) 2004-12-02 2004-12-02 データ処理装置およびデータ処理方法、プログラムおよびプログラム記録媒体、並びにデータ記録媒体

Publications (2)

Publication Number Publication Date
WO2006059482A1 true WO2006059482A1 (ja) 2006-06-08
WO2006059482A9 WO2006059482A9 (ja) 2006-09-14

Family

ID=36564917

Family Applications (1)

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

Country Status (8)

Country Link
US (1) US8346059B2 (ja)
EP (1) EP1818931A4 (ja)
JP (1) JP4536497B2 (ja)
KR (1) KR20070093970A (ja)
CN (1) CN101111897B (ja)
CA (1) CA2588198C (ja)
TW (1) TW200630973A (ja)
WO (1) WO2006059482A1 (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080025691A1 (en) * 2006-07-31 2008-01-31 Sharp Kabushiki Kaisha Content reproduction apparatus, content reproduction method, content reproduction system, content data sending apparatus, content data sending method, program, and storage medium
CN102957966B (zh) * 2011-08-19 2016-03-16 深圳市快播科技有限公司 一种播放器及用于播放器的视频帧内嵌时间的方法
US10893056B2 (en) * 2015-09-30 2021-01-12 Nokia Technologies Oy Message verification
CN107329156A (zh) * 2017-06-05 2017-11-07 千寻位置网络有限公司 一种卫星数据的处理方法及系统、定位终端、存储器
WO2019014229A1 (en) * 2017-07-10 2019-01-17 Ubiquiti Networks, Inc. PORTABLE VIDEO CAMERA MEDALLION WITH CIRCULAR DISPLAY
WO2020159994A1 (en) * 2019-01-28 2020-08-06 Op Solutions, Llc Online and offline selection of extended long term reference picture retention
CN111170110B (zh) * 2020-02-28 2021-04-30 深圳市通用互联科技有限责任公司 电梯数据处理方法、装置、计算机设备和存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10320914A (ja) * 1997-05-15 1998-12-04 Sanyo Electric Co Ltd 符号記録装置、符号多重方法
JP2002171490A (ja) * 1999-05-07 2002-06-14 Toshiba Corp ストリームデータのデータ構造、その記録方法およびその再生方法

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5815634A (en) 1994-09-30 1998-09-29 Cirrus Logic, Inc. Stream synchronization method and apparatus for MPEG playback system
JP3248380B2 (ja) * 1994-12-15 2002-01-21 ソニー株式会社 データ復号化装置およびデータ復号化方法
TW293981B (ja) * 1995-07-21 1996-12-21 Philips Electronics Nv
KR100247978B1 (ko) 1997-08-08 2000-03-15 윤종용 픽쳐 디코딩 동기화 회로 및 그 방법
JP3805985B2 (ja) * 1999-02-18 2006-08-09 株式会社東芝 ストリームデータの情報記憶媒体、その記録方法、再生方法、記録装置および再生装置
WO2000068946A1 (fr) * 1999-05-07 2000-11-16 Kabushiki Kaisha Toshiba Structure de donnees pour donnees en continu, et procede d'enregistrement et de reproduction de donnees en continu
JP2003230092A (ja) * 2002-02-04 2003-08-15 Sony Corp 情報処理装置および方法、プログラム格納媒体、並びにプログラム
TWI478154B (zh) * 2003-10-04 2015-03-21 Samsung Electronics Co Ltd 儲存搜尋資訊的再生方法
US7415470B2 (en) * 2004-08-12 2008-08-19 Oracle International Corporation Capturing and re-creating the state of a queue when migrating a session

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10320914A (ja) * 1997-05-15 1998-12-04 Sanyo Electric Co Ltd 符号記録装置、符号多重方法
JP2002171490A (ja) * 1999-05-07 2002-06-14 Toshiba Corp ストリームデータのデータ構造、その記録方法およびその再生方法

Non-Patent Citations (1)

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

Also Published As

Publication number Publication date
KR20070093970A (ko) 2007-09-19
CA2588198A1 (en) 2006-06-08
TW200630973A (en) 2006-09-01
CN101111897B (zh) 2012-12-26
WO2006059482A9 (ja) 2006-09-14
US8346059B2 (en) 2013-01-01
EP1818931A1 (en) 2007-08-15
CN101111897A (zh) 2008-01-23
EP1818931A4 (en) 2012-08-08
JP2006164336A (ja) 2006-06-22
US20090142043A1 (en) 2009-06-04
JP4536497B2 (ja) 2010-09-01
TWI331747B (ja) 2010-10-11
CA2588198C (en) 2013-01-08

Similar Documents

Publication Publication Date Title
KR100825548B1 (ko) 정보 기록 매체, 데이터 분별 장치, 및 데이터 재생 장치
KR100869605B1 (ko) 정보 기록 매체 및 데이터 재생 장치
US8160422B2 (en) Data recording device, data recording method, data processing device, data processing method, program, program recording medium, data recording medium, and data structure
US8326117B2 (en) Data recording device, data recording method, data processing device, data processing method, program, program recording medium, data recording medium, and data structure
JP2022136168A (ja) 再生装置、及び、再生方法
WO2005122569A1 (ja) データ処理装置およびデータ処理方法、プログラムおよびプログラム記録媒体、データ記録媒体、ならびに、データ構造
WO2006059482A1 (ja) データ処理装置およびデータ処理方法、プログラムおよびプログラム記録媒体、データ記録媒体、並びにデータ構造
WO2005122175A1 (ja) データ処理装置およびデータ処理方法、プログラムおよびプログラム記録媒体、データ記録媒体、ならびに、データ構造
US20080043775A1 (en) Data Processing Device, Data Processing Method, Program, Program Recording Medium, and Data Structure
US8107796B2 (en) Data processing device, data processing method, program, program recording medium, data recording medium, and data structure
KR20070032030A (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 KN KP KR KZ LC LK LR LS LT LU LV LY 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): 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 LV 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
REEP Request for entry into the european phase

Ref document number: 2005803958

Country of ref document: EP

WWE Wipo information: entry into national phase

Ref document number: 2005803958

Country of ref document: EP

WWE Wipo information: entry into national phase

Ref document number: 3569/DELNP/2007

Country of ref document: IN

WWE Wipo information: entry into national phase

Ref document number: 2588198

Country of ref document: CA

WWE Wipo information: entry into national phase

Ref document number: 11720630

Country of ref document: US

Ref document number: 1020077012469

Country of ref document: KR

NENP Non-entry into the national phase

Ref country code: DE

WWE Wipo information: entry into national phase

Ref document number: 200580047681.6

Country of ref document: CN

WWP Wipo information: published in national office

Ref document number: 2005803958

Country of ref document: EP