JPWO2006059661A1 - 再生装置、画像合成方法、画像合成プログラム及び集積回路 - Google Patents

再生装置、画像合成方法、画像合成プログラム及び集積回路 Download PDF

Info

Publication number
JPWO2006059661A1
JPWO2006059661A1 JP2006547988A JP2006547988A JPWO2006059661A1 JP WO2006059661 A1 JPWO2006059661 A1 JP WO2006059661A1 JP 2006547988 A JP2006547988 A JP 2006547988A JP 2006547988 A JP2006547988 A JP 2006547988A JP WO2006059661 A1 JPWO2006059661 A1 JP WO2006059661A1
Authority
JP
Japan
Prior art keywords
image
plane
application
title
playlist
Prior art date
Legal status (The legal status 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 status listed.)
Granted
Application number
JP2006547988A
Other languages
English (en)
Other versions
JP4949853B2 (ja
Inventor
敏史 橋本
敏史 橋本
大蘆 雅弘
雅弘 大蘆
岡田 智之
智之 岡田
航 池田
航 池田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Panasonic Corp
Panasonic Holdings Corp
Original Assignee
Panasonic Corp
Matsushita Electric Industrial Co Ltd
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 Panasonic Corp, Matsushita Electric Industrial Co Ltd filed Critical Panasonic Corp
Priority to JP2006547988A priority Critical patent/JP4949853B2/ja
Publication of JPWO2006059661A1 publication Critical patent/JPWO2006059661A1/ja
Application granted granted Critical
Publication of JP4949853B2 publication Critical patent/JP4949853B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/76Television signal recording
    • H04N5/91Television signal processing therefor
    • H04N5/93Regeneration of the television signal or of selected parts thereof
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N9/00Details of colour television systems
    • H04N9/79Processing of colour television signals in connection with recording
    • H04N9/80Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback
    • H04N9/804Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback involving pulse code modulation of the colour picture signal components
    • H04N9/8042Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback involving pulse code modulation of the colour picture signal components involving data reduction
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B2220/00Record carriers by type
    • G11B2220/20Disc-shaped record carriers
    • G11B2220/25Disc-shaped record carriers characterised in that the disc is based on a specific recording technology
    • G11B2220/2537Optical discs
    • G11B2220/2541Blu-ray discs; Blue laser DVR discs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/76Television signal recording
    • H04N5/84Television signal recording using optical recording
    • H04N5/85Television signal recording using optical recording on discs or drums
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N9/00Details of colour television systems
    • H04N9/79Processing of colour television signals in connection with recording
    • H04N9/80Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback
    • H04N9/804Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback involving pulse code modulation of the colour picture signal components
    • H04N9/806Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback involving pulse code modulation of the colour picture signal components with processing of the sound signal
    • H04N9/8063Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback involving pulse code modulation of the colour picture signal components with processing of the sound signal using time division multiplex of the PCM audio and PCM video signals
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N9/00Details of colour television systems
    • H04N9/79Processing of colour television signals in connection with recording
    • H04N9/80Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback
    • H04N9/82Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback the individual colour picture signal components being recorded simultaneously only
    • H04N9/8205Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback the individual colour picture signal components being recorded simultaneously only involving the multiplexing of an additional signal and the colour video signal
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N9/00Details of colour television systems
    • H04N9/79Processing of colour television signals in connection with recording
    • H04N9/80Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback
    • H04N9/82Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback the individual colour picture signal components being recorded simultaneously only
    • H04N9/8205Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback the individual colour picture signal components being recorded simultaneously only involving the multiplexing of an additional signal and the colour video signal
    • H04N9/8227Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback the individual colour picture signal components being recorded simultaneously only involving the multiplexing of an additional signal and the colour video signal the additional signal being at least another television signal

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)
  • Television Signal Processing For Recording (AREA)

Abstract

記録媒体に記録されているアプリケーションを実行しながら、当該記録媒体に記録されている動画を再生する再生装置において、アプリケーションに関連する画像と動画像を合成する際のメモリバスの利用効率を高めることを目的とする。アプリケーションによって使用される動画やメニューなどのGUIのグラフィックの背景に用いる背景画像を合成するかどうかを動画像が背景画像全体を覆うかどうかの判断によって決定する。動画像が背景画像を覆う場合に背景画像を合成する必要がなくなるので、背景画像を読み出すために用いるメモリバスを、記録媒体から読み出された動画データをメモリへに書き込む事などに用いることができ、メモリバスバンド幅を有効活用できる。

Description

