JPWO2010038412A1 - 3d映像が記録された記録媒体、3d映像を再生する再生装置、およびシステムlsi - Google Patents

3d映像が記録された記録媒体、3d映像を再生する再生装置、およびシステムlsi Download PDF

Info

Publication number
JPWO2010038412A1
JPWO2010038412A1 JP2009552951A JP2009552951A JPWO2010038412A1 JP WO2010038412 A1 JPWO2010038412 A1 JP WO2010038412A1 JP 2009552951 A JP2009552951 A JP 2009552951A JP 2009552951 A JP2009552951 A JP 2009552951A JP WO2010038412 A1 JPWO2010038412 A1 JP WO2010038412A1
Authority
JP
Japan
Prior art keywords
stream
graphics
view
information
data
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
JP2009552951A
Other languages
English (en)
Other versions
JP4469419B1 (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
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=42073194&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=JPWO2010038412(A1) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by Panasonic Corp, Matsushita Electric Industrial Co Ltd filed Critical Panasonic Corp
Application granted granted Critical
Publication of JP4469419B1 publication Critical patent/JP4469419B1/ja
Publication of JPWO2010038412A1 publication Critical patent/JPWO2010038412A1/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B27/00Editing; Indexing; Addressing; Timing or synchronising; Monitoring; Measuring tape travel
    • G11B27/02Editing, e.g. varying the order of information signals recorded on, or reproduced from, record carriers
    • G11B27/031Electronic editing of digitised analogue information signals, e.g. audio or video signals
    • G11B27/034Electronic editing of digitised analogue information signals, e.g. audio or video signals on discs
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B27/00Editing; Indexing; Addressing; Timing or synchronising; Monitoring; Measuring tape travel
    • G11B27/10Indexing; Addressing; Timing or synchronising; Measuring tape travel
    • G11B27/102Programmed access in sequence to addressed parts of tracks of operating record carriers
    • G11B27/105Programmed access in sequence to addressed parts of tracks of operating record carriers of operating discs
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B27/00Editing; Indexing; Addressing; Timing or synchronising; Monitoring; Measuring tape travel
    • G11B27/10Indexing; Addressing; Timing or synchronising; Measuring tape travel
    • G11B27/11Indexing; Addressing; Timing or synchronising; Measuring tape travel by using information not detectable on the record carrier
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/10Processing, recording or transmission of stereoscopic or multi-view image signals
    • H04N13/106Processing image signals
    • H04N13/161Encoding, multiplexing or demultiplexing different image signal components
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/10Processing, recording or transmission of stereoscopic or multi-view image signals
    • H04N13/106Processing image signals
    • H04N13/172Processing image signals image signals comprising non-image signal components, e.g. headers or format information
    • H04N13/178Metadata, e.g. disparity information
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/10Processing, recording or transmission of stereoscopic or multi-view image signals
    • H04N13/106Processing image signals
    • H04N13/172Processing image signals image signals comprising non-image signal components, e.g. headers or format information
    • H04N13/183On-screen display [OSD] information, e.g. subtitles or menus
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/10Processing, recording or transmission of stereoscopic or multi-view image signals
    • H04N13/189Recording image signals; Reproducing recorded image signals
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/76Television signal recording
    • H04N5/91Television signal processing therefor
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • 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
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/30Image reproducers
    • H04N13/332Displays for viewing with the aid of special glasses or head-mounted displays [HMD]
    • H04N13/341Displays for viewing with the aid of special glasses or head-mounted displays [HMD] using temporal multiplexing

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Library & Information Science (AREA)
  • Human Computer Interaction (AREA)
  • Testing, Inspecting, Measuring Of Stereoscopic Televisions And Televisions (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)
  • Television Signal Processing For Recording (AREA)
  • Management Or Editing Of Information On Record Carriers (AREA)

Abstract

記録媒体に記録されたレフトビューグラフィクスストリーム及びライトビューグラフィクスストリームは、何れも1つ以上のディスプレイセットを含み、各ディスプレイセットは、一画面分のグラフィクスオブジェクトの表示に用いられるデータ群である。前記レフトビューグラフィクスストリームに含まれる1つ以上のディスプレイセットは、前記ライトビューグラフィクスストリームに含まれる1つ以上のディスプレイセットと1対1で対応しており、対応するディスプレイセットには、前記ビデオストリームの再生時間軸上において同一の再生時間が設定されている。前記各ディスプレイセットは、一画面分のグラフィクスオブジェクトの表示に必要な全てのデータを含んでいるか、直前のディスプレイセットからの差分であるかを示す状態情報を含み、対応するディスプレイセットに含まれる状態情報が、同一の内容を示している。

Description

本発明は、再生装置において2グラフィクスデコーダ構成を採用した場合のグラフィクスの立体視に関する。
近年、次世代光ディスク規格であるBlu−ray Disc(以下、「BD」という)の普及が加速している。BD-ROM規格に準拠した再生装置では、当該再生装置に接続されたディスプレイなどの表示装置に、字幕やグラフィクスが重ね合わされた、高画質なビデオストリームを出力することで、高い臨場感を持つ映像を楽しむことができる(例えば特許文献1参照)。
一方、表示装置の技術動向として、フラットな映像だけではなく、飛び出るような映像を楽しむことができる立体視ディスプレイが普及し始めている。立体視ディスプレイにはさまざまな方式があるが、基本的な原理としては、レフトビューとライトビューとで左右の目に異なる絵を見せる仕組みを導入し、両目間の視差を利用することにより、立体的な映像を擬似的に作るものである。
WO2005−119675号公報
ところで、ビデオと合成して再生されるべきグラフィクスの立体視表示をどのように行わせるかという問題がある。ここでグラフィクスが、字幕やメニューであれば、非圧縮グラフィクスであるグラフィクスオブジェクトを構成する画素データの座標を、レフトビュー再生時と、ライトビュー再生時とでそれぞれシフトさせることで、字幕やメニューを画面から手前に見せることができる。ところがこの座標シフトでは、グラフィクスが平面的な状態のまま手前に見えるだけで、グラフィクスそのものが立体的に見える訳ではない。
近年の映画作品では、字幕を主たる用途として導入されているPresentation Graphicsストリームのデータ構造を用いて、映画作品内の登場人物と緻密に同期するようなアニメーショングラフィクスを実現している例がある。
グラフィクスが例えばアニメーションキャラクターを表す場合には、座標シフトによる立体視では、平面的なキャラクターが手前に見えるにすぎず、アニメーションキャラクターの顔のくぼみや鼻の出っ張り具合などを立体的に再現することができない。そのため、アミューズメントの用途では物足りないという意見がある。
そこで、アニメーションキャラクターを立体的に見せるために、レフトビュー用のグラフィクスデータ及びライトビュー用のグラフィクスデータのそれぞれを1つのグラフィクスストリーム内に組込んでおいて、このグラフィクスストリームをデコードすることにより、立体視を実現させるという考えがある。
しかしながら、この考えでは、グラフィクスデコーダにおけるデコードの負荷が二倍になるため、グラフィクスデコーダの動作の基準となるクロック周波数を高くせねばならず、製品の低コスト化を妨げる。
クロック周波数の高周波数化を避けるには、グラフィクスデータを2ストリーム構成にし、尚且つ再生装置を2デコーダ構成にすればよい。つまり、レフトビュー用のグラフィクスデータとライトビュー用のグラフィクスデータとを、個別のグラフィクスストリームに組み込んでおき、また、再生装置には2つのグラフィクスデコーダを装備させる。そして、この2つのグラフィクスストリームを、2つのグラフィクスデコーダに処理させれば、クロック周波数をそれ程高くしなくても、再生装置にレフトビュー及びライトビューのグラフィクスデータをデコードさせることができる。
ところが、再生装置において2デコーダ構成を採用した場合、ランダムアクセスの際のグラフィクスの立体視が保証されないという問題がある。この問題について具体的に説明する。レフトビュー用及びライトビュー用のグラフィクスストリームはそれぞれ、ディスプレイセット(以下、「DS」という)を複数含んで構成され、各DSは、一画面分のグラフィクスの表示に用いられるべきデータ群である。このDSには複数の類型があり、一画面分のグラフィクスの表示に必要な全てのデータを含んでいるDSや、直前のDSからの差分のみを含むDSがある。直前のDSからの差分のみを含むDSは、単独ではグラフィクス全体の表示を行えない。ここで、レフトビューから見える像とライトビューから見える像とでは見え方に差があるため、一方のDSでは、直前のDSからのアニメーションキャラクターの変化が大きく、一画面分のグラフィクスの表示に必要な全てのデータを含んでいる場合であっても、他方のDSでは、死角によりアニメーションキャラクターの変化が大きくなく、直前のDSからの差分のみを含んでいればよい場合も考えられる。
そうすると、再生装置において、これらのDSから頭出しをする場合に、一方のグラフィクスについては正しくデコードすることができても、他方に関しては再生に必要なデータがデコーダに供給されずデコードすることができない、といった問題が発生し得る。その結果、ランダムアクセス時におけるグラフィクスの立体視が不可能になる場合がある。
本発明は、ランダムアクセス時のグラフィクスの立体視を保証する記録媒体を提供することを目的とする。
上記目的を達成するために、本発明の一実施態様である記録媒体は、ビデオストリームと、レフトビューグラフィクスストリーム及びライトビューグラフィクスストリームとが記録された記録媒体であって、前記レフトビューグラフィクスストリーム及び前記ライトビューグラフィクスストリームは、何れも1つ以上のディスプレイセットを含み、前記各ディスプレイセットは、一画面分のグラフィクスオブジェクトの表示に用いられるデータ群であり、前記レフトビューグラフィクスストリームに含まれる1つ以上のディスプレイセットは、前記ライトビューグラフィクスストリームに含まれる1つ以上のディスプレイセットと1対1で対応しており、対応するディスプレイセットには、前記ビデオストリームの再生時間軸上において同一の再生時間が設定されており、前記各ディスプレイセットは、一画面分のグラフィクスオブジェクトの表示に必要な全てのデータを含んでいるか、直前のディスプレイセットからの差分であるかを示す状態情報を含み、前記レフトビューグラフィクスストリームと前記ライトビューグラフィクスストリームとで対応するディスプレイセットに含まれる状態情報が、同一の内容を示していることを特徴とする。
上記課題を解決するための手段に記載の構成により、レフトビューグラフィクスストリームの各ディスプレイセットの状態情報と、当該ディスプレイセットに対応する、ライトビューグラフィクスストリームのディスプレイセットの状態情報とが、同一の内容を示している。そのため、一方のグラフィクスストリームのディスプレイセットにおいて、その状態情報が、一画面分のグラフィクスの表示に必要な全てのデータを含んでいることを示すものである場合には、対応する、他方のグラフィクスストリームのディスプレイセットにおいても、その状態情報は、一画面分のグラフィクスの表示に必要な全てのデータを含んでいるものであることを示す。
したがって、これらのディスプレイセットを頭出しがなされることが判明している位置に配置することで、ランダムアクセスの際、一方のグラフィクスストリームがデコード可能であれば、必ず、他方のグラフィクスストリームのデコードも可能となる。ゆえに、ランダムアクセス時におけるグラフィクスの立体視を保証することができる。
ホームシアターシステムの構成を示す図である。 BD-ROMの内部構成を示す図である。 BD-ROMのアプリケーションフォーマットを示す図である。 レフトビューストリーム、ライトビューストリームを構成する各ソースパケットがどのような過程を経てAVデータ領域に書き込まれるかを示す図である。 BD-ROMの物理単位と、1つのファイルエクステントを構成するソースパケットとの対応関係を示す図である。 TSパケットのパケットIDがとりうる複数の数値範囲と、各数値範囲のパケットIDをもつTSパケットのPESストリーム種別とを対応付けて示す図である。 インターリーブ配置の一例を示す図である。 立体視のためのベースビューストリーム、エンハンスドビューストリームの内部構成の一例を示す図である。 ゴーグルの透光/遮光を、図8のタイミングに従って切り替えることにより、どのような映像が再生に供されるかを示す図である。 目の残像反応により形成される立体映像を示す図である。 PGストリームの構成を示す図である。 様々な種別の機能セグメントにて構成される論理構造を示す図である。 ODS、PDSのデータ構造を示す。 WDS、PCSのデータ構造を示す。 レフトビューPGストリームとライトビューPGストリームとで対応するDSにおけるDSの類型、composition_number、及びforced_on_flagを示す図である。 レフトビューのDSに属するWDS、PCSの記述例を示す図である。 ライトビューのDSに属するWDS、PCSの記述例を示す図である。 レフトビューPGストリームとライトビューPGストリームとで対応するDSのobject_idを示す図である。 DSnが割り当てられた、AVClipの再生時間軸を示す図である。 クリップ情報ファイルの一例を示す図である。 エントリーマップテーブルの内部構成を示す図である。 エントリーマップによるエントリーポイントの登録を示す。 レフトビュー及びライトビューのそれぞれに対応するエントリーマップが、どのように設定されているかを示す図である。 プレイリスト情報のデータ構造を示す図である。 サブパス情報テーブルの内部構成を示す図である。 レフトビュー、ライトビューに対して、どのような再生区間が定義されているかを示す。 ビデオストリーム番号テーブルの内部構成を示す図である。 STN_tableにおけるPGストリーム情報テーブルの内部構成を示す。 プレイリスト情報におけるエクステンションデータの内部構成を示す図である。 ビデオストリーム番号テーブルの内部構成を示す図である。 再生装置の内部構成を示す図である。 再生部1の内部構成を示す図である。 プレイリス再生処理の処理手順を示すフローチャートである。 STN_table_extensionに基づく再生手順を示すフローチャートである。 装置状態変化時及びストリーム変化の要求時におけるPSR2の設定手順を示すフローチャートである。 PSR2設定手順を示すフローチャートである。 変形例1−1における再生部1の内部構成を示す図である。 IGストリームの構成を示す図である。 様々な種別の機能セグメントにて構成される論理構造を示す図である。 ICSとInteractive_compositionとの対応関係を示す図である。 ICSの内部構成を示す図である。 複数ページのうち、任意のもの(x枚目のページ)についてのページ情報の内部構成を示す図である。 レフトビューのDSに属するICSの記述例を示す図である。 ライトビューのDSに属するICSの記述例を示す図である。 実施の形態2における再生部1の内部構成を示す図である。 レフトビューPGストリーム及びライトビューPGストリームの多重化順序の制限に関する図である。 PCSのデータ構造の変形例を示す図である。 3D-PCSを含むDSを示す図である。
以下、図面を参照しながら本発明の実施の形態を説明する。
(実施の形態1)
<全体構成>
図1は、記録媒体及び再生装置の使用行為についての形態を示す図である。図1(a)に示すように、記録媒体の一例であるBD-ROM100、及び再生装置200は、テレビ300、液晶シャッタゴーグル400、リモコン500と共にホームシアターシステムを構成し、ユーザによる使用に供される。
BD-ROM100は、上記ホームシアターシステムに、例えば映画作品を供給する。
再生装置200は、テレビ300と接続され、BD-ROM100を再生する。
テレビ300は、映画作品の再生映像を表示したり、メニュー等を表示したりすることで、対話的な操作環境をユーザに提供する。
液晶シャッタゴーグル400は、液晶シャッタと、制御部とから構成され、ユーザの両目における視差を用いて立体視を実現する。液晶シャッタゴーグル400の液晶シャッタは、印加電圧を変えることにより、光の透過率が変化する性質を有する液晶レンズを用いたシャッタである。液晶シャッタゴーグル400の制御部は、ライトビュー用の画像とレフトビュー用の画像の出力切り替えのための同期信号を再生装置から受信し、この同期信号に従って、第1の状態と第2の状態とを切り替える。
図1(b)は、第1の状態を示す。第1の状態とは、ライトビューに対応する液晶レンズが光を透過しないように印加電圧を調節し、レフトビューに対応する液晶レンズが光を透過するように印加電圧を調節した状態である。この状態において、レフトビュー用の画像が視聴に供されることになる。
図1(c)は、第2の状態を示す。第2の状態とは、ライトビューに対応する液晶レンズが光を透過するように印加電圧を調節し、レフトビューに対応する液晶レンズが光を透過しないように印加電圧を調節した状態である。この状態において、ライトビュー用の画像が視聴に供されることになる。
一般的に、ライトビューから見える像とレフトビューから見える像には見え方に若干の差がある。これは、ライトビューとレフトビューとの位置の差に起因する。そして、この差を利用して、人間は、目に見える像を立体として認識できるのである。そこで、液晶シャッタゴーグル400が、以上のような第1の状態と第2の状態との切り替えを、ライトビュー用の画像とレフトビュー用の画像の出力の切り替えタイミングに同期させれば、ユーザは、平面的な表示が立体的に見えると錯覚する。
次に、ライトビュー映像、及びレフトビュー映像を表示するにあたっての時間間隔について説明する。
具体的には、平面表示の画像において、ライトビュー用の画像とレフトビュー用の画像には、人間の両目の視差による見え方の差に相当する程度の差があり、これらの画像を短い時間間隔で切り替えて表示することにより、あたかも立体的な表示がなされているように見えるのである。
この短い時間間隔というのは、上述の切り替え表示により人間が立体的に見えると錯覚する程度の時間であればよい。
図1(a)に戻って、リモコン500は、階層化されたGUIに対する操作をユーザから受け付ける機器であり、かかる操作受け付けのため、GUIを構成するメニューを呼び出すメニューキー、メニューを構成するGUI部品のフォーカスを移動させる矢印キー、メニューを構成するGUI部品に対して確定操作を行う決定キー、階層化されたメニューをより上位のものにもどってゆくための戻りキー、及び数値キーを備える。
以上がホームシアターシステムについての説明である。
<記録媒体>
続いて、再生装置200が再生の対象としている記録媒体について説明する。再生装置200により再生されるのは、BD-ROM100である。図2は、BD-ROM100の内部構成を示す図である。
第1段目は、多層化された光ディスクであるBD-ROMを示し、第2段目は、各記録層上に存在する螺旋トラックを水平方向に引き伸ばして描いている。この螺旋トラックは、1つの連続した記録領域として扱われる。この記録領域は、最内周に位置するリードイン、最外周に位置するリードアウト、この間に存在する第1記録層の記録領域、第2記録層の記録領域、第3記録層の記録領域から構成される。
第3段目は、BD-ROMにおけるファイルシステム領域を示す。ファイルシステム領域は、"ボリューム管理領域"と、"論理アドレス空間"とから構成される。
"ボリューム管理領域"は、第1記録層の記録領域、第2記録層の記録領域、及び第3記録層の記録領域を、1つの連続したファイルシステム空間として扱うためのファイルシステム管理情報が記録されている領域である。
"論理アドレス空間"は、セクタが連続する論理ブロック番号(LBN)によって指示されるアドレス空間である。つまり、第2段目における第1記録層の記録領域、第2記録層の記録領域、第3記録層の記録領域は、1つの連続した論理アドレス空間を構成することになる。
第4段目は、ファイルシステム管理領域の論理アドレス空間における領域割り当てを示す。ファイルシステム管理記録のうち、内周側には、非AVデータ記録領域が存在する。非AVデータ記録領域の直後には、AVデータ記録領域が存在する。
第5段目は、これら非AVデータ記録領域及びAVデータ記録領域に記録されるエクステントを示す。AVデータ記録領域には、AVファイルを構成する構成するエクステント(図中のEXT,EXT,EXT・・・・)が存在する。非AVデータ記録領域には、AVファイル以外のファイルを構成するエクステント(図中のEXT,EXT,EXT・・・・)が存在する。
図3は、BD-ROMのアプリケーションフォーマットを示す図である。
「BDMVディレクトリ」は、BD-ROMで扱うAVコンテンツや管理情報などのデータが記録されているディレクトリである。BDMVディレクトリの配下には、「JARディレクトリ」、「BDJOディレクトリ」、「PLAYLISTディレクトリ」、「CLIPINFディレクトリ」、「STREAMディレクトリ」と呼ばれる5つのサブディレクトリが存在し、BDMVディレクトリには、「index.bdmv」、「MovieObject.bdmv」の2種類のファイルが配置されている。
『index.bdmv』は、BD-ROM全体に関する管理情報であり、再生装置へのディスク挿入後に、index.bdmvが最初に読み出されることで、再生装置においてディスクが一意に認識される。加えて、index.bdmvは、BD-ROMにおいて再生可能となる複数タイトルのタイトル番号と、個々のタイトルを規定するBD-Jオブジェクト又はムービーブジェクトとの対応付けを示す。
『MovieObject.bdmv』は、1つ以上のムービーオブジェクトを格納している。ムービーオブジェクトは、コマンドインタプリタを制御主体とした動作モード(HDMVモード)において、再生装置が行うべき制御手順を規定する管理オブジェクトであり、1つ以上のコマンドと、GUIに対するメニューコール、タイトルコールがユーザによってなされた場合、これらのコールをマスクするかどうかを規定するマスクフラグを含む。
『JARディレクトリ』は、アーカイブファイルに対応するJARファイルが配置されるディレクトリである。アーカイブファイルは、1つ以上のクラスファイル、1つ以上のデータファイル等を1つにまとめることで得られるファイルである。1つ以上のクラスファイル、1つ以上のデータファイル等は例えば、アーカイバ(図示せず)により、1つにまとめることができる。
ここでは、アーカイブファイルの一例として、Java(登録商標)のアーカイブファイルを例に説明をする。
例えば、再生装置が備えるバイトコードインタプリタであるJava仮想マシンを制御主体とした動作モード(BD-Jモード)において、再生装置が行うべき制御手順を規定する。JARファイルを格納したファイルは、5桁の数字zzzzzと、拡張子jarとによって識別される。
『BDJOディレクトリ』は、バイトコードインタプリタであるJava仮想マシンを制御主体とした動作モード(BD-Jモード)において、再生装置が行うべき制御手順を規定する管理オブジェクト(BDJオブジェクト)を格納したファイルが格納されるディレクトリである。BDJオブジェクトを格納したファイルは、5桁の数字zzzzzと、拡張子bdjoとによって識別される。
『PLAYLISTディレクトリ』は、ベースビュービデオストリームに対する再生区間を指定するメインパス情報、エンハンスドビュービデオストリームに対する再生区間を指定するサブパス情報を含むプレイリスト情報を格納したファイルが配置される。このプレイリスト情報を格納したファイルは、"yyyyy"という5桁の識別番号と、拡張子"mpls"とによって識別される。ここでベースビュービデオストリームとは、レフトビュー又はライトビューを構成するビデオストリームのうち、平面視表示を実現しうるものである。一方、ライトビュー又はレフトビューを構成するビデオストリームのうち、ベースビュービデオストリームではないものを"エンハンスドビュービデオストリーム"という。エンハンスドビュービデオストリームを構成するピクチャデータは、ベースビュービデオストリームを構成するピクチャデータとのフレーム相関性に基づき圧縮符号化されている。
このような視点間の相関を利用したビデオ圧縮の方法としては、Multiview Video Coding(MVC)と呼ばれるMPEG-4 AVC/H.264の修正規格がある。ISO/IEC MPEGとITU-T VCEGの共同プロジェクトであるJoint Video Team(JVT)は、2008年7月にMultiview Video Coding(MVC)と呼ばれるMPEG-4 AVC/H.264の修正規格の策定を完了した。MVCは、複数視点の映像をまとめて符号化する規格であり、映像の時間方向の類似性だけでなく視点間の類似性も予測符号化に利用することで、複数視点の独立した圧縮に比べて圧縮効率を向上している。
ベースビュー、エンハンスドビューを構成するストリームは、ビデオストリームだけではない。プレゼンテーショングラフィクス(PG)ストリームも、ベースビュー、エンハンスドビューを構成する。以降、ベースビュービデオストリームとベースビューPGストリームとを併せて、"ベースビューストリーム"と呼ぶ。また、エンハンスドビュービデオストリームとエンハンスドビューPGストリームとを併せて、"エンハンスドビューストリーム"と呼ぶ。
『CLIPINFディレクトリ』は、クリップ情報を格納したファイル(クリップ情報ファイル)が配置されるディレクトリである。クリップ情報ファイルは、"xxxxx"という5桁の識別番号と、拡張子"clpi"とによって識別される。このクリップ情報ファイルの内部には、レフトビューのビデオストリーム及びライトビューのビデオストリームのそれぞれに対応するエントリーマップが存在する。
以上のディレクトリに存在するファイルを構成するエクステントは、非AVデータ領域に記録される。
『STREAMディレクトリ』は、平面視ビデオストリームを格納したAVクリップファイル、及び立体視ビデオストリームを格納したAVクリップファイルが配置されるディレクトリである。平面視ビデオストリームを格納したファイルは、"xxxxx"という5桁の識別番号と、拡張子"m2ts"とによって識別される。立体視ビデオストリームを格納したファイルは、"xxxxx"という5桁の識別番号と、拡張子"ilts"とによって識別される。
STREAMディレクトリに格納されるベースビューストリームのファイルを構成するエクステント、STREAMディレクトリに格納されるべきエンハンスドビューストリームのファイルを構成するエクステントは、AVデータ記録領域に記録される。
図4は、ベースビューストリームを構成する各ソースパケット、及びエンハンスドビューストリームを構成する各ソースパケットがどのような過程を経てAVデータ領域に書き込まれるかを示す。本図の第1段目は、ベースビューストリームまたはエンハンスドビューストリームを構成するTSパケットを示す。
ベースビューストリームまたはエンハンスドビューストリームを構成する188バイトのTSパケットは、第2段目に示すように4バイトのTS_extra_header(図中のハッチング部)が付されて、192バイト長のソースパケットになる。このTS_extra_headerは、当該TSパケットのデコーダ入力時刻情報を示すArrival_Time_Stampを含む。
ベースビューストリームまたはエンハンスドビューストリームを構成するソースパケットは、1つ以上の"ATCシーケンス"を構成する。"ATCシーケンス"とは、ATSの時間軸を構成するソースパケットの配列であって、そのArrival_Time_Stampが参照しているArrival_Time_Clockに、不連続点(no arrival time-base discontinutiy)が存在しないものをいう。言い換えれば、そのArrival_Time_Stampが参照しているArrival_Time_Clockに、連続性が存在するソースパケット列を"ATCシーケンス"という。ATSは、TSパケットの先頭につけられ、デコーダへの転送時刻を示す。
かかるATCシーケンスがAVクリップになり、xxxxx.m2tsというファイル名で記録層に記録される。
かかるAVクリップは、通常のコンピュータファイル同様、1つ以上のファイルエクステントに分割され、各記録層上の領域に記録される。第3段目はAVクリップを示し、第4段目はAVクリップがどのように各記録層に記録されるかを模式的に示す。この第4段目においてファイルを構成する各ファイルエクステントは、予め定められたサイズ(このサイズを、S_EXTという)以上のデータ長を有する。
図5は、BD-ROMの物理単位と、1つのファイルエクステントを構成するソースパケットとの対応関係を示す図である。第2段目に示すように、BD-ROMのAVファイル記録領域には複数セクタが形成されている。ファイルエクステントを構成するソースパケットは、第1段目に示すように、複数個毎にグループ化されて、連続するセクタに書き込まれる。この複数個のソースパケットを"Aligned Unit"といい、BD-ROMへの書き込みは、Aligned Unit単位でなされる。
第3段目においてセクタは、複数個単位で誤り訂正符号が付され、ECCブロックを構成する。再生装置はAligned Unit単位でBD-ROMをアクセスする限り、複数個の完結したソースパケットを得ることができる。以上がBD-ROMに対するAVクリップの書き込みのプロセスである。
図6(a)は、TSパケットのパケットID(PID)がとりうる複数の数値範囲と、各数値範囲のパケットIDをもつTSパケットのPESストリーム種別とを対応付けて示す図である。
0x0100のパケットIDを有するTSパケットは、プログラムマップ(Program_map)を構成し、0x1001のパケットIDを有するTSパケットは、プログラムクロックレファレンス(PCR)を構成する。
0x1011のパケットIDを有するTSパケットは、ベースビュービデオストリームを構成し、0x1012のTSパケットは、エンハンスドビュービデオストリームを構成する。
0x1100〜0x111FのパケットIDを有するTSパケットは、オーディオストリームを構成する。
0x1220〜x123FのパケットIDを有するTSパケットは、ベースビューPGストリームを構成する。0x1240〜0x125FのパケットIDを有するTSパケットは、エンハンスドビューPGストリームを構成する。なお、平面視のためのグラフィクスPGストリームを構成するTSパケットであって、ベースビューPGストリームになりえないもののパケットIDは、0x1200〜0x121Fの数値範囲となる。
これらのビデオストリームを構成するTSパケット、PGストリームを構成するTSパケットは、ベースビューを構成するもの同士、エンハンスドビューを構成するもの同士でまとめられる。図6(b)は、その一例を示す。
本図に示すように、ベースビューを構成するソースパケットのグループは、0x1011のPIDが付与されたベースビュービデオストリームのソースパケット(図中のVideo)、0x1100のPIDが付与されたオーディオストリームのソースパケット(図中のAudio)、0x1220,0x1221,0x1222,0x1223,0x1224,0x1225,0x1226のPIDが付与されたPGストリームのソースパケット(図中のPG)から構成される。
一方、エンハンスドビューを構成するソースパケットのグループは、0x1012のPIDが付与されたエンハンスドビュービデオストリーム(図中のVideo)のソースパケット、0x1101のPIDが付与されたオーディオストリームのソースパケット(図中のAudio)、0x1240,0x1241,0x1242,0x1243,0x1244,0x1245のPIDが付与されたPGストリームのソースパケット(図中のPG)から構成される。
ベースビュー、エンハンスドビューを構成するソースパケットのグループは、インターリーブ配置される。図7は、インターリーブ配置の一例を示す図である。本図におけるインターリーブ配置とは、ベースビュー、エンハンスドビューを構成するエクステントが、"ベースビュー"、"エンハンスドビュー"、"ベースビュー"、"エンハンスドビュー"・・・・・という規則性をもって記録されていることである。
第1段目は、AVファイルを示し、第2段目は、AVファイルを構成するエクステントEXT_L[i],EXT_L[i+1],EXT_R[i],EXT_R[i+1]を示す。第3段目は、各エクステント内に属するソースパケット列を示し、第4段目は、記録層におけるセクタ列を示す。ここで、括弧書きにおける変数i,i+1は、何番目のエクステントとして再生されるかを示す。この記法からすると、変数iによって指示される2つのエクステント、つまり、EXT_L[i],EXT_R[i]は同時に再生され、変数i+1によって指示される2つのエクステント、つまり、EXT_L[i+1],EXT_R[i+1]は同時に再生されることがわかる。
エクステントEXT_L[i],EXT_L[i+1]は、PID=0x1011のソースパケットによって構成されている。破線の矢印h1,h2,h3,h4は、エクステントEXT_L[i],EXT_L[i+1]が、ベースビューストリーム、エンハンスドビューストリームのうちどちらに帰属するという帰属関係を示す。矢印h1,h2に示される帰属関係によると、エクステントEXT_L[i],EXT_L[i+1]は、ベースビューストリームに帰属していることがわかる。矢印h3,h4に示される帰属関係によると、エクステントEXT_R[i],EXT_R[i+1]は、エンハンスドビューストリームに帰属していることがわかる。
エクステントEXT_L[i]のサイズをSEXT_L[i]と呼び、エクステントEXT_R[i]のサイズをSEXT_R[i]と呼ぶ。
これらSEXT_L、SEXT_Rのサイズをどのように定めるかについて説明する。ここでエクステントは、再生装置においてライトビュー用リードバッファ、レフトビュー用リードバッファという2つのバッファに交互に読み出されてビデオデコーダに供される。そうすると、SEXT_L、SEXT_Rのサイズは、ライトビュー用リードバッファ及びレフトビュー用リードバッファをバッファフルにする時間を考慮して定める必要がある。つまり、ライトビュー用リードバッファへの転送レートを、Rmax1とすると、

ライトビュー用リードバッファ=Rmax1×"ジャンプを伴いながらレフトビュー用リードバッファをフルにする時間"

という関係を満たすよう、ライトビュー用リードバッファの容量を定めねばならない。ここでジャンプとは、ディスクシークと同義である。何故なら、BD-ROMにおいて記録に確保できる連続領域は有限であり、ベースビューストリーム及びエンハンスドビューストリームは、必ずしも、隣合わせで記録されるとは限らず、飛び飛びの領域に記録されることも有り得るからである。
続いて"ジャンプを伴いながらレフトビュー用リードバッファをフルにする時間"について考える。レフトビュー用リードバッファにおけるTSパケット蓄積は、Rud-Rmax2という転送レートでなされる。これは、レフトビュー用リードバッファからの出力レートRmax2と、レフトビュー用リードバッファへの入力レートRudとの差分を意味する。そうすると、レフトビュー用リードバッファをフルにする時間は、RB2/(Rud-Rmax2)となる。
レフトビュー用リードバッファにデータを読み出すにあたっては、ライトビュービデオストリームからレフトビュービデオストリームへのジャンプ時間(Tjump)と、レフトビュービデオストリームからライトビュービデオストリームへのジャンプ時間(Tjump)とを考慮する必要があるので、レフトビュー用リードバッファの蓄積には(2×Tjump+RB2/(Rud-Rmax2))という時間が必要になる。
ライトビュー用リードバッファの転送レートをRmax1とすると、上述したレフトビュー用リードバッファの蓄積時間において、Rmax1という転送レートで、ライトビュー用リードバッファ内の全てのソースパケットは出力されねばならないから、ライトビュー用リードバッファのサイズRB1は、

RB1≧Rmax1×[2×Tjump+RB2/(Rud-Rmax2)]

となる。

同様の手順で、レフトビュー用リードバッファの容量RB2を求めると、

RB2≧Rmax2×[2×Tjump+RB1/(Rud-Rmax1)]

となる。

ライトビュー用リードバッファ、レフトビュー用リードバッファのメモリサイズの具体的な値としては、1.5Mbyte以下であり、本実施の形態においてエクステントサイズSEXT_R、SEXT_Lは、このライトビュー用リードバッファ、レフトビュー用リードバッファのサイズと同じサイズか、またはこれにほぼ等しいサイズに設定されている。以上がベースビューストリーム、エンハンスドビューストリームの記録のされ方についての説明である。
続いて、ベースビューストリーム及びエンハンスドビューストリームの内部構成について説明する。
図8は、立体視のためのベースビューストリーム、エンハンスドビューストリームの内部構成の一例を示す図である。
ベースビューストリーム、エンハンスドビューストリームは例えば、ピクチャデータを含む。ピクチャデータには複数種類があり、Iピクチャ、Pピクチャ、Bピクチャといったピクチャデータを含む。
Iピクチャとは、一画面分のピクチャデータである。
Pピクチャとは、基準となるIピクチャとの差分を示すピクチャデータである。
Bピクチャとは、基準となるIピクチャとPピクチャにより生成されるピクチャデータである。
本図の第2段目は、ベースビューストリームの内部構成を示す。このストリームには、ピクチャデータI1,P2,Br3,Br4,P5,Br6,Br7,P9というピクチャデータが含まれている。
これらのピクチャデータは、DTS(デコーディングタイムスタンプ:デコーダによる復号の開始時刻を示す情報)に従いデコードされる。第1段目は、レフトビュー画像を示す。そうしてデコードされたピクチャデータI1,P2,Br3,Br4,P5,Br6,Br7,P9をPTSに従い、I1,Br3,Br4,P2,Br6,Br7,P5の順序で再生することで、レフトビュー画像が再生されることになる。
第4段目は、エンハンスドビューストリームの内部構成を示す。このセカンダリビデオストリームには、P1,P2,B3,B4,P5,B6,B7,P8というピクチャデータが含まれている。これらのピクチャデータは、DTSに従いデコードされる。第3段目は、ライトビュー画像を示す。そうしてデコードされたピクチャデータP1,P2,B3,B4,P5,B6,B7,P8をPTS(プレゼンテーションタイムスタンプ:ビデオ・オーディオの提示時刻を示す情報)に従い、P1,B3,B4,P2,B6,B7,P5の順序で再生することで、ライトビュー画像が再生されることになる。
第5段目は、液晶シャッタゴーグル400の状態をどのように変化させるかを示す。この第5段目に示すように、レフトビュー映像の視聴時は、ライトビューの液晶シャッタを閉じ、ライトビュー映像の視聴時は、レフトビューの液晶シャッタを閉じていることがわかる。
また、エンハンスドビューストリームは、時間方向の冗長性を利用したピクチャ間予測符号化に加えて、視点間の冗長性を利用したピクチャ間予測符号化によって圧縮されている。すなわち、エンハンスドビューストリームのピクチャは、ベースビューストリームの同じ表示時刻のピクチャを参照して圧縮されている。
例えば、エンハンスドビューストリームの先頭Pピクチャは、ベースビューストリームのIピクチャを参照し、エンハンスドビューストリームのBピクチャは、ベースビューストリームのBrピクチャを参照し、エンハンスドビューストリームの二つ目のPピクチャは、ベースビューストリームのPピクチャを参照している。
図9は、ゴーグルの透光/遮光を、図8のタイミングに従って切り替えることにより、どのような映像が再生に供されるかを示す図である。ここでフレーム表示期間が、1/24秒であり、ゴーグルにおけるライトビュー、レフトビューの透光/遮光を、1/48秒おきに変化させれば、ライトビュー、レフトビューのピクチャは、それぞれ交互に現れることになる。図9に示されるレフトビューの画像及びライトビューの画像は、画像内に現れる人物の顔の向きや位置が、レフトビュー画像と、ライトビュー画像とで僅かながらずれていることを模式的に示している(なお、図9、図10における人物の顔の向きや位置のズレは模式的なものである)。
図10は、目の残像反応により形成される立体映像を示す図である。ゴーグルの透光/遮光を、図8のタイミングに従って切り替えることにより、立体映像として認識することができる。
続いてPGストリームについて説明する。図11は、PGストリームの構成を示す図である。図11(a)の第1段目は、AVClipを構成するTSパケット列を示す。第2段目は、PGストリームを構成するPESパケット列を示す。第2段目におけるPESパケット列は、第1段目におけるTSパケットのうち、所定のPIDをもつTSパケットからペイロードを取り出して、連結することにより構成される。
第3段目は、PGストリームの構成を示す。PGストリームは、PCS(Presentation Composition Segment)、WDS(Window Definition Segment)、PDS(Palette Difinition Segment)、ODS(Object Definition Segment)、END(END of Display Set Segment)と呼ばれる機能セグメントからなる。これらの機能セグメントのうち、PCSは、画面構成セグメントと呼ばれ、WDS,PDS,ODS,ENDは定義セグメントと呼ばれる。PESパケットと機能セグメントとの対応関係は、1対1の関係、または1対多の関係である。つまり機能セグメントは、1つのPESパケットに変換されてBD-ROMに記録されるか、またはフラグメント化され、複数PESパケットに変換されてBD-ROMに記録される。
図11(b)は、機能セグメントを変換することで得られるPESパケットを示す図である。図11(b)に示すようにPESパケットは、『パケットヘッダ』と、『ペイロード』とからなり、このペイロードが機能セグメントの実体にあたる。また、パケットヘッダには、この機能セグメントに対応するDTS、PTSが存在する。以降の説明では、機能セグメントが格納されるPESパケットのヘッダ内に存在するDTS及びPTSを、機能セグメントのDTS及びPTSとして扱う。
これら様々な種別の機能セグメントは、図12のような論理構造を構築する。図12は、様々な種別の機能セグメントにて構成される論理構造を示す図である。本図は第4段目に機能セグメントを、第3段目にDisplay Setの類型を、第2段目にDisplay Setを、第1段目にEpochをそれぞれ示す。第2段目のDisplay Set(DSと略す)とは、PGストリームを構成する複数機能セグメントのうち、一画面分のグラフィクスを構成するものの集合をいう。また、図中の破線kz1は、第4段目の機能セグメントが、どのDSに帰属しているかという帰属関係を示す。PCS-WDS-PDS-ODS-ENDという一連の機能セグメントが、1つのDSを構成していることがわかる。再生装置は、このDSを構成する複数機能セグメントをBD-ROMから読み出せば、一画面分のグラフィクスを構成することができる。
第1段目のEpochとは、AVClipの再生時間軸上においてメモリ管理の連続性をもっている一つの期間、及び、この期間に割り当てられたデータ群をいう。ここで想定しているメモリとは、一画面分のグラフィクスを格納しておくためのグラフィクスプレーン、伸長された状態のグラフィクスデータを格納しておくためのオブジェクトバッファである。これらについてのメモリ管理に連続性があるというのは、このEpochにあたる期間を通じて、これらグラフィクスプレーン及びオブジェクトバッファのフラッシュは発生せず、グラフィクスプレーン内のある決められた矩形領域内でのみ、グラフィクスの消去及び再描画が行われることをいう(※ここでフラッシュとは、プレーン及びバッファの格納内容を全部クリアしてしまうことである)。この矩形領域の縦横の大きさ及び位置は、Epochにあたる期間において、終始固定されている。グラフィクスプレーンにおいて、この固定化された領域内で、グラフィクスの消去及び再描画を行っている限り、映像とグラフィクスとの同期が保障される。つまりEpochは、映像−グラフィクスの同期の保障が可能な再生時間軸上の一単位ということができる。グラフィクスプレーンにおいて、グラフィクスの消去・再描画を行うべき領域を変更したい場合は、再生時間軸上においてその変更時点を定義し、その変更時点以降を、新たなEpochにせねばならない。この場合、2つのEpochの境界では、映像−グラフィクスの同期は保証されない。
また、Epochにおけるグラフィクスの位置関係に例えれば、再生時間軸上において、画面上のある決まった矩形領域内にグラフィクスが出現している期間が、Epochということができる。
以上がEpochについての説明である。続いてDisplay Setについて説明する。
図12における破線hk1,2は、第2段目のDSが、第3段目のDSの類型のうちどの類型と対応しているかを示している。また、Epoch Start、Acquisition Point、Normal Caseという一連のDSは、第1段目のEpochを構成していることがわかる。『Epoch Start』、『Acquisition Point』、『Normal Case』は、DSの類型である。本図におけるAcquisition Point、Normal Caseの順序は、一例にすぎず、どちらが先であってもよい。
『Epoch Start』は、新たなEpochの開始を示す。そのためEpoch Startは、次の画面合成に必要な全ての機能セグメントを含んでいる。Epoch Startは、映画作品におけるチャプター等、頭出しがなされることが判明している位置に配置される。
『Acquisition Point』は、Epochの開始時点ではないが、次の画面合成に必要な全ての機能セグメントを含んでいるDisplay Setである。Acquisition PointたるDSから頭出しを行えば、グラフィクス表示を確実に実現することができる。つまりAcquisition PointたるDSは、Epochの途中からの画面構成を可能にするという役割をもつ。Acquisition PointたるDisplay Setは、頭出し先になり得る位置に組み込まれる。そのような位置には、タイムサーチにより指定され得る位置がある。タイムサーチとは、何分何秒という時間入力をユーザから受け付けて、その時間入力に相当する再生時点から頭出しを行う操作である。かかる時間入力は、10分単位、10秒単位というように、大まかな単位でなされるので、10分間隔の再生位置、10秒間隔の再生位置がタイムサーチにより指定され得る位置になる。このようにタイムサーチにより指定され得る位置にAcquisition Pointを設けておくことにより、タイムサーチ時のPGストリーム再生を好適に行うことができる。
『Normal Case』は、前のDisplay Setからの差分のみを含む。例えば、あるDSvのグラフィクスは、先行するDSuと同じ内容であるが、画面構成が、この先行するDSuとは異なる場合、PCSと、ENDのみのDSvを設けて、このDSvをNormal CaseのDSにする。こうすれば、重複するODSを設ける必要はなくなるので、BD-ROMにおける容量削減に寄与することができる。一方、Normal CaseのDSは、差分にすぎないので、Normal Case単独では画面構成を行えない。
続いてDefinition Segment(ODS,WDS,PDS)について説明する。
『Object_Definition_Segment』は、グラフィクスオブジェクトを定義する機能セグメントである。このグラフィクスオブジェクトについて以下説明する。
BD-ROMに記録されているAVClipは、ハイビジョン並みの高画質をセールスポイントにしているため、グラフィクスオブジェクトの解像度も、1920×1080画素という高精細な大きさに設定されている。1920×1080という解像度があるので、BD-ROMでは、例えば劇場上映用の字幕の字体、つまり、手書きの味わい深い字体の字幕表示やアニメーションキャラクターを鮮やかに再現できる。グラフィクスオブジェクトは、複数のランレングスデータからなる。ランレングスデータとは、ピクセル値を示すピクセルコードと、ピクセル値の連続長とにより、画素列を表現したデータである。ピクセルコードは、8ビットの値であり、1〜255の値をとる。ランレングスデータでは、このピクセルコードによりフルカラーの16,777,216色から任意の256色を選んで画素の色として設定することができる。なお、字幕として表示される場合、グラフィクスオブジェクトは、透明色の背景に、文字列を配置することで描画せねばならない。
ODSによるグラフィクスオブジェクトの定義は、図13(a)に示すようなデータ構造をもってなされる。ODSは、図13(a)に示すように、自身がODSであることを示す『segment_type』と、ODSのデータ長を示す『segment_length』と、EpochにおいてこのODSに対応するグラフィクスオブジェクトを一意に識別する『object_id』と、EpochにおけるODSのバージョンを示す『object_version_number』と、『last_in_sequence_flag』と、グラフィクスオブジェクトの一部又は全部である連続バイト長データ『object_data_fragment』とからなる。
グラフィクスストリームのEpochには、同じIDをもつODSが複数含まれる。同じIDをもつ複数のODSは縦横のサイズが同じであり、オブジェクトバッファの共通の領域が割り当てられる。同じIDをもつ複数ODSのうち1つが、この領域に読み出されれば、オブジェクトバッファにおけるODSは、同じIDをもつ後続のODSにより上書きされる。このように、ビデオストリームの再生進行に伴い、オブジェクトバッファ上のODSが、同じ識別子をもつ後続のODSにて上書きされることにより、ODSにおける絵柄は、時間的な変遷を遂げる。同じIDをもつグラフィクスオブジェクトの縦横サイズを同じにするとの制限は、1つのEpoch内の制限に過ぎない。あるEpochに属するグラフィクスオブジェクトと、次のEpochに属するグラフィクスオブジェクトとでは縦横のサイズが変わってもよい。
『last_insequence_flag』、『object_data_fragment』について説明する。PESパケットのペイロードの制限から、PGを構成する非圧縮グラフィクスが1つのODSでは格納できない場合がある。そのような場合、グラフィクスを分割することにより得られた1部分(フラグメント)がobject_data_fragmentに設定される。1つのグラフィクスオブジェクトを複数ODSで格納する場合、最後のフラグメントを除く全てのフラグメントは同じサイズになる。つまり最後のフラグメントは、それ以前のフラグメントサイズ以下となる。これらフラグメントを格納したODSは、DSにおいて同じ順序で出現する。グラフィクスオブジェクトの最後は、last_sequence_flagをもつODSにより指示される。上述したODSのデータ構造は、前のPESパケットからフラグメントを詰めてゆく格納法を前提にしているが、各PESパケットに空きが生じるように、詰めてゆくという格納法であってもよい。以上がODSの説明である。
『Palette_Difinition_Segment(PDS)』は、パレットデータを格納する機能セグメントである。パレットデータとは、1〜255のピクセルコードと、ピクセル値との組合せを示すデータである。ここでピクセル値は、赤色差成分(Cr値),青色差成分(Cb値),輝度成分(Y値),透明度(T値)から構成される。各ランレングスデータが有するピクセルコードを、パレットに示されるピクセル値に置き換えることで、ランレングスデータは発色されることになる。PDSのデータ構造を図13(b)に示す。図13(b)に示すように、PDSは、自身がPDSであることを示す『segment_type』、PDSのデータ長を示す『segment_length』、このPDSに含まれるパレットを一意に識別する『pallet_id』、EpochにおけるEpochのPDSのバージョンを示す『pallet_version_number』、各エントリーについての情報『pallet_entry』からなる。『pallet_entry』は、各エントリーにおける赤色差成分(Cr値),青色差成分(Cb値),輝度成分Y値,透明度(T値)を示す。
続いてWDSについて説明する。
『window_definition_segment』は、グラフィクスプレーンの矩形領域を定義するための機能セグメントである。Epochでは、クリア及び再描画が、グラフィクスプレーンにおけるある矩形領域内で行われている場合のみ、メモリ管理に連続性が生ずることは既に述べている。このグラフィクスプレーンにおける矩形領域は"window"と呼ばれ、このWDSで定義される。図14(a)は、WDSのデータ構造を示す図である。本図に示すようにWDSは、グラフィクスプレーンにおいてウィンドゥを一意に識別する『window_id』と、グラフィクスプレーンにおける左上画素の水平位置を示す『window_horizontal_position』と、グラフィクスプレーンにおける左上画素の垂直位置を示す『window_vertical_position』と、グラフィクスプレーンにおけるウィンドゥの横幅を示す『window_width』と、グラフィクスプレーンにおける縦幅を示す『window_height』とを用いて表現される。
window_horizontal_position、window_vertical_position、window_width、window_heightがとりうる値について説明する。これらが想定している座標系は、グラフィクスプレーンの内部領域であり、このグラフィクスプレーンは、縦:video_height、横:video_widthという二次元状の大きさをもつ。
window_horizontal_positionは、グラフィクスプレーンにおける左上画素の水平アドレスであるので、1〜video_widthの値をとり、window_vertical_positionは、グラフィクスプレーンにおける左上画素の垂直アドレスであるので1〜video_heightの値をとる。
window_widthは、グラフィクスプレーンにおけるウィンドゥの横幅であるので、1〜video_width-window_horizontal_positionの値をとり、window_heightは、グラフィクスプレーンにおける縦幅であるので1〜video_height-window_vertical_positionの値をとる。
WDSのwindow_horizontal_position、window_vertical_position、window_width、window_heightにより、グラフィクスプレーンの何処にウィンドゥを配置するか、ウィンドゥの大きさをどれだけにするかをEpoch毎に規定することができる。そのため、あるEpochに属するピクチャが表示されている期間において、ピクチャ内の絵柄の邪魔にならないように、ピクチャ上の余白にあたる位置に、ウィンドゥが現れるようオーサリング時に調整しておくことができる。これにより、例えばグラフィクスによる字幕表示を見易くすることができる。WDSはEpoch毎に定義可能なので、ピクチャの絵柄に時間的な変動があっても、その変動に応じて、グラフィクスを見易く表示することができる。そのため、結果として、字幕を映像本体に組み込むのと同じレベルにまで映画作品の品質を高めることができる。
続いて『END of Display Set Segment』について説明する。END of Display Set Segmentは、Display Setの伝送の終わりを示す指標であり、Display Setにおける機能セグメントのうち、最後のODSの直後に配置される。この END of Display Set Segmentの内部構成は、自身が END of Display Set Segmentであることを示す『segment_type』と、当該機能セグメントのデータ長を示す『segment_length』とからなり、これといって説明が必要な構成要素はない。故に図示は省略する。
以上がODS、PDS、WDS、ENDについての説明である。
続いて、PCSについて説明する。PCSは、対話的な画面を構成する機能セグメントである。PCSは、図14(b)に示すデータ構造で構成される。本図に示すようにPCSは、『segment_type』と、『segment_length』と、『composition_number』と、『composition_state』と、『pallet_update_flag』と、『pallet_id』と、『composition_object(1)〜(m)』とから構成される。
『composition_number』は、0から15までの数値を用いてDisplay Setにおけるグラフィクスアップデートを識別する。どのように識別するかというと、Epochの先頭から本PCSまでにグラフィクスアップデートが存在すれば、それらグラフィクスアップデートを経由する度に、インクリメントされるというルールでcomposition_numberは設定される。
『composition_state』は、本PCSから始まるDisplay Setが、Normal Caseであるか、Acquisition Pointであるか、Epoch Startであるかを示す。
『pallet_update_flag』は、本PCSにおいてPalletOnly Displey Updateがなされているかどうかを示す。PalletOnly Displey Updateとは、直前のパレットのみを新たなものに切り換えることでなされるアップデートをいう。本PCSでかかるアップデートがなされれば、本フィールドは"1"に設定される。
『pallet_id』は、PalletOnly Displey Updateに用いられるべきパレットを示す。
『composition_object(1)・・・(m)』は、このPCSが属するDisplay Setにおける画面構成を実現するための制御情報である。図14(b)の破線wd1は、任意のcomposition_object(i)の内部構成をクローズアップしている。この破線wd1に示すように、composition_object(i)は、『object_id_ref』、『window_id_ref』、『forced_on_flag』、『object_cropped_flag』、『object_horizontal_position』、『object_vertical_position』、『cropping_rectangle情報(1)(2)・・・・・(n)』からなる。
『object_id_ref』は、グラフィクスオブジェクト識別子(object_id)の参照値である。この参照値は、composition_object(i)に対応する画面構成を実現するにあたって、用いるべきグラフィクスオブジェクトの識別子を意味する。
『window_id_ref』は、ウィンドゥ識別子(window_id)の参照値である。この参照値は、composition_object(i)に対応する画面構成を実現するにあたって、どのウィンドゥに、グラフィクスオブジェクトを表示させるべきかを示す。
『forced_on_flag』は、再生装置の設定でグラフィクスオブジェクトがOFFになっている際でも強制的に表示されるべきグラフィクスオブジェクトを示す場合に1になる。
『object_cropped_flag』は、オブジェクトバッファにおいてクロップされたグラフィクスオブジェクトを表示するか、グラフィクスオブジェクトを非表示とするかを切り換えるフラグである。"1"と設定された場合、オブジェクトバッファにおいてクロップされたグラフィクスオブジェクトが表示され、"0"と設定された場合、グラフィクスオブジェクトは非表示となる。
『object_horizontal_position』は、グラフィクスプレーンにおけるグラフィクスオブジェクトの左上画素の水平位置を示す。
『object_vertical_position』は、グラフィクスプレーンにおける左上画素の垂直位置を示す。
『cropping_rectangle情報(1)(2)・・・・・(n)』は、『object_cropped_flag』が1に設定されている場合に有効となる情報要素である。破線wd2は、任意のcropping_rectangle情報(i)の内部構成をクローズアップしている。この破線に示すようにcropping_rectangle情報(i)は、『object_cropping_horizontal_position』、『object_cropping_vertical_position』、『object_cropping_width』、『object_cropping_height』からなる。
『object_cropping_horizontal_position』は、グラフィクスプレーンにおけるクロップ矩形の左上画素の水平位置を示す。クロップ矩形は、グラフィクスオブジェクトの一部を切り出すための枠であり、ETSI EN 300 743標準規格における"Region"に相当する。
『object_cropping_vertical_position』は、グラフィクスプレーンにおけるクロップ矩形の左上画素の垂直位置を示す。
『object_cropping_width』は、グラフィクスプレーンにおけるクロップ矩形の横幅を示す。
『object_cropping_height』は、グラフィクスプレーンにおけるクロップ矩形の縦幅を示す。
以上がPCSのデータ構造である。
<2デコーダモデルを採用する場合の制限>
続いて、レフトビューPGストリーム及びライトビューPGストリームのそれぞれについて、上述した各機能セグメントの各フィールドをどのように設定するのかについて説明する。
図15は、レフトビューPGストリームに含まれるDSの類型、composition_number、及びforced_on_flagと、ライトビューPGストリームに含まれるDSの類型、composition_number、及びforced_on_flagとの対応関係を示す図である。本図に示すように、Epoch StartであるDS及びAcquisition PointであるDSは必ず、レフトビューとライトビューとがペアで存在するようになっている。なぜなら、Epoch Start及びAcquisition Pointは、それ単体でグラフィクスオブジェクトの描写を完結できる単位であり、必ずペアで存在しなければ3D再生ができないからである。つまり、レフトビューのDSがEpoch Startである場合には、必ずペアとなるライトビューのDSが存在し、かつ、そのcomposition_stateもEpoch Startでなければならない。
同様に、レフトビューのDSがAcquisition Pointである場合にも、必ずペアとなるライトビューのDSが存在し、かつ、そのcomposition_stateもAcquisition Pointである必要がある。
レフトビューのDSがNormal Caseである場合にも、対応するライトビューのDSはNormal Caseであることが望ましい。
このように、対応するDSの類型を共通にすることで、例えば、ランダムアクセスを行う際の立体視を保証することができる。つまり、レフトビューのDSが例えばEpoch Startであれば、これに対応するライトビューのDSもEpoch Startであるので、これらを頭出しがなされることが判明している位置に配置することで、レフトビュー及びライトビューの一方だけがデコード可能であり、他方がデコード不可能であるといった状況を回避することができる。
また、本図に示すように、3Dとしてペアで再生される、レフトビューのDSのcomposition_numberとライトビューのDSのcomposition_numberとは等しくなければならない。このようにレフトビューとライトビューのDSを対応付けるためにcomposition_numberを等しくしておくことで、グラフィクスデコーダは、再生時にどのレフトビューのDSとライトビューのDSを出力すべきか容易に判定できる。
さらに、レフトビューPGストリームのDSにおけるforced_on_flagと、ライトビューPGストリームの対応するDSにおけるforced_on_flagとは、同じ値に設定する必要がある。なぜなら、再生中にライトビューのグラフィクスオブジェクト(あるいはレフトビューのグラフィクスオブジェクト)だけが出力され、それに対応するレフトビューのグラフィクスオブジェクト(あるいはライトビューのグラフィクスオブジェクト)が出力されないと、グラフィクスオブジェクトの立体視が不可能となるからである。
また、画面構成セグメントがPESパケットに格納されていることは既に述べたが、当然ながら、レフトビューのDSに含まれる画面構成セグメントと、これに対応するライトビューのDSに含まれる画面構成セグメントとでは、それら画面構成セグメントを格納した各PESパケットのPTSの値を同一の値にする必要がある。
また、レフトビューのDSのパレット定義セグメントと、これに対応するライトビューのDSのパレット定義セグメントとでは、コード値と、輝度及び色差との対応関係が同一の内容に設定されており、palette_idについても両者で同一になっている。
続いて、WDSの各フィールド、及びPCSにおいて上述した以外のフィールドをどのように記述するかについて説明する。図16、17は、Display Setに属するWDS、PCSの記述例を示す図である。ここでは、グラフィクスがアニメーションキャラクターの場合を例に挙げて説明するが、グラフィクスが、装飾文字等からなる字幕であってもよい。
図16は、レフトビューのDSに属するWDS、PCSの記述例である。図16(a)において、WDSのwindow_horizontal_position(left)、window_vertical_positionは、グラフィクスプレーンにおけるウィンドゥの左上座標を、window_width,window_heightは、ウィンドゥの表示枠の横幅、縦幅を示す。ここで、window_horizontal_position(left)の(left)は、このwindow_horizontal_positionが、対応するライトビューのwindow_horizontal_position(Right)とは異なる値であることを意味する。
図16(a)におけるクロップ情報のobject_cropping_horizontal_position(left),object_cropping_vertical_positionは、オブジェクトバッファにおけるグラフィクスの左上座標を原点とした座標系においてクロップ範囲の基準点を示している。そして基準点からobject_cropping_width、object_cropping_heightに示される範囲(図中の太枠部分)がクロップ範囲になる。クロップされたグラフィクスは、グラフィクスプレーンの座標系においてobject_horizontal_position(left),object_vertical_positionを基準点(左上)とした矩形範囲cp1に配置される。こうすることにより、グラフィクスがグラフィクスプレーンにおけるウィンドゥ内に書き込まれる。これにより、グラフィクスは動画像と合成され表示される。
図17は、ライトビューのDSに属するWDS、PCSの記述例である。図17(a)において、WDSのwindow_horizontal_position(Right)、window_vertical_positionは、グラフィクスプレーンにおけるウィンドゥの左上座標を、window_width,window_heightは、ウィンドゥの表示枠の横幅、縦幅を示す。ここで、window_horizontal_position(Right)の(Right)は、このwindow_horizontal_positionが、対応するレフトビューのwindow_horizontal_position(left)とは異なる値であることを意味する。
図17(a)におけるクロップ情報のobject_cropping_horizontal_position(Right),object_cropping_vertical_positionは、オブジェクトバッファにおけるグラフィクスの左上座標を原点とした座標系においてクロップ範囲の基準点を示している。そして基準点からobject_cropping_width、object_cropping_heightに示される範囲(図中の太枠部分)がクロップ範囲になる。クロップされたグラフィクスは、グラフィクスプレーンの座標系においてobject_horizontal_position(Right),object_vertical_positionを基準点(左上)とした矩形範囲cp2に配置される。こうすることにより、グラフィクスがグラフィクスプレーンにおけるウィンドゥ内に書き込まれる。これにより、グラフィクスは動画像と合成され表示される。
上述のように、WDSについては、Window_width及びwindow_heightが、レフトビューとライトビューとで同じ値に設定されている。ウィンドゥの表示枠の横幅及び縦幅が、レフトビューとライトビューとで異なると、一方ではウィンドゥの表示枠内にグラフィクスが収まるが、他方では収まりきらない場合も考えられ、その場合には、映像とグラフィクスとの同期が保障されないからである。また、グラフィクスプレーンにおけるウィンドゥの左上座標に関して、window_vertical_positionはレフトビューとライトビューとで共通の値になっているが、window_horizontal_positionは、レフトビューとライトビューとで値が異なっている。これは通常、左右の目では水平方向においては物体の見える位置が異なるからである。ただし、グラフィクスの生成の仕方によっては、window_vertical_positionの値がレフトビューとライトビューとで違っていてもよいし、window_horizontal_positionがレフトビューとライトビューとで同じであってもよい。
また、object_cropping_width及びobject_cropping_heightが、レフトビューとライトビューとで同じ値に設定されている。クロップの範囲が異なると、レフトビューとライトビューとでグラフィクスプレーンに配置されたグラフィクスに違いが出るからである。また、クロップ範囲の基準点に関して、object_cropping_vertical_positionはレフトビューとライトビューとで共通の値になっているが、object_cropping_horizontal_positionは、レフトビューとライトビューとで値が異なっている。ただし、object_cropping_vertical_positionの値がレフトビューとライトビューとで違っていてもよいし、object_cropping_horizontal_positionがレフトビューとライトビューとで同じであってもよい。
また、矩形範囲の基準点に関して、object_vertical_positionはレフトビューとライトビューとで共通の値になっているが、object_horizontal_positionは、レフトビューとライトビューとで値が異なっている。これは、上述したように、通常、左右の目では水平方向において物体の見える位置が異なるからである。ただし、グラフィクスの生成の仕方によっては、object_vertical_positionの値がレフトビューとライトビューとで違っていてもよいし、object_horizontal_positionがレフトビューとライトビューとで同じであってもよい。
さらに、図16、17に示すように、レフトビューのグラフィクスと、ライトビューのグラフィクスとは、異なる角度から見たグラフィクスであるので、両者のODSのobject_data_flagmentは、当然異なる。ただし、図18に示すように、object_idには共通の値が設定される。これは、再生装置において2デコーダ構成を採用した場合、グラフィクスコントローラを2つのデコーダで共通にする構成が採用される場合があり得、その場合には、レフトビューとライトビューとで対応するグラフィクスオブジェクトのobject_idを同じ値に設定しておかないと、グラフィクスコントローラは、どのグラフィクスオブジェクト同士が対応関係にあるのか判別できないためである。
以上の制限を加えることで、2デコーダ構成において、レフトビューPGストリームとライトビューPGストリームとによる立体視を実現することができる。
続いて、これらPCS、ODSを有したDisplay Setが、AVClipの再生時間軸上にどのように割り当てられるかについて説明する。Epochは、再生時間軸上においてメモリ管理が連続する期間であり、Epochは1つ以上のDisplay Setから構成されるので、Display SetをどうやってAVClipの再生時間軸に割り当てるかが問題になる。ここでAVClipの再生時間軸とは、AVClipに多重されたビデオストリームを構成する個々のピクチャデータのデコードタイミング、再生タイミングを規定するための想定される時間軸をいう。この再生時間軸においてデコードタイミング、再生タイミングは、90KHzの時間精度で表現される。Display Set内のPCS、ODSに付加されたDTS、PTSは、この再生時間軸において同期制御を実現すべきタイミングを示す。このPCS、ODSに付加されたDTS、PTSを用いて同期制御を行うことが、再生時間軸へのDisplay Setの割り当てである。
Epochに属するDisplay Setのうち、任意のDisplay SetをDSnとすると、DSnは、図19に示すようなDTS、PTS設定によりAVClipの再生時間軸に割り当てられる。図19は、DSnが割り当てられた、AVClipの再生時間軸を示す図である。本図においてDSnの始期は、DSnに属するPCSのDTS値(DTS(DSn[PCS]))により示されており、終期は、DSnに属するPCSのPTS値(PTS(DSn[PCS]))により示されている。そしてDSnにおいて最初の表示が行われるタイミングも、PCSのPTS値(PTS(DSn[PCS]))に示されている。AVClip再生時間軸において、ビデオストリームの所望のピクチャが出現するタイミングと、PTS(DSn[PCS])とを一致させれば、DSnの最初の表示は、そのビデオストリームと同期することになる。
PTS(DSn[PCS])は、DTS(DSn[PCS])に、ODSのデコードに要する期間(DECODEDURATION)を足し合わせた値である。
最初の表示に必要なODSのデコードは、このDECODEDURATION内に行われることになる。図19の期間mc1は、DSnに属する任意のODS(ODSm)のデコードがなされる期間を示す。このデコード期間の開始点は、DTS(ODSn[ODSm])により示され、このデコードの終了点は、PTS(ODSn[ODSm])により示される。
以上のような再生時間軸への割り付けを、Epochに属する全てのODSに対して行うことで、Epochは規定されることになる。以上が再生時間軸に対する割り付けについての説明である。
<クリップ情報ファイル>
図20は、クリップ情報ファイルの一例を示す図である。クリップ情報ファイルは、本図に示すようにAVクリップの管理情報であり、AVクリップと1対1に対応し、クリップ情報と、ストリーム属性テーブルと、エントリーマップテーブルとから構成される。
引き出し線zh1は、ストリーム属性テーブルの内部構成をクローズアップして示している。ストリーム属性テーブルには、この引出線に示すように、AVクリップに含まれる各ストリームについての属性情報が、PID毎に登録される。属性情報は、ベースビューストリーム、エンハンスドビューストリーム毎に異なる情報を持つ。
引き出し線zh2は、ベースビューストリームの内部構成をクローズアップして示している。引出線に示すように、PID=0x1011のTSパケットによって構成されるベースビューのストリーム属性情報として、コーディック、解像度、アスペクト比、フレームレートが記述される。
続いて、エントリーマップテーブルの内部構成について説明する。
エントリーマップは、あるパケットIDを用いて特定されるSTC時間軸のうち、任意のソースパケットのソースパケット番号と、STC時間軸におけるPTSとの対応付けを示すテーブルである。
STC時間軸は、デコード時刻、表示時刻を表すMPEG2-TSの時間軸である。AVストリームのシステム基準時刻であるSTC(System Time Clock)の不連続点(system time-base discontinuity)が存在しない1つのソースパケットのまとまりを"STCシーケンス"と呼ぶ。
図21(a)は、エントリーマップテーブルの内部構成を示す図である。引き出し線eh1は、エントリーマップテーブルの内部構成をクローズアップして示している。
引出線eh1に示すように、エントリーマップテーブルには、PID=0x1011のTSパケットによって構成されるベースビューストリームについてのエントリーマップ、PID=0x1012のTSパケットによって構成されるエンハンスドビューストリームについてのエントリーマップというように、複数種別のTSパケットによって構成されるパケッタイズドエレメンタリストリームのそれぞれについて、エントリーマップが存在する。エントリーマップにおいて、一対となるPTSとSPNとの組みを含む情報を"エントリーポイント"と呼ぶ。エントリーポイントは、PTSとSPNとの組みに、当該SPNからのデコードが可能であるか否かを示す表示方式フラグ(is_angle_changeフラグ)を対応付けた情報である。また、先頭を0としてエントリーポイント毎にインクリメントした値を"エントリーポイントID(以下EP_ID)"と呼ぶ。
このエントリーマップを利用することにより、再生装置は、ビデオストリームの時間軸上の任意の地点に対応するソースパケット位置を特定することが出来るようになる。例えば、早送り・巻戻しの特殊再生の際には、エントリーマップに登録されるIピクチャを特定し選択して再生することにより、AVクリップを解析することなく効率的に処理を行うことができる。また、エントリーマップは、AVクリップ内に多重化されるビデオストリーム毎に作られ、PIDで管理される。
引き出し線eh2は、PID=0x1011のエントリーマップの内部構成をクローズアップして示している。EP_ID=0に対応するエントリーポイント、EP_ID=1に対応するエントリーポイント、EP_ID=2に対応するエントリーポイント、EP_ID=3に対応するエントリーポイントを含んで構成される。EP_ID=0に対応するエントリーポイントは、オンに設定されたis_angle_changeフラグと、SPN=3と、PTS=80000とから構成される。EP_ID=1に対応するエントリーポイントは、オフに設定されたis_angle_changeフラグと、SPN=1500と、PTS=270000とから構成される。
EP_ID=2に対応するエントリーポイントは、オフに設定されたis_angle_changeフラグと、SPN=3200と、PTS=360000とから構成される。EP_ID=3に対応するエントリーポイントは、オフに設定されたis_angle_changeフラグと、SPN=4800と、PTS=450000とを含んでいる。
本図(b)は、(a)に示したPID=0x1011のTSパケットに対応するエントリーマップ内の複数のエントリーポイントによって、どのソースパケットを指示されるかを示す。EP_ID=0に対応するエントリーポイントは、SPN=3を指し示しており、このソースパケット番号をPTS=80000と対応付けている。EP_ID=1に対応するエントリーポイントは、SPN=1500を指し示しており、このソースパケット番号をPTS=270000に対応付けている。
EP_ID=2に対応するエントリーポイントは、SPN=3200のソースパケットを指し示しており、このソースパケット番号をPTS=360000に対応付けている。EP_ID=3に対応するエントリーポイントは、SPN=4800のソースパケットを指し示しおり、このソースパケット番号をPTS=450000と対応付けている。
図22は、エントリーマップによるエントリーポイントの登録を示す。第1段目は、STCシーケンスにて規定される時間軸を示す。第2段目は、クリップ情報におけるエントリーマップを示す。第3段目は、ATCシーケンスを構成するソースパケット列を示す。
矢印te1,te2,te3,te4は、STC時間軸における再生時点t1,t11,t21,t31と、エントリーポイントとの対応関係を模式的に示しており、矢印sh1,sh2,sh3,sh4は、ATCシーケンスにおけるSPN=n1,n11,n21,n31と、エントリーポイントとの対応関係を模式的に示している。
エントリーマップが、ATCシーケンスのうちSPN=n1のソースパケットを指定している場合、このエントリーマップのPTSを、STCシーケンスにおけるPTS=t1に設定しておく。そうすると、PTS=t1という時点を用いて、ATCシーケンスにおけるSPN=n1からのランダムアクセスを再生装置に実行させることができる。またエントリーマップが、ATCシーケンスのうちSPN=n21のソースパケットを指定している場合、このエントリーマップのPTSを、STCシーケンスにおけるPTS=t21に設定しておく。そうすると、PTS=t21という時点を用いて、ATCシーケンスにおけるSPN=n21からのランダムアクセスを再生装置に実行させることができる。
図23は、レフトビュー、及びライトビューのそれぞれに対応するエントリーマップが、どのように設定されているかを示す図である。本図における対応付けは、エントリーマップにおける各エントリーポイントのソースパケット番号に、STCシーケンスにおけるソースパケット番号を記述しておき、エントリーマップにおける各エントリーポイントのPTSに、STCシーケンスにおけるPTSを記述しておくことでなされる。時間軸のソースパケットと、時間軸との対応付けが、エントリーマップによってどのようにとられているかを示す。
矢印th1,th2,th3,th4は、STC時間軸における再生時点t1,t2と、エントリーポイントとの対応関係を模式的に示しており、矢印sh1,sh2,sh3,sh4は、ATCsequeceにおけSPN=n1,n11,n8,n18と、エントリーポイントとの対応関係を模式的に示している。
第5段目は、インターリーブ記録されたレフトビュー、ライトビューのエクステントであり、これまでの図に示したものと同一である。第3段目は、PID=0x1011、PID=0x1012のそれぞれに対応するエントリーマップである。PID=0x1011に対応するエントリーマップは、n1を指し示すエントリーポイント、n8を指し示すエントリーポイントを含む。これらのエントリーポイントは、n1,n8と、STC時間軸におけるt1、t2との対応付けを示す。PID=0x1012に対応するエントリーマップは、n11を指し示すエントリーポイント、n18を指し示すエントリーポイントを含む。これらのエントリーポイントは、n11,n18と、STC時間軸におけるt1、t2との対応付けを示す。
以上により、時間軸において、同じ再生時点で再生されるべきレフトビュー、ライトビューのエクステントは、AVデータ記録領域においてバラバラな位置に記録されつつも、各々に対応付けられたエントリーマップを用いることで、レフトビューのエクステント、ライトビューのエクステントの先頭となるソースパケットは、PTSを用いて一意にアクセスされることになる。
以上がクリップ情報ファイルについての説明である。
<プレイリスト情報>
続いて、プレイリスト情報の詳細について説明する。
図24は、プレイリスト情報のデータ構造を示す図であり、本図において、プレイリスト情報は、再生属性情報、メインパス情報、サブパス情報テーブル、エクステンションデータを含む。
先ず再生属性情報について説明する。引出線mp3は、再生属性情報の内部構成をクローズアップして示している。引出線mp3に示すように、再生属性情報は、該当コンテンツがベースとしている規格の「バージョン番号」、「再生タイプ」、「立体表示フラグ」を含む。バージョン番号としては、BD-ROMアプリケーションフォーマットバージョン2.00等というバージョン番号を格納することができる。また、再生タイプとしては、プレイリストに含まれるプレイアイテムを先頭から順番に再生していくことを意味する"シーケンシャル"や、"ランダム/シャッフル"に再生することを再生装置に指示することができる。
次にメインパス情報について説明する。引き出し線mp1は、メインパス情報の内部構成をクローズアップして示している。MainPathは、矢印mp1で示すように複数のPlayItem情報#1・・・・#Nから定義される。PlayItem情報は、MainPathを構成する1つの論理的な再生区間を定義する。PlayItem情報の構成は、引き出し線mp2によりクローズアップされている。この引き出し線に示すようにPlayItem情報は、再生区間のIN点及びOut点が属するAVクリップの再生区間情報のファイル名を示す『Clip_Information_file_name』と、AVクリップの符号化方式を示す『Clip_codec_identifier』と、PlayItemがマルチアングルを構成するか否かを示す『is_multi_angle』と、このPlayItem(カレントPlayItem)と、その1つ前のPlayItem(previousPlayItem)との接続状態を示す『connection_condition』と、このPlayItemが対象としているSTC_Sequenceを一意に示す『ref_to_STC_id[0]』と、再生区間の始点を示す時間情報『In_time』と、再生区間の終点を示す時間情報『Out_time』と、このPlayItemにおいてマスクすべきユーザオペレーションがどれであるかを示す『UO_mask_table』と、『STN_table』と、『BaseView_indicator』と、『multi_clip_entry』とから構成される。このうち、再生経路を構成するのは、再生区間の始点を示す時間情報『In_time』、再生区間の終点を示す時間情報『Out_time』の組みであり、再生経路情報とは、この『In_time』及び『Out_time』の組みから構成される。
STN_table(STream Number_table)は、パケットIDを含むストリームエントリー及びストリーム属性の組みに、論理的なストリーム番号を割り当てるテーブルである。STN_tableにおけるストリームエントリー及びストリーム属性の組みの順序は、対応するストリームの優先順位を示す。
BaseView_indicatorは、0ならばBaseViewはLeftであり、1ならばBaseViewはRightであることを示す。
図25は、サブパス情報テーブルの内部構成を示す図である。引き出し線su1は、サブパス情報の内部構成をクローズアップして示している。引出線su1に示すように、サブパス情報テーブルは複数のサブパス情報1,2,3・・・mを含む。これらのサブパス情報は、1つのクラス構造体から派生した複数のインスタンスであり、その内部構成は共通のものとなる。引き出し線su2は、Subpath情報の共通の内部構成をクローズアップして示している。この引き出し線に示すように、各Subpath情報は、サブパスの類型を示すSubPath_typeと、1つ以上のサブプレイアイテム情報(・・・サブプレイアイテム情報#1〜#m・・・)とを含む。引き出し線su3は、SubPlayItemの内部構成をクローズアップして示している。この引出線に示すように、サブプレイアイテム情報は、『Clip_information_file_name』、『Clip_codec_identifier』、『ref_to_STC_id[0]』、『SubPlayItem_In_time』、『SubPlayItem_Out_time』、『sync_PlayItem_id』、『sync_start_PTS_of_PlayItem』からなる。以降、SubPlayItemの内部構成について説明する。
『Clip_information_file_name』は、クリップ情報のファイル名を記述することにより、SubPlayItemに対応するSubClipを一意に指定する情報である。
『Clip_codec_identifier』は、AVクリップの符号化方式を示す。
『ref_to_STC_id[0]』は、このSubPlayItemが対象としているSTC_Sequenceを一意に示す。
『SubPlayItem_In_time』は、SubClipの再生時間軸上における、SubPlayItemの始点を示す情報である。
『SubPlayItem_Out_time』は、SubClipの再生時間軸上における、SubPlayItemの終点を示す情報である。
『sync_PlayItem_id』は、MainPathを構成するPlayItemのうち、本SubPlayItemが同期すべきものを一意に指定する情報である。SubPlayItem_In_timeは、このsync_PlayItem_idで指定されたPlay Itemの再生時間軸上に存在する。
『sync_start_PTS_of_PlayItem』は、sync_PlayItem_idで指定されたPlay Itemの再生時間軸上において、SubPlayItem_In_timeで指定されたSubPlayItemの始点が、どこに存在するかを45KHzの時間精度で示す。
図26は、レフトビュー、ライトビューに対して、どのような再生区間が定義されているかを示す。本図は、図23をベースとして作図されており、このベースとなる図の第2段目の時間軸に、PlayItemのIn_Time及びOut_Timeを描いている。第1段目の時間軸に、SubPlayItemのIn_Time及びOut_Timeを描いている。第3段目から第5段目は、図23の第3段目から第5段目と同一である。レフトビュー、ライトビューのIピクチャは、時間軸において同じ時点になる。
レフトビューと、ライトビューとは、プレイアイテム情報、サブプレイアイテム情報とによって、対応付けられることになる。
図27は、ビデオストリーム番号テーブルの内部構成を示す図である。引き出し線mh1に示すように、ビデオストリーム番号テーブルは、stream_entry及びstream_attributeの組みから構成される。
「Stream_entry」は、プライマリビデオストリームを構成するPESパケットのPIDに対する参照値を示す『ref_to_stream_PID_of_main_Clip』、NTSC,PAL等のビデオの表示方式を示す『video_format』、1/24秒、1/29.94秒などフレームレートを示す『frame_rate』を含む。
図28は、STN_tableにおけるPGストリーム情報テーブルの内部構成を示す。STN_tableにおけるPGストリーム情報テーブルは、「表示方式情報」と、「N個のストリーム情報」とから構成される。n個のストリーム情報のそれぞれは、ストリーム番号のそれぞれに対応付けられており、stream_entryと、stream_attributeとから構成される。引き出し線gh1は、stream_entryの内部構成をクローズアップして示している。stream_entryには、『ref_to_stream_PID_of_mainClip』、又は、『ref_to_Sub_Path_id』、『ref_to_SubClip__entry_id』、『ref_to_stream_PID_of_subClip』のどちらが設定される。『ref_to_stream_PID_of_SubClip』は、ストリーム番号に対応するPGストリームが、ビデオストリームと同じAVClipに存在する場合に、そのPGストリームについてのPIDを示す。
続いて、エクステンションデータについて説明する。図29は、プレイリスト情報におけるエクステンションデータの内部構成を示す図である。引き出し線et1は、エクステンションデータの内部構成をクローズアップして示している。この引き出し線に示すように、エクステンションデータは、プレイアイテム情報#1〜#Nのそれぞれがに対応するSTN_table_extentionから構成される。引き出し線et2は、PlayItem情報#1に対応するSTN_table_extentionの内部構成をクローズアップして示している。この引き出し線に示すように、PlayItem情報#1に対応するSTN_table_extentionは、"ビデオストリーム番号テーブル"を含む。
図30は、ビデオストリーム番号テーブルの内部構成を示す図である。
N個のenhanced_view_is_availableフラグe1と、N個のstream_entry及びstream_attributeの組みf1とから構成される。これらは、1〜Nのストリーム番号に対応付けられており、enhanced_view_is_availableフラグは、1〜Nのストリーム番号を用いることで一意に特定することができる。stream_entry及びstream_attributeの組みも、1〜Nのストリーム番号を用いることで一意に特定することができる。
「Stream_entry」は、引き出し線vh1に示すように、プライマリビデオストリームを構成するPESパケットのPIDに対する参照値を示す『ref_to_stream_PID_of_main_Clip』を含み、stream_attributeは、引出線vh2に示すように、『video_format』、『frame_rate』を含む。
これらのテーブルにおけるstream_entryの順位は、再生装置がストリームを選択するにあたって、ストリーム選択の優先順位を意味する。つまり、テーブルにおいてエントリーが高い順位にあるものを再生装置は、優先的に選択することになる。
enhanced_view_is_availableフラグがオンであり、エンハンスドビューに設定されている場合、ref_to_stream_of_MainCLipには、0x1011のパケットIDと、0x1012のパケットIDとが記述される。
続いて、STN_table_extensionにおけるPGストリーム情報テーブルについて説明する。STN_table_extensionにおけるPGストリーム情報テーブルの内部構成は、N個のストリーム情報を含んで構成される。n個のストリーム情報のそれぞれは、ストリーム番号のそれぞれに対応付けられており、「stream_entry」と、「stream_attribute」とを含む。stream_entryは、再生可能なレフトビューPGストリームを構成するPESパケットのPIDに対する参照値、及びライトビューPGストリームを構成するPESパケットのPIDに対する参照値の組みを含む。
ここで、STN_table_extentionには、STN_tableにおけるstream_entry及びstream_attributeの組みの数と同数のstream_entry及びstream_attributeの組みが存在する。STN_table_extentionのstream_entry及びstream_attributeの組みと、STN_table のstream_entry及びstream_attributeの組みとが1対1に対応しており、それらは同一のストリーム番号となる。STN_table_extentionのstream_entryにより示されるレフトビュー及びライトビューの各ストリームと、対応する、STN_table のstream_entryにより示されるストリームとは、基本的には同一のものであり、表示位置が水平方向に異なるだけである。すなわち、STN_table のstream_entryにより示されるストリームに、人間の両目の視差に相当する差を加えたものが、STN_table_extentionのstream_entryにより示されるレフトビュー及びライトビューの各ストリームである。
なお、本願明細書におけるコンテンツとは、あるタイトル番号にて管理されるプレイリスト情報と、このプレイリスト情報から参照されるAVクリップに多重化されているビデオストリームとを包含する単位であり、"タイトル"と呼ばれる。
以上がプレイリスト情報についての説明である。
<再生装置>
続いて、再生装置の詳細について説明する。図31は、再生装置の内部構成を示す図である。再生装置200は、BDドライブ201、システムLSI(再生部)1、HDMIインタフェース202、再生状態/設定レジスタ(Player Status/Setting Register)セット203、静的シナリオメモリ205、再生制御エンジン206、ヒープメモリ207、BD-Jプラットフォーム208、動的シナリオメモリ209、モード管理モジュール210、コマンドインタプリタ211、及びUO検知モジュール212を含んで構成される。
BDドライブ201は、BD-ROMのローディング/リード/イジェクトを行い、BD-ROMに対するアクセスを実行する。具体的な構成としては、半導体レーザ(図示せず)、コリメートレンズ(図示せず)、ビームスプリッタ(図示せず)、対物レンズ(図示せず)、集光レンズ(図示せず)、光検出器(図示せず)を有する光学ヘッド(図示せず)を備える。半導体レーザから出射された光ビームは、コリメートレンズ、ビームスプリッタ、対物レンズを通って、光ディスクの情報面に集光される。集光された光ビームは、光ディスク上で反射/回折され、対物レンズ、ビームスプリッタ、集光レンズを通って、光検出器に集光される。光検出器にて集光された光の光量に応じて、生成された信号がBD-ROMから読み出されたデータに対応する。
システムLSI(再生部)1は、図32に示すように、Read Buffer2、PID Filter3、Transport Buffer 4a,4b,4c,4d,4e、周辺回路4f、Video Decoder for Left view5a、Video Decoder for Right view5b、Video Plane(L)6a、Video Plane(R)6b、切り替え器7、Graphics Decoder for Left view8a 、Graphics Decoder for Right view8b 、Graphics Plane for Left view9a、Graphics Plane for Right view9b、CLUT UNIT for L10a、CLUT UNIT for R10b、OFFSET UNIT for L11a、OFFSET UNIT for R11b、CLUT出力切り替え器12、加算器13、Audio Decoder14を含んで構成される。
Read Buffer2は、典型的にはFIFOメモリであり、BD-ROMから読み出されたソースパケットを一旦格納しておき、転送速度を調整した上、PIDフィルタ3に転送するためのバッファである。具体的には、Read Buffer2は、ライトビュー用のソースパケットを格納するためのライトビューRead Bufferと、レフトビュー用のソースパケットを格納するためのレフトビューRead Bufferとからなる。
PIDフィルタ3は、Read Buffer2から出力される複数TSパケットに対してフィルタリングを施す。PIDフィルタ3によるフィルタリングは、TSパケットのうち、所望のPIDをもつもののみをTransport Buffer 4a,4b,4c,4d,4eの何れかに書き込むことでなされる。PID Filter3によるフィルタリングでは、バッファリングは必要ではない。従って、PID Filter3に入力されたTSパケットは、当該TSパケットのPIDに基づいて、時間遅延なく、Transport Buffer 4a,4b,4c,4d,4eの何れかに書き込まれる。
Transport Buffer4a,4b,4c,4d,4eは、PID Filter3から出力されたTSパケットを先入れ先出し式に格納しておくメモリである。このTransport Buffer4a,4b,4c,4d,4eからTSパケットが取り出される速度を、速度Rxとする。
周辺回路4fは、Transport Buffer4c、4dから読み出されたTSパケットを、機能セグメントに変換する処理を行うワイヤロジックである。変換により得られた機能セグメントはCoded Data Buffer(EB)に格納される。
Video Decoder for Left view5aは、PID Filter3から出力された複数TSパケットを復号して非圧縮形式のレフトビューピクチャを得てVideo Plane(L)6aに書き込む。
Video Decoder for Right view5bは、PID Filter3から出力された複数TSパケットを復号して非圧縮形式のライトビューピクチャを得てVideo Plane(R)6bに書き込む。
Video Plane(L)6aは、非圧縮形式のレフトビューピクチャを格納しておくためのメモリである。
Video Plane(R)6bは、非圧縮形式のライトビューピクチャを格納しておくためのメモリである。
切り替え器7は、レフトビューピクチャ及びライトビューピクチャの何れを加算器13に出力するか切り替える。
Graphics Decoder for Left view8aは、レフトビューのPGスストリームをデコードして、非圧縮グラフィクスを得て、これをグラフィクスオブジェクトとしてGraphics Plane for Left view9aに書き込む。具体的には、図32に示すように、Coded Data Buffer(EB)81a、PERIPHERAL CIRCUITRY82a、Stream Graphics Processor83a、Object Buffer(OB)84a、Composition Buffer(CB)85a、Graphics Controller86aから構成される。
Coded Data Buffer(EB)81aは、機能セグメントがDTS、PTSと共に格納されるバッファである。かかる機能セグメントは、Transport Buffer4cに格納されたトランスポートストリームの各TSパケットから、TSパケットヘッダ、PESパケットヘッダを取り除き、ペイロードをシーケンシャルに配列することにより得られたものである。取り除かれたTSパケットヘッダ、PESパケットヘッダのうち、PTS/DTSは、PESパケットと対応付けて格納される。
PERIPHERAL CIRCUITRY82aは、Coded Data Buffer(EB)81a−Stream Graphics Processor83a間の転送、Coded Data Buffer(EB)81a−Composition Buffer85a間の転送を実現するワイヤロジックである。この転送処理において、現在時点がODSのDTSに示される時刻になれば、ODSを、Coded Data Buffer(EB)81aからStream Graphics Processor83aに転送する。また現在時刻がPCS、PDSのDTSに示される時刻になれば、PCS、PDSをComposition Buffer(CB)85aに転送するという処理を行う。
Stream Graphics Processor83aは、ODSをデコードして、デコードにより得られたインデックスカラーからなる非圧縮状態の非圧縮グラフィクスをグラフィクスオブジェクトとしてObject Buffer(OB)84aに書き込む。このStream Graphics Processor83aによるデコードは、ODSに関連付けられたDTSの時刻に開始し、ODSに関連付けられたPTSに示されるデコード終了時刻までに終了する。上述したグラフィックオブジェクトのデコードレートRdは、このStream Graphics Processor83aの出力レートである。
Object Buffer(OB)84aは、ETSI EN 300 743標準規格におけるピクセルバッファに相当するバッファであり、Stream Graphics Processor83aのデコードにより得られたグラフィクスオブジェクトが配置される。
Composition Buffer85aは、PCS、PDSが配置されるメモリである。
Graphics Controller86aは、Composition Buffer85aに配置されたPCSを解読して、PCSに基づく制御をする。具体的には、グラフィクスのObject Buffer(OB)84aへの書き込み、及びObject Buffer(OB)84aからのグラフィクスの読み出し、グラフィクスの表示を実行する。この制御の実行は、PCSを格納したPESパケットのPTSの値に示される時点においてなされる。
Graphics Decoder for Right view8bは、ライトビューのPGスストリームをデコードして、非圧縮グラフィクスを得て、これをグラフィクスオブジェクトとしてGraphics Plane for Right view9bに書き込む。詳細な構成については、Graphics Decoder for Left view8aと同様であるので説明を省略する。
Graphics Plane for Left view9aは、一画面分の領域をもったプレーンメモリであり、一画面分の非圧縮グラフィクス(レフトビュー)が格納される。
Graphics Plane for Right view9bは、一画面分の領域をもったプレーンメモリであり、一画面分の非圧縮グラフィクス(ライトビュー)が格納される。
CLUT UNIT for L10aは、設定されているpalette_idにより示されるPDSのカラールックアップテーブルを用いて、Graphics Plane for Left view9aに格納されている画素コードを、Y,Cr,Cbといったピクセル値に変換する。
CLUT UNIT for R10bは、設定されているpalette_idにより示されるPDSのカラールックアップテーブルを用いて、Graphics Plane for Right view9bに格納されている画素コードを、Y,Cr,Cbといったピクセル値に変換する。
ここで、CLUT UNIT for L10a及びCLUT UNIT for R10bには、共通のpalette_idが設定されている。
OFFSET UNIT for L11aは、色変換されたレフトビュー非圧縮グラフィクスの奥行きを調整する。
OFFSET UNIT for R11bは、色変換されたライトビュー非圧縮グラフィクスの奥行きを調整する。
CLUT出力切り替え器12は、加算器13に出力すべき非圧縮グラフィクスを、レフトビュー非圧縮グラフィクスとライトビュー非圧縮グラフィクスとの間で切り替える。
加算器13は、CLUT UNIT for L10a(またはCLUT UNIT for R10b)により色変換された非圧縮グラフィクスに、PDSに示されるT値(透過率)を乗じて、Video Plane(L)6a(またはVideo Plane(R)6b)に格納された非圧縮状態のピクチャデータと加算し、合成画像を得て出力する。
Audio Decoder14は、PID Filter3から出力されたTSパケットを復号して、非圧縮形式のオーディオデータを出力する。
以上が再生部1の構成要素である。
図31に戻って、HDMI送受信部202は、例えばHDMI規格(HDMI:High Definition Multimedia Interface)に準拠したインタフェースを含み、再生装置とHDMI接続する装置(この例ではテレビ300)との間でHDMI規格に準拠するように送受信を行うものであり、加算器13により加算された映像と、オーディオデコーダ14によってデコードされた非圧縮のオーディオデータとを、HDMI送受信部202を介してテレビ300に伝送する。
テレビ300は、例えば立体視表示に対応しているかに関する情報、平面表示可能な解像度に関する情報、立体表示可能な解像度に関する情報を保持しており、再生装置からHDMI送受信部202を介して要求があると、要求された必要な情報(例えば立体視表示に対応しているかに関する情報、平面表示可能な解像度に関する情報、立体表示可能な解像度に関する情報)を再生装置へ返す。
このように、HDMI送受信部202を介することで、テレビ300が立体視表示に対応しているかどうかの情報を、テレビ300から取得することができる。
再生状態/設定レジスタ(PSR)セット203は、プレイリストの再生状態を格納する再生状態レジスタ、再生装置におけるコンフィグレーションを示すコンフィグレーション情報を格納する再生設定レジスタ、コンテンツが利用する任意の情報を格納できる汎用レジスタを含む、レジスタの集まりである。プレイリストの再生状態とは、プレイリストに記載されている各種AVデータ情報の中のどのAVデータを利用しているか、プレイリストのどの位置(時刻)を再生しているかなどの状態を現す。プレイリストの再生状態が変化した際は、再生制御エンジン206がPSRセット203に対し、その内容を格納する。また、HDMVモードの動作主体であるコマンドインタプリタもしくはBD-Jモードの動作主体であるJavaプラットフォームが実行しているアプリケーションからの指示により、アプリケーションが指定した値を格納したり、格納された値をアプリケーションに渡したりすることが可能である。
また、PSRセット203には、例えば立体視再生ケーパビリティや立体視再生表示方式フラグ等が存在する。
立体視ケーパビリティは、再生装置に立体視再生を実行する能力が存在するかどうかを示す。
立体視再生フラグは、ユーザが、立体視再生を実行することを意図しているかどうかを示す。
静的シナリオメモリ205は、カレントプレイリスト情報やカレントクリップ情報を格納しておくためのメモリである。カレントプレイリスト情報とは、BD-ROMからアクセスできる複数プレイリスト情報のうち、現在処理対象になっているものをいう。カレントクリップ情報とは、BD-ROMからアクセスできる複数クリップ情報のうち、現在処理対象になっているものをいう。
再生制御エンジン206は、HDMVモードの動作主体であるコマンドインタプリタ、BD-Jモードの動作主体であるJavaプラットフォームからの関数呼び出しに応じて、AV再生機能、プレイリストの再生機能を実行する。AV再生機能とは、DVDプレーヤ、CDプレーヤから踏襲した機能群であり、再生開始、再生停止、一時停止、一時停止の解除、静止画機能の解除、再生速度を即値で指定した早送り、再生速度を即値で指定した巻戻し、音声切り替え、副映像切り替え、アングル切り替えといった処理である。プレイリスト再生機能とは、このAV再生機能のうち、再生開始や再生停止をプレイリスト情報に従って行うことをいう。
ヒープメモリ207は、システムアプリケーションのバイトコード、BD-Jアプリケーションのバイトコード、システムアプリケーションが利用するシステムパラメータ、BD-Jアプリケーションが利用するアプリケーションパラメータが配置されるスタック領域である。
BD-Jプラットフォーム208は、BD-Jモードの動作主体であるJavaプラットフォームであり、Java2Micro_Edition(J2ME) Personal Basis Profile(PBP 1.0)と、Globally Executable MHP specification(GEM1.0.2)for package media targetsとをフル実装しており、クラスローダ、バイトコードインタプリタを含む。クラスローダは、システムアプリケーションの1つであり、JARアーカイブファイルに存在するクラスファイルからバイトコードを読み出して、ヒープメモリに格納することにより、BD-Jアプリケーションのロードを行う。バイトコードインタプリタは、ヒープメモリ207に格納されているBD-Jアプリケーションを構成するバイトコード、システムアプリケーションを構成するバイトコードをネイティブコードに変換して、MPUに実行させる。
動的シナリオメモリ209は、カレント動的シナリオを格納しておき、HDMVモードの動作主体であるコマンドインタプリタ、BD-Jモードの動作主体であるJavaプラットフォームによる処理に供されるメモリである。カレント動的シナリオとは、BD-ROMに記録されているIndex.bdmv、BD-Jオブジェクト、ムービーブジェクトのうち、現在実行対象になっているものをいう。
モード管理モジュールの一例であるモジュールマネージャ210は、BD-ROMから読み出されたIndex.bdmvを保持して、モード管理及び分岐制御を行う。モジュールマネージャ210によるモード管理とは、動的シナリオをコマンドインタプリタ211とBD−Jモジュール208のどちらに実行させるかという、モジュールの割り当てである。
HDMVモジュールの一例であるコマンドインタプリタ211は、HDMVモードの動作主体となるDVD仮想プレーヤであり、HDMVモードの実行主体となる。HDMVモードの動作主体であるコマンドインタプリタは、シナリオプログラムを構成するナビゲーションコマンドを解読して実行するものである。ナビゲーションコマンドは、DVD-Videoと似たようなシンタックスで記述されているため、かかるナビゲーションコマンドを実行することにより、DVD-Videoライクな再生制御を実現することができる。
UO探知モジュール212は、リモコン500や再生装置200のフロントパネルに対してなされたユーザ操作を検出して、ユーザ操作を示す情報(以降UO(User Operation)という)をモード管理モジュール210に出力する。そのUOから、現在の再生装置におけるモードに適切なUOのみを選んで、そのモードを実行するモジュールに受け渡す。例えばHDMVモードの実行中に、上下左右、アクティベートといったUOを受け付けた場合、HDMVモードのモジュールにこれらのUOを出力する。
<プレイリスト再生処理>
続いて、プレイリスト再生処理の詳細について説明する。
図33は、プレイリス再生処理の処理手順を示すフローチャートである。
ステップS1においてプレイリスト情報ファイルを読み込み、ステップS2〜ステップS5の処理に突入する。ステップS2は、再生装置にケーパビリティが存在するか否かの判定である。ステップS3は、再生装置の接続相手であるテレビに、立体視再生の処理能力が存在するか否かの判定である。ステップS4は、カレントプレイリストの再生属性情報における表示方式フラグが有効かどうかの判定である。ステップS2〜ステップS4の何れかがNoと判定されれば、ステップS5に移行して、各プレイアイテム情報におけるSTN_tableに基づくプレイアイテム再生を実行する。
ステップS2〜ステップS4の全てがYesであれば、ステップS5において各プレイアイテム情報におけるSTN_table_extensionに基づくプレイアイテム再生を実行する。
図34は、STN_table_extensionに基づく再生手順を示すフローチャートである。
ステップS51において、カレントPlayItem番号を"1"に初期化して、ステップS52〜S62のループに移る。このループは、カレントプレイアイテム番号に対してステップS52〜ステップS60の処理を実行して、カレントプレイアイテム番号をインクリメントするという処理を(ステップS61)、カレントプレイアイテム番号が最終になるまで繰り返すものである(ステップS62でYes)。ステップS52〜ステップS60は、以下のものである。
ステップS52において、ベースビューストリームのパケットIDに対応するエントリーマップを用いて、カレントPlayItem.In_Time及びカレントPlayItem.Out_TimeをStart_SPN[i]及びEnd_SPN[i]に変換する。
エンハンスドビューストリームを選択し、カレントPGストリームを選択して(ステップS53)、選択したストリームのカレントストリーム番号をPSRに書き込み(ステップS54)、カレントストリーム番号に対応するSubPlayItemを特定する(ステップS55)。エンハンスドビューストリームのパケットID[j]に対応するエントリーマップ[j]を用いて特定されたSubPlayItemIn_Time、SubPlayItemOut_TimeをStart_SPN[j]、End_SPN[j]に変換する(ステップS56)。
パケットID[i]のTSパケット[i]をStart_SPN[i]からEnd_SPN[i]まで読み出すための読出範囲[i]に属するエクステントを特定し(ステップS57)、パケットID[j]のTSパケット[j]をStart_SPN[j]からEnd_SPN[j]まで読み出すための読出範囲に属するエクステントを特定する(ステップS58)。そしてステップS59において読出範囲[i],[j]に属するエクステントをアドレスの昇順にソートして、ステップS60においてソートされたアドレスを用いて、読出範囲[i],[j]に属するエクステントを連続的に読み出すよう、ドライブに指示する。以上がSTN_table_extensionに基づく再生手順である。
次にPGストリーム選択手順について説明する。STN_table、またはSTN_table_extensionに基づき、PGストリームを選択する選択手順には、『Procedure when playback condition is changed』と、『Procedure when Stream change is requested』という2つの選択手順がある。PGストリーム選択は、再生制御エンジン206によりなされる。
Procedure when playback condition is changedは、何等かの事象が再生装置に生じたため、再生装置の状態が変化した際に実行すべき処理手順を示す。
Procedure when Stream Change is requestedは、ユーザがストリームの切り換えを要求した際、実行すべき処理手順を示す。
図35(a)は、装置状態変化時におけるPSR2の設定手順を示すフローチャートである。ここで、PSR2は、PGのカレントストリーム番号を示すものとする。
ステップS11は、STN_tableにおけるentry数が0であるか否かの判定であり、もし0であればPSR2の値を維持する(ステップS13)。
ステップS12は、STN_tableにおけるentry数は0ではない場合に、PSR2よりSTN_tableのentry数が多く、尚且つ、条件(A)が真であるかを判定するものである。条件(A)とは、PSR2で特定されるPGストリームを再生する能力が再生装置に存在することである。もしステップS12がYesであればPSR2を維持する(ステップS14)。もしPSR2の値がentry数より大きいか、或は条件(A)を満たさない場合は、PSR2を再設定する(ステップS15)。
図35(b)は、ストリーム変化時におけるPSR2の設定手順を示すフローチャートである。本フローチャートと、同図(a)との違いは、(a)におけるPSR2の表記がXに置き換えられている点である。このXは、User Operationに基づく値である。
本フローチャートにおけるステップS20は、XよりSTN_tableのentry数が多く、尚且つ、条件(A)が真であるかを判定するものである。条件(A)とは、PSR2で特定されるPGストリームを再生する能力が再生装置に存在することであり、PSR15(字幕ケーパビリティを示す)と、PGストリームのStream_coding_typeの比較で判定される。もしXがこの条件を満たすなら、PSR2にXを設定する(ステップS21)。
もしXがentry数より大きいか、或は条件(A)を満たさない場合は、Xが、0xFFFFであるか否かを判定する(ステップS22)。もしOxFFFFでなければ、ユーザが選択を意図するPGストリームの番号は無効であると考えられるので、ユーザ操作に基づく値Xを無視し、PSR2の設定値を維持する(ステップS24)。もしPSR2の設定値が0xFFFFであるなら、PSR2を設定する(ステップS23)。
図36は、PSR2設定手順を示すフローチャートである。本フローチャートのステップS31、ステップS32は、STN_tableに記述されているPGストリームのそれぞれについて、ステップS33〜ステップS35の処理を繰り返すループ処理になっている。本ループ処理において処理対象となるPGストリームをPGストリームiとする。ステップS33は、PGストリームiが、グラフィクス字幕ストリームであるか、テキスト字幕ストリームであるかの判定であり、もしグラフィクス字幕であるならステップS34に移行する。
ステップS34は、グラフィクス字幕ストリームiが、以下の(a)(b)を満たすか否かの判定である。
(a)グラフィクス字幕ストリームiを再生する能力が再生装置に存在すること
(b)グラフィクス字幕ストリームiの言語属性が再生装置の言語設定と一致すること
この(b)の条件は、STN_tableにおけるPG_language_codeがPSR16(装置の言語設定を示す)と一致するか否かの判定でなされる。
一方、ステップS35は、テキスト字幕ストリームiが(a)(b)を満たすかを否かの判定である。
(a)テキスト字幕ストリームiをフォントで展開して再生する能力が再生装置に存在すること
(b)テキスト字幕ストリームiの言語属性が再生装置の言語設定と一致すること
(a)の条件を具備しているかの判定は、再生装置のPSR30が"再生能力有"を示すかどうかでなされる。(b)の条件を具備しているかの判定は、STN_tableのtextST_language_codeがPSR16の設定値と一致しているかどうかでなされる。
以上のステップS33〜ステップS35の処理が全てのPGストリームについて繰り返されれば、ステップS36〜ステップS41の処理が実行される。
ステップS36は、(a)を満たすグラフィクス字幕が存在しないかどうかの判定であり、もし存在しないのなら、Invalidな値(0xFFFF)をPSR2に設定する(ステップS38)。
ステップS37は、(a)(b)の双方を満たすPGストリームが存在するかどうかの判定であり、もし存在するのなら(a)(b)を満たすPGストリームのうち、STN_tableにおけるエントリー順位が最も高いものをPSR2に設定する(ステップS41)。
ステップS39は、(a)のみを満たすグラフィクス字幕ストリーム、(a)のみを満たすテキスト字幕ストリームのうち、STN_tableにおけるエントリー順位が最も高いものをPSR2に設定する。
PRS2が設定されると、再生装置においてレフトビュー及びライトビューを用いた3D再生が可能か否かを判定する。3D再生が可能である場合には、PSR2のストリーム番号に対応するレフトビューPGストリーム及びライトビューPGストリームのPIDをPID Filter3に設定して、パケットフィルタリングを行わせる。
そして、レフトビューグラフィクスデコーダ及びライトビューグラフィクスデコーダを起動して、2系統のTSパケット系列のデコードを行わせる。
以上のように本実施の形態によれば、レフトビューPGストリームの複数のDSとライトビューPGストリームの複数のDSとは、1対1に対応しており、対応するDSの画面構成セグメントには、同一のPTSが設定されている。また、対応するDSの画面構成セグメントにおいて、composition_stateが同一の内容に設定されている。
そのため、一方のPGストリームのDSにおいて、そのcomposition_stateが、例えばEpoch Startである場合には、対応する、他方のPGストリームのDSにおいても、そのcomposition_stateは、Epoch Startである。
したがって、これらのDSを頭出しがなされることが判明している位置に配置することで、ランダムアクセスの際、一方のPGストリームがデコード可能であれば、必ず、他方のPGストリームのデコードも可能となる。ゆえに、ランダムアクセス時におけるグラフィクスの立体視を保証することができる。
また、レフトビューPGストリームとライトビューPGストリームとで対応するDSにおいて、composition_number及びforced_on_flagが、同一の内容に設定されており、対応するDSのPDSが同一の内容に設定されている。さらに、WDSにおいてWindow_width、window_height、及びwindow_vertical_positionが同一の内容に設定されており、PCSにおいて、object_cropping_width、object_cropping_height、object_cropping_vertical_position、及びobject_vertical_positionが同一の内容に設定されている。
このように、レフトビューPGストリームとライトビューPGストリームとで対応するDSにおいて、オブジェクト及び表示位置の水平座標(window_ horizontal _position 、object_horizontal_position、object_cropping_horizontal_position、)以外のフィールドが同一内容に設定されているため、再生装置において2つのグラフィクスコントローラの制御内容をほぼ同一内容にすることができ、ハードウェア構成の簡易化が可能になる。
(変形例1−1)
再生装置において、レフトビュー用にCLUT UNIT for L10a、ライトビュー用にCLUT UNIT for R10bを備える構成を示した。ただし、各CLUT UNITに設定すべきパレットのidが共通であったため、CLUT UNITを共通にすることが可能である。以下、レフトビュー及びライトビューとで共通のCLUT UNITへと替えた一変形例について説明する。
図37は、変形例1−1における再生装置に搭載されるシステムLSIの内部構成を示す図である。
Graphics Plane for Left view9a及びGraphics Plane for Right view9bはそれぞれ、CLUT出力切り替え器15に接続されている。
CLUT出力切り替え器15は、CLUT UNIT10に出力すべき非圧縮グラフィクスを、レフトビュー非圧縮グラフィクスとライトビュー非圧縮グラフィクスとの間で切り替える。
OFFSET UNIT11は、CLUT UNIT10により色変換されたレフトビューまたはライトビューの非圧縮グラフィクスの奥行きを調整し、加算器13に出力する。
上述のように、Graphics Plane for Left view9a及びGraphics Plane for Right view9bの出力が、CLUT出力切り替え器15を介して共通のCLUT UNIT10に接続されているため、ハードウェア規模を削減できるとともに、2D用のGraphics Decoderから、少ない変更で3D用Graphics Decoderを構成できるというメリットがある。
(実施の形態2)
実施の形態1では、2デコーダモデルにおいて、PGグラフィクスストリームの立体視を実現する手段について説明したが、本実施の形態では、2デコーダモデルにおけるインタラクティブグラフィクス(以下、「IG」という)ストリームの立体視について説明する。
IGスストリームは、グラフィクスオブジェクトの対話的な表示を実現するグラフィクスストリームである。図38(a)は、IGストリームの構成を示す図である。第1段目は、AVClipを構成するTSパケット列を示す。第2段目は、グラフィクスストリームを構成するPESパケット列を示す。第2段目におけるPESパケット列は、第1段目におけるTSパケットのうち、所定のPIDをもつTSパケットからペイロードを取り出して、連結することにより構成される。第3段目は、グラフィクスストリームの構成を示す。グラフィクスストリームは、ICS(Interactive Composition Segment)、PDS(Palette Difinition Segment)、ODS(Object Definition Segment)、END(END of Display Set Segment)と呼ばれる機能セグメントからなる。ICSは、画面構成セグメントと呼ばれ、対話的なグラフィクスオブジェクトの画面構成を制御する機能セグメントである。PESパケットと機能セグメントとの対応関係、及び他の機能セグメントについては、PGと同様であるので説明を省略する。
図38(b)は、機能セグメントを変換することで得られるPESパケットを示す図である。図38(b)についてもPGと同様であるため、説明を省略する。
図39は、様々な種別の機能セグメントにて構成される論理構造を示す図である。本図は第1段目にEpochを、第2段目にDisplay Setを、第3段目にDisplay Setの類型を、第4段目にDisplay Setに属する機能セグメントを、それぞれ示す。IGストリームにも、Epoch Start、Acquisition Point、Normal Caseという類型があるが、これはPGで説明した通りである。
IGストリームは、上述した再生時間軸における動画の再生進行に応じて、マルチページメニューの挙動を制御することを特徴としている。この特徴を実現するための構成は、ICS内のInteractive_compositionに存在する。以降ICS、Interactive_compositionの内部構成について以下説明する。
図40(a)(b)は、ICSとInteractive_compositionとの対応関係を示す図である。ICSとInteractive_compositionとの対応関係には、図40(a)に示すような1対1のものと、図40(b)に示すような1対多のものとがある。
対応関係が1対1になるのは、Interactive_compositionのサイズが小さく、1つのICS内にInteractive_compositionが収まる場合である。
1対多の対応関係になるのは、Interactive_compositionのサイズが大きく、Interactive_compositionがフラグメント化され、複数ICSに格納される場合である。複数ICSへの格納が可能なので、Interactive_compositionサイズには制限がなく、512Kバイトであろうと、1Mバイトであろうと、Interactive_compositionのサイズを大きくすることができる。ICS、Interactive_compositionには1対多の対応関係もあり得るが、簡単を期するため、以降の説明では、ICS、Interactive_compositionの対応関係は、1対1であるとする。
図41は、ICSの内部構成を示す図である。ICSには、Interactive_Compositionの全体、又は、Interactive_Compositionをフラグメント化することで得られた一部が格納されている。図41の左側に示すように、ICSは、自身がICSであることを示す『segment_descriptor』と、本ICSが想定している縦横の画素数、フレームレートを示す『video_descriptor』と、『composition_descriptor』と、Interactive_Compositionの全体、又は、Interactive_Compositionをフラグメント化することで得られた一部である『Interactive_composition_data_fragment』とからなる。
図41中の矢印cu1は、『composition_descriptor』の内部構成をクローズアップして示す。この矢印cu1に示すように『composition_descriptor』は、本ICSが属するDisplay Setが、Normal Case、Acquisition Point、Epoch Start、Effect_Sequenceの何れであるかを示す『composition_state』と、画面合成の回数を示す『Composition_Number』とを含む。
図41の矢印cu2は、Interactive_compositionの内部構成をクローズアップしている。この矢印に示すようにInteractive_compositionは、『Interactive_composition_length』,『Stream_model』,『user_interface_model』,『composition_time_out_pts』,『selection_time_out_pts』,『user_time_out_duration』、マルチページメニューにおいて表示可能な複数ページのそれぞれに対応する『ページ情報(1)(2)・・・(i)・・・(number_of_page-1)』を含む。
『Interactive_composition_length』は、Interactive_compositionのデータ長を示す。
『Stream_model』は、Interactive_compositionが想定しているストリームモデルのタイプを示す。ストリームモデルとは、Interactive_compositionがどのような形態でBD-ROMに記録されて、再生装置におけるコンポジションバッファ上でどのように扱われるかを示すものであり、Stream_modelは、グラフィクスストリームがAVClipから多重分離されてコンポジションバッファ上にロードされたものであるか(i)、SubClipとして、コンポジションバッファにプリロードされたものであるか(ii)を示す。
『user_interface_model』は、Interactive_compositionが想定しているユーザインタフェースモデルが、Always-onU/IであるかPop-upU/Iであるかを示す。Always-onU/Iとは、AVClipの再生進行に伴ってメニューの表示・消去がなされるユーザインタフェースであり、ポップアップU/Iとは、ユーザによる操作をトリガにしてメニューの表示・消去がなされるユーザインタフェースである。
『Composition_time_out_pts』は、ICSが帰属するEpochの終期(Epoch END)を示す。ICSによる対話制御は、このEpoch終期(Epoch END)においてもはや不可能となるので、このcomposition_time_out_ptsに示される時点が、対話制御の終期を意味する。
『selection_time_out_pts』は、セレクテッド状態にあるボタンを自動的にアクティベートするためのタイムアウト時刻を示す。ボタンとは、マルチページメニューにおける個々の選択項目であり、かかるボタンの状態をアクティブ状態に変化させる時間を規定しているのがこのselection_time_out_ptsである。
図中のIF文(if(Stream_model=='0b'))は、上述したcomposition_time_out_pts及びselection_time_out_ptsが、Stream_model=Multiplexedの際、出現する任意の情報要素であることを示している。ICSが想定しているストリームモデルがプリロードである場合、これらcomposition_time_out_pts、selection_time_out_ptsは存在しない。
『user_time_out_dutration』は、ユーザ操作により表示され得るページを消去するためのタイムアウト時刻を示す。Always-onU/Iでは、2ndPage以降のPage(SubPageという)がユーザ操作により表示されるので、このuser_time_out_dutrationのタイムアウトにより、SubPageのみが消去され、1stPageのみとなる。Pop-upU/Iでは、SubPageだけではなく、マルチページメニュー全体がユーザ操作により表示されるので、user_time_out_dutrationのタイムアウトにより、全てのページが消去され何も表示されない状態(No Menu Display)になる。
図42は、複数ページのうち、任意のもの(x枚目のページ)についてのページ情報の内部構成を示す図である。この図42の左側に示すようにページ情報(x)は、ページxを一意に識別する識別子である『page_id』, 『page_version_number』,『UO_mask_table』,ページ(x)の表示開始時あたって再生すべき表示効果を示す『in_effect』,ページ(x)の表示終了時あたって再生すべき表示効果を示す『out_effect』,ページ(x)にアニメーションを実行する際、適用すべきフレームレートを記述する『animation_frame_rate_code』,『default_selected_button_id_ref』、『default_activated_button_id_ref』,『pallet_id_ref』,ページ(x)上の複数ボタンのそれぞれに対応する『ボタン情報(1)(2)・・・・・(number_of_buttons-1)』を含む。
『UO_Mask_Table』は、page(x)におけるユーザ操作の許可/不許可を示す。このマスクフィールドが不許可に設定されていれば、再生装置に対するユーザ操作は無効になる。
『default_selected_button_id_ref』は、Page(x)の表示が始まったとき、デフォルトでセレクテッド状態に設定すべきボタンを動的に定めるか、静的に定めるかを示す。本フィールドが”OxFF”であれば、デフォルトでセレクテッド状態に設定すべきボタンを動的に定める旨を示す。動的に定める場合、再生装置における状態レジスタ(Player Status Register(PSR))の設定値が優先的に解釈され、PSRに示されるボタンがセレクテッド状態になる。本フィールドが0xFFでなければ、デフォルトでセレクテッド状態に設定すべきボタンを静的に定める旨を示す。この場合、『default_selected_button_id_ref』に規定されたボタン番号でPSRを上書きし、本フィールドで指示されるボタンをセレクテッド状態にする。
『default_activated_button_id_ref』は、selection_time_out_ptsに示される時点に達した際、自動的にアクティブ状態に設定されるボタンを示す。default_activated_button_id_refが”FF”であれば、所定のタイムアウト時刻において、現在セレクテッド状態になっているボタンが自動的に選択される。このdefault_activated_button_id_refが00であれば、自動選択はなされない。00,FF以外の値であれば本フィールドは、有効なボタン番号として解釈される。
『pallet_id_ref』は、Page(x)において、CLUT Unitに設定すべきパレットのidを示す。
『ボタン情報(Button_info)』は、Page(x)上に表示される各ボタンを定義する情報である。以上のフィールドにより、Multi-Pageメニューにおける個々のページは特定される。続いてボタン情報の内部構成について説明する。Page(x)における任意のボタンをボタン(i)であると仮定した場合、このボタン(i)の内部構成が、どのようにして規定されるかについて説明する。図42における破線の矢印cx1は、ボタン(i)を規定するボタン情報iの内部構成をクローズアップしている。
ページに表示される個々のボタンには、ノーマル状態、セレクテッド状態、アクティブ状態という3つの状態がある。ノーマル状態とは、単に表示されているに過ぎない状態である。これに対しセレクテッド状態とは、ユーザ操作によりフォーカスが当てられているが、確定に至っていない状態をいう。アクティブ状態とは、確定に至った状態をいう。かかる状態があるので、ボタン情報iには、以下の情報要素が規定されている。
『button_id』は、ボタン(i)を、Interactive_compositionにおいて一意に識別する数値である。
『button_numeric_select_value』は、ボタン(i)の数値選択を許可するか否かを示すフラグである。
『auto_action_flag』は、ボタン(i)を自動的にアクティブ状態にするかどうかを示す。auto_action_flagがオン(ビット値1)に設定されれば、ボタン(i)は、セレクテッド状態になる代わりにアクティブ状態になる。auto_action_flagがオフ(ビット値0)に設定されれば、ボタン(i)は、選択されたとしてもセレクテッド状態になるにすぎない。
『button_horizontal_position』、『button_vertical_position』は、対話画面におけるボタン(i)の左上画素の水平位置、垂直位置を示す。
『neighbor_info』は、ボタン(i)がセレクテッド状態になっていて、上下左右方向へのフォーカス移動が命じられた場合、どのボタンをセレクテッド状態に設定するかを示す情報であり、『upper_button_id_ref』,『lower_button_id_ref』,『left_button_id_ref』,『Right_button_id_ref』からなる。
『upper_button_id_ref』は、ボタン(i)がセレクテッド状態である場合においてリモコンが操作され、上方向へのフォーカス移動を命じるキー(MOVEUPキー)が押下された場合、ボタン(i)の代わりに、セレクテッド状態にすべきボタンの番号を示す。もしこのフィールドにボタン(i)の番号が設定されていれば、MOVEUPキーの押下は無視される。
『lower_button_id_ref』,『left_button_id_ref』,『Right_button_id_ref』は、ボタン(i)がセレクテッド状態である場合において、リモコンが操作され、下方向へのフォーカス移動を命じるキー(MOVE Downキー),左方向へのフォーカス移動を命じるキー(MOVE Left キー),右方向へのフォーカス移動を命じるキー(MOVE Right キー)が押下された場合、ボタン(i)の押下の代わりに、セレクテッド状態にすべきボタンの番号を示す。もしこのフィールドにボタン(i)の番号が設定されていれば、これらのキーの押下は無視される。
『normal_state_info』は、ボタン(i)のノーマル状態を規定する情報であり、『normal_start_object_id_ref』、『normal_end_object_id_ref』、『normal_repeated_flag』を含む。
『normal_start_object_id_ref』は、ノーマル状態のボタン(i)をアニメーションで描画する場合、アニメーションを構成する複数ODSに付加された連番のうち、最初の番号がこのnormal_start_object_id_refに記述される。
『normal_end_object_id_ref』は、ノーマル状態のボタン(i)をアニメーションで描画する場合、アニメーションを構成する複数ODSに付加された連番たる『object_ID』のうち、最後の番号がこのnormal_end_object_id_refに記述される。このactivated_end_object_id_refに示されるIDが、normal_start_object_id_refに示されるIDと同じである場合、このIDにて示されるグラフィクスオブジェクトの静止画が、ボタン(i)の絵柄になる。
『normal_repeat_flag』は、ノーマル状態にあるボタン(i)のアニメーション表示を反復継続させるかどうかを示す。
『selected_state_info』は、ボタン(i)のセレクテッド状態を規定する情報であり、『selected_state_sound_id_ref』、『selected_start_object_id_ref』、『selected_end_object_id_ref』、『selected_repeat_flag』を含む。
『selected_state_sound_id_ref』は、ボタン(i)の状態がセレクテッド状態に変化した際、クリック音として再生させるべきサウンドデータを指定する情報である。この指定は、sound.bdmvと呼ばれるファイルに格納されているサウンドデータの識別子を記述することでなされる。本フィールドが0xFFである場合、サウンドデータは指定されていないことを意味し、クリック音再生はなされない。
『selected_start_object_id_ref』は、セレクテッド状態のボタン(i)をアニメーションで描画する場合、アニメーションを構成する複数ODSに付加された連番のうち、最初の番号がこのselected_start_object_id_refに記述される。
『selected_end_object_id_ref』は、セレクト状態のボタンをアニメーションで描画する場合、アニメーションを構成する複数ODSに付加された連番たる『object_ID』のうち、最後の番号がこのselected_end_object_id_refに記述される。このselected_end_object_id_refに示されるIDが、selected_start_object_id_refに示されるIDと同じである場合、このIDにて示されるグラフィクスオブジェクトの静止画が、ボタン(i)の絵柄になる。
『selected_repeat_flag』は、セレクテッド状態にあるボタン(i)のアニメーション表示を、反復継続するかどうかを示す。selected_start_object_id_refと、selected_end_object_id_refとが同じ値になるなら、本フィールド00に設定される。
『activated_state_info』は、ボタン(i)のアクティブ状態を規定する情報であり、 『activated_state_sound_id_ref』、『activated_start_object_id_ref』、『activated_end_object_id_ref』を含む。
『activated_state_sound_id_ref』は、button情報に対応するボタンのセレクテッド状態が変化した際、クリック音として再生させるべきサウンドデータを指定する情報である。この指定は、sound.bdmvに格納されているサウンドデータの識別子を記述することでなされる。本フィールドが0xFFである場合、サウンドデータは指定されていないことを意味し、クリック音再生はなされない。
『activated_start_object_id_ref』は、アクティブ状態のボタン(i)をアニメーションで描画する場合、アニメーションを構成する複数ODSに付加された連番のうち、最初の番号がこのactivated_start_object_id_refに記述される。
『activated_end_object_id_ref』は、アクティブ状態のボタンをアニメーションで描画する場合、アニメーションを構成する複数ODSに付加された連番たる『object_ID』のうち、最後の番号がこのactivated_end_object_id_refに記述される。
『ナビゲーションコマンド(navigation_command)』は、ボタン(i)がアクティブ状態になれば、実行されるコマンドである。ナビゲーションコマンドの代表的なものは、SetButtonPageコマンドである。SetButtonPageコマンドは、Multi-Pageメニューの所望のページを表示させ、そのページにおける所望のボタンをセレクテッド状態に設定させることを再生装置に命じるコマンドである。かかるナビゲーションコマンドを用いることにより、オーサリング担当者は、ページ切り換えを簡易に記述することができる。
以上がボタン情報の内部構成である。
<2デコーダモデルを採用する場合の制限>
続いて、レフトビュー及びライトビューのそれぞれについて、上述した各機能セグメントの各フィールドをどのように設定するのかについて説明するが、基本的にはPGの場合と同様である。すなわち、レフトビューIGストリームに含まれるDSの類型、及びcomposition_numberと、これに対応する、ライトビューIGストリームに含まれるDSの類型、及びcomposition_numberとが、同一の内容に設定されている。
また、レフトビューのDSに含まれる画面構成セグメントと、これに対応するライトビューのDSに含まれる画面構成セグメントとでは、それら画面構成セグメントを格納した各PESパケットのPTSの値が同一の値に設定されている。
さらに、レフトビューのDSのパレット定義セグメントと、これに対応するライトビューのDSのパレット定義セグメントとでは、コード値と、輝度及び色差との対応関係が同一の内容に設定されており、palette_idについても両者で同一になっている。
続いて、ICSにおいて上述した以外のフィールドをどのように記述するかについて説明する。図43、44は、Display Setに属するICSの記述例を示す図である。これらの図は、複数のボタンがグラフィクスプレーンに描画されている例を示している。
図43は、レフトビューのDSに属するICSの記述例である。図43に示すように、button情報(0)により定義されるタイトル1ボタンは、グラフィクスプレーンの座標系においてbutton_horizontal_position 1(left), button_vertical_positionを基準点(左上)とした範囲に配置される。また、button情報(number_of_buttons-1)により定義されるタイトルmボタンは、グラフィクスプレーンの座標系においてbutton_horizontal_position m(left), button_vertical_positionを基準点(左上)とした範囲に配置される。こうすることにより、各タイトルボタンがグラフィクスプレーンに書き込まれる。これにより、タイトルボタンは動画像と合成され表示される。
図44は、ライトビューのDSに属するICSの記述例である。図44に示すように、button情報(0)により定義されるタイトル1ボタンは、グラフィクスプレーンの座標系においてbutton_horizontal_position 1(Right), button_vertical_positionを基準点(左上)とした範囲に配置される。また、button情報(number_of_buttons-1)により定義されるタイトルmボタンは、グラフィクスプレーンの座標系においてbutton_horizontal_position m(Right), button_vertical_positionを基準点(左上)とした範囲に配置される。こうすることにより、グラフィクスがグラフィクスプレーンに書き込まれる。これにより、グラフィクスは動画像と合成され表示される。
上述のように、基準点として、button_vertical_positionはレフトビューとライトビューとで共通の値になっているが、button_horizontal_positionは、レフトビューとライトビューとで値が異なっている。
また、レフトビューとライトビューとでbutton _idには共通の値が設定される。これは、2デコーダ構成を採用した再生装置において、グラフィクスコントローラを2つのデコーダで共通にする構成をとっているからである。そのため、レフトビューとライトビューとで対応するDSのグラフィクスオブジェクトのbutton _idを同じ値に設定しておかないと、グラフィクスコントローラは、どのグラフィクスオブジェクト同士が対応関係にあるのか判別できないためである。
button_情報における上記以外の項目である、neighbor_info、normal_state_info、selectd_state_info、activated_state_info、navigation_commandについては、レフトビューとライトビューとで同一の内容になる。
さらに、レフトビューとライトビューとで対応するDSにおいて、composition_time_out_pts、selection_time_out_pts、user_time_out_dutrationが、同一の内容に設定されている。
以上の制限を加えることで、2デコーダ構成において、レフトビューIGストリームとライトビューIGストリームとによる立体視を実現することができる。
<再生装置>
続いて、本実施の形態における再生装置に搭載されるシステムLSIの詳細について説明する。図45は、本実施の形態におけるシステムLSIの内部構成を示す図である。基本的な構成は図32と同様である。図32と異なる点は、グラフィクスコントローラ86がレフトビューグラフィクスデコーダとライトビューグラフィクスデコーダとで共通になっていることである。以下、この理由を説明する。IGの場合には、グラフィクスデコーダは、UO検知モジュールからUOの通知を受け付けることが想定される。そのため、グラフィクスコントローラが2つあると、各々がUO検知モジュールからUOの通知を受け付けることになる。そうすると、UO検知モジュールからグラフィクスコントローラへのUOの通知はシリアルにしか行えないため、グラフィクスコントローラ間に時間差が生じることになる。その結果、UOに基づく処理を実行する際に、グラフィクスコントローラ間で不具合が生じる可能性がある。そのため、グラフィクスコントローラ86をレフトビューとライトビューとで共通にしている。
レフトビューとライトビューとで共通のGraphics Controller86は、Composition Buffer85aに配置されたICSを解読して、ICSに基づく制御をするとともに、Composition Buffer85bに配置されたICSを解読して、ICSに基づく制御をする。
また、UO検知モジュール212からUOの通知を受け取ったときには、このUOに対応した制御をGraphics Decoder for Left view及びGraphics Decoder for Right viewのそれぞれに対して行う。
より詳細には、Graphics Controller86は、Composition Buffer85aに配置されたICSにおける複数ページ情報のうち、PSR11により指定されているもの(カレントページ情報)のボタン情報を参照して、グラフィクスの描画を行う。この描画は、カレントページ情報内の各ボタン情報において、normal_state_infoのnormal_start_object_id及びnormal_end_object_idにより指定されているグラフィクスをObject Buffer84aから読み出し、Graphics Plane for Left view9aに書き込むことでなされる。カレントページ情報内のボタン情報のうち、PSR10により指定されているものについては、selected_state_infoのselected_start_object_id及びselected_end_object_idにより指定されているグラフィクスをObject Buffer84aから読み出し、Graphics Plane for Left view9aに書き込むこと描画される。かかる描画により、タイトル1ボタン〜タイトルmボタンが配されたページがGraphics Plane for Left view9aに現れ、動画に合成されることになる。ライトビューについても同様である。
以上のように本実施の形態によれば、レフトビューIGストリームとライトビューIGストリームとで対応するDSにおいて、composition_stateが同一の内容に設定されているので、これらのDSを頭出しがなされることが判明している位置に配置することで、PGストリームの場合と同様に、ランダムアクセス時におけるグラフィクスの立体視を保証することができる。
また、再生装置内のグラフィクスコントローラをレフトビューとライトビューとで共通化することにより、2コントローラ構成を採用する場合と比較し、ハードウェア規模の削減が可能になり、製品の低コスト化を実現することができる。
(補足)
以上、本願の出願時点において、出願人が知り得る最良の実施形態について説明したが、本発明は上記実施の形態に限られないことは勿論である。
(1)再生装置200は、ローカルストレージをさらに備えていてもよい。ローカルストレージは、ビルドインメディア、リムーバブルメディアを備え、ダウンロードしてきた追加コンテンツやアプリケーションが使うデータなどの保存に用いられる。追加コンテンツの保存領域はBD-ROM毎に分かれており、またアプリケーションがデータの保持に使用できる領域はアプリケーション毎に分かれている。また、ダウンロードした追加コンテンツをどのようにBD-ROM上のデータとマージされるか、マージ規則が記載されたマージ管理情報もこのビルドインメディア、リムーバブルメディアに保存される。
ビルドインメディアとは例えば再生装置に内蔵されたハードディスクドライブ、メモリなどの書き込み可能な記録媒体である。
リムーバブルメディアとは、例えば可搬性を有する記録媒体であり、好適にはSDカードなどの可搬性を有する半導体メモリカードである。
リムーバブルメディアを半導体メモリカードとしたときを例に説明をすると、再生装置にはリムーバブルメディアを装着するためのスロット(図示せず)およびスロットに装着されたリムーバブルメディアを読み取るためのインターフェース(例えばメモリーカードI/F)が備えられており、スロットに半導体メモリを装着すると、リムーバブルメディアと再生装置とが電気的に接続され、インターフェース(例えばメモリーカードI/F)を利用して、半導体メモリに記録されたデータを電気信号に変換して読み出すことが可能となる。
再生装置200がローカルストレージを備える場合には、さらに仮想ファイルシステムを備えるとしてもよい。仮想ファイルシステムは、追加コンテンツと共にローカルストレージにダウンロードされたマージ管理情報を元に、ローカルストレージに格納された追加コンテンツとBD-ROM上のコンテンツをマージさせた、仮想的なBD-ROM(仮想パッケージ)を構築する。HDMVモードの動作主体であるコマンドインタプリタやBD-Jモードの動作主体であるBD-Jプラットフォームからは、仮想パッケージとオリジナルBD-ROMを区別なく参照することができる。仮想パッケージ再生中、再生装置はBD-ROM上のデータとローカルストレージ上のデータの両方を用いて再生制御を行うことになる。
また、再生装置200は、ネットワークインタフェースをさらに備えるとしてもよい。ネットワークインタフェースは、再生装置の外部と通信を行うためのものであり、インターネットでアクセス可能なサーバにアクセスしたり、ローカルネットワークで接続されたサーバにアクセスしたりすることが可能である。例えば、インターネット上に公開されたBD-ROM追加コンテンツのダウンロードに用いられたり、コンテンツが指定するインターネット上のサーバとの間でデータ通信を行うこうことでネットワーク機能を利用したコンテンツの再生を可能としたりする。BD-ROM追加コンテンツとは、オリジナルのBD-ROMにないコンテンツで、例えば追加の副音声、字幕、特典映像、アプリケーションなどである。BD-Jプラットフォームからネットワークインタフェースを制御することができ、インターネット上に公開された追加コンテンツをローカルストレージにダウンロードすることができる。
(2)追加コンテンツとして、レフトビュー及びライトビューのPGストリームを別途ダウンロードすることにより取得することがある。その場合に、一つのAVClip内に、レフトビュー及びライトビューのPGストリームのみが存在する場合が考えられる。この場合の制限について説明する。
図46はPGストリーム(L)とPGストリーム(R)とを多重化する模式図である。ここで、1番上の段は、PGストリーム(L)の構成例を示しており、ここではDisplay Set(L)1とDisplay Set(L)2の2つのDSから構成されている。
上から2段目は、PGストリーム(L)をTSパケット化している様子を示している。
1番下の段は、PGストリーム(R)の構成例を示しており、ここではDisplay Set(R)1とDisplay Set(R)2の2つのDSから構成されている。
下から2段目は、PGストリーム(R)をTSパケット化している様子を示している。
ここで、3D表示のためにはレフトビューとライトビューとでペアになるDSが必要であるが、この図ではDisplay Set(L)1とDisplay Set(R)1、及びDisplay Set(L)2とDisplay Set(R)2が、それぞれペアとして3D表示のために用いられる。多重化の際には、ペアとなるレフトビューのDSとライトビューのDSは、本図に示すように、常にレフトビューのDSの方が、ストリーム上で先行するよう配置される。すなわち、レフトビューのDSの方が、TSパケットナンバーが小さくなるよう配置される。それに加えて、エントリーマップテーブルをレフトビューストリームに対して設定する。これにより、飛び込み再生時であっても、レフトビューのDSをデコードした直後にライトビューのDSをデコードできるため、常にレフトビューDSとライトビューDSをペアでデコードできる。よって、ペアのうち片方だけがデコードでき、もう一方がデコードできないといった事態を回避することができる。
また、本図に、飛び込み再生や特殊再生で用いられるエントリーの位置を記載しているが、レフトビューとライトビューとでペアとなるDSの両方ともが、エントリーで示されるTSパケットより後方に配置されることで、前述のエントリーを元に飛び込み再生が行われた際にも、ペアとなるレフトビュー及びライトビューのDSが正しく表示される。
なお、この例ではエントリーの後方にペアとなるDSを配置するように記載したが、両方のDSをエントリーの前方に配置するようにしてもよい。この場合、エントリーを元に飛び込み再生を行った場合、ペアとなる両方のDSがデコードできないため、レフトビュー及びライトビューのどちらか片方だけが表示されることを防ぐことができ、視聴者の違和感を軽減できる。
(3)上記各実施の形態では、レフトビューとライトビューとで別々のPGストリームを用意する場合について説明したが、ここでは1本のPGストリームで3D表示に対応させる第1の方法について説明する。図47は、3D-PCSのデータ構造を示している。図14で説明したPCSと3D-PCSとの差は、composition_object()で示されるフィールドにおいて、objectが左目用か右目用かを示すL_R_flagが追加されていることである。例えば、あるcomposition_object()が左目用を示す場合には、L_R_flagは0に設定され、右目用を示す場合には、L_R_flagは1に設定される。
通常3DでPGを表示する場合、左目用のObjectと右目用のObjectとがペアとなっている必要がある。つまり、3D-PCS内においてnumber_of_compositionの値は、必ず偶数である必要があり、また左目用composition_object()と右目用composition_object()とは同じ数だけ存在しなければならない。
また、機能セグメントとしての3D-PCSは、多重化(2D用のPCSを含む)される際、図48(a)で示すように、ストリーム上において、2D用のPCSよりも先行した位置に配置されている。言い換えると、2D用のPCSよりもTSパケットナンバーが小さくなるよう配置されており、これにより、3D対応再生装置は、3D-PCSを先に見つけることが可能となるため、3D表示に必要ない2D用のPCSを読み飛ばすことが可能となる。
また、図中で3D-ODSとして表記されているのは、3D-PCSからしか参照されないObjectを含むODSを示しており、3D-ODSのsegment_typeを、ODSのsegment_typeと異なる値に設定しておくことによって、3D未対応の再生装置においては、3D-ODSを読み飛ばすことができるため、デコード負荷を軽減することが可能となる。さらに、あるObjectが2D用のPCSと3D-PCSとの両方から参照されている場合には、3D-ODSではなく、ODSとして定義しておくことで、2D用と3D用のObjectを共用することが可能となる。
また、例えば複数のcomposition_object()が3D-PCSに存在する場合には、左目用のcomposition_object()の次に必ず対応する右目用のcomposition_object()を置くようにするとしてもよい。このようにペアとなるL用とR用のcomposition_object()を連続して配置することにより、L用とR用のそれぞれのcomposition_object()が持つforced_on_flagが同じであることを容易に検証可能となる利点がある。また、このようにLとRの並ぶ順序を制限することによって、各composition_object()がL用かR用かを示すL-R_flagを削除することも可能となるため、既存の2D用PCSとまったく同じデータ構造を採用することが可能となり、2D用PCSの解釈プログラムをほとんど変更することなく3D-PCSを解釈することも可能になる。
次に、1本のPGストリームで3D対応させる第2の方法について説明する。図48(a)との違いは、左目用の3D-PCS(3D-PCS(L))と右目用の3D-PCS(3D-PCS(R))とを個別に用意していることである(図48(b)参照)。このように、予め左目用と右目用の3D-PCSを分ける利点について説明する。先ほどのLとRの両方の情報を含む3D-PCSの場合には、参照するObjectが左目用か、右目用かを示すためのフラグ(L_R_flag)を新規に設定する必要がある。また、フラグを設けない場合には、奇数番目のcomposition_object()がL用で、偶数番目のcomposition_object()がR用である、などの配置の制限が必要であった。つまり、3D-PCSをデコードする際には、2D用のPCSを解釈するプログラムを変更して、L_R_flagという新規フィールドを読めるようにする必要があり、または奇数番目のcomposition_object()と偶数番目のcomposition_onject()をそれぞれL用R用として処理する必要があった。
これに対して3D-PCS(L)と3D-PCS(R)のようにセグメントを分けて伝送することで、3D-PCS(L)及び3D-PCS(R)の構造は、2D用のPCSと同じ構造をとることができるため、2D用のPCSを解釈するプログラムをそのまま流用することができる。この場合、3D-PCS(L)及び3D-PCS(R)と2D用のPCSをデコーダが区別するために、segment_typeを異なるものに設定すればよい。例えば、通常の2D用PCSのsegment_typeが0x00と設定されているときに3D-PCS(L)用のsegment_typeの値を0x01、3D-PCS(R)のsegment_typeの値を0x02と設定する。または、3D-PCS(L)と3D-PCS(R)との配置に関して、3D-PCS(L)のTSパケット番号の方が小さくなるようにすることで、3D-PCS(L)と3D-PCS(R)との両方のsegment_typeを0x01に設定したとしても、デコーダは、2D用のPCSと3D-PCSとを区別することが可能となる。
また、3D-PCS(L)と3D-PCS(R)と2D用のPCSの配置に関しても、3D-PCS(L)及び3D-PCS(R)を先に配置し、その後2D用のPCSを配置することで、3D対応再生装置では3D-PCSを先に見つけた場合には、続く2D用PCSを読み飛ばすことが可能となるため、デコード負荷を軽減することが可能となる。
(4)上記実施の形態では、レフトビューとライトビューとで対応するDSにおいてcomposition_numberを等しく設定するとしたが、新しいフィールド(例えばL_R_Pairing_number)を設けて、このフィールドが、対応するDSで等しくなるよう設定してもよい。
(5)上記実施の形態では、レフトビューPGストリームは、当該ストリーム内のオブジェクトを参照し、ライトビューPGストリームは、当該ストリーム内のオブジェクトを参照するとしたが、例えば、ライトビューPGストリームからレフトビューPGストリームのオブジェクトを参照するようにしてもよい。このように左右のPGストリームが、互いのオブジェクトを参照できるようにすることで、左右で同じオブジェクトを伝送する必要がなくなり、伝送に必要な帯域を節約できるというメリットがある。
(6)上記実施の形態では、液晶シャッタゴーグル104は、液晶シャッタと制御部とから構成され、視聴者の左目にレフトビュー用の画像を、右目にライトビュー用の画像を供する仕組みとしたが、これに限定される必要はない。例えば、液晶ではなく偏光フィルタを用いることにより立体視を実現する眼鏡が市販されているが、そのような機構が用いられた眼鏡を用いてももちろんよい。
(7)上記実施の形態では、液晶シャッタゴーグル104を用いて立体視視聴を行う方法を前提に説明したが、レフトビュー画像・ライトビュー画像をそれぞれ左眼・右眼に視聴させる他の方式を利用してもよい。例えば、サイドバイサイド方式や、レンチキュラレンズなどを表示ディスプレイに使い、眼鏡などの特別な視聴器具を利用しない方式を用いていても構わない。
さらに、以下に示す技術的トピックについては、更なる改良や変更実施を加えることができる。各実施の形態に示した通り実施するか、これらの改良・変更を施すか否かは、何れも任意的であり、実施する者の主観によることは留意されたい。
<記録装置としての実施>
再生装置200が、ローカルストレージおよびリムーバブルメディアを具備している場合、これらへの書き込みを想定した構成になっているので、本願明細書に記載された再生装置は、記録装置としての機能を兼備しているといえる。再生装置200が記録装置として機能する場合、以下の2つの態様によって、管理オブジェクトの書き込みを実行する。
i)再生装置200が仮想パッケージを再生する機能をもつ場合、BD-Jオブジェクトの書き込みを以下のように行う。つまり、BD-ROMが装填された際、アプリケーションからの要求に従い、前記BD-ROMに対応する追加コンテンツを、ネットワークを介して、WWWサーバから取得する。取得された追加コンテンツはGUI管理テーブルが記述されてあるBD-Jオブジェクトを含む。「GUI管理テーブル」は、動作中のアプリケーションがGUIを行う際の管理テーブルであり、GUI表示を実行するにあたっての解像度や、GUIに用いるフォントデータ、GUIに対するメニューコール、タイトルコールがユーザによってなされた場合、これらのコールをマスクするかどうかを規定するマスクフラグを含む。
再生装置200において、記録制御を行う制御部は、前記アプリケーションからの要求に従い、取得したBD-Jオブジェクトをローカルストレージに書き込む。こうすることで、BD-ROMに記録されたコンテンツと、前記ローカルストレージに記録された追加コンテンツとを組み合わせることで、前記仮想パッケージを構築することが可能になる。
ここで、前記BD-ROMには、ディスクルート証明書の識別子、BD-ROMコンテンツを頒布した組織の識別子、BD-ROMの識別子が記録されており、追加コンテンツが格納されるべき領域は、ディスクルート証明書識別子と、組織識別子と、BD-ROM識別子とを含むファイルパスによって特定される。
前記アプリケーションは、追加コンテンツが格納されるべき領域を特定するファイルパスを、制御部に引き渡すことで書き込みを行う。
前記ローカルストレージが、ディレクトリ名、及び、ファイル名が255文字以下に制限されたファイルシステムを有している場合、前記ローカルストレージへの書き込みに用いられるファイルパスは、8文字以下のディレクトリ名、及び、ファイル名で、かつ拡張子名が3文字以下である8.3形式のファイルシステムにおけるファイル名と、拡張子との指定を含む。
ii)再生装置200がオンデマンドマニュファクチャサービス又は電子的セルスルーサービス(MODEST)の供給を受ける機能をもつ場合、BD-Jオブジェクトの書き込みを以下のように行う。
つまり再生装置200がオンデマンドマニュファクチャサービス又は電子的セルスルーサービスによってBD-Jオブジェクトの供給を受ける際、リムーバブルメディアにおけるルートディレクトリの配下に、デフォルトのディレクトリと、MODESTディレクトリとをクリエイトして、MODESTディレクトリの配下に、BDMVディレクトリをクリエイトする。MODESTディレクトリは、ファーストMODESTディレクトリであり、ファーストMODESTディレクトリは、前記サービスを初めて受けた際、クリエイトされるMODESTディレクトリである。ユーザが2回目以降にサービスを受ける際、再生装置200における制御部は、2回目以降のサービスに対応するMODESTディレクトリをクリエイトする。
そして、上述したように、GUI管理テーブルが記述されたBD-Jオブジェクトを取得すると、制御部は、デフォルトディレクトリにスタートアッププログラムを書き込み、MODESTディレクトリ配下のBDMVディレクトリにBD-Jオブジェクトを書き込む。このスタートアッププログラムは、記録媒体が再生装置200に装填された際、最初に実行されるべきプログラムであり、BDMVディレクトリを選択する操作をユーザから受け付けるためのメニューを再生装置200に表示させて、ルート変更機能を再生装置200に実行させる。このルート変更機能は、メニューに対する選択操作がユーザによってなされた場合、選択されたBDMVディレクトリが属するMODESTディレクトリをルートディレクトリとして認識させる機能である。かかるルート変更機能によって、BD-ROMを再生するのと同じ制御手順によって取得したBD-Jオブジェクトに基づく再生制御を実行することができる。
<Java(TM)アプリケーション>
BD-Jアプリケーションは、例えば電子商取引(EC(Electronic Commerce))のクライアントアプリケーションであってもよいし、ネット対戦型のオンラインゲームであってもよい。更に、検索エンジンと連携して、様々なオンラインサービスを、ユーザに供給するものでもよい。
<GUI管理テーブルを組込む単位>
GUI管理テーブルをBD-Jオブジェクトに設けてもよい。また、GUI管理テーブルをプレイリスト情報やプレイアイテム情報に対応付けるように設けて、カレントプレイリストが特定のプレイリストになったタイミングまたはカレントプレイアイテムが、特定のプレイアイテムになった際、プレーンメモリの解放を行った上で、立体視再生のためのプレーンメモリの確保又は平面視再生のためのプレーンメモリの確保を実行してもよい。このようにすることで、メモリデバイスの領域管理がより決め細かい時間精度でなされることになる。
<立体視のためのビデオストリーム>
レフトビュー用、ライトビュー用のビデオストリームをBD-ROMに記録しておくというのは、一例に過ぎない。ピクチャ毎に、画素毎の奥行き値を表すビデオストリームをエンハンスドビュービデオストリームとしてBD-ROMに記録しておいて、再生に供してもよい。
<実装すべきパッケージ>
再生装置の実施にあたっては、以下のBD-J Extensionを再生装置に実装するのが望ましい。BD-J Extensionは、GEM[1.0.2]を越えた機能を、Java(TM)プラットフォームに与えるために特化された、様々なパッケージを含んでいる。BD-J Extensionにて供給されるパッケージには、以下のものがある。
・org.bluray.media
このパッケージは、Java(TM) Media FrameWorkに追加すべき、特殊機能を提供する。アングル、音声、字幕の選択についての制御が、このパッケージに追加される。
・org.bluray.ti
このパッケージは、GEM[1.0.2]における"サービス"を"タイトル"にマップして動作するためのAPIや、BD-ROMからタイトル情報を問い合わせる機構や新たなタイトルを選択する機構を含む。
・org.bluray.application
このパッケージは、アプリケーションの生存区間を管理するためのAPIを含む。また、アプリケーションを実行させるにあたってのシグナリングに必要な情報を問い合わせるAPIを含む。
・org.bluray.ui
このパッケージは、BD-ROMに特化されたキーイベントのための定数を定義し、映像再生との同期を実現するようなクラスを含む。
・org.bluray.vfs
このパッケージは、データの所在に拘らず、データをシームレスに再生するため、BD-ROMに記録されたコンテンツ(on-discコンテンツ)と、BD-ROMに記録されていないLocal Storage上のコンテンツ(off-discコンテンツ)とをバインドする機構(Binding Scheme)を提供する。
Binding Schemeとは、BD-ROM上のコンテンツ(AVクリップ、字幕、BD-Jアプリケーション)と、Local Storage上の関連コンテンツとを関連付けるものである。このBinding Schemeは、コンテンツの所在に拘らず、シームレス再生を実現する。
<プログラミング言語の適用範囲>
上記実施形態では、仮想マシンのプログラミング言語としてJava(TM)を利用したが、Java(TM)ではなく、UNIX(TM) OSなどで使われているB-Shellや、Perl Script、ECMA Scriptなど他のプログラミング言語であっても良い。
<マルチドライブ化>
上記実施形態では、記録媒体の一例としてBD-ROM、BD-ROMからデータを読み出す機能を有する具体的な手段の一例としてBD-ROMドライブを例に挙げて説明をした。しかしながら、BD-ROMは単なる一例であり、記録媒体としてBD-R、BD-RE、DVD、CDなどの光ディスク媒体であっても、これらの記録媒体に上述したデータ構造を有するデータが格納されていること、これらの記録媒体を読み取るドライブ装置があれば、上述の実施の形態で説明した動作が可能である。
各実施の形態における記録媒体は、光ディスク、半導体メモリカード等、パッケージメディア全般を含んでいる。上記実施の形態の記録媒体は予め必要なデータが記録された光ディスク(例えばBD-ROM、DVD-ROMなどの既存の読み取り可能な光ディスク)を例に説明をしたが、これに限定される必要はなく、例えば、放送またはネットワークを経由して配信された本発明の実施に必要なデータを含んだ3Dコンテンツを光ディスクへ書き込む機能を有する端末装置(例えば左記の機能は再生装置に組み込まれていても良いし、再生装置とは別の装置であってもよい)を利用して書き込み可能な光ディスク(例えばBD-RE、DVD-RAMなどの既存の書き込み可能な光ディスク)に記録し、この記録した光ディスクを本発明の再生装置に適用しても本発明の実施は可能である。
また、記録媒体は光ディスク以外にも例えば、SDメモリカードなどのリムーバブルメディア(半導体メモリカード)であっても本発明の実施は可能である。
BD-ROMの代わりに半導体メモリを用いた場合には、半導体メモリカード内のデータを読み出すためのインタフェース(メモリカードI/F)を介してリードバッファ2、ヒープメモリ207、動的シナリオメモリ209、静的シナリオメモリ205に、データが転送されるように構成すればよい。
より詳細には、再生装置200のスロット(図示せず)に半導体メモリカードが挿入されると、メモリカードI/Fを経由して再生装置200と半導体メモリカードが電気的に接続される。半導体メモリカードに記録されたデータはメモリカードI/Fを介してリードバッファ2、ヒープメモリ207、動的シナリオメモリ209、静的シナリオメモリ205に転送されるように構成すればよい。
続いて、BD-ROMに記録されているデータの著作権保護の仕組みについて説明する。BD-ROMに記録されたデータのうち、例えば著作権の保護、データの秘匿性の向上の観点からデータの一部が、必要に応じて暗号化されている場合がある。
例えば、BD-ROMに記録されたデータのうち、暗号化されているデータは、例えばビデオストリームに対応するデータ、オーディオストリームに対応するデータ、またはこれらを含むストリームに対応するデータであったりする。
以後、BD-ROMに記録されたデータのうち、暗号化されているデータの解読について説明をする。
再生装置においては、BD-ROM内の暗号化されたデータを解読するために必要な鍵に対応するデータ(例えばデバイスキー)が予め再生装置に記憶されている。
一方、BD-ROMには暗号化されたデータを解読するために必要な鍵に対応するデータ(例えば上述のデバイスキーに対応するMKB(メディアキーブロック))と、暗号化されたデータを解読するための鍵自体を暗号化したデータ(例えば上述のデバイスキー及びMKBに対応する暗号化タイトルキー)が記録されている。ここで、デバイスキー、MKB、及び暗号化タイトルキーは対になっており、さらにBD-ROM上の通常コピーできない領域(BCAと呼ばれる領域)に書き込まれた識別子(例えばボリュームID)とも対応付けがされている。この組み合わせが正しくなければ、暗号の解読ができないものとする。組み合わせが正しい場合のみ、暗号解読に必要な鍵(例えば上述のデバイスキー、MKB及びボリュームIDを元に、暗号化タイトルキーを復号して得られるタイトルキー)を導き出すことができ、この暗号解読に必要な鍵を用いて、暗号化されたデータの解読が可能となる。
装填されたBD-ROMを再生装置において再生する場合、例えばBD-ROM内の暗号化タイトルキー、MKBと対になっている(または対応する)デバイスキーが再生装置内になければ、暗号化されたデータは再生がなされない。何故ならば、暗号化されたデータの解読に必要な鍵(タイトルキー)は、鍵自体が暗号化されて(暗号化タイトルキー)BD-ROM上に記録されており、MKBとデバイスキーの組み合わせが正しくなければ、暗号の解読に必要な鍵を導き出すことができないからである。
逆に暗号化タイトルキー、MKB、デバイスキー及びボリュームIDの組み合わせが正しければ、例えば上述の暗号解読に必要な鍵(デバイスキー、MKB及びボリュームIDを元に、暗号化タイトルキーを復号して得られるタイトルキー)を用いてビデオストリームがデコーダにてデコードされ、オーディオストリームがオーディオデコーダにてデコードされるように再生装置は構成されている。
以上が、BD-ROMに記録されているデータの著作権保護の仕組みであるが、この仕組みは、BD-ROMに必ずしも限定されるのではなく、例えば、読込み/書込み可能な半導体メモリ(例えばSDカードなどの可搬性を有する半導体メモリカード)に適用した場合においても、実施が可能である。
例えば、BD-ROMに記録されるデータに相応するデータを例えば電子配信を利用して半導体メモリカードに記録して、半導体メモリカードから再生をするような構成としても良い。電子配信を利用して必要なデータを配信し、配信されたデータを記録する場合においても、配信されたデータのうちの一部または全てのデータに対して必要に応じて暗号化を行なって配信し、半導体メモリに必要なデータについては暗号化がなされたままで記録するのが望ましい。
電子配信を利用して、本実施の形態で説明をしたデータに相応するデータ(配信データ)を半導体メモリに記録する動作について説明をする。
上述の動作は本実施の形態において説明をした再生装置がそのような動作を行なえるように構成をされていても良いし、本実施の形態の再生装置とは別に半導体メモリに配信データを記憶することを行う専用の端末装置にて行なうような形態であっても良い。ここでは再生装置が行なう例について説明をする。また記録先の半導体メモリとしてSDカードを例に説明をする。
再生装置が備えるスロットに挿入されたSDメモリカードに配信データを記録する場合、まず配信データを蓄積する配信サーバ(図示せず)へ配信データの送信を要求する。このとき再生装置は挿入したSDメモリカードを一意に識別するための識別情報(例えば個々のSDメモリカード固有の識別番号、より具体的には、例えばSDメモリカードのシリアル番号等)をSDメモリカードから読み出して、読み出した識別情報を配信要求とともに、配信サーバへ送信する。
この、SDメモリカードを一意に識別するための識別情報は例えば上述のボリュームIDに相当する。
一方、配信サーバでは、配信するデータのうち必要なデータ(例えばビデオストリーム、オーディオストリーム等)が暗号解読に必要な鍵(例えばタイトルキー)を用いて暗号の解除ができるように暗号化がなされてサーバ上に格納されている。
例えば配信サーバは、秘密鍵を保持しており、半導体メモリカードの固有の識別番号のそれぞれに対して異なる公開鍵情報が動的に生成できるように構成されている。
また、配信サーバは、暗号化されたデータの解読に必要な鍵(タイトルキー)自身に対して暗号化ができるように構成されている(つまり暗号化タイトルキーを生成できるように構成されている)。
生成される公開鍵情報は例えば上述のMKB、ボリュームID及び暗号化タイトルキーに相当する情報を含む。暗号化されたデータは例えば半導体メモリ固有の識別番号、後述する公開鍵情報に含まれる公開鍵本体、および再生装置に予め記録されたデバイスキーの組み合わせが正しければ、暗号解読に必要な鍵(例えばデバイスキー、MKB及び半導体メモリ固有の識別番号を元に、暗号化タイトルキーを復号して得られるタイトルキー)が得られ、この得られた暗号解読に必要な鍵(タイトルキー)を用いて、暗号化されたデータの解読ができるものである。
次に、再生装置は、受信した公開鍵情報と配信データをスロットに挿入した半導体メモリカードの記録領域に記録する。
次に、半導体メモリカードの記録領域に記録した公開鍵情報と配信データに含まれるデータのうち暗号化したデータを復号して再生する方法の一例について説明をする。
受信した公開鍵情報は例えば公開鍵本体(例えば上述のMKB及び暗号化タイトルキー)、署名情報、半導体メモリカードの固有の識別番号、および無効にすべきデバイスに関する情報を示すデバイスリストが記録されている。
署名情報には例えば、公開鍵情報のハッシュ値を含む。
デバイスリストには例えば、不正に再生がなされる可能性があるデバイスに関する情報が記載されている。これは例えば再生装置に予め記録されたデバイスキー、再生装置の識別番号、または再生装置が備えるデコーダの識別番号といったように、不正に再生される可能性がある装置、装置に含まれる部品、または機能(プログラム)といったものを一意に特定するための情報である。
半導体メモリカードの記録領域に記録した配信データのうち、暗号化されたデータの再生に関し、説明をする。
まず、公開鍵本体を利用して暗号化したデータを復号する前に復号鍵本体を機能させてよいかどうかに関するチェックを行う。
具体的には、
(1) 公開鍵情報に含まれる半導体メモリ固有の識別情報と半導体メモリカードに予め記憶されている固有の識別番号とが一致するかどうかのチェック
(2) 再生装置内で算出した公開鍵情報のハッシュ値と署名情報に含まれるハッシュ値が一致するかのチェック
(3) 公開鍵情報に含まれるデバイスリストに示される情報に基づいて、再生を行う再生装置が不正な再生が可能かどうかのチェック(例えば公開鍵情報に含まれるデバイスリストに示されるデバイスキーと、再生装置に予め記憶されたデバイスキーが一致するかどうかのチェック)
を行なう。これらのチェックを行なう順番どのような順序で行なってもよい。
上述の(1)〜(3)のチェックにおいて、公開鍵情報に含まれる半導体メモリ固有の識別情報と半導体メモリに予め記憶されている固有の識別番号とが一致しない、再生装置内で算出した公開鍵情報のハッシュ値と署名情報に含まれるハッシュ値が一致しない、または、再生を行う再生装置が不正に再生される可能性があると判断した、のいずれかを満足すれば、再生装置は、暗号化されたデータの解読がなされないように制御する。
また、公開鍵情報に含まれる半導体メモリカードの固有の識別情報と半導体メモリカードに予め記憶されている固有の識別番号とが一致し、かつ再生装置内で算出した公開鍵情報のハッシュ値と署名情報に含まれるハッシュ値が一致し、かつ再生を行う再生装置が不正に再生される可能性がないと判断したのであれば、半導体メモリ固有の識別番号、公開鍵情報に含まれる公開鍵本体、および再生装置に予め記録されたデバイスキーの組み合わせが正しいと判断し、暗号解読に必要な鍵(デバイスキー、MKB及び半導体メモリ固有の識別番号を元に、暗号化タイトルキーを復号して得られるタイトルキー)を用いて、暗号化されたデータの解読を行なう。
例えば暗号化されたデータがビデオストリーム、オーディオストリームである場合、ビデオデコーダは上述の暗号解読に必要な鍵(暗号化タイトルキーを復号して得られるタイトルキー)を利用してビデオストリームを復号し(デコードし)、オーディオデコーダは、上述の暗号解読に必要な鍵を利用してオーディオストリームを復号する(デコードする)。
このように構成をすることにより、電子配信時において不正利用される可能性がある再生装置、部品、機能(プログラム)などが分っている場合、これらを識別するための情報をデバイスリストに示して、配信するようにすれば、再生装置側がデバイスリストに示されているものを含むような場合には公開鍵情報(公開鍵本体)を用いた復号を抑止できるようにできるため、半導体メモリ固有の識別番号、公開鍵情報に含まれる公開鍵本体、および再生装置に予め記録されたデバイスキーの組み合わせが、たとえ正しくても、暗号化されたデータの解読がなされないように制御できるため、不正な装置上での配信データの利用を抑止することが可能となる。
また半導体メモリカードに予め記録されている半導体メモリカードの固有の識別子は秘匿性の高い記録領域に格納するような構成を採用するのが望ましい。何故ならば、半導体メモリカードに予め記録されている固有の識別番号(例えばSDメモリカードを例にすればSDメモリカードのシリアル番号等)は改竄がなされると、違法コピーが容易になされてしまう。何故ならば複数の半導体メモリカードには、それぞれ異なる固有の識別番号が割り当てられているが、この固有の識別番号が同一となるように改竄がなされてしまえば、上述の(1)の判定が意味を成さなくなり、改竄がなされた数に相当する違法コピーがなされてしまう可能性があるからである。
従って、半導体メモリカードの固有の識別番号といった情報は秘匿性が高い記録領域に記録するような構成を採用するのが望ましい。
このような構成を実現するために、例えば半導体メモリカードは、半導体メモリカードの固有の識別子と言った秘匿性の高いデータを記録するための記録領域を通常のデータを格納する記録領域(第1の記録領域と称す)とは別の記録領域(第2の記録領域と称す)に設けること、およびこの第2の記録領域へのアクセスをするための制御回路を設けるとともに、第2の記録領域へのアクセスには制御回路を介してのみアクセスできるような構成とする。
例えば、第2の記録領域に記録されているデータは暗号化がなされて、記録されており、制御回路は、例えば暗号化されたデータを復号するための回路が組み込まれている。制御回路へ第2の記録領域へのデータのアクセスが合った場合には、暗号を復号し、復号したデータを返すように構成すれば良い。または、制御回路は第2の記録領域に記録されているデータの格納場所の情報を保持しており、データのアクセスの要求があれば、対応するデータの格納場所を特定し、特定した格納場所から読み取ったデータを返すような構成としても良い。
再生装置上で動作するアプリケーションで、電子配信を利用して半導体メモリカードに記録する要求するアプリケーションは、メモリカードI/Fを介して制御回路へ第2の記録領域に記録されたデータ(例えば半導体メモリ固有の識別番号)へのアクセス要求を発行すると、要求を受けた制御回路は第2の記録領域に記録されたデータを読み出して再生装置上で動作するアプリケーションへ返す。この半導体メモリカードの固有の識別番号とともに必要なデータの配信要求を配信サーバに要求し、配信サーバから送られる公開鍵情報、および対応する配信データを第1の記録領域に記録するように構成すればよい。
また、再生装置上で動作するアプリケーションで、電子配信を利用して半導体メモリカードに記録を要求するアプリケーションは、メモリカードI/Fを介して制御回路へ第2の記録領域に記録されたデータ(例えば半導体メモリ固有の識別番号)へのアクセス要求を発行する前に、アプリケーションの改竄がされていないかを事前にチェックすることが望ましい。改竄のチェックには例えば既存のX.509仕様に準拠したデジタル証明書を利用したチェックなどを利用しても良い。
また、半導体メモリカードの第1の記録領域に記録された配信データへのアクセスは半導体メモリカードが有する制御回路を介してアクセスする必要は必ずしもない。
<プログラムの実施形態>
各実施の形態に示したアプリケーションプログラムは、以下のようにして作ることができる。先ず初めに、ソフトウェア開発者は、プログラミング言語を用いて、各フローチャートや、機能的な構成要素を実現するようなソースプログラムを記述する。この記述にあたって、ソフトウェア開発者は、プログラミング言語の構文に従い、クラス構造体や変数、配列変数、外部関数のコールを用いて、各フローチャートや、機能的な構成要素を具現するソースプログラムを記述する。
記述されたソースプログラムは、ファイルとしてコンパイラに与えられる。コンパイラは、これらのソースプログラムを翻訳してオブジェクトプログラムを生成する。
コンパイラによる翻訳は、構文解析、最適化、資源割付、コード生成といった過程からなる。構文解析では、ソースプログラムの字句解析、構文解析および意味解析を行い、ソースプログラムを中間プログラムに変換する。最適化では、中間プログラムに対して、基本ブロック化、制御フロー解析、データフロー解析という作業を行う。資源割付では、ターゲットとなるプロセッサの命令セットへの適合を図るため、中間プログラム中の変数をターゲットとなるプロセッサのプロセッサが有しているレジスタまたはメモリに割り付ける。コード生成では、中間プログラム内の各中間命令を、プログラムコードに変換し、オブジェクトプログラムを得る。
ここで生成されたオブジェクトプログラムは、各実施の形態に示したフローチャートの各ステップや、機能的構成要素の個々の手順を、コンピュータに実行させるような1つ以上のプログラムコードから構成される。ここでプログラムコードは、プロセッサのネイティブコード、JAVAバイトコードというように、様々な種類がある。プログラムコードによる各ステップの実現には、様々な態様がある。外部関数を利用して、各ステップを実現することができる場合、この外部関数をコールするコール文が、プログラムコードになる。また、1つのステップを実現するようなプログラムコードが、別々のオブジェクトプログラムに帰属することもある。命令種が制限されているRISCプロセッサでは、算術演算命令や論理演算命令、分岐命令等を組合せることで、フローチャートの各ステップを実現してもよい。
オブジェクトプログラムが生成されるとプログラマはこれらに対してリンカを起動する。リンカはこれらのオブジェクトプログラムや、関連するライブラリプログラムをメモリ空間に割り当て、これらを1つに結合して、ロードモジュールを生成する。こうして生成されるロードモジュールは、コンピュータによる読み取りを前提にしたものであり、各フローチャートに示した処理手順や機能的な構成要素の処理手順を、コンピュータに実行させるものである。かかるプログラムをコンピュータ読取可能な記録媒体に記録してユーザに提供してよい。
<システムLSIの単体実施>
システムLSIとは、高密度基板上にベアチップを実装し、パッケージングしたものをいう。複数個のベアチップを高密度基板上に実装し、パッケージングすることにより、あたかも1つのLSIのような外形構造を複数個のベアチップに持たせたものも、システムLSIに含まれる(このようなシステムLSIは、マルチチップモジュールと呼ばれる。)。
ここでパッケージの種別に着目するとシステムLSIには、QFP(クッド フラッド アレイ)、PGA(ピン グリッド アレイ)という種別がある。QFPは、パッケージの四側面にピンが取り付けられたシステムLSIである。PGAは、底面全体に、多くのピンが取り付けられたシステムLSIである。
これらのピンは、他の回路とのインタフェースとしての役割を担っている。システムLSIにおけるピンには、こうしたインタフェースの役割が存在するので、システムLSIにおけるこれらのピンに、他の回路を接続することにより、システムLSIは、再生装置200の中核としての役割を果たす。
かかるシステムLSIは、再生装置200は勿論のこと、TVやゲーム、パソコン、ワンセグ携帯等、映像再生を扱う様々な機器に組込みが可能であり、本発明の用途を多いに広げることができる。
上記実施の形態で示したように、バッファやビデオデコーダ、オーディオデコーダ、グラフィクスデコーダをも、一体のシステムLSIにする場合、システムLSIのアーキテクチャは、Uniphierアーキテクチャに準拠させるのが望ましい。
Uniphierアーキテクチャに準拠したシステムLSIは、以下の回路ブロックから構成される。
・データ並列プロセッサDPP
これは、複数の要素プロセッサが同一動作するSIMD型プロセッサであり、各要素プロセッサに内蔵されている演算器を、1つの命令で同時動作させることで、ピクチャを構成する複数画素に対するデコード処理の並列化を図る。
・命令並列プロセッサIPP
これは、命令RAM、命令キャッシュ、データRAM、データキャッシュからなる「Local Memory Controller」、命令フェッチ部、デコーダ、実行ユニット、レジスタファイルからなる「Processing Unit部」、複数アプリケーションの並列実行をProcessing Unit部に行わせる「Virtual Multi Processor Unit部」で構成される。
・MPUブロック
これは、ARMコア、外部バスインタフェース(Bus Control Unit:BCU)、DMAコントローラ、タイマー、ベクタ割込コントローラといった周辺回路、UART、GPIO(General Purpose Input Output)、同期シリアルインタフェースなどの周辺インタフェースで構成される。
・ストリームI/Oブロック
これは、USBインタフェースやATA Packetインタフェースを介して、外部バス上に接続されたドライブ装置、ハードディスクドライブ装置、SDメモリカードドライブ装置とのデータ入出力を行う。
・AVI/Oブロック
これは、オーディオ入出力、ビデオ入出力、OSDコントローラで構成され、テレビ、AVアンプとのデータ入出力を行う。
・メモリ制御ブロック
これは、外部バスを介して接続されたSD-RAMの読み書きを実現するブロックであり、各ブロック間の内部接続を制御する内部バス接続部、システムLSI外部に接続されたSD-RAMとのデータ転送を行うアクセス制御部、各ブロックからのSD-RAMのアクセス要求を調整するアクセススケジュール部からなる。
具体的な生産手順の詳細は以下のものになる。まず各実施の形態に示した構成図を基に、システムLSIとすべき部分の回路図を作成し、回路素子やIC,LSIを用いて、構成図における構成要素を具現化する。
そうして、各構成要素を具現化してゆけば、回路素子やIC,LSI間を接続するバスやその周辺回路、外部とのインタフェース等を規定する。更には、接続線、電源ライン、グランドライン、クロック信号線等も規定してゆく。この規定にあたって、LSIのスペックを考慮して各構成要素の動作タイミングを調整したり、各構成要素に必要なバンド幅を保証したりする等の調整を加えながら、回路図を完成させてゆく。
回路図が完成すれば、実装設計を行う。実装設計とは、回路設計によって作成された回路図上の部品(回路素子やIC,LSI)を基板上のどこへ配置するか、あるいは、回路図上の接続線を、基板上にどのように配線するかを決定する基板レイアウトの作成作業である。
こうして実装設計が行われ、基板上のレイアウトが確定すれば、実装設計結果をCAMデータに変換して、NC工作機械等の設備に出力する。NC工作機械は、このCAMデータを基に、SoC実装やSiP実装を行う。SoC(System on chip)実装とは、1チップ上に複数の回路を焼き付ける技術である。SiP(System in Package)実装とは、複数チップを樹脂等で1パッケージにする技術である。以上の過程を経て、本発明に係るシステムLSIは、各実施の形態に示した再生装置200の内部構成図を基に作ることができる。
尚、上述のようにして生成される集積回路は、集積度の違いにより、IC、LSI、スーパーLSI、ウルトラLSIと呼称されることもある。
FPGAを用いてシステムLSIを実現した場合は、多数のロジックエレメントが格子状に配置されており、LUT(Look Up Table)に記載されている入出力の組合せに基づき、縦・横の配線をつなぐことにより、各実施形態に示したハードウェア構成を実現することができる。LUTは、SRAMに記憶されており、かかるSRAMの内容は、電源断により消滅するので、かかるFPGAの利用時には、コンフィグ情報の定義により、各実施形態に示したハードウェア構成を実現するLUTを、SRAMに書き込ませる必要がある。
本実施の形態においては、ミドルウェアとシステムLSIに対応するハードウェア、システムLSI以外のハードウェア、ミドルウェアに対するインタフェースの部分、ミドルウェアとシステムLSIとの間のインタフェースの部分、ミドルウェアとシステムLSI以外の必要なハードウェアとの間のインタフェースの部分、ユーザインタフェースの部分で実現し、これらを組み込んで再生装置を構成したとき、それぞれが連携して動作することにより特有の機能が提供されることになる。
ミドルウェアに対するインタフェース、および、ミドルウェアとシステムLSIのインタフェースを適切に定義することにより、再生装置のユーザインタフェース部分、ミドルウェア部分、システムLSI部分をそれぞれ独立して並行開発することができ、より効率よく開発することが可能となる。なお、それぞれのインタフェースの部分のきり方には、様々なきり方がある。例えば、ビデオデコーダ、グラフィクスデコーダ、オーディオデコーダ、加算器(合成部)を一チップ化したとき、これらを制御するミドルウェアおよびこれらと対応するミドルウェアとの間のインタフェースの部分について、チップを開発する側で開発をし、完成後、チップを再生装置に組み込むとともに、開発したミドルウェア、インタフェース部分を再生装置内のメモリなどの記憶部に組み入れることにより、再生装置側の開発とチップ側の開発を並行して行なうことができるようになり、開発効率が向上する。
開発したチップと開発したチップに関連するミドルウェアとの間のインタフェース部分について、共通にすると、汎用性が高くなる。
なお、システムLSIにて構成をした部分に関しては、LSIでしか構成ができないというものではなく、システムLSIに含まれるべき機能に対応する信号処理回路を用いて構成をしても良いことは言うまでもない。
<記録方法>
記録媒体の作り方、つまり、所定のデータが記録された記録媒体を得るための記録方法の使用形態について説明する。
上記各実施の形態に係る記録方法は、AVクリップやそれ以外のデータをリアルタイムに作成して、記録媒体の領域にダイレクトに書き込むというリアルタイムレコーディングだけではなく、ボリューム領域に記録すべきビットストリームの全体像を事前に作成して、このビットストリームを元に原盤ディスクを作成し、この原盤ディスクをプレスすることで、光ディスクを量産するという間接的な書き込み、つまり、プレフォーマットレコーディングも含む。上記各実施の形態に係る記録媒体は、リアルタイムレコーディングによる記録方法、及び、プレフォーマッティングレコーディングによる記録方法の何れの記録方法によっても特定されるものでもある。
この記録方法は、動画、音声、字幕、メニューといったデータ素材のインポートを行うステップと、インポートされたデータ素材をデジタル化して圧縮符号化し、MPEGに従ったエンコードを行うことでPESストリームを得るステップと、PESストリームを多重化してAVクリップを得るステップと、Java(TM)プログラム、多重化ステップで得られたAVクリップを入力とし、BD-ROMに準拠したファイルシステムフォーマットでAVファイル,非AVファイルを作成するステップと、BD-ROMに記録されるべきデータのうち、非AVファイルを記録媒体に書き込むステップ、AVファイルを記録媒体に書き込むステップとを含む。
<ボリューム領域におけるエクステントの位置付け>
所定のデータがファイルに格納されて記録媒体に記録されている場合、ファイルシステム上では、“エクステント”という態様で扱われることはすでに説明した。記録媒体において、このエクステントのアドレスは、以下のようにして管理されている。
エクステントは、ボリューム領域におけるパーティション空間において、物理的に連続する複数のセクタ上に形成される。パーティション空間は、「ファイルセット記述子が記録された領域」、「終端記述子が記録された領域」、「ROOTディレクトリ領域」、「BDMVディレクトリ領域」、「JARディレクトリ領域」、「BDJOディレクトリ領域」、「PLAYLISTディレクトリ領域」、「CLIPINFディレクトリ領域」、「STREAMディレクトリ領域」から構成され、ファイルシステムによってアクセスされる領域のことである。以降、これらの領域について説明する。
「ファイルセット記述子」は、ディレクトリ領域のうち、ROOTディレクトリのファイルエントリが記録されているセクタを指し示す論理ブロック番号(LBN)を含む。「終端記述子」は、ファイルセット記述子の終端を示す。
次に、ディレクトリ領域の詳細について説明する。上述したような複数のディレクトリ領域は、何れも共通の内部構成を有している。つまり、「ディレクトリ領域」は、「ファイルエントリ」と、「ディレクトリファイル」と、「下位ファイルについてのファイル記録領域」とから構成される。
「ファイルエントリ」は、「記述子タグ」と、「ICBタグ」と、「アロケーション記述子」とを含む。
「記述子タグ」は、自身がファイルエントリである旨を示すタグである。
「ICBタグ」は、ファイルエントリ自身に関する属性情報を示す。
「アロケーション記述子」は、ディレクトリファイルの記録位置を示す論理ブロック番号(LBN)を含む。以上がファイルエントリについての説明である。続いて、ディレクトリファイルの詳細について説明する。
「ディレクトリファイル」は、「下位ディレクトリについてのファイル識別記述子」と、「下位ファイルのファイル識別記述子」とを含む。
「下位ディレクトリのファイル識別記述子」は、自身の配下にある下位ディレクトリをアクセスするための参照情報であり、その下位ディレクトリを示す識別情報と、その下位ディレクトリのディレクトリ名の長さと、下位ディレクトリのファイルエントリがどの論理ブロック番号に記録されているかを示すファイルエントリアドレスと、その下位ディレクトリのディレクトリ名とから構成される。
「下位ファイルのファイル識別記述子」は、自身の配下にある下位ファイルをアクセスするための参照情報であり、その下位ファイルを示す識別情報と、その下位ファイル名の長さと、下位ファイルについてのファイルエントリがどの論理ブロック番号に記録されているかを示すファイルエントリアドレスと、下位ファイルのファイル名とから構成される。
これらのディレクトリのディレクトリファイルにおけるファイル識別記述子には、下位ディレクトリ及び下位ファイルのファイルエントリが、どの論理ブロックに記録されているかが示されているので、このファイル識別記述子を辿ってゆけば、ROOTディレクトリのファイルエントリからBDMVディレクトリのファイルエントリに到達することができ、また、BDMVディレクトリのファイルエントリからPLAYLISTディレクトリのファイルエントリに到達することができる。同様に、JARディレクトリ、BDJOディレクトリ、CLIPINFディレクトリ、STREAMディレクトリのファイルエントリにも到達することができる。
「下位ファイルのファイル記録領域」とは、あるディレクトリの配下にある下位ファイルの実体が記録されている領域であり、当該下位ファイルについての「ファイルエントリ」と、1つ以上の「エクステント」とが記録されている。
「ファイルエントリ」は、「記述子タグ」と、「ICBタグ」と、「アロケーション記述子」とを含む。
「記述子タグ」は、自身がファイルエントリである旨を示すタグである。タグには、ファイルエントリ記述子、スペースビットマップ記述子などの種別があるが、ファイルエントリの場合には、記述子タグとしてファイルエントリを示す“261”が記述される。
「ICBタグ」は、ファイルエントリ自身に関する属性情報を示す。
「アロケーション記述子」は、あるディレクトリの配下にある下位ファイルを構成するエクステントの記録位置を示す論理ブロック番号(LBN)を含む。アロケーション記述子は、エクステント長を示すデータと、エクステントの記録位置を示す論理ブロック番号とを含む。ただしエクステント長を示すデータの上位2ビットは、“0”に設定されることで、割り付け済みかつ記録済みエクステントである旨を示し、“1”に設定されることで、割り付け済みかつ未記録エクステントである旨を示す。“0”に設定されることで、アロケーション識別子の続きのエクステントであることを示す。あるディレクトリの配下にある下位ファイルが複数のエクステントに分割されている場合には、ファイルエントリはエストテント毎に複数のアロケーション記述子を有することになる。
上述したようなファイルエントリのアロケーション識別子を参照することで、プレイリスト情報ファイル、クリップ情報ファイル、AVクリップファイル、BD-Jオブジェクトファイル、JARアーカイブファイルを構成するエクステントのアドレスを知得することができる。
本願の主眼となるストリーム、データ、フラグを格納したファイルは、そのファイルが帰属するディレクトリのディレクトリ領域内に存在するファイル記録領域のことであり、ディレクトリファイルにおけるファイル識別記述子、及び、ファイルエントリにおけるアロケーション識別子を辿ってゆくことで、アクセスすることができる。
<ファイルオープン>
記録媒体上のファイルを、装置内に読み込む際の処理について説明する。
上述したようなAVストリーム、Index.bdmv、JARファイル、BD-Jオブジェクトは、ファイル構造、ディレクトリ構造に従ってBD-ROMに記録されているので、再生装置は、ファイルオープンのためのシステムコールを行うことで、これらをメモリに読み出すことができる。
ファイルオープンとは、システムコール時に与えられたファイル名によってディレクトリを検索し、ファイルが存在すればFCB(File Control Block)を確保して、ファイルハンドルの番号を返す処理をいう。FCBは、目的のファイルのディレクトリエントリーの内容がメモリ上にコピーされることにより生成される。
<リアルタイムレコーディングへの適用>
AVクリップ、プレイリスト情報は、オーサリングシステムにおけるプリレコーディング技術にて、BD-ROMに記録され、ユーザに供給されることを前提としたが、リアルタイムレコーディングにてBD-RE又はBD-R、ハードディスク、半導体メモリカードに記録され、ユーザに供給されるものであってもよい。
この場合AVクリップは、アナログ入力信号を記録装置がリアルタイムエンコードすることにより得られたトランスポートストリームであってもよいし、記録装置がデジタル入力したトランスポートストリームをパーシャル化することで得られるトランスポートストリームであってもよい。
リアルタイムレコーディングを実行する記録装置は、ビデオ信号をエンコードしてビデオストリームを得るビデオエンコーダと、オーディオ信号をエンコードしてオーディオストリームを得るオーディオエンコーダと、ビデオストリーム、オーディオストリーム等を多重化して、MPEG2-TS形式のデジタルストリームを得るマルチプレクサと、MPEG2-TS形式のデジタルストリームを構成するTSパケットをソースパケットに変換するソースパケッタイザとを備え、ソースパケット形式に変換されたMPEG2デジタルストリームをAVクリップファイルに格納してBD-RE,BD-R等に書き込む。
デジタルストリームの書き込みと共に、記録装置の制御部は、メモリ上でクリップ情報やプレイリスト情報を生成する処理を行う。具体的には、ユーザによって録画処理が要求された際、制御部は、AVクリップファイル及びクリップ情報ファイルをBD-RE,BD-R上にクリエイトする。
そして、装置外部から入力されるトランスポートストリームからビデオストリームにおけるGOPの先頭位置が検出されるか、エンコーダによってビデオストリームのGOPが生成されれば、記録装置の制御部は、このGOPにおいて、先頭に位置するイントラピクチャのPTSと、このGOPの先頭部分を格納したソースパケットのパケット番号とを取得して、このPTS及びパケット番号の組みを、EP_PTSエントリー及びEP_SPNエントリーの組みとして、クリップ情報ファイルのエントリーマップに追記する。以降、GOPが生成される度に、EP_PTSエントリー及びEP_SPNエントリーの組みを、クリップ情報ファイルのエントリーマップに追記してゆく。この際、GOPの先頭がIDRピクチャである場合は、“オン”に設定されたis_angle_changeフラグをEP_PTSエントリー及びEP_SPNエントリーの組みに追加する。GOPの先頭がIDRピクチャでなければ場合は、“オフ”に設定されたis_angle_changeフラグをEP_PTSエントリー及びEP_SPNエントリーの組みに追加する。
また、クリップ情報ファイルにおけるストリームの属性情報については、記録されるべきストリームの属性に従い設定する。以上のようにしてAVクリップ、クリップ情報が生成されてBD-RE,BD-Rに書き込まれれば、このクリップ情報内のエントリーマップを介して、再生経路を定義するプレイリスト情報を生成し、BD-RE,BD-Rに書き込む。このような処理を、リアルタイムレコーディング技術において実行することで、AVクリップ−クリップ情報−プレイリスト情報という階層構造をBD-RE,BD-R上に得ることができる。
<マネージドコピーを実現する記録装置としての実施>
各実施の形態で説明した再生装置は、マネージドコピーによってデジタルストリームの書き込む機能を有していてもよい。
マネージドコピーとは、BD-ROM等の読み出し専用記録媒体に記録されているデジタルストリームやプレイリスト情報、クリップ情報、アプリケーションプログラムを、別の光ディスク(BD-R,BD-RE,DVD-R,DVD-RW,DVD-RAM等)やハードディスク、リムーバブルメディア(SDメモリカード、メモリスティック、コンパクトフラッシュ(登録商標)、スマートメディア、マルチメディアカード等)などの読み書き可能な記録媒体へコピーする際、サーバと通信を行い、認証が行われ許可された状態においてのみコピー実行可能にする技術である。この技術により、バックアップ回数を制限したり、課金された状態でのみバックアップを許したりする等の制御を行うことができる。
BD-ROMからBD-R,BD-REへのコピーを実現する場合、コピー元と、コピー先とで記録容量が同じであるなら、マネージドコピーにおいては、コピー元となるBD-ROMにおけるビットストリームを最内周から最外周まで、順次コピーしてゆくという動作で足りる。
マネージドコピーが、異種媒体間のコピーを想定したものであるなら、トランスコードが必要になる。ここで“トランスコード”とは、BD-ROMに記録されているデジタルストリームの形式をMPEG2トランスポートストリーム形式からMPEG2プログラムストリーム形式等に変換したり、ビデオストリーム及びオーディオストリームに割り当てられているビットレートを低くして再エンコードすることにより、デジタルストリームを、コピー先メディアのアプリケーションフォーマットに適合させたりする処理をいう。かかるトランスコードにあたっては、上述したリアルタイムレコーディング技術の処理を行うことで、AVClip、Clip情報、プレイリスト情報を得る必要がある。
<オンデマンドマニュファクチャサービス又は電子的セルスルーサービス(MODEST)で使用される記録装置>
再生装置200がオンデマンドマニュファクチャサービス又は電子的セルスルーサービス(MODEST)の供給を受ける機能をもつ場合、BD-Jオブジェクトの書き込みを以下のように行う。つまり再生装置200がオンデマンドマニュファクチャサービス又は電子的セルスルーサービスによってBD-Jオブジェクトの供給を受ける際、リムーバブルメディアにおけるルートディレクトリの配下に、デフォルトのディレクトリと、MODESTディレクトリとをクリエイトして、MODESTディレクトリの配下に、BDMVディレクトリをクリエイトする。MODESTディレクトリは、ファーストMODESTディレクトリであり、ファーストMODESTディレクトリは、前記サービスを初めて受けた際、クリエイトされるMODESTディレクトリである。ユーザが2回目以降にサービスを受ける際、再生装置200における制御部は、2回目以降のサービスに対応するMODESTディレクトリをクリエイトする。
そして、上述したように、GUI管理テーブルが記述されたBD-Jオブジェクトを取得すると、制御部は、デフォルトディレクトリにスタートアッププログラムを書き込み、MODESTディレクトリ配下のBDMVディレクトリにBD-Jオブジェクトを書き込む。このスタートアッププログラムは、記録媒体が再生装置200に装填された際、最初に実行されるべきプログラムであり、BDMVディレクトリを選択する操作をユーザから受け付けるためのメニューを再生装置200に表示させて、ルート変更機能を再生装置200に実行させる。このルート変更機能は、メニューに対する選択操作がユーザによってなされた場合、選択されたBDMVディレクトリが属するMODESTディレクトリをルートディレクトリとして認識させる機能である。かかるルート変更機能によって、BD-ROMを再生するのと同じ制御手順によって取得したBD-Jオブジェクトに基づく再生制御を実行することができる。
<データ構造の記述の仕方>
各実施の形態に示したデータ構造のうち、ある決まった型の情報が複数存在するという繰り返し構造は、for文に、制御変数の初期値と、繰り返し条件とを設定することで定義することができる。
また、所定の条件が成立する際、ある決まった情報を定義するという任意的なデータ構造は、if文に、その成立すべき条件と、条件成立時に設定すべき変数とを、if文を用いて記述することができる。このように、各実施の形態に示したデータ構造は、高級プログラミング言語の文法によって記述することができるので、各実施の形態に示したデータ構造は、構文解析、最適化、資源割付、コード生成といった、コンパイラによる翻訳過程を経て、上記プログラムと同様、コンピュータが読み取り可能なコンピュータコードに変換された状態で記録媒体に記録される。こうして、高級プログラミング言語によって記述されたデータ構造は、オブジェクト指向言語においては、クラス構造体のメソッド以外の部分、つまり、クラス構造体における配列型のメンバー変数として扱われ、プログラムの一部をなす。つまり、各実施形態のデータ構造は、コンピュータコードに変換されて記録媒体に記録され、プログラムのメンバー変数となるため、実質的にはプログラムと同じものであり、コンピュータ関連発明として保護を受けるものである。
<プログラムにおけるプレイリスト情報、クリップ情報の位置付け>
プレイリスト情報に基づきAV再生を行う実行形式のプログラムは、記録媒体からメモリにロードされ、コンピュータによる実行に供された際、メモリ上において、textセクション、dataセクション、bssセクション、stackセクションといった複数のセクションから構成されることになる。
textセクションは、プログラムコード列や、初期値、書き換えられることがないデータから構成される。
dataセクションは、初期値をもち、実行中に書き換えられる可能性があるデータが配置される。記録媒体において、ファイルに格納され、随時アクセスされるようなデータは、このdataセクションに格納される。
bssセクションは、初期値をもたないデータが配置される。textセクションは、bssセクションのデータをアドレス指定でアクセスするため、コンパイル、リンク時に決定したRAMに、bssセクションのための領域を確保せねばならない。
stackセクションは、必要に応じて一時的にプログラムに与えられる領域であり、各フローチャートの処理を実現するにあたって、一時的に使用されるようなローカル変数は、ここに格納される。
bssセクションは、プログラムの初期化時に、初期値が設定され、stackセクションは、プログラムの初期化時に、必要領域が確保される。
プレイリスト情報及びクリップ情報は、上述したようにコンピュータコードに変換されて記録媒体に記録されているため、プログラムの実行時において、上述したtextセクションにおける“書き換えられることのないデータ”、又は、上述したdataセクションにおける“ファイルに格納され、随時アクセスされるようなデータ”として管理されることになる。各実施形態に示したプレイリスト情報、クリップ情報は、プログラムの実行時において、プログラムの構成要素となるべきものであり、プレイリスト情報、クリップ情報は、単なるデータの提示に該当しない。
上記実施の形態及び上記補足をそれぞれ組み合わせるとしてもよい。
本発明は、3D映像コンテンツを記録する記録媒体に適用可能であり、特に、レフトビュー及びライトビューのPGストリームにより3Dキャラクターの立体視を実現する場合に有効である。
100 BD-ROM
200 再生装置
300 テレビ
400 液晶シャッタゴーグル
500 リモコン
201 BDドライブ
202 HDMIインタフェース
203 再生状態/設定レジスタセット
204 不揮発メモリ
205 静的シナリオメモリ
206 再生制御エンジン
207 ヒープメモリ
208 BD-Jプラットフォーム
209 動的シナリオメモリ
210 モード管理モジュール
211 コマンドインタプリタ
212 UO検知モジュール
1 再生部
2 Read Buffer
3 PID Filter
4a,4b,4c,4d,4e Transport Buffer
4f 周辺回路
5a Video Decoder for Left view
5b Video Decoder for Right view
6a Video Plane(L)
6b Video Plane(R)
7 切り替え器
8a Graphics Decoder for Left view
8b Graphics Decoder for Right view
9a Graphics Plane for Left view
9b Graphics Plane for Right view
10a CLUT UNIT for L
10b CLUT UNIT for R
11a OFFSET UNIT for L
11b OFFSET UNIT for R
12 CLUT出力切り替え器
13 加算器
14 Audio Decoder
本発明は、再生装置において2グラフィクスデコーダ構成を採用した場合のグラフィクスの立体視に関する。
近年、次世代光ディスク規格であるBlu−ray Disc(以下、「BD」という)の普及が加速している。BD-ROM規格に準拠した再生装置では、当該再生装置に接続されたディスプレイなどの表示装置に、字幕やグラフィクスが重ね合わされた、高画質なビデオストリームを出力することで、高い臨場感を持つ映像を楽しむことができる(例えば特許文献1参照)。
一方、表示装置の技術動向として、フラットな映像だけではなく、飛び出るような映像を楽しむことができる立体視ディスプレイが普及し始めている。立体視ディスプレイにはさまざまな方式があるが、基本的な原理としては、レフトビューとライトビューとで左右の目に異なる絵を見せる仕組みを導入し、両目間の視差を利用することにより、立体的な映像を擬似的に作るものである。
WO2005−119675号公報
ところで、ビデオと合成して再生されるべきグラフィクスの立体視表示をどのように行わせるかという問題がある。ここでグラフィクスが、字幕やメニューであれば、非圧縮グラフィクスであるグラフィクスオブジェクトを構成する画素データの座標を、レフトビュー再生時と、ライトビュー再生時とでそれぞれシフトさせることで、字幕やメニューを画面から手前に見せることができる。ところがこの座標シフトでは、グラフィクスが平面的な状態のまま手前に見えるだけで、グラフィクスそのものが立体的に見える訳ではない。
近年の映画作品では、字幕を主たる用途として導入されているPresentation Graphicsストリームのデータ構造を用いて、映画作品内の登場人物と緻密に同期するようなアニメーショングラフィクスを実現している例がある。
グラフィクスが例えばアニメーションキャラクターを表す場合には、座標シフトによる立体視では、平面的なキャラクターが手前に見えるにすぎず、アニメーションキャラクターの顔のくぼみや鼻の出っ張り具合などを立体的に再現することができない。そのため、アミューズメントの用途では物足りないという意見がある。
そこで、アニメーションキャラクターを立体的に見せるために、レフトビュー用のグラフィクスデータ及びライトビュー用のグラフィクスデータのそれぞれを1つのグラフィクスストリーム内に組込んでおいて、このグラフィクスストリームをデコードすることにより、立体視を実現させるという考えがある。
しかしながら、この考えでは、グラフィクスデコーダにおけるデコードの負荷が二倍になるため、グラフィクスデコーダの動作の基準となるクロック周波数を高くせねばならず、製品の低コスト化を妨げる。
クロック周波数の高周波数化を避けるには、グラフィクスデータを2ストリーム構成にし、尚且つ再生装置を2デコーダ構成にすればよい。つまり、レフトビュー用のグラフィクスデータとライトビュー用のグラフィクスデータとを、個別のグラフィクスストリームに組み込んでおき、また、再生装置には2つのグラフィクスデコーダを装備させる。そして、この2つのグラフィクスストリームを、2つのグラフィクスデコーダに処理させれば、クロック周波数をそれ程高くしなくても、再生装置にレフトビュー及びライトビューのグラフィクスデータをデコードさせることができる。
ところが、再生装置において2デコーダ構成を採用した場合、ランダムアクセスの際のグラフィクスの立体視が保証されないという問題がある。この問題について具体的に説明する。レフトビュー用及びライトビュー用のグラフィクスストリームはそれぞれ、ディスプレイセット(以下、「DS」という)を複数含んで構成され、各DSは、一画面分のグラフィクスの表示に用いられるべきデータ群である。このDSには複数の類型があり、一画面分のグラフィクスの表示に必要な全てのデータを含んでいるDSや、直前のDSからの差分のみを含むDSがある。直前のDSからの差分のみを含むDSは、単独ではグラフィクス全体の表示を行えない。ここで、レフトビューから見える像とライトビューから見える像とでは見え方に差があるため、一方のDSでは、直前のDSからのアニメーションキャラクターの変化が大きく、一画面分のグラフィクスの表示に必要な全てのデータを含んでいる場合であっても、他方のDSでは、死角によりアニメーションキャラクターの変化が大きくなく、直前のDSからの差分のみを含んでいればよい場合も考えられる。
そうすると、再生装置において、これらのDSから頭出しをする場合に、一方のグラフィクスについては正しくデコードすることができても、他方に関しては再生に必要なデータがデコーダに供給されずデコードすることができない、といった問題が発生し得る。その結果、ランダムアクセス時におけるグラフィクスの立体視が不可能になる場合がある。
本発明は、ランダムアクセス時のグラフィクスの立体視を保証する記録媒体を提供することを目的とする。
上記目的を達成するために、本発明の一実施態様である記録媒体は、ビデオストリームと、レフトビューグラフィクスストリーム及びライトビューグラフィクスストリームとが記録された記録媒体であって、前記レフトビューグラフィクスストリーム及び前記ライトビューグラフィクスストリームは、何れも1つ以上のディスプレイセットを含み、前記各ディスプレイセットは、一画面分のグラフィクスオブジェクトの表示に用いられるデータ群であり、前記レフトビューグラフィクスストリームに含まれる1つ以上のディスプレイセットは、前記ライトビューグラフィクスストリームに含まれる1つ以上のディスプレイセットと1対1で対応しており、対応するディスプレイセットには、前記ビデオストリームの再生時間軸上において同一の再生時間が設定されており、前記各ディスプレイセットは、一画面分のグラフィクスオブジェクトの表示に必要な全てのデータを含んでいるか、直前のディスプレイセットからの差分であるかを示す状態情報を含み、前記レフトビューグラフィクスストリームと前記ライトビューグラフィクスストリームとで対応するディスプレイセットに含まれる状態情報が、同一の内容を示していることを特徴とする。
上記課題を解決するための手段に記載の構成により、レフトビューグラフィクスストリームの各ディスプレイセットの状態情報と、当該ディスプレイセットに対応する、ライトビューグラフィクスストリームのディスプレイセットの状態情報とが、同一の内容を示している。そのため、一方のグラフィクスストリームのディスプレイセットにおいて、その状態情報が、一画面分のグラフィクスの表示に必要な全てのデータを含んでいることを示すものである場合には、対応する、他方のグラフィクスストリームのディスプレイセットにおいても、その状態情報は、一画面分のグラフィクスの表示に必要な全てのデータを含んでいるものであることを示す。
したがって、これらのディスプレイセットを頭出しがなされることが判明している位置に配置することで、ランダムアクセスの際、一方のグラフィクスストリームがデコード可能であれば、必ず、他方のグラフィクスストリームのデコードも可能となる。ゆえに、ランダムアクセス時におけるグラフィクスの立体視を保証することができる。
ホームシアターシステムの構成を示す図である。 BD-ROMの内部構成を示す図である。 BD-ROMのアプリケーションフォーマットを示す図である。 レフトビューストリーム、ライトビューストリームを構成する各ソースパケットがどのような過程を経てAVデータ領域に書き込まれるかを示す図である。 BD-ROMの物理単位と、1つのファイルエクステントを構成するソースパケットとの対応関係を示す図である。 TSパケットのパケットIDがとりうる複数の数値範囲と、各数値範囲のパケットIDをもつTSパケットのPESストリーム種別とを対応付けて示す図である。 インターリーブ配置の一例を示す図である。 立体視のためのベースビューストリーム、エンハンスドビューストリームの内部構成の一例を示す図である。 ゴーグルの透光/遮光を、図8のタイミングに従って切り替えることにより、どのような映像が再生に供されるかを示す図である。 目の残像反応により形成される立体映像を示す図である。 PGストリームの構成を示す図である。 様々な種別の機能セグメントにて構成される論理構造を示す図である。 ODS、PDSのデータ構造を示す。 WDS、PCSのデータ構造を示す。 レフトビューPGストリームとライトビューPGストリームとで対応するDSにおけるDSの類型、composition_number、及びforced_on_flagを示す図である。 レフトビューのDSに属するWDS、PCSの記述例を示す図である。 ライトビューのDSに属するWDS、PCSの記述例を示す図である。 レフトビューPGストリームとライトビューPGストリームとで対応するDSのobject_idを示す図である。 DSnが割り当てられた、AVClipの再生時間軸を示す図である。 クリップ情報ファイルの一例を示す図である。 エントリーマップテーブルの内部構成を示す図である。 エントリーマップによるエントリーポイントの登録を示す。 レフトビュー及びライトビューのそれぞれに対応するエントリーマップが、どのように設定されているかを示す図である。 プレイリスト情報のデータ構造を示す図である。 サブパス情報テーブルの内部構成を示す図である。 レフトビュー、ライトビューに対して、どのような再生区間が定義されているかを示す。 ビデオストリーム番号テーブルの内部構成を示す図である。 STN_tableにおけるPGストリーム情報テーブルの内部構成を示す。 プレイリスト情報におけるエクステンションデータの内部構成を示す図である。 ビデオストリーム番号テーブルの内部構成を示す図である。 再生装置の内部構成を示す図である。 再生部1の内部構成を示す図である。 プレイリス再生処理の処理手順を示すフローチャートである。 STN_table_extensionに基づく再生手順を示すフローチャートである。 装置状態変化時及びストリーム変化の要求時におけるPSR2の設定手順を示すフローチャートである。 PSR2設定手順を示すフローチャートである。 変形例1−1における再生部1の内部構成を示す図である。 IGストリームの構成を示す図である。 様々な種別の機能セグメントにて構成される論理構造を示す図である。 ICSとInteractive_compositionとの対応関係を示す図である。 ICSの内部構成を示す図である。 複数ページのうち、任意のもの(x枚目のページ)についてのページ情報の内部構成を示す図である。 レフトビューのDSに属するICSの記述例を示す図である。 ライトビューのDSに属するICSの記述例を示す図である。 実施の形態2における再生部1の内部構成を示す図である。 レフトビューPGストリーム及びライトビューPGストリームの多重化順序の制限に関する図である。 PCSのデータ構造の変形例を示す図である。 3D-PCSを含むDSを示す図である。
以下、図面を参照しながら本発明の実施の形態を説明する。
(実施の形態1)
<全体構成>
図1は、記録媒体及び再生装置の使用行為についての形態を示す図である。図1(a)に示すように、記録媒体の一例であるBD-ROM100、及び再生装置200は、テレビ300、液晶シャッタゴーグル400、リモコン500と共にホームシアターシステムを構成し、ユーザによる使用に供される。
BD-ROM100は、上記ホームシアターシステムに、例えば映画作品を供給する。
再生装置200は、テレビ300と接続され、BD-ROM100を再生する。
テレビ300は、映画作品の再生映像を表示したり、メニュー等を表示したりすることで、対話的な操作環境をユーザに提供する。
液晶シャッタゴーグル400は、液晶シャッタと、制御部とから構成され、ユーザの両目における視差を用いて立体視を実現する。液晶シャッタゴーグル400の液晶シャッタは、印加電圧を変えることにより、光の透過率が変化する性質を有する液晶レンズを用いたシャッタである。液晶シャッタゴーグル400の制御部は、ライトビュー用の画像とレフトビュー用の画像の出力切り替えのための同期信号を再生装置から受信し、この同期信号に従って、第1の状態と第2の状態とを切り替える。
図1(b)は、第1の状態を示す。第1の状態とは、ライトビューに対応する液晶レンズが光を透過しないように印加電圧を調節し、レフトビューに対応する液晶レンズが光を透過するように印加電圧を調節した状態である。この状態において、レフトビュー用の画像が視聴に供されることになる。
図1(c)は、第2の状態を示す。第2の状態とは、ライトビューに対応する液晶レンズが光を透過するように印加電圧を調節し、レフトビューに対応する液晶レンズが光を透過しないように印加電圧を調節した状態である。この状態において、ライトビュー用の画像が視聴に供されることになる。
一般的に、ライトビューから見える像とレフトビューから見える像には見え方に若干の差がある。これは、ライトビューとレフトビューとの位置の差に起因する。そして、この差を利用して、人間は、目に見える像を立体として認識できるのである。そこで、液晶シャッタゴーグル400が、以上のような第1の状態と第2の状態との切り替えを、ライトビュー用の画像とレフトビュー用の画像の出力の切り替えタイミングに同期させれば、ユーザは、平面的な表示が立体的に見えると錯覚する。
次に、ライトビュー映像、及びレフトビュー映像を表示するにあたっての時間間隔について説明する。
具体的には、平面表示の画像において、ライトビュー用の画像とレフトビュー用の画像には、人間の両目の視差による見え方の差に相当する程度の差があり、これらの画像を短い時間間隔で切り替えて表示することにより、あたかも立体的な表示がなされているように見えるのである。
この短い時間間隔というのは、上述の切り替え表示により人間が立体的に見えると錯覚する程度の時間であればよい。
図1(a)に戻って、リモコン500は、階層化されたGUIに対する操作をユーザから受け付ける機器であり、かかる操作受け付けのため、GUIを構成するメニューを呼び出すメニューキー、メニューを構成するGUI部品のフォーカスを移動させる矢印キー、メニューを構成するGUI部品に対して確定操作を行う決定キー、階層化されたメニューをより上位のものにもどってゆくための戻りキー、及び数値キーを備える。
以上がホームシアターシステムについての説明である。
<記録媒体>
続いて、再生装置200が再生の対象としている記録媒体について説明する。再生装置200により再生されるのは、BD-ROM100である。図2は、BD-ROM100の内部構成を示す図である。
第1段目は、多層化された光ディスクであるBD-ROMを示し、第2段目は、各記録層上に存在する螺旋トラックを水平方向に引き伸ばして描いている。この螺旋トラックは、1つの連続した記録領域として扱われる。この記録領域は、最内周に位置するリードイン、最外周に位置するリードアウト、この間に存在する第1記録層の記録領域、第2記録層の記録領域、第3記録層の記録領域から構成される。
第3段目は、BD-ROMにおけるファイルシステム領域を示す。ファイルシステム領域は、"ボリューム管理領域"と、"論理アドレス空間"とから構成される。
"ボリューム管理領域"は、第1記録層の記録領域、第2記録層の記録領域、及び第3記録層の記録領域を、1つの連続したファイルシステム空間として扱うためのファイルシステム管理情報が記録されている領域である。
"論理アドレス空間"は、セクタが連続する論理ブロック番号(LBN)によって指示されるアドレス空間である。つまり、第2段目における第1記録層の記録領域、第2記録層の記録領域、第3記録層の記録領域は、1つの連続した論理アドレス空間を構成することになる。
第4段目は、ファイルシステム管理領域の論理アドレス空間における領域割り当てを示す。ファイルシステム管理記録のうち、内周側には、非AVデータ記録領域が存在する。非AVデータ記録領域の直後には、AVデータ記録領域が存在する。
第5段目は、これら非AVデータ記録領域及びAVデータ記録領域に記録されるエクステントを示す。AVデータ記録領域には、AVファイルを構成する構成するエクステント(図中のEXT,EXT,EXT・・・・)が存在する。非AVデータ記録領域には、AVファイル以外のファイルを構成するエクステント(図中のEXT,EXT,EXT・・・・)が存在する。
図3は、BD-ROMのアプリケーションフォーマットを示す図である。
「BDMVディレクトリ」は、BD-ROMで扱うAVコンテンツや管理情報などのデータが記録されているディレクトリである。BDMVディレクトリの配下には、「JARディレクトリ」、「BDJOディレクトリ」、「PLAYLISTディレクトリ」、「CLIPINFディレクトリ」、「STREAMディレクトリ」と呼ばれる5つのサブディレクトリが存在し、BDMVディレクトリには、「index.bdmv」、「MovieObject.bdmv」の2種類のファイルが配置されている。
『index.bdmv』は、BD-ROM全体に関する管理情報であり、再生装置へのディスク挿入後に、index.bdmvが最初に読み出されることで、再生装置においてディスクが一意に認識される。加えて、index.bdmvは、BD-ROMにおいて再生可能となる複数タイトルのタイトル番号と、個々のタイトルを規定するBD-Jオブジェクト又はムービーブジェクトとの対応付けを示す。
『MovieObject.bdmv』は、1つ以上のムービーオブジェクトを格納している。ムービーオブジェクトは、コマンドインタプリタを制御主体とした動作モード(HDMVモード)において、再生装置が行うべき制御手順を規定する管理オブジェクトであり、1つ以上のコマンドと、GUIに対するメニューコール、タイトルコールがユーザによってなされた場合、これらのコールをマスクするかどうかを規定するマスクフラグを含む。
『JARディレクトリ』は、アーカイブファイルに対応するJARファイルが配置されるディレクトリである。アーカイブファイルは、1つ以上のクラスファイル、1つ以上のデータファイル等を1つにまとめることで得られるファイルである。1つ以上のクラスファイル、1つ以上のデータファイル等は例えば、アーカイバ(図示せず)により、1つにまとめることができる。
ここでは、アーカイブファイルの一例として、Java(登録商標)のアーカイブファイルを例に説明をする。
例えば、再生装置が備えるバイトコードインタプリタであるJava(登録商標)仮想マシンを制御主体とした動作モード(BD-Jモード)において、再生装置が行うべき制御手順を規定する。JARファイルを格納したファイルは、5桁の数字zzzzzと、拡張子jarとによって識別される。
『BDJOディレクトリ』は、バイトコードインタプリタであるJava(登録商標)仮想マシンを制御主体とした動作モード(BD-Jモード)において、再生装置が行うべき制御手順を規定する管理オブジェクト(BDJオブジェクト)を格納したファイルが格納されるディレクトリである。BDJオブジェクトを格納したファイルは、5桁の数字zzzzzと、拡張子bdjoとによって識別される。
『PLAYLISTディレクトリ』は、ベースビュービデオストリームに対する再生区間を指定するメインパス情報、エンハンスドビュービデオストリームに対する再生区間を指定するサブパス情報を含むプレイリスト情報を格納したファイルが配置される。このプレイリスト情報を格納したファイルは、"yyyyy"という5桁の識別番号と、拡張子"mpls"とによって識別される。ここでベースビュービデオストリームとは、レフトビュー又はライトビューを構成するビデオストリームのうち、平面視表示を実現しうるものである。一方、ライトビュー又はレフトビューを構成するビデオストリームのうち、ベースビュービデオストリームではないものを"エンハンスドビュービデオストリーム"という。エンハンスドビュービデオストリームを構成するピクチャデータは、ベースビュービデオストリームを構成するピクチャデータとのフレーム相関性に基づき圧縮符号化されている。
このような視点間の相関を利用したビデオ圧縮の方法としては、Multiview Video Coding(MVC)と呼ばれるMPEG-4 AVC/H.264の修正規格がある。ISO/IECMPEGとITU-T VCEGの共同プロジェクトであるJoint Video Team(JVT)は、2008年7月にMultiview VideoCoding(MVC)と呼ばれるMPEG-4 AVC/H.264の修正規格の策定を完了した。MVCは、複数視点の映像をまとめて符号化する規格であり、映像の時間方向の類似性だけでなく視点間の類似性も予測符号化に利用することで、複数視点の独立した圧縮に比べて圧縮効率を向上している。
ベースビュー、エンハンスドビューを構成するストリームは、ビデオストリームだけではない。プレゼンテーショングラフィクス(PG)ストリームも、ベースビュー、エンハンスドビューを構成する。以降、ベースビュービデオストリームとベースビューPGストリームとを併せて、"ベースビューストリーム"と呼ぶ。また、エンハンスドビュービデオストリームとエンハンスドビューPGストリームとを併せて、"エンハンスドビューストリーム"と呼ぶ。
『CLIPINFディレクトリ』は、クリップ情報を格納したファイル(クリップ情報ファイル)が配置されるディレクトリである。クリップ情報ファイルは、"xxxxx"という5桁の識別番号と、拡張子"clpi"とによって識別される。このクリップ情報ファイルの内部には、レフトビューのビデオストリーム及びライトビューのビデオストリームのそれぞれに対応するエントリーマップが存在する。
以上のディレクトリに存在するファイルを構成するエクステントは、非AVデータ領域に記録される。
『STREAMディレクトリ』は、平面視ビデオストリームを格納したAVクリップファイル、及び立体視ビデオストリームを格納したAVクリップファイルが配置されるディレクトリである。平面視ビデオストリームを格納したファイルは、"xxxxx"という5桁の識別番号と、拡張子"m2ts"とによって識別される。立体視ビデオストリームを格納したファイルは、"xxxxx"という5桁の識別番号と、拡張子"ilts"とによって識別される。
STREAMディレクトリに格納されるベースビューストリームのファイルを構成するエクステント、STREAMディレクトリに格納されるべきエンハンスドビューストリームのファイルを構成するエクステントは、AVデータ記録領域に記録される。
図4は、ベースビューストリームを構成する各ソースパケット、及びエンハンスドビューストリームを構成する各ソースパケットがどのような過程を経てAVデータ領域に書き込まれるかを示す。本図の第1段目は、ベースビューストリームまたはエンハンスドビューストリームを構成するTSパケットを示す。
ベースビューストリームまたはエンハンスドビューストリームを構成する188バイトのTSパケットは、第2段目に示すように4バイトのTS_extra_header(図中のハッチング部)が付されて、192バイト長のソースパケットになる。このTS_extra_headerは、当該TSパケットのデコーダ入力時刻情報を示すArrival_Time_Stampを含む。
ベースビューストリームまたはエンハンスドビューストリームを構成するソースパケットは、1つ以上の"ATCシーケンス"を構成する。"ATCシーケンス"とは、ATSの時間軸を構成するソースパケットの配列であって、そのArrival_Time_Stampが参照しているArrival_Time_Clockに、不連続点(noarrival time-base discontinutiy)が存在しないものをいう。言い換えれば、そのArrival_Time_Stampが参照しているArrival_Time_Clockに、連続性が存在するソースパケット列を"ATCシーケンス"という。ATSは、TSパケットの先頭につけられ、デコーダへの転送時刻を示す。
かかるATCシーケンスがAVクリップになり、xxxxx.m2tsというファイル名で記録層に記録される。
かかるAVクリップは、通常のコンピュータファイル同様、1つ以上のファイルエクステントに分割され、各記録層上の領域に記録される。第3段目はAVクリップを示し、第4段目はAVクリップがどのように各記録層に記録されるかを模式的に示す。この第4段目においてファイルを構成する各ファイルエクステントは、予め定められたサイズ(このサイズを、S_EXTという)以上のデータ長を有する。
図5は、BD-ROMの物理単位と、1つのファイルエクステントを構成するソースパケットとの対応関係を示す図である。第2段目に示すように、BD-ROMのAVファイル記録領域には複数セクタが形成されている。ファイルエクステントを構成するソースパケットは、第1段目に示すように、複数個毎にグループ化されて、連続するセクタに書き込まれる。この複数個のソースパケットを"AlignedUnit"といい、BD-ROMへの書き込みは、Aligned Unit単位でなされる。
第3段目においてセクタは、複数個単位で誤り訂正符号が付され、ECCブロックを構成する。再生装置はAligned Unit単位でBD-ROMをアクセスする限り、複数個の完結したソースパケットを得ることができる。以上がBD-ROMに対するAVクリップの書き込みのプロセスである。
図6(a)は、TSパケットのパケットID(PID)がとりうる複数の数値範囲と、各数値範囲のパケットIDをもつTSパケットのPESストリーム種別とを対応付けて示す図である。
0x0100のパケットIDを有するTSパケットは、プログラムマップ(Program_map)を構成し、0x1001のパケットIDを有するTSパケットは、プログラムクロックレファレンス(PCR)を構成する。
0x1011のパケットIDを有するTSパケットは、ベースビュービデオストリームを構成し、0x1012のTSパケットは、エンハンスドビュービデオストリームを構成する。
0x1100〜0x111FのパケットIDを有するTSパケットは、オーディオストリームを構成する。
0x1220〜x123FのパケットIDを有するTSパケットは、ベースビューPGストリームを構成する。0x1240〜0x125FのパケットIDを有するTSパケットは、エンハンスドビューPGストリームを構成する。なお、平面視のためのグラフィクスPGストリームを構成するTSパケットであって、ベースビューPGストリームになりえないもののパケットIDは、0x1200〜0x121Fの数値範囲となる。
これらのビデオストリームを構成するTSパケット、PGストリームを構成するTSパケットは、ベースビューを構成するもの同士、エンハンスドビューを構成するもの同士でまとめられる。図6(b)は、その一例を示す。
本図に示すように、ベースビューを構成するソースパケットのグループは、0x1011のPIDが付与されたベースビュービデオストリームのソースパケット(図中のVideo)、0x1100のPIDが付与されたオーディオストリームのソースパケット(図中のAudio)、0x1220,0x1221,0x1222,0x1223,0x1224,0x1225,0x1226のPIDが付与されたPGストリームのソースパケット(図中のPG)から構成される。
一方、エンハンスドビューを構成するソースパケットのグループは、0x1012のPIDが付与されたエンハンスドビュービデオストリーム(図中のVideo)のソースパケット、0x1101のPIDが付与されたオーディオストリームのソースパケット(図中のAudio)、0x1240,0x1241,0x1242,0x1243,0x1244,0x1245のPIDが付与されたPGストリームのソースパケット(図中のPG)から構成される。
ベースビュー、エンハンスドビューを構成するソースパケットのグループは、インターリーブ配置される。図7は、インターリーブ配置の一例を示す図である。本図におけるインターリーブ配置とは、ベースビュー、エンハンスドビューを構成するエクステントが、"ベースビュー"、"エンハンスドビュー"、"ベースビュー"、"エンハンスドビュー"・・・・・という規則性をもって記録されていることである。
第1段目は、AVファイルを示し、第2段目は、AVファイルを構成するエクステントEXT_L[i],EXT_L[i+1],EXT_R[i],EXT_R[i+1]を示す。第3段目は、各エクステント内に属するソースパケット列を示し、第4段目は、記録層におけるセクタ列を示す。ここで、括弧書きにおける変数i,i+1は、何番目のエクステントとして再生されるかを示す。この記法からすると、変数iによって指示される2つのエクステント、つまり、EXT_L[i],EXT_R[i]は同時に再生され、変数i+1によって指示される2つのエクステント、つまり、EXT_L[i+1],EXT_R[i+1]は同時に再生されることがわかる。
エクステントEXT_L[i],EXT_L[i+1]は、PID=0x1011のソースパケットによって構成されている。破線の矢印h1,h2,h3,h4は、エクステントEXT_L[i],EXT_L[i+1]が、ベースビューストリーム、エンハンスドビューストリームのうちどちらに帰属するという帰属関係を示す。矢印h1,h2に示される帰属関係によると、エクステントEXT_L[i],EXT_L[i+1]は、ベースビューストリームに帰属していることがわかる。矢印h3,h4に示される帰属関係によると、エクステントEXT_R[i],EXT_R[i+1]は、エンハンスドビューストリームに帰属していることがわかる。
エクステントEXT_L[i]のサイズをSEXT_L[i]と呼び、エクステントEXT_R[i]のサイズをSEXT_R[i]と呼ぶ。
これらSEXT_L、SEXT_Rのサイズをどのように定めるかについて説明する。ここでエクステントは、再生装置においてライトビュー用リードバッファ、レフトビュー用リードバッファという2つのバッファに交互に読み出されてビデオデコーダに供される。そうすると、SEXT_L、SEXT_Rのサイズは、ライトビュー用リードバッファ及びレフトビュー用リードバッファをバッファフルにする時間を考慮して定める必要がある。つまり、ライトビュー用リードバッファへの転送レートを、Rmax1とすると、

ライトビュー用リードバッファ=Rmax1×"ジャンプを伴いながらレフトビュー用リードバッファをフルにする時間"

という関係を満たすよう、ライトビュー用リードバッファの容量を定めねばならない。ここでジャンプとは、ディスクシークと同義である。何故なら、BD-ROMにおいて記録に確保できる連続領域は有限であり、ベースビューストリーム及びエンハンスドビューストリームは、必ずしも、隣合わせで記録されるとは限らず、飛び飛びの領域に記録されることも有り得るからである。
続いて"ジャンプを伴いながらレフトビュー用リードバッファをフルにする時間"について考える。レフトビュー用リードバッファにおけるTSパケット蓄積は、Rud-Rmax2という転送レートでなされる。これは、レフトビュー用リードバッファからの出力レートRmax2と、レフトビュー用リードバッファへの入力レートRudとの差分を意味する。そうすると、レフトビュー用リードバッファをフルにする時間は、RB2/(Rud-Rmax2)となる。
レフトビュー用リードバッファにデータを読み出すにあたっては、ライトビュービデオストリームからレフトビュービデオストリームへのジャンプ時間(Tjump)と、レフトビュービデオストリームからライトビュービデオストリームへのジャンプ時間(Tjump)とを考慮する必要があるので、レフトビュー用リードバッファの蓄積には(2×Tjump+RB2/(Rud-Rmax2))という時間が必要になる。
ライトビュー用リードバッファの転送レートをRmax1とすると、上述したレフトビュー用リードバッファの蓄積時間において、Rmax1という転送レートで、ライトビュー用リードバッファ内の全てのソースパケットは出力されねばならないから、ライトビュー用リードバッファのサイズRB1は、

RB1≧Rmax1×[2×Tjump+RB2/(Rud-Rmax2)]

となる。

同様の手順で、レフトビュー用リードバッファの容量RB2を求めると、

RB2≧Rmax2×[2×Tjump+RB1/(Rud-Rmax1)]

となる。

ライトビュー用リードバッファ、レフトビュー用リードバッファのメモリサイズの具体的な値としては、1.5Mbyte以下であり、本実施の形態においてエクステントサイズSEXT_R、SEXT_Lは、このライトビュー用リードバッファ、レフトビュー用リードバッファのサイズと同じサイズか、またはこれにほぼ等しいサイズに設定されている。以上がベースビューストリーム、エンハンスドビューストリームの記録のされ方についての説明である。
続いて、ベースビューストリーム及びエンハンスドビューストリームの内部構成について説明する。
図8は、立体視のためのベースビューストリーム、エンハンスドビューストリームの内部構成の一例を示す図である。
ベースビューストリーム、エンハンスドビューストリームは例えば、ピクチャデータを含む。ピクチャデータには複数種類があり、Iピクチャ、Pピクチャ、Bピクチャといったピクチャデータを含む。
Iピクチャとは、一画面分のピクチャデータである。
Pピクチャとは、基準となるIピクチャとの差分を示すピクチャデータである。
Bピクチャとは、基準となるIピクチャとPピクチャにより生成されるピクチャデータである。
本図の第2段目は、ベースビューストリームの内部構成を示す。このストリームには、ピクチャデータI1,P2,Br3,Br4,P5,Br6,Br7,P9というピクチャデータが含まれている。
これらのピクチャデータは、DTS(デコーディングタイムスタンプ:デコーダによる復号の開始時刻を示す情報)に従いデコードされる。第1段目は、レフトビュー画像を示す。そうしてデコードされたピクチャデータI1,P2,Br3,Br4,P5,Br6,Br7,P9をPTSに従い、I1,Br3,Br4,P2,Br6,Br7,P5の順序で再生することで、レフトビュー画像が再生されることになる。
第4段目は、エンハンスドビューストリームの内部構成を示す。このセカンダリビデオストリームには、P1,P2,B3,B4,P5,B6,B7,P8というピクチャデータが含まれている。これらのピクチャデータは、DTSに従いデコードされる。第3段目は、ライトビュー画像を示す。そうしてデコードされたピクチャデータP1,P2,B3,B4,P5,B6,B7,P8をPTS(プレゼンテーションタイムスタンプ:ビデオ・オーディオの提示時刻を示す情報)に従い、P1,B3,B4,P2,B6,B7,P5の順序で再生することで、ライトビュー画像が再生されることになる。
第5段目は、液晶シャッタゴーグル400の状態をどのように変化させるかを示す。この第5段目に示すように、レフトビュー映像の視聴時は、ライトビューの液晶シャッタを閉じ、ライトビュー映像の視聴時は、レフトビューの液晶シャッタを閉じていることがわかる。
また、エンハンスドビューストリームは、時間方向の冗長性を利用したピクチャ間予測符号化に加えて、視点間の冗長性を利用したピクチャ間予測符号化によって圧縮されている。すなわち、エンハンスドビューストリームのピクチャは、ベースビューストリームの同じ表示時刻のピクチャを参照して圧縮されている。
例えば、エンハンスドビューストリームの先頭Pピクチャは、ベースビューストリームのIピクチャを参照し、エンハンスドビューストリームのBピクチャは、ベースビューストリームのBrピクチャを参照し、エンハンスドビューストリームの二つ目のPピクチャは、ベースビューストリームのPピクチャを参照している。
図9は、ゴーグルの透光/遮光を、図8のタイミングに従って切り替えることにより、どのような映像が再生に供されるかを示す図である。ここでフレーム表示期間が、1/24秒であり、ゴーグルにおけるライトビュー、レフトビューの透光/遮光を、1/48秒おきに変化させれば、ライトビュー、レフトビューのピクチャは、それぞれ交互に現れることになる。図9に示されるレフトビューの画像及びライトビューの画像は、画像内に現れる人物の顔の向きや位置が、レフトビュー画像と、ライトビュー画像とで僅かながらずれていることを模式的に示している(なお、図9、図10における人物の顔の向きや位置のズレは模式的なものである)。
図10は、目の残像反応により形成される立体映像を示す図である。ゴーグルの透光/遮光を、図8のタイミングに従って切り替えることにより、立体映像として認識することができる。
続いてPGストリームについて説明する。図11は、PGストリームの構成を示す図である。図11(a)の第1段目は、AVClipを構成するTSパケット列を示す。第2段目は、PGストリームを構成するPESパケット列を示す。第2段目におけるPESパケット列は、第1段目におけるTSパケットのうち、所定のPIDをもつTSパケットからペイロードを取り出して、連結することにより構成される。
第3段目は、PGストリームの構成を示す。PGストリームは、PCS(Presentation Composition Segment)、WDS(WindowDefinition Segment)、PDS(Palette Difinition Segment)、ODS(Object DefinitionSegment)、END(END of Display Set Segment)と呼ばれる機能セグメントからなる。これらの機能セグメントのうち、PCSは、画面構成セグメントと呼ばれ、WDS,PDS,ODS,ENDは定義セグメントと呼ばれる。PESパケットと機能セグメントとの対応関係は、1対1の関係、または1対多の関係である。つまり機能セグメントは、1つのPESパケットに変換されてBD-ROMに記録されるか、またはフラグメント化され、複数PESパケットに変換されてBD-ROMに記録される。
図11(b)は、機能セグメントを変換することで得られるPESパケットを示す図である。図11(b)に示すようにPESパケットは、『パケットヘッダ』と、『ペイロード』とからなり、このペイロードが機能セグメントの実体にあたる。また、パケットヘッダには、この機能セグメントに対応するDTS、PTSが存在する。以降の説明では、機能セグメントが格納されるPESパケットのヘッダ内に存在するDTS及びPTSを、機能セグメントのDTS及びPTSとして扱う。
これら様々な種別の機能セグメントは、図12のような論理構造を構築する。図12は、様々な種別の機能セグメントにて構成される論理構造を示す図である。本図は第4段目に機能セグメントを、第3段目にDisplaySetの類型を、第2段目にDisplay Setを、第1段目にEpochをそれぞれ示す。第2段目のDisplay Set(DSと略す)とは、PGストリームを構成する複数機能セグメントのうち、一画面分のグラフィクスを構成するものの集合をいう。また、図中の破線kz1は、第4段目の機能セグメントが、どのDSに帰属しているかという帰属関係を示す。PCS-WDS-PDS-ODS-ENDという一連の機能セグメントが、1つのDSを構成していることがわかる。再生装置は、このDSを構成する複数機能セグメントをBD-ROMから読み出せば、一画面分のグラフィクスを構成することができる。
第1段目のEpochとは、AVClipの再生時間軸上においてメモリ管理の連続性をもっている一つの期間、及び、この期間に割り当てられたデータ群をいう。ここで想定しているメモリとは、一画面分のグラフィクスを格納しておくためのグラフィクスプレーン、伸長された状態のグラフィクスデータを格納しておくためのオブジェクトバッファである。これらについてのメモリ管理に連続性があるというのは、このEpochにあたる期間を通じて、これらグラフィクスプレーン及びオブジェクトバッファのフラッシュは発生せず、グラフィクスプレーン内のある決められた矩形領域内でのみ、グラフィクスの消去及び再描画が行われることをいう(※ここでフラッシュとは、プレーン及びバッファの格納内容を全部クリアしてしまうことである)。この矩形領域の縦横の大きさ及び位置は、Epochにあたる期間において、終始固定されている。グラフィクスプレーンにおいて、この固定化された領域内で、グラフィクスの消去及び再描画を行っている限り、映像とグラフィクスとの同期が保障される。つまりEpochは、映像−グラフィクスの同期の保障が可能な再生時間軸上の一単位ということができる。グラフィクスプレーンにおいて、グラフィクスの消去・再描画を行うべき領域を変更したい場合は、再生時間軸上においてその変更時点を定義し、その変更時点以降を、新たなEpochにせねばならない。この場合、2つのEpochの境界では、映像−グラフィクスの同期は保証されない。
また、Epochにおけるグラフィクスの位置関係に例えれば、再生時間軸上において、画面上のある決まった矩形領域内にグラフィクスが出現している期間が、Epochということができる。
以上がEpochについての説明である。続いてDisplay Setについて説明する。
図12における破線hk1,2は、第2段目のDSが、第3段目のDSの類型のうちどの類型と対応しているかを示している。また、Epoch Start、AcquisitionPoint、Normal Caseという一連のDSは、第1段目のEpochを構成していることがわかる。『Epoch Start』、『AcquisitionPoint』、『Normal Case』は、DSの類型である。本図におけるAcquisition Point、Normal Caseの順序は、一例にすぎず、どちらが先であってもよい。
『Epoch Start』は、新たなEpochの開始を示す。そのためEpoch Startは、次の画面合成に必要な全ての機能セグメントを含んでいる。EpochStartは、映画作品におけるチャプター等、頭出しがなされることが判明している位置に配置される。
『Acquisition Point』は、Epochの開始時点ではないが、次の画面合成に必要な全ての機能セグメントを含んでいるDisplay Setである。AcquisitionPointたるDSから頭出しを行えば、グラフィクス表示を確実に実現することができる。つまりAcquisition PointたるDSは、Epochの途中からの画面構成を可能にするという役割をもつ。AcquisitionPointたるDisplay Setは、頭出し先になり得る位置に組み込まれる。そのような位置には、タイムサーチにより指定され得る位置がある。タイムサーチとは、何分何秒という時間入力をユーザから受け付けて、その時間入力に相当する再生時点から頭出しを行う操作である。かかる時間入力は、10分単位、10秒単位というように、大まかな単位でなされるので、10分間隔の再生位置、10秒間隔の再生位置がタイムサーチにより指定され得る位置になる。このようにタイムサーチにより指定され得る位置にAcquisitionPointを設けておくことにより、タイムサーチ時のPGストリーム再生を好適に行うことができる。
『Normal Case』は、前のDisplay Setからの差分のみを含む。例えば、あるDSvのグラフィクスは、先行するDSuと同じ内容であるが、画面構成が、この先行するDSuとは異なる場合、PCSと、ENDのみのDSvを設けて、このDSvをNormalCaseのDSにする。こうすれば、重複するODSを設ける必要はなくなるので、BD-ROMにおける容量削減に寄与することができる。一方、Normal CaseのDSは、差分にすぎないので、NormalCase単独では画面構成を行えない。
続いてDefinition Segment(ODS,WDS,PDS)について説明する。
『Object_Definition_Segment』は、グラフィクスオブジェクトを定義する機能セグメントである。このグラフィクスオブジェクトについて以下説明する。
BD-ROMに記録されているAVClipは、ハイビジョン並みの高画質をセールスポイントにしているため、グラフィクスオブジェクトの解像度も、1920×1080画素という高精細な大きさに設定されている。1920×1080という解像度があるので、BD-ROMでは、例えば劇場上映用の字幕の字体、つまり、手書きの味わい深い字体の字幕表示やアニメーションキャラクターを鮮やかに再現できる。グラフィクスオブジェクトは、複数のランレングスデータからなる。ランレングスデータとは、ピクセル値を示すピクセルコードと、ピクセル値の連続長とにより、画素列を表現したデータである。ピクセルコードは、8ビットの値であり、1〜255の値をとる。ランレングスデータでは、このピクセルコードによりフルカラーの16,777,216色から任意の256色を選んで画素の色として設定することができる。なお、字幕として表示される場合、グラフィクスオブジェクトは、透明色の背景に、文字列を配置することで描画せねばならない。
ODSによるグラフィクスオブジェクトの定義は、図13(a)に示すようなデータ構造をもってなされる。ODSは、図13(a)に示すように、自身がODSであることを示す『segment_type』と、ODSのデータ長を示す『segment_length』と、EpochにおいてこのODSに対応するグラフィクスオブジェクトを一意に識別する『object_id』と、EpochにおけるODSのバージョンを示す『object_version_number』と、『last_in_sequence_flag』と、グラフィクスオブジェクトの一部又は全部である連続バイト長データ『object_data_fragment』とからなる。
グラフィクスストリームのEpochには、同じIDをもつODSが複数含まれる。同じIDをもつ複数のODSは縦横のサイズが同じであり、オブジェクトバッファの共通の領域が割り当てられる。同じIDをもつ複数ODSのうち1つが、この領域に読み出されれば、オブジェクトバッファにおけるODSは、同じIDをもつ後続のODSにより上書きされる。このように、ビデオストリームの再生進行に伴い、オブジェクトバッファ上のODSが、同じ識別子をもつ後続のODSにて上書きされることにより、ODSにおける絵柄は、時間的な変遷を遂げる。同じIDをもつグラフィクスオブジェクトの縦横サイズを同じにするとの制限は、1つのEpoch内の制限に過ぎない。あるEpochに属するグラフィクスオブジェクトと、次のEpochに属するグラフィクスオブジェクトとでは縦横のサイズが変わってもよい。
『last_insequence_flag』、『object_data_fragment』について説明する。PESパケットのペイロードの制限から、PGを構成する非圧縮グラフィクスが1つのODSでは格納できない場合がある。そのような場合、グラフィクスを分割することにより得られた1部分(フラグメント)がobject_data_fragmentに設定される。1つのグラフィクスオブジェクトを複数ODSで格納する場合、最後のフラグメントを除く全てのフラグメントは同じサイズになる。つまり最後のフラグメントは、それ以前のフラグメントサイズ以下となる。これらフラグメントを格納したODSは、DSにおいて同じ順序で出現する。グラフィクスオブジェクトの最後は、last_sequence_flagをもつODSにより指示される。上述したODSのデータ構造は、前のPESパケットからフラグメントを詰めてゆく格納法を前提にしているが、各PESパケットに空きが生じるように、詰めてゆくという格納法であってもよい。以上がODSの説明である。
『Palette_Difinition_Segment(PDS)』は、パレットデータを格納する機能セグメントである。パレットデータとは、1〜255のピクセルコードと、ピクセル値との組合せを示すデータである。ここでピクセル値は、赤色差成分(Cr値),青色差成分(Cb値),輝度成分(Y値),透明度(T値)から構成される。各ランレングスデータが有するピクセルコードを、パレットに示されるピクセル値に置き換えることで、ランレングスデータは発色されることになる。PDSのデータ構造を図13(b)に示す。図13(b)に示すように、PDSは、自身がPDSであることを示す『segment_type』、PDSのデータ長を示す『segment_length』、このPDSに含まれるパレットを一意に識別する『pallet_id』、EpochにおけるEpochのPDSのバージョンを示す『pallet_version_number』、各エントリーについての情報『pallet_entry』からなる。『pallet_entry』は、各エントリーにおける赤色差成分(Cr値),青色差成分(Cb値),輝度成分Y値,透明度(T値)を示す。
続いてWDSについて説明する。
『window_definition_segment』は、グラフィクスプレーンの矩形領域を定義するための機能セグメントである。Epochでは、クリア及び再描画が、グラフィクスプレーンにおけるある矩形領域内で行われている場合のみ、メモリ管理に連続性が生ずることは既に述べている。このグラフィクスプレーンにおける矩形領域は"window"と呼ばれ、このWDSで定義される。図14(a)は、WDSのデータ構造を示す図である。本図に示すようにWDSは、グラフィクスプレーンにおいてウィンドゥを一意に識別する『window_id』と、グラフィクスプレーンにおける左上画素の水平位置を示す『window_horizontal_position』と、グラフィクスプレーンにおける左上画素の垂直位置を示す『window_vertical_position』と、グラフィクスプレーンにおけるウィンドゥの横幅を示す『window_width』と、グラフィクスプレーンにおける縦幅を示す『window_height』とを用いて表現される。
window_horizontal_position、window_vertical_position、window_width、window_heightがとりうる値について説明する。これらが想定している座標系は、グラフィクスプレーンの内部領域であり、このグラフィクスプレーンは、縦:video_height、横:video_widthという二次元状の大きさをもつ。
window_horizontal_positionは、グラフィクスプレーンにおける左上画素の水平アドレスであるので、1〜video_widthの値をとり、window_vertical_positionは、グラフィクスプレーンにおける左上画素の垂直アドレスであるので1〜video_heightの値をとる。
window_widthは、グラフィクスプレーンにおけるウィンドゥの横幅であるので、1〜video_width-window_horizontal_positionの値をとり、window_heightは、グラフィクスプレーンにおける縦幅であるので1〜video_height-window_vertical_positionの値をとる。
WDSのwindow_horizontal_position、window_vertical_position、window_width、window_heightにより、グラフィクスプレーンの何処にウィンドゥを配置するか、ウィンドゥの大きさをどれだけにするかをEpoch毎に規定することができる。そのため、あるEpochに属するピクチャが表示されている期間において、ピクチャ内の絵柄の邪魔にならないように、ピクチャ上の余白にあたる位置に、ウィンドゥが現れるようオーサリング時に調整しておくことができる。これにより、例えばグラフィクスによる字幕表示を見易くすることができる。WDSはEpoch毎に定義可能なので、ピクチャの絵柄に時間的な変動があっても、その変動に応じて、グラフィクスを見易く表示することができる。そのため、結果として、字幕を映像本体に組み込むのと同じレベルにまで映画作品の品質を高めることができる。
続いて『END of Display Set Segment』について説明する。END of Display Set Segmentは、DisplaySetの伝送の終わりを示す指標であり、Display Setにおける機能セグメントのうち、最後のODSの直後に配置される。この END of DisplaySet Segmentの内部構成は、自身が END of Display Set Segmentであることを示す『segment_type』と、当該機能セグメントのデータ長を示す『segment_length』とからなり、これといって説明が必要な構成要素はない。故に図示は省略する。
以上がODS、PDS、WDS、ENDについての説明である。
続いて、PCSについて説明する。PCSは、対話的な画面を構成する機能セグメントである。PCSは、図14(b)に示すデータ構造で構成される。本図に示すようにPCSは、『segment_type』と、『segment_length』と、『composition_number』と、『composition_state』と、『pallet_update_flag』と、『pallet_id』と、『composition_object(1)〜(m)』とから構成される。
『composition_number』は、0から15までの数値を用いてDisplay Setにおけるグラフィクスアップデートを識別する。どのように識別するかというと、Epochの先頭から本PCSまでにグラフィクスアップデートが存在すれば、それらグラフィクスアップデートを経由する度に、インクリメントされるというルールでcomposition_numberは設定される。
『composition_state』は、本PCSから始まるDisplay Setが、Normal Caseであるか、Acquisition Pointであるか、EpochStartであるかを示す。
『pallet_update_flag』は、本PCSにおいてPalletOnly Displey Updateがなされているかどうかを示す。PalletOnlyDispley Updateとは、直前のパレットのみを新たなものに切り換えることでなされるアップデートをいう。本PCSでかかるアップデートがなされれば、本フィールドは"1"に設定される。
『pallet_id』は、PalletOnly Displey Updateに用いられるべきパレットを示す。
『composition_object(1)・・・(m)』は、このPCSが属するDisplay Setにおける画面構成を実現するための制御情報である。図14(b)の破線wd1は、任意のcomposition_object(i)の内部構成をクローズアップしている。この破線wd1に示すように、composition_object(i)は、『object_id_ref』、『window_id_ref』、『forced_on_flag』、『object_cropped_flag』、『object_horizontal_position』、『object_vertical_position』、『cropping_rectangle情報(1)(2)・・・・・(n)』からなる。
『object_id_ref』は、グラフィクスオブジェクト識別子(object_id)の参照値である。この参照値は、composition_object(i)に対応する画面構成を実現するにあたって、用いるべきグラフィクスオブジェクトの識別子を意味する。
『window_id_ref』は、ウィンドゥ識別子(window_id)の参照値である。この参照値は、composition_object(i)に対応する画面構成を実現するにあたって、どのウィンドゥに、グラフィクスオブジェクトを表示させるべきかを示す。
『forced_on_flag』は、再生装置の設定でグラフィクスオブジェクトがOFFになっている際でも強制的に表示されるべきグラフィクスオブジェクトを示す場合に1になる。
『object_cropped_flag』は、オブジェクトバッファにおいてクロップされたグラフィクスオブジェクトを表示するか、グラフィクスオブジェクトを非表示とするかを切り換えるフラグである。"1"と設定された場合、オブジェクトバッファにおいてクロップされたグラフィクスオブジェクトが表示され、"0"と設定された場合、グラフィクスオブジェクトは非表示となる。
『object_horizontal_position』は、グラフィクスプレーンにおけるグラフィクスオブジェクトの左上画素の水平位置を示す。
『object_vertical_position』は、グラフィクスプレーンにおける左上画素の垂直位置を示す。
『cropping_rectangle情報(1)(2)・・・・・(n)』は、『object_cropped_flag』が1に設定されている場合に有効となる情報要素である。破線wd2は、任意のcropping_rectangle情報(i)の内部構成をクローズアップしている。この破線に示すようにcropping_rectangle情報(i)は、『object_cropping_horizontal_position』、『object_cropping_vertical_position』、『object_cropping_width』、『object_cropping_height』からなる。
『object_cropping_horizontal_position』は、グラフィクスプレーンにおけるクロップ矩形の左上画素の水平位置を示す。クロップ矩形は、グラフィクスオブジェクトの一部を切り出すための枠であり、ETSIEN 300 743標準規格における"Region"に相当する。
『object_cropping_vertical_position』は、グラフィクスプレーンにおけるクロップ矩形の左上画素の垂直位置を示す。
『object_cropping_width』は、グラフィクスプレーンにおけるクロップ矩形の横幅を示す。
『object_cropping_height』は、グラフィクスプレーンにおけるクロップ矩形の縦幅を示す。
以上がPCSのデータ構造である。
<2デコーダモデルを採用する場合の制限>
続いて、レフトビューPGストリーム及びライトビューPGストリームのそれぞれについて、上述した各機能セグメントの各フィールドをどのように設定するのかについて説明する。
図15は、レフトビューPGストリームに含まれるDSの類型、composition_number、及びforced_on_flagと、ライトビューPGストリームに含まれるDSの類型、composition_number、及びforced_on_flagとの対応関係を示す図である。本図に示すように、EpochStartであるDS及びAcquisition PointであるDSは必ず、レフトビューとライトビューとがペアで存在するようになっている。なぜなら、EpochStart及びAcquisition Pointは、それ単体でグラフィクスオブジェクトの描写を完結できる単位であり、必ずペアで存在しなければ3D再生ができないからである。つまり、レフトビューのDSがEpochStartである場合には、必ずペアとなるライトビューのDSが存在し、かつ、そのcomposition_stateもEpoch Startでなければならない。
同様に、レフトビューのDSがAcquisition Pointである場合にも、必ずペアとなるライトビューのDSが存在し、かつ、そのcomposition_stateもAcquisitionPointである必要がある。
レフトビューのDSがNormal Caseである場合にも、対応するライトビューのDSはNormal Caseであることが望ましい。
このように、対応するDSの類型を共通にすることで、例えば、ランダムアクセスを行う際の立体視を保証することができる。つまり、レフトビューのDSが例えばEpochStartであれば、これに対応するライトビューのDSもEpoch Startであるので、これらを頭出しがなされることが判明している位置に配置することで、レフトビュー及びライトビューの一方だけがデコード可能であり、他方がデコード不可能であるといった状況を回避することができる。
また、本図に示すように、3Dとしてペアで再生される、レフトビューのDSのcomposition_numberとライトビューのDSのcomposition_numberとは等しくなければならない。このようにレフトビューとライトビューのDSを対応付けるためにcomposition_numberを等しくしておくことで、グラフィクスデコーダは、再生時にどのレフトビューのDSとライトビューのDSを出力すべきか容易に判定できる。
さらに、レフトビューPGストリームのDSにおけるforced_on_flagと、ライトビューPGストリームの対応するDSにおけるforced_on_flagとは、同じ値に設定する必要がある。なぜなら、再生中にライトビューのグラフィクスオブジェクト(あるいはレフトビューのグラフィクスオブジェクト)だけが出力され、それに対応するレフトビューのグラフィクスオブジェクト(あるいはライトビューのグラフィクスオブジェクト)が出力されないと、グラフィクスオブジェクトの立体視が不可能となるからである。
また、画面構成セグメントがPESパケットに格納されていることは既に述べたが、当然ながら、レフトビューのDSに含まれる画面構成セグメントと、これに対応するライトビューのDSに含まれる画面構成セグメントとでは、それら画面構成セグメントを格納した各PESパケットのPTSの値を同一の値にする必要がある。
また、レフトビューのDSのパレット定義セグメントと、これに対応するライトビューのDSのパレット定義セグメントとでは、コード値と、輝度及び色差との対応関係が同一の内容に設定されており、palette_idについても両者で同一になっている。
続いて、WDSの各フィールド、及びPCSにおいて上述した以外のフィールドをどのように記述するかについて説明する。図16、17は、Display Setに属するWDS、PCSの記述例を示す図である。ここでは、グラフィクスがアニメーションキャラクターの場合を例に挙げて説明するが、グラフィクスが、装飾文字等からなる字幕であってもよい。
図16は、レフトビューのDSに属するWDS、PCSの記述例である。図16(a)において、WDSのwindow_horizontal_position(left)、window_vertical_positionは、グラフィクスプレーンにおけるウィンドゥの左上座標を、window_width,window_heightは、ウィンドゥの表示枠の横幅、縦幅を示す。ここで、window_horizontal_position(left)の(left)は、このwindow_horizontal_positionが、対応するライトビューのwindow_horizontal_position(Right)とは異なる値であることを意味する。
図16(a)におけるクロップ情報のobject_cropping_horizontal_position(left),object_cropping_vertical_positionは、オブジェクトバッファにおけるグラフィクスの左上座標を原点とした座標系においてクロップ範囲の基準点を示している。そして基準点からobject_cropping_width、object_cropping_heightに示される範囲(図中の太枠部分)がクロップ範囲になる。クロップされたグラフィクスは、グラフィクスプレーンの座標系においてobject_horizontal_position(left),object_vertical_positionを基準点(左上)とした矩形範囲cp1に配置される。こうすることにより、グラフィクスがグラフィクスプレーンにおけるウィンドゥ内に書き込まれる。これにより、グラフィクスは動画像と合成され表示される。
図17は、ライトビューのDSに属するWDS、PCSの記述例である。図17(a)において、WDSのwindow_horizontal_position(Right)、window_vertical_positionは、グラフィクスプレーンにおけるウィンドゥの左上座標を、window_width,window_heightは、ウィンドゥの表示枠の横幅、縦幅を示す。ここで、window_horizontal_position(Right)の(Right)は、このwindow_horizontal_positionが、対応するレフトビューのwindow_horizontal_position(left)とは異なる値であることを意味する。
図17(a)におけるクロップ情報のobject_cropping_horizontal_position(Right),object_cropping_vertical_positionは、オブジェクトバッファにおけるグラフィクスの左上座標を原点とした座標系においてクロップ範囲の基準点を示している。そして基準点からobject_cropping_width、object_cropping_heightに示される範囲(図中の太枠部分)がクロップ範囲になる。クロップされたグラフィクスは、グラフィクスプレーンの座標系においてobject_horizontal_position(Right),object_vertical_positionを基準点(左上)とした矩形範囲cp2に配置される。こうすることにより、グラフィクスがグラフィクスプレーンにおけるウィンドゥ内に書き込まれる。これにより、グラフィクスは動画像と合成され表示される。
上述のように、WDSについては、Window_width及びwindow_heightが、レフトビューとライトビューとで同じ値に設定されている。ウィンドゥの表示枠の横幅及び縦幅が、レフトビューとライトビューとで異なると、一方ではウィンドゥの表示枠内にグラフィクスが収まるが、他方では収まりきらない場合も考えられ、その場合には、映像とグラフィクスとの同期が保障されないからである。また、グラフィクスプレーンにおけるウィンドゥの左上座標に関して、window_vertical_positionはレフトビューとライトビューとで共通の値になっているが、window_horizontal_positionは、レフトビューとライトビューとで値が異なっている。これは通常、左右の目では水平方向においては物体の見える位置が異なるからである。ただし、グラフィクスの生成の仕方によっては、window_vertical_positionの値がレフトビューとライトビューとで違っていてもよいし、window_horizontal_positionがレフトビューとライトビューとで同じであってもよい。
また、object_cropping_width及びobject_cropping_heightが、レフトビューとライトビューとで同じ値に設定されている。クロップの範囲が異なると、レフトビューとライトビューとでグラフィクスプレーンに配置されたグラフィクスに違いが出るからである。また、クロップ範囲の基準点に関して、object_cropping_vertical_positionはレフトビューとライトビューとで共通の値になっているが、object_cropping_horizontal_positionは、レフトビューとライトビューとで値が異なっている。ただし、object_cropping_vertical_positionの値がレフトビューとライトビューとで違っていてもよいし、object_cropping_horizontal_positionがレフトビューとライトビューとで同じであってもよい。
また、矩形範囲の基準点に関して、object_vertical_positionはレフトビューとライトビューとで共通の値になっているが、object_horizontal_positionは、レフトビューとライトビューとで値が異なっている。これは、上述したように、通常、左右の目では水平方向において物体の見える位置が異なるからである。ただし、グラフィクスの生成の仕方によっては、object_vertical_positionの値がレフトビューとライトビューとで違っていてもよいし、object_horizontal_positionがレフトビューとライトビューとで同じであってもよい。
さらに、図16、17に示すように、レフトビューのグラフィクスと、ライトビューのグラフィクスとは、異なる角度から見たグラフィクスであるので、両者のODSのobject_data_flagmentは、当然異なる。ただし、図18に示すように、object_idには共通の値が設定される。これは、再生装置において2デコーダ構成を採用した場合、グラフィクスコントローラを2つのデコーダで共通にする構成が採用される場合があり得、その場合には、レフトビューとライトビューとで対応するグラフィクスオブジェクトのobject_idを同じ値に設定しておかないと、グラフィクスコントローラは、どのグラフィクスオブジェクト同士が対応関係にあるのか判別できないためである。
以上の制限を加えることで、2デコーダ構成において、レフトビューPGストリームとライトビューPGストリームとによる立体視を実現することができる。
続いて、これらPCS、ODSを有したDisplay Setが、AVClipの再生時間軸上にどのように割り当てられるかについて説明する。Epochは、再生時間軸上においてメモリ管理が連続する期間であり、Epochは1つ以上のDisplaySetから構成されるので、Display SetをどうやってAVClipの再生時間軸に割り当てるかが問題になる。ここでAVClipの再生時間軸とは、AVClipに多重されたビデオストリームを構成する個々のピクチャデータのデコードタイミング、再生タイミングを規定するための想定される時間軸をいう。この再生時間軸においてデコードタイミング、再生タイミングは、90KHzの時間精度で表現される。DisplaySet内のPCS、ODSに付加されたDTS、PTSは、この再生時間軸において同期制御を実現すべきタイミングを示す。このPCS、ODSに付加されたDTS、PTSを用いて同期制御を行うことが、再生時間軸へのDisplaySetの割り当てである。
Epochに属するDisplay Setのうち、任意のDisplay SetをDSnとすると、DSnは、図19に示すようなDTS、PTS設定によりAVClipの再生時間軸に割り当てられる。図19は、DSnが割り当てられた、AVClipの再生時間軸を示す図である。本図においてDSnの始期は、DSnに属するPCSのDTS値(DTS(DSn[PCS]))により示されており、終期は、DSnに属するPCSのPTS値(PTS(DSn[PCS]))により示されている。そしてDSnにおいて最初の表示が行われるタイミングも、PCSのPTS値(PTS(DSn[PCS]))に示されている。AVClip再生時間軸において、ビデオストリームの所望のピクチャが出現するタイミングと、PTS(DSn[PCS])とを一致させれば、DSnの最初の表示は、そのビデオストリームと同期することになる。
PTS(DSn[PCS])は、DTS(DSn[PCS])に、ODSのデコードに要する期間(DECODEDURATION)を足し合わせた値である。
最初の表示に必要なODSのデコードは、このDECODEDURATION内に行われることになる。図19の期間mc1は、DSnに属する任意のODS(ODSm)のデコードがなされる期間を示す。このデコード期間の開始点は、DTS(ODSn[ODSm])により示され、このデコードの終了点は、PTS(ODSn[ODSm])により示される。
以上のような再生時間軸への割り付けを、Epochに属する全てのODSに対して行うことで、Epochは規定されることになる。以上が再生時間軸に対する割り付けについての説明である。
<クリップ情報ファイル>
図20は、クリップ情報ファイルの一例を示す図である。クリップ情報ファイルは、本図に示すようにAVクリップの管理情報であり、AVクリップと1対1に対応し、クリップ情報と、ストリーム属性テーブルと、エントリーマップテーブルとから構成される。
引き出し線zh1は、ストリーム属性テーブルの内部構成をクローズアップして示している。ストリーム属性テーブルには、この引出線に示すように、AVクリップに含まれる各ストリームについての属性情報が、PID毎に登録される。属性情報は、ベースビューストリーム、エンハンスドビューストリーム毎に異なる情報を持つ。
引き出し線zh2は、ベースビューストリームの内部構成をクローズアップして示している。引出線に示すように、PID=0x1011のTSパケットによって構成されるベースビューのストリーム属性情報として、コーディック、解像度、アスペクト比、フレームレートが記述される。
続いて、エントリーマップテーブルの内部構成について説明する。
エントリーマップは、あるパケットIDを用いて特定されるSTC時間軸のうち、任意のソースパケットのソースパケット番号と、STC時間軸におけるPTSとの対応付けを示すテーブルである。
STC時間軸は、デコード時刻、表示時刻を表すMPEG2-TSの時間軸である。AVストリームのシステム基準時刻であるSTC(System TimeClock)の不連続点(system time-base discontinuity)が存在しない1つのソースパケットのまとまりを"STCシーケンス"と呼ぶ。
図21(a)は、エントリーマップテーブルの内部構成を示す図である。引き出し線eh1は、エントリーマップテーブルの内部構成をクローズアップして示している。
引出線eh1に示すように、エントリーマップテーブルには、PID=0x1011のTSパケットによって構成されるベースビューストリームについてのエントリーマップ、PID=0x1012のTSパケットによって構成されるエンハンスドビューストリームについてのエントリーマップというように、複数種別のTSパケットによって構成されるパケッタイズドエレメンタリストリームのそれぞれについて、エントリーマップが存在する。エントリーマップにおいて、一対となるPTSとSPNとの組みを含む情報を"エントリーポイント"と呼ぶ。エントリーポイントは、PTSとSPNとの組みに、当該SPNからのデコードが可能であるか否かを示す表示方式フラグ(is_angle_changeフラグ)を対応付けた情報である。また、先頭を0としてエントリーポイント毎にインクリメントした値を"エントリーポイントID(以下EP_ID)"と呼ぶ。
このエントリーマップを利用することにより、再生装置は、ビデオストリームの時間軸上の任意の地点に対応するソースパケット位置を特定することが出来るようになる。例えば、早送り・巻戻しの特殊再生の際には、エントリーマップに登録されるIピクチャを特定し選択して再生することにより、AVクリップを解析することなく効率的に処理を行うことができる。また、エントリーマップは、AVクリップ内に多重化されるビデオストリーム毎に作られ、PIDで管理される。
引き出し線eh2は、PID=0x1011のエントリーマップの内部構成をクローズアップして示している。EP_ID=0に対応するエントリーポイント、EP_ID=1に対応するエントリーポイント、EP_ID=2に対応するエントリーポイント、EP_ID=3に対応するエントリーポイントを含んで構成される。EP_ID=0に対応するエントリーポイントは、オンに設定されたis_angle_changeフラグと、SPN=3と、PTS=80000とから構成される。EP_ID=1に対応するエントリーポイントは、オフに設定されたis_angle_changeフラグと、SPN=1500と、PTS=270000とから構成される。
EP_ID=2に対応するエントリーポイントは、オフに設定されたis_angle_changeフラグと、SPN=3200と、PTS=360000とから構成される。EP_ID=3に対応するエントリーポイントは、オフに設定されたis_angle_changeフラグと、SPN=4800と、PTS=450000とを含んでいる。
本図(b)は、(a)に示したPID=0x1011のTSパケットに対応するエントリーマップ内の複数のエントリーポイントによって、どのソースパケットを指示されるかを示す。EP_ID=0に対応するエントリーポイントは、SPN=3を指し示しており、このソースパケット番号をPTS=80000と対応付けている。EP_ID=1に対応するエントリーポイントは、SPN=1500を指し示しており、このソースパケット番号をPTS=270000に対応付けている。
EP_ID=2に対応するエントリーポイントは、SPN=3200のソースパケットを指し示しており、このソースパケット番号をPTS=360000に対応付けている。EP_ID=3に対応するエントリーポイントは、SPN=4800のソースパケットを指し示しおり、このソースパケット番号をPTS=450000と対応付けている。
図22は、エントリーマップによるエントリーポイントの登録を示す。第1段目は、STCシーケンスにて規定される時間軸を示す。第2段目は、クリップ情報におけるエントリーマップを示す。第3段目は、ATCシーケンスを構成するソースパケット列を示す。
矢印te1,te2,te3,te4は、STC時間軸における再生時点t1,t11,t21,t31と、エントリーポイントとの対応関係を模式的に示しており、矢印sh1,sh2,sh3,sh4は、ATCシーケンスにおけるSPN=n1,n11,n21,n31と、エントリーポイントとの対応関係を模式的に示している。
エントリーマップが、ATCシーケンスのうちSPN=n1のソースパケットを指定している場合、このエントリーマップのPTSを、STCシーケンスにおけるPTS=t1に設定しておく。そうすると、PTS=t1という時点を用いて、ATCシーケンスにおけるSPN=n1からのランダムアクセスを再生装置に実行させることができる。またエントリーマップが、ATCシーケンスのうちSPN=n21のソースパケットを指定している場合、このエントリーマップのPTSを、STCシーケンスにおけるPTS=t21に設定しておく。そうすると、PTS=t21という時点を用いて、ATCシーケンスにおけるSPN=n21からのランダムアクセスを再生装置に実行させることができる。
図23は、レフトビュー、及びライトビューのそれぞれに対応するエントリーマップが、どのように設定されているかを示す図である。本図における対応付けは、エントリーマップにおける各エントリーポイントのソースパケット番号に、STCシーケンスにおけるソースパケット番号を記述しておき、エントリーマップにおける各エントリーポイントのPTSに、STCシーケンスにおけるPTSを記述しておくことでなされる。時間軸のソースパケットと、時間軸との対応付けが、エントリーマップによってどのようにとられているかを示す。
矢印th1,th2,th3,th4は、STC時間軸における再生時点t1,t2と、エントリーポイントとの対応関係を模式的に示しており、矢印sh1,sh2,sh3,sh4は、ATCsequeceにおけSPN=n1,n11,n8,n18と、エントリーポイントとの対応関係を模式的に示している。
第5段目は、インターリーブ記録されたレフトビュー、ライトビューのエクステントであり、これまでの図に示したものと同一である。第3段目は、PID=0x1011、PID=0x1012のそれぞれに対応するエントリーマップである。PID=0x1011に対応するエントリーマップは、n1を指し示すエントリーポイント、n8を指し示すエントリーポイントを含む。これらのエントリーポイントは、n1,n8と、STC時間軸におけるt1、t2との対応付けを示す。PID=0x1012に対応するエントリーマップは、n11を指し示すエントリーポイント、n18を指し示すエントリーポイントを含む。これらのエントリーポイントは、n11,n18と、STC時間軸におけるt1、t2との対応付けを示す。
以上により、時間軸において、同じ再生時点で再生されるべきレフトビュー、ライトビューのエクステントは、AVデータ記録領域においてバラバラな位置に記録されつつも、各々に対応付けられたエントリーマップを用いることで、レフトビューのエクステント、ライトビューのエクステントの先頭となるソースパケットは、PTSを用いて一意にアクセスされることになる。
以上がクリップ情報ファイルについての説明である。
<プレイリスト情報>
続いて、プレイリスト情報の詳細について説明する。
図24は、プレイリスト情報のデータ構造を示す図であり、本図において、プレイリスト情報は、再生属性情報、メインパス情報、サブパス情報テーブル、エクステンションデータを含む。
先ず再生属性情報について説明する。引出線mp3は、再生属性情報の内部構成をクローズアップして示している。引出線mp3に示すように、再生属性情報は、該当コンテンツがベースとしている規格の「バージョン番号」、「再生タイプ」、「立体表示フラグ」を含む。バージョン番号としては、BD-ROMアプリケーションフォーマットバージョン2.00等というバージョン番号を格納することができる。また、再生タイプとしては、プレイリストに含まれるプレイアイテムを先頭から順番に再生していくことを意味する"シーケンシャル"や、"ランダム/シャッフル"に再生することを再生装置に指示することができる。
次にメインパス情報について説明する。引き出し線mp1は、メインパス情報の内部構成をクローズアップして示している。MainPathは、矢印mp1で示すように複数のPlayItem情報#1・・・・#Nから定義される。PlayItem情報は、MainPathを構成する1つの論理的な再生区間を定義する。PlayItem情報の構成は、引き出し線mp2によりクローズアップされている。この引き出し線に示すようにPlayItem情報は、再生区間のIN点及びOut点が属するAVクリップの再生区間情報のファイル名を示す『Clip_Information_file_name』と、AVクリップの符号化方式を示す『Clip_codec_identifier』と、PlayItemがマルチアングルを構成するか否かを示す『is_multi_angle』と、このPlayItem(カレントPlayItem)と、その1つ前のPlayItem(previousPlayItem)との接続状態を示す『connection_condition』と、このPlayItemが対象としているSTC_Sequenceを一意に示す『ref_to_STC_id[0]』と、再生区間の始点を示す時間情報『In_time』と、再生区間の終点を示す時間情報『Out_time』と、このPlayItemにおいてマスクすべきユーザオペレーションがどれであるかを示す『UO_mask_table』と、『STN_table』と、『BaseView_indicator』と、『multi_clip_entry』とから構成される。このうち、再生経路を構成するのは、再生区間の始点を示す時間情報『In_time』、再生区間の終点を示す時間情報『Out_time』の組みであり、再生経路情報とは、この『In_time』及び『Out_time』の組みから構成される。
STN_table(STream Number_table)は、パケットIDを含むストリームエントリー及びストリーム属性の組みに、論理的なストリーム番号を割り当てるテーブルである。STN_tableにおけるストリームエントリー及びストリーム属性の組みの順序は、対応するストリームの優先順位を示す。
BaseView_indicatorは、0ならばBaseViewはLeftであり、1ならばBaseViewはRightであることを示す。
図25は、サブパス情報テーブルの内部構成を示す図である。引き出し線su1は、サブパス情報の内部構成をクローズアップして示している。引出線su1に示すように、サブパス情報テーブルは複数のサブパス情報1,2,3・・・mを含む。これらのサブパス情報は、1つのクラス構造体から派生した複数のインスタンスであり、その内部構成は共通のものとなる。引き出し線su2は、Subpath情報の共通の内部構成をクローズアップして示している。この引き出し線に示すように、各Subpath情報は、サブパスの類型を示すSubPath_typeと、1つ以上のサブプレイアイテム情報(・・・サブプレイアイテム情報#1〜#m・・・)とを含む。引き出し線su3は、SubPlayItemの内部構成をクローズアップして示している。この引出線に示すように、サブプレイアイテム情報は、『Clip_information_file_name』、『Clip_codec_identifier』、『ref_to_STC_id[0]』、『SubPlayItem_In_time』、『SubPlayItem_Out_time』、『sync_PlayItem_id』、『sync_start_PTS_of_PlayItem』からなる。以降、SubPlayItemの内部構成について説明する。
『Clip_information_file_name』は、クリップ情報のファイル名を記述することにより、SubPlayItemに対応するSubClipを一意に指定する情報である。
『Clip_codec_identifier』は、AVクリップの符号化方式を示す。
『ref_to_STC_id[0]』は、このSubPlayItemが対象としているSTC_Sequenceを一意に示す。
『SubPlayItem_In_time』は、SubClipの再生時間軸上における、SubPlayItemの始点を示す情報である。
『SubPlayItem_Out_time』は、SubClipの再生時間軸上における、SubPlayItemの終点を示す情報である。
『sync_PlayItem_id』は、MainPathを構成するPlayItemのうち、本SubPlayItemが同期すべきものを一意に指定する情報である。SubPlayItem_In_timeは、このsync_PlayItem_idで指定されたPlayItemの再生時間軸上に存在する。
『sync_start_PTS_of_PlayItem』は、sync_PlayItem_idで指定されたPlay Itemの再生時間軸上において、SubPlayItem_In_timeで指定されたSubPlayItemの始点が、どこに存在するかを45KHzの時間精度で示す。
図26は、レフトビュー、ライトビューに対して、どのような再生区間が定義されているかを示す。本図は、図23をベースとして作図されており、このベースとなる図の第2段目の時間軸に、PlayItemのIn_Time及びOut_Timeを描いている。第1段目の時間軸に、SubPlayItemのIn_Time及びOut_Timeを描いている。第3段目から第5段目は、図23の第3段目から第5段目と同一である。レフトビュー、ライトビューのIピクチャは、時間軸において同じ時点になる。
レフトビューと、ライトビューとは、プレイアイテム情報、サブプレイアイテム情報とによって、対応付けられることになる。
図27は、ビデオストリーム番号テーブルの内部構成を示す図である。引き出し線mh1に示すように、ビデオストリーム番号テーブルは、stream_entry及びstream_attributeの組みから構成される。
「Stream_entry」は、プライマリビデオストリームを構成するPESパケットのPIDに対する参照値を示す『ref_to_stream_PID_of_main_Clip』、NTSC,PAL等のビデオの表示方式を示す『video_format』、1/24秒、1/29.94秒などフレームレートを示す『frame_rate』を含む。
図28は、STN_tableにおけるPGストリーム情報テーブルの内部構成を示す。STN_tableにおけるPGストリーム情報テーブルは、「表示方式情報」と、「N個のストリーム情報」とから構成される。n個のストリーム情報のそれぞれは、ストリーム番号のそれぞれに対応付けられており、stream_entryと、stream_attributeとから構成される。引き出し線gh1は、stream_entryの内部構成をクローズアップして示している。stream_entryには、『ref_to_stream_PID_of_mainClip』、又は、『ref_to_Sub_Path_id』、『ref_to_SubClip__entry_id』、『ref_to_stream_PID_of_subClip』のどちらが設定される。『ref_to_stream_PID_of_SubClip』は、ストリーム番号に対応するPGストリームが、ビデオストリームと同じAVClipに存在する場合に、そのPGストリームについてのPIDを示す。
続いて、エクステンションデータについて説明する。図29は、プレイリスト情報におけるエクステンションデータの内部構成を示す図である。引き出し線et1は、エクステンションデータの内部構成をクローズアップして示している。この引き出し線に示すように、エクステンションデータは、プレイアイテム情報#1〜#Nのそれぞれがに対応するSTN_table_extentionから構成される。引き出し線et2は、PlayItem情報#1に対応するSTN_table_extentionの内部構成をクローズアップして示している。この引き出し線に示すように、PlayItem情報#1に対応するSTN_table_extentionは、"ビデオストリーム番号テーブル"を含む。
図30は、ビデオストリーム番号テーブルの内部構成を示す図である。
N個のenhanced_view_is_availableフラグe1と、N個のstream_entry及びstream_attributeの組みf1とから構成される。これらは、1〜Nのストリーム番号に対応付けられており、enhanced_view_is_availableフラグは、1〜Nのストリーム番号を用いることで一意に特定することができる。stream_entry及びstream_attributeの組みも、1〜Nのストリーム番号を用いることで一意に特定することができる。
「Stream_entry」は、引き出し線vh1に示すように、プライマリビデオストリームを構成するPESパケットのPIDに対する参照値を示す『ref_to_stream_PID_of_main_Clip』を含み、stream_attributeは、引出線vh2に示すように、『video_format』、『frame_rate』を含む。
これらのテーブルにおけるstream_entryの順位は、再生装置がストリームを選択するにあたって、ストリーム選択の優先順位を意味する。つまり、テーブルにおいてエントリーが高い順位にあるものを再生装置は、優先的に選択することになる。
enhanced_view_is_availableフラグがオンであり、エンハンスドビューに設定されている場合、ref_to_stream_of_MainCLipには、0x1011のパケットIDと、0x1012のパケットIDとが記述される。
続いて、STN_table_extensionにおけるPGストリーム情報テーブルについて説明する。STN_table_extensionにおけるPGストリーム情報テーブルの内部構成は、N個のストリーム情報を含んで構成される。n個のストリーム情報のそれぞれは、ストリーム番号のそれぞれに対応付けられており、「stream_entry」と、「stream_attribute」とを含む。stream_entryは、再生可能なレフトビューPGストリームを構成するPESパケットのPIDに対する参照値、及びライトビューPGストリームを構成するPESパケットのPIDに対する参照値の組みを含む。
ここで、STN_table_extentionには、STN_tableにおけるstream_entry及びstream_attributeの組みの数と同数のstream_entry及びstream_attributeの組みが存在する。STN_table_extentionのstream_entry及びstream_attributeの組みと、STN_tableのstream_entry及びstream_attributeの組みとが1対1に対応しており、それらは同一のストリーム番号となる。STN_table_extentionのstream_entryにより示されるレフトビュー及びライトビューの各ストリームと、対応する、STN_tableのstream_entryにより示されるストリームとは、基本的には同一のものであり、表示位置が水平方向に異なるだけである。すなわち、STN_table のstream_entryにより示されるストリームに、人間の両目の視差に相当する差を加えたものが、STN_table_extentionのstream_entryにより示されるレフトビュー及びライトビューの各ストリームである。
なお、本願明細書におけるコンテンツとは、あるタイトル番号にて管理されるプレイリスト情報と、このプレイリスト情報から参照されるAVクリップに多重化されているビデオストリームとを包含する単位であり、"タイトル"と呼ばれる。
以上がプレイリスト情報についての説明である。
<再生装置>
続いて、再生装置の詳細について説明する。図31は、再生装置の内部構成を示す図である。再生装置200は、BDドライブ201、システムLSI(再生部)1、HDMIインタフェース202、再生状態/設定レジスタ(PlayerStatus/Setting Register)セット203、静的シナリオメモリ205、再生制御エンジン206、ヒープメモリ207、BD-Jプラットフォーム208、動的シナリオメモリ209、モード管理モジュール210、コマンドインタプリタ211、及びUO検知モジュール212を含んで構成される。
BDドライブ201は、BD-ROMのローディング/リード/イジェクトを行い、BD-ROMに対するアクセスを実行する。具体的な構成としては、半導体レーザ(図示せず)、コリメートレンズ(図示せず)、ビームスプリッタ(図示せず)、対物レンズ(図示せず)、集光レンズ(図示せず)、光検出器(図示せず)を有する光学ヘッド(図示せず)を備える。半導体レーザから出射された光ビームは、コリメートレンズ、ビームスプリッタ、対物レンズを通って、光ディスクの情報面に集光される。集光された光ビームは、光ディスク上で反射/回折され、対物レンズ、ビームスプリッタ、集光レンズを通って、光検出器に集光される。光検出器にて集光された光の光量に応じて、生成された信号がBD-ROMから読み出されたデータに対応する。
システムLSI(再生部)1は、図32に示すように、Read Buffer2、PID Filter3、Transport Buffer 4a,4b,4c,4d,4e、周辺回路4f、VideoDecoder for Left view5a、Video Decoder for Right view5b、Video Plane(L)6a、VideoPlane(R)6b、切り替え器7、Graphics Decoder for Left view8a 、Graphics Decoder for Rightview8b 、Graphics Plane for Left view9a、Graphics Plane for Right view9b、CLUTUNIT for L10a、CLUT UNIT for R10b、OFFSET UNIT for L11a、OFFSET UNIT for R11b、CLUT出力切り替え器12、加算器13、AudioDecoder14を含んで構成される。
Read Buffer2は、典型的にはFIFOメモリであり、BD-ROMから読み出されたソースパケットを一旦格納しておき、転送速度を調整した上、PIDフィルタ3に転送するためのバッファである。具体的には、ReadBuffer2は、ライトビュー用のソースパケットを格納するためのライトビューRead Bufferと、レフトビュー用のソースパケットを格納するためのレフトビューReadBufferとからなる。
PIDフィルタ3は、Read Buffer2から出力される複数TSパケットに対してフィルタリングを施す。PIDフィルタ3によるフィルタリングは、TSパケットのうち、所望のPIDをもつもののみをTransportBuffer 4a,4b,4c,4d,4eの何れかに書き込むことでなされる。PID Filter3によるフィルタリングでは、バッファリングは必要ではない。従って、PIDFilter3に入力されたTSパケットは、当該TSパケットのPIDに基づいて、時間遅延なく、Transport Buffer 4a,4b,4c,4d,4eの何れかに書き込まれる。
Transport Buffer4a,4b,4c,4d,4eは、PID Filter3から出力されたTSパケットを先入れ先出し式に格納しておくメモリである。このTransportBuffer4a,4b,4c,4d,4eからTSパケットが取り出される速度を、速度Rxとする。
周辺回路4fは、Transport Buffer4c、4dから読み出されたTSパケットを、機能セグメントに変換する処理を行うワイヤロジックである。変換により得られた機能セグメントはCodedData Buffer(EB)に格納される。
Video Decoder for Left view5aは、PID Filter3から出力された複数TSパケットを復号して非圧縮形式のレフトビューピクチャを得てVideoPlane(L)6aに書き込む。
Video Decoder for Right view5bは、PID Filter3から出力された複数TSパケットを復号して非圧縮形式のライトビューピクチャを得てVideoPlane(R)6bに書き込む。
Video Plane(L)6aは、非圧縮形式のレフトビューピクチャを格納しておくためのメモリである。
Video Plane(R)6bは、非圧縮形式のライトビューピクチャを格納しておくためのメモリである。
切り替え器7は、レフトビューピクチャ及びライトビューピクチャの何れを加算器13に出力するか切り替える。
Graphics Decoder for Left view8aは、レフトビューのPGスストリームをデコードして、非圧縮グラフィクスを得て、これをグラフィクスオブジェクトとしてGraphicsPlane for Left view9aに書き込む。具体的には、図32に示すように、Coded Data Buffer(EB)81a、PERIPHERALCIRCUITRY82a、Stream Graphics Processor83a、Object Buffer(OB)84a、CompositionBuffer(CB)85a、Graphics Controller86aから構成される。
Coded Data Buffer(EB)81aは、機能セグメントがDTS、PTSと共に格納されるバッファである。かかる機能セグメントは、TransportBuffer4cに格納されたトランスポートストリームの各TSパケットから、TSパケットヘッダ、PESパケットヘッダを取り除き、ペイロードをシーケンシャルに配列することにより得られたものである。取り除かれたTSパケットヘッダ、PESパケットヘッダのうち、PTS/DTSは、PESパケットと対応付けて格納される。
PERIPHERAL CIRCUITRY82aは、Coded Data Buffer(EB)81a−Stream Graphics Processor83a間の転送、CodedData Buffer(EB)81a−Composition Buffer85a間の転送を実現するワイヤロジックである。この転送処理において、現在時点がODSのDTSに示される時刻になれば、ODSを、CodedData Buffer(EB)81aからStream Graphics Processor83aに転送する。また現在時刻がPCS、PDSのDTSに示される時刻になれば、PCS、PDSをCompositionBuffer(CB)85aに転送するという処理を行う。
Stream Graphics Processor83aは、ODSをデコードして、デコードにより得られたインデックスカラーからなる非圧縮状態の非圧縮グラフィクスをグラフィクスオブジェクトとしてObjectBuffer(OB)84aに書き込む。このStream Graphics Processor83aによるデコードは、ODSに関連付けられたDTSの時刻に開始し、ODSに関連付けられたPTSに示されるデコード終了時刻までに終了する。上述したグラフィックオブジェクトのデコードレートRdは、このStreamGraphics Processor83aの出力レートである。
Object Buffer(OB)84aは、ETSI EN 300 743標準規格におけるピクセルバッファに相当するバッファであり、StreamGraphics Processor83aのデコードにより得られたグラフィクスオブジェクトが配置される。
Composition Buffer85aは、PCS、PDSが配置されるメモリである。
Graphics Controller86aは、Composition Buffer85aに配置されたPCSを解読して、PCSに基づく制御をする。具体的には、グラフィクスのObjectBuffer(OB)84aへの書き込み、及びObject Buffer(OB)84aからのグラフィクスの読み出し、グラフィクスの表示を実行する。この制御の実行は、PCSを格納したPESパケットのPTSの値に示される時点においてなされる。
Graphics Decoder for Right view8bは、ライトビューのPGスストリームをデコードして、非圧縮グラフィクスを得て、これをグラフィクスオブジェクトとしてGraphicsPlane for Right view9bに書き込む。詳細な構成については、Graphics Decoder for Left view8aと同様であるので説明を省略する。
Graphics Plane for Left view9aは、一画面分の領域をもったプレーンメモリであり、一画面分の非圧縮グラフィクス(レフトビュー)が格納される。
Graphics Plane for Right view9bは、一画面分の領域をもったプレーンメモリであり、一画面分の非圧縮グラフィクス(ライトビュー)が格納される。
CLUT UNIT for L10aは、設定されているpalette_idにより示されるPDSのカラールックアップテーブルを用いて、GraphicsPlane for Left view9aに格納されている画素コードを、Y,Cr,Cbといったピクセル値に変換する。
CLUT UNIT for R10bは、設定されているpalette_idにより示されるPDSのカラールックアップテーブルを用いて、GraphicsPlane for Right view9bに格納されている画素コードを、Y,Cr,Cbといったピクセル値に変換する。
ここで、CLUT UNIT for L10a及びCLUT UNIT for R10bには、共通のpalette_idが設定されている。
OFFSET UNIT for L11aは、色変換されたレフトビュー非圧縮グラフィクスの奥行きを調整する。
OFFSET UNIT for R11bは、色変換されたライトビュー非圧縮グラフィクスの奥行きを調整する。
CLUT出力切り替え器12は、加算器13に出力すべき非圧縮グラフィクスを、レフトビュー非圧縮グラフィクスとライトビュー非圧縮グラフィクスとの間で切り替える。
加算器13は、CLUT UNIT for L10a(またはCLUT UNIT for R10b)により色変換された非圧縮グラフィクスに、PDSに示されるT値(透過率)を乗じて、VideoPlane(L)6a(またはVideo Plane(R)6b)に格納された非圧縮状態のピクチャデータと加算し、合成画像を得て出力する。
Audio Decoder14は、PID Filter3から出力されたTSパケットを復号して、非圧縮形式のオーディオデータを出力する。
以上が再生部1の構成要素である。
図31に戻って、HDMI送受信部202は、例えばHDMI規格(HDMI:High Definition Multimedia Interface)に準拠したインタフェースを含み、再生装置とHDMI接続する装置(この例ではテレビ300)との間でHDMI規格に準拠するように送受信を行うものであり、加算器13により加算された映像と、オーディオデコーダ14によってデコードされた非圧縮のオーディオデータとを、HDMI送受信部202を介してテレビ300に伝送する。
テレビ300は、例えば立体視表示に対応しているかに関する情報、平面表示可能な解像度に関する情報、立体表示可能な解像度に関する情報を保持しており、再生装置からHDMI送受信部202を介して要求があると、要求された必要な情報(例えば立体視表示に対応しているかに関する情報、平面表示可能な解像度に関する情報、立体表示可能な解像度に関する情報)を再生装置へ返す。
このように、HDMI送受信部202を介することで、テレビ300が立体視表示に対応しているかどうかの情報を、テレビ300から取得することができる。
再生状態/設定レジスタ(PSR)セット203は、プレイリストの再生状態を格納する再生状態レジスタ、再生装置におけるコンフィグレーションを示すコンフィグレーション情報を格納する再生設定レジスタ、コンテンツが利用する任意の情報を格納できる汎用レジスタを含む、レジスタの集まりである。プレイリストの再生状態とは、プレイリストに記載されている各種AVデータ情報の中のどのAVデータを利用しているか、プレイリストのどの位置(時刻)を再生しているかなどの状態を現す。プレイリストの再生状態が変化した際は、再生制御エンジン206がPSRセット203に対し、その内容を格納する。また、HDMVモードの動作主体であるコマンドインタプリタもしくはBD-Jモードの動作主体であるJava(登録商標)プラットフォームが実行しているアプリケーションからの指示により、アプリケーションが指定した値を格納したり、格納された値をアプリケーションに渡したりすることが可能である。
また、PSRセット203には、例えば立体視再生ケーパビリティや立体視再生表示方式フラグ等が存在する。
立体視ケーパビリティは、再生装置に立体視再生を実行する能力が存在するかどうかを示す。
立体視再生フラグは、ユーザが、立体視再生を実行することを意図しているかどうかを示す。
静的シナリオメモリ205は、カレントプレイリスト情報やカレントクリップ情報を格納しておくためのメモリである。カレントプレイリスト情報とは、BD-ROMからアクセスできる複数プレイリスト情報のうち、現在処理対象になっているものをいう。カレントクリップ情報とは、BD-ROMからアクセスできる複数クリップ情報のうち、現在処理対象になっているものをいう。
再生制御エンジン206は、HDMVモードの動作主体であるコマンドインタプリタ、BD-Jモードの動作主体であるJava(登録商標)プラットフォームからの関数呼び出しに応じて、AV再生機能、プレイリストの再生機能を実行する。AV再生機能とは、DVDプレーヤ、CDプレーヤから踏襲した機能群であり、再生開始、再生停止、一時停止、一時停止の解除、静止画機能の解除、再生速度を即値で指定した早送り、再生速度を即値で指定した巻戻し、音声切り替え、副映像切り替え、アングル切り替えといった処理である。プレイリスト再生機能とは、このAV再生機能のうち、再生開始や再生停止をプレイリスト情報に従って行うことをいう。
ヒープメモリ207は、システムアプリケーションのバイトコード、BD-Jアプリケーションのバイトコード、システムアプリケーションが利用するシステムパラメータ、BD-Jアプリケーションが利用するアプリケーションパラメータが配置されるスタック領域である。
BD-Jプラットフォーム208は、BD-Jモードの動作主体であるJava(登録商標)プラットフォームであり、Java(登録商標)2Micro_Edition(J2ME)Personal Basis Profile(PBP 1.0)と、Globally Executable MHPspecification(GEM1.0.2)for package media targetsとをフル実装しており、クラスローダ、バイトコードインタプリタを含む。クラスローダは、システムアプリケーションの1つであり、JARアーカイブファイルに存在するクラスファイルからバイトコードを読み出して、ヒープメモリに格納することにより、BD-Jアプリケーションのロードを行う。バイトコードインタプリタは、ヒープメモリ207に格納されているBD-Jアプリケーションを構成するバイトコード、システムアプリケーションを構成するバイトコードをネイティブコードに変換して、MPUに実行させる。
動的シナリオメモリ209は、カレント動的シナリオを格納しておき、HDMVモードの動作主体であるコマンドインタプリタ、BD-Jモードの動作主体であるJava(登録商標)プラットフォームによる処理に供されるメモリである。カレント動的シナリオとは、BD-ROMに記録されているIndex.bdmv、BD-Jオブジェクト、ムービーブジェクトのうち、現在実行対象になっているものをいう。
モード管理モジュールの一例であるモジュールマネージャ210は、BD-ROMから読み出されたIndex.bdmvを保持して、モード管理及び分岐制御を行う。モジュールマネージャ210によるモード管理とは、動的シナリオをコマンドインタプリタ211とBD−Jモジュール208のどちらに実行させるかという、モジュールの割り当てである。
HDMVモジュールの一例であるコマンドインタプリタ211は、HDMVモードの動作主体となるDVD仮想プレーヤであり、HDMVモードの実行主体となる。HDMVモードの動作主体であるコマンドインタプリタは、シナリオプログラムを構成するナビゲーションコマンドを解読して実行するものである。ナビゲーションコマンドは、DVD-Videoと似たようなシンタックスで記述されているため、かかるナビゲーションコマンドを実行することにより、DVD-Videoライクな再生制御を実現することができる。
UO探知モジュール212は、リモコン500や再生装置200のフロントパネルに対してなされたユーザ操作を検出して、ユーザ操作を示す情報(以降UO(User Operation)という)をモード管理モジュール210に出力する。そのUOから、現在の再生装置におけるモードに適切なUOのみを選んで、そのモードを実行するモジュールに受け渡す。例えばHDMVモードの実行中に、上下左右、アクティベートといったUOを受け付けた場合、HDMVモードのモジュールにこれらのUOを出力する。
<プレイリスト再生処理>
続いて、プレイリスト再生処理の詳細について説明する。
図33は、プレイリス再生処理の処理手順を示すフローチャートである。
ステップS1においてプレイリスト情報ファイルを読み込み、ステップS2〜ステップS5の処理に突入する。ステップS2は、再生装置にケーパビリティが存在するか否かの判定である。ステップS3は、再生装置の接続相手であるテレビに、立体視再生の処理能力が存在するか否かの判定である。ステップS4は、カレントプレイリストの再生属性情報における表示方式フラグが有効かどうかの判定である。ステップS2〜ステップS4の何れかがNoと判定されれば、ステップS5に移行して、各プレイアイテム情報におけるSTN_tableに基づくプレイアイテム再生を実行する。
ステップS2〜ステップS4の全てがYesであれば、ステップS5において各プレイアイテム情報におけるSTN_table_extensionに基づくプレイアイテム再生を実行する。
図34は、STN_table_extensionに基づく再生手順を示すフローチャートである。
ステップS51において、カレントPlayItem番号を"1"に初期化して、ステップS52〜S62のループに移る。このループは、カレントプレイアイテム番号に対してステップS52〜ステップS60の処理を実行して、カレントプレイアイテム番号をインクリメントするという処理を(ステップS61)、カレントプレイアイテム番号が最終になるまで繰り返すものである(ステップS62でYes)。ステップS52〜ステップS60は、以下のものである。
ステップS52において、ベースビューストリームのパケットIDに対応するエントリーマップを用いて、カレントPlayItem.In_Time及びカレントPlayItem.Out_TimeをStart_SPN[i]及びEnd_SPN[i]に変換する。
エンハンスドビューストリームを選択し、カレントPGストリームを選択して(ステップS53)、選択したストリームのカレントストリーム番号をPSRに書き込み(ステップS54)、カレントストリーム番号に対応するSubPlayItemを特定する(ステップS55)。エンハンスドビューストリームのパケットID[j]に対応するエントリーマップ[j]を用いて特定されたSubPlayItemIn_Time、SubPlayItemOut_TimeをStart_SPN[j]、End_SPN[j]に変換する(ステップS56)。
パケットID[i]のTSパケット[i]をStart_SPN[i]からEnd_SPN[i]まで読み出すための読出範囲[i]に属するエクステントを特定し(ステップS57)、パケットID[j]のTSパケット[j]をStart_SPN[j]からEnd_SPN[j]まで読み出すための読出範囲に属するエクステントを特定する(ステップS58)。そしてステップS59において読出範囲[i],[j]に属するエクステントをアドレスの昇順にソートして、ステップS60においてソートされたアドレスを用いて、読出範囲[i],[j]に属するエクステントを連続的に読み出すよう、ドライブに指示する。以上がSTN_table_extensionに基づく再生手順である。
次にPGストリーム選択手順について説明する。STN_table、またはSTN_table_extensionに基づき、PGストリームを選択する選択手順には、『Procedurewhen playback condition is changed』と、『Procedure when Stream change is requested』という2つの選択手順がある。PGストリーム選択は、再生制御エンジン206によりなされる。
Procedure when playback condition is changedは、何等かの事象が再生装置に生じたため、再生装置の状態が変化した際に実行すべき処理手順を示す。
Procedure when Stream Change is requestedは、ユーザがストリームの切り換えを要求した際、実行すべき処理手順を示す。
図35(a)は、装置状態変化時におけるPSR2の設定手順を示すフローチャートである。ここで、PSR2は、PGのカレントストリーム番号を示すものとする。
ステップS11は、STN_tableにおけるentry数が0であるか否かの判定であり、もし0であればPSR2の値を維持する(ステップS13)。
ステップS12は、STN_tableにおけるentry数は0ではない場合に、PSR2よりSTN_tableのentry数が多く、尚且つ、条件(A)が真であるかを判定するものである。条件(A)とは、PSR2で特定されるPGストリームを再生する能力が再生装置に存在することである。もしステップS12がYesであればPSR2を維持する(ステップS14)。もしPSR2の値がentry数より大きいか、或は条件(A)を満たさない場合は、PSR2を再設定する(ステップS15)。
図35(b)は、ストリーム変化時におけるPSR2の設定手順を示すフローチャートである。本フローチャートと、同図(a)との違いは、(a)におけるPSR2の表記がXに置き換えられている点である。このXは、UserOperationに基づく値である。
本フローチャートにおけるステップS20は、XよりSTN_tableのentry数が多く、尚且つ、条件(A)が真であるかを判定するものである。条件(A)とは、PSR2で特定されるPGストリームを再生する能力が再生装置に存在することであり、PSR15(字幕ケーパビリティを示す)と、PGストリームのStream_coding_typeの比較で判定される。もしXがこの条件を満たすなら、PSR2にXを設定する(ステップS21)。
もしXがentry数より大きいか、或は条件(A)を満たさない場合は、Xが、0xFFFFであるか否かを判定する(ステップS22)。もしOxFFFFでなければ、ユーザが選択を意図するPGストリームの番号は無効であると考えられるので、ユーザ操作に基づく値Xを無視し、PSR2の設定値を維持する(ステップS24)。もしPSR2の設定値が0xFFFFであるなら、PSR2を設定する(ステップS23)。
図36は、PSR2設定手順を示すフローチャートである。本フローチャートのステップS31、ステップS32は、STN_tableに記述されているPGストリームのそれぞれについて、ステップS33〜ステップS35の処理を繰り返すループ処理になっている。本ループ処理において処理対象となるPGストリームをPGストリームiとする。ステップS33は、PGストリームiが、グラフィクス字幕ストリームであるか、テキスト字幕ストリームであるかの判定であり、もしグラフィクス字幕であるならステップS34に移行する。
ステップS34は、グラフィクス字幕ストリームiが、以下の(a)(b)を満たすか否かの判定である。
(a)グラフィクス字幕ストリームiを再生する能力が再生装置に存在すること
(b)グラフィクス字幕ストリームiの言語属性が再生装置の言語設定と一致すること
この(b)の条件は、STN_tableにおけるPG_language_codeがPSR16(装置の言語設定を示す)と一致するか否かの判定でなされる。
一方、ステップS35は、テキスト字幕ストリームiが(a)(b)を満たすかを否かの判定である。
(a)テキスト字幕ストリームiをフォントで展開して再生する能力が再生装置に存在すること
(b)テキスト字幕ストリームiの言語属性が再生装置の言語設定と一致すること
(a)の条件を具備しているかの判定は、再生装置のPSR30が"再生能力有"を示すかどうかでなされる。(b)の条件を具備しているかの判定は、STN_tableのtextST_language_codeがPSR16の設定値と一致しているかどうかでなされる。
以上のステップS33〜ステップS35の処理が全てのPGストリームについて繰り返されれば、ステップS36〜ステップS41の処理が実行される。
ステップS36は、(a)を満たすグラフィクス字幕が存在しないかどうかの判定であり、もし存在しないのなら、Invalidな値(0xFFFF)をPSR2に設定する(ステップS38)。
ステップS37は、(a)(b)の双方を満たすPGストリームが存在するかどうかの判定であり、もし存在するのなら(a)(b)を満たすPGストリームのうち、STN_tableにおけるエントリー順位が最も高いものをPSR2に設定する(ステップS41)。
ステップS39は、(a)のみを満たすグラフィクス字幕ストリーム、(a)のみを満たすテキスト字幕ストリームのうち、STN_tableにおけるエントリー順位が最も高いものをPSR2に設定する。
PRS2が設定されると、再生装置においてレフトビュー及びライトビューを用いた3D再生が可能か否かを判定する。3D再生が可能である場合には、PSR2のストリーム番号に対応するレフトビューPGストリーム及びライトビューPGストリームのPIDをPIDFilter3に設定して、パケットフィルタリングを行わせる。
そして、レフトビューグラフィクスデコーダ及びライトビューグラフィクスデコーダを起動して、2系統のTSパケット系列のデコードを行わせる。
以上のように本実施の形態によれば、レフトビューPGストリームの複数のDSとライトビューPGストリームの複数のDSとは、1対1に対応しており、対応するDSの画面構成セグメントには、同一のPTSが設定されている。また、対応するDSの画面構成セグメントにおいて、composition_stateが同一の内容に設定されている。
そのため、一方のPGストリームのDSにおいて、そのcomposition_stateが、例えばEpoch Startである場合には、対応する、他方のPGストリームのDSにおいても、そのcomposition_stateは、EpochStartである。
したがって、これらのDSを頭出しがなされることが判明している位置に配置することで、ランダムアクセスの際、一方のPGストリームがデコード可能であれば、必ず、他方のPGストリームのデコードも可能となる。ゆえに、ランダムアクセス時におけるグラフィクスの立体視を保証することができる。
また、レフトビューPGストリームとライトビューPGストリームとで対応するDSにおいて、composition_number及びforced_on_flagが、同一の内容に設定されており、対応するDSのPDSが同一の内容に設定されている。さらに、WDSにおいてWindow_width、window_height、及びwindow_vertical_positionが同一の内容に設定されており、PCSにおいて、object_cropping_width、object_cropping_height、object_cropping_vertical_position、及びobject_vertical_positionが同一の内容に設定されている。
このように、レフトビューPGストリームとライトビューPGストリームとで対応するDSにおいて、オブジェクト及び表示位置の水平座標(window_horizontal _position 、object_horizontal_position、object_cropping_horizontal_position、)以外のフィールドが同一内容に設定されているため、再生装置において2つのグラフィクスコントローラの制御内容をほぼ同一内容にすることができ、ハードウェア構成の簡易化が可能になる。
(変形例1−1)
再生装置において、レフトビュー用にCLUT UNIT for L10a、ライトビュー用にCLUT UNIT for R10bを備える構成を示した。ただし、各CLUTUNITに設定すべきパレットのidが共通であったため、CLUT UNITを共通にすることが可能である。以下、レフトビュー及びライトビューとで共通のCLUTUNITへと替えた一変形例について説明する。
図37は、変形例1−1における再生装置に搭載されるシステムLSIの内部構成を示す図である。
Graphics Plane for Left view9a及びGraphics Plane for Right view9bはそれぞれ、CLUT出力切り替え器15に接続されている。
CLUT出力切り替え器15は、CLUT UNIT10に出力すべき非圧縮グラフィクスを、レフトビュー非圧縮グラフィクスとライトビュー非圧縮グラフィクスとの間で切り替える。
OFFSET UNIT11は、CLUT UNIT10により色変換されたレフトビューまたはライトビューの非圧縮グラフィクスの奥行きを調整し、加算器13に出力する。
上述のように、Graphics Plane for Left view9a及びGraphics Plane for Right view9bの出力が、CLUT出力切り替え器15を介して共通のCLUTUNIT10に接続されているため、ハードウェア規模を削減できるとともに、2D用のGraphics Decoderから、少ない変更で3D用GraphicsDecoderを構成できるというメリットがある。
(実施の形態2)
実施の形態1では、2デコーダモデルにおいて、PGグラフィクスストリームの立体視を実現する手段について説明したが、本実施の形態では、2デコーダモデルにおけるインタラクティブグラフィクス(以下、「IG」という)ストリームの立体視について説明する。
IGスストリームは、グラフィクスオブジェクトの対話的な表示を実現するグラフィクスストリームである。図38(a)は、IGストリームの構成を示す図である。第1段目は、AVClipを構成するTSパケット列を示す。第2段目は、グラフィクスストリームを構成するPESパケット列を示す。第2段目におけるPESパケット列は、第1段目におけるTSパケットのうち、所定のPIDをもつTSパケットからペイロードを取り出して、連結することにより構成される。第3段目は、グラフィクスストリームの構成を示す。グラフィクスストリームは、ICS(InteractiveComposition Segment)、PDS(Palette Difinition Segment)、ODS(Object DefinitionSegment)、END(END of Display Set Segment)と呼ばれる機能セグメントからなる。ICSは、画面構成セグメントと呼ばれ、対話的なグラフィクスオブジェクトの画面構成を制御する機能セグメントである。PESパケットと機能セグメントとの対応関係、及び他の機能セグメントについては、PGと同様であるので説明を省略する。
図38(b)は、機能セグメントを変換することで得られるPESパケットを示す図である。図38(b)についてもPGと同様であるため、説明を省略する。
図39は、様々な種別の機能セグメントにて構成される論理構造を示す図である。本図は第1段目にEpochを、第2段目にDisplay Setを、第3段目にDisplaySetの類型を、第4段目にDisplay Setに属する機能セグメントを、それぞれ示す。IGストリームにも、Epoch Start、AcquisitionPoint、Normal Caseという類型があるが、これはPGで説明した通りである。
IGストリームは、上述した再生時間軸における動画の再生進行に応じて、マルチページメニューの挙動を制御することを特徴としている。この特徴を実現するための構成は、ICS内のInteractive_compositionに存在する。以降ICS、Interactive_compositionの内部構成について以下説明する。
図40(a)(b)は、ICSとInteractive_compositionとの対応関係を示す図である。ICSとInteractive_compositionとの対応関係には、図40(a)に示すような1対1のものと、図40(b)に示すような1対多のものとがある。
対応関係が1対1になるのは、Interactive_compositionのサイズが小さく、1つのICS内にInteractive_compositionが収まる場合である。
1対多の対応関係になるのは、Interactive_compositionのサイズが大きく、Interactive_compositionがフラグメント化され、複数ICSに格納される場合である。複数ICSへの格納が可能なので、Interactive_compositionサイズには制限がなく、512Kバイトであろうと、1Mバイトであろうと、Interactive_compositionのサイズを大きくすることができる。ICS、Interactive_compositionには1対多の対応関係もあり得るが、簡単を期するため、以降の説明では、ICS、Interactive_compositionの対応関係は、1対1であるとする。
図41は、ICSの内部構成を示す図である。ICSには、Interactive_Compositionの全体、又は、Interactive_Compositionをフラグメント化することで得られた一部が格納されている。図41の左側に示すように、ICSは、自身がICSであることを示す『segment_descriptor』と、本ICSが想定している縦横の画素数、フレームレートを示す『video_descriptor』と、『composition_descriptor』と、Interactive_Compositionの全体、又は、Interactive_Compositionをフラグメント化することで得られた一部である『Interactive_composition_data_fragment』とからなる。
図41中の矢印cu1は、『composition_descriptor』の内部構成をクローズアップして示す。この矢印cu1に示すように『composition_descriptor』は、本ICSが属するDisplaySetが、Normal Case、Acquisition Point、Epoch Start、Effect_Sequenceの何れであるかを示す『composition_state』と、画面合成の回数を示す『Composition_Number』とを含む。
図41の矢印cu2は、Interactive_compositionの内部構成をクローズアップしている。この矢印に示すようにInteractive_compositionは、『Interactive_composition_length』,『Stream_model』,『user_interface_model』,『composition_time_out_pts』,『selection_time_out_pts』,『user_time_out_duration』、マルチページメニューにおいて表示可能な複数ページのそれぞれに対応する『ページ情報(1)(2)・・・(i)・・・(number_of_page-1)』を含む。
『Interactive_composition_length』は、Interactive_compositionのデータ長を示す。
『Stream_model』は、Interactive_compositionが想定しているストリームモデルのタイプを示す。ストリームモデルとは、Interactive_compositionがどのような形態でBD-ROMに記録されて、再生装置におけるコンポジションバッファ上でどのように扱われるかを示すものであり、Stream_modelは、グラフィクスストリームがAVClipから多重分離されてコンポジションバッファ上にロードされたものであるか(i)、SubClipとして、コンポジションバッファにプリロードされたものであるか(ii)を示す。
『user_interface_model』は、Interactive_compositionが想定しているユーザインタフェースモデルが、Always-onU/IであるかPop-upU/Iであるかを示す。Always-onU/Iとは、AVClipの再生進行に伴ってメニューの表示・消去がなされるユーザインタフェースであり、ポップアップU/Iとは、ユーザによる操作をトリガにしてメニューの表示・消去がなされるユーザインタフェースである。
『Composition_time_out_pts』は、ICSが帰属するEpochの終期(Epoch END)を示す。ICSによる対話制御は、このEpoch終期(EpochEND)においてもはや不可能となるので、このcomposition_time_out_ptsに示される時点が、対話制御の終期を意味する。
『selection_time_out_pts』は、セレクテッド状態にあるボタンを自動的にアクティベートするためのタイムアウト時刻を示す。ボタンとは、マルチページメニューにおける個々の選択項目であり、かかるボタンの状態をアクティブ状態に変化させる時間を規定しているのがこのselection_time_out_ptsである。
図中のIF文(if(Stream_model=='0b'))は、上述したcomposition_time_out_pts及びselection_time_out_ptsが、Stream_model=Multiplexedの際、出現する任意の情報要素であることを示している。ICSが想定しているストリームモデルがプリロードである場合、これらcomposition_time_out_pts、selection_time_out_ptsは存在しない。
『user_time_out_dutration』は、ユーザ操作により表示され得るページを消去するためのタイムアウト時刻を示す。Always-onU/Iでは、2ndPage以降のPage(SubPageという)がユーザ操作により表示されるので、このuser_time_out_dutrationのタイムアウトにより、SubPageのみが消去され、1stPageのみとなる。Pop-upU/Iでは、SubPageだけではなく、マルチページメニュー全体がユーザ操作により表示されるので、user_time_out_dutrationのタイムアウトにより、全てのページが消去され何も表示されない状態(NoMenu Display)になる。
図42は、複数ページのうち、任意のもの(x枚目のページ)についてのページ情報の内部構成を示す図である。この図42の左側に示すようにページ情報(x)は、ページxを一意に識別する識別子である『page_id』,『page_version_number』,『UO_mask_table』,ページ(x)の表示開始時あたって再生すべき表示効果を示す『in_effect』,ページ(x)の表示終了時あたって再生すべき表示効果を示す『out_effect』,ページ(x)にアニメーションを実行する際、適用すべきフレームレートを記述する『animation_frame_rate_code』,『default_selected_button_id_ref』、『default_activated_button_id_ref』,『pallet_id_ref』,ページ(x)上の複数ボタンのそれぞれに対応する『ボタン情報(1)(2)・・・・・(number_of_buttons-1)』を含む。
『UO_Mask_Table』は、page(x)におけるユーザ操作の許可/不許可を示す。このマスクフィールドが不許可に設定されていれば、再生装置に対するユーザ操作は無効になる。
『default_selected_button_id_ref』は、Page(x)の表示が始まったとき、デフォルトでセレクテッド状態に設定すべきボタンを動的に定めるか、静的に定めるかを示す。本フィールドが”OxFF”であれば、デフォルトでセレクテッド状態に設定すべきボタンを動的に定める旨を示す。動的に定める場合、再生装置における状態レジスタ(PlayerStatus Register(PSR))の設定値が優先的に解釈され、PSRに示されるボタンがセレクテッド状態になる。本フィールドが0xFFでなければ、デフォルトでセレクテッド状態に設定すべきボタンを静的に定める旨を示す。この場合、『default_selected_button_id_ref』に規定されたボタン番号でPSRを上書きし、本フィールドで指示されるボタンをセレクテッド状態にする。
『default_activated_button_id_ref』は、selection_time_out_ptsに示される時点に達した際、自動的にアクティブ状態に設定されるボタンを示す。default_activated_button_id_refが”FF”であれば、所定のタイムアウト時刻において、現在セレクテッド状態になっているボタンが自動的に選択される。このdefault_activated_button_id_refが00であれば、自動選択はなされない。00,FF以外の値であれば本フィールドは、有効なボタン番号として解釈される。
『pallet_id_ref』は、Page(x)において、CLUT Unitに設定すべきパレットのidを示す。
『ボタン情報(Button_info)』は、Page(x)上に表示される各ボタンを定義する情報である。以上のフィールドにより、Multi-Pageメニューにおける個々のページは特定される。続いてボタン情報の内部構成について説明する。Page(x)における任意のボタンをボタン(i)であると仮定した場合、このボタン(i)の内部構成が、どのようにして規定されるかについて説明する。図42における破線の矢印cx1は、ボタン(i)を規定するボタン情報iの内部構成をクローズアップしている。
ページに表示される個々のボタンには、ノーマル状態、セレクテッド状態、アクティブ状態という3つの状態がある。ノーマル状態とは、単に表示されているに過ぎない状態である。これに対しセレクテッド状態とは、ユーザ操作によりフォーカスが当てられているが、確定に至っていない状態をいう。アクティブ状態とは、確定に至った状態をいう。かかる状態があるので、ボタン情報iには、以下の情報要素が規定されている。
『button_id』は、ボタン(i)を、Interactive_compositionにおいて一意に識別する数値である。
『button_numeric_select_value』は、ボタン(i)の数値選択を許可するか否かを示すフラグである。
『auto_action_flag』は、ボタン(i)を自動的にアクティブ状態にするかどうかを示す。auto_action_flagがオン(ビット値1)に設定されれば、ボタン(i)は、セレクテッド状態になる代わりにアクティブ状態になる。auto_action_flagがオフ(ビット値0)に設定されれば、ボタン(i)は、選択されたとしてもセレクテッド状態になるにすぎない。
『button_horizontal_position』、『button_vertical_position』は、対話画面におけるボタン(i)の左上画素の水平位置、垂直位置を示す。
『neighbor_info』は、ボタン(i)がセレクテッド状態になっていて、上下左右方向へのフォーカス移動が命じられた場合、どのボタンをセレクテッド状態に設定するかを示す情報であり、『upper_button_id_ref』,『lower_button_id_ref』,『left_button_id_ref』,『Right_button_id_ref』からなる。
『upper_button_id_ref』は、ボタン(i)がセレクテッド状態である場合においてリモコンが操作され、上方向へのフォーカス移動を命じるキー(MOVEUPキー)が押下された場合、ボタン(i)の代わりに、セレクテッド状態にすべきボタンの番号を示す。もしこのフィールドにボタン(i)の番号が設定されていれば、MOVEUPキーの押下は無視される。
『lower_button_id_ref』,『left_button_id_ref』,『Right_button_id_ref』は、ボタン(i)がセレクテッド状態である場合において、リモコンが操作され、下方向へのフォーカス移動を命じるキー(MOVEDownキー),左方向へのフォーカス移動を命じるキー(MOVE Left キー),右方向へのフォーカス移動を命じるキー(MOVE Right キー)が押下された場合、ボタン(i)の押下の代わりに、セレクテッド状態にすべきボタンの番号を示す。もしこのフィールドにボタン(i)の番号が設定されていれば、これらのキーの押下は無視される。
『normal_state_info』は、ボタン(i)のノーマル状態を規定する情報であり、『normal_start_object_id_ref』、『normal_end_object_id_ref』、『normal_repeated_flag』を含む。
『normal_start_object_id_ref』は、ノーマル状態のボタン(i)をアニメーションで描画する場合、アニメーションを構成する複数ODSに付加された連番のうち、最初の番号がこのnormal_start_object_id_refに記述される。
『normal_end_object_id_ref』は、ノーマル状態のボタン(i)をアニメーションで描画する場合、アニメーションを構成する複数ODSに付加された連番たる『object_ID』のうち、最後の番号がこのnormal_end_object_id_refに記述される。このactivated_end_object_id_refに示されるIDが、normal_start_object_id_refに示されるIDと同じである場合、このIDにて示されるグラフィクスオブジェクトの静止画が、ボタン(i)の絵柄になる。
『normal_repeat_flag』は、ノーマル状態にあるボタン(i)のアニメーション表示を反復継続させるかどうかを示す。
『selected_state_info』は、ボタン(i)のセレクテッド状態を規定する情報であり、『selected_state_sound_id_ref』、『selected_start_object_id_ref』、『selected_end_object_id_ref』、『selected_repeat_flag』を含む。
『selected_state_sound_id_ref』は、ボタン(i)の状態がセレクテッド状態に変化した際、クリック音として再生させるべきサウンドデータを指定する情報である。この指定は、sound.bdmvと呼ばれるファイルに格納されているサウンドデータの識別子を記述することでなされる。本フィールドが0xFFである場合、サウンドデータは指定されていないことを意味し、クリック音再生はなされない。
『selected_start_object_id_ref』は、セレクテッド状態のボタン(i)をアニメーションで描画する場合、アニメーションを構成する複数ODSに付加された連番のうち、最初の番号がこのselected_start_object_id_refに記述される。
『selected_end_object_id_ref』は、セレクト状態のボタンをアニメーションで描画する場合、アニメーションを構成する複数ODSに付加された連番たる『object_ID』のうち、最後の番号がこのselected_end_object_id_refに記述される。このselected_end_object_id_refに示されるIDが、selected_start_object_id_refに示されるIDと同じである場合、このIDにて示されるグラフィクスオブジェクトの静止画が、ボタン(i)の絵柄になる。
『selected_repeat_flag』は、セレクテッド状態にあるボタン(i)のアニメーション表示を、反復継続するかどうかを示す。selected_start_object_id_refと、selected_end_object_id_refとが同じ値になるなら、本フィールド00に設定される。
『activated_state_info』は、ボタン(i)のアクティブ状態を規定する情報であり、 『activated_state_sound_id_ref』、『activated_start_object_id_ref』、『activated_end_object_id_ref』を含む。
『activated_state_sound_id_ref』は、button情報に対応するボタンのセレクテッド状態が変化した際、クリック音として再生させるべきサウンドデータを指定する情報である。この指定は、sound.bdmvに格納されているサウンドデータの識別子を記述することでなされる。本フィールドが0xFFである場合、サウンドデータは指定されていないことを意味し、クリック音再生はなされない。
『activated_start_object_id_ref』は、アクティブ状態のボタン(i)をアニメーションで描画する場合、アニメーションを構成する複数ODSに付加された連番のうち、最初の番号がこのactivated_start_object_id_refに記述される。
『activated_end_object_id_ref』は、アクティブ状態のボタンをアニメーションで描画する場合、アニメーションを構成する複数ODSに付加された連番たる『object_ID』のうち、最後の番号がこのactivated_end_object_id_refに記述される。
『ナビゲーションコマンド(navigation_command)』は、ボタン(i)がアクティブ状態になれば、実行されるコマンドである。ナビゲーションコマンドの代表的なものは、SetButtonPageコマンドである。SetButtonPageコマンドは、Multi-Pageメニューの所望のページを表示させ、そのページにおける所望のボタンをセレクテッド状態に設定させることを再生装置に命じるコマンドである。かかるナビゲーションコマンドを用いることにより、オーサリング担当者は、ページ切り換えを簡易に記述することができる。
以上がボタン情報の内部構成である。
<2デコーダモデルを採用する場合の制限>
続いて、レフトビュー及びライトビューのそれぞれについて、上述した各機能セグメントの各フィールドをどのように設定するのかについて説明するが、基本的にはPGの場合と同様である。すなわち、レフトビューIGストリームに含まれるDSの類型、及びcomposition_numberと、これに対応する、ライトビューIGストリームに含まれるDSの類型、及びcomposition_numberとが、同一の内容に設定されている。
また、レフトビューのDSに含まれる画面構成セグメントと、これに対応するライトビューのDSに含まれる画面構成セグメントとでは、それら画面構成セグメントを格納した各PESパケットのPTSの値が同一の値に設定されている。
さらに、レフトビューのDSのパレット定義セグメントと、これに対応するライトビューのDSのパレット定義セグメントとでは、コード値と、輝度及び色差との対応関係が同一の内容に設定されており、palette_idについても両者で同一になっている。
続いて、ICSにおいて上述した以外のフィールドをどのように記述するかについて説明する。図43、44は、Display Setに属するICSの記述例を示す図である。これらの図は、複数のボタンがグラフィクスプレーンに描画されている例を示している。
図43は、レフトビューのDSに属するICSの記述例である。図43に示すように、button情報(0)により定義されるタイトル1ボタンは、グラフィクスプレーンの座標系においてbutton_horizontal_position1(left), button_vertical_positionを基準点(左上)とした範囲に配置される。また、button情報(number_of_buttons-1)により定義されるタイトルmボタンは、グラフィクスプレーンの座標系においてbutton_horizontal_positionm(left), button_vertical_positionを基準点(左上)とした範囲に配置される。こうすることにより、各タイトルボタンがグラフィクスプレーンに書き込まれる。これにより、タイトルボタンは動画像と合成され表示される。
図44は、ライトビューのDSに属するICSの記述例である。図44に示すように、button情報(0)により定義されるタイトル1ボタンは、グラフィクスプレーンの座標系においてbutton_horizontal_position1(Right), button_vertical_positionを基準点(左上)とした範囲に配置される。また、button情報(number_of_buttons-1)により定義されるタイトルmボタンは、グラフィクスプレーンの座標系においてbutton_horizontal_positionm(Right), button_vertical_positionを基準点(左上)とした範囲に配置される。こうすることにより、グラフィクスがグラフィクスプレーンに書き込まれる。これにより、グラフィクスは動画像と合成され表示される。
上述のように、基準点として、button_vertical_positionはレフトビューとライトビューとで共通の値になっているが、button_horizontal_positionは、レフトビューとライトビューとで値が異なっている。
また、レフトビューとライトビューとでbutton _idには共通の値が設定される。これは、2デコーダ構成を採用した再生装置において、グラフィクスコントローラを2つのデコーダで共通にする構成をとっているからである。そのため、レフトビューとライトビューとで対応するDSのグラフィクスオブジェクトのbutton_idを同じ値に設定しておかないと、グラフィクスコントローラは、どのグラフィクスオブジェクト同士が対応関係にあるのか判別できないためである。
button_情報における上記以外の項目である、neighbor_info、normal_state_info、selectd_state_info、activated_state_info、navigation_commandについては、レフトビューとライトビューとで同一の内容になる。
さらに、レフトビューとライトビューとで対応するDSにおいて、composition_time_out_pts、selection_time_out_pts、user_time_out_dutrationが、同一の内容に設定されている。
以上の制限を加えることで、2デコーダ構成において、レフトビューIGストリームとライトビューIGストリームとによる立体視を実現することができる。
<再生装置>
続いて、本実施の形態における再生装置に搭載されるシステムLSIの詳細について説明する。図45は、本実施の形態におけるシステムLSIの内部構成を示す図である。基本的な構成は図32と同様である。図32と異なる点は、グラフィクスコントローラ86がレフトビューグラフィクスデコーダとライトビューグラフィクスデコーダとで共通になっていることである。以下、この理由を説明する。IGの場合には、グラフィクスデコーダは、UO検知モジュールからUOの通知を受け付けることが想定される。そのため、グラフィクスコントローラが2つあると、各々がUO検知モジュールからUOの通知を受け付けることになる。そうすると、UO検知モジュールからグラフィクスコントローラへのUOの通知はシリアルにしか行えないため、グラフィクスコントローラ間に時間差が生じることになる。その結果、UOに基づく処理を実行する際に、グラフィクスコントローラ間で不具合が生じる可能性がある。そのため、グラフィクスコントローラ86をレフトビューとライトビューとで共通にしている。
レフトビューとライトビューとで共通のGraphics Controller86は、Composition Buffer85aに配置されたICSを解読して、ICSに基づく制御をするとともに、CompositionBuffer85bに配置されたICSを解読して、ICSに基づく制御をする。
また、UO検知モジュール212からUOの通知を受け取ったときには、このUOに対応した制御をGraphics Decoder for Left view及びGraphicsDecoder for Right viewのそれぞれに対して行う。
より詳細には、Graphics Controller86は、Composition Buffer85aに配置されたICSにおける複数ページ情報のうち、PSR11により指定されているもの(カレントページ情報)のボタン情報を参照して、グラフィクスの描画を行う。この描画は、カレントページ情報内の各ボタン情報において、normal_state_infoのnormal_start_object_id及びnormal_end_object_idにより指定されているグラフィクスをObjectBuffer84aから読み出し、Graphics Plane for Left view9aに書き込むことでなされる。カレントページ情報内のボタン情報のうち、PSR10により指定されているものについては、selected_state_infoのselected_start_object_id及びselected_end_object_idにより指定されているグラフィクスをObjectBuffer84aから読み出し、Graphics Plane for Left view9aに書き込むこと描画される。かかる描画により、タイトル1ボタン〜タイトルmボタンが配されたページがGraphicsPlane for Left view9aに現れ、動画に合成されることになる。ライトビューについても同様である。
以上のように本実施の形態によれば、レフトビューIGストリームとライトビューIGストリームとで対応するDSにおいて、composition_stateが同一の内容に設定されているので、これらのDSを頭出しがなされることが判明している位置に配置することで、PGストリームの場合と同様に、ランダムアクセス時におけるグラフィクスの立体視を保証することができる。
また、再生装置内のグラフィクスコントローラをレフトビューとライトビューとで共通化することにより、2コントローラ構成を採用する場合と比較し、ハードウェア規模の削減が可能になり、製品の低コスト化を実現することができる。
(補足)
以上、本願の出願時点において、出願人が知り得る最良の実施形態について説明したが、本発明は上記実施の形態に限られないことは勿論である。
(1)再生装置200は、ローカルストレージをさらに備えていてもよい。ローカルストレージは、ビルドインメディア、リムーバブルメディアを備え、ダウンロードしてきた追加コンテンツやアプリケーションが使うデータなどの保存に用いられる。追加コンテンツの保存領域はBD-ROM毎に分かれており、またアプリケーションがデータの保持に使用できる領域はアプリケーション毎に分かれている。また、ダウンロードした追加コンテンツをどのようにBD-ROM上のデータとマージされるか、マージ規則が記載されたマージ管理情報もこのビルドインメディア、リムーバブルメディアに保存される。
ビルドインメディアとは例えば再生装置に内蔵されたハードディスクドライブ、メモリなどの書き込み可能な記録媒体である。
リムーバブルメディアとは、例えば可搬性を有する記録媒体であり、好適にはSDカードなどの可搬性を有する半導体メモリカードである。
リムーバブルメディアを半導体メモリカードとしたときを例に説明をすると、再生装置にはリムーバブルメディアを装着するためのスロット(図示せず)およびスロットに装着されたリムーバブルメディアを読み取るためのインターフェース(例えばメモリーカードI/F)が備えられており、スロットに半導体メモリを装着すると、リムーバブルメディアと再生装置とが電気的に接続され、インターフェース(例えばメモリーカードI/F)を利用して、半導体メモリに記録されたデータを電気信号に変換して読み出すことが可能となる。
再生装置200がローカルストレージを備える場合には、さらに仮想ファイルシステムを備えるとしてもよい。仮想ファイルシステムは、追加コンテンツと共にローカルストレージにダウンロードされたマージ管理情報を元に、ローカルストレージに格納された追加コンテンツとBD-ROM上のコンテンツをマージさせた、仮想的なBD-ROM(仮想パッケージ)を構築する。HDMVモードの動作主体であるコマンドインタプリタやBD-Jモードの動作主体であるBD-Jプラットフォームからは、仮想パッケージとオリジナルBD-ROMを区別なく参照することができる。仮想パッケージ再生中、再生装置はBD-ROM上のデータとローカルストレージ上のデータの両方を用いて再生制御を行うことになる。
また、再生装置200は、ネットワークインタフェースをさらに備えるとしてもよい。ネットワークインタフェースは、再生装置の外部と通信を行うためのものであり、インターネットでアクセス可能なサーバにアクセスしたり、ローカルネットワークで接続されたサーバにアクセスしたりすることが可能である。例えば、インターネット上に公開されたBD-ROM追加コンテンツのダウンロードに用いられたり、コンテンツが指定するインターネット上のサーバとの間でデータ通信を行うこうことでネットワーク機能を利用したコンテンツの再生を可能としたりする。BD-ROM追加コンテンツとは、オリジナルのBD-ROMにないコンテンツで、例えば追加の副音声、字幕、特典映像、アプリケーションなどである。BD-Jプラットフォームからネットワークインタフェースを制御することができ、インターネット上に公開された追加コンテンツをローカルストレージにダウンロードすることができる。
(2)追加コンテンツとして、レフトビュー及びライトビューのPGストリームを別途ダウンロードすることにより取得することがある。その場合に、一つのAVClip内に、レフトビュー及びライトビューのPGストリームのみが存在する場合が考えられる。この場合の制限について説明する。
図46はPGストリーム(L)とPGストリーム(R)とを多重化する模式図である。ここで、1番上の段は、PGストリーム(L)の構成例を示しており、ここではDisplaySet(L)1とDisplay Set(L)2の2つのDSから構成されている。
上から2段目は、PGストリーム(L)をTSパケット化している様子を示している。
1番下の段は、PGストリーム(R)の構成例を示しており、ここではDisplay Set(R)1とDisplay Set(R)2の2つのDSから構成されている。
下から2段目は、PGストリーム(R)をTSパケット化している様子を示している。
ここで、3D表示のためにはレフトビューとライトビューとでペアになるDSが必要であるが、この図ではDisplay Set(L)1とDisplay Set(R)1、及びDisplaySet(L)2とDisplay Set(R)2が、それぞれペアとして3D表示のために用いられる。多重化の際には、ペアとなるレフトビューのDSとライトビューのDSは、本図に示すように、常にレフトビューのDSの方が、ストリーム上で先行するよう配置される。すなわち、レフトビューのDSの方が、TSパケットナンバーが小さくなるよう配置される。それに加えて、エントリーマップテーブルをレフトビューストリームに対して設定する。これにより、飛び込み再生時であっても、レフトビューのDSをデコードした直後にライトビューのDSをデコードできるため、常にレフトビューDSとライトビューDSをペアでデコードできる。よって、ペアのうち片方だけがデコードでき、もう一方がデコードできないといった事態を回避することができる。
また、本図に、飛び込み再生や特殊再生で用いられるエントリーの位置を記載しているが、レフトビューとライトビューとでペアとなるDSの両方ともが、エントリーで示されるTSパケットより後方に配置されることで、前述のエントリーを元に飛び込み再生が行われた際にも、ペアとなるレフトビュー及びライトビューのDSが正しく表示される。
なお、この例ではエントリーの後方にペアとなるDSを配置するように記載したが、両方のDSをエントリーの前方に配置するようにしてもよい。この場合、エントリーを元に飛び込み再生を行った場合、ペアとなる両方のDSがデコードできないため、レフトビュー及びライトビューのどちらか片方だけが表示されることを防ぐことができ、視聴者の違和感を軽減できる。
(3)上記各実施の形態では、レフトビューとライトビューとで別々のPGストリームを用意する場合について説明したが、ここでは1本のPGストリームで3D表示に対応させる第1の方法について説明する。図47は、3D-PCSのデータ構造を示している。図14で説明したPCSと3D-PCSとの差は、composition_object()で示されるフィールドにおいて、objectが左目用か右目用かを示すL_R_flagが追加されていることである。例えば、あるcomposition_object()が左目用を示す場合には、L_R_flagは0に設定され、右目用を示す場合には、L_R_flagは1に設定される。
通常3DでPGを表示する場合、左目用のObjectと右目用のObjectとがペアとなっている必要がある。つまり、3D-PCS内においてnumber_of_compositionの値は、必ず偶数である必要があり、また左目用composition_object()と右目用composition_object()とは同じ数だけ存在しなければならない。
また、機能セグメントとしての3D-PCSは、多重化(2D用のPCSを含む)される際、図48(a)で示すように、ストリーム上において、2D用のPCSよりも先行した位置に配置されている。言い換えると、2D用のPCSよりもTSパケットナンバーが小さくなるよう配置されており、これにより、3D対応再生装置は、3D-PCSを先に見つけることが可能となるため、3D表示に必要ない2D用のPCSを読み飛ばすことが可能となる。
また、図中で3D-ODSとして表記されているのは、3D-PCSからしか参照されないObjectを含むODSを示しており、3D-ODSのsegment_typeを、ODSのsegment_typeと異なる値に設定しておくことによって、3D未対応の再生装置においては、3D-ODSを読み飛ばすことができるため、デコード負荷を軽減することが可能となる。さらに、あるObjectが2D用のPCSと3D-PCSとの両方から参照されている場合には、3D-ODSではなく、ODSとして定義しておくことで、2D用と3D用のObjectを共用することが可能となる。
また、例えば複数のcomposition_object()が3D-PCSに存在する場合には、左目用のcomposition_object()の次に必ず対応する右目用のcomposition_object()を置くようにするとしてもよい。このようにペアとなるL用とR用のcomposition_object()を連続して配置することにより、L用とR用のそれぞれのcomposition_object()が持つforced_on_flagが同じであることを容易に検証可能となる利点がある。また、このようにLとRの並ぶ順序を制限することによって、各composition_object()がL用かR用かを示すL-R_flagを削除することも可能となるため、既存の2D用PCSとまったく同じデータ構造を採用することが可能となり、2D用PCSの解釈プログラムをほとんど変更することなく3D-PCSを解釈することも可能になる。
次に、1本のPGストリームで3D対応させる第2の方法について説明する。図48(a)との違いは、左目用の3D-PCS(3D-PCS(L))と右目用の3D-PCS(3D-PCS(R))とを個別に用意していることである(図48(b)参照)。このように、予め左目用と右目用の3D-PCSを分ける利点について説明する。先ほどのLとRの両方の情報を含む3D-PCSの場合には、参照するObjectが左目用か、右目用かを示すためのフラグ(L_R_flag)を新規に設定する必要がある。また、フラグを設けない場合には、奇数番目のcomposition_object()がL用で、偶数番目のcomposition_object()がR用である、などの配置の制限が必要であった。つまり、3D-PCSをデコードする際には、2D用のPCSを解釈するプログラムを変更して、L_R_flagという新規フィールドを読めるようにする必要があり、または奇数番目のcomposition_object()と偶数番目のcomposition_onject()をそれぞれL用R用として処理する必要があった。
これに対して3D-PCS(L)と3D-PCS(R)のようにセグメントを分けて伝送することで、3D-PCS(L)及び3D-PCS(R)の構造は、2D用のPCSと同じ構造をとることができるため、2D用のPCSを解釈するプログラムをそのまま流用することができる。この場合、3D-PCS(L)及び3D-PCS(R)と2D用のPCSをデコーダが区別するために、segment_typeを異なるものに設定すればよい。例えば、通常の2D用PCSのsegment_typeが0x00と設定されているときに3D-PCS(L)用のsegment_typeの値を0x01、3D-PCS(R)のsegment_typeの値を0x02と設定する。または、3D-PCS(L)と3D-PCS(R)との配置に関して、3D-PCS(L)のTSパケット番号の方が小さくなるようにすることで、3D-PCS(L)と3D-PCS(R)との両方のsegment_typeを0x01に設定したとしても、デコーダは、2D用のPCSと3D-PCSとを区別することが可能となる。
また、3D-PCS(L)と3D-PCS(R)と2D用のPCSの配置に関しても、3D-PCS(L)及び3D-PCS(R)を先に配置し、その後2D用のPCSを配置することで、3D対応再生装置では3D-PCSを先に見つけた場合には、続く2D用PCSを読み飛ばすことが可能となるため、デコード負荷を軽減することが可能となる。
(4)上記実施の形態では、レフトビューとライトビューとで対応するDSにおいてcomposition_numberを等しく設定するとしたが、新しいフィールド(例えばL_R_Pairing_number)を設けて、このフィールドが、対応するDSで等しくなるよう設定してもよい。
(5)上記実施の形態では、レフトビューPGストリームは、当該ストリーム内のオブジェクトを参照し、ライトビューPGストリームは、当該ストリーム内のオブジェクトを参照するとしたが、例えば、ライトビューPGストリームからレフトビューPGストリームのオブジェクトを参照するようにしてもよい。このように左右のPGストリームが、互いのオブジェクトを参照できるようにすることで、左右で同じオブジェクトを伝送する必要がなくなり、伝送に必要な帯域を節約できるというメリットがある。
(6)上記実施の形態では、液晶シャッタゴーグル104は、液晶シャッタと制御部とから構成され、視聴者の左目にレフトビュー用の画像を、右目にライトビュー用の画像を供する仕組みとしたが、これに限定される必要はない。例えば、液晶ではなく偏光フィルタを用いることにより立体視を実現する眼鏡が市販されているが、そのような機構が用いられた眼鏡を用いてももちろんよい。
(7)上記実施の形態では、液晶シャッタゴーグル104を用いて立体視視聴を行う方法を前提に説明したが、レフトビュー画像・ライトビュー画像をそれぞれ左眼・右眼に視聴させる他の方式を利用してもよい。例えば、サイドバイサイド方式や、レンチキュラレンズなどを表示ディスプレイに使い、眼鏡などの特別な視聴器具を利用しない方式を用いていても構わない。
さらに、以下に示す技術的トピックについては、更なる改良や変更実施を加えることができる。各実施の形態に示した通り実施するか、これらの改良・変更を施すか否かは、何れも任意的であり、実施する者の主観によることは留意されたい。
<記録装置としての実施>
再生装置200が、ローカルストレージおよびリムーバブルメディアを具備している場合、これらへの書き込みを想定した構成になっているので、本願明細書に記載された再生装置は、記録装置としての機能を兼備しているといえる。再生装置200が記録装置として機能する場合、以下の2つの態様によって、管理オブジェクトの書き込みを実行する。
i)再生装置200が仮想パッケージを再生する機能をもつ場合、BD-Jオブジェクトの書き込みを以下のように行う。つまり、BD-ROMが装填された際、アプリケーションからの要求に従い、前記BD-ROMに対応する追加コンテンツを、ネットワークを介して、WWWサーバから取得する。取得された追加コンテンツはGUI管理テーブルが記述されてあるBD-Jオブジェクトを含む。「GUI管理テーブル」は、動作中のアプリケーションがGUIを行う際の管理テーブルであり、GUI表示を実行するにあたっての解像度や、GUIに用いるフォントデータ、GUIに対するメニューコール、タイトルコールがユーザによってなされた場合、これらのコールをマスクするかどうかを規定するマスクフラグを含む。
再生装置200において、記録制御を行う制御部は、前記アプリケーションからの要求に従い、取得したBD-Jオブジェクトをローカルストレージに書き込む。こうすることで、BD-ROMに記録されたコンテンツと、前記ローカルストレージに記録された追加コンテンツとを組み合わせることで、前記仮想パッケージを構築することが可能になる。
ここで、前記BD-ROMには、ディスクルート証明書の識別子、BD-ROMコンテンツを頒布した組織の識別子、BD-ROMの識別子が記録されており、追加コンテンツが格納されるべき領域は、ディスクルート証明書識別子と、組織識別子と、BD-ROM識別子とを含むファイルパスによって特定される。
前記アプリケーションは、追加コンテンツが格納されるべき領域を特定するファイルパスを、制御部に引き渡すことで書き込みを行う。
前記ローカルストレージが、ディレクトリ名、及び、ファイル名が255文字以下に制限されたファイルシステムを有している場合、前記ローカルストレージへの書き込みに用いられるファイルパスは、8文字以下のディレクトリ名、及び、ファイル名で、かつ拡張子名が3文字以下である8.3形式のファイルシステムにおけるファイル名と、拡張子との指定を含む。
ii)再生装置200がオンデマンドマニュファクチャサービス又は電子的セルスルーサービス(MODEST)の供給を受ける機能をもつ場合、BD-Jオブジェクトの書き込みを以下のように行う。
つまり再生装置200がオンデマンドマニュファクチャサービス又は電子的セルスルーサービスによってBD-Jオブジェクトの供給を受ける際、リムーバブルメディアにおけるルートディレクトリの配下に、デフォルトのディレクトリと、MODESTディレクトリとをクリエイトして、MODESTディレクトリの配下に、BDMVディレクトリをクリエイトする。MODESTディレクトリは、ファーストMODESTディレクトリであり、ファーストMODESTディレクトリは、前記サービスを初めて受けた際、クリエイトされるMODESTディレクトリである。ユーザが2回目以降にサービスを受ける際、再生装置200における制御部は、2回目以降のサービスに対応するMODESTディレクトリをクリエイトする。
そして、上述したように、GUI管理テーブルが記述されたBD-Jオブジェクトを取得すると、制御部は、デフォルトディレクトリにスタートアッププログラムを書き込み、MODESTディレクトリ配下のBDMVディレクトリにBD-Jオブジェクトを書き込む。このスタートアッププログラムは、記録媒体が再生装置200に装填された際、最初に実行されるべきプログラムであり、BDMVディレクトリを選択する操作をユーザから受け付けるためのメニューを再生装置200に表示させて、ルート変更機能を再生装置200に実行させる。このルート変更機能は、メニューに対する選択操作がユーザによってなされた場合、選択されたBDMVディレクトリが属するMODESTディレクトリをルートディレクトリとして認識させる機能である。かかるルート変更機能によって、BD-ROMを再生するのと同じ制御手順によって取得したBD-Jオブジェクトに基づく再生制御を実行することができる。
<Java(登録商標)アプリケーション>
BD-Jアプリケーションは、例えば電子商取引(EC(Electronic Commerce))のクライアントアプリケーションであってもよいし、ネット対戦型のオンラインゲームであってもよい。更に、検索エンジンと連携して、様々なオンラインサービスを、ユーザに供給するものでもよい。
<GUI管理テーブルを組込む単位>
GUI管理テーブルをBD-Jオブジェクトに設けてもよい。また、GUI管理テーブルをプレイリスト情報やプレイアイテム情報に対応付けるように設けて、カレントプレイリストが特定のプレイリストになったタイミングまたはカレントプレイアイテムが、特定のプレイアイテムになった際、プレーンメモリの解放を行った上で、立体視再生のためのプレーンメモリの確保又は平面視再生のためのプレーンメモリの確保を実行してもよい。このようにすることで、メモリデバイスの領域管理がより決め細かい時間精度でなされることになる。
<立体視のためのビデオストリーム>
レフトビュー用、ライトビュー用のビデオストリームをBD-ROMに記録しておくというのは、一例に過ぎない。ピクチャ毎に、画素毎の奥行き値を表すビデオストリームをエンハンスドビュービデオストリームとしてBD-ROMに記録しておいて、再生に供してもよい。
<実装すべきパッケージ>
再生装置の実施にあたっては、以下のBD-J Extensionを再生装置に実装するのが望ましい。BD-J Extensionは、GEM[1.0.2]を越えた機能を、Java(登録商標)プラットフォームに与えるために特化された、様々なパッケージを含んでいる。BD-JExtensionにて供給されるパッケージには、以下のものがある。
・org.bluray.media
このパッケージは、Java(登録商標) Media FrameWorkに追加すべき、特殊機能を提供する。アングル、音声、字幕の選択についての制御が、このパッケージに追加される。
・org.bluray.ti
このパッケージは、GEM[1.0.2]における"サービス"を"タイトル"にマップして動作するためのAPIや、BD-ROMからタイトル情報を問い合わせる機構や新たなタイトルを選択する機構を含む。
・org.bluray.application
このパッケージは、アプリケーションの生存区間を管理するためのAPIを含む。また、アプリケーションを実行させるにあたってのシグナリングに必要な情報を問い合わせるAPIを含む。
・org.bluray.ui
このパッケージは、BD-ROMに特化されたキーイベントのための定数を定義し、映像再生との同期を実現するようなクラスを含む。
・org.bluray.vfs
このパッケージは、データの所在に拘らず、データをシームレスに再生するため、BD-ROMに記録されたコンテンツ(on-discコンテンツ)と、BD-ROMに記録されていないLocalStorage上のコンテンツ(off-discコンテンツ)とをバインドする機構(Binding Scheme)を提供する。
Binding Schemeとは、BD-ROM上のコンテンツ(AVクリップ、字幕、BD-Jアプリケーション)と、Local Storage上の関連コンテンツとを関連付けるものである。このBindingSchemeは、コンテンツの所在に拘らず、シームレス再生を実現する。
<プログラミング言語の適用範囲>
上記実施形態では、仮想マシンのプログラミング言語としてJava(登録商標)を利用したが、Java(登録商標)ではなく、UNIX(登録商標) OSなどで使われているB-Shellや、PerlScript、ECMA Scriptなど他のプログラミング言語であっても良い。
<マルチドライブ化>
上記実施形態では、記録媒体の一例としてBD-ROM、BD-ROMからデータを読み出す機能を有する具体的な手段の一例としてBD-ROMドライブを例に挙げて説明をした。しかしながら、BD-ROMは単なる一例であり、記録媒体としてBD-R、BD-RE、DVD、CDなどの光ディスク媒体であっても、これらの記録媒体に上述したデータ構造を有するデータが格納されていること、これらの記録媒体を読み取るドライブ装置があれば、上述の実施の形態で説明した動作が可能である。
各実施の形態における記録媒体は、光ディスク、半導体メモリカード等、パッケージメディア全般を含んでいる。上記実施の形態の記録媒体は予め必要なデータが記録された光ディスク(例えばBD-ROM、DVD-ROMなどの既存の読み取り可能な光ディスク)を例に説明をしたが、これに限定される必要はなく、例えば、放送またはネットワークを経由して配信された本発明の実施に必要なデータを含んだ3Dコンテンツを光ディスクへ書き込む機能を有する端末装置(例えば左記の機能は再生装置に組み込まれていても良いし、再生装置とは別の装置であってもよい)を利用して書き込み可能な光ディスク(例えばBD-RE、DVD-RAMなどの既存の書き込み可能な光ディスク)に記録し、この記録した光ディスクを本発明の再生装置に適用しても本発明の実施は可能である。
また、記録媒体は光ディスク以外にも例えば、SDメモリカードなどのリムーバブルメディア(半導体メモリカード)であっても本発明の実施は可能である。
BD-ROMの代わりに半導体メモリを用いた場合には、半導体メモリカード内のデータを読み出すためのインタフェース(メモリカードI/F)を介してリードバッファ2、ヒープメモリ207、動的シナリオメモリ209、静的シナリオメモリ205に、データが転送されるように構成すればよい。
より詳細には、再生装置200のスロット(図示せず)に半導体メモリカードが挿入されると、メモリカードI/Fを経由して再生装置200と半導体メモリカードが電気的に接続される。半導体メモリカードに記録されたデータはメモリカードI/Fを介してリードバッファ2、ヒープメモリ207、動的シナリオメモリ209、静的シナリオメモリ205に転送されるように構成すればよい。
続いて、BD-ROMに記録されているデータの著作権保護の仕組みについて説明する。BD-ROMに記録されたデータのうち、例えば著作権の保護、データの秘匿性の向上の観点からデータの一部が、必要に応じて暗号化されている場合がある。
例えば、BD-ROMに記録されたデータのうち、暗号化されているデータは、例えばビデオストリームに対応するデータ、オーディオストリームに対応するデータ、またはこれらを含むストリームに対応するデータであったりする。
以後、BD-ROMに記録されたデータのうち、暗号化されているデータの解読について説明をする。
再生装置においては、BD-ROM内の暗号化されたデータを解読するために必要な鍵に対応するデータ(例えばデバイスキー)が予め再生装置に記憶されている。
一方、BD-ROMには暗号化されたデータを解読するために必要な鍵に対応するデータ(例えば上述のデバイスキーに対応するMKB(メディアキーブロック))と、暗号化されたデータを解読するための鍵自体を暗号化したデータ(例えば上述のデバイスキー及びMKBに対応する暗号化タイトルキー)が記録されている。ここで、デバイスキー、MKB、及び暗号化タイトルキーは対になっており、さらにBD-ROM上の通常コピーできない領域(BCAと呼ばれる領域)に書き込まれた識別子(例えばボリュームID)とも対応付けがされている。この組み合わせが正しくなければ、暗号の解読ができないものとする。組み合わせが正しい場合のみ、暗号解読に必要な鍵(例えば上述のデバイスキー、MKB及びボリュームIDを元に、暗号化タイトルキーを復号して得られるタイトルキー)を導き出すことができ、この暗号解読に必要な鍵を用いて、暗号化されたデータの解読が可能となる。
装填されたBD-ROMを再生装置において再生する場合、例えばBD-ROM内の暗号化タイトルキー、MKBと対になっている(または対応する)デバイスキーが再生装置内になければ、暗号化されたデータは再生がなされない。何故ならば、暗号化されたデータの解読に必要な鍵(タイトルキー)は、鍵自体が暗号化されて(暗号化タイトルキー)BD-ROM上に記録されており、MKBとデバイスキーの組み合わせが正しくなければ、暗号の解読に必要な鍵を導き出すことができないからである。
逆に暗号化タイトルキー、MKB、デバイスキー及びボリュームIDの組み合わせが正しければ、例えば上述の暗号解読に必要な鍵(デバイスキー、MKB及びボリュームIDを元に、暗号化タイトルキーを復号して得られるタイトルキー)を用いてビデオストリームがデコーダにてデコードされ、オーディオストリームがオーディオデコーダにてデコードされるように再生装置は構成されている。
以上が、BD-ROMに記録されているデータの著作権保護の仕組みであるが、この仕組みは、BD-ROMに必ずしも限定されるのではなく、例えば、読込み/書込み可能な半導体メモリ(例えばSDカードなどの可搬性を有する半導体メモリカード)に適用した場合においても、実施が可能である。
例えば、BD-ROMに記録されるデータに相応するデータを例えば電子配信を利用して半導体メモリカードに記録して、半導体メモリカードから再生をするような構成としても良い。電子配信を利用して必要なデータを配信し、配信されたデータを記録する場合においても、配信されたデータのうちの一部または全てのデータに対して必要に応じて暗号化を行なって配信し、半導体メモリに必要なデータについては暗号化がなされたままで記録するのが望ましい。
電子配信を利用して、本実施の形態で説明をしたデータに相応するデータ(配信データ)を半導体メモリに記録する動作について説明をする。
上述の動作は本実施の形態において説明をした再生装置がそのような動作を行なえるように構成をされていても良いし、本実施の形態の再生装置とは別に半導体メモリに配信データを記憶することを行う専用の端末装置にて行なうような形態であっても良い。ここでは再生装置が行なう例について説明をする。また記録先の半導体メモリとしてSDカードを例に説明をする。
再生装置が備えるスロットに挿入されたSDメモリカードに配信データを記録する場合、まず配信データを蓄積する配信サーバ(図示せず)へ配信データの送信を要求する。このとき再生装置は挿入したSDメモリカードを一意に識別するための識別情報(例えば個々のSDメモリカード固有の識別番号、より具体的には、例えばSDメモリカードのシリアル番号等)をSDメモリカードから読み出して、読み出した識別情報を配信要求とともに、配信サーバへ送信する。
この、SDメモリカードを一意に識別するための識別情報は例えば上述のボリュームIDに相当する。
一方、配信サーバでは、配信するデータのうち必要なデータ(例えばビデオストリーム、オーディオストリーム等)が暗号解読に必要な鍵(例えばタイトルキー)を用いて暗号の解除ができるように暗号化がなされてサーバ上に格納されている。
例えば配信サーバは、秘密鍵を保持しており、半導体メモリカードの固有の識別番号のそれぞれに対して異なる公開鍵情報が動的に生成できるように構成されている。
また、配信サーバは、暗号化されたデータの解読に必要な鍵(タイトルキー)自身に対して暗号化ができるように構成されている(つまり暗号化タイトルキーを生成できるように構成されている)。
生成される公開鍵情報は例えば上述のMKB、ボリュームID及び暗号化タイトルキーに相当する情報を含む。暗号化されたデータは例えば半導体メモリ固有の識別番号、後述する公開鍵情報に含まれる公開鍵本体、および再生装置に予め記録されたデバイスキーの組み合わせが正しければ、暗号解読に必要な鍵(例えばデバイスキー、MKB及び半導体メモリ固有の識別番号を元に、暗号化タイトルキーを復号して得られるタイトルキー)が得られ、この得られた暗号解読に必要な鍵(タイトルキー)を用いて、暗号化されたデータの解読ができるものである。
次に、再生装置は、受信した公開鍵情報と配信データをスロットに挿入した半導体メモリカードの記録領域に記録する。
次に、半導体メモリカードの記録領域に記録した公開鍵情報と配信データに含まれるデータのうち暗号化したデータを復号して再生する方法の一例について説明をする。
受信した公開鍵情報は例えば公開鍵本体(例えば上述のMKB及び暗号化タイトルキー)、署名情報、半導体メモリカードの固有の識別番号、および無効にすべきデバイスに関する情報を示すデバイスリストが記録されている。
署名情報には例えば、公開鍵情報のハッシュ値を含む。
デバイスリストには例えば、不正に再生がなされる可能性があるデバイスに関する情報が記載されている。これは例えば再生装置に予め記録されたデバイスキー、再生装置の識別番号、または再生装置が備えるデコーダの識別番号といったように、不正に再生される可能性がある装置、装置に含まれる部品、または機能(プログラム)といったものを一意に特定するための情報である。
半導体メモリカードの記録領域に記録した配信データのうち、暗号化されたデータの再生に関し、説明をする。
まず、公開鍵本体を利用して暗号化したデータを復号する前に復号鍵本体を機能させてよいかどうかに関するチェックを行う。
具体的には、
(1) 公開鍵情報に含まれる半導体メモリ固有の識別情報と半導体メモリカードに予め記憶されている固有の識別番号とが一致するかどうかのチェック
(2) 再生装置内で算出した公開鍵情報のハッシュ値と署名情報に含まれるハッシュ値が一致するかのチェック
(3) 公開鍵情報に含まれるデバイスリストに示される情報に基づいて、再生を行う再生装置が不正な再生が可能かどうかのチェック(例えば公開鍵情報に含まれるデバイスリストに示されるデバイスキーと、再生装置に予め記憶されたデバイスキーが一致するかどうかのチェック)
を行なう。これらのチェックを行なう順番どのような順序で行なってもよい。
上述の(1)〜(3)のチェックにおいて、公開鍵情報に含まれる半導体メモリ固有の識別情報と半導体メモリに予め記憶されている固有の識別番号とが一致しない、再生装置内で算出した公開鍵情報のハッシュ値と署名情報に含まれるハッシュ値が一致しない、または、再生を行う再生装置が不正に再生される可能性があると判断した、のいずれかを満足すれば、再生装置は、暗号化されたデータの解読がなされないように制御する。
また、公開鍵情報に含まれる半導体メモリカードの固有の識別情報と半導体メモリカードに予め記憶されている固有の識別番号とが一致し、かつ再生装置内で算出した公開鍵情報のハッシュ値と署名情報に含まれるハッシュ値が一致し、かつ再生を行う再生装置が不正に再生される可能性がないと判断したのであれば、半導体メモリ固有の識別番号、公開鍵情報に含まれる公開鍵本体、および再生装置に予め記録されたデバイスキーの組み合わせが正しいと判断し、暗号解読に必要な鍵(デバイスキー、MKB及び半導体メモリ固有の識別番号を元に、暗号化タイトルキーを復号して得られるタイトルキー)を用いて、暗号化されたデータの解読を行なう。
例えば暗号化されたデータがビデオストリーム、オーディオストリームである場合、ビデオデコーダは上述の暗号解読に必要な鍵(暗号化タイトルキーを復号して得られるタイトルキー)を利用してビデオストリームを復号し(デコードし)、オーディオデコーダは、上述の暗号解読に必要な鍵を利用してオーディオストリームを復号する(デコードする)。
このように構成をすることにより、電子配信時において不正利用される可能性がある再生装置、部品、機能(プログラム)などが分っている場合、これらを識別するための情報をデバイスリストに示して、配信するようにすれば、再生装置側がデバイスリストに示されているものを含むような場合には公開鍵情報(公開鍵本体)を用いた復号を抑止できるようにできるため、半導体メモリ固有の識別番号、公開鍵情報に含まれる公開鍵本体、および再生装置に予め記録されたデバイスキーの組み合わせが、たとえ正しくても、暗号化されたデータの解読がなされないように制御できるため、不正な装置上での配信データの利用を抑止することが可能となる。
また半導体メモリカードに予め記録されている半導体メモリカードの固有の識別子は秘匿性の高い記録領域に格納するような構成を採用するのが望ましい。何故ならば、半導体メモリカードに予め記録されている固有の識別番号(例えばSDメモリカードを例にすればSDメモリカードのシリアル番号等)は改竄がなされると、違法コピーが容易になされてしまう。何故ならば複数の半導体メモリカードには、それぞれ異なる固有の識別番号が割り当てられているが、この固有の識別番号が同一となるように改竄がなされてしまえば、上述の(1)の判定が意味を成さなくなり、改竄がなされた数に相当する違法コピーがなされてしまう可能性があるからである。
従って、半導体メモリカードの固有の識別番号といった情報は秘匿性が高い記録領域に記録するような構成を採用するのが望ましい。
このような構成を実現するために、例えば半導体メモリカードは、半導体メモリカードの固有の識別子と言った秘匿性の高いデータを記録するための記録領域を通常のデータを格納する記録領域(第1の記録領域と称す)とは別の記録領域(第2の記録領域と称す)に設けること、およびこの第2の記録領域へのアクセスをするための制御回路を設けるとともに、第2の記録領域へのアクセスには制御回路を介してのみアクセスできるような構成とする。
例えば、第2の記録領域に記録されているデータは暗号化がなされて、記録されており、制御回路は、例えば暗号化されたデータを復号するための回路が組み込まれている。制御回路へ第2の記録領域へのデータのアクセスが合った場合には、暗号を復号し、復号したデータを返すように構成すれば良い。または、制御回路は第2の記録領域に記録されているデータの格納場所の情報を保持しており、データのアクセスの要求があれば、対応するデータの格納場所を特定し、特定した格納場所から読み取ったデータを返すような構成としても良い。
再生装置上で動作するアプリケーションで、電子配信を利用して半導体メモリカードに記録する要求するアプリケーションは、メモリカードI/Fを介して制御回路へ第2の記録領域に記録されたデータ(例えば半導体メモリ固有の識別番号)へのアクセス要求を発行すると、要求を受けた制御回路は第2の記録領域に記録されたデータを読み出して再生装置上で動作するアプリケーションへ返す。この半導体メモリカードの固有の識別番号とともに必要なデータの配信要求を配信サーバに要求し、配信サーバから送られる公開鍵情報、および対応する配信データを第1の記録領域に記録するように構成すればよい。
また、再生装置上で動作するアプリケーションで、電子配信を利用して半導体メモリカードに記録を要求するアプリケーションは、メモリカードI/Fを介して制御回路へ第2の記録領域に記録されたデータ(例えば半導体メモリ固有の識別番号)へのアクセス要求を発行する前に、アプリケーションの改竄がされていないかを事前にチェックすることが望ましい。改竄のチェックには例えば既存のX.509仕様に準拠したデジタル証明書を利用したチェックなどを利用しても良い。
また、半導体メモリカードの第1の記録領域に記録された配信データへのアクセスは半導体メモリカードが有する制御回路を介してアクセスする必要は必ずしもない。
<プログラムの実施形態>
各実施の形態に示したアプリケーションプログラムは、以下のようにして作ることができる。先ず初めに、ソフトウェア開発者は、プログラミング言語を用いて、各フローチャートや、機能的な構成要素を実現するようなソースプログラムを記述する。この記述にあたって、ソフトウェア開発者は、プログラミング言語の構文に従い、クラス構造体や変数、配列変数、外部関数のコールを用いて、各フローチャートや、機能的な構成要素を具現するソースプログラムを記述する。
記述されたソースプログラムは、ファイルとしてコンパイラに与えられる。コンパイラは、これらのソースプログラムを翻訳してオブジェクトプログラムを生成する。
コンパイラによる翻訳は、構文解析、最適化、資源割付、コード生成といった過程からなる。構文解析では、ソースプログラムの字句解析、構文解析および意味解析を行い、ソースプログラムを中間プログラムに変換する。最適化では、中間プログラムに対して、基本ブロック化、制御フロー解析、データフロー解析という作業を行う。資源割付では、ターゲットとなるプロセッサの命令セットへの適合を図るため、中間プログラム中の変数をターゲットとなるプロセッサのプロセッサが有しているレジスタまたはメモリに割り付ける。コード生成では、中間プログラム内の各中間命令を、プログラムコードに変換し、オブジェクトプログラムを得る。
ここで生成されたオブジェクトプログラムは、各実施の形態に示したフローチャートの各ステップや、機能的構成要素の個々の手順を、コンピュータに実行させるような1つ以上のプログラムコードから構成される。ここでプログラムコードは、プロセッサのネイティブコード、JAVA(登録商標)バイトコードというように、様々な種類がある。プログラムコードによる各ステップの実現には、様々な態様がある。外部関数を利用して、各ステップを実現することができる場合、この外部関数をコールするコール文が、プログラムコードになる。また、1つのステップを実現するようなプログラムコードが、別々のオブジェクトプログラムに帰属することもある。命令種が制限されているRISCプロセッサでは、算術演算命令や論理演算命令、分岐命令等を組合せることで、フローチャートの各ステップを実現してもよい。
オブジェクトプログラムが生成されるとプログラマはこれらに対してリンカを起動する。リンカはこれらのオブジェクトプログラムや、関連するライブラリプログラムをメモリ空間に割り当て、これらを1つに結合して、ロードモジュールを生成する。こうして生成されるロードモジュールは、コンピュータによる読み取りを前提にしたものであり、各フローチャートに示した処理手順や機能的な構成要素の処理手順を、コンピュータに実行させるものである。かかるプログラムをコンピュータ読取可能な記録媒体に記録してユーザに提供してよい。
<システムLSIの単体実施>
システムLSIとは、高密度基板上にベアチップを実装し、パッケージングしたものをいう。複数個のベアチップを高密度基板上に実装し、パッケージングすることにより、あたかも1つのLSIのような外形構造を複数個のベアチップに持たせたものも、システムLSIに含まれる(このようなシステムLSIは、マルチチップモジュールと呼ばれる。)。
ここでパッケージの種別に着目するとシステムLSIには、QFP(クッド フラッド アレイ)、PGA(ピン グリッド アレイ)という種別がある。QFPは、パッケージの四側面にピンが取り付けられたシステムLSIである。PGAは、底面全体に、多くのピンが取り付けられたシステムLSIである。
これらのピンは、他の回路とのインタフェースとしての役割を担っている。システムLSIにおけるピンには、こうしたインタフェースの役割が存在するので、システムLSIにおけるこれらのピンに、他の回路を接続することにより、システムLSIは、再生装置200の中核としての役割を果たす。
かかるシステムLSIは、再生装置200は勿論のこと、TVやゲーム、パソコン、ワンセグ携帯等、映像再生を扱う様々な機器に組込みが可能であり、本発明の用途を多いに広げることができる。
上記実施の形態で示したように、バッファやビデオデコーダ、オーディオデコーダ、グラフィクスデコーダをも、一体のシステムLSIにする場合、システムLSIのアーキテクチャは、Uniphierアーキテクチャに準拠させるのが望ましい。
Uniphierアーキテクチャに準拠したシステムLSIは、以下の回路ブロックから構成される。
・データ並列プロセッサDPP
これは、複数の要素プロセッサが同一動作するSIMD型プロセッサであり、各要素プロセッサに内蔵されている演算器を、1つの命令で同時動作させることで、ピクチャを構成する複数画素に対するデコード処理の並列化を図る。
・命令並列プロセッサIPP
これは、命令RAM、命令キャッシュ、データRAM、データキャッシュからなる「Local Memory Controller」、命令フェッチ部、デコーダ、実行ユニット、レジスタファイルからなる「ProcessingUnit部」、複数アプリケーションの並列実行をProcessing Unit部に行わせる「Virtual Multi Processor Unit部」で構成される。
・MPUブロック
これは、ARMコア、外部バスインタフェース(Bus Control Unit:BCU)、DMAコントローラ、タイマー、ベクタ割込コントローラといった周辺回路、UART、GPIO(GeneralPurpose Input Output)、同期シリアルインタフェースなどの周辺インタフェースで構成される。
・ストリームI/Oブロック
これは、USBインタフェースやATA Packetインタフェースを介して、外部バス上に接続されたドライブ装置、ハードディスクドライブ装置、SDメモリカードドライブ装置とのデータ入出力を行う。
・AVI/Oブロック
これは、オーディオ入出力、ビデオ入出力、OSDコントローラで構成され、テレビ、AVアンプとのデータ入出力を行う。
・メモリ制御ブロック
これは、外部バスを介して接続されたSD-RAMの読み書きを実現するブロックであり、各ブロック間の内部接続を制御する内部バス接続部、システムLSI外部に接続されたSD-RAMとのデータ転送を行うアクセス制御部、各ブロックからのSD-RAMのアクセス要求を調整するアクセススケジュール部からなる。
具体的な生産手順の詳細は以下のものになる。まず各実施の形態に示した構成図を基に、システムLSIとすべき部分の回路図を作成し、回路素子やIC,LSIを用いて、構成図における構成要素を具現化する。
そうして、各構成要素を具現化してゆけば、回路素子やIC,LSI間を接続するバスやその周辺回路、外部とのインタフェース等を規定する。更には、接続線、電源ライン、グランドライン、クロック信号線等も規定してゆく。この規定にあたって、LSIのスペックを考慮して各構成要素の動作タイミングを調整したり、各構成要素に必要なバンド幅を保証したりする等の調整を加えながら、回路図を完成させてゆく。
回路図が完成すれば、実装設計を行う。実装設計とは、回路設計によって作成された回路図上の部品(回路素子やIC,LSI)を基板上のどこへ配置するか、あるいは、回路図上の接続線を、基板上にどのように配線するかを決定する基板レイアウトの作成作業である。
こうして実装設計が行われ、基板上のレイアウトが確定すれば、実装設計結果をCAMデータに変換して、NC工作機械等の設備に出力する。NC工作機械は、このCAMデータを基に、SoC実装やSiP実装を行う。SoC(Systemon chip)実装とは、1チップ上に複数の回路を焼き付ける技術である。SiP(System in Package)実装とは、複数チップを樹脂等で1パッケージにする技術である。以上の過程を経て、本発明に係るシステムLSIは、各実施の形態に示した再生装置200の内部構成図を基に作ることができる。
尚、上述のようにして生成される集積回路は、集積度の違いにより、IC、LSI、スーパーLSI、ウルトラLSIと呼称されることもある。
FPGAを用いてシステムLSIを実現した場合は、多数のロジックエレメントが格子状に配置されており、LUT(Look Up Table)に記載されている入出力の組合せに基づき、縦・横の配線をつなぐことにより、各実施形態に示したハードウェア構成を実現することができる。LUTは、SRAMに記憶されており、かかるSRAMの内容は、電源断により消滅するので、かかるFPGAの利用時には、コンフィグ情報の定義により、各実施形態に示したハードウェア構成を実現するLUTを、SRAMに書き込ませる必要がある。
本実施の形態においては、ミドルウェアとシステムLSIに対応するハードウェア、システムLSI以外のハードウェア、ミドルウェアに対するインタフェースの部分、ミドルウェアとシステムLSIとの間のインタフェースの部分、ミドルウェアとシステムLSI以外の必要なハードウェアとの間のインタフェースの部分、ユーザインタフェースの部分で実現し、これらを組み込んで再生装置を構成したとき、それぞれが連携して動作することにより特有の機能が提供されることになる。
ミドルウェアに対するインタフェース、および、ミドルウェアとシステムLSIのインタフェースを適切に定義することにより、再生装置のユーザインタフェース部分、ミドルウェア部分、システムLSI部分をそれぞれ独立して並行開発することができ、より効率よく開発することが可能となる。なお、それぞれのインタフェースの部分のきり方には、様々なきり方がある。例えば、ビデオデコーダ、グラフィクスデコーダ、オーディオデコーダ、加算器(合成部)を一チップ化したとき、これらを制御するミドルウェアおよびこれらと対応するミドルウェアとの間のインタフェースの部分について、チップを開発する側で開発をし、完成後、チップを再生装置に組み込むとともに、開発したミドルウェア、インタフェース部分を再生装置内のメモリなどの記憶部に組み入れることにより、再生装置側の開発とチップ側の開発を並行して行なうことができるようになり、開発効率が向上する。
開発したチップと開発したチップに関連するミドルウェアとの間のインタフェース部分について、共通にすると、汎用性が高くなる。
なお、システムLSIにて構成をした部分に関しては、LSIでしか構成ができないというものではなく、システムLSIに含まれるべき機能に対応する信号処理回路を用いて構成をしても良いことは言うまでもない。
<記録方法>
記録媒体の作り方、つまり、所定のデータが記録された記録媒体を得るための記録方法の使用形態について説明する。
上記各実施の形態に係る記録方法は、AVクリップやそれ以外のデータをリアルタイムに作成して、記録媒体の領域にダイレクトに書き込むというリアルタイムレコーディングだけではなく、ボリューム領域に記録すべきビットストリームの全体像を事前に作成して、このビットストリームを元に原盤ディスクを作成し、この原盤ディスクをプレスすることで、光ディスクを量産するという間接的な書き込み、つまり、プレフォーマットレコーディングも含む。上記各実施の形態に係る記録媒体は、リアルタイムレコーディングによる記録方法、及び、プレフォーマッティングレコーディングによる記録方法の何れの記録方法によっても特定されるものでもある。
この記録方法は、動画、音声、字幕、メニューといったデータ素材のインポートを行うステップと、インポートされたデータ素材をデジタル化して圧縮符号化し、MPEGに従ったエンコードを行うことでPESストリームを得るステップと、PESストリームを多重化してAVクリップを得るステップと、Java(登録商標)プログラム、多重化ステップで得られたAVクリップを入力とし、BD-ROMに準拠したファイルシステムフォーマットでAVファイル,非AVファイルを作成するステップと、BD-ROMに記録されるべきデータのうち、非AVファイルを記録媒体に書き込むステップ、AVファイルを記録媒体に書き込むステップとを含む。
<ボリューム領域におけるエクステントの位置付け>
所定のデータがファイルに格納されて記録媒体に記録されている場合、ファイルシステム上では、“エクステント”という態様で扱われることはすでに説明した。記録媒体において、このエクステントのアドレスは、以下のようにして管理されている。
エクステントは、ボリューム領域におけるパーティション空間において、物理的に連続する複数のセクタ上に形成される。パーティション空間は、「ファイルセット記述子が記録された領域」、「終端記述子が記録された領域」、「ROOTディレクトリ領域」、「BDMVディレクトリ領域」、「JARディレクトリ領域」、「BDJOディレクトリ領域」、「PLAYLISTディレクトリ領域」、「CLIPINFディレクトリ領域」、「STREAMディレクトリ領域」から構成され、ファイルシステムによってアクセスされる領域のことである。以降、これらの領域について説明する。
「ファイルセット記述子」は、ディレクトリ領域のうち、ROOTディレクトリのファイルエントリが記録されているセクタを指し示す論理ブロック番号(LBN)を含む。「終端記述子」は、ファイルセット記述子の終端を示す。
次に、ディレクトリ領域の詳細について説明する。上述したような複数のディレクトリ領域は、何れも共通の内部構成を有している。つまり、「ディレクトリ領域」は、「ファイルエントリ」と、「ディレクトリファイル」と、「下位ファイルについてのファイル記録領域」とから構成される。
「ファイルエントリ」は、「記述子タグ」と、「ICBタグ」と、「アロケーション記述子」とを含む。
「記述子タグ」は、自身がファイルエントリである旨を示すタグである。
「ICBタグ」は、ファイルエントリ自身に関する属性情報を示す。
「アロケーション記述子」は、ディレクトリファイルの記録位置を示す論理ブロック番号(LBN)を含む。以上がファイルエントリについての説明である。続いて、ディレクトリファイルの詳細について説明する。
「ディレクトリファイル」は、「下位ディレクトリについてのファイル識別記述子」と、「下位ファイルのファイル識別記述子」とを含む。
「下位ディレクトリのファイル識別記述子」は、自身の配下にある下位ディレクトリをアクセスするための参照情報であり、その下位ディレクトリを示す識別情報と、その下位ディレクトリのディレクトリ名の長さと、下位ディレクトリのファイルエントリがどの論理ブロック番号に記録されているかを示すファイルエントリアドレスと、その下位ディレクトリのディレクトリ名とから構成される。
「下位ファイルのファイル識別記述子」は、自身の配下にある下位ファイルをアクセスするための参照情報であり、その下位ファイルを示す識別情報と、その下位ファイル名の長さと、下位ファイルについてのファイルエントリがどの論理ブロック番号に記録されているかを示すファイルエントリアドレスと、下位ファイルのファイル名とから構成される。
これらのディレクトリのディレクトリファイルにおけるファイル識別記述子には、下位ディレクトリ及び下位ファイルのファイルエントリが、どの論理ブロックに記録されているかが示されているので、このファイル識別記述子を辿ってゆけば、ROOTディレクトリのファイルエントリからBDMVディレクトリのファイルエントリに到達することができ、また、BDMVディレクトリのファイルエントリからPLAYLISTディレクトリのファイルエントリに到達することができる。同様に、JARディレクトリ、BDJOディレクトリ、CLIPINFディレクトリ、STREAMディレクトリのファイルエントリにも到達することができる。
「下位ファイルのファイル記録領域」とは、あるディレクトリの配下にある下位ファイルの実体が記録されている領域であり、当該下位ファイルについての「ファイルエントリ」と、1つ以上の「エクステント」とが記録されている。
「ファイルエントリ」は、「記述子タグ」と、「ICBタグ」と、「アロケーション記述子」とを含む。
「記述子タグ」は、自身がファイルエントリである旨を示すタグである。タグには、ファイルエントリ記述子、スペースビットマップ記述子などの種別があるが、ファイルエントリの場合には、記述子タグとしてファイルエントリを示す“261”が記述される。
「ICBタグ」は、ファイルエントリ自身に関する属性情報を示す。
「アロケーション記述子」は、あるディレクトリの配下にある下位ファイルを構成するエクステントの記録位置を示す論理ブロック番号(LBN)を含む。アロケーション記述子は、エクステント長を示すデータと、エクステントの記録位置を示す論理ブロック番号とを含む。ただしエクステント長を示すデータの上位2ビットは、“0”に設定されることで、割り付け済みかつ記録済みエクステントである旨を示し、“1”に設定されることで、割り付け済みかつ未記録エクステントである旨を示す。“0”に設定されることで、アロケーション識別子の続きのエクステントであることを示す。あるディレクトリの配下にある下位ファイルが複数のエクステントに分割されている場合には、ファイルエントリはエストテント毎に複数のアロケーション記述子を有することになる。
上述したようなファイルエントリのアロケーション識別子を参照することで、プレイリスト情報ファイル、クリップ情報ファイル、AVクリップファイル、BD-Jオブジェクトファイル、JARアーカイブファイルを構成するエクステントのアドレスを知得することができる。
本願の主眼となるストリーム、データ、フラグを格納したファイルは、そのファイルが帰属するディレクトリのディレクトリ領域内に存在するファイル記録領域のことであり、ディレクトリファイルにおけるファイル識別記述子、及び、ファイルエントリにおけるアロケーション識別子を辿ってゆくことで、アクセスすることができる。
<ファイルオープン>
記録媒体上のファイルを、装置内に読み込む際の処理について説明する。
上述したようなAVストリーム、Index.bdmv、JARファイル、BD-Jオブジェクトは、ファイル構造、ディレクトリ構造に従ってBD-ROMに記録されているので、再生装置は、ファイルオープンのためのシステムコールを行うことで、これらをメモリに読み出すことができる。
ファイルオープンとは、システムコール時に与えられたファイル名によってディレクトリを検索し、ファイルが存在すればFCB(File Control Block)を確保して、ファイルハンドルの番号を返す処理をいう。FCBは、目的のファイルのディレクトリエントリーの内容がメモリ上にコピーされることにより生成される。
<リアルタイムレコーディングへの適用>
AVクリップ、プレイリスト情報は、オーサリングシステムにおけるプリレコーディング技術にて、BD-ROMに記録され、ユーザに供給されることを前提としたが、リアルタイムレコーディングにてBD-RE又はBD-R、ハードディスク、半導体メモリカードに記録され、ユーザに供給されるものであってもよい。
この場合AVクリップは、アナログ入力信号を記録装置がリアルタイムエンコードすることにより得られたトランスポートストリームであってもよいし、記録装置がデジタル入力したトランスポートストリームをパーシャル化することで得られるトランスポートストリームであってもよい。
リアルタイムレコーディングを実行する記録装置は、ビデオ信号をエンコードしてビデオストリームを得るビデオエンコーダと、オーディオ信号をエンコードしてオーディオストリームを得るオーディオエンコーダと、ビデオストリーム、オーディオストリーム等を多重化して、MPEG2-TS形式のデジタルストリームを得るマルチプレクサと、MPEG2-TS形式のデジタルストリームを構成するTSパケットをソースパケットに変換するソースパケッタイザとを備え、ソースパケット形式に変換されたMPEG2デジタルストリームをAVクリップファイルに格納してBD-RE,BD-R等に書き込む。
デジタルストリームの書き込みと共に、記録装置の制御部は、メモリ上でクリップ情報やプレイリスト情報を生成する処理を行う。具体的には、ユーザによって録画処理が要求された際、制御部は、AVクリップファイル及びクリップ情報ファイルをBD-RE,BD-R上にクリエイトする。
そして、装置外部から入力されるトランスポートストリームからビデオストリームにおけるGOPの先頭位置が検出されるか、エンコーダによってビデオストリームのGOPが生成されれば、記録装置の制御部は、このGOPにおいて、先頭に位置するイントラピクチャのPTSと、このGOPの先頭部分を格納したソースパケットのパケット番号とを取得して、このPTS及びパケット番号の組みを、EP_PTSエントリー及びEP_SPNエントリーの組みとして、クリップ情報ファイルのエントリーマップに追記する。以降、GOPが生成される度に、EP_PTSエントリー及びEP_SPNエントリーの組みを、クリップ情報ファイルのエントリーマップに追記してゆく。この際、GOPの先頭がIDRピクチャである場合は、“オン”に設定されたis_angle_changeフラグをEP_PTSエントリー及びEP_SPNエントリーの組みに追加する。GOPの先頭がIDRピクチャでなければ場合は、“オフ”に設定されたis_angle_changeフラグをEP_PTSエントリー及びEP_SPNエントリーの組みに追加する。
また、クリップ情報ファイルにおけるストリームの属性情報については、記録されるべきストリームの属性に従い設定する。以上のようにしてAVクリップ、クリップ情報が生成されてBD-RE,BD-Rに書き込まれれば、このクリップ情報内のエントリーマップを介して、再生経路を定義するプレイリスト情報を生成し、BD-RE,BD-Rに書き込む。このような処理を、リアルタイムレコーディング技術において実行することで、AVクリップ−クリップ情報−プレイリスト情報という階層構造をBD-RE,BD-R上に得ることができる。
<マネージドコピーを実現する記録装置としての実施>
各実施の形態で説明した再生装置は、マネージドコピーによってデジタルストリームの書き込む機能を有していてもよい。
マネージドコピーとは、BD-ROM等の読み出し専用記録媒体に記録されているデジタルストリームやプレイリスト情報、クリップ情報、アプリケーションプログラムを、別の光ディスク(BD-R,BD-RE,DVD-R,DVD-RW,DVD-RAM等)やハードディスク、リムーバブルメディア(SDメモリカード、メモリスティック、コンパクトフラッシュ(登録商標)、スマートメディア、マルチメディアカード等)などの読み書き可能な記録媒体へコピーする際、サーバと通信を行い、認証が行われ許可された状態においてのみコピー実行可能にする技術である。この技術により、バックアップ回数を制限したり、課金された状態でのみバックアップを許したりする等の制御を行うことができる。
BD-ROMからBD-R,BD-REへのコピーを実現する場合、コピー元と、コピー先とで記録容量が同じであるなら、マネージドコピーにおいては、コピー元となるBD-ROMにおけるビットストリームを最内周から最外周まで、順次コピーしてゆくという動作で足りる。
マネージドコピーが、異種媒体間のコピーを想定したものであるなら、トランスコードが必要になる。ここで“トランスコード”とは、BD-ROMに記録されているデジタルストリームの形式をMPEG2トランスポートストリーム形式からMPEG2プログラムストリーム形式等に変換したり、ビデオストリーム及びオーディオストリームに割り当てられているビットレートを低くして再エンコードすることにより、デジタルストリームを、コピー先メディアのアプリケーションフォーマットに適合させたりする処理をいう。かかるトランスコードにあたっては、上述したリアルタイムレコーディング技術の処理を行うことで、AVClip、Clip情報、プレイリスト情報を得る必要がある。
<オンデマンドマニュファクチャサービス又は電子的セルスルーサービス(MODEST)で使用される記録装置>
再生装置200がオンデマンドマニュファクチャサービス又は電子的セルスルーサービス(MODEST)の供給を受ける機能をもつ場合、BD-Jオブジェクトの書き込みを以下のように行う。つまり再生装置200がオンデマンドマニュファクチャサービス又は電子的セルスルーサービスによってBD-Jオブジェクトの供給を受ける際、リムーバブルメディアにおけるルートディレクトリの配下に、デフォルトのディレクトリと、MODESTディレクトリとをクリエイトして、MODESTディレクトリの配下に、BDMVディレクトリをクリエイトする。MODESTディレクトリは、ファーストMODESTディレクトリであり、ファーストMODESTディレクトリは、前記サービスを初めて受けた際、クリエイトされるMODESTディレクトリである。ユーザが2回目以降にサービスを受ける際、再生装置200における制御部は、2回目以降のサービスに対応するMODESTディレクトリをクリエイトする。
そして、上述したように、GUI管理テーブルが記述されたBD-Jオブジェクトを取得すると、制御部は、デフォルトディレクトリにスタートアッププログラムを書き込み、MODESTディレクトリ配下のBDMVディレクトリにBD-Jオブジェクトを書き込む。このスタートアッププログラムは、記録媒体が再生装置200に装填された際、最初に実行されるべきプログラムであり、BDMVディレクトリを選択する操作をユーザから受け付けるためのメニューを再生装置200に表示させて、ルート変更機能を再生装置200に実行させる。このルート変更機能は、メニューに対する選択操作がユーザによってなされた場合、選択されたBDMVディレクトリが属するMODESTディレクトリをルートディレクトリとして認識させる機能である。かかるルート変更機能によって、BD-ROMを再生するのと同じ制御手順によって取得したBD-Jオブジェクトに基づく再生制御を実行することができる。
<データ構造の記述の仕方>
各実施の形態に示したデータ構造のうち、ある決まった型の情報が複数存在するという繰り返し構造は、for文に、制御変数の初期値と、繰り返し条件とを設定することで定義することができる。
また、所定の条件が成立する際、ある決まった情報を定義するという任意的なデータ構造は、if文に、その成立すべき条件と、条件成立時に設定すべき変数とを、if文を用いて記述することができる。このように、各実施の形態に示したデータ構造は、高級プログラミング言語の文法によって記述することができるので、各実施の形態に示したデータ構造は、構文解析、最適化、資源割付、コード生成といった、コンパイラによる翻訳過程を経て、上記プログラムと同様、コンピュータが読み取り可能なコンピュータコードに変換された状態で記録媒体に記録される。こうして、高級プログラミング言語によって記述されたデータ構造は、オブジェクト指向言語においては、クラス構造体のメソッド以外の部分、つまり、クラス構造体における配列型のメンバー変数として扱われ、プログラムの一部をなす。つまり、各実施形態のデータ構造は、コンピュータコードに変換されて記録媒体に記録され、プログラムのメンバー変数となるため、実質的にはプログラムと同じものであり、コンピュータ関連発明として保護を受けるものである。
<プログラムにおけるプレイリスト情報、クリップ情報の位置付け>
プレイリスト情報に基づきAV再生を行う実行形式のプログラムは、記録媒体からメモリにロードされ、コンピュータによる実行に供された際、メモリ上において、textセクション、dataセクション、bssセクション、stackセクションといった複数のセクションから構成されることになる。
textセクションは、プログラムコード列や、初期値、書き換えられることがないデータから構成される。
dataセクションは、初期値をもち、実行中に書き換えられる可能性があるデータが配置される。記録媒体において、ファイルに格納され、随時アクセスされるようなデータは、このdataセクションに格納される。
bssセクションは、初期値をもたないデータが配置される。textセクションは、bssセクションのデータをアドレス指定でアクセスするため、コンパイル、リンク時に決定したRAMに、bssセクションのための領域を確保せねばならない。
stackセクションは、必要に応じて一時的にプログラムに与えられる領域であり、各フローチャートの処理を実現するにあたって、一時的に使用されるようなローカル変数は、ここに格納される。
bssセクションは、プログラムの初期化時に、初期値が設定され、stackセクションは、プログラムの初期化時に、必要領域が確保される。
プレイリスト情報及びクリップ情報は、上述したようにコンピュータコードに変換されて記録媒体に記録されているため、プログラムの実行時において、上述したtextセクションにおける“書き換えられることのないデータ”、又は、上述したdataセクションにおける“ファイルに格納され、随時アクセスされるようなデータ”として管理されることになる。各実施形態に示したプレイリスト情報、クリップ情報は、プログラムの実行時において、プログラムの構成要素となるべきものであり、プレイリスト情報、クリップ情報は、単なるデータの提示に該当しない。
上記実施の形態及び上記補足をそれぞれ組み合わせるとしてもよい。
本発明は、3D映像コンテンツを記録する記録媒体に適用可能であり、特に、レフトビュー及びライトビューのPGストリームにより3Dキャラクターの立体視を実現する場合に有効である。
100 BD-ROM
200 再生装置
300 テレビ
400 液晶シャッタゴーグル
500 リモコン
201 BDドライブ
202 HDMIインタフェース
203 再生状態/設定レジスタセット
204 不揮発メモリ
205 静的シナリオメモリ
206 再生制御エンジン
207 ヒープメモリ
208 BD-Jプラットフォーム
209 動的シナリオメモリ
210 モード管理モジュール
211 コマンドインタプリタ
212 UO検知モジュール
1 再生部
2 Read Buffer
3 PID Filter
4a,4b,4c,4d,4e Transport Buffer
4f 周辺回路
5a Video Decoder for Left view
5b Video Decoder for Right view
6a Video Plane(L)
6b Video Plane(R)
7 切り替え器
8a Graphics Decoder for Left view
8b Graphics Decoder for Right view
9a Graphics Plane for Left view
9b Graphics Plane for Right view
10a CLUT UNIT for L
10b CLUT UNIT for R
11a OFFSET UNIT for L
11b OFFSET UNIT for R
12 CLUT出力切り替え器
13 加算器
14 Audio Decoder

Claims (12)

  1. ビデオストリームと、レフトビューグラフィクスストリーム及びライトビューグラフィクスストリームとが記録された記録媒体であって、
    前記レフトビューグラフィクスストリーム及び前記ライトビューグラフィクスストリームは、何れも1つ以上のディスプレイセットを含み、
    前記各ディスプレイセットは、一画面分のグラフィクスオブジェクトの表示に用いられるデータ群であり、
    前記レフトビューグラフィクスストリームに含まれる1つ以上のディスプレイセットは、前記ライトビューグラフィクスストリームに含まれる1つ以上のディスプレイセットと1対1で対応しており、対応するディスプレイセットには、前記ビデオストリームの再生時間軸上において同一の再生時間が設定されており、
    前記各ディスプレイセットは、一画面分のグラフィクスオブジェクトの表示に必要な全てのデータを含んでいるか、直前のディスプレイセットからの差分であるかを示す状態情報を含み、
    前記レフトビューグラフィクスストリームと前記ライトビューグラフィクスストリームとで対応するディスプレイセットに含まれる状態情報が、同一の内容を示している
    ことを特徴とする記録媒体。
  2. 前記各ディスプレイセットは、複数の機能セグメントを含み、複数の機能セグメントには、画面構成セグメントと、オブジェクト定義セグメントとがあり、
    前記グラフィクスオブジェクトは、前記オブジェクト定義セグメントにより定義され、
    前記画面構成セグメントは、前記グラフィクスオブジェクトを用いた画面構成を規定する機能セグメントであり、
    前記状態情報は、前記画面構成セグメントに含まれる
    請求項1記載の記録媒体。
  3. 前記画面構成セグメントは、画面構成番号を含み、
    前記画面構成番号は、前記画面構成セグメントが属するディスプレイセットが、何番目のディスプレイセットであるかを示し、
    前記レフトビューグラフィクスストリームと前記ライトビューグラフィクスストリームとで対応するディスプレイセットに含まれる画面構成セグメントにおいて、画面構成番号は、共通の番号に設定されている
    請求項2記載の記録媒体。
  4. 前記画面構成セグメントは、強制表示フラグを含み、
    前記強制表示フラグは、前記画面構成セグメントが属するディスプレイセットによるグラフィクスオブジェクトを、再生装置に強制的に表示させるか否かを規定するフラグであり、
    前記レフトビューグラフィックスストリームと前記ライトビューグラフィックスストリームとで対応するディスプレイセットに含まれる画面構成セグメントにおいて、強制表示フラグは、同一の内容を示している
    ことを特徴とする請求項2記載の記録媒体。
  5. 前記レフトビューグラフィクスストリーム及び前記ライトビューグラフィクスストリームは、パケッタイズドエレメンタリストリーム(PES)であり、
    前記画面構成セグメントは、PESパケットに格納されており、
    前記再生時間は、前記画面構成セグメントを格納したPESパケットに付加されており、前記画面構成セグメントが属するディスプレイセットによるグラフィクスオブジェクトの表示を何時実行するかを示す
    ことを特徴とする請求項2記載の記録媒体。
  6. 前記オブジェクト定義セグメントは、コード値と、そのコード値のランレングスとを用いることで、グラフィクスオブジェクトを定義しており、
    前記レフトビューグラフィクスストリーム及び前記ライトビューグラフィクスストリームは、何れもパレット定義セグメントを含み、
    前記パレット定義セグメントは、各コード値と、輝度及び色差との対応関係を示したパレットデータを含み、
    前記レフトビューグラフィクスストリームと前記ライトビューグラフィクスストリームとで対応するディスプレイセットに含まれるパレット定義セグメントにおいて、各コード値と、輝度及び色差との対応関係を示したパレットデータは、同一の内容に設定されている
    ことを特徴とする請求項2記載の記録媒体。
  7. 前記画面構成セグメントは、対話制御セグメントであり、
    前記対話制御セグメントは、1つ以上のページ情報を含み、
    前記1つ以上のページ情報は、マルチページメニューの画面構成を規定する情報であり、各ページ情報は、1つ以上のボタン情報を含み、各ボタン情報は、グラフィクスオブジェクトをボタン部材の一状態として表示させることにより、マルチページメニューを構成する各ページ上で対話的な画面構成を実現する情報であり、
    前記レフトビューグラフィクスストリームと前記ライトビューグラフィクスストリームとで対応するディスプレイセットに含まれるページの数は同じであり、且つ対応するページに含まれるボタンの数は同じである
    ことを特徴とする請求項2記載の記録媒体。
  8. 前記対応するページに含まれるボタンにおいて、対応するボタンの参照オブジェクトIDは、同じである
    ことを特徴とする請求項7記載の記録媒体。
  9. 前記画面構成セグメントは、セレクションタイムアウトスタンプ、ユーザタイムアウトディレーション、及びコンポジションタイムアウト情報を含み、
    前記セレクションタイムアウトタイムスタンプは、カレントページにおけるボタン部材を自動的にアクティベートして、ボタン部材が含むコマンドを再生装置に実行させるためのタイムアウト時間を示し、
    前記ユーザタイムアウトディレーションは、カレントページをファーストページに戻して、ファーストページのみが表示されている状態にするためのタイムアウト時間を示し、
    前記コンポジションタイムアウト情報は、画面構成セグメントによる対話的な画面表示を終了させる時間を示し、
    前記レフトビューグラフィックスストリームと前記ライトビューグラフィックスストリームとで対応するディスプレイセットに含まれる画面構成セグメントにおいて、セレクションタイムアウトスタンプ、ユーザタイムアウトディレーション、及びコンポジションタイムアウト情報が、同一の内容を示している
    ことを特徴とする請求項7記載の記録媒体。
  10. 前記画面構成セグメントは、ボタン近接情報を含み、
    前記ボタン近接情報は、あるボタンがセレクテッド状態になっていて、上下左右方向の何れかを指示するキー操作があった場合、どのボタンをセレクテッド状態にすべきかを指定する情報であり、
    前記レフトビューグラフィックスストリームと前記ライトビューグラフィックスストリームとで対応するディスプレイセットに含まれる画面構成セグメントにおいて、ボタン近接情報が、同一の内容を示している
    ことを特徴とする請求項2記載の記録媒体。
  11. 再生装置であって、
    記録媒体からビデオストリーム及びグラフィクスストリームを読み出す読出手段と、
    読み出されたビデオストリームをデコードするビデオデコーダと、
    読み出されたグラフィクスストリームをデコードするグラフィクスデコーダとを備え、
    前記記録媒体には、ビデオストリームと、レフトビューグラフィクスストリーム及びライトビューグラフィクスストリームとが記録されており、
    前記レフトビューグラフィクスストリーム及び前記ライトビューグラフィクスストリームは、何れも1つ以上のディスプレイセットを含み、
    前記各ディスプレイセットは、一画面分のグラフィクスオブジェクトの表示に用いられるデータ群であり、
    前記レフトビューグラフィクスストリームに含まれる1つ以上のディスプレイセットは、前記ライトビューグラフィクスストリームに含まれる1つ以上のディスプレイセットと1対1で対応しており、対応するディスプレイセットには、前記ビデオストリームの再生時間軸上において同一の再生時間が設定されており、
    前記各ディスプレイセットは、一画面分のグラフィクスオブジェクトの表示に必要な全てのデータを含んでいるか、直前のディスプレイセットからの差分であるのかを示す状態情報を含み、
    前記レフトビューグラフィクスストリームと前記ライトビューグラフィクスストリームとで対応するディスプレイセットに含まれる状態情報が、同一の内容を示しており、
    グラフィクスデコーダには、レフトビューグラフィクスデコーダとライトビューグラフィクスデコーダとがあり、
    前記レフトビューグラフィクスデコーダ及び前記ライトビューグラフィクスデコーダはそれぞれ、
    前記データ群のうちグラフィクスオブジェクトを定義するデータをデコードしてグラフィクスオブジェクトを得るプロセッサと、
    デコードにより得られたグラフィクスオブジェクトを格納するオブジェクトバッファと、
    前記データ群のうちグラフィクスオブジェクトを用いた画面構成を規定するデータを格納するコンポジションバッファとを備え、
    前記レフトビューグラフィクスデコーダ及び前記ライトビューグラフィクスデコーダは、共通の構成要素として、グラフィクスコントローラを備え、
    前記グラフィクスコントローラは、前記再生時間になると、前記レフトビューグラフィクスデコーダ内のコンポジションバッファに格納された、画面構成を規定する前記データ、及び前記ライトビューグラフィクスデコーダ内のコンポジションバッファに格納された、画面構成を規定する前記データを解読して、解読したこれらのデータに基づき、前記レフトビューグラフィクスデコーダ内のオブジェクトバッファのグラフィクスオブジェクトを用いてレフトビュー用の画面構成を行うとともに、前記ライトビューグラフィクスデコーダ内のオブジェクトバッファのグラフィクスオブジェクトを用いてライトビュー用の画面構成を行う
    ことを特徴とする再生装置。
  12. 再生装置に搭載されるシステムLSIであって、
    記録媒体からビデオストリーム及びグラフィクスストリームを読み出す読出手段と、
    読み出されたビデオストリームをデコードするビデオデコーダと、
    読み出されたグラフィクスストリームをデコードするグラフィクスデコーダとを備え、
    前記記録媒体には、ビデオストリームと、レフトビューグラフィクスストリーム及びライトビューグラフィクスストリームとが記録されており、
    前記レフトビューグラフィクスストリーム及び前記ライトビューグラフィクスストリームは、何れも1つ以上のディスプレイセットを含み、
    前記各ディスプレイセットは、一画面分のグラフィクスオブジェクトの表示に用いられるデータ群であり、
    前記レフトビューグラフィクスストリームに含まれる1つ以上のディスプレイセットは、前記ライトビューグラフィクスストリームに含まれる1つ以上のディスプレイセットと1対1で対応しており、対応するディスプレイセットには、前記ビデオストリームの再生時間軸上において同一の再生時間が設定されており、
    前記各ディスプレイセットは、一画面分のグラフィクスオブジェクトの表示に必要な全てのデータを含んでいるか、直前のディスプレイセットからの差分であるのかを示す状態情報を含み、
    前記レフトビューグラフィクスストリームと前記ライトビューグラフィクスストリームとで対応するディスプレイセットに含まれる状態情報が、同一の内容を示しており、
    グラフィクスデコーダには、レフトビューグラフィクスデコーダとライトビューグラフィクスデコーダとがあり、
    前記レフトビューグラフィクスデコーダ及び前記ライトビューグラフィクスデコーダはそれぞれ、
    前記データ群のうちグラフィクスオブジェクトを定義するデータをデコードしてグラフィクスオブジェクトを得るプロセッサと、
    デコードにより得られたグラフィクスオブジェクトを格納するオブジェクトバッファと、
    前記データ群のうちグラフィクスオブジェクトを用いた画面構成を規定するデータを格納するコンポジションバッファとを備え、
    前記レフトビューグラフィクスデコーダ及び前記ライトビューグラフィクスデコーダは、共通の構成要素として、グラフィクスコントローラを備え、
    前記グラフィクスコントローラは、前記再生時間になると、前記レフトビューグラフィクスデコーダ内のコンポジションバッファに格納された、画面構成を規定する前記データ、及び前記ライトビューグラフィクスデコーダ内のコンポジションバッファに格納された、画面構成を規定する前記データを解読して、解読したこれらのデータに基づき、前記レフトビューグラフィクスデコーダ内のオブジェクトバッファのグラフィクスオブジェクトを用いてレフトビュー用の画面構成を行うとともに、前記ライトビューグラフィクスデコーダ内のオブジェクトバッファのグラフィクスオブジェクトを用いてライトビュー用の画面構成を行う
    ことを特徴とするシステムLSI。
JP2009552951A 2008-09-30 2009-09-29 3d映像が記録された記録媒体、3d映像を再生する再生装置、およびシステムlsi Active JP4469419B1 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US10132908P 2008-09-30 2008-09-30
US61/101,329 2008-09-30
PCT/JP2009/004956 WO2010038412A1 (ja) 2008-09-30 2009-09-29 3d映像が記録された記録媒体、3d映像を再生する再生装置、およびシステムlsi

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2010047687A Division JP5291026B2 (ja) 2008-09-30 2010-03-04 3d映像を再生する再生装置、および配信装置

Publications (2)

Publication Number Publication Date
JP4469419B1 JP4469419B1 (ja) 2010-05-26
JPWO2010038412A1 true JPWO2010038412A1 (ja) 2012-03-01

Family

ID=42073194

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2009552951A Active JP4469419B1 (ja) 2008-09-30 2009-09-29 3d映像が記録された記録媒体、3d映像を再生する再生装置、およびシステムlsi
JP2010047687A Expired - Fee Related JP5291026B2 (ja) 2008-09-30 2010-03-04 3d映像を再生する再生装置、および配信装置

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2010047687A Expired - Fee Related JP5291026B2 (ja) 2008-09-30 2010-03-04 3d映像を再生する再生装置、および配信装置

Country Status (10)

Country Link
US (5) US8050533B2 (ja)
EP (1) EP2352153A4 (ja)
JP (2) JP4469419B1 (ja)
KR (1) KR20110063615A (ja)
CN (1) CN101828229B (ja)
BR (1) BRPI0904965A2 (ja)
MX (1) MX2010003231A (ja)
RU (1) RU2496157C2 (ja)
TW (1) TW201027978A (ja)
WO (1) WO2010038412A1 (ja)

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20110063615A (ko) * 2008-09-30 2011-06-13 파나소닉 주식회사 3d 영상이 기록된 기록매체, 3d 영상을 재생하는 재생장치 및 시스템 lsi
US8933987B2 (en) * 2008-12-01 2015-01-13 Sharp Kabushiki Kaisha Content reproducing apparatus and recording medium for switching graphics and video images from 2D to 3D
BRPI0917764B1 (pt) 2008-12-19 2021-03-16 Koninklijke Philips N.V. método de decodificação e envio de informação de vídeo adequado para apresentação tridimensional [3d] e dispositivo para decodificação e envio de informação de vídeo adequado para monitor tridimensional [3d]
US20100177167A1 (en) * 2009-01-12 2010-07-15 Hu Chao Portable integrative stereoscopic video multimedia device
CN104618708B (zh) * 2009-01-28 2017-07-07 Lg电子株式会社 广播接收机及其视频数据处理方法
JP4915457B2 (ja) 2009-04-03 2012-04-11 ソニー株式会社 情報処理装置、情報処理方法、及び、プログラム
JP4985807B2 (ja) * 2009-04-15 2012-07-25 ソニー株式会社 再生装置および再生方法
JP5627860B2 (ja) * 2009-04-27 2014-11-19 三菱電機株式会社 立体映像配信システム、立体映像配信方法、立体映像配信装置、立体映像視聴システム、立体映像視聴方法、立体映像視聴装置
US8593511B2 (en) * 2009-06-11 2013-11-26 Panasonic Corporation Playback device, integrated circuit, recording medium
WO2010143439A1 (ja) 2009-06-12 2010-12-16 パナソニック株式会社 再生装置、集積回路、記録媒体
KR101777347B1 (ko) * 2009-11-13 2017-09-11 삼성전자주식회사 부분화에 기초한 적응적인 스트리밍 방법 및 장치
US9185335B2 (en) * 2009-12-28 2015-11-10 Thomson Licensing Method and device for reception of video contents and services broadcast with prior transmission of data
JP5143856B2 (ja) * 2010-04-16 2013-02-13 株式会社ソニー・コンピュータエンタテインメント 3次元画像表示装置、および3次元画像表示方法
JP5637750B2 (ja) 2010-06-30 2014-12-10 日立コンシューマエレクトロニクス株式会社 記録装置/方法/媒体、再生装置/方法
JP5537290B2 (ja) * 2010-06-30 2014-07-02 日立コンシューマエレクトロニクス株式会社 記録装置/方法/媒体、再生装置/方法
EP2602999A1 (en) * 2010-08-06 2013-06-12 Panasonic Corporation Encoding method, display device, and decoding method
WO2012081127A1 (ja) * 2010-12-17 2012-06-21 富士通株式会社 立体視動画像生成装置、立体視動画像生成方法、立体視動画像生成プログラム
JP5595946B2 (ja) * 2011-02-04 2014-09-24 日立コンシューマエレクトロニクス株式会社 デジタルコンテンツ受信装置、デジタルコンテンツ受信方法、およびデジタルコンテンツ送受信方法
WO2012123982A1 (ja) * 2011-03-11 2012-09-20 日立コンシューマエレクトロニクス株式会社 記録装置/方法/媒体、再生装置/方法
JP5778478B2 (ja) * 2011-05-23 2015-09-16 ルネサスエレクトロニクス株式会社 データ処理システム
WO2013026048A2 (en) * 2011-08-18 2013-02-21 Utherverse Digital, Inc. Systems and methods of virtual world interaction
KR20140031758A (ko) * 2012-09-05 2014-03-13 삼성전자주식회사 포인팅 디바이스를 이용하여 aⅴ 데이터의 메뉴를 제어하기 위한 인터랙티브 그래픽 데이터를 기록한 정보저장매체, 그 재생방법 및 장치
CN104053008B (zh) * 2013-03-15 2018-10-30 乐金电子(中国)研究开发中心有限公司 基于合成图像预测的视频编解码方法及视频编解码器
CN110364189B (zh) * 2014-09-10 2021-03-23 松下电器(美国)知识产权公司 再现装置以及再现方法
CN107168892A (zh) * 2017-03-29 2017-09-15 联想(北京)有限公司 一种数据的写入方法及装置
CN110248243B (zh) * 2019-07-25 2022-02-18 维沃移动通信有限公司 一种多媒体文件的显示方法、终端及介质

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW436777B (en) 1995-09-29 2001-05-28 Matsushita Electric Ind Co Ltd A method and an apparatus for reproducing bitstream having non-sequential system clock data seamlessly therebetween
US6484266B2 (en) 1995-09-29 2002-11-19 Matsushita Electric Industrial Co., Ltd. Method and an apparatus for reproducing bitstream having non-sequential system clock data seamlessly therebetween
EP2101495B1 (en) 1996-02-28 2012-12-26 Panasonic Corporation High-resolution optical disk for recording stereoscopic video, optical disk reproducing device and optical disk recording device
CN1183780C (zh) 1996-12-04 2005-01-05 松下电器产业株式会社 光盘再现设备及光盘记录方法
CN1223187C (zh) 1997-08-29 2005-10-12 松下电器产业株式会社 记录高质量图像或标准图像的光盘及其记录和再生装置
US6429867B1 (en) * 1999-03-15 2002-08-06 Sun Microsystems, Inc. System and method for generating and playback of three-dimensional movies
US7180663B2 (en) * 2002-06-19 2007-02-20 Robert Bruce Collender 3D motion picture theatre
AU2002952873A0 (en) * 2002-11-25 2002-12-12 Dynamic Digital Depth Research Pty Ltd Image encoding system
EP1876822B1 (en) * 2003-02-28 2010-04-14 Panasonic Corporation Recording medium, reproduction device, recording method, program, and reproduction method
US20040212612A1 (en) * 2003-04-28 2004-10-28 Michael Epstein Method and apparatus for converting two-dimensional images into three-dimensional images
CN101527864B (zh) 2003-06-30 2011-01-05 松下电器产业株式会社 再现装置、记录方法和再现方法
WO2005048261A1 (en) * 2003-11-12 2005-05-26 Matsushita Electric Industrial Co., Ltd. Recording medium, playback apparatus and method, recording method, and computer-readable program
JP4341751B2 (ja) * 2004-02-17 2009-10-07 誠次郎 富田 立体映像記録・再生方法並びにこれを表示する立体映像表示装置
JP2007525906A (ja) * 2004-02-27 2007-09-06 ティディヴィジョン コーポレイション エス.エー. デ シー.ヴィ. 立体3dビデオイメージディジタルコーディングのシステムおよび方法
CN1938774B (zh) * 2004-06-03 2010-04-21 松下电器产业株式会社 再现设备及方法
RU2315439C1 (ru) * 2006-07-03 2008-01-20 Борис Иванович Волков Система объемной видеозаписи и воспроизведения
US8711203B2 (en) * 2006-10-11 2014-04-29 Koninklijke Philips N.V. Creating three dimensional graphics data
KR20110063615A (ko) * 2008-09-30 2011-06-13 파나소닉 주식회사 3d 영상이 기록된 기록매체, 3d 영상을 재생하는 재생장치 및 시스템 lsi
ES2467149T3 (es) * 2009-02-19 2014-06-12 Panasonic Corporation Dispositivo de reproducción y medio de grabación

Also Published As

Publication number Publication date
US7991263B2 (en) 2011-08-02
US8050533B2 (en) 2011-11-01
JP2010171991A (ja) 2010-08-05
MX2010003231A (es) 2010-08-02
US20120014665A1 (en) 2012-01-19
BRPI0904965A2 (pt) 2015-06-30
TW201027978A (en) 2010-07-16
US20100254681A1 (en) 2010-10-07
KR20110063615A (ko) 2011-06-13
RU2496157C2 (ru) 2013-10-20
RU2010111906A (ru) 2011-10-10
JP4469419B1 (ja) 2010-05-26
JP5291026B2 (ja) 2013-09-18
US20100092148A1 (en) 2010-04-15
CN101828229B (zh) 2012-10-24
US7991262B2 (en) 2011-08-02
EP2352153A4 (en) 2017-04-26
EP2352153A1 (en) 2011-08-03
CN101828229A (zh) 2010-09-08
US8600212B2 (en) 2013-12-03
US20100254680A1 (en) 2010-10-07
US7991264B2 (en) 2011-08-02
WO2010038412A1 (ja) 2010-04-08
US20100260481A1 (en) 2010-10-14

Similar Documents

Publication Publication Date Title
JP5291026B2 (ja) 3d映像を再生する再生装置、および配信装置
JP5400932B2 (ja) 再生装置、再生方法
JP4923162B2 (ja) 受信装置、受信方法
JP5336436B2 (ja) 集積回路
JP4588120B2 (ja) 再生装置、記録方法、記録媒体再生システム
WO2010038409A1 (ja) 再生装置、記録媒体、及び集積回路
WO2010095381A1 (ja) 記録媒体、再生装置、集積回路
WO2010095410A1 (ja) 記録媒体、再生装置、集積回路

Legal Events

Date Code Title Description
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: 20100202

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: 20100226

R150 Certificate of patent or registration of utility model

Ref document number: 4469419

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20130305

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20130305

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20140305

Year of fee payment: 4