本発明は、動画を再生しながらアプリケーションを実行する再生装置に関し、画像を合成する際におけるメモリバスの活用方法に関する発明である。
近年DVD(Digital Versatile Disc)プレーヤ、BD(Blu−ray Disc)プレーヤなどの映像再生装置が開発されている。これらのプレーヤでは、DVD、BDなどの記録媒体から動画ストリームデータを読み出して動画を再生することができる。このとき動画を再生しながら、記録媒体に記録されているアプリケーションを実行することもあり、動画とは別にアプリケーションに関連する画像も表示することがある。例えば、動画の横位置に動画に係るメニューGUI(Graphical User Interface)などの表示、あるいは字幕の表示などがこれにあたる。
このとき、プレーヤは動画と、アプリケーションにより表示制御される画像とを合成して表示すべき画像データを生成してディスプレイに表示させている。この合成される基となるデータは逐次、記録媒体から読み出され、一旦プレーヤのメモリのそれぞれ対応する領域に書き込まれる。そしてプレーヤは、そのメモリから画像データを読み出し、合成して出力するということを行っている。ここで、プレーヤのメモリのそれぞれに対応する領域とは、メモリにおいて、動画の画像データを格納するビデオプレーン、動画と共に表示するGUIメニューの画像データを格納するIG(Interactive Graphics)プレーンなどのことである。プレーヤは画像を合成する際には各プレーンにアクセスする必要がある。
プレーヤにおいては合成画像を生成する際に高速で各プレーンにアクセスする必要があり、遅延することなく動画を再生するためには当該アクセスにおけるメモリバスの有効活用は重要な課題となる。
メモリへの書き込みに係る技術が特許文献1に記載されており、この技術によれば、あるGUIオブジェクトにおいて再描画が発生した場合に、修復する必要がある領域を決定するチェック手段、及び、再描画する必要があるオブジェクトを決定する生成手段とによって、メモリへの不必要な書き込みを抑制するので、書き込みが抑制された分だけメモリバスバンド幅を有効に活用することができる。
日本国特許公開2004−102343号公報
ところで上述したようにプレーヤはプレーンへの書き込みと読み出しを行っているが、メモリへの書き込みと読み出しに用いるメモリバスは、コストや設置スペースの問題から共有化されている。例えばHD画質(1920×1080ピクセル)の画像を表示しようとする場合において、動画像の書き込みにおいて用いるメモリバスバンド幅は、2B/ピクセル、30fpsとすると約120MB/sec(1920×1080×2×30)、読み出しの場合にも同様に約120MB/secの性能を要求されることになる。また、背景画像の書き込みや読み出しについては夫々約120MB/sec、GUIなどのメニューなどのグラフィックスの書き込みや読み出しについては、4B/ピクセル、30fpsとすると夫々約240MB/sec(1920×1080×4×30)のメモリバスバンド幅を要求される。また、字幕がある場合には、このデータもメモリに書き込んで読み出す必要があり、やはり夫々約120MB/secのメモリバス幅を要求される。動画再生時には、読み出しと書き込みが平行して行われるので、これらのプレーンの画像データを合成するために2GB/sec近くの帯域が必要となってくる。これからも画質の高品質化によって更なるメモリバスバンド幅が必要となることが見込まれているが、同時にこれはプレーヤの低価格化を妨げる一要因にもなっている。
そこで本発明においては、画像データの読み出しに用いられるメモリバスバンド幅の有効活用を図るために資することができる新たな再生装置を提供することを目的とする。
上記課題を解決するため、本発明に係る再生装置は、動画像を格納するためのビデオプレーンと、GUIとして表示する画像であるGUI画像を格納するためのイメージプレーンと、背景画像を格納するためのスチルプレーンとのメモリ領域を有する記憶手段と、前記ビデオプレーンに動画像を格納する動画像格納手段と、前記イメージプレーンに前記GUI画像を格納するイメージ格納手段と、前記スチルプレーンに前記背景画像を格納する背景画像格納手段と、前記動画像が前記背景画像を遮蔽できる所定のサイズである場合に、前記背景画像を読み出さず、前記動画像と前記GUI画像とを読み出し、重畳して合成した合成画像を表す画像信号を出力し、前記動画像が前記所定のサイズでない場合に、前記動画像と前記GUI画像と前記背景画像とを読み出し、重畳して合成した合成画像を表す画像信号を出力する合成出力手段とを備えることを特徴としている。
上記の構成を備えた再生装置は、背景画像を必要としないとき、即ち、動画像が背景画像を覆ってしまうときには背景画像を合成する必要がないためメモリから読み出す必要がなくなるので、そのときには背景画像のデータは読み出さないようにする。動画像が背景画像を覆う所定のサイズ例えばフルスクリーンサイズで表示されるときには、背景画像を読み出さないようにすることで再生装置の負担は軽くなり、また読み出しに用いるメモリバスバンド幅があくことになる。
こうして、必要のない背景画像の読み出しを制限することで、背景画像の読み出しに用いていたメモリバスを他の目的、例えばGUI画像のメモリへの書き込みなどに用いることができるので、メモリバスバンド幅を有効活用でき、ディスプレイへの表示の遅延といった問題も軽減できるようになる。
通常、合成するプレーンは同サイズのプレーンを重畳して合成するが、動画像は元のフルスクリーンサイズからサイズを変更して表示する場合、即ち背景画像を覆い隠さない場合もあり、このときには背景画像は必要になるので合成する。
上述したようなHD画質の場合において、再生装置が背景画像の読み出しに用いる120MB/sec分のメモリバスバンド幅を、例えば動画の書き込みに用いれば動画の書き込みの速度が倍になると言え、読み出し時に動画のデータが書き込まれておらず読出しができなかったために動画の再生が遅延するといった事態を防げる。
また、前記所定のサイズとは前記動画像が表示画面においてフルスクリーンで表示されるサイズのことであり、前記再生装置は更に、前記動画像に係るアプリケーションを実行する仮想マシン部を備え、前記合成出力手段は、前記アプリケーションの前記ビデオプレーンに対する縮小指示を受けて、前記背景画像を合成し、縮小指示がない場合には、前記背景画像を合成しないこととしてよい。
ここでフルスクリーンとは、再生装置に接続されている外部機器のテレビなどに代表される表示装置、若しくは内蔵されているモニターなどにおいて、その表示画面全体を覆うサイズのことである。
再生装置は、実行しているアプリケーションの指示に基づき動画像のサイズ変更を行っており、当該変更指示は通常ビデオプレーンに対してのみなされるが、この指示を受けて合成出力手段は、スチルプレーンからのデータの読み出しを実行するかどうかを判断する。この構成を備えることでスチルプレーンからのデータの出力の必要性の判断を容易に行うことができる。
また、前記スチルプレーンは、更に、前記動画像とは異なる時間に応じて切り替わる画像を格納するためのものであって、前記再生装置は更に、前記スチルプレーンに前記時間に応じて切り替わる画像を格納する画像格納手段を備え、前記合成出力手段は、前記動画像が表示画面においてフルスクリーンで表示されるサイズである場合に、前記ビデオプレーンに格納された動画像と前記イメージプレーンに格納されたGUI画像と前記スチルプレーンに格納された時間に応じて切り替わる画像とを読み出し、重畳して合成した合成画像を表す画像信号を出力し、前記動画像がフルスクリーンで表示されるサイズでない場合に、前記ビデオプレーンに格納された動画像と前記イメージプレーンに格納されたGUI画像と前記スチルプレーンに格納された背景画像とを読み出し、重畳し合成した合成画像を表す画像信号を出力することとしてよい。
ここで、時間に応じて切り替わる画像とは、動画像格納手段で格納する動画とは異なる画像であって、かつ時間に応じて表示内容が異なるものであり、例えば字幕を表示するための画像などのことをいう。
これにより、記憶手段において、従来通常スチルプレーンと字幕を格納するための字幕プレーンとに別々に用意されたメモリ領域が共用されることによってプレーン一つ分のメモリ領域が空くことになり、空いたメモリ領域は他のデータの記憶に割り当てることができるようになるので、メモリを有効に活用できる。また、従来のようにスチルプレーンと字幕プレーンがある場合に比べてプレーン一つ分減少しており、当然にプレーン一つ減少した分だけアクセスするメモリバスバンド幅も少なくてすむ。
また、前記合成出力手段及び前記各格納手段は、前記記憶手段に接続されているメモリバスを共有しており、前記イメージ格納手段は、前記合成出力手段がスチルプレーンの読み出しを行わないと判断した場合に、スチルプレーンの読み出しに割り当てられている前記メモリバスの帯域又は時間を、イメージプレーンへの書き込みに用いることとしてよい。
これにより、再生装置は、背景画像の読み出しにあてられていたメモリバスバンド幅をイメージプレーンへの書き込みに用い、有効にメモリバスバンド幅を利用できると言える。イメージプレーンへの書き込みに関しては、GUI画像は動画像や背景画像と比して高品質であるため、その書き込みに要する時間が長くなったり、メモリバスバンド幅が広くなったりするが、スチルプレーンからのデータの読み出しに用いる予定であったメモリバスをイメージプレーンへの書き込みに用いることで高速化することができる。
また、動画像を格納するためのビデオプレーンと、GUIとして表示する画像であるGUI画像を格納するためのイメージプレーンと、背景画像を格納するためのスチルプレーンとのメモリ領域を有する記憶手段を備える再生装置における、画像を合成する画像合成方法であって、前記ビデオプレーンに動画像を格納する動画像格納ステップと、前記イメージプレーンに前記GUI画像を格納するイメージ格納ステップと、前記スチルプレーンに前記背景画像を格納する背景画像格納ステップと、前記動画像が前記背景画像を完全に遮蔽できる所定のサイズである場合に、前記背景画像を読み出さず、前記動画像と前記GUI画像とを読み出し、重畳して合成した合成画像を表す画像信号を出力し、前記動画像が前記所定のサイズでない場合に、前記動画像と前記GUI画像と前記背景画像とを読み出し、重畳して合成した合成画像を表す画像信号を出力する合成出力ステップとを含むこととしてよい。
この方法を実行することで、再生装置は、必要でない場合にスチルプレーンからのデータの読み出しを行わないのでメモリバスバンド幅をその分だけ開けることができる。
また、動画像を格納するためのビデオプレーンと、GUIとして表示する画像であるGUI画像を格納するためのイメージプレーンと、背景画像を格納するためのスチルプレーンとのメモリ領域を有する記憶手段を備える再生装置のコンピュータに画像を合成させるための処理手順を示した画像合成プログラムであって、前記ビデオプレーンに動画像を格納する動画像格納ステップと、前記イメージプレーンに前記GUI画像を格納するイメージ格納ステップと、前記スチルプレーンに前記背景画像を格納する背景画像格納ステップと、前記動画像が前記背景画像を完全に遮蔽できる所定のサイズである場合に、前記背景画像を読み出さず、前記動画像と前記GUI画像とを読み出し、重畳して合成した合成画像を表す画像信号を出力し、前記動画像が前記所定のサイズでない場合に、前記動画像と前記GUI画像と前記背景画像とを読み出し、重畳して合成した合成画像を表す画像信号を出力する合成出力ステップとを含むこととしてよい。
このプログラムを再生装置のコンピュータが実行することで、再生装置は、必要でない場合にスチルプレーンからのデータの読み出しを行わなくなるのでメモリバスバンド幅をその分だけ開けることができる。
また、画像を合成して出力する再生装置に搭載される集積回路であって、動画像を格納するためのビデオプレーンと、GUIとして表示する画像であるGUI画像を格納するためのイメージプレーンと、背景画像を格納するためのスチルプレーンとのメモリ領域を有する記憶手段と、前記ビデオプレーンに動画像を格納する動画像格納手段と、前記イメージプレーンに前記GUI画像を格納するイメージ格納手段と、前記スチルプレーンに前記背景画像を格納する背景画像格納手段と、前記動画像が前記背景画像を完全に遮蔽できる所定のサイズである場合に、前記背景画像を読み出さず、前記動画像と前記GUI画像とを読み出し、重畳して合成した合成画像を表す画像信号を出力し、前記動画像が前記所定のサイズでない場合に、前記動画像と前記GUI画像と前記背景画像とを読み出し、重畳して合成した合成画像を表す画像信号を出力する合成出力手段とを備えることとしてよい。
この集積回路を搭載することで再生装置は、必要でない場合にスチルプレーンからのデータの読み出しを行わないのでメモリバスバンド幅をその分だけ開けることができる。
本発明に係る再生装置の使用行為を示す図である。 実施の形態1に係る再生装置100の機能構成を示したブロック図である。 ソフトウェアとハードウェアとからなる部分をレイア構成に置き換えて描いた図である。 Java(登録商標)仮想マシン36の機能構成を示した図である。 BD−ROM110に格納されているデータのディレクトリ構造を示した図である。 拡張子.m2tsが付与されたファイルがどのように構成されているかを模式的に示した図である。 Clip情報の構成を示した図である。 映画のビデオストリームに対するEP_map設定を示す図である。 Playlist情報のデータ構造を示した図である。 AVClipと、PlayList情報との関係を示す図である。 Playlist情報に含まれるSTNテーブルを示した図である。 (a)〜(d)は、entry−attributeの詳細を示す図である。 PlayList情報の、PlayListMark情報の内部構成を示す図である。 PlayList情報の、PlayListMark情報によるチャプター位置の指定を示す図である。 BD−J Objectの内部構成を示す図である。 アーカイブファイルにより収められているプログラム、データを示す図である。 (a)は、アプリケーション管理テーブルの内部構成を示す図である。(b)は、アプリケーション管理テーブルを構成する情報要素の意味内容を示す図である。 ディスクコンテンツにおける状態遷移を示す図である。 (a)は、BD−ROM全体の時間軸を示す図である。(b)は、BD−ROM全体の時間軸における構成を示す図である。 (a)(b)BD−ROM全体の時間軸において、BD−J Objectから特定されるタイトル再生区間を示す図である。 図20(b)の時間軸上に規定される、生存区間の典型を示す図である。 本編タイトル、オンラインショッピングタイトル、ゲームタイトルという3つのタイトルを含むディスクコンテンツを示す図である。 (a)(b)アプリケーション管理テーブル、生存区間の一例を示す図である。 起動属性がとり得る三態様(Present、AutoRun、Suspend)と、直前タイトルにおけるアプリケーション状態の三態様(非起動、起動中、Suspend)とがとりうる組合せを示す図である。 (a)は、プレイリスト管理テーブルの内部構成を示す図である。(b)は、プレイリスト管理テーブルを構成する情報要素の意味内容を示す図である。 プレイリスト管理テーブル、アプリケーション管理テーブルにより規定されるタイトルの具体例を示す。 カレントタイトルがとり得る三態様(プレイリスト管理テーブル無し、プレイリスト管理テーブル有りで尚且つ無指定、プレイリスト管理テーブル有りで尚且つAutoPlay)と、直前タイトルにおけるPLの状態(非再生状態、再生中状態)とがとりうる6通りの組合せを示す図である。 (a)は、プレイリスト管理テーブル及びアプリケーション管理テーブルの記述例を示す図である。(b)は、図27(a)のように記述されたアプリケーション管理テーブル、プレイリスト管理テーブルによりプレイリスト再生、アプリケーション実行がどのように進行するかを示す図である。 (a)は、プレイリスト管理テーブルの他の記述例を示す図である。(b)は、図28(a)のケースに基づくアプリケーション実行及びプレイリスト再生の進行を示す図である。 スチルプレーンを合成するかどうかを判断する再生装置100の動作を示すフローチャートである。 実施の形態2における再生装置100の機能構成を示したブロック図である。 実施の形態2においてアプリケーションの指示にビデオスケーリングの指示に基づいてStillプレーン並びにPGプレーンからのデータの出力制御の流れを示したフローチャートである。
符号の説明
1 BD−ROMドライブ
2 リードバッファ
3 デマルチプレクサ
4 ビデオデコーダ
5 ビデオプレーン
6 サウンドプロセッサ
7 サウンドプロセッサ
8 ミキサー
9 サウンドコントローラ
10 D/Aコンバータ
11 Interactive Graphicsデコーダ
12 Interactive Graphicsプレーン
13 Presentation Graphicsデコーダ
14 Presentation Graphicsプレーン
15 JPEGデコーダ
16 Stillプレーン
17 Stillプレーン制御部
18a、18b、18c 合成部
19 STC−DELTA付加部
20 ATC−DELTA付加部
21 ローカルストレージ
22 命令ROM
23 ユーザイベント処理部
24 PSRセット
25 CPU
26 シナリオメモリ
27 ローカルメモリ
28 PGプレーン制御部
100 再生装置
<実施の形態1>
以下、本発明の一実施形態である再生装置について図面を用いて説明する。
<構成>
<使用形態の構成>
まず、図1には再生装置の使用行為についての形態を示した。
図1に示すように、再生装置100は、BD−ROM110を装着してBD−ROM110に記録されている動画を再生して、有線若しくは無線で接続しているテレビ130に表示させる。また、再生装置100は、BD−ROM110に記録されているJava(登録商標)アプリケーションを実行し、当該アプリケーションに基づく画像も表示させる。
ユーザ操作を受けるためにリモコン120があり、当該リモコン130には、再生装置100を制御するための各種キーが搭載されている。この各種キーには、再生開始(Play)、再生停止(Stop)、一時停止(Pause On)、一時停止の解除(Pause Off)、Still機能の解除(still off)、速度指定付きの早送り(Forward Play(speed))、速度指定付きの巻戻し(Backward Play(speed))、音声切り換え(Audio Change)、副映像切り換え(Subtitle Change)、アングル切り換え(Angle Change)を受け付けるキーや、メニュー操作時にあたってのフォーカス移動操作を受け付けるMoveUpキー、MoveDownキー、MoveRightキー、MoveLeftキー、メニュー表示操作を受け付けるPop−upキー、数値入力を受け付けるNumericキーが含まれる。
以上が、本発明に係る再生装置100の使用行為の形態についての説明である。
<再生装置100のハードウェア構成>
次に、図2を用いて、再生装置100の機能構成について説明する。
本発明に係る再生装置100は、本図に示す内部構成に基づき、工業的に生産される。本発明に係る再生装置100は、主としてシステムLSI(Large Scale Integration)と、ドライブ装置という2つのパーツからなり、これらのパーツを装置のキャビネット及び基板に実装することで工業的に生産することができる。システムLSIは、再生装置の機能を果たす様々な処理部を集積した集積回路である。こうして生産される再生装置100は、BD−ROMドライブ1、リードバッファ2、デマルチプレクサ3、ビデオデコーダ4、ビデオプレーン5、サウンドプロセッサ6、サウンドプロセッサ7、ミキサー8、サウンドコントローラ9、D/Aコンバータ10、Interactive Graphicsデコーダ11、Interactive Graphicsプレーン12、Presentation Graphicsデコーダ13、Presentation Graphicsプレーン14、JPEGデコーダ15、Stillプレーン16、Stillプレーン制御部17、合成部18a、18b、18c、STC−DELTA付加部19、ATC−DELTA付加部20、ローカルストレージ21、命令ROM22、ユーザイベント処理部23、PSRセット24、CPU25、シナリオメモリ26、ローカルメモリ27を含んで構成される。
BD−ROMドライブ1は、BD−ROMのローディング/イジェクトを行い、BD−ROMに対するアクセスを実行する機能を有する。
リードバッファ2は、FIFO(First In First Out)メモリであり、BD−ROMから読み出されたTSパケットを順に格納した先に格納されたパケットから順次出力する機能を有する。
デマルチプレクサ(De−MUX)3は、リードバッファ2からSourceパケットを取り出して、このSourceパケットを構成するTSパケットをPESパケットに変換する機能を有する。そして変換により得られたPESパケットのうち、STN_Tableに記載されたものの中からPID(Packet IDentifier)をもつものをビデオデコーダ4、オーディオデコーダ6、Interactive Graphicsデコーダ11、Presentation Graphicsデコーダ13のいずれかに出力する機能も有する。Sourceパケット及び、STN_Tableの詳細に関しては後述する。
ビデオデコーダ4は、デマルチプレクサ3から出力された複数PESパケットを復号して非圧縮形式のピクチャを得てビデオプレーン5に書き込む機能を有する。
ビデオプレーン5は、非圧縮形式のピクチャを格納しておくためのプレーンである。プレーンとは、再生装置100において一画面分の画素データを格納しておくためのメモリ領域である。ビデオプレーンはビデオでコーダによって書き込まれたデータを格納し出力する機能を有する。ビデオプレーン5における解像度は1920×1080であり、このビデオプレーン5に格納されたピクチャデータは、16ビットのYUV値で表現された画素データにより構成される。ビデオプレーン5では、ビデオストリームにおける一フレーム毎の再生映像を、スケーリングすることができる。スケーリングとは、一フレーム毎の再生画像をビデオプレーン5全体の1/4(クオータという)、1/1(フルスケールという)のどちらかに変化させることである。かかるスケーリングを、BD−JモードにおいてCPU25からの指示に従い実行するので、ビデオストリームの再生画像を、画面の隅に追いやったり、全面的に出すという画面演出が可能になる。
サウンドプロセッサ6は、オーディオストリームを構成するPESパケットをPIDフィルタ3が出力した際、このPESパケットを格納しておく機能を有するオーディオバッファ6aと、このバッファに格納されたPESパケットをデコーダして、PCM(Pulse Code Modulation)状態のオーディオデータを出力する機能を有するオーディオデコーダ6bとを含む。
サウンドプロセッサ7は、BD−ROMから読み出されたファイルsound.bdmvをプリロードしておく機能を有するプリロードバッファ7aと、プリロードされたファイルsound.bdmvにおける複数のサウンドデータのうち、CPU25により指示されたものをデコードして、PCM状態のオーディオデータを出力する機能を有するオーディオデコーダ7bとを含む。プリロードバッファ7aへのプリロードは、BD−ROMの装填時やタイトル切替時に行うことが望ましい。何故なら、AVClipの再生中にファイルsound.bdmvを読み出そうとすると、AVClipとは別のファイルを読み出すための光ピックアップのシークが発生するからである。一方、BD−ROMの装填時やタイトル切替時には、AVClipの再生が継続していることは希なので、かかるタイミングにファイルsound.bdmvを読み出すことにより、AVClip再生が途切れないことを、保証することができる。
サウンドミキサ8は、サウンドプロセッサ6、及び、サウンドプロセッサ7から出力されるPCM状態のサウンドデータをミキシングする機能を有する。
サウンドコントローラ9は、サウンドミキサ8から出力された展開された状態のオーディオデータ、及び、サウンドプロセッサ6を介さずに圧縮された状態のオーディオデータのうち、どちらを出力するか切り換える機能を有する。圧縮された状態のオーディオデータを出力する場合は、その出力先の機器(テレビ)においてデコードされる。
D/A変換部10は、サウンドミキサ8から出力されるディジタルのオーディオデータをD/A変換して、アナログ音声を出力する機能を有する。
I−Graphicsデコーダ(IGデコーダ)11は、BD−ROM又はローカルストレージ21から読み出されたIGストリームをデコードして、非圧縮グラフィクスをInteractive Graphicsプレーン12に書き込む機能を有する。
Interactive Graphics(IG)プレーン12には、HDMVモードにおいてI−Graphicsデコーダ11によるデコードで得られた非圧縮グラフィクスが書き込まれる。またBD−Jモードにおいて、アプリケーションにより描画された文字やグラフィクスが書き込まれる。
P−Graphicsデコーダ13は、BD−ROM又はローカルストレージ21から読み出されたPGストリームをデコードして、非圧縮グラフィクスをPresentation Graphics(PG)プレーン11に書き込む機能を有する。P−Graphicsデコーダ13によってデコードされ、Prensentation Graphicsプレーン11に書き込まれたデータが合成されることにより字幕が画面上に現れることになる。
Presentation Graphicsプレーン14は、一画面分の領域をもったメモリであり、一画面分の非圧縮グラフィクスを格納することができる。
JPEGデコーダ15は、BD−ROM又はローカルストレージ21に記録されているJPEGデータをデコードして、Stillプレーン16に書き込む機能を有する。
Stillプレーン16は、JPEGデータを展開することで得られた非圧縮のグラフィクスデータが格納されるプレーンである。このグラフィクスデータは、Java(登録商標)アプリが描画する、GUIフレームワークのいわゆる“壁紙”として用いられる。
Stillプレーン制御部17は、Stillプレーン16からのデータの出力を制御する機能を有する。具体的には、CPU25からVideoプレーン5に対するスケーリング指示を受けて、当該スケーリング指示がテレビ130の全体への表示指示であるフルスケールスケーリングである場合に、Stillプレーン16からのデータの読み出しを抑止する。そして、スケーリング指示がフルスケールの1/4であるクォータスケーリングである場合には、Stillプレーン16から合成部18cに対して格納しているスチルデータを出力させる。
合成部18a、b、cは、Interactive Graphicsプレーン12に格納されているデータと、Presentation Graphicsプレーン11に格納されているデータと、ビデオプレーン5に格納されているデータと、Stillプレーン16に格納されているデータとを夫々合成し、得られた合成画像の画像信号を出力する機能を有する。なお、プレーンから画像信号が出力されなかった場合には合成せずに出力されてきた信号をそのまま出力する。
STC_delta付加部18は、STC(System Time Clock)を生成する機能を有する。そしてSTC_Sequenceの切り換わり時において、それまでのSTC_SequenceにおけるSTC値(STC1)に、STC_deltaと呼ばれるオフセット値を加算することにより、新しいSTC_SequenceのSTC値(STC2)を求めて、それまでのSTC_SequenceにおけるSTC値(STC1)と、新しいSTC_SequenceのSTC値(STC2)とを連続した値にする。
先行STC_Sequenceにおいて最後に再生されるピクチャの表示開始時刻をPTS1(1stEND)、ピクチャの表示期間をTppとし、後続STC_Sequenceにおいて最初に表示されるピクチャの開始時刻をPTS2(2ndSTART)とした場合、STC_deltaは、
STC_delta=PTS1(1stEND)+Tpp−PTS2(2ndSTART)
として表現される。以上のようにSTC_deltaを求め、これが足し合わされたクロックの計数値を各デコーダに出力する。これにより各デコーダは、2つのSTC_Sequenceにあたるストリームを途切れなく再生してゆくことができる。以上のにより、1つのAVClipの中に、2以上のSTC_Sequenceが存在したとしても、また、連続して再生されるべき2以上のAVClipのそれぞれが、異なるSTC_Sequenceをもっていたとしても、これらのSTC_Sequence間のデコード処理を、シームレスに実行することができる。
なお、バッファリングの連続性をみたすには、以下の条件1)、2)を満たせば良い。
1)STC2(2ndSTART)>STC2(1stEND)をみたすこと。
2)TS1からのTSパケットの取り出しと、TS2からのTSパケットの取り出しとが、同じ時間軸に投影されたSTC1と、STC2とにより定義され、バッファのアンダーフローや、オーバーフローをもたらさないこと。
なお、1)においてSTC2(1stEND)は、STC1(1stEND)を、STC2の時間軸に投影した値であり、STC2(1stEND)=STC1(1stEND)−STC_deltaという計算式で与えられる。
ATC_delta付加部19は、ATC(Arrival Time Clock)を生成する機能を有する。そしてATC_Sequenceの切り換わり時において、それまでのATC_SequenceにおけるATC値(ATC1)に、ATC_deltaと呼ばれるオフセット値を加算することにより、それまでのATC_SequenceにおけるATC値(ATC1)と、新しいATC_SequenceのATC値(ATC2)とを連続した値にする。この加算により、ATC2=ATC1+ATC_deltaになる。ATC_deltaとは、これまで読み出されているトランスポートストリーム(TS1)の最後のTSパケットの入力時点T1から、新たに読み出されたトランスポートストリーム(TS2)の最初のTSパケットの入力時点T2までのオフセット値をいい、“ATC_delta≧N1/TS_recording_rate”という計算式で与えられる。ここで入力時点T2は、TS2の最初のTSパケットの入力時点を、TS1の時間軸上に投影した時点を意味する。またN1は、TS1の最後のビデオPESパケットに後続する、TSパケットのパケット数である。BD−ROMにおいてかかるATC_deltaは、Clip情報に記述されるので、これを用いることにより、ATC_deltaを計算することができる。以上の計算により、これまでのATC_SequenceがもっているATC値(ATC1)と、新たなATC_SequenceがもっているATC値(ATC2)とを、連続した値にすることができる。ATC_deltaが足し合わされたクロックの計数値をデマルチプレクサ(De−MUX)3に出力することで、シームレスなバッファ制御を実現することができる。
以上がAVClipの再生に係る構成要素である。続いてBD−Jモードでの動作に係る構成要素(ローカルストレージ21〜ローカルメモリ27)について説明する。
ローカルストレージ21は、webサイトからダウンロードされたコンテンツ等、BD−ROM以外の記録媒体、通信媒体から供給されたコンテンツを、メタデータと共に格納しておく機能を有するハードディスクである。このメタデータは、ダウンロードコンテンツをローカルストレージ21にバインドして管理するための情報であり、このローカルストレージ21をアクセスすることで、BD−Jモードにおけるアプリケーションは、ダウンロードコンテンツ長さを利用した様々な処理を行うことができる。
続いて、再生装置における統合制御を実現する構成要素(命令ROM22〜ローカルメモリ26)について説明する。
命令ROM22は、再生装置の制御を規定するソフトウェアを記憶している。
ユーザイベント処理部23は、リモコンや再生装置のフロントパネルに対するキー操作に応じて、その操作を行うユーザイベントをCPU25に出力する。
PSR(Player Status Register)セット24は、再生装置に内蔵されるレジスタであり、64個のPSRと、4096個のGPR(General Purpose Register)とからなる。Player Status Registerの設定値(PSR)のうち、PSR4〜PSR8は、現在の再生時点を表現するのに用いられる。
PSR4は、1〜100の値に設定されることで、現在の再生時点が属するタイトルを示し、0に設定されることで、現在の再生時点がトップメニューであることを示す。
PSR5は、1〜999の値に設定されることで、現在の再生時点が属するチャプター番号を示し、0xFFFFに設定されることで、再生装置においてチャプター番号が無効であることを示す。
PSR6は、0〜999の値に設定されることで、現在の再生時点が属するプレイリスト(カレントPL)の番号を示す。
PSR7は、0〜255の値に設定されることで、現在の再生時点が属するPlayItem(カレントPlay Item)の番号を示す。
PSR8は、0〜OxFFFFFFFFの値に設定されることで、45KHzの時間精度を用いて現在の再生時点(カレントPTM(Presentation TiMe))を示す。以上のPSR4〜PSR8により、図18(a)におけるBD−ROM全体の時間軸において、現在の再生時点はどこであるかを特定することができる。
CPU25は、命令ROM22に格納されているソフトウェアを実行して、再生装置全体の制御を実行する機能を有する。この制御の内容は、ユーザイベント処理部23から出力されたユーザイベント、及び、PSRセット24における各PSRの設定値に応じて動的に変化する。
シナリオメモリ26は、カレントのPL情報やカレントのClip情報を格納しておく機能を有するメモリである。カレントPL情報とは、BD−ROMに記録されている複数プレイリスト情報のうち、現在処理対象になっているものをいう。カレントClip情報とは、BD−ROMに記録されている複数Clip情報のうち、現在処理対象になっているものをいう。
ローカルメモリ27は、BD−ROMからの読み出しは低速である故、BD−ROMの記録内容を一時的に格納しておくためのキャッシュメモリである。かかるローカルメモリ27が存在することにより、BD−Jモードにおけるアプリケーション実行は、効率化されることになる。
以上が、本実施形態に係る再生装置のハードウェア構成である。
<再生装置100のソフトウェア構成>
続いて本実施形態に係る再生装置のソフトウェア構成について説明する。
図3には、ROM24に格納されたソフトウェアと、ハードウェアとからなる部分を、レイア構成に置き換えて描いた図である。本図に示すように、再生装置のレイア構成は、以下のa),b),c)からなる。つまり、
a)BD Player Deviceの第1階層、
b)BD Player Modelの第2階層、
c)Application Runtime Enviromentの第3階層からなる。
これらの階層のうち図3に示した再生装置のハードウェア構成は、第1階層に属することになる。本図の第1階層”BD Player Device”には、図2に示したハードウェア構成のうちビデオデコーダ4、I−Graphicsデコーダ11、オーディオデコーダ6等にあたる”デコーダ”と、ビデオプレーン5、Interactive Graphicsプレーン12等にあたる”プレーン”、BD−ROM110及びそのファイルシステム、ローカルストレージ21及びそのファイルシステムを含む。
第2階層”BD Player Model”は、以下のb1),b2)の層からなる。つまり、
b1)Virtual File System30及びPresentation Engine31の層
b2)Playback Control Engine32の層
からなり、自身より上位の階層に対し、ファンクションAPIを提供する。
第3階層”Application Runtime Enviroment”は、以下のc1),c2)の階層からなる。つまり、
c1)モジュールマネージャ34が存在する層、
c2)BD−Jプラットフォーム35が存在する層
からなる。
先ず初めに、第2層に属するVirtual File System30〜モジュールマネージャ34について説明する。
Virtual File System30は、ローカルストレージ21に格納されたダウンロードコンテンツを、BD−ROMにおけるディスクコンテンツと一体的に取り扱うための仮想的なファイルシステムである。ここでローカルストレージ21に格納されたダウンロードコンテンツは、SubClip、Clip情報、プレイリスト情報を含む。このダウンロードコンテンツにおけるプレイリスト情報はBD−ROM及びローカルストレージ21のどちらに存在するClip情報であっても、指定できる点で、BD−ROM上のプレイリスト情報と異なる。この指定にあたって、Virtual File System30上のプレイリスト情報は、BD−ROMやローカルストレージ21におけるファイルをフルパスで指定する必要はない。BD−ROM上のファイルシステムやローカルストレージ21上のファイルシステムは、仮想的な1つのファイルシステム(Virtual File System30)として、認識されるからである。故に、PlayItem情報におけるClip_Information_file_nameは、Clip情報の格納したファイルのファイルボデイにあたる5桁の数値を指定することにより、Virtual File System30、BD−ROM上のAVClipを指定することができる。Virtual File System30を介してローカルストレージ21の記録内容を読み出し、BD−ROMの記録内容と動的に組み合わせることにより、様々な再生のバリエーションを産み出すことができる。ローカルストレージ21と、BD−ROMとを組合せてなるディスクコンテンツは、BD−ROMにおけるディスクコンテンツと対等に扱われるので、本発明においてBD−ROMには、ローカルストレージ21+BD−ROMの組合せからなる仮想的な記録媒体をも含むことにする。
Presentation Engine31は、AV再生ファンクションを実行する。再生装置のAV再生ファンクションとは、DVDプレーヤ、CDプレーヤから踏襲した伝統的な機能群であり、再生開始(Play)、再生停止(Stop)、一時停止(Pause On)、一時停止の解除(Pause Off)、Still機能の解除(still off)、速度指定付きの早送り(Forward Play(speed))、速度指定付きの巻戻し(Backward Play(speed))、音声切り換え(Audio Change)、副映像切り換え(Subtitle Change)、アングル切り換え(Angle Change)といった機能である。AV再生ファンクションを実現するべく、Presentation Engine31は、リードバッファ2上に読み出されたAVClipのうち、所望時刻にあたる部分のデコードを行うよう、ビデオデコーダ4、P−Graphicsデコーダ13、I−Graphicsデコーダ10、オーディオデコーダ6を制御する。所望の時刻としてPSR8(カレントPTM)に示される箇所のデコードを行わせることにより、AVClipにおいて、任意の時点を再生を可能することができる。
再生制御エンジン(Playback Control Engine(PCE))32は、プレイリストに対する再生制御ファンクション(i)、PSRセット23における状態取得/設定ファンクション(ii)といった諸機能を実行する。プレイリストに対する再生制御ファンクションとは、Presentation Engine31が行うAV再生ファンクションのうち、再生開始や再生停止を、カレントPL情報及びClip情報に従って行わせることをいう。これらの機能(i)、(ii)は、HDMVモジュール33〜BD−Jプラットフォーム35からのファンクションコールに応じて実行する。
モジュールマネージャ34は、BD−ROMから読み出されたIndex.bdmvを保持して、分岐制御を行う。この分岐制御は、カレントタイトルを構成する動的シナリオにTerminateイベントを発行し、分岐先タイトルを構成する動的シナリオにActivateイベントを発行することでなされる。
以上がPresentation Engine31〜モジュールマネージャ34についての説明である。続いてBD−Jプラットフォーム35について説明する。
BD−Jプラットフォーム35は、いわゆるJava(登録商標)プラットフォームであり、Java(登録商標)仮想マシン36を中核にした構成になっている。BD−Jプラットフォーム35は、上述したJava(登録商標)2Micro_Edition(J2ME)Personal Basis Profile(PBP1.0)と、Globally Executable MHP specification(GEM[1.0.2])for package media targetsに加え、BD−J Extentionを実装している。BD−J Extentionは、GEM[1.0.2]を越えた機能を、BD−Jプラットフォームに与えるために特化された、様々なパッケージを含んでいる。
先ず初めに、BD−Jプラットフォーム35の中核となるJava(登録商標)仮想マシン36について説明する。
<Java(登録商標)仮想マシン36>
図4は、Java(登録商標)仮想マシン36の内部構成を示す図である。本図に示すようにJava(登録商標)仮想マシン36は、図33に示したCPU24と、ユーザクラスローダ52、メソッドエリア53、ワークメモリ54、スレッド55a,b・・・n、Java(登録商標)スタック56a,b・・・nとから構成される。
ユーザクラスローダ52は、BDJAディレクトリのJava(登録商標)アーカイブファイルにおけるクラスファイルをローカルメモリ26等から読み出してメソッドエリア53に格納する。このユーザクラスローダ52によるクラスファイル読み出しは、ファイルパスを指定した読み出しをアプリケーションマネージャ37がユーザクラスローダ52に指示することでなされる。ファイルパスがローカルメモリ26を示しているなら、ユーザクラスローダ52は、アプリケーションを構成するJava(登録商標)アーカイブファイルにおけるクラスファイルを、ローカルメモリ26からワークメモリ54に読み出す。ファイルパスがVirtual File System30上のディレクトリを示しているなら、ユーザクラスローダ52は、アプリケーションを構成するJava(登録商標)アーカイブファイルにおけるクラスファイルを、BD−ROM又はローカルストレージ20からワークメモリ54に読み出す。アプリケーションの起動制御は、このユーザクラスローダ52によるクラスファイル読み出しにより実現される。読み出しが指示されたクラスファイルがローカルメモリ26にない場合、ユーザクラスローダ52は読み出し失敗をアプリケーションマネージャ37に通知することになる。
メソッドエリア53は、ユーザクラスローダ52によりローカルメモリ27から読み出されたクラスファイルが格納される。
ワークメモリ54は、いわゆるヒープエリアであり、様々なクラスファイルのインスタンスが格納される。図3に示したアプリケーションマネージャ37は、このワークメモリ54に常駐するレジデントアプリケーションである。ワークメモリ54には、これらレジデント型のインスタンスの他に、メソッドエリア53に読み出されたクラスファイルに対応するインスタンスが格納される。このインスタンスが、アプリケーションを構成するxletプログラムである。かかるxletプログラムをワークメモリ54に配置することによりアプリケーションは実行可能な状態になる。
図3のレイアモデルでは、このワークメモリ54上のアプリケーションマネージャ37を、Java(登録商標)仮想マシン36上に描いていたが、これはわかり易すさを意図した配慮に過ぎない。アプリケーションマネージャ37及びアプリケーションはインスタンスとしてスレッド55a,b・・・nにより実行されるというのが、現実的な記述になる。
スレッド55a,b・・・nは、ワークメモリ54に格納されたメソッドを実行する論理的な実行主体であり、ローカル変数や、オペランドスタックに格納された引数をオペランドにして演算を行い、演算結果を、ローカル変数又はオペランドスタックに格納する。図中の矢印ky1,ky2,kynは、ワークメモリ54からスレッド55a,b・・・nへのメソッド供給を象徴的に示している。物理的な実行主体がCPU唯1つであるのに対し、論理的な実行主体たるスレッドは、最大64個Java(登録商標)仮想マシン36内に存在し得る。この64個という数値内において、スレッドを新規に作成することも、既存のスレッドを削除することも可能であり、スレッドの動作数は、Java(登録商標)仮想マシン36の動作中において増減し得る。スレッドの数は適宜増やすことができるので、複数スレッドにより1つのインスタンスの並列実行を行い、インスタンスの高速化を図ることもできる。本図ではCPU24と、スレッドとの対応関係は、1対多の関係にしているが、CPUが複数ある場合、CPUとスレッドとの対応関係は多対多の関係になりうる。スレッド55a,b・・・nによるメソッド実行は、メソッドをなすバイトコードを、CPU24のネイティブコードに変換した上、CPU24に発行することでなされる。
Java(登録商標)スタック56a,b・・・nは、スレッド55a,b・・・nと1対1の比率で存在しており、プログラムカウンタ(図中のPC)と、1つ以上のフレームとを内部に持つ。”プログラムカウンタ”は、インスタンスにおいて、現在どの部分が実行されているかを示す。”フレーム”はメソッドに対する1回のコールに対して割り当てられたスタック式の領域であり、その1回のコール時の引数が格納される”オペランドスタック”と、コールされたメソッドが用いる”ローカル変数スタック(図中のローカル変数)”とからなる。フレームは、コールが1回なされる度にJava(登録商標)スタック56a,b・・・n上に積み上げられるのだから、あるメソッドが自身を再帰的に呼び出す場合も、このフレームは、1つ積み上げられることになる。
以上がJava(登録商標)仮想マシンについての説明である。
<アプリケーションマネージャ37>
続いてアプリケーションマネージャ37について、説明する。アプリケーションマネージャ37は、Java(登録商標)仮想マシン36内のワークメモリ上で動作するシステムソフトウェアであり、タイトル分岐が発生する度に、分岐前タイトルでは実行されていないが、新たなタイトルではAutoRunの起動属性を有するアプリケーションを起動するようJava(登録商標)仮想マシン36に指示する。それと共に、分岐前タイトルでは実行されていたが、新たなタイトルを生存区間としないアプリケーションを終了させる。これら起動制御及び終了制御は、カレントBD−J Objectにおけるアプリケーション管理テーブルを参照した上でなされる。
<BD−ROMの構成>
次にBD−ROM110に記録されているデータに関して説明する。
まず、図5を用いてBD−ROM110のデータのファイルディレクトリ構造について説明する。
図5に示すように、BD−ROM110には、Rootディレクトリの下に、BDMVディレクトリがある。
BDMVディレクトリには、拡張子bdmvが付与されたファイル(index.bdmv,MovieObject.bdmv)がある。そしてこのBDMVディレクトリの配下には、更にPLAYLISTディレクトリ、CLIPINFディレクトリ、STREAMディレクトリ、BDBJディレクトリ、BDJAディレクトリ、AUXDATAディレクトリと呼ばれる6つのサブディレクトリが存在する。
PLAYLISTディレクトリには、拡張子mplsが付与されたファイル(00001.mpls,00002.mpls,00003mpls)がある。
CLIPINFディレクトリには、拡張子clpiが付与されたファイル(00001.clpi,00002.clpi,00003.clpi)がある。
STREAMディレクトリには、拡張子m2tsが付与されたファイル(00001.m2ts,00002.m2ts,00003.m2ts)がある。
BDBJディレクトリには、拡張子BOBJが付与されたファイル(00001.BOBJ,00002.bobj,00003.bobj)が存在する。
BDJAディレクトリには、拡張子jarが付与されたファイル(00001.jar,00002.jar,00003.jar)がある。以上のディレクトリ構造により、互いに異なる種別の複数ファイルが、BD−ROM上に配置されていることがわかる。
AUXDATAディレクトリには、ファイルsound.bdmvが格納される。
<BD−ROMの構成その1.AVClip>
先ず初めに、拡張子.m2tsが付与されたファイルについて説明する。図6は、拡張子.m2tsが付与されたファイルがどのように構成されているかを模式的に示した図である。拡張子.m2tsが付与されたファイル(00001.m2ts、00002.m2ts、00003.m2ts・・・・・)は、AVClipを格納している。AVClipはMPEG2−Transport Stream形式のデジタルストリームである。このデジタルストリームは、フィルム映像、NTSC(National Television Standards Committee)映像、PAL(Phase Alternation by Line)処理をデジタル化することにより得られたデジタルビデオ、LPCM(Linear Pulse Code Modulation)音源、AC−3音源、DTS(Digital Surround)音源をデジタル化することにより得られたデジタルオーディオを(上1段目)、PESパケットからなるエレメンタリストリームに変換し(上2段目)、更にTSパケットに変換して(上3段目)、同じく字幕系のプレゼンテーショングラフィクスストリーム(Presentatiion Graphics(PG)ストリーム)及び対話系のインタラクティブグラフィクスストリーム(Interactive Graphics(IG)ストリーム)を(下1段目)を、PESパケット列に変換し(下2段目)、更にTSパケットに変換して(下3段目)、これらを多重化することで構成される。
PGストリームとは、動画の再生進行に伴った字幕表示を実現するエレメンタリストリームであり、IGストリームは、動画の再生進行に伴ったGUIを実現するエレメンタリストリームである。これらIGストリーム、及びPGストリームについては、本発明の主眼ではないので、説明を省略する。
ビデオストリームのうち、1つのPTSで再生される再生単位(ピクチャ等)を、“Video Presentation Unit”という。オーディオストリームのうち、1つのPTSで再生される再生単位を、“Audio Presentation Unit”という。
ここでAVClipを構成するPESパケットは、1つ以上の“STC_Sequence”を構成する。“STC_Sequence”とは、PESパケットの配列であって、そのPTS、DTSが参照しているSystem Time Clock(STC)の値に、STC不連続点(system time−base discontinuity)が存在しないものをいう。STC不連続点がないことがSTC_Sequenceの要件であるので、1つのSTC_Sequenceを構成するPESパケット列のうち、STC不連続点の直後に位置するPESパケットであって、PCR(Program Clock Reference)を包含したものから、次のSTC不連続点の直前までが1つのSTC_Sequenceになる。
<Clip情報>
続いて拡張子.clpiが付与されたファイルについて説明する。拡張子.clpiが付与されたファイル(00001.clpi,00002.clpi,00003.clpi・・・・・)は、Clip情報を格納している。Clip情報は、個々のAVClipについての管理情報である。図7は、Clip情報の内部構成を示す図である。本図の左側に示すようにClip情報は、
i)AVClipについての情報を格納した『ClipInfo()』、
ii)ATC Sequence,STC Sequenceに関する情報を格納した『Sequence Info()』
iii)Program Sequenceに関する情報を格納した『Program Info()』
iv)『Characteristic Point Info(CPI())』
を含んで構成される。
Sequence Infoは、AVClipに含まれる、1つ以上のSTC−Sequence、ATC−Sequenceについての情報である。これらの情報を設けておくことの意義は、STC、ATCの不連続点を、予め再生装置に通知するためである。つまりかかる不連続点が存在すると、AVClip内において同じ値のPTS,PCRが出現する可能性があり、再生時に不都合が生じる。STC,ATCが連続しているのは、トランスポートストリームのうち、どこからどこまでであるかを示すため、Sequence Infoは設けられている。
Program Infoとは、Program内容が一定である区間(Program Sequence)を示す情報である。Programとは、同期再生のための時間軸を共有し合うエレメンタリーストリーム同士の集まりである。Program Sequence情報を設けておくことの意義は、Program内容の変化点を、予め再生装置に通知するためである。ここでのProgram内容の変化点とは、ビデオストリームのPIDが変化したり、ビデオストリームの種類がSDTV(Standard Definition TeleVision)からHDTV(High−Definition TeleVision)に変化している点等をいう。
続いてCharacteristic Point Infoについて説明する。図7中の引き出し線cu2は、CPIの構成をクローズアップしている。引き出し線cu2に示すように、CPIは、Ne個のEP_map_for_one_stream_PID(EP_map_for_one_stream_PID(0)〜EP_map_for_one_stream_PID(Ne−1))からなる。これらEP_map_for_one_stream_PIDは、AVClipに属する個々のエレメンタリストリームについてのEP_mapである。EP_mapは、1つのエレメンタリストリーム上において、Access Unit Delimiterが存在するエントリー位置のパケット番号(SPN_EP_start)を、エントリー時刻(PTS_EP_start)と対応づけて示す情報である。図中の引き出し線cu3は、EP_map_for_one_stream_PIDの内部構成をクローズアップしている。
同図からEP_map_for_one_stream_PIDは、Nc個のEP_High(EP_High(0)〜EP_High(Nc−1))と、Nf個のEP_Low(EP_Low(0)〜EP_Low(NF−1))とが含まれることがわかる。ここでEP_Highは、Access Unit(Non−IDRIピクチャ、IDRピクチャ)のSPN_EP_start及びPTS_EP_startの上位ビットを表す役割をもち、EP_Lowは、Access Unit(Non_IDRIピクチャ、IDRピクチャ)のSPN_EP_start及びPTS_EP_startの下位ビットを示す役割をもつ。
図7中の引き出し線cu4は、EP_Highの内部構成をクローズアップしている。この引き出し線に示すように、EP_High(i)は、EP_Lowに対する参照値である『ref_to_EP_Low_id[i]』と、Access Unit(Non−IDRIピクチャ、IDRピクチャ)のPTSの上位ビットを示す『PTS_EP_High[i]』と、Access Unit(Non−IDRIピクチャ、IDRピクチャ)のSPNの上位ビットを示す『SPN_EP_High[i]』とからなる。ここでiとは、任意のEP_Highを識別するための識別子である。
図7中の引き出し線cu5は、EP_Lowの構成をクローズアップしている。引き出し線cu5に示すように、EP_Lowは、対応するAccess UnitがIDRピクチャか否かを示す『is_angle_change_point(EP_Low_id)』と、対応するAccess Unitのサイズを示す『I_end_position_offset(EP_Low_id)』と、対応するAccess Unit(Non−IDRIピクチャ、IDRピクチャ)のPTSの下位ビットを示す『PTS_EP_Low(EP_Low_id)』と、対応するAccess Unit(Non−IDRIピクチャ、IDRピクチャ)のSPNの下位ビットを示す『SPN_EP_Low(EP_Low_id)』とからなる。ここでEP_Low_idとは、任意のEP_Lowを識別するための識別子である。
<Clip情報の説明その2.EP_map>
以下、具体例を通じて、EP_mapについて説明する。図8は、映画のビデオストリームに対するEP_map設定を示す図である。第1段目は、表示順序に配置された複数のピクチャ(MPEG4−AVCに規定されたBピクチャ、IDRピクチャ、Pピクチャ)を示し、第2段目は、そのピクチャにおける時間軸を示す。第4段目は、BD−ROM上のTSパケット列を示し、第3段目は、EP_mapの設定を示す。
第2段目の時間軸において、時点t1〜t7に、Access UnitとなるIDRピクチャが存在するものとする。そしてこれらのt1〜t7の時間間隔が、1秒程度であるとすると、映画に用いられるビデオストリームにおけるEP_mapは、t1〜t7をエントリー時刻(PTS_EP_start)として示し、これに対応づけてエントリー位置(SPN_EP_start)を示すよう、設定される。
<PlayList情報>
続いて、PlayList情報について説明する。拡張子“mpls”が付与されたファイル(00001.mpls)は、PlayList(PL)情報を格納したファイルである。PlayList情報は、MainPathと呼ばれる再生経路と、これに対応する再生情報とをプレイリスト(PL)として定義する情報である。
図9は、PlayList情報のデータ構造を示す図であり、本図に示すようにPlayList情報は、MainPathを定義するMainPath情報(MainPath())と、チャプターを定義するPlayListMark情報(PlayListMark())とからなる。
MainPathとは、主たるAVClip上に定義される再生経路である。一方Subpathは、SubClip上に定義される再生経路である。ここでSubClipとは、動画像たるビデオストリームを含まないAVClipである。
<PlayList情報の説明その1.MainPath情報>
先ずMainPathについて説明する。MainPathは、主映像たるビデオストリームやオーディオストリームに対して定義される再生経路である。
MainPathは、矢印mp1で示すように複数のPlayItem情報#1・・・・#mから定義される。
PlayItem情報は、MainPathを構成する1つ以上の論理的な再生区間を定義する。PlayItem情報の構成は、引き出し線hs1によりクローズアップされている。この引き出し線に示すようにPlayItem情報は、再生区間のIN点及びOut点が属するAVClipの再生区間情報のファイル名を示す『Clip_Information_file_name』と、AVClipの符号化方式を示す『Clip_codec_identifier』と、再生区間の始点を示す時間情報『IN_time』と、再生区間の終点を示す時間情報『OUT_time』と、『STN_table』とから構成される。
図10は、AVClipと、PlayList情報との関係を示す図である。第1段目は、PlayList情報がもつ時間軸を示す。第2段目から第5段目は、EP_mapにて参照されているビデオストリーム(図6に示したものと同じ)を示す。
PlayList情報は、PlayItem情報#1,#2という2つのPlayItem情報を含んでおり、これらPlayItem情報#1,#2のIn_time,Out_timeにより、2つの再生区間が定義されることになる。これらの再生区間を配列させると、AVClip時間軸とは異なる時間軸が定義されることになる。これが第1段目に示すPlayItem時間軸である。このように、PlayItem情報の定義により、AVClipとは異なる時間軸の定義が可能になる。
<STN_table>
STN_tableは、Play ItemのClip_Information_file_nameで指定されているAVClipに多重化された複数エレメンタリストリームのうち、再生可能なものを示すテーブルである。具体的にいうとSTN_tableは、複数エレメンタリストリームのそれぞれについてのentryを、attributeと対応付けることで構成される。
図11は、STN_tableの内部構成を示す図である。本図に示すようにSTN_tableは、STN_tableにおけるentryと、attributeとの組み(entry−attribute)を複数含み、これらentry−attributeの組みの個数(number_of_video_stream_entries,number_of_audio_stream_entries,number_of_PG_textST_stream_entries,number_of_IG_stream_entries)を示すデータ構造になっている。
entry−attributeの組みは、図中の括弧記号“{”に示すように、Play Itemにおいて再生可能なビデオストリーム、オーディオストリーム、PG_textST_stream、IGストリームのそれぞれに対応している。
entry−attributeの詳細について説明する。図11は、entry−attributeの詳細を示す図である。
図12(a)は、ビデオストリームに対応したentry−attributeの組みを示す図である。
ビデオストリームにおけるentryは、AVClipを多重分離するにあたって、当該ビデオストリームの抽出に用いられるPIDを示す『ref_to_stream_PID_of_mainClip』を含む。
ビデオストリームにおけるattributeは、0x02に設定された『stream_coding_type』と、ビデオストリームの表示レートを示す『Frame_rate』等を含む。
図12(b)は、オーディオストリームに対応したentry−attributeの組みを示す図である。
オーディオストリームにおけるentryは、AVClipを多重分離するにあたって、当該オーディオストリームの抽出に用いられるPIDを示す『ref_to_stream_PID_of_mainClip』を含む。
オーディオストリームにおけるattributeは、0x80(LinearPCM),0x81(AC−3),0x82(DTS)の何れかに設定されることによりオーディオストリームのコーデイングタイプを示す『stream_coding_type』と、対応するオーディオストリームのチャネル構成を示し、マルチチャネル出力の可否を示す『audio_presentation_type』と、対応するオーディオストリームの言語属性を示す『audio_language code』等からなる。
マルチチャネルには、5.1CHのサラウンド音声の他、ステレオ音声も含まれるが、以降の説明では、マルチチャネルは、5.1CHのサラウンド音声のみを意味するとして説明を進める。
図12(c)は、PGストリームに対応したentry−attributeの組みを示す図である。
PGストリームにおけるentryは、AVClipを多重分離するにあたって、当該PGストリームの抽出に用いられるPIDを示す『ref_to_stream_PID_of_mainClip』を含む。
PGストリームにおけるattributeは、0x90に設定されることによりPGストリームのコーディックを示す『stream_coding_type』と、対応するPGストリームの言語属性を示す『PG_language code』とからなる。
図12(d)は、IGストリームに対応したentry−attributeの組みを示す図である。
IGストリームにおけるentryは、AVClipを多重分離するにあたって、当該IGストリームの抽出に用いられるPIDを示す『ref_to_stream_PID_of_mainClip』を含む。
IGストリームにおけるattributeは、0x91に設定されることによりIGストリームのコーディックを示す『stream_coding_type』と、対応するIGストリームの言語属性を示す『language code』とからなる。
<PlayList情報の説明その2.PlayListMark>
以上が、本実施形態に係るPlayItem情報についての説明である。続いてPlayListMark情報について説明する。
図13は、PlayList情報の、PlayListMark情報の内部構成を示す図である。本図の図中の引き出し線pm0に示すように、PlayListMark情報は、複数のPLMark情報(#1〜#n)からなる。PLmark情報(PLmark())は、PL時間軸のうち、任意の区間を、チャプター点として指定する情報である。引き出し線pm1に示すようにPLmark情報は、チャプター指定の対象たるPlayItemを示す『ref_to_PlayItem_Id』と、そのPlayItemにおける、チャプター位置を時間表記により示す『mark_time_stamp』とを含む。
図14は、PlayList情報の、PLMark情報によるチャプター位置の指定を示す図である。本図の第2段目から第5段目は、図10に示した、EP_mapと、AVClipとを示す。
本図の第1段目は、PLMark情報と、PL時間軸とを示す。この第1段目には、2つのPLMark情報#1〜#2が存在する。矢印kt1,2は、PLMark情報のref_to_PlayItem_Idによる指定を示す。この矢印からもわかるように、PLMark情報のref_to_PlayItem_Idは、PlayItem情報のそれぞれを指定していることがわかる。また、Mark_time_Stampは、PlayItem時間軸のうち、Chapter#1,#2になるべき時点を示す。このように、PLMark情報は、PlayItem時間軸上に、チャプター点を定義することができる。
AVClip−SubClipを同期させ得る同期区間の定義を可能とするのが、BD−ROMにおけるプレイリスト情報の特徴である。以上のClip情報及びプレイリスト情報は、”静的シナリオ”に分類される。何故なら、以上のClip情報及びプレイリスト情報により、静的な再生単位であるプレイリストが定義されるからである。以上で静的シナリオについての説明を終わる。
続いて”動的なシナリオ”について説明する。動的シナリオとは、AVClipの再生制御を動的に規定するシナリオデータである。”動的に”というのは、再生装置における状態変化やユーザからのキーイベントにより再生制御の中身がかわることをいう。BD−ROMでは、この再生制御の動作環境として2つのモードを想定している。1つ目は、DVD再生装置の動作環境と良く似た動作環境であり、コマンドベースの実行環境である。2つ目は、Java(登録商標)仮想マシンの動作環境である。これら2つの動作環境のうち1つ目は、HDMVモードと呼ばれる。2つ目は、BD−Jモードと呼ばれる。これら2つの動作環境があるため、動的シナリオはこのどちらかの動作環境を想定して記述される。HDMVモードを想定した動的シナリオはMovie Objectと呼ばれる。一方BD−Jモードを想定した動的シナリオはBD−J Objectと呼ばれる。
先ず初めにMovie Objectについて説明する。
<Movie Object>
Movie Objectは、図5に示したMovieObject.bdmvというファイルに格納され、ナビゲーションコマンド列を含む。
ナビゲーションコマンド列は、条件分岐、再生装置における状態レジスタの設定、状態レジスタの設定値取得等を実現するコマンド列からなる。Movie Objectにおいて記述可能なコマンドを以下に示す。
1)PlayPLコマンド
書式:PlayPL(第1引数,第2引数)
第1引数は、プレイリストの番号で、再生すべきプレイリストを指定することができる。第2引数は、そのプレイリストに含まれるPlayItemや、そのプレイリストにおける任意の時刻、Chapter、Markを用いて再生開始位置を指定することができる。
PlayItemによりPL時間軸上の再生開始位置を指定したPlayPL関数をPlayPLatPlayItem()、
ChapterによりPL時間軸上の再生開始位置を指定したPlayPL関数をPlayPLatChapter()、
時刻情報によりPL時間軸上の再生開始位置を指定したPlayPL関数をPlayPLatSpecified Time()という。
2)JMPコマンド
書式:JMP引数
JMPコマンドは、現在の動的シナリオを途中で廃棄し(discard)、引数たる分岐先動的シナリオを実行するという分岐である。JMP命令の形式には、分岐先動的シナリオを直接指定している直接参照のものと、分岐先動的シナリオを間接参照している間接参照のものがある。
Movie Objectにおけるナビゲーションコマンドの記述は、DVDにおけるナビゲーションコマンドの記述方式と良く似ているので、DVD上のディスクコンテンツを、BD−ROMに移植するという作業を効率的に行うことができる。Movie Objectについては、以下の国際公開公報に記載された先行技術が存在する。詳細については、本国際公開公報を参照されたい。
国際公開公報W0 2004/074976
以上でMovie Objectについての説明を終える。続いてBD−J Objectについて説明する。
<BD−J Object>
BD−J Objectは、Java(登録商標)プログラミング環境で記述された、BD−Jモードの動的シナリオであり、00001〜00003.bobjというファイルに格納される。
図15は、BD−J Objectの内部構成を示す図である。アプリケーション管理テーブル(AMT)、プレイリスト管理テーブル(PLMT)とを含んで構成される。Movie Objectとの違いは、BD−J Objectにコマンドが直接記述されていない点である。つまりMovie Objectにおいて制御手順は、ナビゲーションコマンドにより直接記述されていた。これに対しBD−J Objectでは、Java(登録商標)アプリケーションに対する指定をアプリケーション管理テーブルに記載することにより、間接的に制御手順を規定している。このような間接的な規定により、複数動的シナリオにおいて制御手順を共通化するという、制御手順の共通化を効率的に行うことができる。
またMovieObjectにおけるプレイリスト再生は、プレイリスト再生を命じるナビゲーションコマンド(PlayPlコマンド)の記述によりなされるが、BD−J Objectにおけるプレイリスト再生は、プレイリスト再生手順を示すプレイリスト管理テーブルをBD−J Objectに組み込むことで記述が可能になる。
このBD−JモードにおけるJava(登録商標)アプリケーションについて説明する。ここでBD−Jモードが想定しているJava(登録商標)プラットフォームは、Java(登録商標)2Micro_Edition(J2ME)Personal Basis Profile(PBP1.0)と、Globally Executable MHP specification(GEM1.0.2)for package media targetsとをフル実装したものである。
このBD−JモードにおけるJava(登録商標)アプリケーションは、xletインターフェイスを通じて、Application Managerにより、制御される。xletインターフェイスは、“loaded”,“paused”、“active”,“destroyed”といった4つの状態をもつ。
上述したJava(登録商標)プラットフォームは、JFIF(JPEG)やPNG,その他のイメージデータを表示するためのスタンダードJava(登録商標)ライブラリを含む。このため、Java(登録商標)アプリケーションは、HDMVモードにおいてIGストリームにより実現されるGUIとは異なるGUIフレームワークを実現することができる。Java(登録商標)アプリケーションにおけるGUIフレームワークは、GEM1.0.2にて規定されたHAVi(Home Audio/Video interoperability)フレームワークを含み、GEM1.0.2におけるリモートコントロールナビゲーション機構を含む。
これにより、Java(登録商標)アプリケーションは、HAViフレームワークに基づくボタン表示、テキスト表示、オンライン表示(BBSの内容)といった表示を、動画像の表示と組み合わせた画面表示を実現することができ、リモートコントロールを用いて、この画面表示に対する操作を行うことができる。
このJava(登録商標)アプリケーションの実体にあたるのが、図2におけるBDMVディレクトリ配下のBDJAディレクトリに格納されたJava(登録商標)アーカイブファイル(00001.jar,00002.jar)である。以降、Java(登録商標)アーカイブファイルについて、図16を参照しながら説明する。
<Java(登録商標)アーカイブファイル>
Java(登録商標)アーカイブファイル(図2の00001.jar,00002.jar)は、1つ以上のクラスファイル、1つ以上のデータファイル等を1つにまとめることで得られるファイルであり、BD−Jモードにおいて動作すべきJava(登録商標)アプリケーションを構成する。
図16は、アーカイブファイルにより収められているプログラム、データを示す図である。本図におけるプログラム、データは、枠内に示すディレクトリ構造が配置された複数ファイルを、java(登録商標)アーカイバでまとめたものである。枠内に示すディレクトリ構造は、Rootディレクトリ、Java(登録商標)1,2,3ディレクトリ、Image1,2,3ディレクトリとからなり、Rootディレクトリにcommon.pkgが、Java(登録商標)1,Java(登録商標)2,Java(登録商標)3ディレクトリにクラスファイル(00001.class〜00007.class)が、Image1,Image2,Image3ディレクトリに、00001.JPEG〜00003.JPEG、00004.PNG〜00006.PNGが配置されている。java(登録商標)アーカイブファイルは、これらをjava(登録商標)アーカイバでまとめることで得られる。かかるクラスファイル及びデータは、BD−ROMからキャッシュに読み出されるにあたって展開され、キャッシュ上で、ディレクトリに配置された複数ファイルとして取り扱われる。Java(登録商標)アーカイブファイルのファイル名における″zzzzz″という5桁の数値は、アプリケーションのID(applicationID)を示す。本Java(登録商標)アーカイブファイルがキャッシュに読み出された際、このファイル名における数値を参照することにより、任意のJava(登録商標)アプリケーションを構成するプログラム,データを取り出すことができる。
尚、本実施形態においてアプリケーションを構成するプログラム、データは、Java(登録商標)アーカイブファイルにまとめられたが、LZHファイル、zipファイルであってもよい。
以上が、BD−Jモードにおける動的シナリオについての説明である。
<Index.bdmv>
Index.bdmvは、タイトルを構成する、Movie Object又はBD−J Objectを示すテーブルである。
Titleにおいて、あるTitleの構成要素となるMovieObjectはどれであるか、又は、あるTitleの構成要素となるBD−J Objectはどれであるのかを定義する。
Index.bdmvについては、以下の国際公開公報に詳細が記載されている。詳細については、本公報を参照されたい。
国際公開公報WO 2004/025651 A1公報
以降、図15に示したアプリケーション管理テーブル、プレイリスト管理テーブルのそれぞれについてより詳しく説明する。
<アプリケーション管理テーブル>
アプリケーション管理テーブル(AMT)について説明する。アプリケーション管理テーブル(AMT)とは、上述したGEM1.0.2for package media targetsにおける“アプリケーション シグナリング”を実装するテーブルである。“アプリケーション シグナリング”とは、GEM1.0.2が規定するMHP(Multimedia Home Platform)において、“サービス”を生存区間としてアプリケーションの起動、実行を行う制御をいう。本実施形態におけるアプリケーション管理テーブルは、この“サービス”の代わりに、BD−ROMにおける“タイトル”を生存区間にして、アプリケーションの起動、実行の制御を実現する。
図17(a)は、アプリケーション管理テーブルの内部構成を示す図である。本図に示すようにアプリケーション管理テーブルは、『life_cycle』と、『apli_id_ref』と、『run_attribute』と、『run_priority』からなる。
図17(b)は、アプリケーション管理テーブルを構成する情報要素の意味内容を示す。
『life_cycle』は、アプリケーションの”生存区間”を示す。
『apli_id_ref』は、”アプリケーション識別子”に対する参照値が記述されることにより、左記の生存区間をもつアプリケーションがどれであるかを示す。アプリケーション識別子は、Java(登録商標)アーカイブファイルにおいて、ファイル名として付与された5桁の数値zzzzzで表現される。『apli_id_ref』には、この5桁の数値が記述される。
『run_attribute』は、当該生存区間におけるアプリケーションの”起動属性”が記述される。起動属性には、AutoRun、Present、Suspedといった種別がある。
『run_priority』は、当該生存区間におけるアプリケーションの”起動優先度”が記述される。BD−J Objectでは、これらの情報を用いてアプリケーションの挙動を制御する。
<生存区間>
ここでアプリケーション管理テーブルに規定される情報のうち、生存区間について説明する。
生存区間とは、BD−ROMに記録されたコンテンツ全体の時間軸において、仮想マシンのワークメモリ上でアプリケーションが生存し得る区間を示す。ワークメモリにおける”生存”とは、そのアプリケーションを構成するxletプログラムが、Java(登録商標)仮想マシン内のワークメモリに読み出され、Java(登録商標)仮想マシンによる実行が可能になっている状態をいう。
Java(登録商標)仮想マシンにおいてアプリケーションを動作させる場合、時間軸の何処からアプリケーションによるサービスを開始し、時間軸の何処でアプリケーションによるサービスを終えるかという”サービスの開始点・終了点”を明確に規定することが重要になる。このサービスの開始点・終了点を規定するのが、アプリケーション管理テーブルにおける生存区間である。
一方、DVD−Videoのような読出専用ディスクで供給されるディスクコンテンツは、トップメニュータイトルを中核とした構造になっている。そのトップメニュータイトルから、個々の著作物へと分岐して再生を行い、その後再び、トップメニュータイトルに戻るという独特の状態遷移をなす。図18は、ディスクコンテンツにおける状態遷移を示す図である。本図における四角枠は、Titleである。Titleとは、ディスクコンテンツ特有の状態遷移において、1つの”状態”にあたる再生単位であり、このタイトルが、Java(登録商標)アプリケーションの生存区間として取り扱われる。
Titleには、BD−ROMのローディング時に最初に再生される『FirstPlayTitle』、Top−Menuを構成する『Top_menuTitle』、これら以外の一般的な『Title』がある。また、図中の矢印jh1,2,3,4,5,6,7,8は、Title間の分岐を象徴的に示す。本図に示される状態遷移とは、BD−ROMローディング時に、『FirstPlayTitle』が再生され、『Top_menuTitle』への分岐が発生して、トップメニューに対する選択待ちになるというものである。
トップメニューに対する選択操作がユーザによりなされれば、選択に従って該当Titleの再生を行い、再びTopMenu Titleに戻るとの処理を、BD−ROMのイジェクトがなされるまで延々と繰り返すというのが、ディスクコンテンツ特有の状態遷移である。
それでは、図18のような状態遷移をなすディスクコンテンツにおいて、Titleは、どのように生存区間として規定されるのであろうか。BD−ROMのローディングがなされた後、図18において矢印jh1,2,3,4・・・・・に示された参照符号の数値順に分岐がなされ、BD−ROMがイジェクトされたものとする。そうすると、BD−ROMがローディングされてから、イジェクトされるまでの連続時間帯を一本の時間軸と同視することができる。この時間軸を、ディスク全体の時間軸とする。図19(a)は、ディスク全体の時間軸を示す図であり、図19(b)は、この時間軸における構成を示す。図19(b)に示すように、ディスク全体の時間軸は、FirstPlay Titleが再生されている区間、TopMenu Titleが再生されている区間、title#1が再生されている区間等からなる。これらTitleの再生区間はどのように規定されているかというと、Titleは、唯一のBD−J Objectから構成されるから、どれかのMovieObject又はBD−J Objectが、有効になっている期間をTitleの再生区間と考えることができる。
つまりFirstPlay Title、TopMenu Title、その他のTitleは、何れも動的シナリオから構成されるから、Titleを構成するBD−J Objectのうち、どれかカレントBD−J ObjectとしてActivatedされ、再生装置内において解読・実行に供されている期間を、Titleの再生区間と定義することができる。図20(a)は、BD−ROM全体の時間軸において、識別子bobj_idにより特定されるBD−J Objectから特定されるタイトル再生区間を示す図である。ここで識別子bobj_idにより特定されるBD−J Objectが、1つのTitleを構成しているなら、その識別子bobj_idにより特定されるBD−J Objectが有効になっているBD−ROM時間軸上の一区間を、Titleの再生区間と考えることができる。
ここでBD−J ObjectがActivateされている期間の終期は、Title分岐がなされるまでである。つまり、Title分岐がなされるまで、実行の対象になっている動的シナリオは、カレントBD−J Objectとして扱われるから、そのBD−J ObjectにおいてJumpTitleが発生するまでの1つの区間を、Title区間として扱う。
続いてTitle区間と、PL時間軸との関係について説明する。上述したようにMovieObject、BD−J Objectでは、1つの処理手順としてプレイリスト再生手順を記述することができる。プレイリスト再生手順の記述があれば、上述したPL時間軸の全部又は一部がTitle区間に帰属することになる。図20(a)の一例においてBD−J Objectに、プレイリスト管理テーブルが記述されているとする。この場合、BD−J Objectに対応するTitle区間には、図20(b)に示すように、PL時間軸が帰属する。このPL時間軸には更に、複数チャプター(Chapter#1,#2,#3)が定義され得るため、BD−ROM上の時間軸には、BD−ROM全体−Title−プレイリスト−チャプターというドメインが存在することになる。これらのドメインを用いて、アプリケーションの生存区間を記述することができる。尚、プレイリスト再生は、アプリケーション実行と同時になされため、プレイリスト再生の途中で、Title分岐が発生することがある。この場合、1つのTitle再生区間内にはプレイリスト時間軸全体ではなく、プレイリスト時間軸の一部分のみが帰属することになる。つまり1つのTitleの再生区間において、プレイリスト時間軸の全体が帰属するか、その一部分が帰属するかは、Title分岐が何時発生するかによって変わる。
図21は、図20(b)の時間軸上に規定される、生存区間の典型を示す図である。本図に示すようにアプリケーションには、Titleを生存区間にした”タイトルバウンダリアプリケーション”、Title内におけるチャプターを生存区間にした”チャプターバウンダリアプリケーション”、BD−ROM全体の時間軸を生存区間にした”タイトルアンバウンダリーアプリケーション”という3つの典型がある。
このうちタイトルバウンダリアプリケーションの生存区間は、そのタイトルの識別子を用いて定義することができる。またチャプターバウンダリアプリケーションの生存区間は、チャプターが属するタイトルの識別子と、そのチャプターの識別子との組みを用いて定義することができる。
プラットフォームが動作していたとしても、Titleやチャプターという生存区間が終われば、リソースをアプリケーションから回収することができる。リソース回収の機会を保証するので、プラットフォームの動作を安定化させることができる。
近い将来、実施されるであろうディスクコンテンツを題材に選んで、アプリケーション管理テーブルにおける生存区間記述について、具体例を交えて説明する。ここで題材にするディスクコンテンツは、映像本編を構成する本編タイトル(title#1)、オンラインショッピングを構成するオンラインショッピングタイトル(title#2)、ゲームアプリケーションを構成するゲームタイトル(title#3)という、性格が異なる3つのタイトルを含むものである。図22は、本編タイトル、オンラインショッピングタイトル、ゲームタイトルという3つのタイトルを含むディスクコンテンツを示す図である。本図における右側にはIndex.bdmvを記述しており、左側には3つのタイトルを記述している。
右側における破線枠は、各アプリケーションがどのタイトルに属しているかという帰属関係を示す。3つのタイトルのうちtitle#1は、application#1、application#2、application#3という3つのアプリケーションからなる。title#2は、application#3、application#4という2つのアプリケーション、title#3は、application#5を含む。図22の一例においてapplication#3は、title#1、title#2の双方で起動される。
図22の破線に示される帰属関係から各アプリケーションの生存区間をグラフ化すると、図23(a)のようになる。本図において横軸は、タイトル再生区間であり、縦軸方向に各アプリケーションの生存区間を配置している。ここでapplication#1、application#2は、title#1のみに帰属しているので、これらの生存区間は、title#1内に留まっている。application#4は、title#2のみに帰属しているので、これらの生存区間は、title#2内に留まっている。application#5は、title#3のみに帰属しているので、これらの生存区間は、title#3内に留まっている。application#3は、title#1及びtitle#2に帰属しているので、これらの生存区間は、title#1−title#2にわたる。この生存区間に基づき、アプリケーション管理テーブルを記述すると、title#1,#2,#3のアプリケーション管理テーブルは図23(b)のようになる。このようにアプリケーション管理テーブルが記述されれば、title#1の再生開始時においてapplication#1、application#2、application#3をワークメモリにロードしておく。そしてtitle#2の開始時にapplication#1、application#2をワークメモリから削除してapplication#3のみにするという制御を行う。これと同様にtitle#2の再生開始時においてapplication#4をワークメモリにロードしておき、title#3の開始時にapplication#3,#4をワークメモリから削除するという制御を行いうる。
更に、title#3の再生中においてapplication#5をワークメモリにロードしておき、title#3の再生終了時にapplication#5をワークメモリから削除するという制御を行いうる。
タイトル間分岐があった場合でも、分岐元−分岐先において生存しているアプリケーションはワークメモリ上に格納しておき、分岐元にはなく、分岐先にのみ存在するアプリケーションをワークメモリに読み込めば良いから、アプリケーションをワークメモリに読み込む回数は必要最低数になる。このように、読込回数を少なくすることにより、タイトルの境界を意識させないアプリケーション、つまりアンバウンダリなアプリケーションを実現することができる。
続いてアプリケーションの起動属性についてより詳しく説明する。起動属性には、自動的な起動を示す「AutoRun」、自動起動の対象ではないが、仮想マシンのワークメモリに置いて良いことを示す「Present」、仮想マシンのワークメモリにはおかれるが、CPUパワーの割り当ては不可となる「Suspend」がある。
「AutoRun」は、対応するタイトルの分岐と同時に、そのアプリケーションをワークメモリに読み込み、且つ実行する旨を示す属性である。あるタイトルから、別のタイトルへの分岐があると、アプリケーション管理を行う管理主体(アプリケーションマネージャ)は、その分岐先タイトルにおいて生存しており、かつ起動属性がAutoRunに設定されたアプリケーションを仮想マシンのワークメモリに読み込み実行する。これによりそのアプリケーションは、タイトル分岐と共に自動的に起動されることになる。
起動属性「Present」は、継続属性であり、分岐元titleにおけるアプリケーションの状態を継続することを示す。また対応するアプリケーションを実行してよいことを示す属性である。起動属性が「Present」である場合、この起動属性が付与されたアプリケーションは、他のアプリケーションからの呼び出しが許可されることになる。アプリケーション管理を行う管理主体(アプリケーションマネージャ)は、起動中のアプリケーションから呼出があると、そのアプリケーションのapplicationIDが、アプリケーション管理テーブルに記述されていて、起動属性が「Present」であるか否かを判定する。「Present」であれば、そのアプリケーションをワークメモリにロードする。一方、その呼出先アプリケーションのapplicationIDがアプリケーション管理テーブルに記述されていない場合、そのアプリケーションはワークメモリにロードされない。アプリケーションによる呼出は、この「Present」が付与されたアプリケーションに限られることになる。「Present」は、起動属性を明示的に指定しない場合に付与されるデフォルトの起動属性であるから、あるアプリケーションの起動属性が無指定「−−」である場合、そのアプリケーションの起動属性の起動属性はこのPresentであることを意味する。
「Suspend」とは、リソースは割り付けられているが、CPUパワーは割り当てられない状態にアプリケーションが置かれることをいう。かかるSuspendは、例えばゲームタイトルの実行中に、サイドパスを経由するという処理の実現に有意義である。
図24は、起動属性がとり得る三態様(Present、AutoRun、Suspend)と、直前タイトルにおけるアプリケーション状態の三態様(非起動、起動中、Suspend)とがとりうる組合せを示す図である。直前状態が”非起動”である場合、起動属性が”AutoRun”であるなら、分岐先タイトルにおいてそのアプリケーションは、起動されることになる。
直前状態が”非起動”であり、起動属性が”Present”、”Suspend”であるなら、分岐先タイトルにおいてそのアプリケーションは、何もせず、状態を継続することになる。
直前状態が”起動中”である場合、起動属性が”Present”、”AutoRun”であるなら、分岐先タイトルにおいてそのアプリケーションは、何もせず、状態を継続することになる。
起動属性が”Suspend”であるなら、アプリケーションの状態はSuspendされることになる。直前状態が”Suspend”である場合、分岐先タイトルの起動属性が”Suspend”ならSuspendを維持することになる。”Present”又は”AutoRun”であるなら、分岐先タイトルにおいてそのアプリケーションは、レジュームすることになる。アプリケーション管理テーブルにおいて生存区間及び起動属性を定義することにより、タイトル再生区間の進行に沿って、Java(登録商標)アプリケーションを動作させるという同期制御が可能になり、映像再生と、プログラム実行とを伴った、様々なアプリケーションを世に送り出すことができる。
尚、直前状態が”Suspend”であり、分岐先タイトルの起動属性が”Present”の場合は、直前状態、すなわちサスペンド状態を維持しても良い。
最後に、各アプリケーションに対する”起動優先度”について説明する。
この起動優先度は、0〜255の値をとり、メモリリソース枯渇時や、CPU負荷が高まった時に、どのアプリケーションを強制的に終了させるか、また、どちらのアプリケーションからリソースを奪うかという処理をアプリケーションマネージャが行うにあたっての判断材料になる。この場合、アプリケーションマネージャは、起動優先度が低いアプリケーションの動作を終了し、起動優先度が高いアプリケーションの動作を継続させるとの処理を行う。
また起動優先度は、再生中プレイリストに対する要求が競合した場合のアプリケーション間の調停でも利用される。ここであるアプリケーションが、あるプレイリストの早送りしているものとする。ここで別のアプリケーションが同じプレイリストに対するポーズ要求を行ったとすると、これらのアプリケーションに付与された起動優先度を比較する。そして早送りを命じたアプリケーションの起動優先度が高いなら、かかるアプリケーションによる早送りを継続して行う。逆にポーズを命じたアプリケーションの起動優先度が高いなら、早送り中プレイリストのポーズを行う。
以上の生存区間・起動属性・起動優先度により、仮想マシン上で動作し得るアプリケーションの数を所定数以下に制限するよう規定しておくことがオーサリング時に可能なる。そのため、アプリケーションの安定動作を保証することができる。
<プレイリスト管理テーブル>
以上がアプリケーション管理テーブルについての説明である。続いてプレイリスト管理テーブル(PLMT)について説明する。プレイリスト管理テーブルとは、アプリケーションの生存区間において、各アプリケーション実行と同時に行うべき再生制御を示すテーブルである。アプリケーションの動作というのは不安定であり、起動の失敗や異常終了がありうる。そこで起動失敗、異常終了があった場合のFail Safe機構として、本実施形態ではアプリケーションの生存区間毎に、プレイリスト管理テーブルを設けている。プレイリスト管理テーブルは、あるアプリケーションの生存区間が開始した際、これと同時に行うべき再生制御を規定する情報である。この再生制御とは、プレイリスト情報に基づくAVClip再生であり、プレイリスト情報による再生制御を同時に行うことで、アプリケーション実行と、プレイリスト再生とが同時になされることになる。プレイリスト管理テーブルは、アプリケーションの生存区間毎に設けられるとしたが、プレイリスト管理テーブルが設けられるアプリケーションは、タイトルバウンダリのアプリケーションに限られる。何故ならタイトルアンバウンダリーアプリケーションは、全タイトルを生存区間にしているため、アプリケーション実行と同時にプレイリスト再生を行うという制御は、適合しないからである。
チャプターバウンダリアプリケーションは、1つのプレイリスト内のチャプターからアプリケーション実行を開始するという前提の下で生存区間が規定されているため、プレイリスト再生を規定する必要はないからである。以上のことからプレイリスト管理テーブルは、1つ以上のTitleからなる生存区間に定義されることになる。
図25(a)は、プレイリスト管理テーブルの内部構成を示す図である。本図に示すようにプレイリスト管理テーブルは、『PL_id_ref』と、『Playback_Attribute』とからなる。
図25(b)は、プレイリスト管理テーブルを構成する情報要素の意味内容を示す。
『PL_id_ref』は、プレイリスト識別子に対する”参照値”が記述されることにより、アプリケーションの生存区間において再生可能となるプレイリストがどれであるかを示す。プレイリスト識別子は、ファイルYYYYY.MPLSにおいて、ファイル名として付与された5桁の数値YYYYYで表現される。このYYYYYが記述されることにより、『PL_id_ref』は、対応するTitleにおいて再生可能となるプレイリストがどれであるかを示す。
『Playback_Attribute』は、アプリケーション管理テーブルにおける起動属性に倣った属性であり、『PL_id_ref』に記述されたプレイリストを、タイトル開始時において、どのように再生するかを規定する再生属性である。プレイリストに対する再生属性には、『AutoPlay』、『Present』といった種別がある。
『AutoPlay』とは、対応するタイトルの分岐と同時に、そのプレイリストを再生させる旨を示す属性である。あるタイトルから、別のタイトルへの分岐があると、アプリケーション管理を行う管理主体(アプリケーションマネージャ)は、その分岐先タイトルにおいて再生可能であり、かつ再生属性がAutoPlayに設定されたプレイリストの再生を開始する。これにより起動属性がAutoPlayに設定されたプレイリストは、タイトル分岐と共に自動的に起動されることになる。
『Present』とは、起動属性におけるPresent同様、継続属性であり、分岐元titleにおけるプレイリストの状態を継続することを示す。また対応するプレイリストを再生してよいことを示す属性である。例えば連続して再生される2つのTitleがあり、前のタイトル側のプレイリスト管理テーブルでは、あるプレイリストの再生属性がAutoPlayに設定され、カレントタイトル側のプレイリスト管理テーブルでは、そのプレイリストの再生属性がPresentに設定されているものとする。ここでプレイリストの再生時間が2時間長であり、このうち1時間が経過した時点で分岐が発生したとする。この場合カレントタイトルでは、再生属性がPresentに設定されているので、カレントタイトルにおいて、そのプレイリストは、1時間という再生済み区間の直後から、再生されることになる。このように再生属性をPresentに設定しておけば、Title間の分岐があった場合でも、プレイリスト再生をその残りの部分から開始することができる。これにより分岐し合う一連のTitleにおいて、共通のプレイリストを再生するという”タイトル間におけるプレイリスト再生の共通化”を容易に実現することができる。また分岐先タイトルが複数ある場合、これら複数タイトルの再生属性を何れもPresentにしておけば、複数のうちどれに分岐したとしても、1つの共通のプレイリスト再生を継続させることができる。
尚Titleの境界は、シームレス再生を保証しなくてもよいので、上述したように複数Title間で1つのプレイリストを再生しようとする場合、分岐前後でプレイリスト再生を中断させることは許容される。
また、再生属性が「Present」である場合、この再生属性が付与されたプレイリストは、他のアプリケーションからの再生要求により再生されることになる。アプリケーション管理を行う管理主体(アプリケーションマネージャ)は、起動中のアプリケーションから、プレイリストの再生要求があると、要求を受けたプレイリストのPL_id_refが、プレイリスト管理テーブルに記述されていて、再生属性が「AutoPlay」か「Present」のいずれかか否かを判定する。「AutoPlay」か「Present」のいずれかであれば、そのプレイリストを再生する。一方、要求を受けたプレイリストのPL_id_refがプレイリスト管理テーブルに記述されていない場合、そのプレイリストを再生しない。アプリケーションの要求によるプレイリスト再生は、この「AutoPlay」か「Present」のいずれかが付与されたプレイリストに限られることになる。「Present」は、再生属性を明示的に指定しない場合に付与されるデフォルトの再生属性であるから、あるプレイリストの再生属性が無指定「−−」であるとそのプレイリストの再生属性はこのPresentであることを意味する。
図26は、プレイリスト管理テーブル、アプリケーション管理テーブルにより規定されるタイトルの具体例を示す。図26の第1段目は、Titleの再生映像を示し、第2段目は、Titleの時間軸を示す。第3段目はPLMTにより再生が規定されるプレイリスト、第4段目は、アプリケーション実行を示す。第4段目においてapplication#1は、Titleの開始と共に起動されており、その後、時点t1において動作状態になる。一方PlayList#1は、Titleの開始と共に再生が開始されている。Playlist#1の再生は、Titleの開始と同じ時点に開始されているので、第1段目の左側に示すように、Titleの再生開始直後から、アプリケーションが動作状態になるまでのスタートアップディレイにおいて、プレイリストの再生画像gj1がフルスクリーン表示される。プレイリスト管理テーブルの再生属性を、”AutoPlay”に設定しておくことにより、Java(登録商標)アプリケーションが動作状態になるまで5〜10秒という時間がかかったとしても、その間、”とりあえず何かが写っている状態”になる。この”とりあえず何かが写っている状態”によりタイトル実行開始時のスタートアップディレイを補うことができる。
一方、application#1は、時点t1で動作状態になるので、プレイリスト再生画像を子画面、アプリケーションの実行画像を親画面にした合成画像gj2が時点t1において表示されることになる。アプリケーションの実行画像は、Startボタン,continueボタン、POWERインディケータを配置したゲーム用のGUIフレームワークであり、かかるGUIフレームワークの描画処理をJava(登録商標)アプリケーションが実行することでなされる。
こうした、プレイリストの再生映像と、Java(登録商標)アプリケーションのGUIフレームワークとを組み合わせた再生映像をなすタイトルを構成することができるのが、PLMTの特徴である。
図27は、カレントタイトルがとり得る三態様(プレイリスト管理テーブル無し(i)、プレイリスト管理テーブル有りで尚且つAutoPlay(ii)、プレイリスト管理テーブル有りで尚且つ無指定(iii))と、直前タイトルにおけるプレイリストの状態(非再生状態、再生中状態)とがとりうる6通りの組合せを示す図である。
本図における6通りの組合せのうち、”直前状態=非再生状態”と、”カレントタイトル=プレイリスト管理テーブル有り、尚且つ、カレントタイトルの再生属性=AutoPlay”との組合せにおいて、分岐先タイトルにおけるプレイリストの再生は、自動的に開始することになる。
また”直前状態=再生中状態”と、”カレントタイトル=プレイリスト管理テーブル無し”との組合せにおいて、分岐先タイトルでのプレイリストの再生は、自動的に停止することになる。
そしてこれら2つの組合せ以外は全て、前のタイトルの状態を継続することになる。プレイリスト管理テーブルに基づくプレイリスト再生の開始は、分岐元タイトルにおいて非再生状態であり、分岐先タイトルにおいてAutoPlay属性が付与されている場合に限られるので、タイトルの分岐発生する毎に、プレイリスト再生を開始させる必要はない。タイトル間の分岐が多数発生したとしても、プレイリスト再生を開始させる回数を必要最低数にすることができる。
プレイリスト管理テーブル及びアプリケーション管理テーブルの記述例について図28(a)を参照しながら説明する。ここで想定する具体例は、2つの連続するTitle(title#1、title#2)であり、そのうちtitle#1では、AutoRunアプリケーションとしてapplication#1、application#2が記述されている。title#2ではAutoRunアプリケーションとしてapplication#2、application#3が記述されている。一方、title#1のプレイリスト管理テーブルには、AutoPlayプレイリストとしてPlayList#1が、title#2のプレイリスト管理テーブルには、AutoPlayプレイリストとしてPlayList#2が記述されているものとする。図28(b)は、図28(a)のように記述されたアプリケーション管理テーブル、プレイリスト管理テーブルによりプレイリスト再生、アプリケーション実行がどのように進行するかを示す図である。
title#1においてアプリケーション管理テーブル、プレイリスト管理テーブルは上述したように設定されているので、title#1の開始時にはapplication#1、application#2が自動的に起動され、PlayList#1の再生が自動的に開始される。
title#2においてアプリケーション管理テーブル、プレイリスト管理テーブルは上述したように設定されているので、title#1側に記載はあるが、title#2側には記載がないapplication#1の実行は停止させられる。同じくtitle#1側に記載があるが、title#2側に記載がないPlayList#1の再生も停止させられる。
title#1側に記載はないが、title#2側に記載があるPlayList#2、application#3は再生及び実行が自動的に開始することになる。タイトル分岐があれば、その分岐を契機に、再生すべきプレイリストを他のプレイリストに切り換えることができる。このようにアプリケーション管理テーブル、プレイリスト管理テーブルを用いることで分岐を契機にして、プレイリスト再生を切り換えるという処理をオーサリング段階において規定しておくことができる。
また図28では、application#1、application#2、application#3にはそれぞれ200,128,200の起動優先度が与えられている。これらの起動優先度を付与することにより、PlayList#1、PlayList#2に対する制御要求が競合した場合の調停を行わせることができる。ここでapplication#1がPlayList#1に対し早送りを命じているものとする。一方、application#2がポーズ要求を行ったとする。この場合、アプリケーション管理テーブルに各アプリケーションに対する起動優先度が規定されているため、この起動優先度に従って、両アプリケーションに対する調停がなされることになる。その結果、application#2による要求を退け、application#1による制御を継続するという処理をオーサリング時に規定しておくことができる。起動優先度をプレイリスト管理テーブルと併せて利用することにより、プレイリストに対する制御が競合した場合の調停さえも再生装置に行わせることができる。
プレイリスト管理テーブル記述の他の具体例について説明する。図29(a)は、プレイリスト管理テーブルの他の記述例を示す図である。本図で想定しているのは、2つの連続するタイトル(title#1、title#2)において、title#1側のプレイリスト管理テーブルには、AutoPlayプレイリストとしてPlayList#1が、再生可能なプレイリストとしてPlayList#2が記述され、title#1側のアプリケーション管理テーブルには、AutoPlayアプリケーションであるapplication#1と、実行可能なアプリケーションとしてapplication#2が記述されている。一方title#2側のプレイリスト管理テーブルには再生可能なプレイリストとしてPlayList#2、PlayList#3が記述され、アプリケーション管理テーブルには、AutoRunアプリケーションとしてapplication#3が記述されている。図29(b)は、図29(a)のケースに基づくアプリケーション実行及びプレイリスト再生の進行を示す図である。title#1のアプリケーション管理テーブルには、AutoRunアプリケーションとしてapplication#1が記述されているので、title#1の開始時にはapplication#1が自動起動される。一方、title#1のアプリケーション管理テーブルには、実行可能アプリケーションとしてapplication#2が記述されているので、application#1からの呼出yd1によりapplication#2が起動される。
title#2側のアプリケーション管理テーブルにおいてapplication#1、application#2が非生存になっており、代わりにAutoRunアプリケーションとしてapplication#3が記述されている。そのためtitle#1−title#2の境界部では、application#1、application#2を停止し、application#3を自動的に起動するとの処理がなされる。プレイリスト管理テーブルを参照すると、title#1側のプレイリスト管理テーブルは、PlayList#1、PlayList#2が再生可能と記述されており、そのうちPlayList#1はAutoPlay属性になっている。そのためPlayList#1は、title#1の開始時において自動的に再生される。
title#1側のプレイリスト管理テーブルには、PlayList#1の他、PlayList#2が再生可能であると記述されているので、application#1はPlayList#1の再生を停止させ、代わりにPlayList#2の再生を要求することにより、プレイリスト交代を実行することができる。
title#2側のプレイリスト管理テーブルには、再生可能なプレイリストとしてPlayList#2、PlayList#3が記述されている。そしてAutoPlay属性が付与されたプレイリストはない。そのため、仮にtitle#1開始時において自動再生されたPlayList#1の再生がtitle#2まで継続したとしても、PlayList#1の再生は自動的に終了することになる。
しかしPlayList#2再生が継続したままtitle#2に至れば、PlayList#2再生はtitle#2開始以降も継続する。title#2のプレイリスト管理テーブルには、再生可能なプレイリストとしてPlayList#2、PlayList#3が記述されている。そのため、title#2で実行中となるapplication#3は、PlayList#2の再生を停止し、代わりにPlayList#3の再生を要求することにより、再生中のプレイリストを交代させることができる。
以上のようにプレイリスト管理テーブルの再生属性を、”AutoPlay”に設定しておけば、Java(登録商標)アプリケーションの起動に、5〜10秒という時間がかかったとしても、その起動がなされている間、”とりあえず何かが写っている状態”になる。タイトル実行開始時において、アプリケーション起動に時間がかかったとしても、画面は、”とりあえず何かが写っている状態”になる。これにより、アプリケーション起動に時間がかかることによるスタートアップディレイの長期化を補うことができる。
アプリケーション管理テーブル及びプレイリスト管理テーブルを定義することにより、タイトル再生区間の進行に沿って、Java(登録商標)アプリケーションを動作させるという同期制御が可能になり、映像再生と、プログラム実行とを伴った、様々なアプリケーションを世に送り出すことができる。
<動作>
次に、本実施の形態の再生装置100のBD−ROM110をロードして動画が再生されたり、メニュー表示されるまでの動作を図30に示すフローチャートを用いて説明する。当該動作はアプリケーションマネージャ37による処理でもある。
図30に示すように、まず、Title jumpがなされたかどうかを判定する(ステップS1)。
Title jumpがあった場合(ステップS1のYES)には、タイトル切替を実行し(ステップS7)、次にカレントタイトルに対応するBD−JObjectにPLMTが存在するかどうかをみる(ステップS8)。
PLMTが存在する場合には(ステップS8のYES)、前のタイトルではPLMTに記載されていなかったが、カレントタイトルではPLMTに記載されており、Auto Play属性が付与されているプレイリストの再生を開始する。PLMTが存在しなかった場合には(ステップS8のNO)、前タイトルではPLMTに記載されていたが、カレントタイトルではPLMTに記載されていないAuto Play属性が付与されているプレイリストの再生を停止する。
次に、カレントタイトルに対応するアプリケーション管理テーブルがあるかどうかを判断する(ステップS11)。
アプリケーション管理テーブルがあった場合(ステップS11のYES)には、前タイトルを生存区間としていないが、カレントタイトルを生存区間としているJava(登録商標)アプリケーションのうち、Auto Run属性を付与されているアプリケーションを起動する。アプリケーション管理テーブルがなかった場合(ステップS11のNO)には、前タイトルを生存区間としているがカレントタイトルを生存区間としていないアプリケーションを終了する。
続いて、アプリケーションの起動に成功したかどうかを判断する(ステップS14)。アプリの起動に成功していた場合(ステップS14のYES)には、ビデオプレーン5及びビデオプレーン制御部17に対してAuto Play属性を付与されているプレイリストの再生画像のクォーター化の指示を実行する。また、当該指示を受けたStillプレーン制御部17は、Stillプレーン16からのスチルデータの出力を実行する(ステップS15)。そしてテレビ130にはStillプレーン16のスチルデータも合成された画像が表示される。アプリケーションの起動に失敗した場合(ステップS14のNO)には、ステップS23に移行して以降の処理を実行する。
Title Jumpが発生しなかった場合(ステップS1のNO)には、メインアプリが終了しているかどうかを検出する(ステップS2)。
メインとなるアプリケーションが終了していた場合(ステップS2のYES)には、当該アプリケーションが正常に終了したかどうかを判断する(ステップS5)。正常に終了していた場合(ステップS5のYES)には、ステップS1に戻り、以降の処理を実行する。
メインとなるアプリケーションが異常終了していた場合(ステップS5のNO)には、Auto Play PLの再生中であったかどうかをみる(ステップS21)。再生中であった場合(ステップS21のYES)には、CPU25は、Auto Play PLの再生画像をフルスクリーン化するようにビデオプレーン5のデータをフルスクリーンサイズで出力させる。また、Stillプレーン制御部17に、対しても同じ指示をだし、当該指示を受けてStillプレーン制御部17は、Stillプレーン16に格納されているスチルデータの出力を抑止する(ステップS22)。そしてテレビ130には、スチルデータが合成されていない合成画像が表示される。
そして再起動カウンタが0であるかどうかを判定する(ステップS23)。ここで再起動カウンタとはアプリケーションの再起動回数を規定するための制御変数である。再起動カウンタが0である場合(ステップS23のYES)にはステップS1に戻り、以降の処理を実行する。再起動カウンタが0でなかった場合(ステップS23のNO)には、再起動カウンタをデクリメントしてステップS12に移行して以降の処理を実行する。ステップS23、S24の手順を踏むことでアプリケーションの起動を保証する。なお再起動カウンタは本フローチャートの起動時においてリセットされる。
メインとなるアプリケーションが終了していなかった場合(ステップS2のNO)には、次に、Auto Play属性が付与されているプレイリストの再生が終了しているかどうかを判断する(ステップS3)。Auto Play属性が付与されているプレイリストの再生が終了していた場合(ステップS3のYES)には、ステップS1に戻り以降の処理を実行する。Auto Play属性が付与されているプレイリストの再生が終了していなかった場合(ステップS3のNO)には、BDドライバ1にBD−ROMがあるかどうかを検出する(ステップS4)。
BDドライバ1にまだBD−ROMが存在する場合(ステップS4のYES)には、ステップS1に戻り以降の処理を実行する。BDドライバ1にBD−ROMが存在しない場合(ステップS4のNO)には、全アプリケーションの終了指示を実行し(ステップS6)、終了する。
以上が、BD−ROM110が再生装置100に装着されてから取り出されるまでの動作である。ここに述べたように、再生画像がフルスクリーンの場合と、クォータの場合とで、Stillプレーン16からのデータの出力の可否を決定する。フルスクリーンの場合においては、Stillプレーン16のデータの合成は必要ないため出力せず、こうすることでStillプレーン16の読み出しに用いられるメモリバスバンド幅を開けることができる。
<実施の形態2>
次に本発明に係る実施の形態2について図面を参照しながら説明する。
実施の形態2においては、BDアプリケーションにおいて、より豊かなインタラクティブ性を実現するためにJava(登録商標)のようなプログラミング環境を導入すると伴に、Stillプレーン又はPGプレーンからのデータの出力を制御することでメモリバスバンド幅を有効活用する内容を示す。基本的には実施の形態1に基づく内容であり、拡張または異なる部分についての説明を行う。
<再生装置100のハードウェア構成>
再生装置100については、実施の形態1と異なり更に、PGプレーン制御部28が追加されている。ここではPGプレーン制御部28の機能について説明する。その他の各部については、実施の形態1に示したものと変わらない。
PGプレーン制御部28は、PGプレーン14からのデータの出力を制御する機能を有する。具体的には、CPU25からビデオプレーン5に対するスケーリング指示を受けて、当該スケーリング指示がテレビ130の全体への表示指示であるフルスケーリングである場合に、PGプレーン14からのデータを出力させる。そしてスケーリング指示がフルスケーリングの1/4であるクォータスケーリングである場合に、PGプレーン14からのデータの読み出しを抑制する。
<動作>
図32は、実施の形態2においてアプリケーションの要求に基づいて、PGプレーン14並びにStillプレーン16からのデータの出力制御を行うことを示したフローチャートである。
図32に示すように、まずアプリケーションからビデオスケーリングを要求されてCPU25はビデオプロセッサ(図示せず)へビデオスケーリングを指示する(ステップS101)。
次いで、ビデオプロセッサは、ビデオスケーリングが成功したかどうかをCPU25に通知する(ステップS102)。ビデオスケーリングが成功した場合(ステップS102のYES)には、当該スケーリング指示が、テレビ130の表示画面全体への表示指示であるフルスケーリング指示であるかどうかを判定する(ステップS103)。
フルスケーリング指示であった場合(ステップS103のYES)には、CPU25は、Stillプレーン制御部17に対してStillプレーン16からのデータの出力を抑制するように指示する(ステップS104)。また、CPU25は、PGプレーン制御部28に対してPGプレーン14からのデータの出力を実行するように指示し(ステップS106)、終了する。
フルスケーリング指示でなかった場合(ステップS103のNO)、即ちビデオスケーリングの指示がフルスケーリングの1/4であるクォータスケーリングであった場合には、CPU25は、Stillプレーン制御部17に対してStillプレーン16からのデータの出力を実行するように指示する(ステップS105)。また、CPU25は、PGプレーン制御部28に対してPGプレーン14からのデータの出力を抑制するよう指示し(ステップS107)、終了する。
なお、ステップS102において、ビデオスケーリングに失敗していた場合(ステップS102のNO)においても、本フローチャートを終了する。
以上のようにアプリケーションによる全画面へのビデオスケーリングが成功した場合には、Stillプレーン16からのデータの読み出しを抑制し、PGプレーン14からのデータの読み出しを実行することができる。またアプリケーションによる全画面の1/4サイズへのビデオスケーリングが成功した場合には、Stillプレーン16からのデータの読み出しを実行し、PGプレーン14からのデータの読み出しを抑制することができる。
PGプレーン14に関してもここに示したようにビデオスケーリングに基づく読み出しの制御を行い、ビデオスケーリングがクォータスケーリングである場合にはデータの出力を抑制することで、当該出力に用いるはずだったメモリバスバンド幅を空けることができる。
<実施の形態3>
実施の形態1においてはStillプレーン16の出力制御を行い、Stillプレーン16のデータの出力が必要ない場合にはメモリバスバンド幅をその分だけ開けることができることを示した。
実施の形態3においては、メモリバスバンド幅並びにメモリ領域を有効活用できる別の手法を示す。ここでは実施の形態1とは異なる部分についてのみ記述する。
実施の形態1及び2に示したようにStillプレーン16からのデータの出力はビデオスケーリングがフルスケールの場合にはStillプレーン16からのデータの出力を抑制し、ビデオスケーリングがクォータサイズの場合にはStillプレーン16からのデータの出力を実行する。
また、PGプレーン14に関してもビデオスケーリングに基づく出力制御を実行することを実施の形態2において記述した。上述したようにPGプレーン14に関しては、Stillプレーン16の場合とは逆にビデオスケーリングがフルスケールの場合においてはデータの出力を実行し、ビデオスケーリングがクォータサイズの場合においてはデータの出力を抑制する。
つまり、PGプレーン14並びにStillプレーン16からのデータの出力に関しては排他的であるといえ、一方が出力を実行しているともう一方は出力を実行しない構成になる。
よって実施の形態3においては、実施の形態1とは異なり、PGプレーン16とStillプレーン16とで使用するメモリ領域を共有する。この場合、アプリケーションからのビデオスケーリングに関する指示がフルスケールである場合には、当該メモリ領域は、PGプレーン14用のメモリ領域として使用される。そしてビデオスケーリングに関する指示がクォータサイズである場合には、当該メモリ領域はStillプレーン16として用いる。具体的には、PGプレーン14とStillプレーン16とはメモリの同じアドレスの領域を共有することになる。
こうすることで実質的に1つ分のプレーンのメモリ領域を開けることができ、そのメモリ領域を他の用途に用いることができる。例えば、Stillプレーン16に表示するはずJPEGデータを圧縮した状態で格納しておき、Stillプレーン16からのデータの出力が必要な場合には、圧縮しておいたJPEGデータを展開してStillプレーンに書き込む構成にしてもよい。
また、データの読み出しの際についても実質的にアクセスするメモリ領域がプレーン一つ分減っているのと同じであり、メモリバスバンド幅もその分だけ空くことになると言える。
<補足>
上記実施の形態に基づいて本発明に係る再生装置に関して説明してきたが、本発明の実施の形態は上述のものに限るものではない。以下、その変形例について説明していく。
(1)上記実施の形態においては再生装置をBD−ROM再生装置として説明してきたが、これは特にBD−ROM再生装置に限定するものではなく、DVDプレーヤなどであってもよい。
(2)上記実施の形態においてはStillプレーン制御部17はビデオプレーンのスケール変更がなされるかどうかに基づいてStillプレーンからのスチルデータの読み出しを行うかどうかを判断していたが、字幕データを格納するためのPGプレーンに合成すべきデータがあるかどうかによって判断しても良い。
字幕データは、基本的にフルスクリーン表示を行うときのためのフォントサイズでBD−ROM110に記憶されており、スケールを変更して縮小した場合に字がつぶれてしまうことがあるため、PGプレーンを合成する場合には必ず、フルスクリーンでの表示が行われる。よって、Stillプレーン制御部17は、PGプレーンがある場合にはフルスクリーンでの表示が行われると判断し、このときには、Stillプレーンからのスチルデータの読み出しを行わないようにしてもよい。
(3)上記実施の形態1においては、動画像がフルスクリーン表示の場合には、Stillプレーンの読み出しに用いられる予定であったメモリバスバンド幅があくことを記載した。このあいたメモリバスバンド幅は当然にその他の用途に用いられて良い。
例えば、Stillプレーンの読み出しに換えて、ビデオプレーンへの動画用の画像データの書き込みに用いたり、あるいは、IGプレーンへのGUI画像の書き込みの用いたりすることも可能である。当該構成を備えることにより、再生装置は書き込みと読み出しのサイクルを早めることができると言え、テレビでの画像の表示の遅延をなるべく抑えることができるようになる。
(4)上記実施の形態においては、ビデオストリームは、BD−ROM規格のAVClipであったが、DVD−Video規格、DVD−Video Recording規格のVOB(VideoOBject)であってもよい。VOBは、ビデオストリーム、オーディオストリームを多重化することにより得られたISO/IEC13818−1規格準拠のプログラムストリームである。またAVClipにおけるビデオストリームは、MPEG4やWMV方式であってもよい。更にオーディオストリームは、Linear−PCM方式、Dolby−AC3方式、MP3方式、MPEG−AAC方式、dts方式であってもよい。
(5)上記実施の形態においては、MPEG4−AVC(H.264やJVTとも呼ばれる)をもとに説明したが、MPEG2ビデオストリームであってもよく、また、その他の形式(VC−1等)の画像の場合でも単独でデコード可能な画像であれば、容易に応用可能である。
(6)上記実施の形態においては、ビデオプレーンが、フルスクリーンの場合についてのみStillプレーンを合成しないこととしたが、これはStillプレーンとビデオプレーンが共に通常フルスクリーンサイズで用意されるからである。しかし、ビデオプレーン及びStillプレーンが共にフルスクリーンサイズでなくとも、ビデオプレーンのデータが、Stillプレーンのデータの全てを覆い隠すならば、Stillプレーンの合成を実行しない構成にしてもよい。
(7)上記実施の形態においては、ビデオプレーン、即ち動画のスケーリングを行う際にフルスケールにするかクォータにするかによってStillプレーン16からのデータの出力を制御したが、ビデオスケーリング時でなくともStillプレーン16からのデータの出力制御を行ってもよい。
この場合、アプリケーションにStillプレーン制御部17に対してのデータの出力の抑制あるいは実行の機能を持たせる。こうすることで、ビデオスケーリング時のみならず、Stillプレーン16からのデータの出力制御を実行することができるようになる。
また、実施の形態2において、PGプレーン14からのデータの出力制御に関してもビデオスケーリング時だけでなく、アプリケーションにPGプレーン制御部28に対しての出力の制御あるいは実行の機能を持たせてもよい。こうすることでビデオスケーリング時のみならず、PGプレーン14からのデータの出力制御を実行することができるようになる。
(8)上記実施の形態においては、Stillプレーン16のデータの出力制御をアプリケーションの指示に基づく形で行ったが、BD−ROMにスチルデータの出力制御に関するフラグを持たせ、当該フラグに基づく出力制御を行ってもよい。
(9)上記実施の形態においては、PGプレーン14には、字幕のみを格納することとしたが、字幕の画像データだけでなく、ビデオプレーンに格納されている動画とは別の動画を格納してもよい。こうすると、例えば表示画面を2つの領域に分割してそれぞれ別の動画を表示できるようになる。
(10)本発明は、上記実施の形態において示したStillプレーンのスチルデータの合成制御に示す方法であってもよく、当該方法に示される処理手順を再生装置のコンピュータに実行させるコンピュータプログラムであってもよい。また、当該コンピュータプログラムは、フレキシブルディスク、ハードディスク、CD(Compact Disc)、MO(Magneto Optical disc)、DVD、BD、半導体メモリなどに記録されたものであってもよい。
(11)上記実施の形態において再生装置100は、システムLSIによって実現するとしたが、再生装置100の各機能は、複数のLSIによって実現されても良い。
本発明に係る再生装置は、BD−ROMからデータを読み出しアプリケーションを実行しながら画像を再生装置において表示の遅延がない再生装置として活用することができる。
本発明は、動画を再生しながらアプリケーションを実行する再生装置に関し、画像を合成する際におけるメモリバスの活用方法に関する発明である。
近年DVD(Digital Versatile Disc)プレーヤ、BD(Blu-ray Disc)プレーヤなどの映像再生装置が開発されている。これらのプレーヤでは、DVD、BDなどの記録媒体から動画ストリームデータを読み出して動画を再生することができる。このとき動画を再生しながら、記録媒体に記録されているアプリケーションを実行することもあり、動画とは別にアプリケーションに関連する画像も表示することがある。例えば、動画の横位置に動画に係るメニューGUI(GraphicalUser Interface)などの表示、あるいは字幕の表示などがこれにあたる。
このとき、プレーヤは動画と、アプリケーションにより表示制御される画像とを合成して表示すべき画像データを生成してディスプレイに表示させている。この合成される基となるデータは逐次、記録媒体から読み出され、一旦プレーヤのメモリのそれぞれ対応する領域に書き込まれる。そしてプレーヤは、そのメモリから画像データを読み出し、合成して出力するということを行っている。ここで、プレーヤのメモリのそれぞれに対応する領域とは、メモリにおいて、動画の画像データを格納するビデオプレーン、動画と共に表示するGUIメニューの画像データを格納するIG(InteractiveGraphics)プレーンなどのことである。プレーヤは画像を合成する際には各プレーンにアクセスする必要がある。
プレーヤにおいては合成画像を生成する際に高速で各プレーンにアクセスする必要があり、遅延することなく動画を再生するためには当該アクセスにおけるメモリバスの有効活用は重要な課題となる。
メモリへの書き込みに係る技術が特許文献1に記載されており、この技術によれば、あるGUIオブジェクトにおいて再描画が発生した場合に、修復する必要がある領域を決定するチェック手段、及び、再描画する必要があるオブジェクトを決定する生成手段とによって、メモリへの不必要な書き込みを抑制するので、書き込みが抑制された分だけメモリバスバンド幅を有効に活用することができる。
日本国特許公開2004−102343号公報
ところで上述したようにプレーヤはプレーンへの書き込みと読み出しを行っているが、メモリへの書き込みと読み出しに用いるメモリバスは、コストや設置スペースの問題から共有化されている。例えばHD画質(1920×1080ピクセル)の画像を表示しようとする場合において、動画像の書き込みにおいて用いるメモリバスバンド幅は、2B/ピクセル、30fpsとすると約120MB/sec(1920×1080×2×30)、読み出しの場合にも同様に約120MB/secの性能を要求されることになる。また、背景画像の書き込みや読み出しについては夫々約120MB/sec、GUIなどのメニューなどのグラフィックスの書き込みや読み出しについては、4B/ピクセル、30fpsとすると夫々約240MB/sec(1920×1080×4×30)のメモリバスバンド幅を要求される。また、字幕がある場合には、このデータもメモリに書き込んで読み出す必要があり、やはり夫々約120MB/secのメモリバス幅を要求される。動画再生時には、読み出しと書き込みが平行して行われるので、これらのプレーンの画像データを合成するために2GB/sec近くの帯域が必要となってくる。これからも画質の高品質化によって更なるメモリバスバンド幅が必要となることが見込まれているが、同時にこれはプレーヤの低価格化を妨げる一要因にもなっている。
そこで本発明においては、画像データの読み出しに用いられるメモリバスバンド幅の有効活用を図るために資することができる新たな再生装置を提供することを目的とする。
上記課題を解決するため、本発明に係る再生装置は、動画像を格納するためのビデオプレーンと、GUIとして表示する画像であるGUI画像を格納するためのイメージプレーンと、背景画像を格納するためのスチルプレーンとのメモリ領域を有する記憶手段と、前記ビデオプレーンに動画像を格納する動画像格納手段と、前記イメージプレーンに前記GUI画像を格納するイメージ格納手段と、前記スチルプレーンに前記背景画像を格納する背景画像格納手段と、前記動画像が前記背景画像を遮蔽できる所定のサイズである場合に、前記背景画像を読み出さず、前記動画像と前記GUI画像とを読み出し、重畳して合成した合成画像を表す画像信号を出力し、前記動画像が前記所定のサイズでない場合に、前記動画像と前記GUI画像と前記背景画像とを読み出し、重畳して合成した合成画像を表す画像信号を出力する合成出力手段とを備えることを特徴としている。
上記の構成を備えた再生装置は、背景画像を必要としないとき、即ち、動画像が背景画像を覆ってしまうときには背景画像を合成する必要がないためメモリから読み出す必要がなくなるので、そのときには背景画像のデータは読み出さないようにする。動画像が背景画像を覆う所定のサイズ例えばフルスクリーンサイズで表示されるときには、背景画像を読み出さないようにすることで再生装置の負担は軽くなり、また読み出しに用いるメモリバスバンド幅があくことになる。
こうして、必要のない背景画像の読み出しを制限することで、背景画像の読み出しに用いていたメモリバスを他の目的、例えばGUI画像のメモリへの書き込みなどに用いることができるので、メモリバスバンド幅を有効活用でき、ディスプレイへの表示の遅延といった問題も軽減できるようになる。
通常、合成するプレーンは同サイズのプレーンを重畳して合成するが、動画像は元のフルスクリーンサイズからサイズを変更して表示する場合、即ち背景画像を覆い隠さない場合もあり、このときには背景画像は必要になるので合成する。
上述したようなHD画質の場合において、再生装置が背景画像の読み出しに用いる120MB/sec分のメモリバスバンド幅を、例えば動画の書き込みに用いれば動画の書き込みの速度が倍になると言え、読み出し時に動画のデータが書き込まれておらず読出しができなかったために動画の再生が遅延するといった事態を防げる。
また、前記所定のサイズとは前記動画像が表示画面においてフルスクリーンで表示されるサイズのことであり、前記再生装置は更に、前記動画像に係るアプリケーションを実行する仮想マシン部を備え、前記合成出力手段は、前記アプリケーションの前記ビデオプレーンに対する縮小指示を受けて、前記背景画像を合成し、縮小指示がない場合には、前記背景画像を合成しないこととしてよい。
ここでフルスクリーンとは、再生装置に接続されている外部機器のテレビなどに代表される表示装置、若しくは内蔵されているモニターなどにおいて、その表示画面全体を覆うサイズのことである。
再生装置は、実行しているアプリケーションの指示に基づき動画像のサイズ変更を行っており、当該変更指示は通常ビデオプレーンに対してのみなされるが、この指示を受けて合成出力手段は、スチルプレーンからのデータの読み出しを実行するかどうかを判断する。この構成を備えることでスチルプレーンからのデータの出力の必要性の判断を容易に行うことができる。
また、前記スチルプレーンは、更に、前記動画像とは異なる時間に応じて切り替わる画像を格納するためのものであって、前記再生装置は更に、前記スチルプレーンに前記時間に応じて切り替わる画像を格納する画像格納手段を備え、前記合成出力手段は、前記動画像が表示画面においてフルスクリーンで表示されるサイズである場合に、前記ビデオプレーンに格納された動画像と前記イメージプレーンに格納されたGUI画像と前記スチルプレーンに格納された時間に応じて切り替わる画像とを読み出し、重畳して合成した合成画像を表す画像信号を出力し、前記動画像がフルスクリーンで表示されるサイズでない場合に、前記ビデオプレーンに格納された動画像と前記イメージプレーンに格納されたGUI画像と前記スチルプレーンに格納された背景画像とを読み出し、重畳し合成した合成画像を表す画像信号を出力することとしてよい。
ここで、時間に応じて切り替わる画像とは、動画像格納手段で格納する動画とは異なる画像であって、かつ時間に応じて表示内容が異なるものであり、例えば字幕を表示するための画像などのことをいう。
これにより、記憶手段において、従来通常スチルプレーンと字幕を格納するための字幕プレーンとに別々に用意されたメモリ領域が共用されることによってプレーン一つ分のメモリ領域が空くことになり、空いたメモリ領域は他のデータの記憶に割り当てることができるようになるので、メモリを有効に活用できる。また、従来のようにスチルプレーンと字幕プレーンがある場合に比べてプレーン一つ分減少しており、当然にプレーン一つ減少した分だけアクセスするメモリバスバンド幅も少なくてすむ。
また、前記合成出力手段及び前記各格納手段は、前記記憶手段に接続されているメモリバスを共有しており、前記イメージ格納手段は、前記合成出力手段がスチルプレーンの読み出しを行わないと判断した場合に、スチルプレーンの読み出しに割り当てられている前記メモリバスの帯域又は時間を、イメージプレーンへの書き込みに用いることとしてよい。
これにより、再生装置は、背景画像の読み出しにあてられていたメモリバスバンド幅をイメージプレーンへの書き込みに用い、有効にメモリバスバンド幅を利用できると言える。イメージプレーンへの書き込みに関しては、GUI画像は動画像や背景画像と比して高品質であるため、その書き込みに要する時間が長くなったり、メモリバスバンド幅が広くなったりするが、スチルプレーンからのデータの読み出しに用いる予定であったメモリバスをイメージプレーンへの書き込みに用いることで高速化することができる。
また、動画像を格納するためのビデオプレーンと、GUIとして表示する画像であるGUI画像を格納するためのイメージプレーンと、背景画像を格納するためのスチルプレーンとのメモリ領域を有する記憶手段を備える再生装置における、画像を合成する画像合成方法であって、前記ビデオプレーンに動画像を格納する動画像格納ステップと、前記イメージプレーンに前記GUI画像を格納するイメージ格納ステップと、前記スチルプレーンに前記背景画像を格納する背景画像格納ステップと、前記動画像が前記背景画像を完全に遮蔽できる所定のサイズである場合に、前記背景画像を読み出さず、前記動画像と前記GUI画像とを読み出し、重畳して合成した合成画像を表す画像信号を出力し、前記動画像が前記所定のサイズでない場合に、前記動画像と前記GUI画像と前記背景画像とを読み出し、重畳して合成した合成画像を表す画像信号を出力する合成出力ステップとを含むこととしてよい。
この方法を実行することで、再生装置は、必要でない場合にスチルプレーンからのデータの読み出しを行わないのでメモリバスバンド幅をその分だけ開けることができる。
また、動画像を格納するためのビデオプレーンと、GUIとして表示する画像であるGUI画像を格納するためのイメージプレーンと、背景画像を格納するためのスチルプレーンとのメモリ領域を有する記憶手段を備える再生装置のコンピュータに画像を合成させるための処理手順を示した画像合成プログラムであって、前記ビデオプレーンに動画像を格納する動画像格納ステップと、前記イメージプレーンに前記GUI画像を格納するイメージ格納ステップと、前記スチルプレーンに前記背景画像を格納する背景画像格納ステップと、前記動画像が前記背景画像を完全に遮蔽できる所定のサイズである場合に、前記背景画像を読み出さず、前記動画像と前記GUI画像とを読み出し、重畳して合成した合成画像を表す画像信号を出力し、前記動画像が前記所定のサイズでない場合に、前記動画像と前記GUI画像と前記背景画像とを読み出し、重畳して合成した合成画像を表す画像信号を出力する合成出力ステップとを含むこととしてよい。
このプログラムを再生装置のコンピュータが実行することで、再生装置は、必要でない場合にスチルプレーンからのデータの読み出しを行わなくなるのでメモリバスバンド幅をその分だけ開けることができる。
また、画像を合成して出力する再生装置に搭載される集積回路であって、動画像を格納するためのビデオプレーンと、GUIとして表示する画像であるGUI画像を格納するためのイメージプレーンと、背景画像を格納するためのスチルプレーンとのメモリ領域を有する記憶手段と、前記ビデオプレーンに動画像を格納する動画像格納手段と、前記イメージプレーンに前記GUI画像を格納するイメージ格納手段と、前記スチルプレーンに前記背景画像を格納する背景画像格納手段と、前記動画像が前記背景画像を完全に遮蔽できる所定のサイズである場合に、前記背景画像を読み出さず、前記動画像と前記GUI画像とを読み出し、重畳して合成した合成画像を表す画像信号を出力し、前記動画像が前記所定のサイズでない場合に、前記動画像と前記GUI画像と前記背景画像とを読み出し、重畳して合成した合成画像を表す画像信号を出力する合成出力手段とを備えることとしてよい。
この集積回路を搭載することで再生装置は、必要でない場合にスチルプレーンからのデータの読み出しを行わないのでメモリバスバンド幅をその分だけ開けることができる。
<実施の形態1>
以下、本発明の一実施形態である再生装置について図面を用いて説明する。
<構成>
<使用形態の構成>
まず、図1には再生装置の使用行為についての形態を示した。
図1に示すように、再生装置100は、BD-ROM110を装着してBD-ROM110に記録されている動画を再生して、有線若しくは無線で接続しているテレビ130に表示させる。また、再生装置100は、BD-ROM110に記録されているJava(登録商標)アプリケーションを実行し、当該アプリケーションに基づく画像も表示させる。
ユーザ操作を受けるためにリモコン120があり、当該リモコン130には、再生装置100を制御するための各種キーが搭載されている。この各種キーには、再生開始(Play)、再生停止(Stop)、一時停止(PauseOn)、一時停止の解除(Pause Off)、Still機能の解除(still off)、速度指定付きの早送り(Forward Play(speed))、速度指定付きの巻戻し(BackwardPlay(speed))、音声切り換え(Audio Change)、副映像切り換え(Subtitle Change)、アングル切り換え(AngleChange)を受け付けるキーや、メニュー操作時にあたってのフォーカス移動操作を受け付けるMoveUpキー、MoveDownキー、MoveRightキー、MoveLeftキー、メニュー表示操作を受け付けるPop-upキー、数値入力を受け付けるNumericキーが含まれる。
以上が、本発明に係る再生装置100の使用行為の形態についての説明である。
<再生装置100のハードウェア構成>
次に、図2を用いて、再生装置100の機能構成について説明する。
本発明に係る再生装置100は、本図に示す内部構成に基づき、工業的に生産される。本発明に係る再生装置100は、主としてシステムLSI(Large ScaleIntegration)と、ドライブ装置という2つのパーツからなり、これらのパーツを装置のキャビネット及び基板に実装することで工業的に生産することができる。システムLSIは、再生装置の機能を果たす様々な処理部を集積した集積回路である。こうして生産される再生装置100は、BD-ROMドライブ1、リードバッファ2、デマルチプレクサ3、ビデオデコーダ4、ビデオプレーン5、サウンドプロセッサ6、サウンドプロセッサ7、ミキサー8、サウンドコントローラ9、D/Aコンバータ10、InteractiveGraphicsデコーダ11、Interactive Graphicsプレーン12、Presentation Graphicsデコーダ13、PresentationGraphicsプレーン14、JPEGデコーダ15、Stillプレーン16、Stillプレーン制御部17、合成部18a、18b、18c、STC−DELTA付加部19、ATC−DELTA付加部20、ローカルストレージ21、命令ROM22、ユーザイベント処理部23、PSRセット24、CPU25、シナリオメモリ26、ローカルメモリ27を含んで構成される。
BD-ROMドライブ1は、BD-ROMのローディング/イジェクトを行い、BD-ROMに対するアクセスを実行する機能を有する。
リードバッファ2は、FIFO(First In First Out)メモリであり、BD-ROMから読み出されたTSパケットを順に格納した先に格納されたパケットから順次出力する機能を有する。
デマルチプレクサ(De-MUX)3は、リードバッファ2からSourceパケットを取り出して、このSourceパケットを構成するTSパケットをPESパケットに変換する機能を有する。そして変換により得られたPESパケットのうち、STN_Tableに記載されたものの中からPID(PacketIDentifier)をもつものをビデオデコーダ4、オーディオデコーダ6、Interactive Graphicsデコーダ11、PresentationGraphicsデコーダ13のいずれかに出力する機能も有する。Sourceパケット及び、STN_Tableの詳細に関しては後述する。
ビデオデコーダ4は、デマルチプレクサ3から出力された複数PESパケットを復号して非圧縮形式のピクチャを得てビデオプレーン5に書き込む機能を有する。
ビデオプレーン5は、非圧縮形式のピクチャを格納しておくためのプレーンである。プレーンとは、再生装置100において一画面分の画素データを格納しておくためのメモリ領域である。ビデオプレーンはビデオでコーダによって書き込まれたデータを格納し出力する機能を有する。ビデオプレーン5における解像度は1920×1080であり、このビデオプレーン5に格納されたピクチャデータは、16ビットのYUV値で表現された画素データにより構成される。ビデオプレーン5では、ビデオストリームにおける一フレーム毎の再生映像を、スケーリングすることができる。スケーリングとは、一フレーム毎の再生画像をビデオプレーン5全体の1/4(クオータという)、1/1(フルスケールという)のどちらかに変化させることである。かかるスケーリングを、BD-JモードにおいてCPU25からの指示に従い実行するので、ビデオストリームの再生画像を、画面の隅に追いやったり、全面的に出すという画面演出が可能になる。
サウンドプロセッサ6は、オーディオストリームを構成するPESパケットをPIDフィルタ3が出力した際、このPESパケットを格納しておく機能を有するオーディオバッファ6aと、このバッファに格納されたPESパケットをデコーダして、PCM(PulseCode Modulation)状態のオーディオデータを出力する機能を有するオーディオデコーダ6bとを含む。
サウンドプロセッサ7は、BD-ROMから読み出されたファイルsound.bdmvをプリロードしておく機能を有するプリロードバッファ7aと、プリロードされたファイルsound.bdmvにおける複数のサウンドデータのうち、CPU25により指示されたものをデコードして、PCM状態のオーディオデータを出力する機能を有するオーディオデコーダ7bとを含む。プリロードバッファ7aへのプリロードは、BD-ROMの装填時やタイトル切替時に行うことが望ましい。何故なら、AVClipの再生中にファイルsound.bdmvを読み出そうとすると、AVClipとは別のファイルを読み出すための光ピックアップのシークが発生するからである。一方、BD-ROMの装填時やタイトル切替時には、AVClipの再生が継続していることは希なので、かかるタイミングにファイルsound.bdmvを読み出すことにより、AVClip再生が途切れないことを、保証することができる。
サウンドミキサ8は、サウンドプロセッサ6、及び、サウンドプロセッサ7から出力されるPCM状態のサウンドデータをミキシングする機能を有する。
サウンドコントローラ9は、サウンドミキサ8から出力された展開された状態のオーディオデータ、及び、サウンドプロセッサ6を介さずに圧縮された状態のオーディオデータのうち、どちらを出力するか切り換える機能を有する。圧縮された状態のオーディオデータを出力する場合は、その出力先の機器(テレビ)においてデコードされる。
D/A変換部10は、サウンドミキサ8から出力されるディジタルのオーディオデータをD/A変換して、アナログ音声を出力する機能を有する。
I-Graphicsデコーダ(IGデコーダ)11は、BD-ROM又はローカルストレージ21から読み出されたIGストリームをデコードして、非圧縮グラフィクスをInteractiveGraphicsプレーン12に書き込む機能を有する。
Interactive Graphics(IG)プレーン12には、HDMVモードにおいてI-Graphicsデコーダ11によるデコードで得られた非圧縮グラフィクスが書き込まれる。またBD-Jモードにおいて、アプリケーションにより描画された文字やグラフィクスが書き込まれる。
P-Graphicsデコーダ13は、BD-ROM又はローカルストレージ21から読み出されたPGストリームをデコードして、非圧縮グラフィクスをPresentationGraphics(PG)プレーン11に書き込む機能を有する。P-Graphicsデコーダ13によってデコードされ、Prensentation Graphicsプレーン11に書き込まれたデータが合成されることにより字幕が画面上に現れることになる。
Presentation Graphicsプレーン14は、一画面分の領域をもったメモリであり、一画面分の非圧縮グラフィクスを格納することができる。
JPEGデコーダ15は、BD-ROM又はローカルストレージ21に記録されているJPEGデータをデコードして、Stillプレーン16に書き込む機能を有する。
Stillプレーン16は、JPEGデータを展開することで得られた非圧縮のグラフィクスデータが格納されるプレーンである。このグラフィクスデータは、Java(登録商標)アプリが描画する、GUIフレームワークのいわゆる“壁紙”として用いられる。
Still プレーン制御部17は、Still プレーン16からのデータの出力を制御する機能を有する。具体的には、CPU25からVideo プレーン5に対するスケーリング指示を受けて、当該スケーリング指示がテレビ130の全体への表示指示であるフルスケールスケーリングである場合に、Stillプレーン16からのデータの読み出しを抑止する。そして、スケーリング指示がフルスケールの1/4であるクォータスケーリングである場合には、Still プレーン16から合成部18cに対して格納しているスチルデータを出力させる。
合成部18a、b、cは、Interactive Graphicsプレーン12に格納されているデータと、Presentation Graphicsプレーン11に格納されているデータと、ビデオプレーン5に格納されているデータと、Stillプレーン16に格納されているデータとを夫々合成し、得られた合成画像の画像信号を出力する機能を有する。なお、プレーンから画像信号が出力されなかった場合には合成せずに出力されてきた信号をそのまま出力する。
STC_delta付加部18は、STC(System Time Clock)を生成する機能を有する。そしてSTC_Sequenceの切り換わり時において、それまでのSTC_SequenceにおけるSTC値(STC1)に、STC_deltaと呼ばれるオフセット値を加算することにより、新しいSTC_SequenceのSTC値(STC2)を求めて、それまでのSTC_SequenceにおけるSTC値(STC1)と、新しいSTC_SequenceのSTC値(STC2)とを連続した値にする。
先行STC_Sequenceにおいて最後に再生されるピクチャの表示開始時刻をPTS1(1stEND)、ピクチャの表示期間をTppとし、後続STC_Sequenceにおいて最初に表示されるピクチャの開始時刻をPTS2(2ndSTART)とした場合、STC_deltaは、

STC_delta=PTS1(1stEND)+Tpp−PTS2(2ndSTART)

として表現される。以上のようにSTC_deltaを求め、これが足し合わされたクロックの計数値を各デコーダに出力する。これにより各デコーダは、2つのSTC_Sequenceにあたるストリームを途切れなく再生してゆくことができる。以上のにより、1つのAVClipの中に、2以上のSTC_Sequenceが存在したとしても、また、連続して再生されるべき2以上のAVClipのそれぞれが、異なるSTC_Sequenceをもっていたとしても、これらのSTC_Sequence間のデコード処理を、シームレスに実行することができる。
なお、バッファリングの連続性をみたすには、以下の条件1)、2)を満たせば良い。

1) STC2(2ndSTART)>STC2(1stEND)をみたすこと。
2) TS1からのTSパケットの取り出しと、TS2からのTSパケットの取り出しとが、同じ時間軸に投影されたSTC1と、STC2とにより定義され、バッファのアンダーフローや、オーバーフローをもたらさないこと。
なお、1)においてSTC2(1stEND)は、STC1(1stEND)を、STC2の時間軸に投影した値であり、STC2(1stEND)=STC1(1stEND)-STC_deltaという計算式で与えられる。
ATC_delta付加部19は、ATC(Arrival Time Clock)を生成する機能を有する。そしてATC_Sequenceの切り換わり時において、それまでのATC_SequenceにおけるATC値(ATC1)に、ATC_deltaと呼ばれるオフセット値を加算することにより、それまでのATC_SequenceにおけるATC値(ATC1)と、新しいATC_SequenceのATC値(ATC2)とを連続した値にする。この加算により、ATC2=ATC1+ATC_deltaになる。ATC_deltaとは、これまで読み出されているトランスポートストリーム(TS1)の最後のTSパケットの入力時点T1から、新たに読み出されたトランスポートストリーム(TS2)の最初のTSパケットの入力時点T2までのオフセット値をいい、“ATC_delta≧N1/TS_recording_rate”という計算式で与えられる。ここで入力時点T2は、TS2の最初のTSパケットの入力時点を、TS1の時間軸上に投影した時点を意味する。またN1は、TS1の最後のビデオPESパケットに後続する、TSパケットのパケット数である。BD-ROMにおいてかかるATC_deltaは、Clip情報に記述されるので、これを用いることにより、ATC_deltaを計算することができる。以上の計算により、これまでのATC_SequenceがもっているATC値(ATC1)と、新たなATC_SequenceがもっているATC値(ATC2)とを、連続した値にすることができる。ATC_deltaが足し合わされたクロックの計数値をデマルチプレクサ(De-MUX)3に出力することで、シームレスなバッファ制御を実現することができる。
以上がAVClipの再生に係る構成要素である。続いてBD-Jモードでの動作に係る構成要素(ローカルストレージ21〜ローカルメモリ27)について説明する。
ローカルストレージ21は、webサイトからダウンロードされたコンテンツ等、BD-ROM以外の記録媒体、通信媒体から供給されたコンテンツを、メタデータと共に格納しておく機能を有するハードディスクである。このメタデータは、ダウンロードコンテンツをローカルストレージ21にバインドして管理するための情報であり、このローカルストレージ21をアクセスすることで、BD-Jモードにおけるアプリケーションは、ダウンロードコンテンツ長さを利用した様々な処理を行うことができる。
続いて、再生装置における統合制御を実現する構成要素(命令ROM22〜ローカルメモリ26)について説明する。
命令ROM22は、再生装置の制御を規定するソフトウェアを記憶している。
ユーザイベント処理部23は、リモコンや再生装置のフロントパネルに対するキー操作に応じて、その操作を行うユーザイベントをCPU25に出力する。
PSR(Player Status Register)セット24は、再生装置に内蔵されるレジスタであり、64個のPSRと、4096個のGPR(GeneralPurpose Register)とからなる。Player Status Registerの設定値(PSR)のうち、PSR4〜PSR8は、現在の再生時点を表現するのに用いられる。
PSR4は、1〜100の値に設定されることで、現在の再生時点が属するタイトルを示し、0に設定されることで、現在の再生時点がトップメニューであることを示す。
PSR5は、1〜999の値に設定されることで、現在の再生時点が属するチャプター番号を示し、0xFFFFに設定されることで、再生装置においてチャプター番号が無効であることを示す。
PSR6は、0〜999の値に設定されることで、現在の再生時点が属するプレイリスト(カレントPL)の番号を示す。
PSR7は、0〜255の値に設定されることで、現在の再生時点が属するPlayItem(カレントPlay Item)の番号を示す。
PSR8は、0〜OxFFFFFFFFの値に設定されることで、45KHzの時間精度を用いて現在の再生時点(カレントPTM(PresentationTiMe))を示す。以上のPSR4〜PSR8により、図18(a)におけるBD-ROM全体の時間軸において、現在の再生時点はどこであるかを特定することができる。
CPU25は、命令ROM22に格納されているソフトウェアを実行して、再生装置全体の制御を実行する機能を有する。この制御の内容は、ユーザイベント処理部23から出力されたユーザイベント、及び、PSRセット24における各PSRの設定値に応じて動的に変化する。
シナリオメモリ26は、カレントのPL情報やカレントのClip情報を格納しておく機能を有するメモリである。カレントPL情報とは、BD-ROMに記録されている複数プレイリスト情報のうち、現在処理対象になっているものをいう。カレントClip情報とは、BD-ROMに記録されている複数Clip情報のうち、現在処理対象になっているものをいう。
ローカルメモリ27は、BD-ROMからの読み出しは低速である故、BD-ROMの記録内容を一時的に格納しておくためのキャッシュメモリである。かかるローカルメモリ27が存在することにより、BD-Jモードにおけるアプリケーション実行は、効率化されることになる。
以上が、本実施形態に係る再生装置のハードウェア構成である。
<再生装置100のソフトウェア構成>
続いて本実施形態に係る再生装置のソフトウェア構成について説明する。
図3には、ROM24に格納されたソフトウェアと、ハードウェアとからなる部分を、レイア構成に置き換えて描いた図である。本図に示すように、再生装置のレイア構成は、以下のa),b),c)からなる。つまり、
a)BD Player Deviceの第1階層、
b)BD Player Modelの第2階層、
c)Application Runtime Enviromentの第3階層からなる。
これらの階層のうち図3に示した再生装置のハードウェア構成は、第1階層に属することになる。本図の第1階層”BD Player Device”には、図2に示したハードウェア構成のうちビデオデコーダ4、I-Graphicsデコーダ11、オーディオデコーダ6等にあたる”デコーダ”と、ビデオプレーン5、InteractiveGraphicsプレーン12等にあたる”プレーン”、BD-ROM110及びそのファイルシステム、ローカルストレージ21及びそのファイルシステムを含む。
第2階層”BD Player Model”は、以下のb1),b2)の層からなる。つまり、
b1)Virtual File System30及びPresentation Engine31の層
b2)Playback Control Engine32の層
からなり、自身より上位の階層に対し、ファンクションAPIを提供する。
第3階層”Application Runtime Enviroment”は、以下のc1),c2)の階層からなる。つまり、
c1)モジュールマネージャ34が存在する層、
c2)BD-Jプラットフォーム35が存在する層
からなる。
先ず初めに、第2層に属するVirtual File System30〜モジュールマネージャ34について説明する。
Virtual File System30は、ローカルストレージ21に格納されたダウンロードコンテンツを、BD-ROMにおけるディスクコンテンツと一体的に取り扱うための仮想的なファイルシステムである。ここでローカルストレージ21に格納されたダウンロードコンテンツは、SubClip、Clip情報、プレイリスト情報を含む。このダウンロードコンテンツにおけるプレイリスト情報はBD-ROM及びローカルストレージ21のどちらに存在するClip情報であっても、指定できる点で、BD-ROM上のプレイリスト情報と異なる。この指定にあたって、VirtualFile System30上のプレイリスト情報は、BD-ROMやローカルストレージ21におけるファイルをフルパスで指定する必要はない。BD-ROM上のファイルシステムやローカルストレージ21上のファイルシステムは、仮想的な1つのファイルシステム(VirtualFile System30)として、認識されるからである。故に、PlayItem情報におけるClip_Information_file_nameは、Clip情報の格納したファイルのファイルボデイにあたる5桁の数値を指定することにより、VirtualFile System30、BD-ROM上のAVClipを指定することができる。Virtual File System30を介してローカルストレージ21の記録内容を読み出し、BD-ROMの記録内容と動的に組み合わせることにより、様々な再生のバリエーションを産み出すことができる。ローカルストレージ21と、BD-ROMとを組合せてなるディスクコンテンツは、BD-ROMにおけるディスクコンテンツと対等に扱われるので、本発明においてBD-ROMには、ローカルストレージ21+BD-ROMの組合せからなる仮想的な記録媒体をも含むことにする。
Presentation Engine31は、AV再生ファンクションを実行する。再生装置のAV再生ファンクションとは、DVDプレーヤ、CDプレーヤから踏襲した伝統的な機能群であり、再生開始(Play)、再生停止(Stop)、一時停止(PauseOn)、一時停止の解除(Pause Off)、Still機能の解除(still off)、速度指定付きの早送り(Forward Play(speed))、速度指定付きの巻戻し(BackwardPlay(speed))、音声切り換え(Audio Change)、副映像切り換え(Subtitle Change)、アングル切り換え(AngleChange)といった機能である。AV再生ファンクションを実現するべく、Presentation Engine31は、リードバッファ2上に読み出されたAVClipのうち、所望時刻にあたる部分のデコードを行うよう、ビデオデコーダ4、P-Graphicsデコーダ13、I-Graphicsデコーダ10、オーディオデコーダ6を制御する。所望の時刻としてPSR8(カレントPTM)に示される箇所のデコードを行わせることにより、AVClipにおいて、任意の時点を再生を可能することができる。
再生制御エンジン(Playback Control Engine(PCE))32は、プレイリストに対する再生制御ファンクション(i)、PSRセット23における状態取得/設定ファンクション(ii)といった諸機能を実行する。プレイリストに対する再生制御ファンクションとは、PresentationEngine31が行うAV再生ファンクションのうち、再生開始や再生停止を、カレントPL情報及びClip情報に従って行わせることをいう。これらの機能(i)、(ii)は、HDMVモジュール33〜BD-Jプラットフォーム35からのファンクションコールに応じて実行する。
モジュールマネージャ34は、BD-ROMから読み出されたIndex.bdmvを保持して、分岐制御を行う。この分岐制御は、カレントタイトルを構成する動的シナリオにTerminateイベントを発行し、分岐先タイトルを構成する動的シナリオにActivateイベントを発行することでなされる。
以上がPresentation Engine31〜モジュールマネージャ34についての説明である。続いてBD-Jプラットフォーム35について説明する。
BD-Jプラットフォーム35は、いわゆるJava(登録商標)プラットフォームであり、Java(登録商標)仮想マシン36を中核にした構成になっている。BD-Jプラットフォーム35は、上述したJava(登録商標)2Micro_Edition(J2ME)Personal Basis Profile(PBP 1.0)と、Globally Executable MHPspecification(GEM[1.0.2])for package media targetsに加え、BD-J Extentionを実装している。BD-JExtentionは、GEM[1.0.2]を越えた機能を、BD-Jプラットフォームに与えるために特化された、様々なパッケージを含んでいる。
先ず初めに、BD-Jプラットフォーム35の中核となるJava(登録商標)仮想マシン36について説明する。
<Java(登録商標)仮想マシン36>
図4は、Java(登録商標)仮想マシン36の内部構成を示す図である。本図に示すようにJava(登録商標)仮想マシン36は、図33に示したCPU24と、ユーザクラスローダ52、メソッドエリア53、ワークメモリ54、スレッド55a,b・・・n、Java(登録商標)スタック56a,b・・・nとから構成される。
ユーザクラスローダ52は、BDJAディレクトリのJava(登録商標)アーカイブファイルにおけるクラスファイルをローカルメモリ26等から読み出してメソッドエリア53に格納する。このユーザクラスローダ52によるクラスファイル読み出しは、ファイルパスを指定した読み出しをアプリケーションマネージャ37がユーザクラスローダ52に指示することでなされる。ファイルパスがローカルメモリ26を示しているなら、ユーザクラスローダ52は、アプリケーションを構成するJava(登録商標)アーカイブファイルにおけるクラスファイルを、ローカルメモリ26からワークメモリ54に読み出す。ファイルパスがVirtualFile System30上のディレクトリを示しているなら、ユーザクラスローダ52は、アプリケーションを構成するJava(登録商標)アーカイブファイルにおけるクラスファイルを、BD-ROM又はローカルストレージ20からワークメモリ54に読み出す。アプリケーションの起動制御は、このユーザクラスローダ52によるクラスファイル読み出しにより実現される。読み出しが指示されたクラスファイルがローカルメモリ26にない場合、ユーザクラスローダ52は読み出し失敗をアプリケーションマネージャ37に通知することになる。
メソッドエリア53は、ユーザクラスローダ52によりローカルメモリ27から読み出されたクラスファイルが格納される。
ワークメモリ54は、いわゆるヒープエリアであり、様々なクラスファイルのインスタンスが格納される。図3に示したアプリケーションマネージャ37は、このワークメモリ54に常駐するレジデントアプリケーションである。ワークメモリ54には、これらレジデント型のインスタンスの他に、メソッドエリア53に読み出されたクラスファイルに対応するインスタンスが格納される。このインスタンスが、アプリケーションを構成するxletプログラムである。かかるxletプログラムをワークメモリ54に配置することによりアプリケーションは実行可能な状態になる。
図3のレイアモデルでは、このワークメモリ54上のアプリケーションマネージャ37を、Java(登録商標)仮想マシン36上に描いていたが、これはわかり易すさを意図した配慮に過ぎない。アプリケーションマネージャ37及びアプリケーションはインスタンスとしてスレッド55a,b・・・nにより実行されるというのが、現実的な記述になる。
スレッド55a,b・・・nは、ワークメモリ54に格納されたメソッドを実行する論理的な実行主体であり、ローカル変数や、オペランドスタックに格納された引数をオペランドにして演算を行い、演算結果を、ローカル変数又はオペランドスタックに格納する。図中の矢印ky1,ky2,kynは、ワークメモリ54からスレッド55a,b・・・nへのメソッド供給を象徴的に示している。物理的な実行主体がCPU唯1つであるのに対し、論理的な実行主体たるスレッドは、最大64個Java(登録商標)仮想マシン36内に存在し得る。この64個という数値内において、スレッドを新規に作成することも、既存のスレッドを削除することも可能であり、スレッドの動作数は、Java(登録商標)仮想マシン36の動作中において増減し得る。スレッドの数は適宜増やすことができるので、複数スレッドにより1つのインスタンスの並列実行を行い、インスタンスの高速化を図ることもできる。本図ではCPU24と、スレッドとの対応関係は、1対多の関係にしているが、CPUが複数ある場合、CPUとスレッドとの対応関係は多対多の関係になりうる。スレッド55a,b・・・nによるメソッド実行は、メソッドをなすバイトコードを、CPU24のネイティブコードに変換した上、CPU24に発行することでなされる。
Java(登録商標)スタック56a,b・・・nは、スレッド55a,b・・・nと1対1の比率で存在しており、プログラムカウンタ(図中のPC)と、1つ以上のフレームとを内部に持つ。”プログラムカウンタ”は、インスタンスにおいて、現在どの部分が実行されているかを示す。”フレーム”はメソッドに対する1回のコールに対して割り当てられたスタック式の領域であり、その1回のコール時の引数が格納される”オペランドスタック”と、コールされたメソッドが用いる”ローカル変数スタック(図中のローカル変数)”とからなる。フレームは、コールが1回なされる度にJava(登録商標)スタック56a,b・・・n上に積み上げられるのだから、あるメソッドが自身を再帰的に呼び出す場合も、このフレームは、1つ積み上げられることになる。
以上がJava(登録商標)仮想マシンについての説明である。
<アプリケーションマネージャ37>
続いてアプリケーションマネージャ37について、説明する。アプリケーションマネージャ37は、Java(登録商標)仮想マシン36内のワークメモリ上で動作するシステムソフトウェアであり、タイトル分岐が発生する度に、分岐前タイトルでは実行されていないが、新たなタイトルではAutoRunの起動属性を有するアプリケーションを起動するようJava(登録商標)仮想マシン36に指示する。それと共に、分岐前タイトルでは実行されていたが、新たなタイトルを生存区間としないアプリケーションを終了させる。これら起動制御及び終了制御は、カレントBD-JObjectにおけるアプリケーション管理テーブルを参照した上でなされる。
<BD-ROMの構成>
次にBD-ROM110に記録されているデータに関して説明する。
まず、図5を用いてBD-ROM110のデータのファイルディレクトリ構造について説明する。
図5に示すように、BD-ROM110には、Rootディレクトリの下に、BDMVディレクトリがある。
BDMVディレクトリには、拡張子bdmvが付与されたファイル(index.bdmv,MovieObject.bdmv)がある。そしてこのBDMVディレクトリの配下には、更にPLAYLISTディレクトリ、CLIPINFディレクトリ、STREAMディレクトリ、BDBJディレクトリ、BDJAディレクトリ、AUXDATAディレクトリと呼ばれる6つのサブディレクトリが存在する。
PLAYLISTディレクトリには、拡張子mplsが付与されたファイル(00001.mpls,00002.mpls,00003mpls)がある。
CLIPINFディレクトリには、拡張子clpiが付与されたファイル(00001.clpi,00002.clpi,00003.clpi)がある。
STREAMディレクトリには、拡張子m2tsが付与されたファイル(00001.m2ts,00002.m2ts,00003.m2ts)がある。
BDBJディレクトリには、拡張子BOBJが付与されたファイル(00001.BOBJ,00002.bobj,00003.bobj)が存在する。
BDJAディレクトリには、拡張子jarが付与されたファイル(00001.jar,00002.jar,00003.jar)がある。以上のディレクトリ構造により、互いに異なる種別の複数ファイルが、BD-ROM上に配置されていることがわかる。
AUXDATAディレクトリには、ファイルsound.bdmvが格納される。
<BD-ROMの構成その1.AVClip>
先ず初めに、拡張子.m2tsが付与されたファイルについて説明する。図6は、拡張子.m2tsが付与されたファイルがどのように構成されているかを模式的に示した図である。拡張子.m2tsが付与されたファイル(00001.m2ts、00002.m2ts、00003.m2ts・・・・・)は、AVClipを格納している。AVClipはMPEG2-TransportStream形式のデジタルストリームである。このデジタルストリームは、フィルム映像、NTSC(National Television StandardsCommittee)映像、PAL(Phase Alternation by Line)処理をデジタル化することにより得られたデジタルビデオ、LPCM(LinearPulse Code Modulation)音源、AC-3音源、DTS(Digital Surround)音源をデジタル化することにより得られたデジタルオーディオを(上1段目)、PESパケットからなるエレメンタリストリームに変換し(上2段目)、更にTSパケットに変換して(上3段目)、同じく字幕系のプレゼンテーショングラフィクスストリーム(PresentatiionGraphics(PG)ストリーム)及び対話系のインタラクティブグラフィクスストリーム(Interactive Graphics(IG)ストリーム)を(下1段目)を、PESパケット列に変換し(下2段目)、更にTSパケットに変換して(下3段目)、これらを多重化することで構成される。
PGストリームとは、動画の再生進行に伴った字幕表示を実現するエレメンタリストリームであり、IGストリームは、動画の再生進行に伴ったGUIを実現するエレメンタリストリームである。これらIGストリーム、及びPGストリームについては、本発明の主眼ではないので、説明を省略する。
ビデオストリームのうち、1つのPTSで再生される再生単位(ピクチャ等)を、“Video Presentation Unit”という。オーディオストリームのうち、1つのPTSで再生される再生単位を、“AudioPresentation Unit”という。
ここでAVClipを構成するPESパケットは、1つ以上の“STC_Sequence”を構成する。“STC_Sequence”とは、PESパケットの配列であって、そのPTS、DTSが参照しているSystemTime Clock(STC)の値に、STC不連続点(system time-base discontinuity)が存在しないものをいう。STC不連続点がないことがSTC_Sequenceの要件であるので、1つのSTC_Sequenceを構成するPESパケット列のうち、STC不連続点の直後に位置するPESパケットであって、PCR(ProgramClock Reference)を包含したものから、次のSTC不連続点の直前までが1つのSTC_Sequenceになる。
<Clip情報>
続いて拡張子.clpiが付与されたファイルについて説明する。拡張子.clpiが付与されたファイル(00001.clpi,00002.clpi,00003.clpi・・・・・)は、Clip情報を格納している。Clip情報は、個々のAVClipについての管理情報である。図7は、Clip情報の内部構成を示す図である。本図の左側に示すようにClip情報は、
i)AVClipについての情報を格納した『ClipInfo()』、
ii)ATC Sequence,STC Sequenceに関する情報を格納した『Sequence Info()』
iii)Program Sequenceに関する情報を格納した『Program Info()』
iv)『Characteristic Point Info(CPI())』
を含んで構成される。
Sequence Infoは、AVClipに含まれる、1つ以上のSTC-Sequence、ATC-Sequenceについての情報である。これらの情報を設けておくことの意義は、STC、ATCの不連続点を、予め再生装置に通知するためである。つまりかかる不連続点が存在すると、AVClip内において同じ値のPTS,PCRが出現する可能性があり、再生時に不都合が生じる。STC,ATCが連続しているのは、トランスポートストリームのうち、どこからどこまでであるかを示すため、SequenceInfoは設けられている。
Program Infoとは、Program内容が一定である区間(Program Sequence)を示す情報である。Programとは、同期再生のための時間軸を共有し合うエレメンタリーストリーム同士の集まりである。ProgramSequence情報を設けておくことの意義は、Program内容の変化点を、予め再生装置に通知するためである。ここでのProgram内容の変化点とは、ビデオストリームのPIDが変化したり、ビデオストリームの種類がSDTV(StandardDefinition TeleVision)からHDTV(High-Definition TeleVision)に変化している点等をいう。
続いてCharacteristic Point Infoについて説明する。図7中の引き出し線cu2は、CPIの構成をクローズアップしている。引き出し線cu2に示すように、CPIは、Ne個のEP_map_for_one_stream_PID(EP_map_for_one_stream_PID(0)〜EP_map_for_one_stream_PID(Ne-1))からなる。これらEP_map_for_one_stream_PIDは、AVClipに属する個々のエレメンタリストリームについてのEP_mapである。EP_mapは、1つのエレメンタリストリーム上において、AccessUnit Delimiterが存在するエントリー位置のパケット番号(SPN_EP_start)を、エントリー時刻(PTS_EP_start)と対応づけて示す情報である。図中の引き出し線cu3は、EP_map_for_one_stream_PIDの内部構成をクローズアップしている。
同図からEP_map_for_one_stream_PIDは、Nc個のEP_High(EP_High(0)〜EP_High(Nc-1))と、Nf個のEP_Low(EP_Low(0)〜EP_Low(Nf-1))とが含まれることがわかる。ここでEP_Highは、AccessUnit(Non-IDR Iピクチャ、IDRピクチャ)のSPN_EP_start及びPTS_EP_startの上位ビットを表す役割をもち、EP_Lowは、AccessUnit(Non-IDR Iピクチャ、IDRピクチャ)のSPN_EP_start及びPTS_EP_startの下位ビットを示す役割をもつ。
図7中の引き出し線cu4は、EP_Highの内部構成をクローズアップしている。この引き出し線に示すように、EP_High(i)は、EP_Lowに対する参照値である『ref_to_EP_Low_id[i]』と、AccessUnit(Non-IDR Iピクチャ、IDRピクチャ)のPTSの上位ビットを示す『PTS_EP_High[i]』と、Access Unit(Non-IDR Iピクチャ、IDRピクチャ)のSPNの上位ビットを示す『SPN_EP_High[i]』とからなる。ここでiとは、任意のEP_Highを識別するための識別子である。
図7中の引き出し線cu5は、EP_Lowの構成をクローズアップしている。引き出し線cu5に示すように、EP_Lowは、対応するAccess UnitがIDRピクチャか否かを示す『is_angle_change_point(EP_Low_id)』と、対応するAccessUnitのサイズを示す『I_end_position_offset(EP_Low_id)』と、対応するAccess Unit(Non-IDR Iピクチャ、IDRピクチャ)のPTSの下位ビットを示す『PTS_EP_Low(EP_Low_id)』と、対応するAccessUnit(Non-IDR Iピクチャ、IDRピクチャ)のSPNの下位ビットを示す『SPN_EP_Low(EP_Low_id)』とからなる。ここでEP_Low_idとは、任意のEP_Lowを識別するための識別子である。
<Clip情報の説明その2.EP_map>
以下、具体例を通じて、EP_mapについて説明する。図8は、映画のビデオストリームに対するEP_map設定を示す図である。第1段目は、表示順序に配置された複数のピクチャ(MPEG4-AVCに規定されたBピクチャ、IDRピクチャ、Pピクチャ)を示し、第2段目は、そのピクチャにおける時間軸を示す。第4段目は、BD-ROM上のTSパケット列を示し、第3段目は、EP_mapの設定を示す。
第2段目の時間軸において、時点t1〜t7に、Access UnitとなるIDRピクチャが存在するものとする。そしてこれらのt1〜t7の時間間隔が、1秒程度であるとすると、映画に用いられるビデオストリームにおけるEP_mapは、t1〜t7をエントリー時刻(PTS_EP_start)として示し、これに対応づけてエントリー位置(SPN_EP_start)を示すよう、設定される。
<PlayList情報>
続いて、PlayList情報について説明する。拡張子“mpls”が付与されたファイル(00001.mpls)は、PlayList(PL)情報を格納したファイルである。PlayList情報は、MainPathと呼ばれる再生経路と、これに対応する再生情報とをプレイリスト(PL)として定義する情報である。
図9は、PlayList情報のデータ構造を示す図であり、本図に示すようにPlayList情報は、MainPathを定義するMainPath情報(MainPath())と、チャプターを定義するPlayListMark情報(PlayListMark())とからなる。
MainPathとは、主たるAVClip上に定義される再生経路である。一方Subpathは、SubClip上に定義される再生経路である。ここでSubClipとは、動画像たるビデオストリームを含まないAVClipである。
<PlayList情報の説明その1.MainPath情報>
先ずMainPathについて説明する。MainPathは、主映像たるビデオストリームやオーディオストリームに対して定義される再生経路である。
MainPathは、矢印mp1で示すように複数のPlayItem情報#1・・・・#mから定義される。PlayItem情報は、MainPathを構成する1つ以上の論理的な再生区間を定義する。PlayItem情報の構成は、引き出し線hs1によりクローズアップされている。この引き出し線に示すようにPlayItem情報は、再生区間のIN点及びOut点が属するAVClipの再生区間情報のファイル名を示す『Clip_Information_file_name』と、AVClipの符号化方式を示す『Clip_codec_identifier』と、再生区間の始点を示す時間情報『IN_time』と、再生区間の終点を示す時間情報『OUT_time』と、『STN_table』とから構成される。
図10は、AVClipと、PlayList情報との関係を示す図である。第1段目は、PlayList情報がもつ時間軸を示す。第2段目から第5段目は、EP_mapにて参照されているビデオストリーム(図6に示したものと同じ)を示す。
PlayList情報は、PlayItem情報#1,#2という2つのPlayItem情報を含んでおり、これらPlayItem情報#1,#2のIn_time,Out_timeにより、2つの再生区間が定義されることになる。これらの再生区間を配列させると、AVClip時間軸とは異なる時間軸が定義されることになる。これが第1段目に示すPlayItem時間軸である。このように、PlayItem情報の定義により、AVClipとは異なる時間軸の定義が可能になる。
<STN_table>
STN_tableは、Play ItemのClip_Information_file_nameで指定されているAVClipに多重化された複数エレメンタリストリームのうち、再生可能なものを示すテーブルである。具体的にいうとSTN_tableは、複数エレメンタリストリームのそれぞれについてのentryを、attributeと対応付けることで構成される。
図11は、STN_tableの内部構成を示す図である。本図に示すようにSTN_tableは、STN_tableにおけるentryと、attributeとの組み(entry-attribute)を複数含み、これらentry−attributeの組みの個数(number_of_video_stream_entries,number_of_audio_stream_entries,number_of_PG_textST_stream_entries,number_of_IG_stream_entries)を示すデータ構造になっている。
entry-attributeの組みは、図中の括弧記号“{”に示すように、Play Itemにおいて再生可能なビデオストリーム、オーディオストリーム、PG_textST_stream、IGストリームのそれぞれに対応している。
entry−attributeの詳細について説明する。図11は、entry−attributeの詳細を示す図である。
図12(a)は、ビデオストリームに対応したentry−attributeの組みを示す図である。
ビデオストリームにおけるentryは、AVClipを多重分離するにあたって、当該ビデオストリームの抽出に用いられるPIDを示す『ref_to_stream_PID_of_mainClip』を含む。
ビデオストリームにおけるattributeは、0x02に設定された『stream_coding_type』と、ビデオストリームの表示レートを示す『Frame_rate』等を含む。
図12(b)は、オーディオストリームに対応したentry−attributeの組みを示す図である。
オーディオストリームにおけるentryは、AVClipを多重分離するにあたって、当該オーディオストリームの抽出に用いられるPIDを示す『ref_to_stream_PID_of_mainClip』を含む。
オーディオストリームにおけるattributeは、0x80(LinearPCM),0x81(AC-3),0x82(DTS)の何れかに設定されることによりオーディオストリームのコーデイングタイプを示す『stream_coding_type』と、対応するオーディオストリームのチャネル構成を示し、マルチチャネル出力の可否を示す『audio_presentation_type』と、対応するオーディオストリームの言語属性を示す『audio_languagecode』等からなる。
マルチチャネルには、5.1CHのサラウンド音声の他、ステレオ音声も含まれるが、以降の説明では、マルチチャネルは、5.1CHのサラウンド音声のみを意味するとして説明を進める。
図12(c)は、PGストリームに対応したentry−attributeの組みを示す図である。
PGストリームにおけるentryは、AVClipを多重分離するにあたって、当該PGストリームの抽出に用いられるPIDを示す『ref_to_stream_PID_of_mainClip』を含む。
PGストリームにおけるattributeは、0x90に設定されることによりPGストリームのコーディックを示す『stream_coding_type』と、対応するPGストリームの言語属性を示す『PG_languagecode』とからなる。
図12(d)は、IGストリームに対応したentry−attributeの組みを示す図である。
IGストリームにおけるentryは、AVClipを多重分離するにあたって、当該IGストリームの抽出に用いられるPIDを示す『ref_to_stream_PID_of_mainClip』を含む。
IGストリームにおけるattributeは、0x91に設定されることによりIGストリームのコーディックを示す『stream_coding_type』と、対応するIGストリームの言語属性を示す『languagecode』とからなる。
<PlayList情報の説明その2.PlayListMark>
以上が、本実施形態に係るPlayItem情報についての説明である。続いてPlayListMark情報について説明する。
図13は、PlayList情報の、PlayListMark情報の内部構成を示す図である。本図の図中の引き出し線pm0に示すように、PlayListMark情報は、複数のPLMark情報(#1〜#n)からなる。PLmark情報(PLmark())は、PL時間軸のうち、任意の区間を、チャプター点として指定する情報である。引き出し線pm1に示すようにPLmark情報は、チャプター指定の対象たるPlayItemを示す『ref_to_PlayItem_Id』と、そのPlayItemにおける、チャプター位置を時間表記により示す『mark_time_stamp』とを含む。
図14は、PlayList情報の、PLMark情報によるチャプター位置の指定を示す図である。本図の第2段目から第5段目は、図10に示した、EP_mapと、AVClipとを示す。
本図の第1段目は、PLMark情報と、PL時間軸とを示す。この第1段目には、2つのPLMark情報#1〜#2が存在する。矢印kt1,2は、PLMark情報のref_to_PlayItem_Idによる指定を示す。この矢印からもわかるように、PLMark情報のref_to_PlayItem_Idは、PlayItem情報のそれぞれを指定していることがわかる。また、Mark_time_Stampは、PlayItem時間軸のうち、Chapter#1,#2になるべき時点を示す。このように、PLMark情報は、PlayItem時間軸上に、チャプター点を定義することができる。
AVClip−SubClipを同期させ得る同期区間の定義を可能とするのが、BD-ROMにおけるプレイリスト情報の特徴である。以上のClip情報及びプレイリスト情報は、”静的シナリオ”に分類される。何故なら、以上のClip情報及びプレイリスト情報により、静的な再生単位であるプレイリストが定義されるからである。以上で静的シナリオについての説明を終わる。
続いて”動的なシナリオ”について説明する。動的シナリオとは、AVClipの再生制御を動的に規定するシナリオデータである。”動的に”というのは、再生装置における状態変化やユーザからのキーイベントにより再生制御の中身がかわることをいう。BD-ROMでは、この再生制御の動作環境として2つのモードを想定している。1つ目は、DVD再生装置の動作環境と良く似た動作環境であり、コマンドベースの実行環境である。2つ目は、Java(登録商標)仮想マシンの動作環境である。これら2つの動作環境のうち1つ目は、HDMVモードと呼ばれる。2つ目は、BD-Jモードと呼ばれる。これら2つの動作環境があるため、動的シナリオはこのどちらかの動作環境を想定して記述される。HDMVモードを想定した動的シナリオはMovieObjectと呼ばれる。一方BD-Jモードを想定した動的シナリオはBD-J Objectと呼ばれる。
先ず初めにMovie Objectについて説明する。
<Movie Object>
Movie Objectは、図5に示したMovieObject.bdmvというファイルに格納され、ナビゲーションコマンド列を含む。
ナビゲーションコマンド列は、条件分岐、再生装置における状態レジスタの設定、状態レジスタの設定値取得等を実現するコマンド列からなる。Movie Objectにおいて記述可能なコマンドを以下に示す。
1)PlayPLコマンド
書式:PlayPL(第1引数,第2引数)
第1引数は、プレイリストの番号で、再生すべきプレイリストを指定することができる。第2引数は、そのプレイリストに含まれるPlayItemや、そのプレイリストにおける任意の時刻、Chapter、Markを用いて再生開始位置を指定することができる。
PlayItemによりPL時間軸上の再生開始位置を指定したPlayPL関数をPlayPLatPlayItem()、
ChapterによりPL時間軸上の再生開始位置を指定したPlayPL関数をPlayPLatChapter()、
時刻情報によりPL時間軸上の再生開始位置を指定したPlayPL関数をPlayPLatSpecified Time()という。
2)JMPコマンド
書式:JMP 引数
JMPコマンドは、現在の動的シナリオを途中で廃棄し(discard)、引数たる分岐先動的シナリオを実行するという分岐である。JMP命令の形式には、分岐先動的シナリオを直接指定している直接参照のものと、分岐先動的シナリオを間接参照している間接参照のものがある。
Movie Objectにおけるナビゲーションコマンドの記述は、DVDにおけるナビゲーションコマンドの記述方式と良く似ているので、DVD上のディスクコンテンツを、BD-ROMに移植するという作業を効率的に行うことができる。MovieObjectについては、以下の国際公開公報に記載された先行技術が存在する。詳細については、本国際公開公報を参照されたい。
国際公開公報W0 2004/074976

以上でMovie Objectについての説明を終える。続いてBD-J Objectについて説明する。
<BD-J Object>
BD-J Objectは、Java(登録商標)プログラミング環境で記述された、BD-Jモードの動的シナリオであり、00001〜00003.bobjというファイルに格納される。
図15は、BD-J Objectの内部構成を示す図である。アプリケーション管理テーブル(AMT)、プレイリスト管理テーブル(PLMT)とを含んで構成される。MovieObjectとの違いは、BD-J Objectにコマンドが直接記述されていない点である。つまりMovie Objectにおいて制御手順は、ナビゲーションコマンドにより直接記述されていた。これに対しBD-JObjectでは、Java(登録商標)アプリケーションに対する指定をアプリケーション管理テーブルに記載することにより、間接的に制御手順を規定している。このような間接的な規定により、複数動的シナリオにおいて制御手順を共通化するという、制御手順の共通化を効率的に行うことができる。
またMovieObjectにおけるプレイリスト再生は、プレイリスト再生を命じるナビゲーションコマンド(PlayPlコマンド)の記述によりなされるが、BD-JObjectにおけるプレイリスト再生は、プレイリスト再生手順を示すプレイリスト管理テーブルをBD-J Objectに組み込むことで記述が可能になる。
このBD-JモードにおけるJava(登録商標)アプリケーションについて説明する。ここでBD-Jモードが想定しているJava(登録商標)プラットフォームは、Java(登録商標)2Micro_Edition(J2ME)Personal Basis Profile(PBP 1.0)と、Globally Executable MHPspecification(GEM1.0.2)for package media targetsとをフル実装したものである。
このBD-JモードにおけるJava(登録商標)アプリケーションは、xletインターフェイスを通じて、Application Managerにより、制御される。xletインターフェイスは、“loaded”,“paused”、“active”,“destroyed”といった4つの状態をもつ。
上述したJava(登録商標)プラットフォームは、JFIF(JPEG)やPNG,その他のイメージデータを表示するためのスタンダードJava(登録商標)ライブラリを含む。このため、Java(登録商標)アプリケーションは、HDMVモードにおいてIGストリームにより実現されるGUIとは異なるGUIフレームワークを実現することができる。Java(登録商標)アプリケーションにおけるGUIフレームワークは、GEM1.0.2にて規定されたHAVi(HomeAudio/Video interoperability)フレームワークを含み、GEM1.0.2におけるリモートコントロールナビゲーション機構を含む。
これにより、Java(登録商標)アプリケーションは、HAViフレームワークに基づくボタン表示、テキスト表示、オンライン表示(BBSの内容)といった表示を、動画像の表示と組み合わせた画面表示を実現することができ、リモートコントロールを用いて、この画面表示に対する操作を行うことができる。
このJava(登録商標)アプリケーションの実体にあたるのが、図2におけるBDMVディレクトリ配下のBDJAディレクトリに格納されたJava(登録商標)アーカイブファイル(00001.jar,00002.jar)である。以降、Java(登録商標)アーカイブファイルについて、図16を参照しながら説明する。
<Java(登録商標)アーカイブファイル>
Java(登録商標)アーカイブファイル(図2の00001.jar,00002.jar)は、1つ以上のクラスファイル、1つ以上のデータファイル等を1つにまとめることで得られるファイルであり、BD-Jモードにおいて動作すべきJava(登録商標)アプリケーションを構成する。
図16は、アーカイブファイルにより収められているプログラム、データを示す図である。本図におけるプログラム、データは、枠内に示すディレクトリ構造が配置された複数ファイルを、java(登録商標)アーカイバでまとめたものである。枠内に示すディレクトリ構造は、Rootディレクトリ、Java(登録商標)1,2,3ディレクトリ、Image1,2,3ディレクトリとからなり、Rootディレクトリにcommon.pkgが、Java(登録商標)1,Java(登録商標)2,Java(登録商標)3ディレクトリにクラスファイル(00001.class〜00007.class)が、Image1,Image2,Image3ディレクトリに、00001.JPEG〜00003.JPEG、00004.PNG〜00006.PNGが配置されている。java(登録商標)アーカイブファイルは、これらをjava(登録商標)アーカイバでまとめることで得られる。かかるクラスファイル及びデータは、BD-ROMからキャッシュに読み出されるにあたって展開され、キャッシュ上で、ディレクトリに配置された複数ファイルとして取り扱われる。Java(登録商標)アーカイブファイルのファイル名における"zzzzz"という5桁の数値は、アプリケーションのID(applicationID)を示す。本Java(登録商標)アーカイブファイルがキャッシュに読み出された際、このファイル名における数値を参照することにより、任意のJava(登録商標)アプリケーションを構成するプログラム,データを取り出すことができる。
尚、本実施形態においてアプリケーションを構成するプログラム、データは、Java(登録商標)アーカイブファイルにまとめられたが、LZHファイル、zipファイルであってもよい。
以上が、BD-Jモードにおける動的シナリオについての説明である。
<Index.bdmv>
Index.bdmvは、タイトルを構成する、Movie Object又はBD-J Objectを示すテーブルである。
Titleにおいて、あるTitleの構成要素となるMovieObjectはどれであるか、又は、あるTitleの構成要素となるBD-J Objectはどれであるのかを定義する。
Index.bdmvについては、以下の国際公開公報に詳細が記載されている。詳細については、本公報を参照されたい。

国際公開公報WO 2004/025651 A1公報

以降、図15に示したアプリケーション管理テーブル、プレイリスト管理テーブルのそれぞれについてより詳しく説明する。
<アプリケーション管理テーブル>
アプリケーション管理テーブル(AMT)について説明する。アプリケーション管理テーブル(AMT)とは、上述したGEM1.0.2for packagemedia targetsにおける“アプリケーション シグナリング”を実装するテーブルである。“アプリケーション シグナリング”とは、GEM1.0.2が規定するMHP(MultimediaHome Platform)において、“サービス”を生存区間としてアプリケーションの起動、実行を行う制御をいう。本実施形態におけるアプリケーション管理テーブルは、この“サービス”の代わりに、BD-ROMにおける“タイトル”を生存区間にして、アプリケーションの起動、実行の制御を実現する。
図17(a)は、アプリケーション管理テーブルの内部構成を示す図である。本図に示すようにアプリケーション管理テーブルは、『life_cycle』と、『apli_id_ref』と、『run_attribute』と、『run_priority』からなる。
図17(b)は、アプリケーション管理テーブルを構成する情報要素の意味内容を示す。
『life_cycle』は、アプリケーションの”生存区間”を示す。
『apli_id_ref』は、”アプリケーション識別子”に対する参照値が記述されることにより、左記の生存区間をもつアプリケーションがどれであるかを示す。アプリケーション識別子は、Java(登録商標)アーカイブファイルにおいて、ファイル名として付与された5桁の数値zzzzzで表現される。『apli_id_ref』には、この5桁の数値が記述される。
『run_attribute』は、当該生存区間におけるアプリケーションの”起動属性”が記述される。起動属性には、AutoRun、Present、Suspedといった種別がある。
『run_priority』は、当該生存区間におけるアプリケーションの”起動優先度”が記述される。BD-J Objectでは、これらの情報を用いてアプリケーションの挙動を制御する。
<生存区間>
ここでアプリケーション管理テーブルに規定される情報のうち、生存区間について説明する。
生存区間とは、BD-ROMに記録されたコンテンツ全体の時間軸において、仮想マシンのワークメモリ上でアプリケーションが生存し得る区間を示す。ワークメモリにおける”生存”とは、そのアプリケーションを構成するxletプログラムが、Java(登録商標)仮想マシン内のワークメモリに読み出され、Java(登録商標)仮想マシンによる実行が可能になっている状態をいう。
Java(登録商標)仮想マシンにおいてアプリケーションを動作させる場合、時間軸の何処からアプリケーションによるサービスを開始し、時間軸の何処でアプリケーションによるサービスを終えるかという”サービスの開始点・終了点”を明確に規定することが重要になる。このサービスの開始点・終了点を規定するのが、アプリケーション管理テーブルにおける生存区間である。
一方、DVD-Videoのような読出専用ディスクで供給されるディスクコンテンツは、トップメニュータイトルを中核とした構造になっている。そのトップメニュータイトルから、個々の著作物へと分岐して再生を行い、その後再び、トップメニュータイトルに戻るという独特の状態遷移をなす。図18は、ディスクコンテンツにおける状態遷移を示す図である。本図における四角枠は、Titleである。Titleとは、ディスクコンテンツ特有の状態遷移において、1つの”状態”にあたる再生単位であり、このタイトルが、Java(登録商標)アプリケーションの生存区間として取り扱われる。
Titleには、BD-ROMのローディング時に最初に再生される『FirstPlayTitle』、Top-Menuを構成する『Top_menuTitle』、これら以外の一般的な『Title』がある。また、図中の矢印jh1,2,3,4,5,6,7,8は、Title間の分岐を象徴的に示す。本図に示される状態遷移とは、BD-ROMローディング時に、『FirstPlayTitle』が再生され、『Top_menuTitle』への分岐が発生して、トップメニューに対する選択待ちになるというものである。
トップメニューに対する選択操作がユーザによりなされれば、選択に従って該当Titleの再生を行い、再びTopMenu Titleに戻るとの処理を、BD-ROMのイジェクトがなされるまで延々と繰り返すというのが、ディスクコンテンツ特有の状態遷移である。
それでは、図18のような状態遷移をなすディスクコンテンツにおいて、Titleは、どのように生存区間として規定されるのであろうか。BD-ROMのローディングがなされた後、図18において矢印jh1,2,3,4・・・・・に示された参照符号の数値順に分岐がなされ、BD-ROMがイジェクトされたものとする。そうすると、BD-ROMがローディングされてから、イジェクトされるまでの連続時間帯を一本の時間軸と同視することができる。この時間軸を、ディスク全体の時間軸とする。図19(a)は、ディスク全体の時間軸を示す図であり、図19(b)は、この時間軸における構成を示す。図19(b)に示すように、ディスク全体の時間軸は、FirstPlayTitleが再生されている区間、TopMenu Titleが再生されている区間、title#1が再生されている区間等からなる。これらTitleの再生区間はどのように規定されているかというと、Titleは、唯一のBD-JObjectから構成されるから、どれかのMovieObject又はBD-J Objectが、有効になっている期間をTitleの再生区間と考えることができる。
つまりFirstPlay Title、TopMenu Title、その他のTitleは、何れも動的シナリオから構成されるから、Titleを構成するBD-JObjectのうち、どれかカレントBD-J ObjectとしてActivatedされ、再生装置内において解読・実行に供されている期間を、Titleの再生区間と定義することができる。図20(a)は、BD-ROM全体の時間軸において、識別子bobj_idにより特定されるBD-JObjectから特定されるタイトル再生区間を示す図である。ここで識別子bobj_idにより特定されるBD-J Objectが、1つのTitleを構成しているなら、その識別子bobj_idにより特定されるBD-JObjectが有効になっているBD-ROM時間軸上の一区間を、Titleの再生区間と考えることができる。
ここでBD-J ObjectがActivateされている期間の終期は、Title分岐がなされるまでである。つまり、Title分岐がなされるまで、実行の対象になっている動的シナリオは、カレントBD-JObjectとして扱われるから、そのBD-J ObjectにおいてJumpTitleが発生するまでの1つの区間を、Title区間として扱う。
続いてTitle区間と、PL時間軸との関係について説明する。上述したようにMovieObject、BD-J Objectでは、1つの処理手順としてプレイリスト再生手順を記述することができる。プレイリスト再生手順の記述があれば、上述したPL時間軸の全部又は一部がTitle区間に帰属することになる。図20(a)の一例においてBD-JObjectに、プレイリスト管理テーブルが記述されているとする。この場合、BD-J Objectに対応するTitle区間には、図20(b)に示すように、PL時間軸が帰属する。このPL時間軸には更に、複数チャプター(Chapter#1,#2,#3)が定義され得るため、BD-ROM上の時間軸には、BD-ROM全体−Title−プレイリスト−チャプターというドメインが存在することになる。これらのドメインを用いて、アプリケーションの生存区間を記述することができる。尚、プレイリスト再生は、アプリケーション実行と同時になされため、プレイリスト再生の途中で、Title分岐が発生することがある。この場合、1つのTitle再生区間内にはプレイリスト時間軸全体ではなく、プレイリスト時間軸の一部分のみが帰属することになる。つまり1つのTitleの再生区間において、プレイリスト時間軸の全体が帰属するか、その一部分が帰属するかは、Title分岐が何時発生するかによって変わる。
図21は、図20(b)の時間軸上に規定される、生存区間の典型を示す図である。本図に示すようにアプリケーションには、Titleを生存区間にした”タイトルバウンダリアプリケーション”、Title内におけるチャプターを生存区間にした”チャプターバウンダリアプリケーション”、BD-ROM全体の時間軸を生存区間にした”タイトルアンバウンダリーアプリケーション”という3つの典型がある。
このうちタイトルバウンダリアプリケーションの生存区間は、そのタイトルの識別子を用いて定義することができる。またチャプターバウンダリアプリケーションの生存区間は、チャプターが属するタイトルの識別子と、そのチャプターの識別子との組みを用いて定義することができる。
プラットフォームが動作していたとしても、Titleやチャプターという生存区間が終われば、リソースをアプリケーションから回収することができる。リソース回収の機会を保証するので、プラットフォームの動作を安定化させることができる。
近い将来、実施されるであろうディスクコンテンツを題材に選んで、アプリケーション管理テーブルにおける生存区間記述について、具体例を交えて説明する。ここで題材にするディスクコンテンツは、映像本編を構成する本編タイトル(title#1)、オンラインショッピングを構成するオンラインショッピングタイトル(title#2)、ゲームアプリケーションを構成するゲームタイトル(title#3)という、性格が異なる3つのタイトルを含むものである。図22は、本編タイトル、オンラインショッピングタイトル、ゲームタイトルという3つのタイトルを含むディスクコンテンツを示す図である。本図における右側にはIndex.bdmvを記述しており、左側には3つのタイトルを記述している。
右側における破線枠は、各アプリケーションがどのタイトルに属しているかという帰属関係を示す。3つのタイトルのうちtitle#1は、application#1、application#2、application#3という3つのアプリケーションからなる。title#2は、application#3、application#4という2つのアプリケーション、title#3は、application#5を含む。図22の一例においてapplication#3は、title#1、title#2の双方で起動される。
図22の破線に示される帰属関係から各アプリケーションの生存区間をグラフ化すると、図23(a)のようになる。本図において横軸は、タイトル再生区間であり、縦軸方向に各アプリケーションの生存区間を配置している。ここでapplication#1、application#2は、title#1のみに帰属しているので、これらの生存区間は、title#1内に留まっている。application#4は、title#2のみに帰属しているので、これらの生存区間は、title#2内に留まっている。application#5は、title#3のみに帰属しているので、これらの生存区間は、title#3内に留まっている。application#3は、title#1及びtitle#2に帰属しているので、これらの生存区間は、title#1−title#2にわたる。この生存区間に基づき、アプリケーション管理テーブルを記述すると、title#1,#2,#3のアプリケーション管理テーブルは図23(b)のようになる。このようにアプリケーション管理テーブルが記述されれば、title#1の再生開始時においてapplication#1、application#2、application#3をワークメモリにロードしておく。そしてtitle#2の開始時にapplication#1、application#2をワークメモリから削除してapplication#3のみにするという制御を行う。これと同様にtitle#2の再生開始時においてapplication#4をワークメモリにロードしておき、title#3の開始時にapplication#3,#4をワークメモリから削除するという制御を行いうる。
更に、title#3の再生中においてapplication#5をワークメモリにロードしておき、title#3の再生終了時にapplication#5をワークメモリから削除するという制御を行いうる。
タイトル間分岐があった場合でも、分岐元−分岐先において生存しているアプリケーションはワークメモリ上に格納しておき、分岐元にはなく、分岐先にのみ存在するアプリケーションをワークメモリに読み込めば良いから、アプリケーションをワークメモリに読み込む回数は必要最低数になる。このように、読込回数を少なくすることにより、タイトルの境界を意識させないアプリケーション、つまりアンバウンダリなアプリケーションを実現することができる。
続いてアプリケーションの起動属性についてより詳しく説明する。起動属性には、自動的な起動を示す「AutoRun」、自動起動の対象ではないが、仮想マシンのワークメモリに置いて良いことを示す「Present」、仮想マシンのワークメモリにはおかれるが、CPUパワーの割り当ては不可となる「Suspend」がある。
「AutoRun」は、対応するタイトルの分岐と同時に、そのアプリケーションをワークメモリに読み込み、且つ実行する旨を示す属性である。あるタイトルから、別のタイトルへの分岐があると、アプリケーション管理を行う管理主体(アプリケーションマネージャ)は、その分岐先タイトルにおいて生存しており、かつ起動属性がAutoRunに設定されたアプリケーションを仮想マシンのワークメモリに読み込み実行する。これによりそのアプリケーションは、タイトル分岐と共に自動的に起動されることになる。
起動属性「Present」は、継続属性であり、分岐元titleにおけるアプリケーションの状態を継続することを示す。また対応するアプリケーションを実行してよいことを示す属性である。起動属性が「Present」である場合、この起動属性が付与されたアプリケーションは、他のアプリケーションからの呼び出しが許可されることになる。アプリケーション管理を行う管理主体(アプリケーションマネージャ)は、起動中のアプリケーションから呼出があると、そのアプリケーションのapplicationIDが、アプリケーション管理テーブルに記述されていて、起動属性が「Present」であるか否かを判定する。「Present」であれば、そのアプリケーションをワークメモリにロードする。一方、その呼出先アプリケーションのapplicationIDがアプリケーション管理テーブルに記述されていない場合、そのアプリケーションはワークメモリにロードされない。アプリケーションによる呼出は、この「Present」が付与されたアプリケーションに限られることになる。「Present」は、起動属性を明示的に指定しない場合に付与されるデフォルトの起動属性であるから、あるアプリケーションの起動属性が無指定「−−」である場合、そのアプリケーションの起動属性の起動属性はこのPresentであることを意味する。
「Suspend」とは、リソースは割り付けられているが、CPUパワーは割り当てられない状態にアプリケーションが置かれることをいう。かかるSuspendは、例えばゲームタイトルの実行中に、サイドパスを経由するという処理の実現に有意義である。
図24は、起動属性がとり得る三態様(Present、AutoRun、Suspend)と、直前タイトルにおけるアプリケーション状態の三態様(非起動、起動中、Suspend)とがとりうる組合せを示す図である。直前状態が”非起動”である場合、起動属性が”AutoRun”であるなら、分岐先タイトルにおいてそのアプリケーションは、起動されることになる。
直前状態が”非起動”であり、起動属性が”Present”、”Suspend”であるなら、分岐先タイトルにおいてそのアプリケーションは、何もせず、状態を継続することになる。
直前状態が”起動中”である場合、起動属性が”Present”、”AutoRun”であるなら、分岐先タイトルにおいてそのアプリケーションは、何もせず、状態を継続することになる。
起動属性が”Suspend”であるなら、アプリケーションの状態はSuspendされることになる。直前状態が”Suspend”である場合、分岐先タイトルの起動属性が”Suspend”ならSuspendを維持することになる。”Present”又は”AutoRun”であるなら、分岐先タイトルにおいてそのアプリケーションは、レジュームすることになる。アプリケーション管理テーブルにおいて生存区間及び起動属性を定義することにより、タイトル再生区間の進行に沿って、Java(登録商標)アプリケーションを動作させるという同期制御が可能になり、映像再生と、プログラム実行とを伴った、様々なアプリケーションを世に送り出すことができる。
尚、直前状態が”Suspend”であり、分岐先タイトルの起動属性が”Present”の場合は、直前状態、すなわちサスペンド状態を維持しても良い。
最後に、各アプリケーションに対する”起動優先度”について説明する。
この起動優先度は、0〜255の値をとり、メモリリソース枯渇時や、CPU負荷が高まった時に、どのアプリケーションを強制的に終了させるか、また、どちらのアプリケーションからリソースを奪うかという処理をアプリケーションマネージャが行うにあたっての判断材料になる。この場合、アプリケーションマネージャは、起動優先度が低いアプリケーションの動作を終了し、起動優先度が高いアプリケーションの動作を継続させるとの処理を行う。
また起動優先度は、再生中プレイリストに対する要求が競合した場合のアプリケーション間の調停でも利用される。ここであるアプリケーションが、あるプレイリストの早送りしているものとする。ここで別のアプリケーションが同じプレイリストに対するポーズ要求を行ったとすると、これらのアプリケーションに付与された起動優先度を比較する。そして早送りを命じたアプリケーションの起動優先度が高いなら、かかるアプリケーションによる早送りを継続して行う。逆にポーズを命じたアプリケーションの起動優先度が高いなら、早送り中プレイリストのポーズを行う。
以上の生存区間・起動属性・起動優先度により、仮想マシン上で動作し得るアプリケーションの数を所定数以下に制限するよう規定しておくことがオーサリング時に可能なる。そのため、アプリケーションの安定動作を保証することができる。
<プレイリスト管理テーブル>
以上がアプリケーション管理テーブルについての説明である。続いてプレイリスト管理テーブル(PLMT)について説明する。プレイリスト管理テーブルとは、アプリケーションの生存区間において、各アプリケーション実行と同時に行うべき再生制御を示すテーブルである。アプリケーションの動作というのは不安定であり、起動の失敗や異常終了がありうる。そこで起動失敗、異常終了があった場合のFailSafe機構として、本実施形態ではアプリケーションの生存区間毎に、プレイリスト管理テーブルを設けている。プレイリスト管理テーブルは、あるアプリケーションの生存区間が開始した際、これと同時に行うべき再生制御を規定する情報である。この再生制御とは、プレイリスト情報に基づくAVClip再生であり、プレイリスト情報による再生制御を同時に行うことで、アプリケーション実行と、プレイリスト再生とが同時になされることになる。プレイリスト管理テーブルは、アプリケーションの生存区間毎に設けられるとしたが、プレイリスト管理テーブルが設けられるアプリケーションは、タイトルバウンダリのアプリケーションに限られる。何故ならタイトルアンバウンダリーアプリケーションは、全タイトルを生存区間にしているため、アプリケーション実行と同時にプレイリスト再生を行うという制御は、適合しないからである。
チャプターバウンダリアプリケーションは、1つのプレイリスト内のチャプターからアプリケーション実行を開始するという前提の下で生存区間が規定されているため、プレイリスト再生を規定する必要はないからである。以上のことからプレイリスト管理テーブルは、1つ以上のTitleからなる生存区間に定義されることになる。
図25(a)は、プレイリスト管理テーブルの内部構成を示す図である。本図に示すようにプレイリスト管理テーブルは、『PL_id_ref』と、『Playback_Attribute』とからなる。
図25(b)は、プレイリスト管理テーブルを構成する情報要素の意味内容を示す。
『PL_id_ref』は、プレイリスト識別子に対する”参照値”が記述されることにより、アプリケーションの生存区間において再生可能となるプレイリストがどれであるかを示す。プレイリスト識別子は、ファイルYYYYY.MPLSにおいて、ファイル名として付与された5桁の数値YYYYYで表現される。このYYYYYが記述されることにより、『PL_id_ref』は、対応するTitleにおいて再生可能となるプレイリストがどれであるかを示す。
『Playback_Attribute』は、アプリケーション管理テーブルにおける起動属性に倣った属性であり、『PL_id_ref』に記述されたプレイリストを、タイトル開始時において、どのように再生するかを規定する再生属性である。プレイリストに対する再生属性には、『AutoPlay』、『Present』といった種別がある。
『AutoPlay』とは、対応するタイトルの分岐と同時に、そのプレイリストを再生させる旨を示す属性である。あるタイトルから、別のタイトルへの分岐があると、アプリケーション管理を行う管理主体(アプリケーションマネージャ)は、その分岐先タイトルにおいて再生可能であり、かつ再生属性がAutoPlayに設定されたプレイリストの再生を開始する。これにより起動属性がAutoPlayに設定されたプレイリストは、タイトル分岐と共に自動的に起動されることになる。
『Present』とは、起動属性におけるPresent同様、継続属性であり、分岐元titleにおけるプレイリストの状態を継続することを示す。また対応するプレイリストを再生してよいことを示す属性である。例えば連続して再生される2つのTitleがあり、前のタイトル側のプレイリスト管理テーブルでは、あるプレイリストの再生属性がAutoPlayに設定され、カレントタイトル側のプレイリスト管理テーブルでは、そのプレイリストの再生属性がPresentに設定されているものとする。ここでプレイリストの再生時間が2時間長であり、このうち1時間が経過した時点で分岐が発生したとする。この場合カレントタイトルでは、再生属性がPresentに設定されているので、カレントタイトルにおいて、そのプレイリストは、1時間という再生済み区間の直後から、再生されることになる。このように再生属性をPresentに設定しておけば、Title間の分岐があった場合でも、プレイリスト再生をその残りの部分から開始することができる。これにより分岐し合う一連のTitleにおいて、共通のプレイリストを再生するという”タイトル間におけるプレイリスト再生の共通化”を容易に実現することができる。また分岐先タイトルが複数ある場合、これら複数タイトルの再生属性を何れもPresentにしておけば、複数のうちどれに分岐したとしても、1つの共通のプレイリスト再生を継続させることができる。
尚Titleの境界は、シームレス再生を保証しなくてもよいので、上述したように複数Title間で1つのプレイリストを再生しようとする場合、分岐前後でプレイリスト再生を中断させることは許容される。
また、再生属性が「Present」である場合、この再生属性が付与されたプレイリストは、他のアプリケーションからの再生要求により再生されることになる。アプリケーション管理を行う管理主体(アプリケーションマネージャ)は、起動中のアプリケーションから、プレイリストの再生要求があると、要求を受けたプレイリストのPL_id_refが、プレイリスト管理テーブルに記述されていて、再生属性が「AutoPlay」か「Present」のいずれかか否かを判定する。「AutoPlay」か「Present」のいずれかであれば、そのプレイリストを再生する。一方、要求を受けたプレイリストのPL_id_refがプレイリスト管理テーブルに記述されていない場合、そのプレイリストを再生しない。アプリケーションの要求によるプレイリスト再生は、この「AutoPlay」か「Present」のいずれかが付与されたプレイリストに限られることになる。「Present」は、再生属性を明示的に指定しない場合に付与されるデフォルトの再生属性であるから、あるプレイリストの再生属性が無指定「−−」であるとそのプレイリストの再生属性はこのPresentであることを意味する。
図26は、プレイリスト管理テーブル、アプリケーション管理テーブルにより規定されるタイトルの具体例を示す。図26の第1段目は、Titleの再生映像を示し、第2段目は、Titleの時間軸を示す。第3段目はPLMTにより再生が規定されるプレイリスト、第4段目は、アプリケーション実行を示す。第4段目においてapplication#1は、Titleの開始と共に起動されており、その後、時点t1において動作状態になる。一方PlayList#1は、Titleの開始と共に再生が開始されている。Playlist#1の再生は、Titleの開始と同じ時点に開始されているので、第1段目の左側に示すように、Titleの再生開始直後から、アプリケーションが動作状態になるまでのスタートアップディレイにおいて、プレイリストの再生画像gj1がフルスクリーン表示される。プレイリスト管理テーブルの再生属性を、”AutoPlay”に設定しておくことにより、Java(登録商標)アプリケーションが動作状態になるまで5〜10秒という時間がかかったとしても、その間、”とりあえず何かが写っている状態”になる。この”とりあえず何かが写っている状態”によりタイトル実行開始時のスタートアップディレイを補うことができる。
一方、application#1は、時点t1で動作状態になるので、プレイリスト再生画像を子画面、アプリケーションの実行画像を親画面にした合成画像gj2が時点t1において表示されることになる。アプリケーションの実行画像は、Startボタン,continueボタン、POWERインディケータを配置したゲーム用のGUIフレームワークであり、かかるGUIフレームワークの描画処理をJava(登録商標)アプリケーションが実行することでなされる。
こうした、プレイリストの再生映像と、Java(登録商標)アプリケーションのGUIフレームワークとを組み合わせた再生映像をなすタイトルを構成することができるのが、PLMTの特徴である。
図27は、カレントタイトルがとり得る三態様(プレイリスト管理テーブル無し(i)、プレイリスト管理テーブル有りで尚且つAutoPlay(ii)、プレイリスト管理テーブル有りで尚且つ無指定(iii))と、直前タイトルにおけるプレイリストの状態(非再生状態、再生中状態)とがとりうる6通りの組合せを示す図である。
本図における6通りの組合せのうち、”直前状態=非再生状態”と、”カレントタイトル=プレイリスト管理テーブル有り、尚且つ、カレントタイトルの再生属性=AutoPlay”との組合せにおいて、分岐先タイトルにおけるプレイリストの再生は、自動的に開始することになる。
また”直前状態=再生中状態”と、”カレントタイトル=プレイリスト管理テーブル無し”との組合せにおいて、分岐先タイトルでのプレイリストの再生は、自動的に停止することになる。
そしてこれら2つの組合せ以外は全て、前のタイトルの状態を継続することになる。プレイリスト管理テーブルに基づくプレイリスト再生の開始は、分岐元タイトルにおいて非再生状態であり、分岐先タイトルにおいてAutoPlay属性が付与されている場合に限られるので、タイトルの分岐発生する毎に、プレイリスト再生を開始させる必要はない。タイトル間の分岐が多数発生したとしても、プレイリスト再生を開始させる回数を必要最低数にすることができる。
プレイリスト管理テーブル及びアプリケーション管理テーブルの記述例について図28(a)を参照しながら説明する。ここで想定する具体例は、2つの連続するTitle(title#1、title#2)であリ、そのうちtitle#1では、AutoRunアプリケーションとしてapplication#1、application#2が記述されている。title#2ではAutoRunアプリケーションとしてapplication#2、application#3が記述されている。一方、title#1のプレイリスト管理テーブルには、AutoPlayプレイリストとしてPlayList#1が、title#2のプレイリスト管理テーブルには、AutoPlayプレイリストとしてPlayList#2が記述されているものとする。図28(b)は、図28(a)のように記述されたアプリケーション管理テーブル、プレイリスト管理テーブルによりプレイリスト再生、アプリケーション実行がどのように進行するかを示す図である。
title#1においてアプリケーション管理テーブル、プレイリスト管理テーブルは上述したように設定されているので、title#1の開始時にはapplication#1、application#2が自動的に起動され、PlayList#1の再生が自動的に開始される。
title#2においてアプリケーション管理テーブル、プレイリスト管理テーブルは上述したように設定されているので、title#1側に記載はあるが、title#2側には記載がないapplication#1の実行は停止させられる。同じくtitle#1側に記載があるが、title#2側に記載がないPlayList#1の再生も停止させられる。
title#1側に記載はないが、title#2側に記載があるPlayList#2、application#3は再生及び実行が自動的に開始することになる。タイトル分岐があれば、その分岐を契機に、再生すべきプレイリストを他のプレイリストに切り換えることができる。このようにアプリケーション管理テーブル、プレイリスト管理テーブルを用いることで分岐を契機にして、プレイリスト再生を切り換えるという処理をオーサリング段階において規定しておくことができる。
また図28では、application#1、application#2、application#3にはそれぞれ200,128,200の起動優先度が与えられている。これらの起動優先度を付与することにより、PlayList#1、PlayList#2に対する制御要求が競合した場合の調停を行わせることができる。ここでapplication#1がPlayList#1に対し早送りを命じているものとする。一方、application#2がポーズ要求を行ったとする。この場合、アプリケーション管理テーブルに各アプリケーションに対する起動優先度が規定されているため、この起動優先度に従って、両アプリケーションに対する調停がなされることになる。その結果、application#2による要求を退け、application#1による制御を継続するという処理をオーサリング時に規定しておくことができる。起動優先度をプレイリスト管理テーブルと併せて利用することにより、プレイリストに対する制御が競合した場合の調停さえも再生装置に行わせることができる。
プレイリスト管理テーブル記述の他の具体例について説明する。図29(a)は、プレイリスト管理テーブルの他の記述例を示す図である。本図で想定しているのは、2つの連続するタイトル(title#1、title#2)において、title#1側のプレイリスト管理テーブルには、AutoPlayプレイリストとしてPlayList#1が、再生可能なプレイリストとしてPlayList#2が記述され、title#1側のアプリケーション管理テーブルには、AutoPlayアプリケーションであるapplication#1と、実行可能なアプリケーションとしてapplication#2が記述されている。一方title#2側のプレイリスト管理テーブルには再生可能なプレイリストとしてPlayList#2、PlayList#3が記述され、アプリケーション管理テーブルには、AutoRunアプリケーションとしてapplication#3が記述されている。図29(b)は、図29(a)のケースに基づくアプリケーション実行及びプレイリスト再生の進行を示す図である。title#1のアプリケーション管理テーブルには、AutoRunアプリケーションとしてapplication#1が記述されているので、title#1の開始時にはapplication#1が自動起動される。一方、title#1のアプリケーション管理テーブルには、実行可能アプリケーションとしてapplication#2が記述されているので、application#1からの呼出yd1によりapplication#2が起動される。
title#2側のアプリケーション管理テーブルにおいてapplication#1、application#2が非生存になっており、代わりにAutoRunアプリケーションとしてapplication#3が記述されている。そのためtitle#1−title#2の境界部では、application#1、application#2を停止し、application#3を自動的に起動するとの処理がなされる。プレイリスト管理テーブルを参照すると、title#1側のプレイリスト管理テーブルは、PlayList#1、PlayList#2が再生可能と記述されており、そのうちPlayList#1はAutoPlay属性になっている。そのためPlayList#1は、title#1の開始時において自動的に再生される。
title#1側のプレイリスト管理テーブルには、PlayList#1の他、PlayList#2が再生可能であると記述されているので、application#1はPlayList#1の再生を停止させ、代わりにPlayList#2の再生を要求することにより、プレイリスト交代を実行することができる。
title#2側のプレイリスト管理テーブルには、再生可能なプレイリストとしてPlayList#2、PlayList#3が記述されている。そしてAutoPlay属性が付与されたプレイリストはない。そのため、仮にtitle#1開始時において自動再生されたPlayList#1の再生がtitle#2まで継続したとしても、PlayList#1の再生は自動的に終了することになる。
しかしPlayList#2再生が継続したままtitle#2に至れば、PlayList#2再生はtitle#2開始以降も継続する。title#2のプレイリスト管理テーブルには、再生可能なプレイリストとしてPlayList#2、PlayList#3が記述されている。そのため、title#2で実行中となるapplication#3は、PlayList#2の再生を停止し、代わりにPlayList#3の再生を要求することにより、再生中のプレイリストを交代させることができる。
以上のようにプレイリスト管理テーブルの再生属性を、”AutoPlay”に設定しておけば、Java(登録商標)アプリケーションの起動に、5〜10秒という時間がかかったとしても、その起動がなされている間、”とりあえず何かが写っている状態”になる。タイトル実行開始時において、アプリケーション起動に時間がかかったとしても、画面は、”とりあえず何かが写っている状態”になる。これにより、アプリケーション起動に時間がかかることによるスタートアップディレイの長期化を補うことができる。
アプリケーション管理テーブル及びプレイリスト管理テーブルを定義することにより、タイトル再生区間の進行に沿って、Java(登録商標)アプリケーションを動作させるという同期制御が可能になり、映像再生と、プログラム実行とを伴った、様々なアプリケーションを世に送り出すことができる。
<動作>
次に、本実施の形態の再生装置100のBD-ROM110をロードして動画が再生されたり、メニュー表示されるまでの動作を図30に示すフローチャートを用いて説明する。当該動作はアプリケーションマネージャ37による処理でもある。
図30に示すように、まず、Title jumpがなされたかどうかを判定する(ステップS1)。
Title jumpがあった場合(ステップS1のYES)には、タイトル切替を実行し(ステップS7)、次にカレントタイトルに対応するBD-JObjectにPLMTが存在するかどうかをみる(ステップS8)。
PLMTが存在する場合には(ステップS8のYES)、前のタイトルではPLMTに記載されていなかったが、カレントタイトルではPLMTに記載されており、AutoPlay 属性が付与されているプレイリストの再生を開始する。PLMTが存在しなかった場合には(ステップS8のNO)、前タイトルではPLMTに記載されていたが、カレントタイトルではPLMTに記載されていないAutoPlay 属性が付与されているプレイリストの再生を停止する。
次に、カレントタイトルに対応するアプリケーション管理テーブルがあるかどうかを判断する(ステップS11)。
アプリケーション管理テーブルがあった場合(ステップS11のYES)には、前タイトルを生存区間としていないが、カレントタイトルを生存区間としているJava(登録商標)アプリケーションのうち、AutoRun属性を付与されているアプリケーションを起動する。アプリケーション管理テーブルがなかった場合(ステップS11のNO)には、前タイトルを生存区間としているがカレントタイトルを生存区間としていないアプリケーションを終了する。
続いて、アプリケーションの起動に成功したかどうかを判断する(ステップS14)。アプリの起動に成功していた場合(ステップS14のYES)には、ビデオプレーン5及びビデオプレーン制御部17に対してAutoPlay属性を付与されているプレイリストの再生画像のクォーター化の指示を実行する。また、当該指示を受けたStillプレーン制御部17は、Stillプレーン16からのスチルデータの出力を実行する(ステップS15)。そしてテレビ130にはStillプレーン16のスチルデータも合成された画像が表示される。アプリケーションの起動に失敗した場合(ステップS14のNO)には、ステップS23に移行して以降の処理を実行する。
Title Jumpが発生しなかった場合(ステップS1のNO)には、メインアプリが終了しているかどうかを検出する(ステップS2)。
メインとなるアプリケーションが終了していた場合(ステップS2のYES)には、当該アプリケーションが正常に終了したかどうかを判断する(ステップS5)。正常に終了していた場合(ステップS5のYES)には、ステップS1に戻り、以降の処理を実行する。
メインとなるアプリケーションが異常終了していた場合(ステップS5のNO)には、Auto Play PLの再生中であったかどうかをみる(ステップS21)。再生中であった場合(ステップS21のYES)には、CPU25は、AutoPlay PLの再生画像をフルスクリーン化するようにビデオプレーン5のデータをフルスクリーンサイズで出力させる。また、Stillプレーン制御部17に、対しても同じ指示をだし、当該指示を受けてStillプレーン制御部17は、Stillプレーン16に格納されているスチルデータの出力を抑止する(ステップS22)。そしてテレビ130には、スチルデータが合成されていない合成画像が表示される。
そして再起動カウンタが0であるかどうかを判定する(ステップS23)。ここで再起動カウンタとはアプリケーションの再起動回数を規定するための制御変数である。再起動カウンタが0である場合(ステップS23のYES)にはステップS1に戻り、以降の処理を実行する。再起動カウンタが0でなかった場合(ステップS23のNO)には、再起動カウンタをデクリメントしてステップS12に移行して以降の処理を実行する。ステップS23、S24の手順を踏むことでアプリケーションの起動を保証する。なお再起動カウンタは本フローチャートの起動時においてリセットされる。
メインとなるアプリケーションが終了していなかった場合(ステップS2のNO)には、次に、Auto Play属性が付与されているプレイリストの再生が終了しているかどうかを判断する(ステップS3)。AutoPlay 属性が付与されているプレイリストの再生が終了していた場合(ステップS3のYES)には、ステップS1に戻り以降の処理を実行する。Auto Play 属性が付与されているプレイリストの再生が終了していなかった場合(ステップS3のNO)には、BDドライバ1にBD-ROMがあるかどうかを検出する(ステップS4)。
BDドライバ1にまだBD-ROMが存在する場合(ステップS4のYES)には、ステップS1に戻り以降の処理を実行する。BDドライバ1にBD-ROMが存在しない場合(ステップS4のNO)には、全アプリケーションの終了指示を実行し(ステップS6)、終了する。
以上が、BD-ROM110が再生装置100に装着されてから取り出されるまでの動作である。ここに述べたように、再生画像がフルスクリーンの場合と、クォータの場合とで、Stillプレーン16からのデータの出力の可否を決定する。フルスクリーンの場合においては、Stillプレーン16のデータの合成は必要ないため出力せず、こうすることでStillプレーン16の読み出しに用いられるメモリバスバンド幅を開けることができる。
<実施の形態2>
次に本発明に係る実施の形態2について図面を参照しながら説明する。
実施の形態2においては、BDアプリケーションにおいて、より豊かなインタラクティブ性を実現するためにJava(登録商標)のようなプログラミング環境を導入すると伴に、Stillプレーン又はPGプレーンからのデータの出力を制御することでメモリバスバンド幅を有効活用する内容を示す。基本的には実施の形態1に基づく内容であり、拡張または異なる部分についての説明を行う。
<再生装置100のハードウェア構成>
再生装置100については、実施の形態1と異なり更に、PGプレーン制御部28が追加されている。ここではPGプレーン制御部28の機能について説明する。その他の各部については、実施の形態1に示したものと変わらない。
PGプレーン制御部28は、PGプレーン14からのデータの出力を制御する機能を有する。具体的には、CPU25からビデオプレーン5に対するスケーリング指示を受けて、当該スケーリング指示がテレビ130の全体への表示指示であるフルスケーリングである場合に、PGプレーン14からのデータを出力させる。そしてスケーリング指示がフルスケーリングの1/4であるクォータスケーリングである場合に、PGプレーン14からのデータの読み出しを抑制する。
<動作>
図32は、実施の形態2においてアプリケーションの要求に基づいて、PGプレーン14並びにStillプレーン16からのデータの出力制御を行うことを示したフローチャートである。
図32に示すように、まずアプリケーションからビデオスケーリングを要求されてCPU25はビデオプロセッサ(図示せず)へビデオスケーリングを指示する(ステップS101)。
次いで、ビデオプロセッサは、ビデオスケーリングが成功したかどうかをCPU25に通知する(ステップS102)。ビデオスケーリングが成功した場合(ステップS102のYES)には、当該スケーリング指示が、テレビ130の表示画面全体への表示指示であるフルスケーリング指示であるかどうかを判定する(ステップS103)。
フルスケーリング指示であった場合(ステップS103のYES)には、CPU25は、Stillプレーン制御部17に対してStillプレーン16からのデータの出力を抑制するように指示する(ステップS104)。また、CPU25は、PGプレーン制御部28に対してPGプレーン14からのデータの出力を実行するように指示し(ステップS106)、終了する。
フルスケーリング指示でなかった場合(ステップS103のNO)、即ちビデオスケーリングの指示がフルスケーリングの1/4であるクォータスケーリングであった場合には、CPU25は、Stillプレーン制御部17に対してStillプレーン16からのデータの出力を実行するように指示する(ステップS105)。また、CPU25は、PGプレーン制御部28に対してPGプレーン14からのデータの出力を抑制するよう指示し(ステップS107)、終了する。
なお、ステップS102において、ビデオスケーリングに失敗していた場合(ステップS102のNO)においても、本フローチャートを終了する。
以上のようにアプリケーションによる全画面へのビデオスケーリングが成功した場合には、Stillプレーン16からのデータの読み出しを抑制し、PGプレーン14からのデータの読み出しを実行することができる。またアプリケーションによる全画面の1/4サイズへのビデオスケーリングが成功した場合には、Stillプレーン16からのデータの読み出しを実行し、PGプレーン14からのデータの読み出しを抑制することができる。
PGプレーン14に関してもここに示したようにビデオスケーリングに基づく読み出しの制御を行い、ビデオスケーリングがクォータスケーリングである場合にはデータの出力を抑制することで、当該出力に用いるはずだったメモリバスバンド幅を空けることができる。
<実施の形態3>
実施の形態1においてはStillプレーン16の出力制御を行い、Stillプレーン16のデータの出力が必要ない場合にはメモリバスバンド幅をその分だけ開けることができることを示した。
実施の形態3においては、メモリバスバンド幅並びにメモリ領域を有効活用できる別の手法を示す。ここでは実施の形態1とは異なる部分についてのみ記述する。
実施の形態1及び2に示したようにStillプレーン16からのデータの出力はビデオスケーリングがフルスケールの場合にはStillプレーン16からのデータの出力を抑制し、ビデオスケーリングがクォータサイズの場合にはStillプレーン16からのデータの出力を実行する。
また、PGプレーン14に関してもビデオスケーリングに基づく出力制御を実行することを実施の形態2において記述した。上述したようにPGプレーン14に関しては、Stillプレーン16の場合とは逆にビデオスケーリングがフルスケールの場合においてはデータの出力を実行し、ビデオスケーリングがクォータサイズの場合においてはデータの出力を抑制する。
つまり、PGプレーン14並びにStillプレーン16からのデータの出力に関しては排他的であるといえ、一方が出力を実行しているともう一方は出力を実行しない構成になる。
よって実施の形態3においては、実施の形態1とは異なり、PGプレーン16とStillプレーン16とで使用するメモリ領域を共有する。この場合、アプリケーションからのビデオスケーリングに関する指示がフルスケールである場合には、当該メモリ領域は、PGプレーン14用のメモリ領域として使用される。そしてビデオスケーリングに関する指示がクォータサイズである場合には、当該メモリ領域はStillプレーン16として用いる。具体的には、PGプレーン14とStillプレーン16とはメモリの同じアドレスの領域を共有することになる。
こうすることで実質的に1つ分のプレーンのメモリ領域を開けることができ、そのメモリ領域を他の用途に用いることができる。例えば、Stillプレーン16に表示するはずのJPEGデータを圧縮した状態で格納しておき、Stillプレーン16からのデータの出力が必要な場合には、圧縮しておいたJPEGデータを展開してStillプレーンに書き込む構成にしてもよい。
また、データの読み出しの際についても実質的にアクセスするメモリ領域がプレーン一つ分減っているのと同じであり、メモリバスバンド幅もその分だけ空くことになると言える。
<補足>
上記実施の形態に基づいて本発明に係る再生装置に関して説明してきたが、本発明の実施の形態は上述のものに限るものではない。以下、その変形例について説明していく。
(1)上記実施の形態においては再生装置をBD-ROM再生装置として説明してきたが、これは特にBD-ROM再生装置に限定するものではなく、DVDプレーヤなどであってもよい。
(2)上記実施の形態においてはStillプレーン制御部17はビデオプレーンのスケール変更がなされるかどうかに基づいてStillプレーンからのスチルデータの読み出しを行うかどうかを判断していたが、字幕データを格納するためのPGプレーンに合成すべきデータがあるかどうかによって判断しても良い。
字幕データは、基本的にフルスクリーン表示を行うときのためのフォントサイズでBD-ROM110に記憶されており、スケールを変更して縮小した場合に字がつぶれてしまうことがあるため、PGプレーンを合成する場合には必ず、フルスクリーンでの表示が行われる。よって、Stillプレーン制御部17は、PGプレーンがある場合にはフルスクリーンでの表示が行われると判断し、このときには、Stillプレーンからのスチルデータの読み出しを行わないようにしてもよい。
(3)上記実施の形態1においては、動画像がフルスクリーン表示の場合には、Stillプレーンの読み出しに用いられる予定であったメモリバスバンド幅があくことを記載した。このあいたメモリバスバンド幅は当然にその他の用途に用いられて良い。
例えば、Stillプレーンの読み出しに換えて、ビデオプレーンへの動画用の画像データの書き込みに用いたり、あるいは、IGプレーンへのGUI画像の書き込みの用いたりすることも可能である。当該構成を備えることにより、再生装置は書き込みと読み出しのサイクルを早めることができると言え、テレビでの画像の表示の遅延をなるべく抑えることができるようになる。
(4)上記実施の形態においては、ビデオストリームは、BD-ROM規格のAVClipであったが、DVD-Video規格、DVD-Video Recording規格のVOB(VideoOBject)であってもよい。VOBは、ビデオストリーム、オーディオストリームを多重化することにより得られたISO/IEC13818-1規格準拠のプログラムストリームである。またAVClipにおけるビデオストリームは、MPEG4やWMV方式であってもよい。更にオーディオストリームは、Linear-PCM方式、Dolby-AC3方式、MP3方式、MPEG-AAC方式、dts方式であってもよい。
(5)上記実施の形態においては、MPEG4-AVC(H.264やJVTとも呼ばれる)をもとに説明したが、MPEG2ビデオストリームであってもよく、また、その他の形式(VC-1等)の画像の場合でも単独でデコード可能な画像であれば、容易に応用可能である。
(6)上記実施の形態においては、ビデオプレーンが、フルスクリーンの場合についてのみStillプレーンを合成しないこととしたが、これはStillプレーンとビデオプレーンが共に通常フルスクリーンサイズで用意されるからである。しかし、ビデオプレーン及びStillプレーンが共にフルスクリーンサイズでなくとも、ビデオプレーンのデータが、Stillプレーンのデータの全てを覆い隠すならば、Stillプレーンの合成を実行しない構成にしてもよい。
(7)上記実施の形態においては、ビデオプレーン、即ち動画のスケーリングを行う際にフルスケールにするかクォータにするかによってStillプレーン16からのデータの出力を制御したが、ビデオスケーリング時でなくともStillプレーン16からのデータの出力制御を行ってもよい。
この場合、アプリケーションにStill プレーン制御部17に対してのデータの出力の抑制あるいは実行の機能を持たせる。こうすることで、ビデオスケーリング時のみならず、Stillプレーン16からのデータの出力制御を実行することができるようになる。
また、実施の形態2において、PGプレーン14からのデータの出力制御に関してもビデオスケーリング時だけでなく、アプリケーションにPGプレーン制御部28に対しての出力の制御あるいは実行の機能を持たせてもよい。こうすることでビデオスケーリング時のみならず、PGプレーン14からのデータの出力制御を実行することができるようになる。
(8)上記実施の形態においては、Stillプレーン16のデータの出力制御をアプリケーションの指示に基づく形で行ったが、BD-ROMにスチルデータの出力制御に関するフラグを持たせ、当該フラグに基づく出力制御を行ってもよい。
(9)上記実施の形態においては、PGプレーン14には、字幕のみを格納することとしたが、字幕の画像データだけでなく、ビデオプレーンに格納されている動画とは別の動画を格納してもよい。こうすると、例えば表示画面を2つの領域に分割してそれぞれ別の動画を表示できるようになる。
(10)本発明は、上記実施の形態において示したStillプレーンのスチルデータの合成制御に示す方法であってもよく、当該方法に示される処理手順を再生装置のコンピュータに実行させるコンピュータプログラムであってもよい。また、当該コンピュータプログラムは、フレキシブルディスク、ハードディスク、CD(CompactDisc)、MO(Magneto Optical disc)、DVD、BD、半導体メモリなどに記録されたものであってもよい。
(11)上記実施の形態において再生装置100は、システムLSIによって実現するとしたが、再生装置100の各機能は、複数のLSIによって実現されても良い。
本発明に係る再生装置は、BD-ROMからデータを読み出しアプリケーションを実行しながら画像を再生装置において表示の遅延がない再生装置として活用することができる。
本発明に係る再生装置の使用行為を示す図である。 実施の形態1に係る再生装置100の機能構成を示したブロック図である。 ソフトウェアとハードウェアとからなる部分をレイア構成に置き換えて描いた図である。 Java(登録商標)仮想マシン36の機能構成を示した図である。 BD-ROM110に格納されているデータのディレクトリ構造を示した図である。 拡張子.m2tsが付与されたファイルがどのように構成されているかを模式的に示した図である。 Clip情報の構成を示した図である。 映画のビデオストリームに対するEP_map設定を示す図である。 Playlist情報のデータ構造を示した図である。 AVClipと、PlayList情報との関係を示す図である。 Playlist情報に含まれるSTNテーブルを示した図である。 (a)〜(d)は、entry−attributeの詳細を示す図である。 PlayList情報の、PlayListMark情報の内部構成を示す図である。 PlayList情報の、PlayListMark情報によるチャプター位置の指定を示す図である。 BD-J Objectの内部構成を示す図である。 アーカイブファイルにより収められているプログラム、データを示す図である。 (a)は、アプリケーション管理テーブルの内部構成を示す図である。(b)は、アプリケーション管理テーブルを構成する情報要素の意味内容を示す図である。 ディスクコンテンツにおける状態遷移を示す図である。 (a)は、BD-ROM全体の時間軸を示す図である。(b)は、BD-ROM全体の時間軸における構成を示す図である。 (a)(b)BD-ROM全体の時間軸において、BD-J Objectから特定されるタイトル再生区間を示す図である。 図20(b)の時間軸上に規定される、生存区間の典型を示す図である。 本編タイトル、オンラインショッピングタイトル、ゲームタイトルという3つのタイトルを含むディスクコンテンツを示す図である。 (a)(b)アプリケーション管理テーブル、生存区間の一例を示す図である。 起動属性がとり得る三態様(Present、AutoRun、Suspend)と、直前タイトルにおけるアプリケーション状態の三態様(非起動、起動中、Suspend)とがとりうる組合せを示す図である。 (a)は、プレイリスト管理テーブルの内部構成を示す図である。(b)は、プレイリスト管理テーブルを構成する情報要素の意味内容を示す図である。 プレイリスト管理テーブル、アプリケーション管理テーブルにより規定されるタイトルの具体例を示す。 カレントタイトルがとり得る三態様(プレイリスト管理テーブル無し、プレイリスト管理テーブル有りで尚且つ無指定、プレイリスト管理テーブル有りで尚且つAutoPlay)と、直前タイトルにおけるPLの状態(非再生状態、再生中状態)とがとりうる6通りの組合せを示す図である。 (a)は、プレイリスト管理テーブル及びアプリケーション管理テーブルの記述例を示す図である。(b)は、図27(a)のように記述されたアプリケーション管理テーブル、プレイリスト管理テーブルによりプレイリスト再生、アプリケーション実行がどのように進行するかを示す図である。 (a)は、プレイリスト管理テーブルの他の記述例を示す図である。(b)は、図28(a)のケースに基づくアプリケーション実行及びプレイリスト再生の進行を示す図である。 スチルプレーンを合成するかどうかを判断する再生装置100の動作を示すフローチャートである。 実施の形態2における再生装置100の機能構成を示したブロック図である。 実施の形態2においてアプリケーションの指示にビデオスケーリングの指示に基づいてStillプレーン並びにPGプレーンからのデータの出力制御の流れを示したフローチャートである。
符号の説明
1 BD-ROMドライブ
2 リードバッファ
3 デマルチプレクサ
4 ビデオデコーダ
5 ビデオプレーン
6 サウンドプロセッサ
7 サウンドプロセッサ
8 ミキサー
9 サウンドコントローラ
10 D/Aコンバータ
11 Interactive Graphics デコーダ
12 Interactive Graphics プレーン
13 Presentation Graphicsデコーダ
14 Presentation Graphics プレーン
15 JPEGデコーダ
16 Still プレーン
17 Still プレーン制御部
18a、18b、18c 合成部
19 STC−DELTA付加部
20 ATC−DELTA付加部
21 ローカルストレージ
22 命令ROM
23 ユーザイベント処理部
24 PSRセット
25 CPU
26 シナリオメモリ
27 ローカルメモリ
28 PGプレーン制御部
100 再生装置

Claims (10)

  1. 動画像を格納するためのビデオプレーンと、GUIとして表示する画像であるGUI画像を格納するためのイメージプレーンと、背景画像を格納するためのスチルプレーンとのメモリ領域を有する記憶手段と、
    前記ビデオプレーンに動画像を格納する動画像格納手段と、
    前記イメージプレーンに前記GUI画像を格納するイメージ格納手段と、
    前記スチルプレーンに前記背景画像を格納する背景画像格納手段と、
    前記動画像が前記背景画像を遮蔽できる所定のサイズである場合に、前記背景画像を読み出さず、前記動画像と前記GUI画像とを読み出し、重畳して合成した合成画像を表す画像信号を出力し、前記動画像が前記所定のサイズでない場合に、前記動画像と前記GUI画像と前記背景画像とを読み出し、重畳して合成した合成画像を表す画像信号を出力する合成出力手段とを備える
    ことを特徴とする再生装置。
  2. 前記所定のサイズとは前記動画像が表示画面においてフルスクリーンで表示されるサイズのことであり、
    前記再生装置は更に、
    前記動画像に係るアプリケーションを実行する仮想マシン部を備え、
    前記合成出力手段は、前記アプリケーションの前記ビデオプレーンに対する縮小指示を受けて、前記背景画像を合成し、縮小指示がない場合には、前記動前記背景画像を合成しない
    ことを特徴とする請求の範囲第1項記載の再生装置。
  3. 前記スチルプレーンは更に、前記動画像とは異なる時間に応じて切り替わる画像を格納するためのものであって、
    前記再生装置は更に、
    前記スチルプレーンに前記時間に応じて切り替わる画像を格納する画像格納手段を備え、
    前記合成出力手段は、前記動画像が表示画面においてフルスクリーンで表示されるサイズである場合に、前記ビデオプレーンに格納された動画像と前記イメージプレーンに格納されたGUI画像と前記スチルプレーンに格納された時間に応じて切り替わる画像とを読み出し、重畳して合成した合成画像を表す画像信号を出力し、前記動画像がフルスクリーンで表示されるサイズでない場合に、前記ビデオプレーンに格納された動画像と前記イメージプレーンに格納されたGUI画像と前記スチルプレーンに格納された背景画像とを読み出し、重畳し合成した合成画像を表す画像信号を出力する
    ことを特徴とする請求の範囲第1項記載の再生装置。
  4. 前記合成出力手段及び前記各格納手段は、前記記憶手段に接続されているメモリバスを共有しており、
    前記イメージ格納手段は、前記合成出力手段がスチルプレーンの読み出しを行わないと判断した場合に、スチルプレーンの読み出しに割り当てられている前記メモリバスの帯域又は時間を、イメージプレーンへの書き込みに用いる
    ことを特徴とする請求の範囲第1項記載の再生装置。
  5. 動画像を格納するためのビデオプレーンと、GUIとして表示する画像であるGUI画像を格納するためのイメージプレーンと、背景画像を格納するためのスチルプレーンとのメモリ領域を有する記憶手段を備える再生装置における、画像を合成する画像合成方法であって、
    前記ビデオプレーンに動画像を格納する動画像格納ステップと、
    前記イメージプレーンに前記GUI画像を格納するイメージ格納ステップと、
    前記スチルプレーンに前記背景画像を格納する背景画像格納ステップと、
    前記動画像が前記背景画像を完全に遮蔽できる所定のサイズである場合に、前記背景画像を読み出さず、前記動画像と前記GUI画像とを読み出し、重畳して合成した合成画像を表す画像信号を出力し、前記動画像が前記所定のサイズでない場合に、前記動画像と前記GUI画像と前記背景画像とを読み出し、重畳して合成した合成画像を表す画像信号を出力する合成出力ステップとを含む
    ことを特徴とする画像合成方法。
  6. 前記合成出力ステップ及び前記各格納ステップにおいて、読み出し及び格納に用いる前記記憶手段に接続されているメモリバスを共有しており、
    前記イメージ格納ステップでは、前記合成出力ステップにおいてスチルプレーンの読み出しを行わないと判断した場合に、スチルプレーンの読み出しに割り当てられている前記メモリバスの帯域又は時間を、イメージプレーンへの書き込みに用いる
    ことを特徴とする請求の範囲第5項記載の画像合成方法。
  7. 動画像を格納するためのビデオプレーンと、GUIとして表示する画像であるGUI画像を格納するためのイメージプレーンと、背景画像を格納するためのスチルプレーンとのメモリ領域を有する記憶手段を備える再生装置のコンピュータに画像を合成させるための処理手順を示した画像合成プログラムであって、
    前記ビデオプレーンに動画像を格納する動画像格納ステップと、
    前記イメージプレーンに前記GUI画像を格納するイメージ格納ステップと、
    前記スチルプレーンに前記背景画像を格納する背景画像格納ステップと、
    前記動画像が前記背景画像を完全に遮蔽できる所定のサイズである場合に、前記背景画像を読み出さず、前記動画像と前記GUI画像とを読み出し、重畳して合成した合成画像を表す画像信号を出力し、前記動画像が前記所定のサイズでない場合に、前記動画像と前記GUI画像と前記背景画像とを読み出し、重畳して合成した合成画像を表す画像信号を出力する合成出力ステップとを含む
    ことを特徴とする画像合成プログラム。
  8. 前記合成出力ステップ及び前記各格納ステップにおいては、読み出し及び格納に用いる前記記憶手段に接続されているメモリバスを共有しており、
    前記イメージ格納ステップでは、前記合成出力ステップにおいてスチルプレーンの読み出しを行わないと判断した場合に、スチルプレーンの読み出しに割り当てられている前記メモリバスの帯域又は時間を、イメージプレーンへの書き込みに用いる
    ことを特徴とする請求の範囲第7項記載の画像合成プログラム。
  9. 画像を合成して出力する再生装置に搭載される集積回路であって、
    動画像を格納するためのビデオプレーンと、GUIとして表示する画像であるGUI画像を格納するためのイメージプレーンと、背景画像を格納するためのスチルプレーンとのメモリ領域を有する記憶手段と、
    前記ビデオプレーンに動画像を格納する動画像格納手段と、
    前記イメージプレーンに前記GUI画像を格納するイメージ格納手段と、
    前記スチルプレーンに前記背景画像を格納する背景画像格納手段と、
    前記動画像が前記背景画像を完全に遮蔽できる所定のサイズである場合に、前記背景画像を読み出さず、前記動画像と前記GUI画像とを読み出し、重畳して合成した合成画像を表す画像信号を出力し、前記動画像が前記所定のサイズでない場合に、前記動画像と前記GUI画像と前記背景画像とを読み出し、重畳して合成した合成画像を表す画像信号を出力する合成出力手段とを備える
    ことを特徴とする集積回路。
  10. 前記合成出力手段及び前記各格納手段は、前記記憶手段に接続されているメモリバスを共有しており、
    前記イメージ格納手段は、前記合成出力手段がスチルプレーンの読み出しを行わないと判断した場合に、スチルプレーンの読み出しに割り当てられている前記メモリバスの帯域又は時間を、イメージプレーンへの書き込みに用いる
    ことを特徴とする請求の範囲第9項記載の集積回路。
JP2006547988A 2004-12-01 2005-11-30 再生装置、画像合成方法、画像合成プログラム及び集積回路 Expired - Fee Related JP4949853B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2006547988A JP4949853B2 (ja) 2004-12-01 2005-11-30 再生装置、画像合成方法、画像合成プログラム及び集積回路

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP2004349143 2004-12-01
JP2004349143 2004-12-01
JP2006547988A JP4949853B2 (ja) 2004-12-01 2005-11-30 再生装置、画像合成方法、画像合成プログラム及び集積回路
PCT/JP2005/022022 WO2006059661A1 (ja) 2004-12-01 2005-11-30 再生装置、画像合成方法、画像合成プログラム及び集積回路

Publications (2)

Publication Number Publication Date
JPWO2006059661A1 true JPWO2006059661A1 (ja) 2008-06-05
JP4949853B2 JP4949853B2 (ja) 2012-06-13

Family

ID=36565094

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006547988A Expired - Fee Related JP4949853B2 (ja) 2004-12-01 2005-11-30 再生装置、画像合成方法、画像合成プログラム及び集積回路

Country Status (6)

Country Link
US (1) US8306386B2 (ja)
EP (1) EP1818907A4 (ja)
JP (1) JP4949853B2 (ja)
KR (1) KR101193397B1 (ja)
CN (2) CN100514441C (ja)
WO (1) WO2006059661A1 (ja)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPWO2007119765A1 (ja) * 2006-04-13 2009-08-27 パナソニック株式会社 記録媒体、再生装置、記録装置、システムlsi、方法、プログラム
US7712047B2 (en) * 2007-01-03 2010-05-04 Microsoft Corporation Motion desktop
KR100897849B1 (ko) 2007-09-07 2009-05-15 한국전자통신연구원 비정상 프로세스 탐지 방법 및 장치
JP5322529B2 (ja) 2008-07-29 2013-10-23 キヤノン株式会社 表示装置、表示制御方法
WO2011007416A1 (ja) * 2009-07-14 2011-01-20 パイオニア株式会社 再生装置及び方法、並びにコンピュータプログラム
JP5544863B2 (ja) * 2009-12-17 2014-07-09 富士通株式会社 受信装置、受信方法及び受信プログラム
WO2011155099A1 (ja) * 2010-06-11 2011-12-15 三菱電機株式会社 映像表示装置
US9154797B2 (en) 2010-09-20 2015-10-06 Onecodec, Limited Systems and methods for encoding and decoding
US10129556B2 (en) 2014-05-16 2018-11-13 Bevara Technologies, Llc Systems and methods for accessing digital data
US10025787B2 (en) 2011-08-17 2018-07-17 Bevara Technologies, Llc Systems and methods for selecting digital data for archival
JP5857636B2 (ja) * 2011-11-02 2016-02-10 ソニー株式会社 情報処理装置、情報処理方法及びプログラム
US9202522B2 (en) * 2013-05-08 2015-12-01 Adobe Systems Incorporated Method and apparatus for subtitle display
TWI530169B (zh) * 2013-08-23 2016-04-11 晨星半導體股份有限公司 處理影音資料之方法以及相關模組
WO2015176009A1 (en) * 2014-05-16 2015-11-19 Bevara Technologies, Llc Systems and methods for selecting digital data for archival
WO2017061434A1 (ja) * 2015-10-09 2017-04-13 ソニー株式会社 情報処理装置、および情報処理方法、並びにプログラム
JP2018022370A (ja) * 2016-08-04 2018-02-08 キヤノン株式会社 アプリケーション実行装置及びその制御方法、並びにプログラム
CN106980579B (zh) 2016-09-30 2020-08-14 阿里巴巴集团控股有限公司 一种图片加载方法及装置
US10895954B2 (en) * 2017-06-02 2021-01-19 Apple Inc. Providing a graphical canvas for handwritten input
CA3086546A1 (en) 2018-01-18 2019-07-25 Bevara Technologies, Llc Browser navigation for facilitating data access
KR20210074880A (ko) * 2019-12-12 2021-06-22 삼성전자주식회사 디스플레이 장치 및 그 동작 방법

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0421077A (ja) * 1990-05-15 1992-01-24 Oki Electric Ind Co Ltd 画像重ね合わせ装置
JPH0773287A (ja) * 1993-06-15 1995-03-17 Nec Corp 画像合成回路
JP2003101900A (ja) * 2001-09-20 2003-04-04 Canon Inc 受信装置
JP2003219372A (ja) * 2002-01-28 2003-07-31 Canon Inc データ放送受信再生装置、その制御方法、データ放送システム、データ放送装置、データ放送ショッピングにおける商品表示方法、及び制御プログラム
JP2003298938A (ja) * 2002-04-01 2003-10-17 Canon Inc マルチ画面合成装置及びマルチ画面合成装置の制御方法及びマルチ画面合成装置の制御プログラム及び記憶媒体
JP2003348444A (ja) * 2002-05-23 2003-12-05 Sony Corp 画像信号の処理装置および処理方法
JP2004334058A (ja) * 2003-05-12 2004-11-25 Hitachi Ltd 表示装置および表示制御方法

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000010542A (ja) * 1998-06-24 2000-01-14 Canon Inc 画像表示装置と画像データの表示方法
US6853385B1 (en) 1999-11-09 2005-02-08 Broadcom Corporation Video, audio and graphics decode, composite and display system
US6636222B1 (en) 1999-11-09 2003-10-21 Broadcom Corporation Video and graphics system with an MPEG video decoder for concurrent multi-row decoding
US6573905B1 (en) 1999-11-09 2003-06-03 Broadcom Corporation Video and graphics system with parallel processing of graphics windows
US6538656B1 (en) 1999-11-09 2003-03-25 Broadcom Corporation Video and graphics system with a data transport processor
WO2002089105A2 (en) * 2001-05-02 2002-11-07 Bitstream, Inc. Methods, systems, and programming for producing and displaying subpixel-optimized images and digital content including such images
EP1328114A1 (en) * 2002-01-10 2003-07-16 Canal+ Technologies Société Anonyme Image resolution management in a receiver/decoder
US20040047588A1 (en) 2002-03-27 2004-03-11 Tomoyuki Okada Package medium, reproduction apparatus, and reproduction method
JP2004007518A (ja) 2002-03-27 2004-01-08 Matsushita Electric Ind Co Ltd パッケージメディア、再生装置、および再生方法
JP4158462B2 (ja) 2002-09-04 2008-10-01 ソニー株式会社 画面表示処理装置及び画面表示処理方法、並びにコンピュータ・プログラム
JP3837427B2 (ja) 2002-09-12 2006-10-25 松下電器産業株式会社 記録媒体、再生装置、プログラム、再生方法、記録方法
KR100973862B1 (ko) * 2002-09-25 2010-08-03 파나소닉 주식회사 재생장치, 광 디스크, 기록매체, 재생방법
WO2004049710A1 (ja) 2002-11-28 2004-06-10 Sony Corporation 再生装置、再生方法、再生プログラムおよび記録媒体
JP4715094B2 (ja) * 2003-01-30 2011-07-06 ソニー株式会社 再生装置、再生方法、再生プログラムおよび記録媒体
AU2004214180B2 (en) 2003-02-21 2010-01-28 Panasonic Corporation Recording Medium, Playback Device, Recording Method, Playback Method, and Computer Program
US7561779B2 (en) 2003-03-13 2009-07-14 Panasonic Corporation Video data processor having converting section for producing NTSC- or PAL-compliant synthetic video data

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0421077A (ja) * 1990-05-15 1992-01-24 Oki Electric Ind Co Ltd 画像重ね合わせ装置
JPH0773287A (ja) * 1993-06-15 1995-03-17 Nec Corp 画像合成回路
JP2003101900A (ja) * 2001-09-20 2003-04-04 Canon Inc 受信装置
JP2003219372A (ja) * 2002-01-28 2003-07-31 Canon Inc データ放送受信再生装置、その制御方法、データ放送システム、データ放送装置、データ放送ショッピングにおける商品表示方法、及び制御プログラム
JP2003298938A (ja) * 2002-04-01 2003-10-17 Canon Inc マルチ画面合成装置及びマルチ画面合成装置の制御方法及びマルチ画面合成装置の制御プログラム及び記憶媒体
JP2003348444A (ja) * 2002-05-23 2003-12-05 Sony Corp 画像信号の処理装置および処理方法
JP2004334058A (ja) * 2003-05-12 2004-11-25 Hitachi Ltd 表示装置および表示制御方法

Also Published As

Publication number Publication date
CN101600122A (zh) 2009-12-09
US20080089660A1 (en) 2008-04-17
CN100514441C (zh) 2009-07-15
JP4949853B2 (ja) 2012-06-13
CN101600122B (zh) 2011-10-05
KR101193397B1 (ko) 2012-10-24
US8306386B2 (en) 2012-11-06
EP1818907A4 (en) 2008-06-25
EP1818907A1 (en) 2007-08-15
CN101069229A (zh) 2007-11-07
KR20070090906A (ko) 2007-09-06
WO2006059661A1 (ja) 2006-06-08

Similar Documents

Publication Publication Date Title
JP4949853B2 (ja) 再生装置、画像合成方法、画像合成プログラム及び集積回路
US8107788B2 (en) Recording medium, playback device, recording method and playback method
JP4012559B2 (ja) 記録媒体、再生装置、プログラム、再生方法、集積回路
JP4410253B2 (ja) 読出装置、プログラム、読出方法
JP4664346B2 (ja) 記録媒体、再生装置、プログラム、再生方法
JP4012563B2 (ja) 記録媒体、再生装置、プログラム、再生方法。
JP4117019B2 (ja) 記録媒体、再生装置、記録方法、再生方法
JP4091105B2 (ja) 記録媒体、再生装置、記録方法、再生方法
JP4084833B2 (ja) 記録媒体、再生装置、プログラム、再生方法、集積回路
JP2008103067A (ja) 記録媒体、再生装置、記録方法、再生方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20081121

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110913

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20111004

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20120214

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120308

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150316

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4949853

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees