JPWO2009101787A1 - 再生装置、記録装置、再生方法および記録方法 - Google Patents

再生装置、記録装置、再生方法および記録方法 Download PDF

Info

Publication number
JPWO2009101787A1
JPWO2009101787A1 JP2009553359A JP2009553359A JPWO2009101787A1 JP WO2009101787 A1 JPWO2009101787 A1 JP WO2009101787A1 JP 2009553359 A JP2009553359 A JP 2009553359A JP 2009553359 A JP2009553359 A JP 2009553359A JP WO2009101787 A1 JPWO2009101787 A1 JP WO2009101787A1
Authority
JP
Japan
Prior art keywords
play item
stream
playback
current
sub
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
JP2009553359A
Other languages
English (en)
Other versions
JP5281021B2 (ja
Inventor
泰治 佐々木
泰治 佐々木
洋 矢羽田
洋 矢羽田
和寛 持永
和寛 持永
航 池田
航 池田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Panasonic Corp
Panasonic Holdings Corp
Original Assignee
Panasonic Corp
Matsushita Electric Industrial Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Panasonic Corp, Matsushita Electric Industrial Co Ltd filed Critical Panasonic Corp
Publication of JPWO2009101787A1 publication Critical patent/JPWO2009101787A1/ja
Application granted granted Critical
Publication of JP5281021B2 publication Critical patent/JP5281021B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N9/00Details of colour television systems
    • H04N9/79Processing of colour television signals in connection with recording
    • H04N9/87Regeneration of colour television signals
    • H04N9/8715Regeneration of colour television signals involving the mixing of the reproduced video signal with a non-recorded signal, e.g. a text signal
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B27/00Editing; Indexing; Addressing; Timing or synchronising; Monitoring; Measuring tape travel
    • G11B27/10Indexing; Addressing; Timing or synchronising; Measuring tape travel
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B27/00Editing; Indexing; Addressing; Timing or synchronising; Monitoring; Measuring tape travel
    • G11B27/10Indexing; Addressing; Timing or synchronising; Measuring tape travel
    • G11B27/19Indexing; Addressing; Timing or synchronising; Measuring tape travel by using information detectable on the record carrier
    • G11B27/28Indexing; Addressing; Timing or synchronising; Measuring tape travel by using information detectable on the record carrier by using information signals recorded by the same method as the main recording
    • G11B27/32Indexing; Addressing; Timing or synchronising; Measuring tape travel by using information detectable on the record carrier by using information signals recorded by the same method as the main recording on separate auxiliary tracks of the same or an auxiliary record carrier
    • G11B27/327Table of contents
    • G11B27/329Table of contents on a disc [VTOC]
    • 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/34Indicating arrangements 
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/40Information retrieval; Database structures therefor; File system structures therefor of multimedia data, e.g. slideshows comprising image and additional audio data
    • 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/00086Circuits for prevention of unauthorised reproduction or copying, e.g. piracy
    • G11B20/00855Circuits for prevention of unauthorised reproduction or copying, e.g. piracy involving a step of exchanging information with a remote server
    • G11B20/00869Circuits for prevention of unauthorised reproduction or copying, e.g. piracy involving a step of exchanging information with a remote server wherein the remote server can deliver the content to a receiving device
    • 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/21Disc-shaped record carriers characterised in that the disc is of read-only, rewritable, or recordable type
    • G11B2220/213Read-only discs
    • 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
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/45Management operations performed by the client for facilitating the reception of or the interaction with the content or administrating data related to the end-user or to the client device itself, e.g. learning user preferences for recommending movies, resolving scheduling conflicts
    • H04N21/462Content or additional data management, e.g. creating a master electronic program guide from data received from the Internet and a Head-end, controlling the complexity of a video stream by scaling the resolution or bit-rate based on the client capabilities
    • H04N21/4622Retrieving content or additional data from different sources, e.g. from a broadcast channel and the Internet
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/76Television signal recording
    • H04N5/765Interface circuits between an apparatus for recording and another apparatus
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/76Television signal recording
    • H04N5/765Interface circuits between an apparatus for recording and another apparatus
    • H04N5/775Interface circuits between an apparatus for recording and another apparatus between a recording apparatus and a television receiver
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/76Television signal recording
    • H04N5/78Television signal recording using magnetic recording
    • H04N5/782Television signal recording using magnetic recording on tape
    • H04N5/783Adaptations for reproducing at a rate different from the recording rate
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/76Television signal recording
    • H04N5/84Television signal recording using optical recording
    • H04N5/85Television signal recording using optical recording on discs or drums
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N9/00Details of colour television systems
    • H04N9/79Processing of colour television signals in connection with recording
    • H04N9/80Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback
    • H04N9/804Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback involving pulse code modulation of the colour picture signal components
    • H04N9/8042Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback involving pulse code modulation of the colour picture signal components involving data reduction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N9/00Details of colour television systems
    • H04N9/79Processing of colour television signals in connection with recording
    • H04N9/80Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback
    • H04N9/804Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback involving pulse code modulation of the colour picture signal components
    • H04N9/8042Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback involving pulse code modulation of the colour picture signal components involving data reduction
    • H04N9/8047Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback involving pulse code modulation of the colour picture signal components involving data reduction using transform coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N9/00Details of colour television systems
    • H04N9/79Processing of colour television signals in connection with recording
    • H04N9/80Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback
    • H04N9/804Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback involving pulse code modulation of the colour picture signal components
    • H04N9/806Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback involving pulse code modulation of the colour picture signal components with processing of the sound signal
    • H04N9/8063Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback involving pulse code modulation of the colour picture signal components with processing of the sound signal using time division multiplex of the PCM audio and PCM video signals
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N9/00Details of colour television systems
    • H04N9/79Processing of colour television signals in connection with recording
    • H04N9/80Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback
    • H04N9/82Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback the individual colour picture signal components being recorded simultaneously only
    • H04N9/8205Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback the individual colour picture signal components being recorded simultaneously only involving the multiplexing of an additional signal and the colour video signal
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N9/00Details of colour television systems
    • H04N9/79Processing of colour television signals in connection with recording
    • H04N9/80Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback
    • H04N9/82Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback the individual colour picture signal components being recorded simultaneously only
    • H04N9/8205Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback the individual colour picture signal components being recorded simultaneously only involving the multiplexing of an additional signal and the colour video signal
    • H04N9/8227Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback the individual colour picture signal components being recorded simultaneously only involving the multiplexing of an additional signal and the colour video signal the additional signal being at least another television signal

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Television Signal Processing For Recording (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)
  • Management Or Editing Of Information On Record Carriers (AREA)
  • Indexing, Searching, Synchronizing, And The Amount Of Synchronization Travel Of Record Carriers (AREA)
  • Testing, Inspecting, Measuring Of Stereoscopic Televisions And Televisions (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

再生装置は、プレイリストを再生する。カレントプレイアイテムが変化する度に、カレントプレイアイテムにとって最適なサブストリームをカレントサブストリームとして決定する。この選択の際、カレントサブプレイアイテムを特定する。カレントサブプレイアイテムによって参照されているクリップファイルが、ダウンロード済みであり、ローカルストレージにおいてEnable状態になっていればプレイアイテムの再生を進行するが、カレントサブプレイアイテムによって参照されているクリップファイルが記録媒体においてMissing状態になっているか、又は、無効状態になっていれば、DataStarvedイベントを出力することにより、プレイアイテムの再生を停止する。

Description

本発明は、プレイリスト再生技術の技術分野に属する発明である。
プレイリストとは、論理的な再生経路を定義するための情報であり、コンテンツ格納のための様々なアプリケーションフォーマットでは、このプレイリストが、1つの決まった再生単位となる。一般にプレイリストは、プレイアイテム、サブプレイアイテムから構成される。プレイアイテムとは、主たる動画像を構成するビデオストリームの時間軸において、イン点、及び、アウト点の組みを指定することで定義される論理的な再生区間である。
サブプレイアイテムとは、サブストリームの時間軸において、イン点、及び、アウト点の組みを指定することで定義される論理的な再生区間である。ここでサブストリームとは、ビデオストリームとは多重化されていないが、ビデオストリームと共に再生されるようなオーディオストリーム、字幕ストリーム、ビデオストリームのことである。
ROMディスクの記録内容と、他の記録媒体の記録内容とを組合せて、仮想パッケージを構築する場合、ネットワークを通じてダウンロードされるサブストリームの再生区間を、サブプレイアイテムにて定義することができる。ここで、プレイリストにおけるプレイアイテムにおいて、ROMディスクに記録されているAVストリームの再生区間を定義し、プレイリストにおけるサブプレイアイテムにおいて、ダウンロードされるべきサブストリームの再生区間を定義することにより、当該プレイリストは、光ディスクにない、新しい字幕・音声と、動画像との組合せを実現することができる。
この仮想的なパッケージを生成する技術の先行技術としては、以下の特許文献1に記載されたものがある。
特開2006-109494号公報
ところが、ROMディスクからの読み出しには、54Mbpsというビットレートを確保することができる。しかし、一般のユーザ宅内では、ストリーミング再生時に保障されるビットレートが、ベストエフォートであることが多く、ROMディスクからのストリーム再生のように、常時、一定の高さのビットレートを確保できない。
ストリーミング再生のためのビットレートが制約されている状況下で、多くのサブプレイアイテムを包含しているようなプレイリストを再生しようとした場合を考える。
例えば、本編映像の特定のシーンにおいて、あるプレイアイテムには、10個のサブプレイアイテムが付随しており、これらのサブプレイアイテムが、オプション扱いとなる10ヶ国の言語をサポートしているケースを想定する。そして、個々のサブプレイアイテムによって参照されているクリップファイルが10Mバイトのデータサイズをもつものとすると、一個のプレイアイテムの再生を開始するには、本編であるプレイアイテムによって参照されているAVクリップとは別に、“10ヶ国の言語×10Mバイト=100Mバイト”のファイルのダウンロードが完了しなければならない。この場合、クリップファイルのダウンロードを担うアプリケーションが、10個のサブプレイアイテムによって参照されている合計100Mバイトのクリップファイルのダウンロードを先に行い、プレイアイテムによって参照されているクリップファイルのダウンロードを後回しにすれば、ビットレートが制限されている状況下では、プレイアイテムによって参照されているクリップファイルの供給が遅れて、再生進行が遅れる恐れがある。
これを避けるため、メインパスによって参照されているクリップファイルのダウンロードを先に行い、サブプレイアイテムによって参照されているクリップファイルのダウンロードを後回しにすると、ユーザが、サブプレイアイテムにて参照されているクリップファイル内のエレメンタリストリームを、再生対象として選択している場合、再生対象となるエレメンタリストリームをデコーダに供給することができず、字幕、音声、動画像の何れかが欠落したまま再生が進行する恐れがある。
このように、多くのサブプレイアイテムが存在しているためダウンロードすべきクリップファイルが多くなると、これらのうち、何を優先してダウンロードすべきかという指針を、アプリケーションに与えることができなくなるので、ビットレートが制限されている状況下では、再生の途切れが顕著化したり、字幕、音声、動画像の何れかが欠落したまま再生が進行する恐れがある。
加えてユーザは、ROMディスクからのストリーム読み出しであるか、ネットワークからのストリーム供給であるかを意識していないので、再生内容の一部が欠落した場合、再生装置が、故障しているかのように勘違いして、メーカーの相談窓口に、商品苦情を訴え出る可能性がある。サブプレイアイテムを構成するようなクリップファイルのダウンロード手続きは、再生装置における組込みプログラムではなく、映画作品の制作者が作成したアプリケーションプログラムによってなされることが一般的である。映画作品の制作者が作成したアプリケーションプログラムが、たまたまサブプレイアイテムを構成するクリップファイルのダウンロードを優先したために、メーカーが上述したような苦情にまきこまれるのは、メーカーにとって望ましいことではない。
本発明の目的は、多くのサブプレイアイテムが存在しているためダウンロードすべきクリップファイルが多く存在する場合、これらのうち、何を優先してダウンロードすべきかという指針を、アプリケーションに与えることができる再生装置を提供することである。
上記課題を解決するため、本発明にかかる再生装置は、プレイリストを再生する再生装置であって、プレイリストは、複数のプレイアイテムと、複数のサブプレイアイテムとを含み、前記プレイアイテムは、メインストリームを含むクリップファイルと、当該クリップファイルにおける再生区間を規定する情報であり、前記サブプレイアイテムは、サブストリームを含むクリップファイルと、当該クリップファイルにおける再生区間を、プレイアイテムと同期すべき再生区間として規定する情報であり、前記サブプレイアイテムが参照するクリップファイルは、伝送路を介して伝送されるクリップファイルであり、サブストリームは、プレイアイテムが参照しているクリップファイルとは多重化されておらず、プレイリストに含まれるプレイアイテムを再生する再生手段と、複数のプレイアイテムのうち、再生対象になっているものをカレントプレイアイテムとして特定する特定手段と、カレントプレイアイテムが変化する度に、カレントプレイアイテムにとって最適なサブプレイアイテムをカレントサブプレイアイテムとして決定する決定手段と、前記カレントプレイアイテムと同期して再生すべきカレントサブストリームを指し示すサブストリームレジスタとを備え、前記カレントサブプレイアイテムとは、カレントプレイアイテムと同期すべき再生区間を規定するサブプレイアイテムであって、前記サブストリームレジスタが指し示すサブストリームの再生区間を規定するものであり、前記再生手段は、再生装置がアクセス可能な記録媒体に、カレントサブプレイアイテムによって参照されているクリップファイルが存在すればプレイアイテムの再生を進行し、カレントサブプレイアイテムによって参照されているクリップファイルが記録媒体において存在しないか又は認識不能な状態になっていれば、プレイアイテムの再生を停止することを特徴とする。
上記再生装置によれば、カレントサブプレイアイテムによって参照されているクリップファイルであって、カレントサブストリームを含むものが記録媒体に存在しない場合、一律に再生停止されることになる。
言い換えれば、カレントサブプレイアイテム情報によって参照されているクリップファイルであって、カレントサブストリームを含むものさえ記録媒体に揃っていれば、再生進行を継続することができるので、優先的にダウンロードを行うべきクリップファイルは、メインストリームを含むクリップファイル、及び、カレントサブプレイアイテム情報によって参照されているクリップファイルであって、カレントサブストリームを含むクリップファイルになる。
よってアプリケーションが、これらのクリップファイルを優先的にダウンロードして、その他のサブプレイアイテムから参照されるクリップファイルのダウンロードを後回しにすれば、ROMディスクと比較して、充分なビットレートを確保することができでなくても、サブプレイアイテムを多く含むようなプレイリストの再生を継続することができる。
サブプレイアイテムが多く存在したとしても、これらのうち、カレントサブプレイアイテム情報によって参照されているクリップファイルであって、カレントサブストリームを含むものさえ揃っていれば、再生を継続することができるため、何を優先してダウンロードすべきかという指針を、アプリケーションに与えることができる。よってアプリケーションは、“あるプレイアイテムの再生がなされている期間に、次にカレントサブプレイアイテム情報になるべきサブプレイアイテムによって参照されているクリップファイルをダウンロードする”とのルールで、ダウンロードを行えば、たとえサブプレイアイテムが多く存在していて、ビットレートが制限されていたとしても、再生を継続させることができる。ダウンロードを行うべきクリップファイルの優先順序を律することができるので、字幕、音声、動画像の何れかが欠落したまま再生が進行する恐れがなくなり、またストリーム供給が遅れることによる再生進行の途切れを最小限に留めることができる。
更に詳しくいうと、上記ルールでダウンロードを行う場合、クリップファイルのダウンロードに必要なビットレートBは、以下の計算で示されるものとなる。

ビットレートB=
(ネクストプレイアイテムに対応するクリップファイルのデータサイズ+ネクストサブプレイアイテムに対応するクリップファイルのデータサイズ)
/カレントプレイアイテムの再生時間
ここで、
「ネクストプレイアイテム」は、プレイアイテムの次に再生されるべきプレイアイテムであり、「ネクストサブプレイアイテム」は、カレントサブプレイアイテム情報の次に再生されるべきサブプレイアイテムを規定するサブプレイアイテムである。

ダウンロードに必要となるビットレートは、上述したような値で足りるので、ビットレートが制限されていても、再生の中断を必要最低限にすることができる。
また、カレントサブプレイアイテム情報によって参照されるクリップファイルが認識できない状態であれば、再生進行を停止させるとの処理を行えば、ROMディスクからのストリーム供給であるか、ダウンロードによるストリーム供給であるかをユーザに意識させることはなくなる。サブプレイアイテムによる再生が欠落した状況で、再生内容がどのようになるかを検証する必要はなくなり、オーサリング時の負担も軽減する。
再生装置は、再生に必要最低限のクリップファイルのダウンロードだけをダウンロードして再生できるため、ユーザは不必要にクリップファイルのダウンロードを待つことなく、プレイリストの再生を継続できる。
再生装置101の、使用行為についての形態の一例を示す図である。 プレイリストの一例を示す図である。 動作例の題材となるプレイリストの一例を示す図である。 図3に示したプレイリストが、どのようにして再生されるかを示す。 再生装置101の構成の一例を示す図である。 システムパラメータ(SPRM)の一覧である。 ストリーミングライクな再生機能を模式的に示す図である。 サブプレイアイテムを伴う場合のストリーミングライクな再生進行の一例を示す図である。 再生位置がプレイアイテム#2に到達しようとしている状態の一例を示す図である。 字幕切替えがユーザによって要求されたため、現在の再生時点が、サブパス(ID=#0)の10003.m2tsを参照しているサブプレイアイテム#3から、サブパス(ID=#1)の20003.m2tsを参照しているサブプレイアイテム#3に変化した場合を想定した図である。 チャプタージャンプがあったため、プレイアイテム#3がカレントプレイアイテムになり、サブプレイアイテム#3がカレントサブプレイアイテム情報になったことを想定した図である。 BD-Jアプリケーションの処理手順を示すフローチャートである。 AVクリップダウンロードの処理手順を示すフローチャートである。 プレイリスト再生処理の処理手順を示すフローチャートである。 カレントサブプレイアイテムの決定手順を示すフローチャートである。 プログレッシブ属性AVクリップ制御の処理手順を示すフローチャートである。 再生停止リカバリー処理の処理手順を示すフローチャートである。 カレントプレイアイテムがプレイアイテム#1であり、カレントサブプレイアイテム情報がサブパス(ID=1)のサブプレイアイテム#1である場合に、ダウンロードを要求すべきクリップファイルを示す。 カレントプレイアイテムがプレイアイテム#2であり、カレントサブプレイアイテム情報がサブパス(ID=1)のサブプレイアイテム#2である場合に、ダウンロードを要求すべきクリップファイルを示す。 カレントプレイアイテムがプレイアイテム#3であり、カレントサブプレイアイテム情報がサブパス(ID=1)のサブプレイアイテム#3である場合に、ダウンロードを要求すべきクリップファイルを示す。 AVクリップの構成の一例を示す図である。 AVクリップがどのように多重化されるかを模式的に示す図である。 PESパケット列に、ビデオストリームがどのように格納されるかを更に詳しく示している。 AVクリップに最終的に書き込まれるTSパケットの形式を示した図である。 PMTのデータ構造を詳しく説明する図である。 クリップ情報ファイルの一例を示す図である。 ストリーム属性情報の一例を示す図である。 エントリマップの一例を示す図である。 システムターゲットデコーダ13の内部構成の一例を示す図である。 プレイリスト情報のデータ構造の一例を示す図である。 サブパス情報の内部構成をクローズアップして示す図である。 STN_tableの全体構成の一例を示す図である。 図32に示したSTN_tableの全体構成のうち、セカンダリビデオストリームについてのstream_entryの一例を示す図である。 (a)プライマリビデオストリームにおけるStream_entry及びStream_attributeの一例を示す図である。
(b)セカンダリビデオストリームにおけるStream_entryを示す。
(a)PSR14のビットアサインの一例を示す図である。
(b)PSR29のビットアサインの一例を示す図である。
再生制御エンジンの内部構成の一例を示す図である。 カレントセカンダリビデオストリームを決定するための処理手順を示すフローチャートである。 カレントプレイアイテムについて最適なカレントセカンダリビデオストリームを決定する処理手順を示すフローチャートである。 継時型ステレオゴーグルの一例を示す図である。 立体視のためのプライマリビデオストリーム、セカンダリビデオストリームの内部構成の一例を示す図である。 システムターゲットデコーダ13の内部構成の一例を示す図である。 Primary_audio_stream_entry、Secondary_audio_stream_entryの内部構成と、Comb_info_Secondary_video_Secondary_audioの内部構成との一例を示す図である。 (a)PSR1のビットアサインの一例を示す図である。
(b)PSR14のビットアサインの一例を示す図である。
カレントプレイアイテム変化時におけるカレントプライマリオーディオストリーム決定手順を示すフローチャートである。 セカンダリオーディオストリームのストリーム選択プロシージャの処理手順を示すフローチャートである。 カレントプレイアイテムについて最適なカレントセカンダリオーディオストリームを選択する手順を示すフローチャートである。 STN_tableのうち、PGtestSTストリームに特に関連あるものを抜き出して描いた図である。 (a)カレントPGtestSTストリームのストリーム番号が取りうる数値範囲の一例を示す図である。
(b)PSR2のビットアサインの一例を示す図である。
カレントプレイアイテム変化時におけるカレントPGtestSTストリームの決定手順を示すフローチャートである。 カレントプレイアイテムについて最適なカレントPGTextSTストリームを選択する処理手順を示すフローチャートである。 BD-ROMの構成の一例を示す図である。 インデックスファイルの内部構成の一例を示す図である。 ローカルストレージ103に格納されるアップデートキットの内部構成の一例を示す図である。 マージ管理情報ファイルの内容と、その内容を元にBD-ROMのファイルとアップデートキットのファイルとから、仮想パッケージを構築する過程の一例を示す図である。 オーサリングシステムの一例を示す図である。 ROMディスクイメージ、アップデートキットイメージの作成方法について説明する図である。
符号の説明
100 BD-ROM
102 WWWサーバ
103 ローカルストレージ
104 テレビ
以下、上記課題解決手段を具備した再生装置及び記録装置の実施の形態について、図面を参照しながら説明する。
(第1実施形態)
以降、上記再生装置及び記録装置の実施形態について説明する。先ず始めに、再生装置の実施行為のうち、使用行為についての形態を説明する。図1は、再生装置101の、使用行為についての形態の一例を示す図である。本図に示すように、再生装置101は、第1記録媒体の一例であるBD-ROM100、WWWサーバ102、ローカルストレージ103、テレビ104と共にユーザによる使用に供される。
BD-ROM100は、映画作品が記録された記録媒体である。
再生装置101は、テレビ103と共に、ホームシアターシステムを構築して、BD-ROM100を再生する。かかる記録装置は、記録媒体に対してデータをダウンロードを書き込む機能を有したものであり、記録装置としての機能を兼備している。
WWWサーバ102は、映画配給者の公式サイトを運営するサーバ装置であり、BD-ROM100に記録された映画作品の部分的な置き換えや追加を実現するファイル一式(アップデートキット)を、インターネット等を介してユーザに供給する。
ローカルストレージ103は、再生装置に装填され、映画配給者のWWWサーバ102から配信されたコンテンツの受け皿として利用される。そのため、ネットを通じてダウンロードされ、ローカルストレージに格納されたコンテンツと、BD-ROM100に記録されたコンテンツとを組み合わせて、BD-ROM100のコンテンツを拡張/更新をすることができる。
テレビ104は、映画作品の再生映像を表示したり、メニュー等を表示することで、対話的な操作環境をユーザに提供する。
以上が再生装置の使用形態についての説明である。続いて再生装置が再生の対象としている、プレイリストについて説明する。
図2は、プレイリストの一例を示す図である。プレイリストは、「メインパス」、1つ以上の「サブパス」から構成される。
「メインパス」は、1つ以上のプレイアイテムから構成される。
「サブパス」は、メインパスと一緒に再生される一連の再生経路を示し、プレイリストに登録される順にID(サブパスID)が振られる。サブパスIDは、サブパスを識別するために使われる。サブパスには、メインパスの再生に同期して再生される同期型、メインパスの再生に非同期で再生可能な非同期型があり、そのタイプはサブパスタイプに記される。サブプレイアイテムは、1つ以上のサブプレイアイテム情報から構成される。サブパスタイプが同期型の場合は、サブプレイアイテムの再生開始と再生終了時刻は、メインパスと同じ時間軸で表されるが、サブパスタイプが非同期型の場合は、サブプレイアイテムの再生開始時刻と再生終了時刻は、メインパスと違う時間軸で表される。
また「プレイアイテム」は、ストリーム番号テーブルを含む。ストリーム番号テーブルは、プレイアイテムにおいて再生が許可されているエレメンタリストリームのストリーム番号を示す情報である。プレイリスト情報、プレイアイテム情報、サブプレイアイテム情報、ストリーム番号テーブルの詳細については、後の実施形態に説明の場を譲る。
以降の動作例の説明では、以下のようなプレイリストを題材として選らぶ。
図3は、動作例の題材となるプレイリストの一例を示す図である。
題材となるプレイリストは、1つのメインパスと、2つのサブパス(サブパス(ID=0),サブパス(ID=1))から構成される。メインパスは、5つのプレイアイテム#1,#2,#3,#4,#5を含み、ID=0のサブパスは、5つのサブプレイアイテム#1,#2,#3,#4,#5を含む。ID=1のサブパスは、5つのサブプレイアイテム#1,#2,#3,#4,#5を含む。
どちらのサブパスも同期型で、それぞれ別々の言語の字幕データであるプレゼンテーショングラフィックスストリームが多重化されたAVクリップを参照している。プレイリストから利用されるAVクリップはすべてローカルストレージに格納されたアップデートキットのコンテンツであり、プログレッシブ属性が付与されている。プログレッシブ属性とは、プレイリスト再生にあたって、予めローカルストレージに格納されていることは必要ではなく、当該AVクリップを参照しているサブプレイアイテムが、カレントサブプレイアイテム情報になる直前に、ローカルストレージに格納されていれば足りるというAVクリップの属性のことである。
5つのプレイアイテム#1,#2,#3,#4,#5は、それぞれ00001.m2ts、00002.m2ts、00003.m2ts、00004.m2ts、00005.m2tsを参照している。
ID=0のサブパスにおけるサブプレイアイテム#1,#2,#3,#4,#5は、それぞれ10001.m2ts、10002.m2ts、10003.m2ts、10004.m2ts、10005.m2tsを参照している。
ID=1のサブパスにおけるサブプレイアイテム#1,#2,#3,#4,#5は、それぞれ20001.m2ts、20002.m2ts、20003.m2ts、20004.m2ts、20005.m2tsを参照している。
メインパスの各プレイアイテムは、図中右上のようなストリーム番号テーブルを有する。このストリーム番号テーブルは、ストリーム番号1,2,3が割り当てられた3つのエントリーをもつ。これら3つのエントリーは、メインパスのプレイアイテム情報によって参照されるプライマリビデオストリーム、サブプレイアイテム(サブパスID=0)によって参照されるAVクリップに包含されているプレゼンテーショングラフィクスストリーム(PG#1)、サブプレイアイテム(サブパスID=1)によって参照されるAVクリップに包含されているプレゼンテーショングラフィクスストリーム(PG#2)の再生を許可するものである。
カレントとなる字幕ストリーム番号が“2”であるとき、該当するストリームエントリはサブパスID=0で示されるPG#1であるため、プレイアイテムの再生と同期して、サブパスID=0のPG#1が再生される。
図4は、図3に示したプレイリストが、どのようにして再生されるかを示す。本図における右側は、WWWサーバ102を示し、左側は、再生装置101を示す。真ん中は、インターネット、イントラネット等の伝送路を示す。図3における00001.m2ts、00002.m2ts、00003.m2ts、00004.m2ts、00005.m2tsは、テレビ103に存在する。これらのAVクリップのうち、00001.m2ts、10001.m2tsは、WWWサーバ102に対してダウンロード要求を送信することで、WWWサーバ102から再生装置101へと伝送されていることがわかる。
サーバ装置のデータベースにおいて、AVクリップは、00001.m2ts、00002.m2ts、00003.m2ts、00004.m2ts、00005.m2tsというファイル名とは異なるファイル名のファイルに格納されて管理される。これは、仮想パッケージ構築の対象となるファイルは、マニフェストファイルによって別名でアクセスされることが可能だからである。
以下、再生装置101が、プレイリスト再生、ダウンロード要求及びダウンロードを行うための構成要素について説明する。これらの処理のための構成要素には、BD-Jアプリケーションと、BD-Jオブジェクトとがある。以下、これらの構成要素について説明する。
<BD-Jアプリケーション>
「BD-Jアプリケーション」とは、Java2Micro_Edition(J2ME) Personal Basis Profile(PBP 1.0)と、Globally Excecutable MHP specification(GEM1.0.2)for package media targetsとをフル実装したプラットフォーム部において、タイトルを生存区間としたアプリケーションシグナリングによって起動されるJava(TM)アプリケーションである。BD-Jアプリケーションは、プレイリスト情報を再生するJMFプレーヤインスタンスの生成をJava(TM)仮想マシンに命じることで、プレイリスト再生を開始させる。JMF(Java Media Frame work)プレーヤインスタンスとは、JMFプレーヤクラスを基にして仮想マシンのヒープメモリ上に生成される実際のデータのことである。
JMF A”BD://00001.mpls”;は、00001.mplsというファイルのプレイリストを再生するプレーヤインスタンスの生成をJava(TM)仮想マシンに命じるメソッドである。A.playは、JMFプレーヤインスタンスに再生を命じるメソッドである。かかるJMFプレーヤインスタンス生成は、JMFライブラリに基づきなされる。
JMFインスタンスを生成した後、プレイリスト再生にあたって、必要となるAVクリップのダウンロードをWWWサーバ102に対して要求する。ダウンロードにあたって、WWWサーバ102上のAVクリップを取得するためのコネクションは java.netと呼ばれるJavaソフトウェアライブラリィのopenConnectionメソッドを使って、確立することができる。サーバ上のファイルのURLが、http://xxx.com/vp_data/00001.m2tsである場合におけるコネクション接続の用例を以下に示す。用例:new java.net.URL(http://xxx.com/vp_data/00001.m2ts.openConnection()
上述したようなプレイリスト再生及びAVクリップダウンロードに先立ち、BD-Jアプリケーションは、GUIフレームワークを用いて、ユーザ操作を受け付ける。Java(TM)アプリケーションにおけるGUIフレームワークは、GEM1.0.2にて規定されたHAViフレームワークを含み、GEM1.0.2におけるリモートコントロールナビゲーション機構を含む。
これにより、Java(TM)アプリケーションは、HAViフレームワークに基づくボタン表示、テキスト表示、オンライン表示(BBSの内容)といった表示を、動画像の表示と組み合わせた画面表示を実現することができ、リモートコントロールを用いて、上述したようなプレイリスト再生やAVクリップダウンロードを実現することができる。BD-Jアプリケーションを構成する一連のファイルは、Http://Java(TM).sun.com/j2se/1.4.2/docs/guide/jar/jar.htmlに記載された仕様に準じた、Java(TM)アーカイブファイルに変換される。Java(TM)アーカイブファイルは、ZIPファイルの形式を、Java(TM)に特化したものであり、市販されているZIP展開ソフトウェアにより中身を確認することができる。
<BDJオブジェクト>
BDJオブジェクトは、アプリケーション管理テーブル(ApplicationManagementTable())を含み、BD-ROM再生時において、タイトル切り替えに伴うアプリケーションシグナリングをプラットフォーム部に実行させるデータのことである。より具体的にいうと、ApplicationManagementTable()は、実行すべきBD-Jアプリケーションを示すapplication_idと、BD-Jアプリケーションを起動する際の制御を示すapplication_control_codeを含む。application_control_codeは、タイトル選択後におけるアプリケーションの最初の実行状態を規定しており、またapplication_control_codeは、BD-Jアプリケーションを仮想マシンにロードして自動開始するか(AUTOSTART)、BD-Jアプリケーションを仮想マシンにロードするが自動開始はしないか(PRESENT)を規定することができる。
続いて、再生装置の内部構成について説明する。
図5は、再生装置101の構成の一例を示す図である。再生装置101は、BD-ROMドライブ10、リードバッファ11、リードバッファ12、システムターゲットデコーダ13、BD-J実行部14、ネットワークインターフェイス15、仮想パッケージ制御部16、状態管理部17、ユーザイベント処理部18、再生エンジン19、再生制御エンジン20、HDMI送受信部21、ヒープメモリ22、仮想マシンインタプリタ23、PSRセット 24から構成されている。以降、これらの構成要素について説明する。
<BD-ROMドライブ10>
BD-ROMドライブ10は、BD-ROMディスクからデータを読み出し、リードバッファ11にデータを蓄える。
<リードバッファ11>
リードバッファ11は、BD-ROMドライブを使って読み込んだデータを一時的に格納するメモリ等で構成されたバッファである。
<リードバッファ12>
リードバッフ1ァ12は、ローカルストレージから読み込んだデータを一時的に格納するメモリ等で構成されたバッファである。
<システムターゲットデコーダ13>
システムターゲットデコーダ13は、リードバッファ11に読み出されたソースパケットやリードバッファ12に読み出されたソースパケットに対して多重分離処理を行い、各ストリームをデコードし再生する処理を行う。また、BD-J実行部14よりメニューなどに表示するためのJPEG,PNGなどのグラフィックスデータをデコードして再生する処理を行う。システムターゲットデコーダ13の詳細については後述する。
<BD-J実行部14>
BD-J実行部14は、仮想パッケージ制御部16から転送されるBD-Jアプリケーションを実行するプログラム処理エンジンである。BD-Jアプリケーションのプログラムに従った動作を行い次のような制御を行う。(1)仮想パッケージ制御部16に対してプレイリスト再生する。(2)インターネットなどのWWWサーバからアップデートキットのローカルストレージへ蓄積する。(3)BD-ROMとアップデートキットとを組み合わせて仮想パッケージの構築を命令する。(4)プレーヤ変数に値をセットする。(5)システムターゲットデコーダに対してメニューやゲームのグラフィックスのためのPNG・JPEGを転送して画面に表示する。これらはプログラムの作りに応じて自由に行うことができ、どのように制御するかは、オーサリング工程によるBD-Jアプリケーションのプログラミング工程によって決まる。
<ネットワークインターフェイス15>
ネットワークインターフェイス15は、再生装置における通信機能を実現するものであり、URL指定がBD-Jアプリケーションから与えられれば、そのURLにあたるwebサイトとのTCPコネクション、FTPコネクション等を確立する。かかるコネクション確立によりwebサイトからのダウンロードをJava(TM)アプリケーションに行わせる。
<仮想パッケージ制御部16>
仮想パッケージ制御部16は、BD-ROMドライブ10、ローカルストレージ103を制御して、仮想パッケージを構築し、プレーヤの再生を制御する機能を持つ。仮想パッケージとは、BD-ROMディスクに記録されたコンテンツと、ローカルストレージ103に格納された差分データと、ローカルストレージ103に格納されたマージ管理情報を元に、BD-ROM上のコンテンツとをメモリ上で組み合せた仮想的なBD-ROMパッケージである。構築された仮想パッケージは、BD-ROMのデータ構造と同じ形式を持つ。仮想パッケージを構築するタイミングは、ディスクがインサートされた時や、BD-J実行部14の仮想パッケージ構築命令が実行された時などがある。仮想パッケージ制御部16は、仮想パッケージが構築された後は、BD-J実行部の再生命令や、ユーザイベント処理部より通知に基づきプレイリスト情報を介してAVクリップの再生処理を制御する。また、仮想パッケージ制御部16は、プレーヤ変数の設定や参照を行い、再生動作を行う。
<状態管理部17>
状態管理部17は、BD-ROM又ローカルストレージに存在する個々のAVクリップが、Missing状態、Enable状態、Disable状態の何れであるかを管理し、プレイリストの再生を停止させるかどうかの制御を行う。
Missing状態とは、プレイアイテム情報、サブプレイアイテム情報から参照されているAVクリップがBD-ROM又ローカルストレージに存在しない状態を意味する。
Enable状態とは、仮想パッケージ制御部16での再生可能な状態を意味し、BD-JアプリケーションのAPIで制御される。Enable状態にセットするAPIが実行された場合、AVクリップはリードオンリー属性になり、仮想パッケージ制御部16でのAVクリップの再生が可能になる。
Disable状態は、Enable状態の反対を意味し、仮想パッケージ制御部16は該当AVクリップの再生をすることができない。BD-JアプリケーションによりAVクリップに対してEnable状態に一度もセットされていない場合は、そのAVクリップはDisable状態である。もし、BD-Jアプリケーションが、Enable状態のAVクリップを削除や上書きなどをしたい場合は、Disable状態に一度APIを使って遷移して実行する。
これらのうち、Missing状態になっているAVクリップ、Disable状態になっているAVクリップを併せてUnavailableクリップという。
プレイリストの再生を停止させるかどうかの制御とは、カレントサブプレイアイテム情報が変化した場合、カレントサブプレイアイテム情報にて参照されているAVクリップがUnavailableクリップかどうかを判定して、Unavailableクリップであれば、DataStarvedイベントをJMFプレーヤインスタンス及び再生制御エンジンに通知して、JMFプレーヤインスタンス及び再生制御エンジンを再生状態からストップ状態に遷移させるというものである。
<ユーザイベント処理部18>
ユーザイベント処理部18は、リモコンを通じたユーザ操作に応答して、BD-J実行部14や仮想パッケージ制御部16に処理の実行を依頼する。例えば、リモコンでボタンを押した場合は、そのボタンに含まれるコマンドを実行するようBD-J実行部14に依頼する。例えば、リモコンで早送り・巻戻しボタンが押された場合には、仮想パッケージ制御部16に、現在再生しているプレイリストのAVクリップに対する早送り・巻戻し処理の実行を命令する。
<再生エンジン19>
再生エンジン19は、AV再生ファンクションを実行する。再生装置のAV再生ファンクションとは、DVDプレーヤ、CDプレーヤから踏襲した伝統的な機能群であり、再生開始(Play)、再生停止(Stop)、一時停止(PauseOn)、一時停止の解除(Pause Off)、Still機能の解除(still off)、速度指定付きの早送り(Forward Play(speed))、速度指定付きの巻戻し(BackwardPlay(speed))、音声切り換え(Audio Change)、Secondaryビデオ切り換え(Subtitle Change)、アングル切り換え(AngleChange)といった機能である。AV再生ファンクションを実現するべく、再生エンジン19は、AVクリップのうち、所望に時刻にあたる部分のデコードを行うよう、システムターゲットデコーダを制御する。
<再生制御エンジン20>
再生制御エンジン20は、プレイリストに対する再生制御ファンクションを実行する。プレイリストに対する再生制御ファンクションとは、再生エンジン19が行うAV再生ファンクションのうち、再生開始や再生停止を、カレントプレイリスト情報及びクリップ情報に従って行わせることをいう。
<HDMI送受信部21>
HDMI送受信部21は、HDMI(HDMI:High Definition Multimedia Interface)を介して接続された他の機器から、その機器に関する情報を受信とすると共に、システムターゲットデコーダのデコードにより得られたデジタル非圧縮のビデオを、LPCMや圧縮されたオーディオデータと共に、HDMIを介して接続された他の機器に送信する。
<ヒープメモリ22>
ヒープメモリ22は、BD-J実行部14のために確保されるスタックメモリであり、BD-Jアプリケーションによって生成されたJMFプレーヤインスタンスや、BD-Jアプリケーションに対してクラスローダを行うことで生成されるバイトコードが格納される。これらは、スレッドの態様をなし、先入先出し式に、仮想マシンインタプリタ23による実行に供される。
<仮想マシンインタプリタ23>
仮想マシンインタプリタ23は、ヒープメモリ22に格納されたバイトコードをCPUが実行可能なネィティブコードに変換してCPUに実行させる。

<PSRセット 24>
PSRセット 24は、プレーヤ変数を格納しているプレーヤセッティングレジスタ、プレーヤステータスレジスタである。プレーヤ変数は、プレーヤの状態を示すシステムパラメータ(SPRM)と一般用途として使用可能なゼネラルパラメータ(GPRM)とがある。
図6はシステムパラメータ(SPRM)の一覧である。
SPRM(0) : 言語コード
SPRM(1) : Primaryオーディオストリーム番号
SPRM(2) : 字幕ストリーム番号
SPRM(3) : アングル番号
SPRM(4) : タイトル番号
SPRM(5) : チャプタ番号
SPRM(6) : プログラム番号
SPRM(7) : セル番号
SPRM(8) : 選択キー情報
SPRM(9) : ナビゲーションタイマー
SPRM(10) : 再生時刻情報
SPRM(11) : カラオケ用ミキシングモード
SPRM(12) : パレンタル用国情報
SPRM(13) : パレンタルレベル
SPRM(14) : プレーヤ設定値(ビデオ)
SPRM(15) : プレーヤ設定値(オーディオ)
SPRM(16) : 音声ストリーム用言語コード
SPRM(17) : 音声ストリーム用言語コード(拡張)
SPRM(18) : 字幕ストリーム用言語コード
SPRM(19) : 字幕ストリーム用言語コード(拡張)
SPRM(20) : プレーヤリージョンコード
SPRM(21) : Secondaryビデオストリーム番号
SPRM(22) : Secondaryオーディオストリーム番号
SPRM(23) : 再生状態
SPRM(24) : 予備
SPRM(25) : 予備
SPRM(26) : 予備
SPRM(27) : 予備
SPRM(28) : 予備
SPRM(29) : 予備
SPRM(30) : 予備
SPRM(31) : 予備
SPRM(10)は、AVクリップに属する各ピクチャデータが表示される度に更新される。つまり再生装置が新たなピクチャデータを表示させれば、その新たなピクチャデータの表示時刻(PTS)を示す値にSPRM(10)は更新される。このSPRM(10)を参照すれば、現在の再生時点を知得することができる。
SPRM(16)の音声ストリーム用言語コードやSPRM(18)の字幕ストリーム用言語コードは、プレーヤのOSDなどで設定できる項目であり、プレーヤのデフォルトの言語コードを示す。例えば、SPRM(16)の音声ストリーム用言語コードが英語であれば、プレイリストを再生する上で、プレイアイテムのストリーム選択テーブルの中から同じ言語コードを持つストリームエントリを探し出し、その音声ストリームを選択して再生するといった機能をBD-ROMディスクの中のBD-Jアプリケーションに入れることが出来る。これらのSPRMは、それぞれが32ビットの語長をもつレジスタに格納される。SPRMを特定する括弧書きの数値は、基本的には、対応するレジスタのレジスタ番号を意味する(但し、SPRM(21),SPRM(22)は、対応するレジスタのレジスタ番号を意味している訳ではない。)。
<ストリーミングライクな再生機能>
次に図7を用いながら、仮想パッケージを利用したストリーミングライクな再生機能における仮想パッケージ制御部16の再生遷移について説明する。図7は、ストリーミングライクな再生機能を模式的に示す図である。
ストリーミングライクな再生機能とは、プレイアイテム情報又はサブプレイアイテム情報によって参照されているAVクリップであって、プログレッシブ属性が付与されているものを、当該プレイアイテム情報又はサブプレイアイテム情報が、カレントプレイアイテム又はカレントサブプレイアイテム情報になる直前にローカルストレージに格納するよう、再生動作とダウンロード動作とを並列に行うことをいう。
図7上段は、プレイリストを示し、5つのプレイアイテムは、それぞれ、00001.m2ts、0002.m2ts、00003.m2ts、00004.m2ts、00005.m2tsを参照するが、これらはすべてローカルストレージに格納されたアップデートキットのコンテンツであり、プログレッシブ属性が付与されている。このうち、00001.m2ts、00002.m2tsは、すでにダウンロードが完了しており、BD-JアプリケーションによりEnable状態にセットされている。00003.m2ts、00004.m2ts、00005.m2tsはまだダウンロードがされていないか、あるいは、ダウンロードはされているがDisable状態であることを示す。仮想パッケージ制御部16は、プレイリストの先頭プレイアイテムから順に再生する場合、図7上段のとおり、再生位置がプレイアイテム#1、プレイアイテム#2に存在する場合は、再生が妨げられることはない。これらのプレイアイテムのプレイアイテム情報は、Enable状態であるAVクリップを参照しているからである。よって、プレイアイテム#3まで再生が進行する。
図7中段は、図7上段からさらに再生位置が進んだ図を示し、再生位置がプレイアイテム#3に遷移する前に00003.m2tsのダウンロードが完了し、BD-JアプリケーションによりEnable状態にセットされたことを示す。よって、再生は、プレイアイテム#3まで進行する。
図7下段は、図7中段からさらに再生位置が進んだ図を示し、再生位置がプレイアイテム#4に遷移した時に、参照する00004.m2tsがまだダウンロードがされていないか、Disable状態であることを示す。この場合、DataStarvedイベントが出力されることになる。BD-Jアプリケーションは、DataStarvedイベントを受け取った後は、00004.m2tsのダウンロードを完了させ、Enable状態に遷移させ、DataStarvedイベントを受け取った地点から再生開始するという制御などでリカバーを図る。
以上のように、ストリーミングライクな再生では、次の再生位置にあるプレイアイテムのAVクリップが、前もってダウンロードされてEnable状態にセットされる限り、再生進行が妨げられることはない。
図8は、サブプレイアイテムを伴う場合のストリーミングライクな再生進行の一例を示す図である。
第3段目は、図3のプレイリストに、再生がどこまで進行を示したかを模式的に示す矢印を書き加えたものである。
第1段目は、JMFプレーヤインスタンスの状態を示し、第2段目は、再生制御エンジンの状態を示す。第3段目は、題材となるプレイリストを示す。第1段目によると、JMFプレーヤインスタンスは、再生状態になっているが、DataStarvedイベントが出力されれば、ストップ状態になる。DataStarvedイベントとは、再生すべきデータが、欠乏していることを示すイベントであり、このDataStarvedイベントを受け取ったJMFプレーヤインスタンス及び再生制御エンジンは、ストップ状態に遷移することになる。JMFプレーヤインスタンス及び再生制御エンジンの動作を停止させるので、DataStarvedイベントは、“再生停止イベント”とも呼ばれる。
第2段目によると、再生制御エンジンは、再生状態になっているが、DataStarvedイベントが出力されれば、JMFプレーヤインスタンスと共にストップ状態になる。即ちJMFプレーヤインスタンス及び再生制御エンジンは、DataStarvedイベントをトリガとして、再生状態からストップ状態に切り替わっていることがわかる。
図8では、サブプレイアイテム(パスID=0)に属するサブプレイアイテム#1がカレントサブプレイアイテム情報になっているため、再生は、プレイアイテム#1,SubPlayItem#1まで進行する。プレイアイテム#2では、対応するサブプレイアイテム#2によって参照されている20002.m2tsがUnavailableクリップであるから、カレントサブプレイアイテムがサブプレイアイテム#2になると、DataStarvedイベントを出力して再生をストップせざるをえない。
図9は、再生位置がプレイアイテム#2に到達しようとしている状態の一例を示す図である。本図の例では、現在の再生位置であるプレイアイテム#2に対応する、サブパスID=0のサブプレイアイテム#2はEnable状態のAVクリップを参照している。しかし、サブパスID=1のサブプレイアイテム#2は、まだダウンロードがされていないか、Disable状態のAVクリップを参照している。SPRM(2)が示すのは、サブパスID=0のサブプレイアイテム#2であるため、サブパスID=1のサブプレイアイテム#2のAVクリップがEnable状態になっていなくても、仮想パッケージ制御部16は再生を継続できる。
20002.m2tsが、Unavailableクリップであっても、再生が妨げられないので、再生は、プレイアイテム#3まで進行する。プレイアイテム#4では、対応するサブプレイアイテム#4にて参照されている、10004.m2tsがUnavailableクリップになるから、カレントプレイアイテム情報がプレイアイテム#4になった時点で再生が中断する。
以上のことから次のことがいえる。つまり、プレイアイテム#2の再生区間に対応するすべてのサブパス(ID=0,ID=1)のサブプレイアイテムから参照されるAVクリップをダウンロードしようとすると、ダウンロードの対象となるAVクリップは、10001.m2ts、10002.m2ts、10003.m2ts、10004.m2ts、10005.m2ts、20001.m2ts、20002.m2ts、20003.m2ts、20004.m2ts、20005.m2tsになるので、仮想パッケージ制御部16は、サブパスの数だけAVクリップのダウンロードを待たなければならない。その場合、サブパスの数が増えると、ユーザはプレイリストの再生を行う上で多くの時間を待たなければならなくなる。
一方、上述したような動作では、サブプレイアイテムにおいては、Primaryオーディオストリーム番号SPRM(1)、字幕ストリーム番号SPRM(2)、Secondaryビデオストリーム番号SPRM(21)、Secondaryオーディオストリーム番号SPRM(22)によって指定されるストリームを含むAVクリップがすべてEnable状態であれば、他のサブパスのサブプレイアイテムのAVクリップがEnable状態になるまで待つことなく、再生を続行できるとする。こうすることによって、ユーザは不要なAVクリップのダウンロードを待たずにプレイリストの再生を継続できる。
図10は、字幕切替えがユーザによって要求されたため、現在の再生時点が、サブパス(ID=#0)の10003.m2tsを参照しているサブプレイアイテム#3から、サブパス(ID=#1)の20003.m2tsを参照しているサブプレイアイテム#3に変化した場合を想定した図である。
ユーザ操作などでSPRM(2)を3に変更した場合、再生する字幕はサブパスID=1のサブプレイアイテム#3になる。サブプレイアイテム#3が参照している20003.m2tsは、Unavailableクリップであるから、この切り替えと同時に、DataStarvedイベントが出力されることになる。以上のように、字幕切り替えが要求された場合、切り替え先の字幕ストリームを包含しているAVクリップがダウンロードされていないか、Disable状態であれば、仮想パッケージ制御部16は再生を停止し、DataStarvedイベントをBD-Jアプリケーションに通知する。
図11は、チャプタージャンプがあったため、プレイアイテム#3がカレントプレイアイテムになり、サブプレイアイテム#3がカレントサブプレイアイテム情報になったことを想定した図である。サブプレイアイテム#3によって参照されている20003.m2tsは、Unavailableクリップであるため、DataStarvedイベントを発生し、再生をストップ状態させる。
Unavailableクリップを参照しているサブプレイアイテムがカレントサブプレイアイテム情報になった際、再生がストップ状態するので、ダウンロードにあたっては、次のプレイアイテム及び次のサブプレイアイテムにて参照されているクリップファイルであって、再生対象となるカレントストリームを含むものを優先的にダウンロードすれば、再生を継続することができる。
以上のように、チャプタジャンプなどの飛び込み再生では、Primaryオーディオストリーム番号SPRM(1)、字幕ストリーム番号SPRM(2)、Secondaryビデオストリーム番号SPRM(21)、Secondaryオーディオストリーム番号SPRM(22)のどれかのストリーム番号が、SubPlayItemに対応しており、そのサブプレイアイテムが、まだダウンロードがされていないか、Disable状態であるAVクリップを参照するときに、仮想パッケージ制御部16はDataStarvedイベントをBD-Jアプリケーションに通知することになる。このような仮想パッケージ制御部16の再生動作を定義することにより、同様に最小のAVクリップのダウンロードで再生を継続することができる。
図12は、BD-Jアプリケーションの処理手順を示すフローチャートである。
ステップS1において、ローディングされたBD-ROMに対応するアップデートキットを、ローカルストレージのBUDA(Biding Unit Data Area)ディレクトリにダウンロードする。ステップS2では、アップデートキット内のMissing状態を指定した仮想パッケージ構築要求を発行する。
以降、ステップS3〜ステップS8のループを実行する。このループは、プレイリストを選択してJMFプレーヤインスタンスをクリエイトし(ステップS3)、プレイリスト情報における先頭のプレイアイテムを、カレントプレイアイテムに設定し(ステップS4)、カレントプレイアイテムにおけるClip_Information_file_nameで指定されているAVクリップを選択して(ステップS5)、AVクリップをダウンロードし(ステップS6)、仮想マシン内で、以下の3つのスレッドを仮想マシン内に立てて、これらの処理を並列で実行する(ステップS7)という処理を繰り返すものである。
(1).プレイリスト再生、
(2).プログレッシブ属性AVクリップ制御
(3).DataStarvedイベントリカバリー処理
これらの3つの処理の実行が終了すれば、3つのスレッドを終了させ、ステップS3に戻る。
図13は、AVクリップダウンロードの処理手順を示すフローチャートである。ステップS11において、WWW上のサーバー装置からBUDAディレクトリにAVクリップをダウンロードするようネットワークインターフェイスに指示し、ステップS12において、AVクリップをMissing状態からDisable状態に変更する。ステップS13においてダウンロードがなされるのを待ち、ダウンロードがなされれば、ステップS14においてベリファイを行って、正常であれば、ステップS15においてAVクリップをEnable状態にする。
図14は、プレイリスト再生処理の処理手順を示すフローチャートである。ステップS21においてカレントサブプレイアイテム情報を決定して、ステップS22〜ステップS24のループに移行する。ステップS22〜ステップS24のループは、カレントプレイアイテムのClip_Information_file_nameで指定されているAVクリップはUnavailableクリップであるかどうかを判定し(ステップS22)、Unavailableクリップでなければ、AVクリップを構成するソースパケットのうち、カレントプレイアイテムのIn_TimeからOut_TimeまでのものをBD-ROMから読み出すという処理(ステップS23)、カレントサブプレイアイテム情報のClip_Information_file_nameで指定されているAVクリップがUnavailableクリップであるかどうかを判定して(ステップS24)、Unavailableクリップでなければ、AVクリップを構成するソースパケットのうち、カレントプレイアイテムのIn_TimeからOut_Timeまでのものをローカルストレージから読み出すという処理(ステップS25)、読み出されたソースパケットのうち、カレントプレイアイテムのSTN_tableで再生が許可されているものを、デコーダに出力するという処理(ステップS26)、カレントプレイアイテムが最後のプレイアイテムであるか否かを判定する処理(ステップS27)、カレントプレイアイテムを変更するという処理(ステップS28)を繰り返すものである。このループの終了条件は、プレイリスト内に、次のプレイアイテムがないと判定されることである(ステップS27でYes)。
ステップS29において、カレントプレイアイテムのClip_Information_file_nameで指定されているAVクリップ、又は、カレントサブプレイアイテム情報のClip_Information_file_nameで指定されているAVクリップがUnavailableクリップであるなら、DataStarvedイベントを発生して、再生制御エンジン及びJMFプレーヤインスタンスのストップ状態にさせ、その後、再開を待つ(ステップS30)。
図15は、カレントサブプレイアイテム情報の決定手順を示すフローチャートである。ステップS31において、プロシージャによってカレントプライマリオーディオストリームを決定して、SPRM(1)に設定し、ステップS32においてプロシージャによってカレントセカンダリオーディオストリームを決定して、SPRM(14)に設定する。ステップS33において、カレントセカンダリビデオストリームを決定して、SPRM(21)に設定し、ステップS34において、カレントPGテキスト字幕ストリームを決定して、SPRM(2)に設定する。
そして、カレントプライマリオーディオストリーム、カレントセカンダリオーディオストリーム、カレントプライマリビデオストリーム、カレントPGテキスト字幕ストリームをClip_Information_file_nameで参照している全てのサブプレイアイテムを、カレントサブプレイアイテムに設定する。
図16は、プログレッシブ属性AVクリップ制御の処理手順を示すフローチャートである。
ステップS41において、カレントプレイアイテムの次のプレイアイテム(ネクストプレイアイテム)におけるClip_Information_file_nameで指定されているAVクリップを選択し、ステップS42において、ネクストプレイアイテムをSync_PlayItem_Idに記述しているサブプレイアイテム(ネクストサブプレイアイテム)を特定する。ステップS43において、ネクストサブプレイアイテムのClip_Information_file_nameで指定されているAVクリップであって、PSRにおけるカレントストリーム番号に対応するエレメンタリストリームを含むAVクリップを選択する。
ステップS44では、選択されたAVクリップがローカルストレージに存在するかどうかを判定し、存在しなければ、ステップS45において選択されたAVクリップのダウンロードを行う。ステップS46では、削除すべきAVクリップの選択を行い、削除すべきAVクリップが存在するかどうかを判定する(ステップS47)。存在すれば、AVクリップの削除を行う(ステップS48)。ステップS49では、カレントプレイアイテム、カレントサブプレイアイテム情報が変化するのを待ち、変化すれば、プレイリストの再生が終了したかどうかを判定した上で、ステップS41に移行する(ステップS50)。
図17は、再生停止リカバリー処理の処理手順を示すフローチャートである。ステップS61は、DataStarvedイベントを取得待ちを構成するループであり、DataStarvedイベントがなされれば、ステップS62は、ステップS62は、DataStarvedイベントを取得したAVクリップのダウンロードが完了するのを待つ事象完了待ちループである。ステップS63は、DataStarvedイベントを取得した再生位置からのプレイリスト再生を開始し、ステップS64では、プレイリストの再生が終了したか否かを判定する。
次に、AVクリップにおけるカレントの再生位置と、ダウンロードの対象となるAVクリップとの関係を示す。
図18は、カレントプレイアイテムがプレイアイテム#1であり、カレントサブプレイアイテム情報がサブパス(ID=1)のサブプレイアイテム#1である場合に、ダウンロードを要求すべきクリップファイルを示す。ローカルストレージでは、カレントプレイアイテムを構成する00001.m2ts、及び、カレントサブプレイアイテム情報を構成する20001.m2tsが、Enable状態になっている必要がある。この場合、ネクストプレイアイテムはプレイアイテム#2、ネクストサブプレイアイテムはサブプレイアイテム情報#2になるから、カレントプレイアイテム及びカレントサブプレイアイテム情報の再生中に、ダウンロードを要求すべきクリップファイルは、ネクストプレイアイテムを構成する00002.m2ts、及び、ネクストサブプレイアイテムを構成する20002.m2tsとなる。
図19は、カレントプレイアイテムがプレイアイテム#2であり、カレントサブプレイアイテム情報がサブパス(ID=1)のサブプレイアイテム#2である場合に、ダウンロードを要求すべきクリップファイルを示す。ローカルストレージでは、カレントプレイアイテムを構成する00002.m2ts、及び、カレントサブプレイアイテム情報を構成する20002.m2tsが、Enable状態になっている必要がある。この場合、ネクストプレイアイテムはプレイアイテム#3、ネクストサブプレイアイテムはサブプレイアイテム情報#3になるから、カレントプレイアイテム及びカレントサブプレイアイテム情報の再生中に、ダウンロードを要求すべきクリップファイルは、ネクストプレイアイテムを構成する00003.m2ts、及び、ネクストサブプレイアイテムを構成する20003.m2tsとなる。
図20は、カレントプレイアイテムがプレイアイテム#3であり、カレントサブプレイアイテム情報がサブパス(ID=1)のサブプレイアイテム#3である場合に、ダウンロードを要求すべきクリップファイルを示す。ローカルストレージでは、カレントプレイアイテムを構成する00003.m2ts、及び、カレントサブプレイアイテム情報を構成する20003.m2tsが、Enable状態になっている必要がある。この場合、ネクストプレイアイテムはプレイアイテム#4、ネクストサブプレイアイテムはサブプレイアイテム情報#4になるから、カレントプレイアイテム及びカレントサブプレイアイテム情報の再生中に、ダウンロードを要求すべきクリップファイルは、ネクストプレイアイテムを構成する00004.m2ts、及び、ネクストサブプレイアイテムを構成する20004.m2tsとなる。


サブパスが同期型である場合、カレントサブプレイアイテム情報の再生時間長は、カレントプレイアイテムの再生時間長に等しいため、以上のダウンロードでは、カレントプレイアイテムの再生継続中に、ネクストプレイアイテム及びネクストサブプレイアイテムを構成するクリップファイルのダウンロードを実現すればよい。
よってダウンロードに必要なビットレートBは、以下の計算で示されるものとなる。

ビットレートB=
ネクストプレイアイテムを構成するクリップファイルのデータサイズ+ネクストサブプレイアイテムを構成するクリップファイルのデータサイズ
/カレントプレイアイテムの再生時間

このように、カレントプレイアイテム及びカレントサブプレイアイテム情報の再生中に、ネクストプレイアイテムによって参照されるAVクリップと、ネクストサブプレイアイテムによって参照されるAVクリップとをダウンロードしておけば、必要最低限のAVクリップは、ローカルストレージに揃うので、DataStarvedイベントの発生によって再生進行が妨げられることはない。
以上のように本実施の形態によれば、複数のサブパスから構成されるプレイリストを再生する上で、再生装置に内蔵されるどのストリームが選択されているかを示すプレーヤ変数を参照し、再生に必要でないAVクリップは、ダウンロードが完了していない状態でも再生を継続することができるようになり、効率的なストリーミングライクな再生を実現できる
<備考>
第1実施形態のうち、以下に示す技術的トピックについては、更なる改良や変更実施を加えることができる。第1実施形態に示した通り実施するか、これらの改良・変更を施すか否かは、何れも任意的であり、実施する者の主観によることは留意されたい。
<プレイリスト再生の前処理>
プレイリスト再生の前処理では、SPRM(16)の音声ストリーム用言語コードやSPRM(18)の字幕ストリーム用言語コードに記された言語コードを持つ音声ストリームや字幕ストリームを含むAVクリップを優先的にダウンロードするべきである。このような構成にすることによって、ユーザがプレイリスト再生で利用する可能性が高いAVクリップをダウンロード対象に選べることができる。
<BD-ROMとの併用>
メインパスがディスクに格納されている本編映像を示す場合には、現在の再生位置以降のサブプレイアイテムで利用される、
現在のPrimaryオーディオストリーム番号SPRM(1)、
字幕ストリーム番号SPRM(2)、
Secondaryビデオストリーム番号SPRM(21)、
Secondaryオーディオストリーム番号SPRM(22)が示すストリーム番号に対応するストリームを含むAVクリップ
を逐次、現在の再生位置から近い順にシーケンシャルに決定することが望ましい。
このようにすることで、本編映像を見る間ユーザは、字幕や音声を変えることはまれなので、ユーザに待ち時間を与えることなくプレイリストの再生を実現できる。
<本編再生の中断防止>
本編再生中に、字幕・音声・Secondaryビデオ・Secondaryオーディオのダウンロードが間に合わないため、DataStarvedイベントが発行されて、一時的に本編再生がストップしてしまうという状態を避けるためには、次のような処理をBD-Jアプリケーションに用意しておく。それは、例えば現在のPrimaryオーディオストリーム番号SPRM(1)で、そのストリーム番号に対応するストリームを含むAVクリップがまだEnable状態になっていない場合は、そのAVクリップを含むサブプレイアイテムに到達する前に、BD-JアプリケーションがSPRM(1)を「何もストリームが選択されていない」という特殊値か、すでにEnable状態になっている、もしくはディスク上に存在するAVクリップのストリーム番号を決定するように書き換える(この場合、あらかじめこの状況を想定してダミーのコンテンツをディスク上に用意しておくとよい)。このような構成にすることによりBDーJアプリケーションはDataStarvedイベントを発行させない制御が可能となる。上記の処理は、日本語音声を英語音声に切り替えるようなユーザ操作によるストリーム切り替えに対しても同じことがいえる。ストリーム切り替えSPRM(1)の書き換えが実際に発生する前にBD-Jアプリケーションがそれを禁止することで本編再生の一時的な再生停止を防ぐことができる。
(第2実施形態)
AVクリップ(XXX.M2TS)とクリップ情報ファイル(XXX.CLPI)、システムターゲットデコーダについて説明する。
<AVクリップの内部構成>
AVクリップは、MPEG-2トランスポートストリーム形式のデジタルストリームである。
図21は、AVクリップの構成の一例を示す図である。本図に示すようにAVクリップは、ビデオストリーム、オーディオストリーム、プレゼンテーショングラフィックスストリーム(PG)、インタラクティブグラファイックスストリームのうち、1つ以上を多重化することで得られる。ビデオストリームは映画のPrimaryビデオおよびSecondaryビデオを、オーディオストリームは、映画のPrimaryオーディオ部分とそのPrimaryオーディオとミキシングするSecondaryオーディオを、プレゼンテーショングラフィックスストリームは、映画の字幕をそれぞれ示している。ここでPrimaryビデオとは画面に表示される通常の映像を示し、SecondaryビデオとはPrimaryビデオの中に小さな画面で表示する映像のことである。また、インタラクティブグラフィックスストリームは、画面上にGUI部品を配置することにより作成される対話画面を示している。AVクリップに含まれる各ストリームはPIDによって識別される。例えば、映画の映像に利用するビデオストリームには0x1011が、オーディオストリームには0x1100から0x111Fまでが、プレゼンテーショングラフィックスには0x1200から0x121Fまでが、インタラクティブグラフィックスストリームには0x1400から0x141Fまでが、映画のSecondaryビデオに利用するビデオストリームには0x1B00から0x1B1Fまで、PrimaryオーディオとミキシングするSecondaryオーディオに利用するオーディオストリームには0x1A00から0x1A1Fが、それぞれ割り当てられている。
<AVクリップにおける多重化>
図22は、AVクリップがどのように多重化されるかを模式的に示す図である。まず、ビデオストリーム、及び、オーディオストリームを(第1段目)、それぞれPESパケット列に変換し(第2段目)、TSパケット列に変換する(第3段目)。同じくプレゼンテーショングラフィックスストリームおよびインタラクティブグラフィックス7(第7段目)を、それぞれPESパケット列に変換し(エレメンタリストリーム)、更にTSパケット列に変換する(第5段目)。AVクリップ(第4段目)はこれらのTSパケットを1本のストリームに多重化することで構成される。
図23は、PESパケット列に、ビデオストリームがどのように格納されるかを更に詳しく示している。本図における第1段目はビデオストリームのビデオフレーム列を示す。第2段目は、PESパケット列を示す。第3段目は、これらのPESパケット列を変換することで得られるTSパケット列を示す。本図の矢印yy1,yy2, yy3, yy4に示すように、ビデオストリームにおける複数のVideo Presentation UnitであるIピクチャ、Bピクチャ、Pピクチャは、ピクチャ毎に分割され、PESパケットのペイロードに格納される。各PESパケットはPESヘッダを持ち、PESヘッダには、ピクチャの表示時刻であるPTS(Presentation Time-Stamp)やピクチャの復号時刻であるDTS(Decoding Time-Stamp)が格納される。
<TSパケット列>
図24は、AVクリップに最終的に書き込まれるTSパケットの形式を示している。第1段目は、TSパケット列を示し、第2段目は、ソースパケット列を示す。第3段目は、AVクリップを示す。
第1段目に示すようにTSパケットは、ストリームを識別するPIDなどの情報を持つ4Byteの「TSヘッダ」とデータを格納する184Byteの「TSペイロード」に分かれる固定長のパケットであり、前述で説明したPESパケットは分割されTSペイロードに格納される。
第2段目によると、TSパケットには、4ByteのTP_Extra_Headerが付与されて、192Byteのソースパケットに変換された状態で、AVクリップに書き込まれる。TP_Extra_HeaderにはATS(Arrival_Time_Stamp)などの情報が記載される。ATSは当該TSパケットのPIDフィルタへの転送開始時刻を示す。AVクリップには、第3段目に示すようにソースパケットが並ぶこととなり、AVクリップの先頭からインクリメントする番号はSPN(ソースパケットナンバー)と呼ばれる。
AVクリップに含まれるTSパケットには、映像・音声・字幕などの各ストリーム以外にもPAT(Program Association Table)、PMT(Program Map Table)、PCR(Program Clock Reference)などがある。PATはAVクリップ中に利用されるPMTのPIDが何であるかを示し、PAT自身のPID配列で登録される。PMTは、AVクリップ中に含まれる映像・音声・字幕などの各ストリームのPIDと各PIDに対応するストリームの属性情報を持ち、またAVクリップに関する各種ディスクリプタを持つ。ディスクリプタにはAVクリップのコピーを許可・不許可を指示するコピーコントロール情報などがある。PCRは、ATSの時間軸であるATC(Arrival Time Clock)とPTS・DTSの時間軸であるSTC(System Time Clock)の同期を取るために、そのPCRパケットがデコーダに転送されるATSに対応するSTC時間の情報を持つ。
図25はPMTのデータ構造を詳しく説明する図である。PMTの先頭には、そのPMTに含まれるデータの長さなどを記した「PMTヘッダ」が配置される。その後ろには、AVクリップに関する「ディスクリプタ」が配置される。前述したコピーコントロール情報などが、ディスクリプタとして記載される。ディスクリプタの後には、AVクリップに含まれる各ストリームに関する「ストリーム情報#1〜#N」が複数配置される。ストリーム情報は、ストリームの圧縮コーデックなどを識別するためストリームタイプ、ストリームのPID、ストリームの属性情報(フレームレート、アスペクト比など)が記載されたストリームディスクリプタから構成される。ストリームディスクリプタはAVクリップに存在するストリームの数だけ存在する。 以上がAVクリップについての説明である。続いて、クリップ情報ファイルの詳細について説明する。
<クリップ情報ファイル>
図26は、クリップ情報ファイルの一例を示す図である。クリップ情報ファイルは、本図に示すようにAVクリップの管理情報であり、AVクリップと1対1に対応し、ストリーム属性情報とエントリマップから構成される。
図27は、ストリーム属性情報の一例を示す図である。ストリーム属性情報は本図に示すように、AVクリップに含まれる各ストリームについての属性情報が、PID毎に登録される。属性情報はビデオストリーム、オーディオストリーム、プレゼンテーショングラフィックスストリーム、インタラクティブグラフィックスストリーム毎に異なる情報を持つ。
「ビデオストリーム属性情報」は、そのビデオストリームがどのような圧縮コーデックで圧縮されたか、ビデオストリームを構成する個々のピクチャデータの解像度がどれだけであるか、アスペクト比はどれだけであるか、フレームレートはどれだけであるかなどの情報を持つ。
「オーディオストリーム属性情報」は、そのオーディオストリームがどのような圧縮コーデックで圧縮されたか、そのオーディオストリームに含まれるチャンネル数は何であるか、何の言語に対応するか、サンプリング周波数がどれだけであるかなどの情報を持つ。これらの情報は、再生機が再生する前のデコーダの初期化などに利用される。
図28は、エントリマップの一例を示す図である。
エントリマップは、本図に示すように、AVクリップ内に含まれるビデオストリームの各フレーム内符号化画像(以下Iピクチャと呼ぶ)の表示時刻を示すPTSと各Iピクチャが開始するAVクリップのSPNが記載されたテーブル情報である。
ここではテーブルの1つの行で示される対となるPTSとSPNの情報をエントリポイントと呼ぶことにする。また先頭を0として各エントリポイント毎にインクリメントした値をエントリポイントID(以下EP_ID)と呼ぶことにする。このエントリマップを利用することにより、再生機はビデオストリームの時間軸上の任意の地点に対応するAVクリップのファイル位置を特定することが出来るようになる。例えば、早送り・巻戻しの特殊再生の際には、エントリマップに登録されるIピクチャを特定し選択して再生することによりAVクリップを解析することなく効率的に処理を行うことが出来る。また、エントリマップはAVクリップ内に多重化される各ビデオストリーム毎に作られ、PIDで管理される。
以上がAVクリップ、クリップ情報ファイルについての説明である。続いて、システムターゲットデコーダ13の詳細について説明する。
図29は、システムターゲットデコーダ13の内部構成の一例を示す図である。本図に示すように、システムターゲットデコーダ13は、ソースデパケットタイザ32a,bと、PIDフィルタ33a,bと、Primaryビデオデコーダ34と、Primaryビデオプレーン35と、Secondaryビデオデコーダ36と、Secondaryビデオプレーン37と、PGデコーダ38と、PGプレーン39と、IGデコーダ40と、IGプレーン41と、Primaryオーディオデコーダ42と、Secondaryオーディオデコーダ43と、音声ミキサー44と、BD-Jプロセッサ45と、BD-Jプレーン46と、加算部47とから構成される。
ソースデパケットタイザ32a,bは、システムターゲットデコーダ13に転送されるソースパケットを解釈し、TSパケットを取り出しPIDフィルタに送出する。この送出にあたって、各ソースパケットのATSに応じてデコーダへの入力時刻を調整する。具体的には、ATCカウンタが生成するATCの値と、ソースパケットのATS値とが同一になった瞬間に、AVクリップの記録レートにしたがって、そのTSパケットだけをPIDフィルタに転送する。
PIDフィルタ33a,bは、ソースデパケッタイザから出力されたTSパケットのうち、TSパケットのPIDが、再生に必要とされるPIDに一致するものを、PIDにしたがって、Primaryビデオデコーダ、Secondaryビデオデコーダ、IGデコーダ、PGデコーダ、音声デコーダ、Secondaryオーディオデコーダに転送する。例えば、BD-ROMの場合には、TSパケットに含まれるPIDが0x1011である場合はPrimaryビデオデコーダに、PIDが0x1B00から0x1B1Fである場合はSecondaryビデオデコーダ2505に、PIDが0x1100から0x111Fである場合はPrimaryオーディオデコーダに、PIDが0x1A00から0x1A1Fである場合はSecondaryオーディオデコーダに、PIDが0x1200から0x121Fである場合はPGデコーダ2507に、PIDが0x1400から0x141Fである場合はIGデコーダ2506に転送される。
図28の通りソースデパケッタイザとPIDフィルタはそれぞれ二つもち、一つはリードバッファ11から転送されるAVクリップ、一つはリードバッファ12から転送されるAVクリップを処理する。サブパスタイプが同期型の場合は、メインパスから参照されるAVクリップとサブパスから参照されるAVクリップは同期を取りながら再生する。サブパスタイプが非同期型の場合は、メインパスから参照されるAVクリップとサブパスから参照されるAVクリップは非同期で再生する。
Primaryビデオデコーダ34は、緩衝バッファを有し、バッファにデータを蓄えながら、TSヘッダ、PESヘッダなどの情報を取り除いて、符号化状態にあるピクチャ(Iピクチャ、Bピクチャ、Pピクチャ)を取り出し、ビデオストリームの個々のフレーム画像を所定の復号時刻(DTS)ごとにデコードすることにより複数フレーム画像を作成し、表示時刻(PTS)のタイミングでPrimaryビデオプレーン35に書き込む。AVクリップに多重化されるビデオストリームの圧縮符号化形式にはMPEG2、MPEG4AVC、VC1などがあるため、ストリームの属性に応じて、圧縮映像の復号化方式を切り替える。
Primaryビデオプレーン35は、Primaryビデオデコーダ34によって得られたフレーム画像が格納される。
Secondaryビデオデコーダ36は、Primaryビデオデコーダ35と同様の構成を持ち、入力されるSecondaryビデオストリームのデコードを行い、表示時刻(PTS)のタイミングでピクチャをSecondaryビデオプレーンに書き出す。
Secondaryビデオプレーン37は、Secondaryビデオデコーダ36によって得られたフレーム画像が格納される。
PGデコーダ38は、ソースパケタイザから入力されるTSパケットからプレゼンテーショングラフィックスストリームを抽出してデコードし、非圧縮のグラフィックスデータを表示時刻(PTS)のタイミングでPGプレーンに書き出す。
PGプレーン39は、非圧縮のグラフィクスデータが格納される。
IGデコーダ40は、ソースパケタイザから入力されるTSパケットからインタラクティブグラフィックスストリームを抽出してデコードし、非圧縮のグラフィックスデータを表示時刻(PTS)のタイミングでIGプレーンに書き出す。
IGプレーン41には、非圧縮のグラフィクスデータが格納される。
Primaryオーディオデコーダ42は、緩衝バッファを有し、バッファにデータを蓄えながら、TSヘッダ、PESヘッダなどの情報を取り除いて、音声ストリームデコード処理を行い、非圧縮のLPCM状態のオーディオデータを得て再生時刻(PTS)のタイミングで音声ミキサーに出力する。AVクリップに多重化されるオーディオストリームの圧縮符号化形式にはAC3、DTSなどがあるため、ストリームの属性に応じて、圧縮音声の復号化方式を切り替える。
Secondaryオーディオデコーダ43は、Primaryオーディオデコーダと同様の構成を持ち、入力されるSecondaryオーディオストリームのデコードを行い、表示時刻のタイミングで非圧縮のLPCMの状態のオーディオデータを音声ミキサーに出力する。AVクリップに多重化されるオーディオストリームの圧縮符号化形式にはDolbyDigitalPlus、DTS-HD LBRなどがあるため、ストリームの属性に応じて、圧縮音声の復号化方式を切り替える。
音声ミキサー44は、Primaryオーディオデコーダから出力される非圧縮音声データとSecondaryオーディオデコーダから出力される非圧縮音声データとをミキシング(音の重ね合わせ)をしてスピーカなどに出力する。
BD-Jプロセッサ45は、BD-J実行部から転送されるPNG形式又はJPEG形式のグラフィクスデータをデコードして、BD-Jアプリケーションから指定される表示時刻にしたがって、BD-Jプレーンに出力する。
BD-Jプレーン46には、BD-Jプロセッサ45によってデコードされたグラフィクスデータが格納される。
加算部47は、Primaryビデオプレーン、Secondaryビデオプレーン、IGプレーン、PGプレーン、BD-Jプレーンに書かれたデータを瞬時に重畳し、TVなどの画面に表示する。
以上のように本実施形態によれば、BD-ROMプレーヤモデルに準拠した内部構成を実現しすることにより、プレイリストの再生を実現することができる。
(第3実施形態)
本実施形態では、プレイリスト情報の詳細なデータ構造と、カレントセカンダリビデオストリームの決定の仕方とを述べる。
図30は、プレイリスト情報のデータ構造を示す図であり、本図に示すようにプレイリスト情報は、MainPathを定義するMainPath情報(MainPath())と、Subpathを定義するサブパス情報(Subpath())とを含む。
<プレイリスト情報の説明その1.サブパス情報>
MainPathが、プライマリビデオたるMainClipに定義される再生経路であるのに対し、Subpathは、MainPathと同期すべきSubClipに対して定義される再生経路である。
図31は、サブパス情報の内部構成をクローズアップして示す図である。本図における矢印hc0に示すように各Subpathは、サブパスの類型を示すSubPath_typeと、1つ以上のSubPlayItem情報(・・・SubPlayItem()・・・)とを含む。
図中の引き出し線hc1は、SubPlayItem情報の構成をクローズアップしている。
SubPlayItemは、メインパスから分離した、1以上のエレメンタリストリーム再生パスを定義し、当該パスをメインパスとどのように同期するかという類型を表現するのに使われる。SubPlayItemで使用されるのが、The Primary audio / PG / IG / Secondary audio / Secondary video のサブパスであるなら、これらのSubPlayItemは、PlayList中のPlayItemを使っているメインパスと同期することになる。このエレメンタリストリーム再生のためのサブパスによって使われるエレメンタリストリームは、MainPath側のPlayItemによって使われるMainClipから分離したClip、つまりSubClipに多重化される。
以降、SubPlayItemの内部構成について説明する。SubPlayItem情報は、図中の矢印hc1に示すように『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』からなる。
『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の時間精度で示す。あるSubPlayItemがセカンダリビデオストリーム上の再生区間を定義していて、そのSubPlayItemのsync_start_PTS_of_PlayItemが、PlayItem時間軸における一時点を示している場合、そのSubPlayItemは、“同期ピクチャインピクチャ”を実現することになる。
また、このSync_Start_Pts_of_PlayItemには、不定値(0xFFF)を設定することもできる。この不定値は、Sync_PlayItem_Idにて指定されたPlayItemの時間軸において、ユーザによりロック操作がなされた時点を、Sync_PlayItem_Idにて指定されたPlayItemとの同期時点に定める旨を示す。sync_start_PTS_of_PlayItemが不定値に設定されており、尚且つSubPlayItemが、セカンダリビデオストリームの再生を意図している場合、かかるSubPlayItemは、“非同期ピクチャインピクチャ”を実現することになる。
以上が、SubPath情報についての説明である。
<STN_table>
プレイリスト情報において特徴的であるのは、STN_Tableである。
STN_tableは、PlayItem情報のClip_Information_file_nameで指定されているAVクリップに多重化された複数エレメンタリストリーム、SubPlayItem情報のClip_Information_file_nameで指定されているOut_of_MUXストリームのうち、再生可能なものを示すテーブルである。具体的にいうとSTN_tableは、MainClipに多重化されている複数In_MUXストリーム、SubClipに多重化されているOut_of_MUXストリームのそれぞれについてのStream_entryを、Stream_attributeと対応付けることで構成される。
図32は、STN_tableの全体構成の一例を示す図である。図33は、図32に示したSTN_tableの全体構成のうち、セカンダリビデオストリームについてのstream_entryの一例を示す図である。本図に示すようにSTN_tableは、n個のSecondary_video_stream_entry「Secondary_video_stream_entry[1]〜Secondary_video_stream_entry[n]」と、セカンダリビデオストリームの個数「number_of_Secondary_video_stream_entries(=n)」とから構成される。
引き出し線hs1は、Secondary_video_stream_entry[1]の内部構成をクローズアップして示している。つまり、Secondary_video_stream_entry[1]〜Secondary_video_stream_entry[n]は、同一のクラス構造体から生成した複数のインスタンスであり、その内部構成は、どれも、この引き出し線hs1に示すものと同じになる。そして、Secondary_video_stream_entryにおける括弧書き[]の中の数値は、Secondary_video_stream_entryが、STN_tableにおいて何番目に位置するかという、Secondary_video_stream_entryの順位を示す。
引き出し線hs1に示すように、Secondary_video_stream_entry[1]は、Secondary Video Stream Number=1に対応するPIDを再生装置に提示する「Stream_entry」と、Secondary Video Stream Number=1に対応するビデオ属性を示す「Stream_attribute」と、econdary Video Stream Number=1の設定時にて、再生可能となるセカンダリオーディオストリームを示す「Comb_info_Secondary_Video_Secondary_Audio」と、Secondary Video Stream Number=1の設定時にて、再生可能となるPGストリーム又はテキスト字幕ストリームを示す「Comb_info_Secondary_Video_PiP_PG_textST()」とからなる。
引き出し線hs2に示すように、Secondary_video_stream_entry[2]は、Secondary Video Stream Number=2に対応するPIDを再生装置に提示する「Stream_entry」と、Secondary Video Stream Number=2に対応するビデオ属性を示す「Stream_attribute」と、Secondary Video Stream Number=2の設定時にて、再生可能となるセカンダリオーディオストリームを示す「Comb_info_Secondary_Video_Secondary_Audio」と、Secondary Video Stream Number=2の設定時にて、再生可能となるPGストリーム又はテキスト字幕ストリームを示す「Comb_info_Secondary_Video_PiP_PG_textST()」とからなる。
引出線hs3についても同様である。以上のように、STN_tableにおいてx番目に位置するsecondary_video_stream_entry[x]は、セカンダリビデオストリーム番号がxに設定された際、そのxに対応するセカンダリビデオストリームのPIDは何か、そのセカンダリビデオストリームのビデオ属性はどのようなものか、どのようなセカンダリオーディオストリーム、PGTextSTストリームと組合せ可能であるかを再生装置に指示する。
字幕を表すストリームには、これまでの実施形態で述べたプレゼンテーショングラフィクスストリームの他に、テキストコードによって表現されたテキスト字幕ストリームがある。ここでのPGテキスト字幕ストリームとは、プレゼンテーショングラフィクスストリームと、テキスト字幕ストリームとを併せた呼び名である。また、ピクチャインピクチャに使用されるPGテキスト字幕ストリームをPiP_PG_テキスト字幕ストリームと呼ぶ。
図34(a)は、プライマリビデオストリームにおけるStream_entry及びStream_attributの一例を示す図である。Stream_entryは、プライマリビデオストリームを構成するPESパケットの、パケット識別子を示す『ref_to_stream_PID_of_mainClip』を含む。
Stream_attributeは、ビデオストリームの表示方式を示す『Video_format』と、ビデオストリームの表示周波数を示す『frame_rate』を含む。
図34(b)は、セカンダリビデオストリームにおけるStream_entryを示す。本図に示すように、SecondaryビデオストリームのStream_entryは、Secondaryビデオストリームを参照しているSubPath情報を示す『ref_to_Sub_Path_id』、Secondaryビデオストリームを構成するPESパケットの、パケット識別子を示す『ref_to_stream_PID_of_mainClip』を含む。
以上が、本実施形態における記録媒体の詳細についての説明である。
以降、PSR1、PSR14、PSR31について説明する。PSRにおける語長は、32ビットである。PSRの一語(32ビット)を構成する各ビットデータのビット位置を、以降、b0〜b31と呼ぶことにする。この呼び方では、PSRの最上位ビットはb31、最下位ビットはb0と呼ばれることになる。
<PSR14>
図35(a)は、PSR14のビットアサインの一例を示す図である。
本図によると、32ビット長のPSR14におけるb8〜b15は、セカンダリビデオストリームのストリーム番号であり、カレントPlay ItemのSTN_tableにentryが記述されている複数Secondaryビデオストリームのうち、1つを特定する。PSR14の設定値が変化すれば、再生装置はこの変化後のSecondaryビデオストリームを再生する。PSR14におけるセカンダリビデオストリームのストリーム番号は初期値として0xFFが設定されており、再生装置により1〜32の値に設定されうる。この0xFFは、不定値であり、Secondaryビデオストリームが存在しない旨、又は、Secondaryビデオストリームが選択されてない旨を示す。1〜32の設定値は、Secondaryビデオストリームのストリーム番号として解釈される。
PSR14のb31は、disp_v_flagであり、セカンダリビデオを再生する能力が再生装置に存在するか(1b:Presentation of Secondary Video is enable)、セカンダリビデオを再生する能力が再生装置に存在しないか(0b:Presentation of Secondary Video is disable)を示す。
<PSR29>
図35(b)は、PSR29のビットアサインの一例を示す図である。
PSR29のb0は、HD_Secondary_video_Capabilityであり、HDTV対応のセカンダリビデオを再生する能力が再生装置に存在するか(1b:HD Secondary Video is capable)、HDTV対応のカンダリビデオを再生する能力が再生装置に存在しないか(0b:HD Secondary Video is incapable)を示す。
PSR29のb1は、50&25Hz_video_Capabilityであり、50&25Hzビデオ、つまりPAL方式のビデオを再生する能力が再生装置に存在するか(1b:50&25Hz Video is capable)、50&25Hzビデオを再生する能力が再生装置に存在しないか(0b:50&25Hz Video is incapable)を示す。
以上が、PSRセット23についての説明である。
図36は、再生制御エンジンの内部構成の一例を示す図である。本図に示すように、再生制御エンジン部は、Procedure実行部48、PID変換部49を含む。
Procedure実行部48は、あるPlayItem情報から別のPlayItem情報への切り換わりが生じた場合、又はストリーム番号を切り換える旨の操作がユーザによりなされた場合、所定のストリーム選択プロシージャを実行して、PSR14に新たなセカンダリビデオストリームのストリーム番号を書き込む。再生装置は、PSR14に書き込まれたストリーム番号に応じて、セカンダリビデオストリームを再生するので、かかるPSR14の設定を通じて、セカンダリビデオストリームが選択されることになる。
PlayItem情報の切り換わり時に、ストリーム選択プロシージャを実行するのは、STN_TableはPlayItem情報毎に存在するので、あるPlayItem情報においては再生可能であったセカンダリビデオストリームが、別のPlayItem情報において再生不可能になることが有り得るからである。
PID変換部49は、PSRセット23に格納されているストリーム番号を、STN_Tableに基づき、PID参照値に変換して、変換結果たるPID参照値をPID Filter33a、PID Filter33bに指示する。
図37は、カレントセカンダリビデオストリームを選択するためのストリーム選択プロシージャの処理手順を示すフローチャートである。
ステップS71では、PSR14に設定された番号のセカンダリビデオストリームが、以下の条件(A)、条件(B)を満たすか否かをチェックする。、
条件(A):Video format,frame_rateと、HD Secondary Video Capabilityや50&25Hz Video Capabilityとの比較では、PSR14に格納された番号により定められるセカンダリビデオストリームの再生能力が再生装置に存在している。
条件(B):セカンダリビデオストリームにおけるSubPath_Typeは、“=6(非同期ピクチャインピクチャ)”である
ここで、Video format,frame_rateは、STN_tableにおいて、セカンダリビデオストリームについてのstream_attributeに記載されている。また、HD Secondary Video Capabilityや50&25Hz Video Capabilityの有無は、PSR29のb0,b1に示されている。これらSTN_tableによる設定と、PSR29のb1の値とを照合することで、条件(A)を具備しているかどうかの判断がなされる。
ステップS71の実行後、ステップS72、ステップS73を実行する。
ステップS72は、カレントプレイアイテムのSTN_tableにおけるセカンダリビデオストリームのSTN_tableにおけるStream_entryの個数が0であるか否かを判定する判定ステップである。ここでセカンダリビデオストリームのSTN_tableにおけるStream_entryの個数が0であることは、再生許可されているセカンダリビデオストリームが1つも存在しないことを意味する。もし0である場合、PSR14のセカンダリビデオストリーム番号を維持する(ステップS73)。カレントプレイアイテムにおいて、再生許可されているセカンダリビデオストリームが存在しない以上、PSR14の現状値を維持すべきだからである。
ステップS74は、ステップS73が0でないと判定された場合、実行される判定ステップであり、PSR14に格納された番号XがSTN_tableにおけるstream_entryの総数以下であり、且つ、条件(A)を満たすかどうかを判定する。このステップS74がYesと判定されたなら、カレントプレイアイテムについて最適なカレントセカンダリビデオストリームを選択する(ステップS75)。
もしステップS74において、Noと判定されたなら、ステップS76の判定ステップを実行する。この判定ステップは、条件(B)を満たすかどうかを判定するものである。条件(B)を満たせば、ステップS78におけるPSR14に、OxFEを設定する。このOxFEは、PSR14におけるセカンダリビデオストリーム番号はValidだが、セカンダリビデオストリームは非選択であることを意味する値である。非同期ピクチャインピクチャの実行時において、かかる値をPSR14に設定しておけば、ユーザ操作があった際、カレントストリームの決定手順が実行されることになる。しかし、仮に、PSR14のストリーム番号がInvalidであれば、たとえユーザ操作がなされたとしても、カレントストリームの決定手順は実行されず、いつまでたっても、セカンダリビデオストリームが再生されないという事態に陥る。これを避けるため、非同期ピクチャインピクチャの実行時においては、PSR14にOxFEを設定することにしている。
条件(B)は満たさないが、有効なセカンダリビデオストリーム番号が既にPSR14に存在するなら、これを変化させない(ステップS77)。
以上が、セカンダリビデオストリームにおけるストリーム選択プロシージャについての説明である。
図38は、カレントプレイアイテムについて最適なカレントセカンダリビデオストリームを選択する処理手順を示すフローチャートである。
ステップS81〜ステップS83では、以下の条件(a)、条件(b)が満たされているかのチェックを、STN_tableにおける全てのstream_entryに記述されているストリームに対して実行する。
条件(a):セカンダリビデオストリームについてのVideo format、frame_rateと、HD Secondary Video Capabilityや50&25Hz Video Capabilityとの比較では、PSR14に格納された番号により定められるセカンダリビデオストリームの再生能力が再生装置に存在している。
条件(b):セカンダリビデオストリームにおけるSubPath_Typeは、“=6(非同期ピクチャインピクチャ)”である
以上のようなチェックが、STN_tableにおいて再生許可されている全てのセカンダリビデオストリームについてなされれば、ステップS84の判定ステップを実行する。
ステップS84は、条件(a)を満たすセカンダリビデオストリームが1つも存在しないか否かの判定であり、もしそうであれば、0xFFFをセカンダリビデオストリームについてのストリーム番号としてPSR14に設定する(ステップS85)。
もしセカンダリビデオストリームが1つでも存在するなら、ステップS84がYesになり、ステップS86が実行されることになる。ステップS86は、条件(a)を満たすセカンダリビデオストリームであって、STN_tableにおいて先頭順位になっているものは、条件(b)を満たすかどうかを判定する。もし条件(b)を満たすなら、ステップS87において0xFEとなるセカンダリビデオストリーム番号をPSRに設定する。
条件(b)を満たさないなら、条件(a)を満たすセカンダリビデオストリームのうち、対応するStream_EntryがSTN_tableにおいて先頭順位に位置するものを選択して、選択したセカンダリビデオストリームのストリーム番号を、PSR14に設定する(ステップS88)。
カレントセカンダリビデオストリームにおける再生区間がSubPlayItemによって規定されていれば、カレントセカンダリビデオストリームにおける再生区間を規定しているサブプレイアイテムをカレントサブプレイアイテムとして特定されることになる。
これらの手順を経て、カレントプレイアイテムにとって最適なカレントセカンダリビデオストリームがPSR14に格納されることになる。以上が、最適なカレントセカンダリビデオストリーム番号を選択するための選択手順である。
以上のように本実施形態によれば、BD-ROMやローカルストレージに記録されているセカンダリビデオストリームの中に、再生不能なものが存在したとしても、次のストリームを選ぶという手順を実行することで、「自身が再生できるものをピクチャインピクチャに用いる」という選択の余地がうまれる。従って、セカンダリビデオの総サイズ自体にバラツキがあり、再生装置におけるセカンダリビデオの再生能力の有無にバラツキががあったとしても、何等かのセカンダリビデオを再生装置に表示させ、ピクチャインピクチャを実行させることができる。
そうして選択されたセカンダリビデオに対応するセカンダリビデオストリームを包含しているAVクリップがサブプレイアイテムによって参照されている場合、かかるAVクリップがUnavailableクリップであると、再生が中断することになる。よって、カレントセカンダリビデオストリームを包含しているAVクリップであって、サブプレイアイテム情報から参照されているもののダウンロードを急げば、再生が中断することはないのでスムーズな再生進行を確保することができる。
(第4実施形態)
再生されるべきプレイリストが、立体視映像用のプレイリストである場合の改良である。
立体視を実現する手法としては、ホログラフィ技術を用いる方法と、視差画像を用いる方式とがある。
まず、1つ目のホログラフィ技術の特徴としては、人間が通常物体を認識するのと全く同じように物体を立体として再現することができるが、動画生成に関しては、技術的な理論は確立しているが、ホログラフィ用の動画をリアルタイムで生成する膨大な演算量を伴うコンピューター、及び1mmの間に数千本の線を引けるだけの解像度を持ったディスプレイデバイスが必要であるが、現在の技術での実現は非常に難しく、商用として実用化されている例はほとんどない。
2つ目の視差画像を用いた方式である。この方式のメリットは、高々右目用と左目用の2つの視点の映像を準備するだけで立体視を実現できることにあり、技術的には、左右のそれぞれの目に対応した絵を、いかにして対応した目にだけ見せることができるかの観点から、継時分離方式を始めとするいくつかの技術が実用化されている。
この立体視を実現するため、第1実施形態に説明した、再生装置、テレビを含むホームシアターシステムには、継時型ステレオゴーグルが存在する。
図39は、継時型ステレオゴーグルの一例を示す図である。本図(a)は、立体視を実現することができるホームシアターシステムを示す。本図のホームシアターシステムには、テレビ104の付属品として継時型ステレオゴーグル105が存在する。
同図(b)は、継時型ステレオゴーグル105をユーザが装着した状態を示す。継時型ステレオゴーグル105は、液晶シャッターを備え、継時分離方式による視差画像をユーザに視聴させる。視差画像とは、右目に入る映像と、左目に入る映像とから構成される一組の映像であり、それぞれの目に対応したピクチャーだけがユーザの目に入るようにして立体視を行わせる。
継時分離方式とは、左目用映像及び右目用映像を時間軸方向で交互に表示させ、目の残像反応により左右のシーンを脳内で重ね合わさせて、立体映像として認識させる方法である。本図(c)は、平面視を実現する場合の継時型ゴーグル105の状態を示す。平面視を実現する場合、両眼の液晶シャッターが透光状態になる。同図(d)は、左目用映像の表示時を示す。ディスプレイ上に左目用の映像が表示されている瞬間において、前述の継時型ステレオゴーグル105は、左目に対応する液晶シャッターを透過にし、右目に対応する液晶シャッターは遮光する。同図(e)は、右目用映像の表示時を示す。ディスプレイ上に右目用の映像が表示されている瞬間において、先ほどと逆に右目に対応する液晶シャッターを透過にし、左目に対応する液晶シャッターを遮光する。
この方式では、左右の映像を時間軸方向で交互に表示させるために、例えば、通常の2次元の映画であれば1秒に24枚の映像を表示させるのに対して、左右の映像合わせて1秒に48枚の映像を表示させる必要がある。従って、この方式では、一画面の書き換えが比較的早いディスプレイにおいて好適であるが、1秒間に所定の回数書き換え可能なディスプレイであれば限定されない。
また、別の方法としては、先ほどの継時型ステレオゴーグル105では左右のピクチャーを時間軸方向で交互に出力していたのに対して、一画面中の縦方向に左目用のピクチャーと右目用のピクチャーを同時に交互に並べ、ディスプレイ表面にレンチキュラーレンズと呼ばれる蒲鉾上のレンズを通して、左目用のピクチャーを構成する画素は左目だけに結像し、右目用のピクチャーを構成する画素は右目だけに結像するようにすることで、左右の目に視差のあるピクチャーを見せ、立体視を実現させる方式がある。なお、レンチキュラーレンズだけでなく、同様の機能を持たせたデバイス、例えば液晶素子を用いてもよいし、また左目用の画素には縦偏光のフィルター、右目用の画素には横偏光のフィルターを設置し、視聴者は、左目用には縦偏光、右目用には横偏光のフィルターを設置した偏光メガネを用いてディスプレイを見ることによって立体視が可能となる。
この視差画像を用いた立体視は、既に遊園地の遊具などで一般的に使用されており、技術的にも確立されているため、家庭における実用化に最も近いものと言える。なお、視差画像を用いた立体視のための方法はこの他にも、2色分離方式などさまざまな技術が提案されており、本実施形態においては、継時分離方式あるいは偏光メガネ方式を例として用いて説明するが、視差画像を用いる限りこれら2方式に限定するものではない。
本実施形態では、立体視に使う視差画像を情報記録媒体に格納する方法を説明する。ここでは、左目用の画面が格納された映像を「左目映像」、右目用の画面が格納された映像を「右目映像」、両方の映像のことを「立体視映像」と呼ぶことにする。
<プライマリビデオストリーム、セカンダリビデオストリームの改良>
本実施形態におけるプライマリビデオストリームは、平面視再生装置では平面視映像として、平面視/立体視映像再生装置で立体視映像を再生する際の左目映像として再生されるビデオストリームである。このビデオストリームを平面視/左目視聴用ビデオストリームと呼ぶことにする。
本実施形態におけるセカンダリビデオストリームは、右目視聴用ビデオストリームが格納されている。右目視聴用ビデオストリームは、平面視/立体視再生装置で立体視映像を再生する際の右目用の映像として再生されるビデオストリームである。右目視聴用ビデオストリームは、プライマリビデオストリームのPIDと異なる0x1012が割り当てられている。続いて、平面視/左目視聴用ビデオストリームと、右目視聴用ビデオストリームの構造について説明する。
ただし、左右の視点からは同じ被写体を見るため映像の相関が大きいため、視点間のピクチャ間予測符号化を行うことで、右目用ビデオストリームは平面視/左目視聴用ビデオストリームに比べてデータ量を大幅に削減できる。また、平面視/左目視聴用ビデオストリームのフレームレートは、平面視/左目視聴用ビデオストリーム単体で平面視再生装置が再生したときのフレームレートであり、この値がGOPヘッダに格納される。
図40は、立体視のためのプライマリビデオストリーム、セカンダリビデオストリームの内部構成の一例を示す図である。
本図の第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に従いデコードされる。第1段目は、左目画像を示す。そうしてデコードされたピクチャデータP1,P2,B3,B4,P5,B6,B7,P8をPTSに従い、P1,B3,B4,P2,B6,B7,P5の順序で再生することで、左目画像が再生されることになる。
第5段目は、継時型ゴーグル105の状態をどのように変化させるかを示す。この第5段目に示すように、左目画像の視聴時は、右目のシャッターを閉じ、右目画像の視聴時は、左目のシャッターを閉じていることがわかる。
これらのプライマリビデオストリーム、セカンダリビデオストリームは、時間方向の冗長性を利用したピクチャ間予測符号化に加えて、視点間の冗長性を利用したピクチャ間予測符号化によって圧縮されている。右目視聴用ビデオストリームのピクチャは、平面視/左目視聴用ビデオストリームの同じ表示時刻のピクチャを参照して圧縮されている。
例えば、右目視聴用ビデオストリームの先頭Pピクチャは、平面視/左目視聴用ビデオストリームのIピクチャを参照し、右目視聴用ビデオストリームのBピクチャは、平面視/左目視聴用ビデオストリームのBrピクチャを参照し、右目視聴用ビデオストリームの二つ目のPピクチャは、平面視/左目視聴用ビデオストリームのPピクチャを参照している。
<ビデオアクセスユニット>
平面視/左目視聴用ビデオストリームと右目視聴用ビデオストリームの各ビデオアクセスユニットに割り当てる表示時刻(PTS)、デコード時刻(DTS)の関係は、図40の時間軸に示す通りである。平面視/左目視聴用ビデオストリームにおける各ピクチャデータのDTSと、右目視聴用ビデオストリームにおける各ピクチャデータのDTSは時間軸上で交互になるように設定され、平面視/左目視聴用ビデオストリームにおける各ピクチャデータのPTSと、右目視聴用ビデオストリームのにおける各ピクチャデータのPTSも時間軸上で交互になるように設定される。これは、ピクチャ間予測符合化の参照関係にある平面視/左目視聴用と右目視聴用のピクチャのデコード順、表示順を交互に設定することで実現できる。
また、平面視/左目視聴用のフレームと次の右目視聴用のフレーム間のDTSの時間間隔は、平面視/左目視聴用の1フレームの表示時間間隔の半分になるように設定する。同様に、平面視/左目視聴用のフレームと次の右目視聴用のフレーム間のPTSの時間間隔は、平面視/左目視聴用の1フレームの表示間隔の半分になるように設定する。
<立体視表示ディレイ>
平面視/左目視聴用ビデオストリームのピクチャと同じ表示時刻の右目視聴用ビデオストリームのピクチャのPTSの間隔の差分を立体視表示ディレイとする。立体視表示ディレイは、平面視/左目視聴用ビデオストリームの1フレームの表示間隔の半分の値となる。
<立体視プレイリスト>
立体視プレイリストには、右目視聴用を格納するためのサブパスが用意されている。サブパスは右目視聴用を格納する複数のAVクリップを参照しており、メインパスと時間軸上で同期するように設定される。この構造により、平面視プレイリストと立体視プレイリストで、平面視/左目視聴用が格納されたAVクリップを共有することができ、立体視プレイリストでは左目映像と右目視聴用を時間軸上で同期させて関連付けることができる。
立体視プレイリストと、平面視プレイリストとを区別するため、プレイリスト情報には立体視フラグが存在する。立体視フラグは、プレイリスト情報内のストリーム番号テーブルにおいてセカンダリビデオストリームの再生が許可されていて、セカンダリビデオストリームを再生することによる立体視が可能であるか否かを示す。
以上が記録媒体の改良である。続いて、再生装置の詳細について説明する。本実施形態における再生装置は、Primaryビデオプレーン35が、2D/左目映像プレーン61と、右目視聴用プレーン62とに置き換えられている。そして、q13がz41のような内部構成を有する。
図41は、システムターゲットデコーダ13の内部構成の一例を示す図である。本図の内部構成のうち、Secondaryビデオデコーダ、IGデコーダ、PGデコーダ、Primaryオーディオデコーダ、Secondaryオーディオデコーダ、音声ミキサー、イメージプロセッサの構成は第1実施形態で説明した平面視用の再生装置と同じであるため省略する。
ソースデパケットタイザ32aは、リードバッファ11に蓄えられたソースパケットを解釈し、TSパケットを取り出し、PIDフィルタ33aに送出する。
ソースデパケットタイザ32bは、リードバッファ11に蓄えられたソースパケットを解釈し、TSパケットを取り出し、PIDフィルタ34bに送出する。この送出にあたって、各ソースパケットのATSに応じてデコーダへの入力時刻を調整する。具体的には、ATCカウンタが生成するATCの値と、ソースパケットのATS値とが同一になった瞬間に、AVクリップの記録レートにしたがって、そのTSパケットだけをPIDフィルタに転送する。
PIDフィルタ33aは、ソースデパケッタイザ32aから出力されたTSパケットのうち、TSパケットのPIDが、再生に必要とされるPIDに一致するものを、PIDにしたがって、3DビデオデコーダのTB31、Secondaryビデオデコーダ、IGデコーダ、PGデコーダ、音声デコーダ、Secondaryオーディオデコーダに転送する。また、PIDフィルタ34は、ソースデパケッタイザ32aから出力されたTSパケットのうち、TSパケットのPIDが、再生に必要とされるPIDに一致するものを、PIDにしたがって、3DビデオデコーダのTB51に転送する。
3Dビデオデコーダ50は、TB51、M52、EB53、TB58、M59、デコーダ54、DPB55、バッファスイッチ56、ピクチャスイッチ57、EB60から構成される。
TB51は、2D/左目映像ビデオストリームを含むTSパケットがPIDフィルタ33から出力された際、TSパケットのまま一旦蓄積されるバッファである。
MB52は、TB51からEB53にビデオストリームを出力するにあたって、一旦PESパケットを蓄積しておくためのバッファである。TB51からMB52にデータが転送される際に、TSパケットのTSヘッダは取り除かれる。
EB53は、符号化状態にあるビデオアクセスユニットが格納されるバッファである。MB52からEB53にデータが転送される際にPESヘッダが取り除かれる。
TB58は、右目視聴用ビデオストリームを含むTSパケットがPIDフィルタ34から出力された際、TSパケットのまま一旦蓄積されるバッファである。
MB59は、TB58からEB60にビデオストリームを出力するにあたって、一旦PESパケットを蓄積しておくためのバッファである。TB58からMB59にデータが転送される際に、TSパケットのTSヘッダは取り除かれる。
EB60は、符号化状態にあるビデオアクセスユニットが格納されるバッファである。MB59からEB60にデータが転送される際にPESヘッダが取り除かれる。
デコーダ54は、ビデオエレメンタリストリームの個々のビデオアクセスユニットを所定の復号時刻(DTS)でデコードすることによりフレーム/フィールド画像を作成する。AVクリップに多重化されるビデオストリームの圧縮符号化形式にはMPEG2、MPEG4AVC、VC1などがあるため、ストリームの属性に応じて、デコーダ54のデコード方法は切り替えられる。デコーダ54は、デコードされたフレーム/フィルド画像をDPB55に転送し、表示時刻(PTS)のタイミングで対応するフレーム/フィールド画像をピクチャスイッチに転送する。
DPB55は、復号されたフレーム/フィールド画像を一時的に保持しておくバッファである。デコーダ54が、ピクチャ間予測符号化されたPピクチャやBピクチャなどのビデオアクセスユニットをデコードする際に、既にデコードされたピクチャを参照するために利用する。
バッファスイッチ56は、EBとEBに蓄えられたピクチャをビデオアクセスユニットに割り当てられた復号時刻(DTS)のタイミングでデコーダ54に転送する。また、デコーダ54がビデオアクセスユニットをデコードする際に取得したデコードスイッチ情報を使って、次のアクセスユニットをEB、EBのどちらから引き抜くかを決定しても良い。また、2D/左目映像ビデオストリームと右目視聴用ビデオストリームのDTSは時間軸上でピクチャ単位で交互に来るように設定されているため、例えばDTSを無視して前倒しでデコードするようなデコーダ54の場合には、ピクチャ単位でビデオアクセスユニットをデコーダ54に転送しても良い。
ピクチャスイッチ57は、デコーダ54から転送されたデコード済みのフレーム/フィールド画像が、2D/左目映像のストリームの場合は2D/左目映像プレーン61に、右目視聴用のストリームの場合は右目視聴用プレーン62に瞬時に書き出す。
以上がシステムターゲットデコーダについての説明である。続いて、本実施形態における仮想パッケージ制御部16の改良について説明する。
仮想パッケージ制御部16は、立体視フラグがオフに設定されていれば、何れのセカンダリビデオストリームを包含しているAVクリップが、ダウンロードされていなかっても、DataStarvedイベントを出力しない。よって、セカンダリビデオストリームがダウンロードされていなくでも、JMFプレーヤインスタンス及び再生制御エンジンは、再生を停止しない。
逆に立体視フラグがオンに設定されていれば、カレントセカンダリビデオストリームがサブプレイアイテムに対応しており、そのサブプレイアイテムが未だダウンロードされていないAVクリップやDisable状態であるAVクリップを参照している場合、仮想パッケージ制御部16はDataStarvedイベントを再生制御エンジン及びJMFプレーヤインスタンスに通知する。これにより再生が停止する。
また、継時型ゴーグル105が取り外されていて、再生装置101の設定が、“立体視オフ”である場合も、セカンダリビデオストリームを格納したAVクリップのダウンロードを待たずに、再生を進行する。
以上のように本実施形態によれば、立体視がオフに設定されている場合、セカンダリビデオストリームを含むAVクリップのダウンロードを待つことなく、プレイアイテムの再生を進行させることができる。
(第5実施形態)
本実施形態では、カレントプライマリオーディオストリーム、カレントセカンダリオーディオストリームを選択するための詳細なデータ構造と、再生装置における構成とについて説明する。
図42は、Primary_audio_stream_entry、Secondary_audio_stream_entryの内部構成と、Comb_info_Secondary_video_Secondary_audioの内部構成との一例を示す図である。図中の引出線ha1,ha2は、Primary_audio_stream_entry、Secondary_audio_stream_entryの内部構成をクローズアップしている。これらの内部構成は、何れも共通であり、stream_entryと、stream_attributeとからなる。
引出線ha3は、Stream_entryの内部構成をクローズアップして示している。この引出線に示すように、プライマリオーディオストリーム及びセカンダリオーディオストリームのStream_entryは、セカンダリオーディオストリームを参照しているSubPath情報を示す『ref_to_Sub_Path_id』、プライマリオーディオストリーム及びセカンダリオーディオストリームが多重化されているSubClipを示す『ref_to_Sub_Clip_entry_id』、プライマリオーディオストリーム及びセカンダリオーディオストリームを構成するPESパケットのPIDに対する参照値を示す『ref_to_stream_PID_of_Sub_Clip』を含む。
引出線ha4は、stream_attributeの内部構成をクローズアップして示している。この引出線に示すように、プライマリオーディオストリーム,セカンダリオーディオストリームにおけるStream_attributeは、オーディオストリームの符号化方式を示す『stream_coding_type』と、対応するオーディオストリームのチャネル構成を示す『audio_presentation_type』と、対応するオーディオストリームのサンプリング周波数を示す対応する『Sampling_frequency』と、オーディオストリームの言語属性を示す『audio_language code』からなる。
このセカンダリオーディオストリームに対応する情報として、セカンダリビデオストリーム用のstream_entryには、引出線ha5に示すように、Comb_info_Secondary_video_Secondary_audioが存在する。
引出線ha6は、Comb_info_Secondary_video_Secondary_audioの内部構成をクローズアップして示している。Comb_info_Secondary_video_Secondary_audioは、各Secondaryビデオストリームごとに組合せ可能なセカンダリオーディオストリームの総数を示す「number_of_Secondary_audio_stream_ref_entries」と、セカンダリビデオストリームの再生時に組合せることができるセカンダリオーディオストリームのストリーム番号を示す「Secondary_audio_stream_id_ref[0]〜[n]」とからなる。
以上のように、STN_tableには、プライマリビデオストリームの音声となるプライマリオーディオストリームのstream_entry、セカンダリビデオストリームの音声となるセカンダリオーディオストリームのstream_entryのそれぞれがあり、また、セカンダリビデオストリームのstream_entryには、セカンダリビデオストリームとの組合せを意図したセカンダリオーディオストリームが、セカンダリビデオストリーム毎に記述されている(Comb_info_Secondary_video_Secondary_audio)ことがわかる。
以上がオーディオストリーム再生のための記録媒体の特徴である。次に、オーディオストリーム再生のための再生装置の特徴について説明する。
音声再生のための構成として、再生装置には、カレントプライマリオーディオストリームのストリーム番号と、カレントセカンダリオーディオストリームのストリーム番号とについて説明する。
<PSR1>
図43(a)は、PSR1のビットアサインの一例を示す図である。
本図によると、32ビット長のPSR1の下位8ビット(b0〜b7)は、プライマリオーディオストリーム番号であり、カレントPlay ItemのSTN_tableにentryが記述されている複数プライマリオーディオストリームのうち、1つを特定する。PSR1の設定値が変化すれば、再生装置はこの変化後のプライマリオーディオストリームを再生する。PSR1は初期値として0xFFが設定されており、再生装置により1〜32の値に設定されうる。この0xFFは、不定値であり、プライマリオーディオストリームが存在しない旨、又は、プライマリオーディオストリームが選択されてない旨を示す。1〜32の設定値は、プライマリオーディオストリームのストリーム番号として解釈される。
<PSR14>
図43(b)は、PSR14のビットアサインの一例を示す図である。
本図によると、32ビット長のPSR14における下位8ビット(b0〜b7)は、セカンダリオーディオストリーム番号であり、カレントPlay ItemのSTN_tableにentryが記述されている複数セカンダリオーディオストリームのうち、1つを特定する。PSR14の設定値が変化すれば、再生装置はこの変化後のセカンダリオーディオストリームを再生する。PSR14は初期値として0xFFが設定されており、再生装置により1〜32の値に設定されうる。この0xFFは、不定値であり、セカンダリオーディオストリームが存在しない旨、又は、セカンダリオーディオストリームが選択されてない旨を示す。1〜32の設定値は、セカンダリオーディオストリームのストリーム番号として解釈される。
図44は、カレントプレイアイテム変化時におけるカレントプライマリオーディオストリーム決定手順を示すフローチャートである。ステップS96、ステップS97は、STN_tableに示される全てのPrimaryオーディオストリームについてステップS98を繰り返すループ処理を形成している。このループ処理において、処理対象となる個々のPrimaryオーディオストリームを、Primaryオーディオストリームiという。ステップS98は、Primaryオーディオストリームiが3つの条件条件(a)(b)(c)を満たすかのチェックを行う。
条件(a)とは、Primaryオーディオストリームiを再生する能力が再生装置に存在することであり、これを満たすか否かの判定は、PSR15と、Primaryオーディオストリームiのstream_coding_typeとの比較でなされる。
条件(b)とは、Primaryオーディオストリームiの言語属性がデッキ情報と同じであることである。デッキ情報とは、再生装置の言語設定を示す情報であり、条件(b)を満たすか否かの判定は、STN_tableに記述されたPrimaryオーディオストリームiのAudio_language_codeがPSR16の設定値と同じであるか否かの比較でなされる。
条件(c)とは、Primaryオーディオストリームiのチャネル属性がサラウンドであり、これを再生する能力が再生装置に存在することである。これを満たすか否かの判定は、PSR15と,AudioStreamのaudio_presentation_type、stream_coding_typeとの比較でなされる。
これらの複数の条件のうち、「Primaryオーディオストリームiがどれとどれを満たすか」、また「何個の条件を満たすか」という、満たすべき条件のパターンにより、本フローチャートは、Primaryオーディオストリームに優先順位を付与する。
以上の処理をPrimaryオーディオストリームの全てについて繰り返されれば、ステップS99〜ステップS103の処理を行う。ステップS99は、(a)を満たすPrimaryオーディオストリームが存在しないかどうかの判定である。もし、存在しなければ、不定値(0xFF)をPSR1に設定する(ステップS104)。
ステップS100は、条件(a)(b)(c)の全てを満たすPrimaryオーディオストリームが存在するかどうかの判定である。もし存在すれば、条件(a)(b)(c)を満たすPrimaryオーディオストリームの番号をPSR1に設定する(ステップS105)。
ここで問題になるのが、条件(a)(b)(c)を満たすPrimaryオーディオストリームが複数存在する場合である。条件(a)〜条件(c)が全てみたされるので、同じ優先順位になってしまうので優劣を決めることができない。この場合ステップS105では、STN_tableにおけるentryの順序に応じて、各ストリームにおける順位が定める。即ち、コーディック−言語属性−チャネル属性が同じPrimaryオーディオストリームについては、STN_tableにおけるentryの順位を参照することで、最も優先順位が高いPrimaryオーディオストリームが選ばれることになる。
STN_tableにおける記述順序を変えることで、オーサリング担当者は再生時においてどのストリームを優先的に再生させ、どのストリームを後回しにするかという選択制御をオーサリング時に規定することができる。
ステップS101は、条件(a)(b)(c)の全てを満たすPrimaryオーディオストリームが存在しない場合、条件(a)(b)を満たすPrimaryオーディオストリームが存在するかどうかの判定である。もし存在すれば、条件(a)(b)を満たすPrimaryオーディオストリームのうち、STN_tableにおけるエントリー順位が最も高いものをPSR1に設定する(ステップS106)。
ステップS102は、条件(a)(b)(c)の全てを満たすPrimaryオーディオストリーム、又は、条件(a)(b)を満たすPrimaryオーディオストリームが存在しない場合に、条件(a)(c)を満たすPrimaryオーディオストリームが存在するかどうかの判定である。もし存在すれば、条件(a)(c)を満たすPrimaryオーディオストリームのうち、STN_tableにおけるエントリー順位が最も高いものをPSR1に設定する(ステップS107)。
ステップS103は、条件(a)(b)(c)の全て、条件(a)(b)、条件(a)(c)を満たすPrimaryオーディオストリームが存在しない場合に、(a)を満たすPrimaryオーディオストリームが存在するかどうかの判定である。もし存在すれば、(a)を満たすPrimaryオーディオストリームのうち、STN_tableにおけるエントリー順位が最も高いものをPSR1に設定する(ステップS108)。
カレントプライマリオーディオストリームにおける再生区間がSubPlayItemによって規定されていれば、カレントプライマリオーディオストリームにおける再生区間を規定しているサブプレイアイテムがカレントサブプレイアイテムとして特定されることになる。
以上がカレントプライマリオーディオストリームを選択するためのストリーム選択プロシージャである。
続いて、セカンダリオーディオストリームを選択するためのストリーム選択プロシージャの処理手順について説明する。
図45は、セカンダリオーディオストリームのストリーム選択プロシージャの処理手順を示すフローチャートである。ステップS111において、PSR14からセカンダリオーディオストリーム番号を取得し、ステップS112では、取得した番号のセカンダリオーディオストリームが条件(A)を満たすか否かを判定する。
条件(A):Comb_info_secondary_video_Secondary_audioに規定されたセカンダリオーディオストリーム番号と、PSR14から取得したセカンダリオーディオストリーム番号との比較では、どの番号のセカンダリオーディオストリームと、カレントセカンダリビデオストリームとの組合せが許可されている。
この判定を経た後、ステップS113を実行する。ステップS113では、カレントプレイアイテムにおけるセカンダリオーディオストリームのSTN_tableにおけるStream_entryの個数が0であるか否かを判定するものである。もし、STN_tableにおけるStream_entryの個数が0であるなら、PSR14のセカンダリオーディオストリーム番号を維持する(ステップS116)。もしSTN_tableにおけるStream_entryの個数が0でなければ、ステップS114の判定を行う。
ステップS114では、セカンダリオーディオストリーム番号が、カレントプレイアイテムにおけるSTN_tableのstream_entry数以下であり、尚且つ、条件(A)を満たすかどうかを判定する。もし満たすなら、有効なセカンダリオーディオストリーム番号が既にPSR14に存在すると考えられるので、これを変化させない(ステップS117)。満たさないなら、カレントプレイアイテムについて最適なカレントセカンダリオーディオストリームを選択する(ステップS115)。
以上が、セカンダリオーディオストリームにおけるストリーム選択プロシージャについての説明である。
図46は、カレントプレイアイテムについて最適なカレントセカンダリオーディオストリームを選択する手順を示すフローチャートである。
ステップS121〜ステップS123は、任意のストリームについて、以下の条件が満たされているかのチェックを、STN_tableにおける全てのstream_entryに記述されているストリームに対して実行する。
条件(a):Comb_info_secondary_video_Secondary_audioに規定されたセカンダリオーディオストリーム番号と、セカンダリオーディオストリームiの番号との比較では、セカンダリオーディオストリームiと、カレントセカンダリビデオストリームとの組合せが許可されている。
条件(b):カレントプライマリオーディオストリームのaudio_language_codeと、セカンダリオーディオストリームのaudio_language_codeとが一致している。
以上のチェックを、STN_tableにおいて再生許可されている全てのセカンダリオーディオストリームに対して実行すれば、ステップS124を実行する。
ステップS124は、条件(a)を満たすセカンダリオーディオストリームが存在するか否かを判定する判定ステップである。存在しないなら0xFFとなるセカンダリオーディオストリーム番号をPSR14に設定する(ステップS125)。
条件(a)を満たすセカンダリオーディオストリームが存在するなら、ステップS126の判定を実行する。これは、条件(a)及び条件(b)を満たすセカンダリオーディオストリームが、少なくとも1つ存在するか否かを判定するというものである。存在するなら、条件(a)及び条件(b)を満たすストリームのうち、対応するStream_EntryがSTN_tableにおいて最初に位置するものを選択して、選択したセカンダリオーディオストリームのセカンダリオーディオストリーム番号を、PSR14に設定する(ステップS127)。
条件(a)及び条件(b)を満たすセカンダリオーディオストリームが存在しないなら、ステップS128の判定を実行する。これは、条件(a)を満たすセカンダリオーディオトリームが存在するか否かを判定するものである。もし存在するなら、条件(a)を満たすセカンダリオーディオストリームのうち、対応するStream_EntryがSTN_tableにおいて先頭順位に位置するものを選択して、選択したセカンダリオーディオストリームのセカンダリオーディオストリーム番号を、PSR14に設定する(ステップS129)。
カレントセカンダリオーディオストリームにおける再生区間がSubPlayItemによって規定されていれば、カレントセカンダリオーディオストリームにおける再生区間を規定しているサブプレイアイテムがカレントサブプレイアイテムとして特定されることになる。
以上のように本実施形態によれば、プライマリビデオストリーム用のプライマリオーディオストリーム、セカンダリビデオストリーム用のセカンダリオーディオストリームとしてそれぞれどれの再生を許可するかを、STN_tableに規定しておき、このSTN_tableに存在するstream_entryからプライマリオーディオストリーム、セカンダリオーディオストリームをそれぞれ1つ選んで、これらのミキシング出力を行うので、ピクチャインピクチャの実行時において、本編の音声に、映画監督によるコメンタリが加わった合成音声を聴くことができる。
そうして選択されたプライマリオーディオストリーム、セカンダリオーディオストリームを包含しているAVクリップがサブプレイアイテムによって参照されている場合、かかるAVクリップがUnavailableクリップであると、再生が中断することになる。よって、カレントプライマリオーディオストリーム、カレントセカンダリオーディオストリームを包含しているAVクリップであって、サブプレイアイテム情報から参照されているもののダウンロードを急げば、再生が中断することはないのでスムーズな再生進行を確保することができる。
(第5実施形態)
本実施形態では、カレント字幕ストリームを選択するためのデータ構造と、再生装置における改良とを説明する。
始めに、STN_tableにおける字幕のためのstream_entryについて説明する。プライマリオーディオストリーム、セカンダリオーディオストリームはそれぞれ、プライマリビデオストリーム、セカンダリビデオストリームに割り当てられたが、字幕には、プレゼンテーショングラフィクスストリーム、テキスト字幕ストリームという区別はあるものの、プライマリビデオストリーム用、セカンダリビデオストリーム用という明確な区別は存在しない。
以降、PGtestSTストリームについてのstream_entryについて説明する。図47は、STN_tableのうち、PGtestSTストリームに特に関連あるものを抜き出して描いた図である。この図によると、STN_tableのうち、字幕表示に特に関連するのは、「number_of_PG_textST_streams_entries[1]〜[n]」、「number_of_PiP_PG_textST_stream_entries_plus」、「PGtestST_stream_entry」、「Secondary_video_Stream_entry」内の「Comb_info_Secondary_video_PiP_PG_textST」であることがわかる。
「number_of_PG_textST_streams_entries」は、ピクチャインピクチャを実行していない場合に、選択の対象となるPGtestSTストリームの個数を示す
「number_of_PiP_PG_textST_stream_entries_plus」は、ピクチャインピクチャアプリケーションのため、STN_tableに定義されているnumber_of_PG_textST_streams_entriesに追加すべきプレゼンテーショングラフィクスストリーム及びテキスト字幕ストリームの個数を示す。このnumber_of_PG_textST_streams_entriesと、number_of_PiP_PG_textST_stream_entries_plusとの和は、255以下になる。
ここでnumber_of_PG_textST_streams_entriesがn1である場合、1からn1までのストリーム番号の範囲が、PGテキスト字幕ストリームの範囲となるが、number_of_PiP_PG_textST_stream_entries_plusがn2であれば、ピクチャインピクチャの実行時において、1からn1+n2までのストリーム番号の範囲が、PGテキスト字幕ストリームの範囲となる。つまり、number_of_PiP_PG_textST_stream_entries_plusがSTN_tableに記述されていれば、PGTextSTストリームのストリーム番号の範囲は、number_of_PiP_PG_textST_stream_entries_plusに記述された個数だけ広がることになる。
非ピクチャインピクチャ時にあっては、PGtestSTストリームについてのstream_entryのうち、1からn1までのものが選択の対象になり、ピクチャインピクチャ時にあっては、PGtestSTストリームについてのstream_entryのうち、1からn1+n2までのものが選択の対象になる。予め断っておくが、ピクチャインピクチャが行われる場合であっても、プライマリビデオの字幕、セカンダリビデオの字幕がそれぞれ再生される訳ではない。ピクチャインピクチャで表示されるのは、プライマリビデオ用の字幕、セカンダリビデオ用の字幕のどちらか1つである。これは、プライマリビデオ用、セカンダリビデオ用の字幕を別々にBD-ROMに記録しておくとすると、再生装置には、グラフィクス用のデコーダが2つ必要になり、ハードウェアコストの増大をもたらすこと(i)、セカンダリビデオ用に字幕を縮小して表示したとしても、見づらくなるだけであること(ii)、という2つの理由による。
引出線hp1は、PG_testST_Stream_entryの内部構成をクローズアップして示している。この引出線に示すように、PG_testST_Stream_entryは、Stream_entry,Stream_Attributeを有していて、Stream_entryの中に、再生が許可されているPGtestSTストリームのPIDが存在する。
引出線hp2は、「Secondary_video_Stream_entry[1]」の内部構成をクローズアップして示している。この内部構成におけるComb_info_Secondary_video_PiP_PG_textSTには、PGtestSTストリームのうち、セカンダリビデオストリームとの組合せが許可されているものを一意に示している。
引出線hp3は、Comb_info_Secondary_video_PiP_PG_textSTの内部構成を示す。Comb_info_Secondary_video_PiP_PG_textSTは、各Secondaryビデオストリームごとに組合せ可能なPiP_PG_テキスト字幕ストリームの総数を示す「number_of_PiP_PG_textST_stream_ref_entries」と、再生時に組合せることができるPiP_PG_テキスト字幕ストリームのストリーム番号を示す「PiP_PG_textST_stream_id_ref[0]〜[n]」とからなる。
以上が、本実施形態における記録媒体の改良である。続いて、本実施形態における再生装置についての改良について説明する。字幕再生のための構成として、再生装置には、ピクチャインピクチャ実行時におけるカレントPGTextSTストリームのストリーム番号と、ピクチャインピクチャ非実行時におけるカレントPGTextSTストリームのストリーム番号とが、それぞれ別々にPSRセット23に格納されている。
図48(a)は、カレントPGtestSTストリームのストリーム番号が取りうる数値範囲の一例を示す図である。非ピクチャインピクチャ実行時において、カレントPGtestSTストリームのストリーム番号は、STN_tableに記載されたPiP_PG_text_ST_stream_numberをn1とすると、本図の上段に示すように、1からn1までの値をとる。
一方、ピクチャインピクチャ実行時におけるカレントPGtestSTストリームの番号は、PiP_PG_TextSTストリーム番号と呼ばれ、STN_tableに記載されたPG_text_ST_stream_numberをn1、STN_tableに記載されたnumber_of_PiP_PG_textST_stream_entries_plusをn2とすると、本図の下段に示すように、PiP_PG_TextSTストリーム番号は1からn1+n2までの値をとる。
図48(b)は、PSR2のビットアサインの一例を示す図である。以降、PSR2における各ビットの意味合いについて述べる。disp_s_flag
PSR2のb31は、disp_s_flagであり、その1ビットの設定値は以下のように解釈される。
0b: 「PG textST ストリーム」と「PiP PG textST ストリーム」の両方を表示することは不可となることを示す。
1b: 「PG textST ストリーム」と「PiP PG textST ストリーム」の両方を表示することは可能となることを示す
disp_s_flagがオフになっている場合、PGテキスト字幕ストリーム選択のためのプロシージャを実行しない。PSR2におけるdisp_s_flagがオフになっていれば、カレントのPGテキスト字幕ストリームが存在しないため、図34のステップS34、S35では、PGテキスト字幕ストリームのみを包含しているAVクリップは、ダウンロードの選択対象から除外する。PGテキスト字幕ストリームのみを包含しているAVクリップのダウンロードを省くことができるので、字幕がオフになっていれば、PGテキスト字幕ストリームのみを包含しているAVクリップが未ダウンロードであっても、再生を進行してゆくことができる。これにより、あるプレイアイテムから次のプレイアイテムの切り替えを高速に実現することができる。PiP_PG_textST_valid_flag
PSR2のb30は、PiP_PG_textST_valid_flagであり、その1ビットの設定値は以下のように解釈される。
0b: カレントプレイアイテム 表示中に Secondary ビデオストリームが表示されている場合、PSR2 で定義された PG TextST Stream Numberが用いられる。
1b: カレントプレイアイテム 表示中に Secondary ビデオストリームが表示されている場合、PSR2 で定義された PiP PG TextST Stream Numberが用いられる。
カレントプレイアイテム 表示中に Secondary ビデオストリームが表示されていないとき、PiP_PG_textST_valid_flag は BD-ROM再生装置の表示に影響しない。この場合、PSR2 で定義された PG TextST Stream Numberが用いられる。
PG TextST Stream Number:
PSR2のb0〜b11は、PG TextST Stream Numberであり、その12ビットの設定値は以下のように解釈される。
カレントプレイアイテム 表示中に Secondary ビデオストリームが表示されていない場合(Secondary ビデオストリームは表示されていない場合とは、PSR14 の disp_v_flag は 0b に設定されている状態をいう)、PSR2 における PG TextST Stream Numberの値は、カレントプレイアイテム の STN_tableにおける PG TextST ストリーム項目の中から、PG ストリームと TextST ストリームのどちらが表示されるかを特定するために用いられる。
PiP PG TextST Stream Number:
PSR2のb16〜b27は、PiP PG TextST Stream Numberであり、その12ビットの設定値は以下のように解釈される。
カレントプレイアイテム 表示中に Secondary ビデオストリームが表示されていて、PSR2 の PiP_PG_textST_valid_flag が 1b に設定されている場合(ここでセカンダリビデオストリームの表示時とは、PSR14 の disp_v_flag は 1b に設定され、カレントプレイアイテム 表示中に PSR14 によって決定された Secondary ビデオストリームが表示される場合をいう。)、PSR2 における PiP PG TextST Stream Numberの値は、カレントプレイアイテム の STN_table における PG TextST ストリーム項目の中から、PG ストリームと TextST ストリームのどちらが表示されるかを特定するために用いられる。
図49は、カレントプレイアイテム変化時におけるカレントPGtestSTストリームの決定手順を示すフローチャートである。
ここで非ピクチャインピクチャのためのPGtestSTストリームのストリーム番号及びその取り扱いは、ピクチャインピクチャのためのPGtestSTストリームの選択を簡略にしたものに過ぎないから説明を省略する。本実施形態では、ピクチャインピクチャのためのPGtestSTストリームの番号について説明する。
ステップS151においてPSR2からカレントPiP_PG_TextSTストリーム番号を取得し、ステップS152において、カレントPiP_PG_TextSTストリーム番号は、プレゼンテーショングラフィクスストリームについてのものかテキスト字幕ストリームについてのものかを判定する。ステップS153は、カレントPiP_PG_TextSTストリーム番号に対応するプレゼンテーショングラフィクスストリームが、条件(A)、条件(B)、条件(C)を満たすか否かをチェックする。
ここで条件(A),条件(B)、条件(C)は、以下のように規定される。
条件(A):カレントPiP_PG_TextSTストリーム番号から特定されるプレゼンテーショングラフィクスストリームをデコードする能力が再生装置に存在する。
条件(B):特定された言語を再生する能力が再生装置に存在する。
条件(C):PSR14におけるセカンダリビデオストリーム番号と、comb_info_Secondary_video_PiP_textST()によるPGテキスト字幕ストリーム番号との比較では、カレントセカンダリビデオストリームと、カレントPiP_PG_TextSTストリーム番号から特定されるPGテキスト字幕ストリームとの組合せが許可されている。
一方ステップS154では、カレントPiP_PG_TextSTストリーム番号に対応するテキスト字幕ストリームが、条件(A)、条件(B)、条件(C)を満たすか否かをチェックするものである。
条件(A):カレントPiP_PG_TextSTストリーム番号のテキスト字幕ストリームのキャラクターコードをビットマップに展開する能力が再生装置に存在すること。かかる再生能力は、PSRセット23におけるPSR30に示されている。
条件(B):カレントPiP_PG_TextSTストリーム番号のテキスト字幕ストリームの言語属性をサポートする能力が再生装置に存在すること。かかるサポート能力は、PSRセット23におけるPSR48〜61に示されている。
条件(C):PSR14におけるセカンダリビデオストリーム番号と、comb_info_Secondary_video_PiP_textST()によるPGテキスト字幕ストリーム番号との比較では、PSR14に格納されているカレントセカンダリビデオストリームと、カレントPiP_PG_TextSTストリーム番号から特定されるPGテキスト字幕ストリームとの組合せが許可されていること。
ここで、ある言語の字幕がテキスト字幕ストリームで表現されている場合、その言語のテキスト字幕ストリームを、“デコードすることができる”といえるには、その言語における文字コードを、ビットマップに展開する能力と、その言語の特性をサポートするサポート能力とが再生装置側に存在する必要がある。
英語、日本語、アラビア語を例にとってみると、英語の字幕表示は、“横書き”,“カーニング”,“合字・抱き字”という機能がサポートされて初めて、言語特性がサポートされていると判断することができる。
日本語の字幕表示は、“横書き”,“縦書き”,“行末禁則”,“ルビ”という機能がサポートされて初めて、言語特性がサポートされていると判断することができる。
アラビア語の字幕表示は、“右から左の描画”、“合字・抱き字”という機能がサポートされて初めて、言語特性がサポートされていると判断することができる。
ある言語のテキスト字幕ストリームをビットマップに展開することができ、その言語の特性をサポートすることができる場合、上記条件(A)、条件(B)は、満たされているということができる。その言語のテキスト字幕ストリームをビットマップに展開することができるが、その言語の特性をサポートすることができない場合、上記条件(B)は満たされず、条件(A)のみが、満たされているということができる。


以上の判定を経た後、ステップS155を実行する。ステップS155は、再生装置は、条件(Z)を満たすか否かを判定するものである
ここで条件(Z)とは、アンサポート言語の字幕を、再生することをユーザが意図していることであり、かかる意図は、PSRセット23におけるPSR30に示されている。
その後、ステップS156の判定ステップを実行する。これは、カレントプレイアイテムのSTN_tableにおけるnumber_of_PG_textST_streams_entriesと、number_of_PiP_PG_textST_stream_entries_plusとの和が=0であるか否かを判定するものである。STN_tableに再生が許可されているPGTextSTストリームが存在しない場合、PSR2におけるPGTextSTストリームの番号を維持する(ステップS157)。カレントSTN_tableにおいて再生が許可されているPGTextSTストリームが少なくとも1つ存在する場合、ステップS158を実行する。これは、カレントPiP_PG_TextSTストリーム番号の有効性を問うステップであり、カレントPiP_PG_TextSTストリーム番号がSTN_tableにおけるstream_entryの総数以下であり、且つ、条件(A)、条件(B)、条件(C)を満たすかどうかを判定する。
もし満たすなら、有効なPiP_PG_TextSTストリーム番号が既にPSR2に存在するとして、これを変化させない(ステップS159)。
もしステップS158で満たさないと判定されたなら、ステップS160の判定を実行する。これは、カレントPiP_PG_TextSTストリーム番号がSTN_tableにおけるstream_entryの総数以下であり、且つ、条件(A)を満たすかどうかを判定するものである。もし満たすなら、PSR2には、アンサポート言語のテキスト字幕のPiP_PG_TextSTストリーム番号が設定されているが、ユーザはアンサポート言語の再生を意図しているので、PSR2を変化させない(ステップS161)。ステップS160において満たさないと判定されたなら、カレントプレイアイテムについて最適なカレントPGテキスト字幕ストリームを選択する(ステップS162)。
以上が、PGTextSTストリームにおけるストリーム選択プロシージャについての説明である。
図50は、カレントプレイアイテムについて最適なカレントPGTextSTストリームを選択する処理手順を示すフローチャートである。
ステップS1 90において、全てのPGTextSTストリームについて、条件(a)〜条件(d)を満たすかどうかをチェックする。
チェック対象となるプレゼンテーショングラフィクスストリームを、プレゼンテーショングラフィクスストリームiとした場合、条件(a)〜条件(d)は、以下のように規定される。
条件(a):プレゼンテーショングラフィクスストリームiをデコードする能力が再生装置に存在する。
条件(b):プレゼンテーショングラフィクスストリームiから特定された言語を再生する能力が再生装置に存在する。
条件(c):PSR14におけるセカンダリビデオストリーム番号と、comb_info_Secondary_video_PiP_textST()によるPGテキスト字幕ストリーム番号との比較では、カレントセカンダリビデオストリームと、プレゼンテーショングラフィクスストリームiとの組合せが許可されている。
条件(d):プレゼンテーショングラフィクスストリームiのPG_language_codeが、デッキ情報と一致している。ここで、デッキ情報とは、再生装置内のデッキ情報における言語設定を示すものであり、具体的には、PSRセット23におけるPSR17を示す。
チェック対象となるテキスト字幕ストリームを、テキスト字幕ストリームiとした場合、条件(a)〜条件(d)は、以下のように規定される。
条件(a):テキスト字幕ストリームiのキャラクターコードをビットマップに展開する能力が再生装置に存在すること。
条件(b):テキスト字幕ストリームiの言語属性をサポートする能力が再生装置に存在すること。
条件(c):PSR14におけるセカンダリビデオストリーム番号と、comb_info_Secondary_video_PiP_textST()によるPGテキスト字幕ストリームiの番号との比較では、カレントセカンダリビデオストリームと、PiP_PG_TextSTストリーム番号から特定されるテキスト字幕ストリームiとの組合せが許可されていること。
条件(d):テキスト字幕ストリームiのtextST_language_codeが、再生装置内のデッキ情報における言語設定と一致していること。
以上のチェックを経た後、ステップS191では、再生装置が、前のフローチャートで述べた条件(Z)(:アンサポート言語の再生)を満たすかどうかを判定する。みたさない場合、ステップS192において、条件(a)〜条件(d)を満たすPGTextSTストリームが存在するかを判定する。存在するなら、条件(a)〜条件(d)を満たすPGTextSTストリームのうち、対応するStream_EntryがSTN_tableにおいて先頭順位に位置するものを選択して、選択したPiP_PG_TextSTストリーム番号を、PSR2に設定する(ステップS193)。
存在しないなら、ステップS194において、より緩和された条件を満たすPGTextSTストリームが存在するか否かを判定する。緩和された条件とは、条件(a)、条件(b)、条件(c)の3つを満たすことであり、これを満たすPGTextSTストリームが存在するかが、ステップS194で判定される。存在するなら、条件(a)、条件(b)、条件(c)を満たすPiPPGtestSTストリームのうち、対応するStream_EntryがSTN_tableにおいて先頭順位に位置するものを選択して、選択したPiP_PG_TextSTストリーム番号を、PSR2に設定する(ステップS196)。
存在しないなら、0xFFFであるPiP_PG_TextSTストリーム番号をPSR2に設定する(ステップS195)。ステップS191において、条件(Z)を満たすと判定されたなら、ステップS197において、別の緩和された条件を満たすPGTextSTストリームが存在するかを判定する。別の緩和された条件とは、条件(a)、条件(c)、条件(d)を満たすものであり、ステップS198では、これらを満たすPGTextSTストリームが存在するかか否かが判定される。
もし存在するなら、条件(a)、条件(c)、条件(d)を満たすPiP_PGTextSTストリームのうち、対応するStream_EntryがSTN_tableの最初に位置するものを選択して、選択したもののPiP_PG_TextSTストリーム番号を、PSR2に設定する(ステップS198)。
存在しない場合、ステップS199において、条件(a)、条件(c)を満たすPGTextSTストリームが存在するかを判定する。存在する場合、条件(a)、条件(c)を満たすPiP_PGtestSTストリームのうち、対応するStream_EntryがSTN_tableにおいて先頭順位に位置するものを選択して、選択したもののPiP_PG_TextSTストリーム番号を、カレントPiP_PG_TextSTストリームのストリーム番号としてPSR2に設定する(ステップS200)。存在しない場合、0xFFFをPSR2に設定する(ステップS201)。
カレントPiP_PG_TextSTストリーム番号における再生区間は、必ずSubPlayItemによって規定されているので、カレントPiP_PG_TextSTストリーム番号における再生区間を規定しているサブプレイアイテムをカレントサブプレイアイテムとして特定されることになる。
以上が、カレントPGTextSTストリームの選択手順についての説明である。
以上のように本実施形態によれば、ピクチャインピクチャが有効である場合、number_of_PG_textST_streams_entriesと、number_of_PiP_PG_textST_stream_entries_plusとを足しあわせた数値範囲のの中から、PiP_PG_TextSTストリーム番号が選ばれ、このPiP_PG_TextSTストリーム番号に対応するプレゼンテーショングラフィクスストリーム又はテキスト字幕ストリームを再生するので、あるときは、プライマリビデオストリームに適した字幕を動画像と共に再生させ、またあるときは、セカンダリビデオストリームに適した字幕を動画像と共に再生させることができ、字幕選択の幅を広げることができる。
そうして選択された字幕に対応するテキスト字幕ストリームを包含しているAVクリップがサブプレイアイテムによって参照されている場合、かかるAVクリップがUnavailableクリップであると、再生が中断することになる。よって、カレントテキスト字幕ストリームを包含しているAVクリップであって、サブプレイアイテム情報から参照されているもののダウンロードを急げば、再生が中断することはないのでスムーズな再生進行を確保することができる。 (第6実施形態)
本実施形態では、仮想パッケージの構築について詳しく説明する。
先ず始めに、仮想パッケージの基本部分となるBD-ROMのデータ構造について説明する。
図51は、BD-ROMの構成の一例を示す図である。
本図の第4段目にBD-ROM100を示し、第3段目にBD-ROM上のトラック202を示す。本図のトラック202は、BD-ROM100の内周から外周にかけて螺旋状に形成されているトラック202を横方向に引き伸ばして描画している。BD-ROM100は他の光ディスク、例えばDVDやCDなどと同様にその内周から外周に向けてらせん状に記録領域を持ち、内周のリードインと外周のリードアウトの間に論理データを記録できる論理アドレス空間を有している。また、リードインの内側にはBCA(Burst Cutting Area)と呼ばれるドライブでしか読み出せない特別な領域がある。この領域はアプリケーションから読み出せないため、例えば著作権保護技術などに利用されることがよくある。
「論理アドレス空間」には、先頭からファイルシステムのボリューム情報が記録され、続いて映像データなどのアプリケーションデータが記録されている。ファイルシステムとはディスク上のデータをディレクトリまたはファイルと呼ばれる単位で表現する仕組みであり、BD-ROM100の場合ではUDF(Universal Disc Format)によって記録される。日常使っているPC(パーソナルコンピュータ)の場合でも、FATまたはNTFSと呼ばれるファイルシステムを通すことにより、ディレクトリやファイルという構造でハードディスクに記録されたデータがコンピュータ上で表現され、ユーザビリティを高めている。このファイルシステムにより、通常のPCと同じように記録されている論理データをディレクトリ、ファイル構造を使って読み出しする事が可能になっている。
BD-ROM100上のディレクトリ、ファイル構造は、ルートディレクトリ(ROOT)直下にBDMVディレクトリが置かれている。BDMVディレクトリはBD-ROM100で扱うAVコンテンツや管理情報などのデータが記録されているディレクトリである。BDMVディレクトリの配下には、タイトルを構成するインデックステーブルが定義されたインデックスファイル(index.bdmv)、動的なシナリオを定義するムービーオブジェクトファイル(MovieObject.bdmv)と、PLAYLISTディレクトリ、CLIPINFディレクトリ、STREAMディレクトリ、BDJOディレクトリ、JARディレクトリが存在する。
これらのディレクトリには、映像・音声といったAVコンテンツが多重化され格納されたAVクリップ(XXX.M2TS)、AVクリップの管理情報を格納したクリップ情報ファイル(XXX.CLPI)、AVクリップの論理的な再生経路を定義したプレイリストファイル(YYY.MPLS)が存在する。
これらの他にも、以下のファイルが存在する。つまりどのJARファイルを実行するかおよびその実行方法について定義したBDJオブジェクトファイル(BBB.BDJO)、BD-Jアプリケーションを格納したJARファイル(AAA.JAR)が存在する。これらのファイルは、それぞれ前述のSTREAMディレクトリ、CLIPINFディレクトリ、PLAYLISTディレクトリ、BDJOディレクトリ、JARディレクトリの下に配置される。
以下に、BDMVディレクトリ配下に置かれる各ファイルのデータ構造について説明する。まずインデックスファイル(Index.bdmv)について説明する。インデックスファイルはインデックステーブルを持つ。
図52は、インデックスファイルの内部構成の一例を示す図である。
「インデックステーブル」は、BD-ROMに格納されるすべてのタイトル、トップメニュー、FirstPlayといったタイトル構成を定義する最上位層のテーブルである。このテーブルには、全てのタイトル、トップメニュー、FirstPlayから最初に実行されるムービーオブジェクトファイルに含まれるムービーオブジェクトが指定されている。BD-ROMの再生機は、タイトルあるいはメニューが呼び出されるたびにインデックステーブルを参照して、所定のムービーオブジェクトもしくはBDJオブジェクトを実行する。ここで、FirstPlayとは、コンテンツプロバイダによって設定されるもので、ディスク投入時に自動実行されるムービーオブジェクトまたはBDJオブジェクトが設定されている。また、トップメニューは、リモコンでのユーザ操作で、「メニューに戻る」というようなコマンドが実行されるときに、呼び出されるムービーオブジェクト、BDJオブジェクトが指定されている。プログレッシブ属性で再生されるべきプレイリストは、必ずBD-Jオブジェクトによって再生されねばならない。
以上が、仮想パッケージの前提となるBD-ROMのデータ構造である。
次に、図53を参照しながらローカルストレージ103に格納されるアップデートキットのデータ構造について説明する。
図53は、ローカルストレージ103に格納されるアップデートキットの内部構成の一例を示す図である。
ローカルストレージ103に格納されるアップデートキットは、本図に示すように、追加コンテンツ格納ディレクトリ、OrgIDディレクトリ、DiscIDディレクトリと、マージ管理情報ファイル(MERGE.XML)、署名情報ファイル(MERGE.SF)、追加コンテンツデータファイル(CCC.MPL、VVV.M2T、VVV.CLPなど)を含む。追加コンテンツ領域ルートディレクトリは、ローカルストレージ103のルートディレクトリの直下に存在し、追加コンテンツ領域のルートを示すディレクトリで、ディレクトリ名配布媒体文字以内の固定値(BD_BUDA)である。
「OrgIDディレクトリ」は、BD-ROM記録層上のBD管理情報(インデックスファイル)に記載されている、映画作品のプロバイダを特定する32bitの識別子(OrganizationID)を16進表記で表した、8文字の名前のディレクトリである。また、OrganizationIDの先頭の連続する0は、ディレクトリの名前から省略する。例えば、OrganizationIDが0x0000001Aの場合は、ディレクトリの名前は"1A"となる。
「DiscIDディレクトリ」は、BD-ROM記録層上のBD管理情報(インデックスファイル)に記載されている、BD-ROM記録層を特定する128bitの識別子(DiscID)を先頭から32bitずつ4分割し、それぞれを16進表記で表したディレクトリである。また、OrganizationIDと同様にDiscIDの先頭の連続する0は、ディレクトリの名前から省略する。
DiscIDディレクトリの配下には、マージ管理情報ファイル、署名情報ファイル、追加コンテンツデータファイルが存在する。
「マージ管理情報ファイル(MERGE.XML)」は、仮想パッケージを構成するためのローカルストレージに記録される各ファイル格納位置情報と、仮想パッケージ上でそれらのファイルへアクセスするための仮想パス情報から構成され、DiscIDディレクトリ直下に保存される。
「署名情報ファイル」は、マージ管理情報ファイルに対するプロバイダの電子的な署名を示すファイルであり、MERGE.SFというファイル名でDiscIDディレクトリ直下に保存される。電子的な署名は、一般的に改ざん防止が必要な情報に対してハッシュ値を計算し、ハッシュ値をなんらかの秘密鍵を用いて暗号化したものを用いる。本実施形態の署名情報ファイルでは、BD-ROM記録層上にあるマージ証明書中の公開鍵に対応する秘密鍵を利用して、マージ管理情報ファイルのハッシュ値が暗号化されている。
「マージ証明書」は、マージ管理情報ファイルの認証に利用する証明書で、プロバイダが公開する公開鍵が含まれる。プロバイダが提供するマージ証明書は、BD-ROM記録層上にbd.certというファイル名で保存されている。マージ証明書のファイル形式の一例としてはX.509を利用することができる。
「追加コンテンツデータファイル」は、BD-ROM記録層に記録されたオリジナルのコンテンツに対し、追加/更新するファイル群である。ここには、プレイリストファイル、AVクリップなどが記録される。
図54は、マージ管理情報ファイルの内容と、その内容を元にBD-ROMのファイルとアップデートキットのファイルとから、仮想パッケージを構築する過程の一例を示す図である。
図54の左上は、BD-ROMのディレクトリ・ファイル構成を示す。本図の左下は、アップデートキットのディレクトリ・ファイル構成を示す。
図54の右下は、マージ管理情報ファイルの内容を示す。マニフェストファイルは、仮想パッケージを構成するローカルストレージにおける「ローカルストレージパス」と、仮想パッケージ上でそれらのファイルへアクセスするための「仮想パッケージパス」と、「プログレッシブ属性」から構成される。プログレッシブ属性は、仮想パッケージを構築する前に、そのファイルがなくても良いことを示す。
ローカルストレージパスの一例として、本図では、1/1/CCC.MPL、1/1/VVV.M2T、1/1/VVV.CLP、1/1/SSS.M2T、1/1/SSS.CLPが記述されている。BD_BUMFディレクトリから追加コンテンツデータファイルへのパスが明記されている。
一方、仮想パッケージパスとして、BDMV/PLAYLIST/CCC.MPLS、BDMV/STREAM/VVV.M2TS、BDMV/CLIPINF/VVV.CLPI、BDMV/STREAM/SSS.M2TS、BDMV/CLIPINF/SSS.CLPIが記述されている。
図54の右上は、このマニフェストファイルによって生成される仮想パッケージを示す。ローカルストレージパスにおいて、1/1/CCC.MPL、1/1/VVV.M2T、1/1/VVV.CLP、1/1/SSS.M2T、1/1/SSS.CLPに存在するファイルが、BDMV/PLAYLIST/CCC.MPLS、BDMV/STREAM/VVV.M2TS、BDMV/CLIPINF/VVV.CLPI、BDMV/STREAM/SSS.M2TS、BDMV/CLIPINF/SSS.CLPIに配置されるように、仮想的にディレクトリ・ファイル構成が変更される。こうすることで、BD-ROMにはないVVV.CLPI、VVV.M2TS、SSS.CLPI、SSS.M2TSが、仮想パッケージでは存在するかの如く取り扱われることになる。
マージ管理情報に基づき、仮想パッケージが生成されれば、ローカルストレージ上のこれらのファイルは、このマージ管理情報におけるパス情報でアクセスすることができる。このとき、プログレッシブ属性が付与されているSSS.M2TSにおいては、仮想パッケージが構築される前に、ローカルストレージにダウンロードが完了している必要はない。仮想パッケージが構築された後、必要になる段階でダウンロードしても良い。

よって、アップデートキットのダウンロードにあたって、ローカルストレージへの書き込みの順序は、
マージ管理情報ファイル→プレイリスト情報→複数クリップ情報→複数AVクリップ
となる。ここでプレイリスト情報−複数のクリップ情報の書き込みが完了した段階で、仮想パッケージの構築は可能になる。何故なら、AVクリップをDisable状態として扱えば、足りるからである。
以上のように本実施形態によれば、サブプレイアイテムを、仮想的なファイルシステムを通じて、システムターゲットデコーダに供給することができる。(第6実施形態)
本実施形態では、PGストリームプレイリストを実現するアップデートキットを作成するためのオーサリングシステムについての説明する。本図に示すように、オーサリングシステムは、ストレージ300a,b、素材制作部301、シナリオ生成部302、BD-J制作部303、多重化処理部304、フォーマット処理部から構成される。
図55は、オーサリングシステムの一例を示す図である。
ストレージ300a,b,cは、それぞれ、ROMシナリオデータ、ROMディスクイメージのバージョン1(ver.1)、ROMディスクイメージのバージョン2(ver.2)を格納している。
素材制作部301は、ビデオストリーム、オーディオストリーム、プレゼンテーショングラフィックスストリーム、インタラクティブグラフィックストリームなどの各ストリームを作成する。素材制作部301は、非圧縮のビットマップなどの画像イメージをMPEG4-AVCやMPEG2などの圧縮方式に従い符号化することでビデオストリームを作成する。また素材制作部301は、非圧縮のLinearPCM音声などをAC3などの圧縮方式に従い符号化することでオーディオストリームを作成する。素材制作部301は、字幕イメージと表示タイミング、およびフェードイン/フェードアウトなどの字幕の効果を含む字幕情報ファイルを元にして、字幕ストリームであるプレゼンテーショングラフィックスストリームを作成する。素材制作部301は、メニューに使うビットマップイメージと、メニューに配置されるボタンの遷移や表示効果を記載したメニューファイルを元にして、メニュー画面を構成するインタラクティブグラフィックスストリームを作成する。
シナリオ生成部302は、素材制作部301で作成した各ストリームの情報や、オーサリングスタッフからのGUIを経由した操作にしたがって、シナリオを作成する。ここで言うシナリオは、インデックスファイル、ムービーオブジェクトファイル、プレイリストファイルなどのファイルがそれにあたる。また、シナリオ生成部302は、多重化処理を実現するための各AVクリップがどのストリームから構成されるかを記述したパラメータファイルを作成する。
BD-J制作部303は、BD-Jアプリケーションをプログラミングする手段である。GUI等のユーザインターフェースを通じて、ユーザからの要求に従って、BD-Jアプリケーションプログラムのソースコードを作成し、BD-Jアプリケーションを作成する。
多重化処理部304は、ROMシナリオデータに記述されているビデオ、オーディオ、字幕、ボタンなどの複数のストリームを多重化して、MPEG2-TS形式のAVクリップを作成する。このとき、AVクリップと対になるクリップ情報ファイルも同時に作成する。多重化処理部304によるクリップ情報ファイル内の生成は、以下の方法で行われる。多重化処理部304はAVクリップを作成と同時にエントリマップを作成する。より具体的には、素材制作部301で生成された各ストリームにおいて、含まれるビデオストリームがMPEG2であればIピクチャ、MPEG4-AVCであればIピクチャかIDRピクチャ、VC-1であればIピクチャが何処に存在するかを検出し、前述の各ピクチャの表示時刻と、MPEG2-TSとなっているAVクリップの何パケット目のソースパケットに前述の各ピクチャの先頭データが入っているかを対応付けたエントリポイントをエントリマップに登録していく。AVクリップに含まれるビデオストリームが、Primaryビデオ・Secondaryビデオの2種類がある場合は、どちらのエントリマップも同時に作成していく。多重化処理部304は、自ら生成したエントリマップと、AVクリップに含まれるストリーム毎の音声属性、映像属性などを示す属性情報をペアにしてクリップ情報ファイルを作成する。
フォーマット処理部305は、シナリオ生成部302で生成したROMシナリオデータと、BD-J制作部303で制作したBD-Jアプリケーション、多重化処理部2604で生成したAVクリップやクリップ情報ファイルや、これまでの実施形態で説明したフォーマットでファイルやディレクトリを配置し、UDFのフォーマットでディスクイメージを作成する。生成したディスクイメージをBD-ROMプレス用データに変換し、このデータに対してプレス工程を行うことで、BD-ROMの製造が可能となる。
アップデートキットを作成するには、二つのディスクイメージを用意する。1つはBD-ROMに格納されるディスクイメージであり、も第1の特徴つは仮想パッケージ構築後のディスクイメージである。
差分抽出部306は、ストレージ300a,bに格納された二つのROMディスクイメージをコンペアして、差分データを抽出する。例えば、オリジナルのディスクイメージになかったファイルや、バイナリコンペアしてアップデートされているファイルなどを抽出する。
アップデートキット制作部307は、差分抽出部306を元に前述で説明したアップデートキットのデータフォーマットに合うようにマージ管理情報ファイルや署名情報ファイルを作成し、ファイルやディレクトリを配置する。
図56は、ROMディスクイメージ、アップデートキットイメージの作成方法について説明する。
ステップS211において、素材制作部301はビデオストリーム、オーディオストリーム、IGストリーム、PGストリームを生成する。
ステップS212において、シナリオ生成部302は、インデックスファイル、ムービーオブジェクトファイル、プレイリストファイルなど再生シナリオを記述するROMシナリオデータを作成する。
ステップS213において、BD-J制作部303は、BD-Jアプリケーションのプログラムを作成する。
ステップS214において、多重化処理部304はROMシナリオデータを元にAVクリップとクリップ情報ファイルを作成する。
ステップS215において、フォーマット処理部307は、ROMシナリオデータ、変形AVクリップ、クリップ情報ファイル、復元バイトコードデータを、これまでの実施形態で述べたファイル・ディレクトリ構造に並び替え、ROMディスクイメージを作成する。
ステップS221において、差分抽出部306は二つのディスクイメージを比較して差分データを抽出する。
ステップS222において、アップデートキット制作部307は、インデックスファイル、ムービーオブジェクトファイル、プレイリストファイルなど再生シナリオを記述するROMシナリオデータを作成する。
ステップS223において、BD-J制作部303は、BD-Jアプリケーションのプログラムを作成する。
ステップS224において、多重化処理部304はROMシナリオデータを元にAVクリップとクリップ情報ファイルを作成する。
ステップS225において、フォーマット処理部307は、差分データをアップデートキットのデータフォーマットに合うように変換する。ステップS226において、マージ管理情報ファイルや署名情報ファイルを作成し、アップデートキット内に配置する。
(備考)
以上、本願の出願時点において、出願人が知り得る最良の実施形態について説明したが、以下に示す技術的トピックについては、更なる改良や変更実施を加えることができる。各実施形態に示した通り実施するか、これらの改良・変更を施すか否かは、何れも任意的であり、実施する者の主観によることは留意されたい。
(プログラミング言語の適用範囲)
上記実施形態では、仮想マシンのプログラミング言語としてJava(TM)を利用したが、Java(TM)ではなく、UNIX(TM) OSなどで使われているB-Shellや、Perl Script、ECMA Scriptなど他のプログラミング言語であっても良い。
(リアルタイムレコーディング)
再生装置101は、リアルタイムレコーディングを行うことで、クリップファイルをローカルストレージに記録してもよい。この際、AVストリームは、アナログ入力信号を記録装置がセルフエンコードすることにより得られたトランスポートストリームであってもよいし、記録装置がデジタル入力したトランスポートストリームをパーシャル化することで得られるトランスポートストリームであってもよい。
リアルタイムレコーディングにあたって上記装置は、AVストリームの記録と共に、メモリ上でクリップ情報やプレイリスト情報を生成する処理を行うが、この際、上述した各実施形態に記載したクリップ情報、プレイリスト情報をメモリ上で生成する。そしてAVストリームの記録を終えた後、生成されたクリップ情報、プレイリスト情報を記録媒体に書き込む。こうすることで、オーサリングシステムを用いずとも、家庭用の記録装置や、記録装置としての機能を具備したパーソナルコンピュータにて、各実施形態に示したクリップ情報、プレイリスト情報を作成することができる。そうして作成されたAVストリーム、クリップ情報、プレイリスト情報を、ライトワンス型の記録媒体に書き込んでもよい。
(AV再生の対象)
AV再生の対象は、デジタルストリーム、マップ情報、プレイリスト情報から構成されるコンテンツであるなら、BD-ROMに規定されたものに限らない。デジタルストリームは、MPEG2,MPEG4-AVC等の符号化方式で符号化されたビデオストリーム、オーディオストリームを多重化することで、得られた多重化ストリームであり、DVD Video-RecordingではVOBと呼ばれる。
マップ情報は、上述したビデオストリームにおけるアクセスユニット(独立復号可能な再生単位をいう)のアドレス情報と、ビデオストリームの再生時間軸における再生時刻との対応を示す情報であり、DVD Video-RecordingではTime Mapと呼ばれる。
プレイリスト情報は、開始点たる時刻情報と、終了点たる時刻情報との組みにより、1つ以上の再生区間を定義する情報である。
(制御手順の実現)
各実施形態においてフローチャートを引用して説明した制御手順や、機能的な構成要素による制御手順は、ハードウェア資源を用いて具体的に実現されていることから、自然法則を利用した技術的思想の創作といえ、“プログラムの発明”としての成立要件を満たす。
・クリップファイルのダウンロードやDataStarvedイベントの出力を行うアプリケーションプログラムの生産形態
クリップファイルのダウンロードやDataStarvedイベントの出力を行うアプリケーションプログラムは、以下のようにして作ることができる。先ず初めに、ソフトウェア開発者は、プログラミング言語を用いて、各フローチャートや、機能的な構成要素を実現するようなソースプログラムを記述する。この記述にあたって、ソフトウェア開発者は、プログラミング言語の構文に従い、クラス構造体や変数、配列変数、外部関数のコールを用いて、各フローチャートや、機能的な構成要素を具現するソースプログラムを記述する。この際、Java言語でのプログラムのための様々なAPIコールを使用する。
記述されたソースプログラムは、ファイルとしてコンパイラに与えられる。コンパイラは、これらのソースプログラムを翻訳してオブジェクトプログラムを生成する。
コンパイラによる翻訳は、構文解析、最適化、資源割付、コード生成といった過程からなる。構文解析では、ソースプログラムの字句解析、構文解析および意味解析を行い、ソースプログラムを中間プログラムに変換する。最適化では、中間プログラムに対して、基本ブロック化、制御フロー解析、データフロー解析という作業を行う。資源割付では、ターゲットとなるプロセッサの命令セットへの適合を図るため、中間プログラム中の変数をターゲットとなるプロセッサのプロセッサが有しているレジスタまたはメモリに割り付ける。コード生成では、中間プログラム内の各中間命令を、プログラムコードに変換し、オブジェクトプログラムを得る。
ここで生成されたオブジェクトプログラムは、各実施形態に示したフローチャートの各ステップや、機能的構成要素の個々の手順を、コンピュータに実行させるような1つ以上のプログラムコードから構成される。ここでプログラムコードは、プロセッサのネィティブコード、JAVAバイトコードというように、様々な種類がある。プログラムコードによる各ステップの実現には、様々な態様がある。外部関数を利用して、各ステップを実現することができる場合、この外部関数をコールするコール文が、プログラムコードになる。また、1つのステップを実現するようなプログラムコードが、別々のオブジェクトプログラムに帰属することもある。命令種が制限されているRISCプロセッサでは、算術演算命令や論理演算命令、分岐命令等を組合せることで、フローチャートの各ステップを実現してもよい。
オブジェクトプログラムが生成されるとプログラマはこれらに対してリンカを起動する。リンカはこれらのオブジェクトプログラムや、関連するライブラリプログラムをメモリ空間に割り当て、これらを1つに結合して、ロードモジュールを生成する。こうして生成されるロードモジュールは、コンピュータによる読み取りを前提にしたものであり、各フローチャートに示した処理手順や機能的な構成要素の処理手順を、コンピュータに実行させるものである。以上の処理を経て、クリップファイルのダウンロードやDataStarvedイベントの出力を行うアプリケーションプログラムを作ることができる。こうして作成したプログラムをコンピュータ読取可能な記録媒体に記録してユーザに供給してもよい。
(システムLSI化)
再生装置101を構成するハードウェアのうち、機構的な構成要素(BDドライブ)、大容量のメモリによって実装される構成要素(ビデオプレーン、グラフィクスプレーン)を除いた、論理素子を主要部とするシステムターゲットデコーダやBD-J処理部の部分を一体化してシステムLSIとして構成することが望ましい。何故なら、論理素子を主要部とする部分は、高密度に集積化することができるからである。
システムLSIとは、高密度基板上にベアチップを実装し、パッケージングしたものをいう。複数個のベアチップを高密度基板上に実装し、パッケージングすることにより、あたかも1つのLSIのような外形構造を複数個のベアチップに持たせたものも、システムLSIに含まれる(このようなシステムLSIは、マルチチップモジュールと呼ばれる。)。
ここでパッケージの種別に着目するとシステムLSIには、QFP(クッド フラッド アレイ)、PGA(ピン グリッド アレイ)という種別がある。QFPは、パッケージの四側面にピンが取り付けられたシステムLSIである。PGAは、底面全体に、多くのピンが取り付けられたシステムLSIである。
これらのピンは、他の回路とのインターフェイスとしての役割を担っている。システムLSIにおけるピンには、こうしたインターフェイスの役割が存在するので、システムLSIにおけるこれらのピンに、他の回路を接続することにより、システムLSIは、再生装置101の中核としての役割を果たす。
かかるシステムLSIは、再生装置101は勿論のこと、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は、各実施形態に示した再生装置101の内部構成図を基に作ることができる。
尚、上述のようにして生成される集積回路は、集積度の違いにより、IC、LSI、スーパーLSI、ウルトラLSIと呼称されることもある。
FPGAを用いてシステムLSIを実現した場合は、多数のロジックエレメントが格子状に配置されており、LUT(Look Up Table)に記載されている入出力の組合せに基づき、縦・横の配線をつなぐことにより、各実施形態に示したハードウェア構成を実現することができる。LUTは、SRAMに記憶されており、かかるSRAMの内容は、電源断により消滅するので、かかるFPGAの利用時には、コンフィグ情報の定義により、各実施形態に示したハードウェア構成を実現するLUTを、SRAMに書き込ませる必要がある。
本発明に係る再生装置は、ストリーミングライクな再生機能を効率的に行い、ユーザに長いダウンロード時間を与えずにすむので、より魅力的な映画タイトルなどの動画コンテンツを市場に供給することができ、映画市場や民生機器市場を活性化させることができる。故に本発明に係る再生装置は、映画産業や民生機器産業において高い利用可能性をもつ
本発明は、プレイリスト再生技術の技術分野に属する発明である。
プレイリストとは、論理的な再生経路を定義するための情報であり、コンテンツ格納のための様々なアプリケーションフォーマットでは、このプレイリストが、1つの決まった再生単位となる。一般にプレイリストは、プレイアイテム、サブプレイアイテムから構成される。プレイアイテムとは、主たる動画像を構成するビデオストリームの時間軸において、イン点、及び、アウト点の組みを指定することで定義される論理的な再生区間である。
サブプレイアイテムとは、サブストリームの時間軸において、イン点、及び、アウト点の組みを指定することで定義される論理的な再生区間である。ここでサブストリームとは、ビデオストリームとは多重化されていないが、ビデオストリームと共に再生されるようなオーディオストリーム、字幕ストリーム、ビデオストリームのことである。
ROMディスクの記録内容と、他の記録媒体の記録内容とを組合せて、仮想パッケージを構築する場合、ネットワークを通じてダウンロードされるサブストリームの再生区間を、サブプレイアイテムにて定義することができる。ここで、プレイリストにおけるプレイアイテムにおいて、ROMディスクに記録されているAVストリームの再生区間を定義し、プレイリストにおけるサブプレイアイテムにおいて、ダウンロードされるべきサブストリームの再生区間を定義することにより、当該プレイリストは、光ディスクにない、新しい字幕・音声と、動画像との組合せを実現することができる。
この仮想的なパッケージを生成する技術の先行技術としては、以下の特許文献1に記載されたものがある。
特開2006-109494号公報
ところが、ROMディスクからの読み出しには、54Mbpsというビットレートを確保することができる。しかし、一般のユーザ宅内では、ストリーミング再生時に保障されるビットレートが、ベストエフォートであることが多く、ROMディスクからのストリーム再生のように、常時、一定の高さのビットレートを確保できない。
ストリーミング再生のためのビットレートが制約されている状況下で、多くのサブプレイアイテムを包含しているようなプレイリストを再生しようとした場合を考える。
例えば、本編映像の特定のシーンにおいて、あるプレイアイテムには、10個のサブプレイアイテムが付随しており、これらのサブプレイアイテムが、オプション扱いとなる10ヶ国の言語をサポートしているケースを想定する。そして、個々のサブプレイアイテムによって参照されているクリップファイルが10Mバイトのデータサイズをもつものとすると、一個のプレイアイテムの再生を開始するには、本編であるプレイアイテムによって参照されているAVクリップとは別に、“10ヶ国の言語×10Mバイト=100Mバイト”のファイルのダウンロードが完了しなければならない。この場合、クリップファイルのダウンロードを担うアプリケーションが、10個のサブプレイアイテムによって参照されている合計100Mバイトのクリップファイルのダウンロードを先に行い、プレイアイテムによって参照されているクリップファイルのダウンロードを後回しにすれば、ビットレートが制限されている状況下では、プレイアイテムによって参照されているクリップファイルの供給が遅れて、再生進行が遅れる恐れがある。
これを避けるため、メインパスによって参照されているクリップファイルのダウンロードを先に行い、サブプレイアイテムによって参照されているクリップファイルのダウンロードを後回しにすると、ユーザが、サブプレイアイテムにて参照されているクリップファイル内のエレメンタリストリームを、再生対象として選択している場合、再生対象となるエレメンタリストリームをデコーダに供給することができず、字幕、音声、動画像の何れかが欠落したまま再生が進行する恐れがある。
このように、多くのサブプレイアイテムが存在しているためダウンロードすべきクリップファイルが多くなると、これらのうち、何を優先してダウンロードすべきかという指針を、アプリケーションに与えることができなくなるので、ビットレートが制限されている状況下では、再生の途切れが顕著化したり、字幕、音声、動画像の何れかが欠落したまま再生が進行する恐れがある。
加えてユーザは、ROMディスクからのストリーム読み出しであるか、ネットワークからのストリーム供給であるかを意識していないので、再生内容の一部が欠落した場合、再生装置が、故障しているかのように勘違いして、メーカーの相談窓口に、商品苦情を訴え出る可能性がある。サブプレイアイテムを構成するようなクリップファイルのダウンロード手続きは、再生装置における組込みプログラムではなく、映画作品の制作者が作成したアプリケーションプログラムによってなされることが一般的である。映画作品の制作者が作成したアプリケーションプログラムが、たまたまサブプレイアイテムを構成するクリップファイルのダウンロードを優先したために、メーカーが上述したような苦情にまきこまれるのは、メーカーにとって望ましいことではない。
本発明の目的は、多くのサブプレイアイテムが存在しているためダウンロードすべきクリップファイルが多く存在する場合、これらのうち、何を優先してダウンロードすべきかという指針を、アプリケーションに与えることができる再生装置を提供することである。
上記課題を解決するため、本発明にかかる再生装置は、プレイリストを再生する再生装置であって、プレイリストは、複数のプレイアイテムと、複数のサブプレイアイテムとを含み、前記プレイアイテムは、メインストリームを含むクリップファイルと、当該クリップファイルにおける再生区間を規定する情報であり、前記サブプレイアイテムは、サブストリームを含むクリップファイルと、当該クリップファイルにおける再生区間を、プレイアイテムと同期すべき再生区間として規定する情報であり、前記サブプレイアイテムが参照するクリップファイルは、伝送路を介して伝送されるクリップファイルであり、サブストリームは、プレイアイテムが参照しているクリップファイルとは多重化されておらず、プレイリストに含まれるプレイアイテムを再生する再生手段と、複数のプレイアイテムのうち、再生対象になっているものをカレントプレイアイテムとして特定する特定手段と、カレントプレイアイテムが変化する度に、カレントプレイアイテムにとって最適なサブプレイアイテムをカレントサブプレイアイテムとして決定する決定手段と、前記カレントプレイアイテムと同期して再生すべきカレントサブストリームを指し示すサブストリームレジスタとを備え、前記カレントサブプレイアイテムとは、カレントプレイアイテムと同期すべき再生区間を規定するサブプレイアイテムであって、前記サブストリームレジスタが指し示すサブストリームの再生区間を規定するものであり、前記再生手段は、再生装置がアクセス可能な記録媒体に、カレントサブプレイアイテムによって参照されているクリップファイルが存在すればプレイアイテムの再生を進行し、カレントサブプレイアイテムによって参照されているクリップファイルが記録媒体において存在しないか又は認識不能な状態になっていれば、プレイアイテムの再生を停止することを特徴とする。
上記再生装置によれば、カレントサブプレイアイテムによって参照されているクリップファイルであって、カレントサブストリームを含むものが記録媒体に存在しない場合、一律に再生停止されることになる。
言い換えれば、カレントサブプレイアイテム情報によって参照されているクリップファイルであって、カレントサブストリームを含むものさえ記録媒体に揃っていれば、再生進行を継続することができるので、優先的にダウンロードを行うべきクリップファイルは、メインストリームを含むクリップファイル、及び、カレントサブプレイアイテム情報によって参照されているクリップファイルであって、カレントサブストリームを含むクリップファイルになる。
よってアプリケーションが、これらのクリップファイルを優先的にダウンロードして、その他のサブプレイアイテムから参照されるクリップファイルのダウンロードを後回しにすれば、ROMディスクと比較して、充分なビットレートを確保することができでなくても、サブプレイアイテムを多く含むようなプレイリストの再生を継続することができる。
サブプレイアイテムが多く存在したとしても、これらのうち、カレントサブプレイアイテム情報によって参照されているクリップファイルであって、カレントサブストリームを含むものさえ揃っていれば、再生を継続することができるため、何を優先してダウンロードすべきかという指針を、アプリケーションに与えることができる。よってアプリケーションは、“あるプレイアイテムの再生がなされている期間に、次にカレントサブプレイアイテム情報になるべきサブプレイアイテムによって参照されているクリップファイルをダウンロードする”とのルールで、ダウンロードを行えば、たとえサブプレイアイテムが多く存在していて、ビットレートが制限されていたとしても、再生を継続させることができる。ダウンロードを行うべきクリップファイルの優先順序を律することができるので、字幕、音声、動画像の何れかが欠落したまま再生が進行する恐れがなくなり、またストリーム供給が遅れることによる再生進行の途切れを最小限に留めることができる。
更に詳しくいうと、上記ルールでダウンロードを行う場合、クリップファイルのダウンロードに必要なビットレートBは、以下の計算で示されるものとなる。

ビットレートB=
(ネクストプレイアイテムに対応するクリップファイルのデータサイズ+ネクストサブプレイアイテムに対応するクリップファイルのデータサイズ)
/カレントプレイアイテムの再生時間
ここで、
「ネクストプレイアイテム」は、プレイアイテムの次に再生されるべきプレイアイテムであり、「ネクストサブプレイアイテム」は、カレントサブプレイアイテム情報の次に再生されるべきサブプレイアイテムを規定するサブプレイアイテムである。

ダウンロードに必要となるビットレートは、上述したような値で足りるので、ビットレートが制限されていても、再生の中断を必要最低限にすることができる。
また、カレントサブプレイアイテム情報によって参照されるクリップファイルが認識できない状態であれば、再生進行を停止させるとの処理を行えば、ROMディスクからのストリーム供給であるか、ダウンロードによるストリーム供給であるかをユーザに意識させることはなくなる。サブプレイアイテムによる再生が欠落した状況で、再生内容がどのようになるかを検証する必要はなくなり、オーサリング時の負担も軽減する。
再生装置は、再生に必要最低限のクリップファイルのダウンロードだけをダウンロードして再生できるため、ユーザは不必要にクリップファイルのダウンロードを待つことなく、プレイリストの再生を継続できる。
再生装置101の、使用行為についての形態の一例を示す図である。 プレイリストの一例を示す図である。 動作例の題材となるプレイリストの一例を示す図である。 図3に示したプレイリストが、どのようにして再生されるかを示す。 再生装置101の構成の一例を示す図である。 システムパラメータ(SPRM)の一覧である。 ストリーミングライクな再生機能を模式的に示す図である。 サブプレイアイテムを伴う場合のストリーミングライクな再生進行の一例を示す図である。 再生位置がプレイアイテム#2に到達しようとしている状態の一例を示す図である。 字幕切替えがユーザによって要求されたため、現在の再生時点が、サブパス(ID=#0)の10003.m2tsを参照しているサブプレイアイテム#3から、サブパス(ID=#1)の20003.m2tsを参照しているサブプレイアイテム#3に変化した場合を想定した図である。 チャプタージャンプがあったため、プレイアイテム#3がカレントプレイアイテムになり、サブプレイアイテム#3がカレントサブプレイアイテム情報になったことを想定した図である。 BD-Jアプリケーションの処理手順を示すフローチャートである。 AVクリップダウンロードの処理手順を示すフローチャートである。 プレイリスト再生処理の処理手順を示すフローチャートである。 カレントサブプレイアイテムの決定手順を示すフローチャートである。 プログレッシブ属性AVクリップ制御の処理手順を示すフローチャートである。 再生停止リカバリー処理の処理手順を示すフローチャートである。 カレントプレイアイテムがプレイアイテム#1であり、カレントサブプレイアイテム情報がサブパス(ID=1)のサブプレイアイテム#1である場合に、ダウンロードを要求すべきクリップファイルを示す。 カレントプレイアイテムがプレイアイテム#2であり、カレントサブプレイアイテム情報がサブパス(ID=1)のサブプレイアイテム#2である場合に、ダウンロードを要求すべきクリップファイルを示す。 カレントプレイアイテムがプレイアイテム#3であり、カレントサブプレイアイテム情報がサブパス(ID=1)のサブプレイアイテム#3である場合に、ダウンロードを要求すべきクリップファイルを示す。 AVクリップの構成の一例を示す図である。 AVクリップがどのように多重化されるかを模式的に示す図である。 PESパケット列に、ビデオストリームがどのように格納されるかを更に詳しく示している。 AVクリップに最終的に書き込まれるTSパケットの形式を示した図である。 PMTのデータ構造を詳しく説明する図である。 クリップ情報ファイルの一例を示す図である。 ストリーム属性情報の一例を示す図である。 エントリマップの一例を示す図である。 システムターゲットデコーダ13の内部構成の一例を示す図である。 プレイリスト情報のデータ構造の一例を示す図である。 サブパス情報の内部構成をクローズアップして示す図である。 STN_tableの全体構成の一例を示す図である。 図32に示したSTN_tableの全体構成のうち、セカンダリビデオストリームについてのstream_entryの一例を示す図である。 (a)プライマリビデオストリームにおけるStream_entry及びStream_attributeの一例を示す図である。 (b)セカンダリビデオストリームにおけるStream_entryを示す。 (a)PSR14のビットアサインの一例を示す図である。 (b)PSR29のビットアサインの一例を示す図である。 再生制御エンジンの内部構成の一例を示す図である。 カレントセカンダリビデオストリームを決定するための処理手順を示すフローチャートである。 カレントプレイアイテムについて最適なカレントセカンダリビデオストリームを決定する処理手順を示すフローチャートである。 継時型ステレオゴーグルの一例を示す図である。 立体視のためのプライマリビデオストリーム、セカンダリビデオストリームの内部構成の一例を示す図である。 システムターゲットデコーダ13の内部構成の一例を示す図である。 Primary_audio_stream_entry、Secondary_audio_stream_entryの内部構成と、Comb_info_Secondary_video_Secondary_audioの内部構成との一例を示す図である。 (a)PSR1のビットアサインの一例を示す図である。 (b)PSR14のビットアサインの一例を示す図である。 カレントプレイアイテム変化時におけるカレントプライマリオーディオストリーム決定手順を示すフローチャートである。 セカンダリオーディオストリームのストリーム選択プロシージャの処理手順を示すフローチャートである。 カレントプレイアイテムについて最適なカレントセカンダリオーディオストリームを選択する手順を示すフローチャートである。 STN_tableのうち、PGtestSTストリームに特に関連あるものを抜き出して描いた図である。 (a)カレントPGtestSTストリームのストリーム番号が取りうる数値範囲の一例を示す図である。 (b)PSR2のビットアサインの一例を示す図である。 カレントプレイアイテム変化時におけるカレントPGtestSTストリームの決定手順を示すフローチャートである。 カレントプレイアイテムについて最適なカレントPGTextSTストリームを選択する処理手順を示すフローチャートである。 BD-ROMの構成の一例を示す図である。 インデックスファイルの内部構成の一例を示す図である。 ローカルストレージ103に格納されるアップデートキットの内部構成の一例を示す図である。 マージ管理情報ファイルの内容と、その内容を元にBD-ROMのファイルとアップデートキットのファイルとから、仮想パッケージを構築する過程の一例を示す図である。 オーサリングシステムの一例を示す図である。 ROMディスクイメージ、アップデートキットイメージの作成方法について説明する図である。
以下、上記課題解決手段を具備した再生装置及び記録装置の実施の形態について、図面を参照しながら説明する。
(第1実施形態)
以降、上記再生装置及び記録装置の実施形態について説明する。先ず始めに、再生装置の実施行為のうち、使用行為についての形態を説明する。図1は、再生装置101の、使用行為についての形態の一例を示す図である。本図に示すように、再生装置101は、第1記録媒体の一例であるBD-ROM100、WWWサーバ102、ローカルストレージ103、テレビ104と共にユーザによる使用に供される。
BD-ROM100は、映画作品が記録された記録媒体である。
再生装置101は、テレビ103と共に、ホームシアターシステムを構築して、BD-ROM100を再生する。かかる記録装置は、記録媒体に対してデータをダウンロードを書き込む機能を有したものであり、記録装置としての機能を兼備している。
WWWサーバ102は、映画配給者の公式サイトを運営するサーバ装置であり、BD-ROM100に記録された映画作品の部分的な置き換えや追加を実現するファイル一式(アップデートキット)を、インターネット等を介してユーザに供給する。
ローカルストレージ103は、再生装置に装填され、映画配給者のWWWサーバ102から配信されたコンテンツの受け皿として利用される。そのため、ネットを通じてダウンロードされ、ローカルストレージに格納されたコンテンツと、BD-ROM100に記録されたコンテンツとを組み合わせて、BD-ROM100のコンテンツを拡張/更新をすることができる。
テレビ104は、映画作品の再生映像を表示したり、メニュー等を表示することで、対話的な操作環境をユーザに提供する。
以上が再生装置の使用形態についての説明である。続いて再生装置が再生の対象としている、プレイリストについて説明する。
図2は、プレイリストの一例を示す図である。プレイリストは、「メインパス」、1つ以上の「サブパス」から構成される。
「メインパス」は、1つ以上のプレイアイテムから構成される。
「サブパス」は、メインパスと一緒に再生される一連の再生経路を示し、プレイリストに登録される順にID(サブパスID)が振られる。サブパスIDは、サブパスを識別するために使われる。サブパスには、メインパスの再生に同期して再生される同期型、メインパスの再生に非同期で再生可能な非同期型があり、そのタイプはサブパスタイプに記される。サブプレイアイテムは、1つ以上のサブプレイアイテム情報から構成される。サブパスタイプが同期型の場合は、サブプレイアイテムの再生開始と再生終了時刻は、メインパスと同じ時間軸で表されるが、サブパスタイプが非同期型の場合は、サブプレイアイテムの再生開始時刻と再生終了時刻は、メインパスと違う時間軸で表される。
また「プレイアイテム」は、ストリーム番号テーブルを含む。ストリーム番号テーブルは、プレイアイテムにおいて再生が許可されているエレメンタリストリームのストリーム番号を示す情報である。プレイリスト情報、プレイアイテム情報、サブプレイアイテム情報、ストリーム番号テーブルの詳細については、後の実施形態に説明の場を譲る。
以降の動作例の説明では、以下のようなプレイリストを題材として選らぶ。
図3は、動作例の題材となるプレイリストの一例を示す図である。
題材となるプレイリストは、1つのメインパスと、2つのサブパス(サブパス(ID=0),サブパス(ID=1))から構成される。メインパスは、5つのプレイアイテム#1,#2,#3,#4,#5を含み、ID=0のサブパスは、5つのサブプレイアイテム#1,#2,#3,#4,#5を含む。ID=1のサブパスは、5つのサブプレイアイテム#1,#2,#3,#4,#5を含む。
どちらのサブパスも同期型で、それぞれ別々の言語の字幕データであるプレゼンテーショングラフィックスストリームが多重化されたAVクリップを参照している。プレイリストから利用されるAVクリップはすべてローカルストレージに格納されたアップデートキットのコンテンツであり、プログレッシブ属性が付与されている。プログレッシブ属性とは、プレイリスト再生にあたって、予めローカルストレージに格納されていることは必要ではなく、当該AVクリップを参照しているサブプレイアイテムが、カレントサブプレイアイテム情報になる直前に、ローカルストレージに格納されていれば足りるというAVクリップの属性のことである。
5つのプレイアイテム#1,#2,#3,#4,#5は、それぞれ00001.m2ts、00002.m2ts、00003.m2ts、00004.m2ts、00005.m2tsを参照している。
ID=0のサブパスにおけるサブプレイアイテム#1,#2,#3,#4,#5は、それぞれ10001.m2ts、10002.m2ts、10003.m2ts、10004.m2ts、10005.m2tsを参照している。
ID=1のサブパスにおけるサブプレイアイテム#1,#2,#3,#4,#5は、それぞれ20001.m2ts、20002.m2ts、20003.m2ts、20004.m2ts、20005.m2tsを参照している。
メインパスの各プレイアイテムは、図中右上のようなストリーム番号テーブルを有する。このストリーム番号テーブルは、ストリーム番号1,2,3が割り当てられた3つのエントリーをもつ。これら3つのエントリーは、メインパスのプレイアイテム情報によって参照されるプライマリビデオストリーム、サブプレイアイテム(サブパスID=0)によって参照されるAVクリップに包含されているプレゼンテーショングラフィクスストリーム(PG#1)、サブプレイアイテム(サブパスID=1)によって参照されるAVクリップに包含されているプレゼンテーショングラフィクスストリーム(PG#2)の再生を許可するものである。
カレントとなる字幕ストリーム番号が“2”であるとき、該当するストリームエントリはサブパスID=0で示されるPG#1であるため、プレイアイテムの再生と同期して、サブパスID=0のPG#1が再生される。
図4は、図3に示したプレイリストが、どのようにして再生されるかを示す。本図における右側は、WWWサーバ102を示し、左側は、再生装置101を示す。真ん中は、インターネット、イントラネット等の伝送路を示す。図3における00001.m2ts、00002.m2ts、00003.m2ts、00004.m2ts、00005.m2tsは、テレビ103に存在する。これらのAVクリップのうち、00001.m2ts、10001.m2tsは、WWWサーバ102に対してダウンロード要求を送信することで、WWWサーバ102から再生装置101へと伝送されていることがわかる。
サーバ装置のデータベースにおいて、AVクリップは、00001.m2ts、00002.m2ts、00003.m2ts、00004.m2ts、00005.m2tsというファイル名とは異なるファイル名のファイルに格納されて管理される。これは、仮想パッケージ構築の対象となるファイルは、マニフェストファイルによって別名でアクセスされることが可能だからである。
以下、再生装置101が、プレイリスト再生、ダウンロード要求及びダウンロードを行うための構成要素について説明する。これらの処理のための構成要素には、BD-Jアプリケーションと、BD-Jオブジェクトとがある。以下、これらの構成要素について説明する。
<BD-Jアプリケーション>
「BD-Jアプリケーション」とは、Java2Micro_Edition(J2ME) Personal BasisProfile(PBP 1.0)と、Globally Excecutable MHP specification(GEM1.0.2)for package mediatargetsとをフル実装したプラットフォーム部において、タイトルを生存区間としたアプリケーションシグナリングによって起動されるJava(登録商標)アプリケーションである。BD-Jアプリケーションは、プレイリスト情報を再生するJMFプレーヤインスタンスの生成をJava(登録商標)仮想マシンに命じることで、プレイリスト再生を開始させる。JMF(JavaMedia Frame work)プレーヤインスタンスとは、JMFプレーヤクラスを基にして仮想マシンのヒープメモリ上に生成される実際のデータのことである。
JMF A”BD://00001.mpls”;は、00001.mplsというファイルのプレイリストを再生するプレーヤインスタンスの生成をJava(登録商標)仮想マシンに命じるメソッドである。A.playは、JMFプレーヤインスタンスに再生を命じるメソッドである。かかるJMFプレーヤインスタンス生成は、JMFライブラリに基づきなされる。
JMFインスタンスを生成した後、プレイリスト再生にあたって、必要となるAVクリップのダウンロードをWWWサーバ102に対して要求する。ダウンロードにあたって、WWWサーバ102上のAVクリップを取得するためのコネクションはjava.netと呼ばれるJavaソフトウェアライブラリィのopenConnectionメソッドを使って、確立することができる。サーバ上のファイルのURLが、http://xxx.com/vp_data/00001.m2tsである場合におけるコネクション接続の用例を以下に示す。用例:newjava.net.URL(http://xxx.com/vp_data/00001.m2ts.openConnection()
上述したようなプレイリスト再生及びAVクリップダウンロードに先立ち、BD-Jアプリケーションは、GUIフレームワークを用いて、ユーザ操作を受け付ける。Java(登録商標)アプリケーションにおけるGUIフレームワークは、GEM1.0.2にて規定されたHAViフレームワークを含み、GEM1.0.2におけるリモートコントロールナビゲーション機構を含む。
これにより、Java(登録商標)アプリケーションは、HAViフレームワークに基づくボタン表示、テキスト表示、オンライン表示(BBSの内容)といった表示を、動画像の表示と組み合わせた画面表示を実現することができ、リモートコントロールを用いて、上述したようなプレイリスト再生やAVクリップダウンロードを実現することができる。BD-Jアプリケーションを構成する一連のファイルは、Http://Java(登録商標).sun.com/j2se/1.4.2/docs/guide/jar/jar.htmlに記載された仕様に準じた、Java(登録商標)アーカイブファイルに変換される。Java(登録商標)アーカイブファイルは、ZIPファイルの形式を、Java(登録商標)に特化したものであり、市販されているZIP展開ソフトウェアにより中身を確認することができる。
<BDJオブジェクト>
BDJオブジェクトは、アプリケーション管理テーブル(ApplicationManagementTable())を含み、BD-ROM再生時において、タイトル切り替えに伴うアプリケーションシグナリングをプラットフォーム部に実行させるデータのことである。より具体的にいうと、ApplicationManagementTable()は、実行すべきBD-Jアプリケーションを示すapplication_idと、BD-Jアプリケーションを起動する際の制御を示すapplication_control_codeを含む。application_control_codeは、タイトル選択後におけるアプリケーションの最初の実行状態を規定しており、またapplication_control_codeは、BD-Jアプリケーションを仮想マシンにロードして自動開始するか(AUTOSTART)、BD-Jアプリケーションを仮想マシンにロードするが自動開始はしないか(PRESENT)を規定することができる。
続いて、再生装置の内部構成について説明する。
図5は、再生装置101の構成の一例を示す図である。再生装置101は、BD-ROMドライブ10、リードバッファ11、リードバッファ12、システムターゲットデコーダ13、BD-J実行部14、ネットワークインターフェイス15、仮想パッケージ制御部16、状態管理部17、ユーザイベント処理部18、再生エンジン19、再生制御エンジン20、HDMI送受信部21、ヒープメモリ22、仮想マシンインタプリタ23、PSRセット24から構成されている。以降、これらの構成要素について説明する。
<BD-ROMドライブ10>
BD-ROMドライブ10は、BD-ROMディスクからデータを読み出し、リードバッファ11にデータを蓄える。
<リードバッファ11>
リードバッファ11は、BD-ROMドライブを使って読み込んだデータを一時的に格納するメモリ等で構成されたバッファである。
<リードバッファ12>
リードバッフ1ァ12は、ローカルストレージから読み込んだデータを一時的に格納するメモリ等で構成されたバッファである。
<システムターゲットデコーダ13>
システムターゲットデコーダ13は、リードバッファ11に読み出されたソースパケットやリードバッファ12に読み出されたソースパケットに対して多重分離処理を行い、各ストリームをデコードし再生する処理を行う。また、BD-J実行部14よりメニューなどに表示するためのJPEG,PNGなどのグラフィックスデータをデコードして再生する処理を行う。システムターゲットデコーダ13の詳細については後述する。
<BD-J実行部14>
BD-J実行部14は、仮想パッケージ制御部16から転送されるBD-Jアプリケーションを実行するプログラム処理エンジンである。BD-Jアプリケーションのプログラムに従った動作を行い次のような制御を行う。(1)仮想パッケージ制御部16に対してプレイリスト再生する。(2)インターネットなどのWWWサーバからアップデートキットのローカルストレージへ蓄積する。(3)BD-ROMとアップデートキットとを組み合わせて仮想パッケージの構築を命令する。(4)プレーヤ変数に値をセットする。(5)システムターゲットデコーダに対してメニューやゲームのグラフィックスのためのPNG・JPEGを転送して画面に表示する。これらはプログラムの作りに応じて自由に行うことができ、どのように制御するかは、オーサリング工程によるBD-Jアプリケーションのプログラミング工程によって決まる。
<ネットワークインターフェイス15>
ネットワークインターフェイス15は、再生装置における通信機能を実現するものであり、URL指定がBD-Jアプリケーションから与えられれば、そのURLにあたるwebサイトとのTCPコネクション、FTPコネクション等を確立する。かかるコネクション確立によりwebサイトからのダウンロードをJava(登録商標)アプリケーションに行わせる。
<仮想パッケージ制御部16>
仮想パッケージ制御部16は、BD-ROMドライブ10、ローカルストレージ103を制御して、仮想パッケージを構築し、プレーヤの再生を制御する機能を持つ。仮想パッケージとは、BD-ROMディスクに記録されたコンテンツと、ローカルストレージ103に格納された差分データと、ローカルストレージ103に格納されたマージ管理情報を元に、BD-ROM上のコンテンツとをメモリ上で組み合せた仮想的なBD-ROMパッケージである。構築された仮想パッケージは、BD-ROMのデータ構造と同じ形式を持つ。仮想パッケージを構築するタイミングは、ディスクがインサートされた時や、BD-J実行部14の仮想パッケージ構築命令が実行された時などがある。仮想パッケージ制御部16は、仮想パッケージが構築された後は、BD-J実行部の再生命令や、ユーザイベント処理部より通知に基づきプレイリスト情報を介してAVクリップの再生処理を制御する。また、仮想パッケージ制御部16は、プレーヤ変数の設定や参照を行い、再生動作を行う。
<状態管理部17>
状態管理部17は、BD-ROM又ローカルストレージに存在する個々のAVクリップが、Missing状態、Enable状態、Disable状態の何れであるかを管理し、プレイリストの再生を停止させるかどうかの制御を行う。
Missing状態とは、プレイアイテム情報、サブプレイアイテム情報から参照されているAVクリップがBD-ROM又ローカルストレージに存在しない状態を意味する。
Enable状態とは、仮想パッケージ制御部16での再生可能な状態を意味し、BD-JアプリケーションのAPIで制御される。Enable状態にセットするAPIが実行された場合、AVクリップはリードオンリー属性になり、仮想パッケージ制御部16でのAVクリップの再生が可能になる。
Disable状態は、Enable状態の反対を意味し、仮想パッケージ制御部16は該当AVクリップの再生をすることができない。BD-JアプリケーションによりAVクリップに対してEnable状態に一度もセットされていない場合は、そのAVクリップはDisable状態である。もし、BD-Jアプリケーションが、Enable状態のAVクリップを削除や上書きなどをしたい場合は、Disable状態に一度APIを使って遷移して実行する。
これらのうち、Missing状態になっているAVクリップ、Disable状態になっているAVクリップを併せてUnavailableクリップという。
プレイリストの再生を停止させるかどうかの制御とは、カレントサブプレイアイテム情報が変化した場合、カレントサブプレイアイテム情報にて参照されているAVクリップがUnavailableクリップかどうかを判定して、Unavailableクリップであれば、DataStarvedイベントをJMFプレーヤインスタンス及び再生制御エンジンに通知して、JMFプレーヤインスタンス及び再生制御エンジンを再生状態からストップ状態に遷移させるというものである。
<ユーザイベント処理部18>
ユーザイベント処理部18は、リモコンを通じたユーザ操作に応答して、BD-J実行部14や仮想パッケージ制御部16に処理の実行を依頼する。例えば、リモコンでボタンを押した場合は、そのボタンに含まれるコマンドを実行するようBD-J実行部14に依頼する。例えば、リモコンで早送り・巻戻しボタンが押された場合には、仮想パッケージ制御部16に、現在再生しているプレイリストのAVクリップに対する早送り・巻戻し処理の実行を命令する。
<再生エンジン19>
再生エンジン19は、AV再生ファンクションを実行する。再生装置のAV再生ファンクションとは、DVDプレーヤ、CDプレーヤから踏襲した伝統的な機能群であり、再生開始(Play)、再生停止(Stop)、一時停止(PauseOn)、一時停止の解除(PauseOff)、Still機能の解除(still off)、速度指定付きの早送り(Forward Play(speed))、速度指定付きの巻戻し(BackwardPlay(speed))、音声切り換え(AudioChange)、Secondaryビデオ切り換え(Subtitle Change)、アングル切り換え(AngleChange)といった機能である。AV再生ファンクションを実現するべく、再生エンジン19は、AVクリップのうち、所望に時刻にあたる部分のデコードを行うよう、システムターゲットデコーダを制御する。
<再生制御エンジン20>
再生制御エンジン20は、プレイリストに対する再生制御ファンクションを実行する。プレイリストに対する再生制御ファンクションとは、再生エンジン19が行うAV再生ファンクションのうち、再生開始や再生停止を、カレントプレイリスト情報及びクリップ情報に従って行わせることをいう。
<HDMI送受信部21>
HDMI送受信部21は、HDMI(HDMI:High DefinitionMultimedia Interface)を介して接続された他の機器から、その機器に関する情報を受信とすると共に、システムターゲットデコーダのデコードにより得られたデジタル非圧縮のビデオを、LPCMや圧縮されたオーディオデータと共に、HDMIを介して接続された他の機器に送信する。
<ヒープメモリ22>
ヒープメモリ22は、BD-J実行部14のために確保されるスタックメモリであり、BD-Jアプリケーションによって生成されたJMFプレーヤインスタンスや、BD-Jアプリケーションに対してクラスローダを行うことで生成されるバイトコードが格納される。これらは、スレッドの態様をなし、先入先出し式に、仮想マシンインタプリタ23による実行に供される。
<仮想マシンインタプリタ23>
仮想マシンインタプリタ23は、ヒープメモリ22に格納されたバイトコードをCPUが実行可能なネィティブコードに変換してCPUに実行させる。

<PSRセット 24>
PSRセット 24は、プレーヤ変数を格納しているプレーヤセッティングレジスタ、プレーヤステータスレジスタである。プレーヤ変数は、プレーヤの状態を示すシステムパラメータ(SPRM)と一般用途として使用可能なゼネラルパラメータ(GPRM)とがある。
図6はシステムパラメータ(SPRM)の一覧である。
SPRM(0) : 言語コード
SPRM(1) : Primaryオーディオストリーム番号
SPRM(2) : 字幕ストリーム番号
SPRM(3) : アングル番号
SPRM(4) : タイトル番号
SPRM(5) : チャプタ番号
SPRM(6) : プログラム番号
SPRM(7) : セル番号
SPRM(8) : 選択キー情報
SPRM(9) : ナビゲーションタイマー
SPRM(10) : 再生時刻情報
SPRM(11) : カラオケ用ミキシングモード
SPRM(12) : パレンタル用国情報
SPRM(13) : パレンタルレベル
SPRM(14) : プレーヤ設定値(ビデオ)
SPRM(15) : プレーヤ設定値(オーディオ)
SPRM(16) : 音声ストリーム用言語コード
SPRM(17) : 音声ストリーム用言語コード(拡張)
SPRM(18) : 字幕ストリーム用言語コード
SPRM(19) : 字幕ストリーム用言語コード(拡張)
SPRM(20) : プレーヤリージョンコード
SPRM(21) : Secondaryビデオストリーム番号
SPRM(22) : Secondaryオーディオストリーム番号
SPRM(23) : 再生状態
SPRM(24) : 予備
SPRM(25) : 予備
SPRM(26) : 予備
SPRM(27) : 予備
SPRM(28) : 予備
SPRM(29) : 予備
SPRM(30) : 予備
SPRM(31) : 予備
SPRM(10)は、AVクリップに属する各ピクチャデータが表示される度に更新される。つまり再生装置が新たなピクチャデータを表示させれば、その新たなピクチャデータの表示時刻(PTS)を示す値にSPRM(10)は更新される。このSPRM(10)を参照すれば、現在の再生時点を知得することができる。
SPRM(16)の音声ストリーム用言語コードやSPRM(18)の字幕ストリーム用言語コードは、プレーヤのOSDなどで設定できる項目であり、プレーヤのデフォルトの言語コードを示す。例えば、SPRM(16)の音声ストリーム用言語コードが英語であれば、プレイリストを再生する上で、プレイアイテムのストリーム選択テーブルの中から同じ言語コードを持つストリームエントリを探し出し、その音声ストリームを選択して再生するといった機能をBD-ROMディスクの中のBD-Jアプリケーションに入れることが出来る。これらのSPRMは、それぞれが32ビットの語長をもつレジスタに格納される。SPRMを特定する括弧書きの数値は、基本的には、対応するレジスタのレジスタ番号を意味する(但し、SPRM(21),SPRM(22)は、対応するレジスタのレジスタ番号を意味している訳ではない。)。
<ストリーミングライクな再生機能>
次に図7を用いながら、仮想パッケージを利用したストリーミングライクな再生機能における仮想パッケージ制御部16の再生遷移について説明する。図7は、ストリーミングライクな再生機能を模式的に示す図である。
ストリーミングライクな再生機能とは、プレイアイテム情報又はサブプレイアイテム情報によって参照されているAVクリップであって、プログレッシブ属性が付与されているものを、当該プレイアイテム情報又はサブプレイアイテム情報が、カレントプレイアイテム又はカレントサブプレイアイテム情報になる直前にローカルストレージに格納するよう、再生動作とダウンロード動作とを並列に行うことをいう。
図7上段は、プレイリストを示し、5つのプレイアイテムは、それぞれ、00001.m2ts、0002.m2ts、00003.m2ts、00004.m2ts、00005.m2tsを参照するが、これらはすべてローカルストレージに格納されたアップデートキットのコンテンツであり、プログレッシブ属性が付与されている。このうち、00001.m2ts、00002.m2tsは、すでにダウンロードが完了しており、BD-JアプリケーションによりEnable状態にセットされている。00003.m2ts、00004.m2ts、00005.m2tsはまだダウンロードがされていないか、あるいは、ダウンロードはされているがDisable状態であることを示す。仮想パッケージ制御部16は、プレイリストの先頭プレイアイテムから順に再生する場合、図7上段のとおり、再生位置がプレイアイテム#1、プレイアイテム#2に存在する場合は、再生が妨げられることはない。これらのプレイアイテムのプレイアイテム情報は、Enable状態であるAVクリップを参照しているからである。よって、プレイアイテム#3まで再生が進行する。
図7中段は、図7上段からさらに再生位置が進んだ図を示し、再生位置がプレイアイテム#3に遷移する前に00003.m2tsのダウンロードが完了し、BD-JアプリケーションによりEnable状態にセットされたことを示す。よって、再生は、プレイアイテム#3まで進行する。
図7下段は、図7中段からさらに再生位置が進んだ図を示し、再生位置がプレイアイテム#4に遷移した時に、参照する00004.m2tsがまだダウンロードがされていないか、Disable状態であることを示す。この場合、DataStarvedイベントが出力されることになる。BD-Jアプリケーションは、DataStarvedイベントを受け取った後は、00004.m2tsのダウンロードを完了させ、Enable状態に遷移させ、DataStarvedイベントを受け取った地点から再生開始するという制御などでリカバーを図る。
以上のように、ストリーミングライクな再生では、次の再生位置にあるプレイアイテムのAVクリップが、前もってダウンロードされてEnable状態にセットされる限り、再生進行が妨げられることはない。
図8は、サブプレイアイテムを伴う場合のストリーミングライクな再生進行の一例を示す図である。
第3段目は、図3のプレイリストに、再生がどこまで進行を示したかを模式的に示す矢印を書き加えたものである。
第1段目は、JMFプレーヤインスタンスの状態を示し、第2段目は、再生制御エンジンの状態を示す。第3段目は、題材となるプレイリストを示す。第1段目によると、JMFプレーヤインスタンスは、再生状態になっているが、DataStarvedイベントが出力されれば、ストップ状態になる。DataStarvedイベントとは、再生すべきデータが、欠乏していることを示すイベントであり、このDataStarvedイベントを受け取ったJMFプレーヤインスタンス及び再生制御エンジンは、ストップ状態に遷移することになる。JMFプレーヤインスタンス及び再生制御エンジンの動作を停止させるので、DataStarvedイベントは、“再生停止イベント”とも呼ばれる。
第2段目によると、再生制御エンジンは、再生状態になっているが、DataStarvedイベントが出力されれば、JMFプレーヤインスタンスと共にストップ状態になる。即ちJMFプレーヤインスタンス及び再生制御エンジンは、DataStarvedイベントをトリガとして、再生状態からストップ状態に切り替わっていることがわかる。
図8では、サブプレイアイテム(パスID=0)に属するサブプレイアイテム#1がカレントサブプレイアイテム情報になっているため、再生は、プレイアイテム#1,SubPlayItem#1まで進行する。プレイアイテム#2では、対応するサブプレイアイテム#2によって参照されている20002.m2tsがUnavailableクリップであるから、カレントサブプレイアイテムがサブプレイアイテム#2になると、DataStarvedイベントを出力して再生をストップせざるをえない。
図9は、再生位置がプレイアイテム#2に到達しようとしている状態の一例を示す図である。本図の例では、現在の再生位置であるプレイアイテム#2に対応する、サブパスID=0のサブプレイアイテム#2はEnable状態のAVクリップを参照している。しかし、サブパスID=1のサブプレイアイテム#2は、まだダウンロードがされていないか、Disable状態のAVクリップを参照している。SPRM(2)が示すのは、サブパスID=0のサブプレイアイテム#2であるため、サブパスID=1のサブプレイアイテム#2のAVクリップがEnable状態になっていなくても、仮想パッケージ制御部16は再生を継続できる。
20002.m2tsが、Unavailableクリップであっても、再生が妨げられないので、再生は、プレイアイテム#3まで進行する。プレイアイテム#4では、対応するサブプレイアイテム#4にて参照されている、10004.m2tsがUnavailableクリップになるから、カレントプレイアイテム情報がプレイアイテム#4になった時点で再生が中断する。
以上のことから次のことがいえる。つまり、プレイアイテム#2の再生区間に対応するすべてのサブパス(ID=0,ID=1)のサブプレイアイテムから参照されるAVクリップをダウンロードしようとすると、ダウンロードの対象となるAVクリップは、10001.m2ts、10002.m2ts、10003.m2ts、10004.m2ts、10005.m2ts、20001.m2ts、20002.m2ts、20003.m2ts、20004.m2ts、20005.m2tsになるので、仮想パッケージ制御部16は、サブパスの数だけAVクリップのダウンロードを待たなければならない。その場合、サブパスの数が増えると、ユーザはプレイリストの再生を行う上で多くの時間を待たなければならなくなる。
一方、上述したような動作では、サブプレイアイテムにおいては、Primaryオーディオストリーム番号SPRM(1)、字幕ストリーム番号SPRM(2)、Secondaryビデオストリーム番号SPRM(21)、Secondaryオーディオストリーム番号SPRM(22)によって指定されるストリームを含むAVクリップがすべてEnable状態であれば、他のサブパスのサブプレイアイテムのAVクリップがEnable状態になるまで待つことなく、再生を続行できるとする。こうすることによって、ユーザは不要なAVクリップのダウンロードを待たずにプレイリストの再生を継続できる。
図10は、字幕切替えがユーザによって要求されたため、現在の再生時点が、サブパス(ID=#0)の10003.m2tsを参照しているサブプレイアイテム#3から、サブパス(ID=#1)の20003.m2tsを参照しているサブプレイアイテム#3に変化した場合を想定した図である。
ユーザ操作などでSPRM(2)を3に変更した場合、再生する字幕はサブパスID=1のサブプレイアイテム#3になる。サブプレイアイテム#3が参照している20003.m2tsは、Unavailableクリップであるから、この切り替えと同時に、DataStarvedイベントが出力されることになる。以上のように、字幕切り替えが要求された場合、切り替え先の字幕ストリームを包含しているAVクリップがダウンロードされていないか、Disable状態であれば、仮想パッケージ制御部16は再生を停止し、DataStarvedイベントをBD-Jアプリケーションに通知する。
図11は、チャプタージャンプがあったため、プレイアイテム#3がカレントプレイアイテムになり、サブプレイアイテム#3がカレントサブプレイアイテム情報になったことを想定した図である。サブプレイアイテム#3によって参照されている20003.m2tsは、Unavailableクリップであるため、DataStarvedイベントを発生し、再生をストップ状態させる。
Unavailableクリップを参照しているサブプレイアイテムがカレントサブプレイアイテム情報になった際、再生がストップ状態するので、ダウンロードにあたっては、次のプレイアイテム及び次のサブプレイアイテムにて参照されているクリップファイルであって、再生対象となるカレントストリームを含むものを優先的にダウンロードすれば、再生を継続することができる。
以上のように、チャプタジャンプなどの飛び込み再生では、Primaryオーディオストリーム番号SPRM(1)、字幕ストリーム番号SPRM(2)、Secondaryビデオストリーム番号SPRM(21)、Secondaryオーディオストリーム番号SPRM(22)のどれかのストリーム番号が、SubPlayItemに対応しており、そのサブプレイアイテムが、まだダウンロードがされていないか、Disable状態であるAVクリップを参照するときに、仮想パッケージ制御部16はDataStarvedイベントをBD-Jアプリケーションに通知することになる。このような仮想パッケージ制御部16の再生動作を定義することにより、同様に最小のAVクリップのダウンロードで再生を継続することができる。
図12は、BD-Jアプリケーションの処理手順を示すフローチャートである。
ステップS1において、ローディングされたBD-ROMに対応するアップデートキットを、ローカルストレージのBUDA(BidingUnit Data Area)ディレクトリにダウンロードする。ステップS2では、アップデートキット内のMissing状態を指定した仮想パッケージ構築要求を発行する。
以降、ステップS3〜ステップS8のループを実行する。このループは、プレイリストを選択してJMFプレーヤインスタンスをクリエイトし(ステップS3)、プレイリスト情報における先頭のプレイアイテムを、カレントプレイアイテムに設定し(ステップS4)、カレントプレイアイテムにおけるClip_Information_file_nameで指定されているAVクリップを選択して(ステップS5)、AVクリップをダウンロードし(ステップS6)、仮想マシン内で、以下の3つのスレッドを仮想マシン内に立てて、これらの処理を並列で実行する(ステップS7)という処理を繰り返すものである。
(1).プレイリスト再生、
(2).プログレッシブ属性AVクリップ制御
(3).DataStarvedイベントリカバリー処理
これらの3つの処理の実行が終了すれば、3つのスレッドを終了させ、ステップS3に戻る。
図13は、AVクリップダウンロードの処理手順を示すフローチャートである。ステップS11において、WWW上のサーバー装置からBUDAディレクトリにAVクリップをダウンロードするようネットワークインターフェイスに指示し、ステップS12において、AVクリップをMissing状態からDisable状態に変更する。ステップS13においてダウンロードがなされるのを待ち、ダウンロードがなされれば、ステップS14においてベリファイを行って、正常であれば、ステップS15においてAVクリップをEnable状態にする。
図14は、プレイリスト再生処理の処理手順を示すフローチャートである。ステップS21においてカレントサブプレイアイテム情報を決定して、ステップS22〜ステップS24のループに移行する。ステップS22〜ステップS24のループは、カレントプレイアイテムのClip_Information_file_nameで指定されているAVクリップはUnavailableクリップであるかどうかを判定し(ステップS22)、Unavailableクリップでなければ、AVクリップを構成するソースパケットのうち、カレントプレイアイテムのIn_TimeからOut_TimeまでのものをBD-ROMから読み出すという処理(ステップS23)、カレントサブプレイアイテム情報のClip_Information_file_nameで指定されているAVクリップがUnavailableクリップであるかどうかを判定して(ステップS24)、Unavailableクリップでなければ、AVクリップを構成するソースパケットのうち、カレントプレイアイテムのIn_TimeからOut_Timeまでのものをローカルストレージから読み出すという処理(ステップS25)、読み出されたソースパケットのうち、カレントプレイアイテムのSTN_tableで再生が許可されているものを、デコーダに出力するという処理(ステップS26)、カレントプレイアイテムが最後のプレイアイテムであるか否かを判定する処理(ステップS27)、カレントプレイアイテムを変更するという処理(ステップS28)を繰り返すものである。このループの終了条件は、プレイリスト内に、次のプレイアイテムがないと判定されることである(ステップS27でYes)。
ステップS29において、カレントプレイアイテムのClip_Information_file_nameで指定されているAVクリップ、又は、カレントサブプレイアイテム情報のClip_Information_file_nameで指定されているAVクリップがUnavailableクリップであるなら、DataStarvedイベントを発生して、再生制御エンジン及びJMFプレーヤインスタンスのストップ状態にさせ、その後、再開を待つ(ステップS30)。
図15は、カレントサブプレイアイテム情報の決定手順を示すフローチャートである。ステップS31において、プロシージャによってカレントプライマリオーディオストリームを決定して、SPRM(1)に設定し、ステップS32においてプロシージャによってカレントセカンダリオーディオストリームを決定して、SPRM(14)に設定する。ステップS33において、カレントセカンダリビデオストリームを決定して、SPRM(21)に設定し、ステップS34において、カレントPGテキスト字幕ストリームを決定して、SPRM(2)に設定する。
そして、カレントプライマリオーディオストリーム、カレントセカンダリオーディオストリーム、カレントプライマリビデオストリーム、カレントPGテキスト字幕ストリームをClip_Information_file_nameで参照している全てのサブプレイアイテムを、カレントサブプレイアイテムに設定する。
図16は、プログレッシブ属性AVクリップ制御の処理手順を示すフローチャートである。
ステップS41において、カレントプレイアイテムの次のプレイアイテム(ネクストプレイアイテム)におけるClip_Information_file_nameで指定されているAVクリップを選択し、ステップS42において、ネクストプレイアイテムをSync_PlayItem_Idに記述しているサブプレイアイテム(ネクストサブプレイアイテム)を特定する。ステップS43において、ネクストサブプレイアイテムのClip_Information_file_nameで指定されているAVクリップであって、PSRにおけるカレントストリーム番号に対応するエレメンタリストリームを含むAVクリップを選択する。
ステップS44では、選択されたAVクリップがローカルストレージに存在するかどうかを判定し、存在しなければ、ステップS45において選択されたAVクリップのダウンロードを行う。ステップS46では、削除すべきAVクリップの選択を行い、削除すべきAVクリップが存在するかどうかを判定する(ステップS47)。存在すれば、AVクリップの削除を行う(ステップS48)。ステップS49では、カレントプレイアイテム、カレントサブプレイアイテム情報が変化するのを待ち、変化すれば、プレイリストの再生が終了したかどうかを判定した上で、ステップS41に移行する(ステップS50)。
図17は、再生停止リカバリー処理の処理手順を示すフローチャートである。ステップS61は、DataStarvedイベントを取得待ちを構成するループであり、DataStarvedイベントがなされれば、ステップS62は、ステップS62は、DataStarvedイベントを取得したAVクリップのダウンロードが完了するのを待つ事象完了待ちループである。ステップS63は、DataStarvedイベントを取得した再生位置からのプレイリスト再生を開始し、ステップS64では、プレイリストの再生が終了したか否かを判定する。
次に、AVクリップにおけるカレントの再生位置と、ダウンロードの対象となるAVクリップとの関係を示す。
図18は、カレントプレイアイテムがプレイアイテム#1であり、カレントサブプレイアイテム情報がサブパス(ID=1)のサブプレイアイテム#1である場合に、ダウンロードを要求すべきクリップファイルを示す。ローカルストレージでは、カレントプレイアイテムを構成する00001.m2ts、及び、カレントサブプレイアイテム情報を構成する20001.m2tsが、Enable状態になっている必要がある。この場合、ネクストプレイアイテムはプレイアイテム#2、ネクストサブプレイアイテムはサブプレイアイテム情報#2になるから、カレントプレイアイテム及びカレントサブプレイアイテム情報の再生中に、ダウンロードを要求すべきクリップファイルは、ネクストプレイアイテムを構成する00002.m2ts、及び、ネクストサブプレイアイテムを構成する20002.m2tsとなる。
図19は、カレントプレイアイテムがプレイアイテム#2であり、カレントサブプレイアイテム情報がサブパス(ID=1)のサブプレイアイテム#2である場合に、ダウンロードを要求すべきクリップファイルを示す。ローカルストレージでは、カレントプレイアイテムを構成する00002.m2ts、及び、カレントサブプレイアイテム情報を構成する20002.m2tsが、Enable状態になっている必要がある。この場合、ネクストプレイアイテムはプレイアイテム#3、ネクストサブプレイアイテムはサブプレイアイテム情報#3になるから、カレントプレイアイテム及びカレントサブプレイアイテム情報の再生中に、ダウンロードを要求すべきクリップファイルは、ネクストプレイアイテムを構成する00003.m2ts、及び、ネクストサブプレイアイテムを構成する20003.m2tsとなる。
図20は、カレントプレイアイテムがプレイアイテム#3であり、カレントサブプレイアイテム情報がサブパス(ID=1)のサブプレイアイテム#3である場合に、ダウンロードを要求すべきクリップファイルを示す。ローカルストレージでは、カレントプレイアイテムを構成する00003.m2ts、及び、カレントサブプレイアイテム情報を構成する20003.m2tsが、Enable状態になっている必要がある。この場合、ネクストプレイアイテムはプレイアイテム#4、ネクストサブプレイアイテムはサブプレイアイテム情報#4になるから、カレントプレイアイテム及びカレントサブプレイアイテム情報の再生中に、ダウンロードを要求すべきクリップファイルは、ネクストプレイアイテムを構成する00004.m2ts、及び、ネクストサブプレイアイテムを構成する20004.m2tsとなる。
サブパスが同期型である場合、カレントサブプレイアイテム情報の再生時間長は、カレントプレイアイテムの再生時間長に等しいため、以上のダウンロードでは、カレントプレイアイテムの再生継続中に、ネクストプレイアイテム及びネクストサブプレイアイテムを構成するクリップファイルのダウンロードを実現すればよい。
よってダウンロードに必要なビットレートBは、以下の計算で示されるものとなる。

ビットレートB=
ネクストプレイアイテムを構成するクリップファイルのデータサイズ+ネクストサブプレイアイテムを構成するクリップファイルのデータサイズ
/カレントプレイアイテムの再生時間
このように、カレントプレイアイテム及びカレントサブプレイアイテム情報の再生中に、ネクストプレイアイテムによって参照されるAVクリップと、ネクストサブプレイアイテムによって参照されるAVクリップとをダウンロードしておけば、必要最低限のAVクリップは、ローカルストレージに揃うので、DataStarvedイベントの発生によって再生進行が妨げられることはない。
以上のように本実施の形態によれば、複数のサブパスから構成されるプレイリストを再生する上で、再生装置に内蔵されるどのストリームが選択されているかを示すプレーヤ変数を参照し、再生に必要でないAVクリップは、ダウンロードが完了していない状態でも再生を継続することができるようになり、効率的なストリーミングライクな再生を実現できる
<備考>
第1実施形態のうち、以下に示す技術的トピックについては、更なる改良や変更実施を加えることができる。第1実施形態に示した通り実施するか、これらの改良・変更を施すか否かは、何れも任意的であり、実施する者の主観によることは留意されたい。
<プレイリスト再生の前処理>
プレイリスト再生の前処理では、SPRM(16)の音声ストリーム用言語コードやSPRM(18)の字幕ストリーム用言語コードに記された言語コードを持つ音声ストリームや字幕ストリームを含むAVクリップを優先的にダウンロードするべきである。このような構成にすることによって、ユーザがプレイリスト再生で利用する可能性が高いAVクリップをダウンロード対象に選べることができる。
<BD-ROMとの併用>
メインパスがディスクに格納されている本編映像を示す場合には、現在の再生位置以降のサブプレイアイテムで利用される、
現在のPrimaryオーディオストリーム番号SPRM(1)、
字幕ストリーム番号SPRM(2)、
Secondaryビデオストリーム番号SPRM(21)、
Secondaryオーディオストリーム番号SPRM(22)が示すストリーム番号に対応するストリームを含むAVクリップ
を逐次、現在の再生位置から近い順にシーケンシャルに決定することが望ましい。
このようにすることで、本編映像を見る間ユーザは、字幕や音声を変えることはまれなので、ユーザに待ち時間を与えることなくプレイリストの再生を実現できる。
<本編再生の中断防止>
本編再生中に、字幕・音声・Secondaryビデオ・Secondaryオーディオのダウンロードが間に合わないため、DataStarvedイベントが発行されて、一時的に本編再生がストップしてしまうという状態を避けるためには、次のような処理をBD-Jアプリケーションに用意しておく。それは、例えば現在のPrimaryオーディオストリーム番号SPRM(1)で、そのストリーム番号に対応するストリームを含むAVクリップがまだEnable状態になっていない場合は、そのAVクリップを含むサブプレイアイテムに到達する前に、BD-JアプリケーションがSPRM(1)を「何もストリームが選択されていない」という特殊値か、すでにEnable状態になっている、もしくはディスク上に存在するAVクリップのストリーム番号を決定するように書き換える(この場合、あらかじめこの状況を想定してダミーのコンテンツをディスク上に用意しておくとよい)。このような構成にすることによりBDーJアプリケーションはDataStarvedイベントを発行させない制御が可能となる。上記の処理は、日本語音声を英語音声に切り替えるようなユーザ操作によるストリーム切り替えに対しても同じことがいえる。ストリーム切り替えSPRM(1)の書き換えが実際に発生する前にBD-Jアプリケーションがそれを禁止することで本編再生の一時的な再生停止を防ぐことができる。
(第2実施形態)
AVクリップ(XXX.M2TS)とクリップ情報ファイル(XXX.CLPI)、システムターゲットデコーダについて説明する。
<AVクリップの内部構成>
AVクリップは、MPEG-2トランスポートストリーム形式のデジタルストリームである。
図21は、AVクリップの構成の一例を示す図である。本図に示すようにAVクリップは、ビデオストリーム、オーディオストリーム、プレゼンテーショングラフィックスストリーム(PG)、インタラクティブグラファイックスストリームのうち、1つ以上を多重化することで得られる。ビデオストリームは映画のPrimaryビデオおよびSecondaryビデオを、オーディオストリームは、映画のPrimaryオーディオ部分とそのPrimaryオーディオとミキシングするSecondaryオーディオを、プレゼンテーショングラフィックスストリームは、映画の字幕をそれぞれ示している。ここでPrimaryビデオとは画面に表示される通常の映像を示し、SecondaryビデオとはPrimaryビデオの中に小さな画面で表示する映像のことである。また、インタラクティブグラフィックスストリームは、画面上にGUI部品を配置することにより作成される対話画面を示している。AVクリップに含まれる各ストリームはPIDによって識別される。例えば、映画の映像に利用するビデオストリームには0x1011が、オーディオストリームには0x1100から0x111Fまでが、プレゼンテーショングラフィックスには0x1200から0x121Fまでが、インタラクティブグラフィックスストリームには0x1400から0x141Fまでが、映画のSecondaryビデオに利用するビデオストリームには0x1B00から0x1B1Fまで、PrimaryオーディオとミキシングするSecondaryオーディオに利用するオーディオストリームには0x1A00から0x1A1Fが、それぞれ割り当てられている。
<AVクリップにおける多重化>
図22は、AVクリップがどのように多重化されるかを模式的に示す図である。まず、ビデオストリーム、及び、オーディオストリームを(第1段目)、それぞれPESパケット列に変換し(第2段目)、TSパケット列に変換する(第3段目)。同じくプレゼンテーショングラフィックスストリームおよびインタラクティブグラフィックス7(第7段目)を、それぞれPESパケット列に変換し(エレメンタリストリーム)、更にTSパケット列に変換する(第5段目)。AVクリップ(第4段目)はこれらのTSパケットを1本のストリームに多重化することで構成される。
図23は、PESパケット列に、ビデオストリームがどのように格納されるかを更に詳しく示している。本図における第1段目はビデオストリームのビデオフレーム列を示す。第2段目は、PESパケット列を示す。第3段目は、これらのPESパケット列を変換することで得られるTSパケット列を示す。本図の矢印yy1,yy2,yy3, yy4に示すように、ビデオストリームにおける複数のVideo Presentation UnitであるIピクチャ、Bピクチャ、Pピクチャは、ピクチャ毎に分割され、PESパケットのペイロードに格納される。各PESパケットはPESヘッダを持ち、PESヘッダには、ピクチャの表示時刻であるPTS(Presentation Time-Stamp)やピクチャの復号時刻であるDTS(Decoding Time-Stamp)が格納される。
<TSパケット列>
図24は、AVクリップに最終的に書き込まれるTSパケットの形式を示している。第1段目は、TSパケット列を示し、第2段目は、ソースパケット列を示す。第3段目は、AVクリップを示す。
第1段目に示すようにTSパケットは、ストリームを識別するPIDなどの情報を持つ4Byteの「TSヘッダ」とデータを格納する184Byteの「TSペイロード」に分かれる固定長のパケットであり、前述で説明したPESパケットは分割されTSペイロードに格納される。
第2段目によると、TSパケットには、4ByteのTP_Extra_Headerが付与されて、192Byteのソースパケットに変換された状態で、AVクリップに書き込まれる。TP_Extra_HeaderにはATS(Arrival_Time_Stamp)などの情報が記載される。ATSは当該TSパケットのPIDフィルタへの転送開始時刻を示す。AVクリップには、第3段目に示すようにソースパケットが並ぶこととなり、AVクリップの先頭からインクリメントする番号はSPN(ソースパケットナンバー)と呼ばれる。
AVクリップに含まれるTSパケットには、映像・音声・字幕などの各ストリーム以外にもPAT(ProgramAssociation Table)、PMT(Program Map Table)、PCR(Program Clock Reference)などがある。PATはAVクリップ中に利用されるPMTのPIDが何であるかを示し、PAT自身のPID配列で登録される。PMTは、AVクリップ中に含まれる映像・音声・字幕などの各ストリームのPIDと各PIDに対応するストリームの属性情報を持ち、またAVクリップに関する各種ディスクリプタを持つ。ディスクリプタにはAVクリップのコピーを許可・不許可を指示するコピーコントロール情報などがある。PCRは、ATSの時間軸であるATC(ArrivalTime Clock)とPTS・DTSの時間軸であるSTC(System Time Clock)の同期を取るために、そのPCRパケットがデコーダに転送されるATSに対応するSTC時間の情報を持つ。
図25はPMTのデータ構造を詳しく説明する図である。PMTの先頭には、そのPMTに含まれるデータの長さなどを記した「PMTヘッダ」が配置される。その後ろには、AVクリップに関する「ディスクリプタ」が配置される。前述したコピーコントロール情報などが、ディスクリプタとして記載される。ディスクリプタの後には、AVクリップに含まれる各ストリームに関する「ストリーム情報#1〜#N」が複数配置される。ストリーム情報は、ストリームの圧縮コーデックなどを識別するためストリームタイプ、ストリームのPID、ストリームの属性情報(フレームレート、アスペクト比など)が記載されたストリームディスクリプタから構成される。ストリームディスクリプタはAVクリップに存在するストリームの数だけ存在する。 以上がAVクリップについての説明である。続いて、クリップ情報ファイルの詳細について説明する。
<クリップ情報ファイル>
図26は、クリップ情報ファイルの一例を示す図である。クリップ情報ファイルは、本図に示すようにAVクリップの管理情報であり、AVクリップと1対1に対応し、ストリーム属性情報とエントリマップから構成される。
図27は、ストリーム属性情報の一例を示す図である。ストリーム属性情報は本図に示すように、AVクリップに含まれる各ストリームについての属性情報が、PID毎に登録される。属性情報はビデオストリーム、オーディオストリーム、プレゼンテーショングラフィックスストリーム、インタラクティブグラフィックスストリーム毎に異なる情報を持つ。
「ビデオストリーム属性情報」は、そのビデオストリームがどのような圧縮コーデックで圧縮されたか、ビデオストリームを構成する個々のピクチャデータの解像度がどれだけであるか、アスペクト比はどれだけであるか、フレームレートはどれだけであるかなどの情報を持つ。
「オーディオストリーム属性情報」は、そのオーディオストリームがどのような圧縮コーデックで圧縮されたか、そのオーディオストリームに含まれるチャンネル数は何であるか、何の言語に対応するか、サンプリング周波数がどれだけであるかなどの情報を持つ。これらの情報は、再生機が再生する前のデコーダの初期化などに利用される。
図28は、エントリマップの一例を示す図である。
エントリマップは、本図に示すように、AVクリップ内に含まれるビデオストリームの各フレーム内符号化画像(以下Iピクチャと呼ぶ)の表示時刻を示すPTSと各Iピクチャが開始するAVクリップのSPNが記載されたテーブル情報である。
ここではテーブルの1つの行で示される対となるPTSとSPNの情報をエントリポイントと呼ぶことにする。また先頭を0として各エントリポイント毎にインクリメントした値をエントリポイントID(以下EP_ID)と呼ぶことにする。このエントリマップを利用することにより、再生機はビデオストリームの時間軸上の任意の地点に対応するAVクリップのファイル位置を特定することが出来るようになる。例えば、早送り・巻戻しの特殊再生の際には、エントリマップに登録されるIピクチャを特定し選択して再生することによりAVクリップを解析することなく効率的に処理を行うことが出来る。また、エントリマップはAVクリップ内に多重化される各ビデオストリーム毎に作られ、PIDで管理される。
以上がAVクリップ、クリップ情報ファイルについての説明である。続いて、システムターゲットデコーダ13の詳細について説明する。
図29は、システムターゲットデコーダ13の内部構成の一例を示す図である。本図に示すように、システムターゲットデコーダ13は、ソースデパケットタイザ32a,bと、PIDフィルタ33a,bと、Primaryビデオデコーダ34と、Primaryビデオプレーン35と、Secondaryビデオデコーダ36と、Secondaryビデオプレーン37と、PGデコーダ38と、PGプレーン39と、IGデコーダ40と、IGプレーン41と、Primaryオーディオデコーダ42と、Secondaryオーディオデコーダ43と、音声ミキサー44と、BD-Jプロセッサ45と、BD-Jプレーン46と、加算部47とから構成される。
ソースデパケットタイザ32a,bは、システムターゲットデコーダ13に転送されるソースパケットを解釈し、TSパケットを取り出しPIDフィルタに送出する。この送出にあたって、各ソースパケットのATSに応じてデコーダへの入力時刻を調整する。具体的には、ATCカウンタが生成するATCの値と、ソースパケットのATS値とが同一になった瞬間に、AVクリップの記録レートにしたがって、そのTSパケットだけをPIDフィルタに転送する。
PIDフィルタ33a,bは、ソースデパケッタイザから出力されたTSパケットのうち、TSパケットのPIDが、再生に必要とされるPIDに一致するものを、PIDにしたがって、Primaryビデオデコーダ、Secondaryビデオデコーダ、IGデコーダ、PGデコーダ、音声デコーダ、Secondaryオーディオデコーダに転送する。例えば、BD-ROMの場合には、TSパケットに含まれるPIDが0x1011である場合はPrimaryビデオデコーダに、PIDが0x1B00から0x1B1Fである場合はSecondaryビデオデコーダ2505に、PIDが0x1100から0x111Fである場合はPrimaryオーディオデコーダに、PIDが0x1A00から0x1A1Fである場合はSecondaryオーディオデコーダに、PIDが0x1200から0x121Fである場合はPGデコーダ2507に、PIDが0x1400から0x141Fである場合はIGデコーダ2506に転送される。
図28の通りソースデパケッタイザとPIDフィルタはそれぞれ二つもち、一つはリードバッファ11から転送されるAVクリップ、一つはリードバッファ12から転送されるAVクリップを処理する。サブパスタイプが同期型の場合は、メインパスから参照されるAVクリップとサブパスから参照されるAVクリップは同期を取りながら再生する。サブパスタイプが非同期型の場合は、メインパスから参照されるAVクリップとサブパスから参照されるAVクリップは非同期で再生する。
Primaryビデオデコーダ34は、緩衝バッファを有し、バッファにデータを蓄えながら、TSヘッダ、PESヘッダなどの情報を取り除いて、符号化状態にあるピクチャ(Iピクチャ、Bピクチャ、Pピクチャ)を取り出し、ビデオストリームの個々のフレーム画像を所定の復号時刻(DTS)ごとにデコードすることにより複数フレーム画像を作成し、表示時刻(PTS)のタイミングでPrimaryビデオプレーン35に書き込む。AVクリップに多重化されるビデオストリームの圧縮符号化形式にはMPEG2、MPEG4AVC、VC1などがあるため、ストリームの属性に応じて、圧縮映像の復号化方式を切り替える。
Primaryビデオプレーン35は、Primaryビデオデコーダ34によって得られたフレーム画像が格納される。
Secondaryビデオデコーダ36は、Primaryビデオデコーダ35と同様の構成を持ち、入力されるSecondaryビデオストリームのデコードを行い、表示時刻(PTS)のタイミングでピクチャをSecondaryビデオプレーンに書き出す。
Secondaryビデオプレーン37は、Secondaryビデオデコーダ36によって得られたフレーム画像が格納される。
PGデコーダ38は、ソースパケタイザから入力されるTSパケットからプレゼンテーショングラフィックスストリームを抽出してデコードし、非圧縮のグラフィックスデータを表示時刻(PTS)のタイミングでPGプレーンに書き出す。
PGプレーン39は、非圧縮のグラフィクスデータが格納される。
IGデコーダ40は、ソースパケタイザから入力されるTSパケットからインタラクティブグラフィックスストリームを抽出してデコードし、非圧縮のグラフィックスデータを表示時刻(PTS)のタイミングでIGプレーンに書き出す。
IGプレーン41には、非圧縮のグラフィクスデータが格納される。
Primaryオーディオデコーダ42は、緩衝バッファを有し、バッファにデータを蓄えながら、TSヘッダ、PESヘッダなどの情報を取り除いて、音声ストリームデコード処理を行い、非圧縮のLPCM状態のオーディオデータを得て再生時刻(PTS)のタイミングで音声ミキサーに出力する。AVクリップに多重化されるオーディオストリームの圧縮符号化形式にはAC3、DTSなどがあるため、ストリームの属性に応じて、圧縮音声の復号化方式を切り替える。
Secondaryオーディオデコーダ43は、Primaryオーディオデコーダと同様の構成を持ち、入力されるSecondaryオーディオストリームのデコードを行い、表示時刻のタイミングで非圧縮のLPCMの状態のオーディオデータを音声ミキサーに出力する。AVクリップに多重化されるオーディオストリームの圧縮符号化形式にはDolbyDigitalPlus、DTS-HD LBRなどがあるため、ストリームの属性に応じて、圧縮音声の復号化方式を切り替える。
音声ミキサー44は、Primaryオーディオデコーダから出力される非圧縮音声データとSecondaryオーディオデコーダから出力される非圧縮音声データとをミキシング(音の重ね合わせ)をしてスピーカなどに出力する。
BD-Jプロセッサ45は、BD-J実行部から転送されるPNG形式又はJPEG形式のグラフィクスデータをデコードして、BD-Jアプリケーションから指定される表示時刻にしたがって、BD-Jプレーンに出力する。
BD-Jプレーン46には、BD-Jプロセッサ45によってデコードされたグラフィクスデータが格納される。
加算部47は、Primaryビデオプレーン、Secondaryビデオプレーン、IGプレーン、PGプレーン、BD-Jプレーンに書かれたデータを瞬時に重畳し、TVなどの画面に表示する。
以上のように本実施形態によれば、BD-ROMプレーヤモデルに準拠した内部構成を実現しすることにより、プレイリストの再生を実現することができる。
(第3実施形態)
本実施形態では、プレイリスト情報の詳細なデータ構造と、カレントセカンダリビデオストリームの決定の仕方とを述べる。
図30は、プレイリスト情報のデータ構造を示す図であり、本図に示すようにプレイリスト情報は、MainPathを定義するMainPath情報(MainPath())と、Subpathを定義するサブパス情報(Subpath())とを含む。
<プレイリスト情報の説明その1.サブパス情報>
MainPathが、プライマリビデオたるMainClipに定義される再生経路であるのに対し、Subpathは、MainPathと同期すべきSubClipに対して定義される再生経路である。
図31は、サブパス情報の内部構成をクローズアップして示す図である。本図における矢印hc0に示すように各Subpathは、サブパスの類型を示すSubPath_typeと、1つ以上のSubPlayItem情報(・・・SubPlayItem()・・・)とを含む。
図中の引き出し線hc1は、SubPlayItem情報の構成をクローズアップしている。
SubPlayItemは、メインパスから分離した、1以上のエレメンタリストリーム再生パスを定義し、当該パスをメインパスとどのように同期するかという類型を表現するのに使われる。SubPlayItemで使用されるのが、ThePrimary audio / PG / IG / Secondary audio / Secondary video のサブパスであるなら、これらのSubPlayItemは、PlayList中のPlayItemを使っているメインパスと同期することになる。このエレメンタリストリーム再生のためのサブパスによって使われるエレメンタリストリームは、MainPath側のPlayItemによって使われるMainClipから分離したClip、つまりSubClipに多重化される。
以降、SubPlayItemの内部構成について説明する。SubPlayItem情報は、図中の矢印hc1に示すように『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』からなる。
『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で指定されたPlayItemの再生時間軸上において、SubPlayItem_In_timeで指定されたSubPlayItemの始点が、どこに存在するかを45KHzの時間精度で示す。あるSubPlayItemがセカンダリビデオストリーム上の再生区間を定義していて、そのSubPlayItemのsync_start_PTS_of_PlayItemが、PlayItem時間軸における一時点を示している場合、そのSubPlayItemは、“同期ピクチャインピクチャ”を実現することになる。
また、このSync_Start_Pts_of_PlayItemには、不定値(0xFFF)を設定することもできる。この不定値は、Sync_PlayItem_Idにて指定されたPlayItemの時間軸において、ユーザによりロック操作がなされた時点を、Sync_PlayItem_Idにて指定されたPlayItemとの同期時点に定める旨を示す。sync_start_PTS_of_PlayItemが不定値に設定されており、尚且つSubPlayItemが、セカンダリビデオストリームの再生を意図している場合、かかるSubPlayItemは、“非同期ピクチャインピクチャ”を実現することになる。
以上が、SubPath情報についての説明である。
<STN_table>
プレイリスト情報において特徴的であるのは、STN_Tableである。
STN_tableは、PlayItem情報のClip_Information_file_nameで指定されているAVクリップに多重化された複数エレメンタリストリーム、SubPlayItem情報のClip_Information_file_nameで指定されているOut_of_MUXストリームのうち、再生可能なものを示すテーブルである。具体的にいうとSTN_tableは、MainClipに多重化されている複数In_MUXストリーム、SubClipに多重化されているOut_of_MUXストリームのそれぞれについてのStream_entryを、Stream_attributeと対応付けることで構成される。
図32は、STN_tableの全体構成の一例を示す図である。図33は、図32に示したSTN_tableの全体構成のうち、セカンダリビデオストリームについてのstream_entryの一例を示す図である。本図に示すようにSTN_tableは、n個のSecondary_video_stream_entry「Secondary_video_stream_entry[1]〜Secondary_video_stream_entry[n]」と、セカンダリビデオストリームの個数「number_of_Secondary_video_stream_entries(=n)」とから構成される。
引き出し線hs1は、Secondary_video_stream_entry[1]の内部構成をクローズアップして示している。つまり、Secondary_video_stream_entry[1]〜Secondary_video_stream_entry[n]は、同一のクラス構造体から生成した複数のインスタンスであり、その内部構成は、どれも、この引き出し線hs1に示すものと同じになる。そして、Secondary_video_stream_entryにおける括弧書き[]の中の数値は、Secondary_video_stream_entryが、STN_tableにおいて何番目に位置するかという、Secondary_video_stream_entryの順位を示す。
引き出し線hs1に示すように、Secondary_video_stream_entry[1]は、SecondaryVideo Stream Number=1に対応するPIDを再生装置に提示する「Stream_entry」と、Secondary Video StreamNumber=1に対応するビデオ属性を示す「Stream_attribute」と、econdary Video Stream Number=1の設定時にて、再生可能となるセカンダリオーディオストリームを示す「Comb_info_Secondary_Video_Secondary_Audio」と、SecondaryVideo Stream Number=1の設定時にて、再生可能となるPGストリーム又はテキスト字幕ストリームを示す「Comb_info_Secondary_Video_PiP_PG_textST()」とからなる。
引き出し線hs2に示すように、Secondary_video_stream_entry[2]は、SecondaryVideo Stream Number=2に対応するPIDを再生装置に提示する「Stream_entry」と、Secondary Video StreamNumber=2に対応するビデオ属性を示す「Stream_attribute」と、Secondary Video Stream Number=2の設定時にて、再生可能となるセカンダリオーディオストリームを示す「Comb_info_Secondary_Video_Secondary_Audio」と、SecondaryVideo Stream Number=2の設定時にて、再生可能となるPGストリーム又はテキスト字幕ストリームを示す「Comb_info_Secondary_Video_PiP_PG_textST()」とからなる。
引出線hs3についても同様である。以上のように、STN_tableにおいてx番目に位置するsecondary_video_stream_entry[x]は、セカンダリビデオストリーム番号がxに設定された際、そのxに対応するセカンダリビデオストリームのPIDは何か、そのセカンダリビデオストリームのビデオ属性はどのようなものか、どのようなセカンダリオーディオストリーム、PGTextSTストリームと組合せ可能であるかを再生装置に指示する。
字幕を表すストリームには、これまでの実施形態で述べたプレゼンテーショングラフィクスストリームの他に、テキストコードによって表現されたテキスト字幕ストリームがある。ここでのPGテキスト字幕ストリームとは、プレゼンテーショングラフィクスストリームと、テキスト字幕ストリームとを併せた呼び名である。また、ピクチャインピクチャに使用されるPGテキスト字幕ストリームをPiP_PG_テキスト字幕ストリームと呼ぶ。
図34(a)は、プライマリビデオストリームにおけるStream_entry及びStream_attributの一例を示す図である。Stream_entryは、プライマリビデオストリームを構成するPESパケットの、パケット識別子を示す『ref_to_stream_PID_of_mainClip』を含む。
Stream_attributeは、ビデオストリームの表示方式を示す『Video_format』と、ビデオストリームの表示周波数を示す『frame_rate』を含む。
図34(b)は、セカンダリビデオストリームにおけるStream_entryを示す。本図に示すように、SecondaryビデオストリームのStream_entryは、Secondaryビデオストリームを参照しているSubPath情報を示す『ref_to_Sub_Path_id』、Secondaryビデオストリームを構成するPESパケットの、パケット識別子を示す『ref_to_stream_PID_of_mainClip』を含む。
以上が、本実施形態における記録媒体の詳細についての説明である。
以降、PSR1、PSR14、PSR31について説明する。PSRにおける語長は、32ビットである。PSRの一語(32ビット)を構成する各ビットデータのビット位置を、以降、b0〜b31と呼ぶことにする。この呼び方では、PSRの最上位ビットはb31、最下位ビットはb0と呼ばれることになる。
<PSR14>
図35(a)は、PSR14のビットアサインの一例を示す図である。
本図によると、32ビット長のPSR14におけるb8〜b15は、セカンダリビデオストリームのストリーム番号であり、カレントPlayItemのSTN_tableにentryが記述されている複数Secondaryビデオストリームのうち、1つを特定する。PSR14の設定値が変化すれば、再生装置はこの変化後のSecondaryビデオストリームを再生する。PSR14におけるセカンダリビデオストリームのストリーム番号は初期値として0xFFが設定されており、再生装置により1〜32の値に設定されうる。この0xFFは、不定値であり、Secondaryビデオストリームが存在しない旨、又は、Secondaryビデオストリームが選択されてない旨を示す。1〜32の設定値は、Secondaryビデオストリームのストリーム番号として解釈される。
PSR14のb31は、disp_v_flagであり、セカンダリビデオを再生する能力が再生装置に存在するか(1b:Presentationof Secondary Video is enable)、セカンダリビデオを再生する能力が再生装置に存在しないか(0b:Presentation ofSecondary Video is disable)を示す。
<PSR29>
図35(b)は、PSR29のビットアサインの一例を示す図である。
PSR29のb0は、HD_Secondary_video_Capabilityであり、HDTV対応のセカンダリビデオを再生する能力が再生装置に存在するか(1b:HDSecondary Video is capable)、HDTV対応のカンダリビデオを再生する能力が再生装置に存在しないか(0b:HD SecondaryVideo is incapable)を示す。
PSR29のb1は、50&25Hz_video_Capabilityであり、50&25Hzビデオ、つまりPAL方式のビデオを再生する能力が再生装置に存在するか(1b:50&25HzVideo is capable)、50&25Hzビデオを再生する能力が再生装置に存在しないか(0b:50&25Hz Video isincapable)を示す。
以上が、PSRセット23についての説明である。
図36は、再生制御エンジンの内部構成の一例を示す図である。本図に示すように、再生制御エンジン部は、Procedure実行部48、PID変換部49を含む。
Procedure実行部48は、あるPlayItem情報から別のPlayItem情報への切り換わりが生じた場合、又はストリーム番号を切り換える旨の操作がユーザによりなされた場合、所定のストリーム選択プロシージャを実行して、PSR14に新たなセカンダリビデオストリームのストリーム番号を書き込む。再生装置は、PSR14に書き込まれたストリーム番号に応じて、セカンダリビデオストリームを再生するので、かかるPSR14の設定を通じて、セカンダリビデオストリームが選択されることになる。
PlayItem情報の切り換わり時に、ストリーム選択プロシージャを実行するのは、STN_TableはPlayItem情報毎に存在するので、あるPlayItem情報においては再生可能であったセカンダリビデオストリームが、別のPlayItem情報において再生不可能になることが有り得るからである。
PID変換部49は、PSRセット23に格納されているストリーム番号を、STN_Tableに基づき、PID参照値に変換して、変換結果たるPID参照値をPIDFilter33a、PID Filter33bに指示する。
図37は、カレントセカンダリビデオストリームを選択するためのストリーム選択プロシージャの処理手順を示すフローチャートである。
ステップS71では、PSR14に設定された番号のセカンダリビデオストリームが、以下の条件(A)、条件(B)を満たすか否かをチェックする。、
条件(A):Video format,frame_rateと、HDSecondary Video Capabilityや50&25Hz Video Capabilityとの比較では、PSR14に格納された番号により定められるセカンダリビデオストリームの再生能力が再生装置に存在している。
条件(B):セカンダリビデオストリームにおけるSubPath_Typeは、“=6(非同期ピクチャインピクチャ)”である
ここで、Video format,frame_rateは、STN_tableにおいて、セカンダリビデオストリームについてのstream_attributeに記載されている。また、HDSecondary Video Capabilityや50&25Hz Video Capabilityの有無は、PSR29のb0,b1に示されている。これらSTN_tableによる設定と、PSR29のb1の値とを照合することで、条件(A)を具備しているかどうかの判断がなされる。
ステップS71の実行後、ステップS72、ステップS73を実行する。
ステップS72は、カレントプレイアイテムのSTN_tableにおけるセカンダリビデオストリームのSTN_tableにおけるStream_entryの個数が0であるか否かを判定する判定ステップである。ここでセカンダリビデオストリームのSTN_tableにおけるStream_entryの個数が0であることは、再生許可されているセカンダリビデオストリームが1つも存在しないことを意味する。もし0である場合、PSR14のセカンダリビデオストリーム番号を維持する(ステップS73)。カレントプレイアイテムにおいて、再生許可されているセカンダリビデオストリームが存在しない以上、PSR14の現状値を維持すべきだからである。
ステップS74は、ステップS73が0でないと判定された場合、実行される判定ステップであり、PSR14に格納された番号XがSTN_tableにおけるstream_entryの総数以下であり、且つ、条件(A)を満たすかどうかを判定する。このステップS74がYesと判定されたなら、カレントプレイアイテムについて最適なカレントセカンダリビデオストリームを選択する(ステップS75)。
もしステップS74において、Noと判定されたなら、ステップS76の判定ステップを実行する。この判定ステップは、条件(B)を満たすかどうかを判定するものである。条件(B)を満たせば、ステップS78におけるPSR14に、OxFEを設定する。このOxFEは、PSR14におけるセカンダリビデオストリーム番号はValidだが、セカンダリビデオストリームは非選択であることを意味する値である。非同期ピクチャインピクチャの実行時において、かかる値をPSR14に設定しておけば、ユーザ操作があった際、カレントストリームの決定手順が実行されることになる。しかし、仮に、PSR14のストリーム番号がInvalidであれば、たとえユーザ操作がなされたとしても、カレントストリームの決定手順は実行されず、いつまでたっても、セカンダリビデオストリームが再生されないという事態に陥る。これを避けるため、非同期ピクチャインピクチャの実行時においては、PSR14にOxFEを設定することにしている。
条件(B)は満たさないが、有効なセカンダリビデオストリーム番号が既にPSR14に存在するなら、これを変化させない(ステップS77)。
以上が、セカンダリビデオストリームにおけるストリーム選択プロシージャについての説明である。
図38は、カレントプレイアイテムについて最適なカレントセカンダリビデオストリームを選択する処理手順を示すフローチャートである。
ステップS81〜ステップS83では、以下の条件(a)、条件(b)が満たされているかのチェックを、STN_tableにおける全てのstream_entryに記述されているストリームに対して実行する。
条件(a):セカンダリビデオストリームについてのVideo format、frame_rateと、HDSecondary Video Capabilityや50&25Hz Video Capabilityとの比較では、PSR14に格納された番号により定められるセカンダリビデオストリームの再生能力が再生装置に存在している。
条件(b):セカンダリビデオストリームにおけるSubPath_Typeは、“=6(非同期ピクチャインピクチャ)”である
以上のようなチェックが、STN_tableにおいて再生許可されている全てのセカンダリビデオストリームについてなされれば、ステップS84の判定ステップを実行する。
ステップS84は、条件(a)を満たすセカンダリビデオストリームが1つも存在しないか否かの判定であり、もしそうであれば、0xFFFをセカンダリビデオストリームについてのストリーム番号としてPSR14に設定する(ステップS85)。
もしセカンダリビデオストリームが1つでも存在するなら、ステップS84がYesになり、ステップS86が実行されることになる。ステップS86は、条件(a)を満たすセカンダリビデオストリームであって、STN_tableにおいて先頭順位になっているものは、条件(b)を満たすかどうかを判定する。もし条件(b)を満たすなら、ステップS87において0xFEとなるセカンダリビデオストリーム番号をPSRに設定する。
条件(b)を満たさないなら、条件(a)を満たすセカンダリビデオストリームのうち、対応するStream_EntryがSTN_tableにおいて先頭順位に位置するものを選択して、選択したセカンダリビデオストリームのストリーム番号を、PSR14に設定する(ステップS88)。
カレントセカンダリビデオストリームにおける再生区間がSubPlayItemによって規定されていれば、カレントセカンダリビデオストリームにおける再生区間を規定しているサブプレイアイテムをカレントサブプレイアイテムとして特定されることになる。
これらの手順を経て、カレントプレイアイテムにとって最適なカレントセカンダリビデオストリームがPSR14に格納されることになる。以上が、最適なカレントセカンダリビデオストリーム番号を選択するための選択手順である。
以上のように本実施形態によれば、BD-ROMやローカルストレージに記録されているセカンダリビデオストリームの中に、再生不能なものが存在したとしても、次のストリームを選ぶという手順を実行することで、「自身が再生できるものをピクチャインピクチャに用いる」という選択の余地がうまれる。従って、セカンダリビデオの総サイズ自体にバラツキがあり、再生装置におけるセカンダリビデオの再生能力の有無にバラツキががあったとしても、何等かのセカンダリビデオを再生装置に表示させ、ピクチャインピクチャを実行させることができる。
そうして選択されたセカンダリビデオに対応するセカンダリビデオストリームを包含しているAVクリップがサブプレイアイテムによって参照されている場合、かかるAVクリップがUnavailableクリップであると、再生が中断することになる。よって、カレントセカンダリビデオストリームを包含しているAVクリップであって、サブプレイアイテム情報から参照されているもののダウンロードを急げば、再生が中断することはないのでスムーズな再生進行を確保することができる。
(第4実施形態)
再生されるべきプレイリストが、立体視映像用のプレイリストである場合の改良である。
立体視を実現する手法としては、ホログラフィ技術を用いる方法と、視差画像を用いる方式とがある。
まず、1つ目のホログラフィ技術の特徴としては、人間が通常物体を認識するのと全く同じように物体を立体として再現することができるが、動画生成に関しては、技術的な理論は確立しているが、ホログラフィ用の動画をリアルタイムで生成する膨大な演算量を伴うコンピューター、及び1mmの間に数千本の線を引けるだけの解像度を持ったディスプレイデバイスが必要であるが、現在の技術での実現は非常に難しく、商用として実用化されている例はほとんどない。
2つ目の視差画像を用いた方式である。この方式のメリットは、高々右目用と左目用の2つの視点の映像を準備するだけで立体視を実現できることにあり、技術的には、左右のそれぞれの目に対応した絵を、いかにして対応した目にだけ見せることができるかの観点から、継時分離方式を始めとするいくつかの技術が実用化されている。
この立体視を実現するため、第1実施形態に説明した、再生装置、テレビを含むホームシアターシステムには、継時型ステレオゴーグルが存在する。
図39は、継時型ステレオゴーグルの一例を示す図である。本図(a)は、立体視を実現することができるホームシアターシステムを示す。本図のホームシアターシステムには、テレビ104の付属品として継時型ステレオゴーグル105が存在する。
同図(b)は、継時型ステレオゴーグル105をユーザが装着した状態を示す。継時型ステレオゴーグル105は、液晶シャッターを備え、継時分離方式による視差画像をユーザに視聴させる。視差画像とは、右目に入る映像と、左目に入る映像とから構成される一組の映像であり、それぞれの目に対応したピクチャーだけがユーザの目に入るようにして立体視を行わせる。
継時分離方式とは、左目用映像及び右目用映像を時間軸方向で交互に表示させ、目の残像反応により左右のシーンを脳内で重ね合わさせて、立体映像として認識させる方法である。本図(c)は、平面視を実現する場合の継時型ゴーグル105の状態を示す。平面視を実現する場合、両眼の液晶シャッターが透光状態になる。同図(d)は、左目用映像の表示時を示す。ディスプレイ上に左目用の映像が表示されている瞬間において、前述の継時型ステレオゴーグル105は、左目に対応する液晶シャッターを透過にし、右目に対応する液晶シャッターは遮光する。同図(e)は、右目用映像の表示時を示す。ディスプレイ上に右目用の映像が表示されている瞬間において、先ほどと逆に右目に対応する液晶シャッターを透過にし、左目に対応する液晶シャッターを遮光する。
この方式では、左右の映像を時間軸方向で交互に表示させるために、例えば、通常の2次元の映画であれば1秒に24枚の映像を表示させるのに対して、左右の映像合わせて1秒に48枚の映像を表示させる必要がある。従って、この方式では、一画面の書き換えが比較的早いディスプレイにおいて好適であるが、1秒間に所定の回数書き換え可能なディスプレイであれば限定されない。
また、別の方法としては、先ほどの継時型ステレオゴーグル105では左右のピクチャーを時間軸方向で交互に出力していたのに対して、一画面中の縦方向に左目用のピクチャーと右目用のピクチャーを同時に交互に並べ、ディスプレイ表面にレンチキュラーレンズと呼ばれる蒲鉾上のレンズを通して、左目用のピクチャーを構成する画素は左目だけに結像し、右目用のピクチャーを構成する画素は右目だけに結像するようにすることで、左右の目に視差のあるピクチャーを見せ、立体視を実現させる方式がある。なお、レンチキュラーレンズだけでなく、同様の機能を持たせたデバイス、例えば液晶素子を用いてもよいし、また左目用の画素には縦偏光のフィルター、右目用の画素には横偏光のフィルターを設置し、視聴者は、左目用には縦偏光、右目用には横偏光のフィルターを設置した偏光メガネを用いてディスプレイを見ることによって立体視が可能となる。
この視差画像を用いた立体視は、既に遊園地の遊具などで一般的に使用されており、技術的にも確立されているため、家庭における実用化に最も近いものと言える。なお、視差画像を用いた立体視のための方法はこの他にも、2色分離方式などさまざまな技術が提案されており、本実施形態においては、継時分離方式あるいは偏光メガネ方式を例として用いて説明するが、視差画像を用いる限りこれら2方式に限定するものではない。
本実施形態では、立体視に使う視差画像を情報記録媒体に格納する方法を説明する。ここでは、左目用の画面が格納された映像を「左目映像」、右目用の画面が格納された映像を「右目映像」、両方の映像のことを「立体視映像」と呼ぶことにする。
<プライマリビデオストリーム、セカンダリビデオストリームの改良>
本実施形態におけるプライマリビデオストリームは、平面視再生装置では平面視映像として、平面視/立体視映像再生装置で立体視映像を再生する際の左目映像として再生されるビデオストリームである。このビデオストリームを平面視/左目視聴用ビデオストリームと呼ぶことにする。
本実施形態におけるセカンダリビデオストリームは、右目視聴用ビデオストリームが格納されている。右目視聴用ビデオストリームは、平面視/立体視再生装置で立体視映像を再生する際の右目用の映像として再生されるビデオストリームである。右目視聴用ビデオストリームは、プライマリビデオストリームのPIDと異なる0x1012が割り当てられている。続いて、平面視/左目視聴用ビデオストリームと、右目視聴用ビデオストリームの構造について説明する。
ただし、左右の視点からは同じ被写体を見るため映像の相関が大きいため、視点間のピクチャ間予測符号化を行うことで、右目用ビデオストリームは平面視/左目視聴用ビデオストリームに比べてデータ量を大幅に削減できる。また、平面視/左目視聴用ビデオストリームのフレームレートは、平面視/左目視聴用ビデオストリーム単体で平面視再生装置が再生したときのフレームレートであり、この値がGOPヘッダに格納される。
図40は、立体視のためのプライマリビデオストリーム、セカンダリビデオストリームの内部構成の一例を示す図である。
本図の第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に従いデコードされる。第1段目は、左目画像を示す。そうしてデコードされたピクチャデータP1,P2,B3,B4,P5,B6,B7,P8をPTSに従い、P1,B3,B4,P2,B6,B7,P5の順序で再生することで、左目画像が再生されることになる。
第5段目は、継時型ゴーグル105の状態をどのように変化させるかを示す。この第5段目に示すように、左目画像の視聴時は、右目のシャッターを閉じ、右目画像の視聴時は、左目のシャッターを閉じていることがわかる。
これらのプライマリビデオストリーム、セカンダリビデオストリームは、時間方向の冗長性を利用したピクチャ間予測符号化に加えて、視点間の冗長性を利用したピクチャ間予測符号化によって圧縮されている。右目視聴用ビデオストリームのピクチャは、平面視/左目視聴用ビデオストリームの同じ表示時刻のピクチャを参照して圧縮されている。
例えば、右目視聴用ビデオストリームの先頭Pピクチャは、平面視/左目視聴用ビデオストリームのIピクチャを参照し、右目視聴用ビデオストリームのBピクチャは、平面視/左目視聴用ビデオストリームのBrピクチャを参照し、右目視聴用ビデオストリームの二つ目のPピクチャは、平面視/左目視聴用ビデオストリームのPピクチャを参照している。
<ビデオアクセスユニット>
平面視/左目視聴用ビデオストリームと右目視聴用ビデオストリームの各ビデオアクセスユニットに割り当てる表示時刻(PTS)、デコード時刻(DTS)の関係は、図40の時間軸に示す通りである。平面視/左目視聴用ビデオストリームにおける各ピクチャデータのDTSと、右目視聴用ビデオストリームにおける各ピクチャデータのDTSは時間軸上で交互になるように設定され、平面視/左目視聴用ビデオストリームにおける各ピクチャデータのPTSと、右目視聴用ビデオストリームのにおける各ピクチャデータのPTSも時間軸上で交互になるように設定される。これは、ピクチャ間予測符合化の参照関係にある平面視/左目視聴用と右目視聴用のピクチャのデコード順、表示順を交互に設定することで実現できる。
また、平面視/左目視聴用のフレームと次の右目視聴用のフレーム間のDTSの時間間隔は、平面視/左目視聴用の1フレームの表示時間間隔の半分になるように設定する。同様に、平面視/左目視聴用のフレームと次の右目視聴用のフレーム間のPTSの時間間隔は、平面視/左目視聴用の1フレームの表示間隔の半分になるように設定する。
<立体視表示ディレイ>
平面視/左目視聴用ビデオストリームのピクチャと同じ表示時刻の右目視聴用ビデオストリームのピクチャのPTSの間隔の差分を立体視表示ディレイとする。立体視表示ディレイは、平面視/左目視聴用ビデオストリームの1フレームの表示間隔の半分の値となる。
<立体視プレイリスト>
立体視プレイリストには、右目視聴用を格納するためのサブパスが用意されている。サブパスは右目視聴用を格納する複数のAVクリップを参照しており、メインパスと時間軸上で同期するように設定される。この構造により、平面視プレイリストと立体視プレイリストで、平面視/左目視聴用が格納されたAVクリップを共有することができ、立体視プレイリストでは左目映像と右目視聴用を時間軸上で同期させて関連付けることができる。
立体視プレイリストと、平面視プレイリストとを区別するため、プレイリスト情報には立体視フラグが存在する。立体視フラグは、プレイリスト情報内のストリーム番号テーブルにおいてセカンダリビデオストリームの再生が許可されていて、セカンダリビデオストリームを再生することによる立体視が可能であるか否かを示す。
以上が記録媒体の改良である。続いて、再生装置の詳細について説明する。本実施形態における再生装置は、Primaryビデオプレーン35が、2D/左目映像プレーン61と、右目視聴用プレーン62とに置き換えられている。そして、q13がz41のような内部構成を有する。
図41は、システムターゲットデコーダ13の内部構成の一例を示す図である。本図の内部構成のうち、Secondaryビデオデコーダ、IGデコーダ、PGデコーダ、Primaryオーディオデコーダ、Secondaryオーディオデコーダ、音声ミキサー、イメージプロセッサの構成は第1実施形態で説明した平面視用の再生装置と同じであるため省略する。
ソースデパケットタイザ32aは、リードバッファ11に蓄えられたソースパケットを解釈し、TSパケットを取り出し、PIDフィルタ33aに送出する。
ソースデパケットタイザ32bは、リードバッファ11に蓄えられたソースパケットを解釈し、TSパケットを取り出し、PIDフィルタ34bに送出する。この送出にあたって、各ソースパケットのATSに応じてデコーダへの入力時刻を調整する。具体的には、ATCカウンタが生成するATCの値と、ソースパケットのATS値とが同一になった瞬間に、AVクリップの記録レートにしたがって、そのTSパケットだけをPIDフィルタに転送する。
PIDフィルタ33aは、ソースデパケッタイザ32aから出力されたTSパケットのうち、TSパケットのPIDが、再生に必要とされるPIDに一致するものを、PIDにしたがって、3DビデオデコーダのTB31、Secondaryビデオデコーダ、IGデコーダ、PGデコーダ、音声デコーダ、Secondaryオーディオデコーダに転送する。また、PIDフィルタ34は、ソースデパケッタイザ32aから出力されたTSパケットのうち、TSパケットのPIDが、再生に必要とされるPIDに一致するものを、PIDにしたがって、3DビデオデコーダのTB51に転送する。
3Dビデオデコーダ50は、TB51、M52、EB53、TB58、M59、デコーダ54、DPB55、バッファスイッチ56、ピクチャスイッチ57、EB60から構成される。
TB51は、2D/左目映像ビデオストリームを含むTSパケットがPIDフィルタ33から出力された際、TSパケットのまま一旦蓄積されるバッファである。
MB52は、TB51からEB53にビデオストリームを出力するにあたって、一旦PESパケットを蓄積しておくためのバッファである。TB51からMB52にデータが転送される際に、TSパケットのTSヘッダは取り除かれる。
EB53は、符号化状態にあるビデオアクセスユニットが格納されるバッファである。MB52からEB53にデータが転送される際にPESヘッダが取り除かれる。
TB58は、右目視聴用ビデオストリームを含むTSパケットがPIDフィルタ34から出力された際、TSパケットのまま一旦蓄積されるバッファである。
MB59は、TB58からEB60にビデオストリームを出力するにあたって、一旦PESパケットを蓄積しておくためのバッファである。TB58からMB59にデータが転送される際に、TSパケットのTSヘッダは取り除かれる。
EB60は、符号化状態にあるビデオアクセスユニットが格納されるバッファである。MB59からEB60にデータが転送される際にPESヘッダが取り除かれる。
デコーダ54は、ビデオエレメンタリストリームの個々のビデオアクセスユニットを所定の復号時刻(DTS)でデコードすることによりフレーム/フィールド画像を作成する。AVクリップに多重化されるビデオストリームの圧縮符号化形式にはMPEG2、MPEG4AVC、VC1などがあるため、ストリームの属性に応じて、デコーダ54のデコード方法は切り替えられる。デコーダ54は、デコードされたフレーム/フィルド画像をDPB55に転送し、表示時刻(PTS)のタイミングで対応するフレーム/フィールド画像をピクチャスイッチに転送する。
DPB55は、復号されたフレーム/フィールド画像を一時的に保持しておくバッファである。デコーダ54が、ピクチャ間予測符号化されたPピクチャやBピクチャなどのビデオアクセスユニットをデコードする際に、既にデコードされたピクチャを参照するために利用する。
バッファスイッチ56は、EBとEBに蓄えられたピクチャをビデオアクセスユニットに割り当てられた復号時刻(DTS)のタイミングでデコーダ54に転送する。また、デコーダ54がビデオアクセスユニットをデコードする際に取得したデコードスイッチ情報を使って、次のアクセスユニットをEB、EBのどちらから引き抜くかを決定しても良い。また、2D/左目映像ビデオストリームと右目視聴用ビデオストリームのDTSは時間軸上でピクチャ単位で交互に来るように設定されているため、例えばDTSを無視して前倒しでデコードするようなデコーダ54の場合には、ピクチャ単位でビデオアクセスユニットをデコーダ54に転送しても良い。
ピクチャスイッチ57は、デコーダ54から転送されたデコード済みのフレーム/フィールド画像が、2D/左目映像のストリームの場合は2D/左目映像プレーン61に、右目視聴用のストリームの場合は右目視聴用プレーン62に瞬時に書き出す。
以上がシステムターゲットデコーダについての説明である。続いて、本実施形態における仮想パッケージ制御部16の改良について説明する。
仮想パッケージ制御部16は、立体視フラグがオフに設定されていれば、何れのセカンダリビデオストリームを包含しているAVクリップが、ダウンロードされていなかっても、DataStarvedイベントを出力しない。よって、セカンダリビデオストリームがダウンロードされていなくでも、JMFプレーヤインスタンス及び再生制御エンジンは、再生を停止しない。
逆に立体視フラグがオンに設定されていれば、カレントセカンダリビデオストリームがサブプレイアイテムに対応しており、そのサブプレイアイテムが未だダウンロードされていないAVクリップやDisable状態であるAVクリップを参照している場合、仮想パッケージ制御部16はDataStarvedイベントを再生制御エンジン及びJMFプレーヤインスタンスに通知する。これにより再生が停止する。
また、継時型ゴーグル105が取り外されていて、再生装置101の設定が、“立体視オフ”である場合も、セカンダリビデオストリームを格納したAVクリップのダウンロードを待たずに、再生を進行する。
以上のように本実施形態によれば、立体視がオフに設定されている場合、セカンダリビデオストリームを含むAVクリップのダウンロードを待つことなく、プレイアイテムの再生を進行させることができる。
(第5実施形態)
本実施形態では、カレントプライマリオーディオストリーム、カレントセカンダリオーディオストリームを選択するための詳細なデータ構造と、再生装置における構成とについて説明する。
図42は、Primary_audio_stream_entry、Secondary_audio_stream_entryの内部構成と、Comb_info_Secondary_video_Secondary_audioの内部構成との一例を示す図である。図中の引出線ha1,ha2は、Primary_audio_stream_entry、Secondary_audio_stream_entryの内部構成をクローズアップしている。これらの内部構成は、何れも共通であり、stream_entryと、stream_attributeとからなる。
引出線ha3は、Stream_entryの内部構成をクローズアップして示している。この引出線に示すように、プライマリオーディオストリーム及びセカンダリオーディオストリームのStream_entryは、セカンダリオーディオストリームを参照しているSubPath情報を示す『ref_to_Sub_Path_id』、プライマリオーディオストリーム及びセカンダリオーディオストリームが多重化されているSubClipを示す『ref_to_Sub_Clip_entry_id』、プライマリオーディオストリーム及びセカンダリオーディオストリームを構成するPESパケットのPIDに対する参照値を示す『ref_to_stream_PID_of_Sub_Clip』を含む。
引出線ha4は、stream_attributeの内部構成をクローズアップして示している。この引出線に示すように、プライマリオーディオストリーム,セカンダリオーディオストリームにおけるStream_attributeは、オーディオストリームの符号化方式を示す『stream_coding_type』と、対応するオーディオストリームのチャネル構成を示す『audio_presentation_type』と、対応するオーディオストリームのサンプリング周波数を示す対応する『Sampling_frequency』と、オーディオストリームの言語属性を示す『audio_languagecode』からなる。
このセカンダリオーディオストリームに対応する情報として、セカンダリビデオストリーム用のstream_entryには、引出線ha5に示すように、Comb_info_Secondary_video_Secondary_audioが存在する。
引出線ha6は、Comb_info_Secondary_video_Secondary_audioの内部構成をクローズアップして示している。Comb_info_Secondary_video_Secondary_audioは、各Secondaryビデオストリームごとに組合せ可能なセカンダリオーディオストリームの総数を示す「number_of_Secondary_audio_stream_ref_entries」と、セカンダリビデオストリームの再生時に組合せることができるセカンダリオーディオストリームのストリーム番号を示す「Secondary_audio_stream_id_ref[0]〜[n]」とからなる。
以上のように、STN_tableには、プライマリビデオストリームの音声となるプライマリオーディオストリームのstream_entry、セカンダリビデオストリームの音声となるセカンダリオーディオストリームのstream_entryのそれぞれがあり、また、セカンダリビデオストリームのstream_entryには、セカンダリビデオストリームとの組合せを意図したセカンダリオーディオストリームが、セカンダリビデオストリーム毎に記述されている(Comb_info_Secondary_video_Secondary_audio)ことがわかる。
以上がオーディオストリーム再生のための記録媒体の特徴である。次に、オーディオストリーム再生のための再生装置の特徴について説明する。
音声再生のための構成として、再生装置には、カレントプライマリオーディオストリームのストリーム番号と、カレントセカンダリオーディオストリームのストリーム番号とについて説明する。
<PSR1>
図43(a)は、PSR1のビットアサインの一例を示す図である。
本図によると、32ビット長のPSR1の下位8ビット(b0〜b7)は、プライマリオーディオストリーム番号であり、カレントPlayItemのSTN_tableにentryが記述されている複数プライマリオーディオストリームのうち、1つを特定する。PSR1の設定値が変化すれば、再生装置はこの変化後のプライマリオーディオストリームを再生する。PSR1は初期値として0xFFが設定されており、再生装置により1〜32の値に設定されうる。この0xFFは、不定値であり、プライマリオーディオストリームが存在しない旨、又は、プライマリオーディオストリームが選択されてない旨を示す。1〜32の設定値は、プライマリオーディオストリームのストリーム番号として解釈される。
<PSR14>
図43(b)は、PSR14のビットアサインの一例を示す図である。
本図によると、32ビット長のPSR14における下位8ビット(b0〜b7)は、セカンダリオーディオストリーム番号であり、カレントPlayItemのSTN_tableにentryが記述されている複数セカンダリオーディオストリームのうち、1つを特定する。PSR14の設定値が変化すれば、再生装置はこの変化後のセカンダリオーディオストリームを再生する。PSR14は初期値として0xFFが設定されており、再生装置により1〜32の値に設定されうる。この0xFFは、不定値であり、セカンダリオーディオストリームが存在しない旨、又は、セカンダリオーディオストリームが選択されてない旨を示す。1〜32の設定値は、セカンダリオーディオストリームのストリーム番号として解釈される。
図44は、カレントプレイアイテム変化時におけるカレントプライマリオーディオストリーム決定手順を示すフローチャートである。ステップS96、ステップS97は、STN_tableに示される全てのPrimaryオーディオストリームについてステップS98を繰り返すループ処理を形成している。このループ処理において、処理対象となる個々のPrimaryオーディオストリームを、Primaryオーディオストリームiという。ステップS98は、Primaryオーディオストリームiが3つの条件条件(a)(b)(c)を満たすかのチェックを行う。
条件(a)とは、Primaryオーディオストリームiを再生する能力が再生装置に存在することであり、これを満たすか否かの判定は、PSR15と、Primaryオーディオストリームiのstream_coding_typeとの比較でなされる。
条件(b)とは、Primaryオーディオストリームiの言語属性がデッキ情報と同じであることである。デッキ情報とは、再生装置の言語設定を示す情報であり、条件(b)を満たすか否かの判定は、STN_tableに記述されたPrimaryオーディオストリームiのAudio_language_codeがPSR16の設定値と同じであるか否かの比較でなされる。
条件(c)とは、Primaryオーディオストリームiのチャネル属性がサラウンドであり、これを再生する能力が再生装置に存在することである。これを満たすか否かの判定は、PSR15と,AudioStreamのaudio_presentation_type、stream_coding_typeとの比較でなされる。
これらの複数の条件のうち、「Primaryオーディオストリームiがどれとどれを満たすか」、また「何個の条件を満たすか」という、満たすべき条件のパターンにより、本フローチャートは、Primaryオーディオストリームに優先順位を付与する。
以上の処理をPrimaryオーディオストリームの全てについて繰り返されれば、ステップS99〜ステップS103の処理を行う。ステップS99は、(a)を満たすPrimaryオーディオストリームが存在しないかどうかの判定である。もし、存在しなければ、不定値(0xFF)をPSR1に設定する(ステップS104)。
ステップS100は、条件(a)(b)(c)の全てを満たすPrimaryオーディオストリームが存在するかどうかの判定である。もし存在すれば、条件(a)(b)(c)を満たすPrimaryオーディオストリームの番号をPSR1に設定する(ステップS105)。
ここで問題になるのが、条件(a)(b)(c)を満たすPrimaryオーディオストリームが複数存在する場合である。条件(a)〜条件(c)が全てみたされるので、同じ優先順位になってしまうので優劣を決めることができない。この場合ステップS105では、STN_tableにおけるentryの順序に応じて、各ストリームにおける順位が定める。即ち、コーディック−言語属性−チャネル属性が同じPrimaryオーディオストリームについては、STN_tableにおけるentryの順位を参照することで、最も優先順位が高いPrimaryオーディオストリームが選ばれることになる。
STN_tableにおける記述順序を変えることで、オーサリング担当者は再生時においてどのストリームを優先的に再生させ、どのストリームを後回しにするかという選択制御をオーサリング時に規定することができる。
ステップS101は、条件(a)(b)(c)の全てを満たすPrimaryオーディオストリームが存在しない場合、条件(a)(b)を満たすPrimaryオーディオストリームが存在するかどうかの判定である。もし存在すれば、条件(a)(b)を満たすPrimaryオーディオストリームのうち、STN_tableにおけるエントリー順位が最も高いものをPSR1に設定する(ステップS106)。
ステップS102は、条件(a)(b)(c)の全てを満たすPrimaryオーディオストリーム、又は、条件(a)(b)を満たすPrimaryオーディオストリームが存在しない場合に、条件(a)(c)を満たすPrimaryオーディオストリームが存在するかどうかの判定である。もし存在すれば、条件(a)(c)を満たすPrimaryオーディオストリームのうち、STN_tableにおけるエントリー順位が最も高いものをPSR1に設定する(ステップS107)。
ステップS103は、条件(a)(b)(c)の全て、条件(a)(b)、条件(a)(c)を満たすPrimaryオーディオストリームが存在しない場合に、(a)を満たすPrimaryオーディオストリームが存在するかどうかの判定である。もし存在すれば、(a)を満たすPrimaryオーディオストリームのうち、STN_tableにおけるエントリー順位が最も高いものをPSR1に設定する(ステップS108)。
カレントプライマリオーディオストリームにおける再生区間がSubPlayItemによって規定されていれば、カレントプライマリオーディオストリームにおける再生区間を規定しているサブプレイアイテムがカレントサブプレイアイテムとして特定されることになる。
以上がカレントプライマリオーディオストリームを選択するためのストリーム選択プロシージャである。
続いて、セカンダリオーディオストリームを選択するためのストリーム選択プロシージャの処理手順について説明する。
図45は、セカンダリオーディオストリームのストリーム選択プロシージャの処理手順を示すフローチャートである。ステップS111において、PSR14からセカンダリオーディオストリーム番号を取得し、ステップS112では、取得した番号のセカンダリオーディオストリームが条件(A)を満たすか否かを判定する。
条件(A):Comb_info_secondary_video_Secondary_audioに規定されたセカンダリオーディオストリーム番号と、PSR14から取得したセカンダリオーディオストリーム番号との比較では、どの番号のセカンダリオーディオストリームと、カレントセカンダリビデオストリームとの組合せが許可されている。
この判定を経た後、ステップS113を実行する。ステップS113では、カレントプレイアイテムにおけるセカンダリオーディオストリームのSTN_tableにおけるStream_entryの個数が0であるか否かを判定するものである。もし、STN_tableにおけるStream_entryの個数が0であるなら、PSR14のセカンダリオーディオストリーム番号を維持する(ステップS116)。もしSTN_tableにおけるStream_entryの個数が0でなければ、ステップS114の判定を行う。
ステップS114では、セカンダリオーディオストリーム番号が、カレントプレイアイテムにおけるSTN_tableのstream_entry数以下であり、尚且つ、条件(A)を満たすかどうかを判定する。もし満たすなら、有効なセカンダリオーディオストリーム番号が既にPSR14に存在すると考えられるので、これを変化させない(ステップS117)。満たさないなら、カレントプレイアイテムについて最適なカレントセカンダリオーディオストリームを選択する(ステップS115)。
以上が、セカンダリオーディオストリームにおけるストリーム選択プロシージャについての説明である。
図46は、カレントプレイアイテムについて最適なカレントセカンダリオーディオストリームを選択する手順を示すフローチャートである。
ステップS121〜ステップS123は、任意のストリームについて、以下の条件が満たされているかのチェックを、STN_tableにおける全てのstream_entryに記述されているストリームに対して実行する。
条件(a):Comb_info_secondary_video_Secondary_audioに規定されたセカンダリオーディオストリーム番号と、セカンダリオーディオストリームiの番号との比較では、セカンダリオーディオストリームiと、カレントセカンダリビデオストリームとの組合せが許可されている。
条件(b):カレントプライマリオーディオストリームのaudio_language_codeと、セカンダリオーディオストリームのaudio_language_codeとが一致している。
以上のチェックを、STN_tableにおいて再生許可されている全てのセカンダリオーディオストリームに対して実行すれば、ステップS124を実行する。
ステップS124は、条件(a)を満たすセカンダリオーディオストリームが存在するか否かを判定する判定ステップである。存在しないなら0xFFとなるセカンダリオーディオストリーム番号をPSR14に設定する(ステップS125)。
条件(a)を満たすセカンダリオーディオストリームが存在するなら、ステップS126の判定を実行する。これは、条件(a)及び条件(b)を満たすセカンダリオーディオストリームが、少なくとも1つ存在するか否かを判定するというものである。存在するなら、条件(a)及び条件(b)を満たすストリームのうち、対応するStream_EntryがSTN_tableにおいて最初に位置するものを選択して、選択したセカンダリオーディオストリームのセカンダリオーディオストリーム番号を、PSR14に設定する(ステップS127)。
条件(a)及び条件(b)を満たすセカンダリオーディオストリームが存在しないなら、ステップS128の判定を実行する。これは、条件(a)を満たすセカンダリオーディオトリームが存在するか否かを判定するものである。もし存在するなら、条件(a)を満たすセカンダリオーディオストリームのうち、対応するStream_EntryがSTN_tableにおいて先頭順位に位置するものを選択して、選択したセカンダリオーディオストリームのセカンダリオーディオストリーム番号を、PSR14に設定する(ステップS129)。
カレントセカンダリオーディオストリームにおける再生区間がSubPlayItemによって規定されていれば、カレントセカンダリオーディオストリームにおける再生区間を規定しているサブプレイアイテムがカレントサブプレイアイテムとして特定されることになる。
以上のように本実施形態によれば、プライマリビデオストリーム用のプライマリオーディオストリーム、セカンダリビデオストリーム用のセカンダリオーディオストリームとしてそれぞれどれの再生を許可するかを、STN_tableに規定しておき、このSTN_tableに存在するstream_entryからプライマリオーディオストリーム、セカンダリオーディオストリームをそれぞれ1つ選んで、これらのミキシング出力を行うので、ピクチャインピクチャの実行時において、本編の音声に、映画監督によるコメンタリが加わった合成音声を聴くことができる。
そうして選択されたプライマリオーディオストリーム、セカンダリオーディオストリームを包含しているAVクリップがサブプレイアイテムによって参照されている場合、かかるAVクリップがUnavailableクリップであると、再生が中断することになる。よって、カレントプライマリオーディオストリーム、カレントセカンダリオーディオストリームを包含しているAVクリップであって、サブプレイアイテム情報から参照されているもののダウンロードを急げば、再生が中断することはないのでスムーズな再生進行を確保することができる。
(第5実施形態)

本実施形態では、カレント字幕ストリームを選択するためのデータ構造と、再生装置における改良とを説明する。
始めに、STN_tableにおける字幕のためのstream_entryについて説明する。プライマリオーディオストリーム、セカンダリオーディオストリームはそれぞれ、プライマリビデオストリーム、セカンダリビデオストリームに割り当てられたが、字幕には、プレゼンテーショングラフィクスストリーム、テキスト字幕ストリームという区別はあるものの、プライマリビデオストリーム用、セカンダリビデオストリーム用という明確な区別は存在しない。
以降、PGtestSTストリームについてのstream_entryについて説明する。図47は、STN_tableのうち、PGtestSTストリームに特に関連あるものを抜き出して描いた図である。この図によると、STN_tableのうち、字幕表示に特に関連するのは、「number_of_PG_textST_streams_entries[1]〜[n]」、「number_of_PiP_PG_textST_stream_entries_plus」、「PGtestST_stream_entry」、「Secondary_video_Stream_entry」内の「Comb_info_Secondary_video_PiP_PG_textST」であることがわかる。
「number_of_PG_textST_streams_entries」は、ピクチャインピクチャを実行していない場合に、選択の対象となるPGtestSTストリームの個数を示す
「number_of_PiP_PG_textST_stream_entries_plus」は、ピクチャインピクチャアプリケーションのため、STN_tableに定義されているnumber_of_PG_textST_streams_entriesに追加すべきプレゼンテーショングラフィクスストリーム及びテキスト字幕ストリームの個数を示す。このnumber_of_PG_textST_streams_entriesと、number_of_PiP_PG_textST_stream_entries_plusとの和は、255以下になる。
ここでnumber_of_PG_textST_streams_entriesがn1である場合、1からn1までのストリーム番号の範囲が、PGテキスト字幕ストリームの範囲となるが、number_of_PiP_PG_textST_stream_entries_plusがn2であれば、ピクチャインピクチャの実行時において、1からn1+n2までのストリーム番号の範囲が、PGテキスト字幕ストリームの範囲となる。つまり、number_of_PiP_PG_textST_stream_entries_plusがSTN_tableに記述されていれば、PGTextSTストリームのストリーム番号の範囲は、number_of_PiP_PG_textST_stream_entries_plusに記述された個数だけ広がることになる。
非ピクチャインピクチャ時にあっては、PGtestSTストリームについてのstream_entryのうち、1からn1までのものが選択の対象になり、ピクチャインピクチャ時にあっては、PGtestSTストリームについてのstream_entryのうち、1からn1+n2までのものが選択の対象になる。予め断っておくが、ピクチャインピクチャが行われる場合であっても、プライマリビデオの字幕、セカンダリビデオの字幕がそれぞれ再生される訳ではない。ピクチャインピクチャで表示されるのは、プライマリビデオ用の字幕、セカンダリビデオ用の字幕のどちらか1つである。これは、プライマリビデオ用、セカンダリビデオ用の字幕を別々にBD-ROMに記録しておくとすると、再生装置には、グラフィクス用のデコーダが2つ必要になり、ハードウェアコストの増大をもたらすこと(i)、セカンダリビデオ用に字幕を縮小して表示したとしても、見づらくなるだけであること(ii)、という2つの理由による。
引出線hp1は、PG_testST_Stream_entryの内部構成をクローズアップして示している。この引出線に示すように、PG_testST_Stream_entryは、Stream_entry,Stream_Attributeを有していて、Stream_entryの中に、再生が許可されているPGtestSTストリームのPIDが存在する。
引出線hp2は、「Secondary_video_Stream_entry[1]」の内部構成をクローズアップして示している。この内部構成におけるComb_info_Secondary_video_PiP_PG_textSTには、PGtestSTストリームのうち、セカンダリビデオストリームとの組合せが許可されているものを一意に示している。
引出線hp3は、Comb_info_Secondary_video_PiP_PG_textSTの内部構成を示す。Comb_info_Secondary_video_PiP_PG_textSTは、各Secondaryビデオストリームごとに組合せ可能なPiP_PG_テキスト字幕ストリームの総数を示す「number_of_PiP_PG_textST_stream_ref_entries」と、再生時に組合せることができるPiP_PG_テキスト字幕ストリームのストリーム番号を示す「PiP_PG_textST_stream_id_ref[0]〜[n]」とからなる。
以上が、本実施形態における記録媒体の改良である。続いて、本実施形態における再生装置についての改良について説明する。字幕再生のための構成として、再生装置には、ピクチャインピクチャ実行時におけるカレントPGTextSTストリームのストリーム番号と、ピクチャインピクチャ非実行時におけるカレントPGTextSTストリームのストリーム番号とが、それぞれ別々にPSRセット23に格納されている。
図48(a)は、カレントPGtestSTストリームのストリーム番号が取りうる数値範囲の一例を示す図である。非ピクチャインピクチャ実行時において、カレントPGtestSTストリームのストリーム番号は、STN_tableに記載されたPiP_PG_text_ST_stream_numberをn1とすると、本図の上段に示すように、1からn1までの値をとる。
一方、ピクチャインピクチャ実行時におけるカレントPGtestSTストリームの番号は、PiP_PG_TextSTストリーム番号と呼ばれ、STN_tableに記載されたPG_text_ST_stream_numberをn1、STN_tableに記載されたnumber_of_PiP_PG_textST_stream_entries_plusをn2とすると、本図の下段に示すように、PiP_PG_TextSTストリーム番号は1からn1+n2までの値をとる。
図48(b)は、PSR2のビットアサインの一例を示す図である。以降、PSR2における各ビットの意味合いについて述べる。disp_s_flag
PSR2のb31は、disp_s_flagであり、その1ビットの設定値は以下のように解釈される。
0b: 「PG textST ストリーム」と「PiP PG textST ストリーム」の両方を表示することは不可となることを示す。
1b: 「PG textST ストリーム」と「PiP PG textST ストリーム」の両方を表示することは可能となることを示す
disp_s_flagがオフになっている場合、PGテキスト字幕ストリーム選択のためのプロシージャを実行しない。PSR2におけるdisp_s_flagがオフになっていれば、カレントのPGテキスト字幕ストリームが存在しないため、図34のステップS34、S35では、PGテキスト字幕ストリームのみを包含しているAVクリップは、ダウンロードの選択対象から除外する。PGテキスト字幕ストリームのみを包含しているAVクリップのダウンロードを省くことができるので、字幕がオフになっていれば、PGテキスト字幕ストリームのみを包含しているAVクリップが未ダウンロードであっても、再生を進行してゆくことができる。これにより、あるプレイアイテムから次のプレイアイテムの切り替えを高速に実現することができる。PiP_PG_textST_valid_flag
PSR2のb30は、PiP_PG_textST_valid_flagであり、その1ビットの設定値は以下のように解釈される。
0b: カレントプレイアイテム 表示中に Secondary ビデオストリームが表示されている場合、PSR2で定義された PG TextST Stream Numberが用いられる。
1b: カレントプレイアイテム 表示中に Secondary ビデオストリームが表示されている場合、PSR2で定義された PiP PG TextST Stream Numberが用いられる。
カレントプレイアイテム 表示中に Secondary ビデオストリームが表示されていないとき、PiP_PG_textST_valid_flagは BD-ROM再生装置の表示に影響しない。この場合、PSR2 で定義された PG TextST Stream Numberが用いられる。
PG TextST Stream Number:
PSR2のb0〜b11は、PG TextST Stream Numberであり、その12ビットの設定値は以下のように解釈される。
カレントプレイアイテム 表示中に Secondary ビデオストリームが表示されていない場合(Secondaryビデオストリームは表示されていない場合とは、PSR14 の disp_v_flag は 0b に設定されている状態をいう)、PSR2 における PGTextST Stream Numberの値は、カレントプレイアイテム の STN_tableにおける PG TextST ストリーム項目の中から、PG ストリームとTextST ストリームのどちらが表示されるかを特定するために用いられる。
PiP PG TextST Stream Number:
PSR2のb16〜b27は、PiP PG TextST Stream Numberであり、その12ビットの設定値は以下のように解釈される。
カレントプレイアイテム 表示中に Secondary ビデオストリームが表示されていて、PSR2の PiP_PG_textST_valid_flag が 1b に設定されている場合(ここでセカンダリビデオストリームの表示時とは、PSR14 の disp_v_flagは 1b に設定され、カレントプレイアイテム 表示中に PSR14 によって決定された Secondary ビデオストリームが表示される場合をいう。)、PSR2における PiP PG TextST Stream Numberの値は、カレントプレイアイテム の STN_table における PG TextST ストリーム項目の中から、PGストリームと TextST ストリームのどちらが表示されるかを特定するために用いられる。
図49は、カレントプレイアイテム変化時におけるカレントPGtestSTストリームの決定手順を示すフローチャートである。
ここで非ピクチャインピクチャのためのPGtestSTストリームのストリーム番号及びその取り扱いは、ピクチャインピクチャのためのPGtestSTストリームの選択を簡略にしたものに過ぎないから説明を省略する。本実施形態では、ピクチャインピクチャのためのPGtestSTストリームの番号について説明する。
ステップS151においてPSR2からカレントPiP_PG_TextSTストリーム番号を取得し、ステップS152において、カレントPiP_PG_TextSTストリーム番号は、プレゼンテーショングラフィクスストリームについてのものかテキスト字幕ストリームについてのものかを判定する。ステップS153は、カレントPiP_PG_TextSTストリーム番号に対応するプレゼンテーショングラフィクスストリームが、条件(A)、条件(B)、条件(C)を満たすか否かをチェックする。
ここで条件(A),条件(B)、条件(C)は、以下のように規定される。
条件(A):カレントPiP_PG_TextSTストリーム番号から特定されるプレゼンテーショングラフィクスストリームをデコードする能力が再生装置に存在する。
条件(B):特定された言語を再生する能力が再生装置に存在する。
条件(C):PSR14におけるセカンダリビデオストリーム番号と、comb_info_Secondary_video_PiP_textST()によるPGテキスト字幕ストリーム番号との比較では、カレントセカンダリビデオストリームと、カレントPiP_PG_TextSTストリーム番号から特定されるPGテキスト字幕ストリームとの組合せが許可されている。
一方ステップS154では、カレントPiP_PG_TextSTストリーム番号に対応するテキスト字幕ストリームが、条件(A)、条件(B)、条件(C)を満たすか否かをチェックするものである。
条件(A):カレントPiP_PG_TextSTストリーム番号のテキスト字幕ストリームのキャラクターコードをビットマップに展開する能力が再生装置に存在すること。かかる再生能力は、PSRセット23におけるPSR30に示されている。
条件(B):カレントPiP_PG_TextSTストリーム番号のテキスト字幕ストリームの言語属性をサポートする能力が再生装置に存在すること。かかるサポート能力は、PSRセット23におけるPSR48〜61に示されている。
条件(C):PSR14におけるセカンダリビデオストリーム番号と、comb_info_Secondary_video_PiP_textST()によるPGテキスト字幕ストリーム番号との比較では、PSR14に格納されているカレントセカンダリビデオストリームと、カレントPiP_PG_TextSTストリーム番号から特定されるPGテキスト字幕ストリームとの組合せが許可されていること。
ここで、ある言語の字幕がテキスト字幕ストリームで表現されている場合、その言語のテキスト字幕ストリームを、“デコードすることができる”といえるには、その言語における文字コードを、ビットマップに展開する能力と、その言語の特性をサポートするサポート能力とが再生装置側に存在する必要がある。
英語、日本語、アラビア語を例にとってみると、英語の字幕表示は、“横書き”,“カーニング”,“合字・抱き字”という機能がサポートされて初めて、言語特性がサポートされていると判断することができる。
日本語の字幕表示は、“横書き”,“縦書き”,“行末禁則”,“ルビ”という機能がサポートされて初めて、言語特性がサポートされていると判断することができる。
アラビア語の字幕表示は、“右から左の描画”、“合字・抱き字”という機能がサポートされて初めて、言語特性がサポートされていると判断することができる。
ある言語のテキスト字幕ストリームをビットマップに展開することができ、その言語の特性をサポートすることができる場合、上記条件(A)、条件(B)は、満たされているということができる。その言語のテキスト字幕ストリームをビットマップに展開することができるが、その言語の特性をサポートすることができない場合、上記条件(B)は満たされず、条件(A)のみが、満たされているということができる。


以上の判定を経た後、ステップS155を実行する。ステップS155は、再生装置は、条件(Z)を満たすか否かを判定するものである
ここで条件(Z)とは、アンサポート言語の字幕を、再生することをユーザが意図していることであり、かかる意図は、PSRセット23におけるPSR30に示されている。
その後、ステップS156の判定ステップを実行する。これは、カレントプレイアイテムのSTN_tableにおけるnumber_of_PG_textST_streams_entriesと、number_of_PiP_PG_textST_stream_entries_plusとの和が=0であるか否かを判定するものである。STN_tableに再生が許可されているPGTextSTストリームが存在しない場合、PSR2におけるPGTextSTストリームの番号を維持する(ステップS157)。カレントSTN_tableにおいて再生が許可されているPGTextSTストリームが少なくとも1つ存在する場合、ステップS158を実行する。これは、カレントPiP_PG_TextSTストリーム番号の有効性を問うステップであり、カレントPiP_PG_TextSTストリーム番号がSTN_tableにおけるstream_entryの総数以下であり、且つ、条件(A)、条件(B)、条件(C)を満たすかどうかを判定する。
もし満たすなら、有効なPiP_PG_TextSTストリーム番号が既にPSR2に存在するとして、これを変化させない(ステップS159)。
もしステップS158で満たさないと判定されたなら、ステップS160の判定を実行する。これは、カレントPiP_PG_TextSTストリーム番号がSTN_tableにおけるstream_entryの総数以下であり、且つ、条件(A)を満たすかどうかを判定するものである。もし満たすなら、PSR2には、アンサポート言語のテキスト字幕のPiP_PG_TextSTストリーム番号が設定されているが、ユーザはアンサポート言語の再生を意図しているので、PSR2を変化させない(ステップS161)。ステップS160において満たさないと判定されたなら、カレントプレイアイテムについて最適なカレントPGテキスト字幕ストリームを選択する(ステップS162)。
以上が、PGTextSTストリームにおけるストリーム選択プロシージャについての説明である。
図50は、カレントプレイアイテムについて最適なカレントPGTextSTストリームを選択する処理手順を示すフローチャートである。
ステップS1 90において、全てのPGTextSTストリームについて、条件(a)〜条件(d)を満たすかどうかをチェックする。
チェック対象となるプレゼンテーショングラフィクスストリームを、プレゼンテーショングラフィクスストリームiとした場合、条件(a)〜条件(d)は、以下のように規定される。
条件(a):プレゼンテーショングラフィクスストリームiをデコードする能力が再生装置に存在する。
条件(b):プレゼンテーショングラフィクスストリームiから特定された言語を再生する能力が再生装置に存在する。
条件(c):PSR14におけるセカンダリビデオストリーム番号と、comb_info_Secondary_video_PiP_textST()によるPGテキスト字幕ストリーム番号との比較では、カレントセカンダリビデオストリームと、プレゼンテーショングラフィクスストリームiとの組合せが許可されている。
条件(d):プレゼンテーショングラフィクスストリームiのPG_language_codeが、デッキ情報と一致している。ここで、デッキ情報とは、再生装置内のデッキ情報における言語設定を示すものであり、具体的には、PSRセット23におけるPSR17を示す。
チェック対象となるテキスト字幕ストリームを、テキスト字幕ストリームiとした場合、条件(a)〜条件(d)は、以下のように規定される。
条件(a):テキスト字幕ストリームiのキャラクターコードをビットマップに展開する能力が再生装置に存在すること。
条件(b):テキスト字幕ストリームiの言語属性をサポートする能力が再生装置に存在すること。
条件(c):PSR14におけるセカンダリビデオストリーム番号と、comb_info_Secondary_video_PiP_textST()によるPGテキスト字幕ストリームiの番号との比較では、カレントセカンダリビデオストリームと、PiP_PG_TextSTストリーム番号から特定されるテキスト字幕ストリームiとの組合せが許可されていること。
条件(d):テキスト字幕ストリームiのtextST_language_codeが、再生装置内のデッキ情報における言語設定と一致していること。
以上のチェックを経た後、ステップS191では、再生装置が、前のフローチャートで述べた条件(Z)(:アンサポート言語の再生)を満たすかどうかを判定する。みたさない場合、ステップS192において、条件(a)〜条件(d)を満たすPGTextSTストリームが存在するかを判定する。存在するなら、条件(a)〜条件(d)を満たすPGTextSTストリームのうち、対応するStream_EntryがSTN_tableにおいて先頭順位に位置するものを選択して、選択したPiP_PG_TextSTストリーム番号を、PSR2に設定する(ステップS193)。
存在しないなら、ステップS194において、より緩和された条件を満たすPGTextSTストリームが存在するか否かを判定する。緩和された条件とは、条件(a)、条件(b)、条件(c)の3つを満たすことであり、これを満たすPGTextSTストリームが存在するかが、ステップS194で判定される。存在するなら、条件(a)、条件(b)、条件(c)を満たすPiPPGtestSTストリームのうち、対応するStream_EntryがSTN_tableにおいて先頭順位に位置するものを選択して、選択したPiP_PG_TextSTストリーム番号を、PSR2に設定する(ステップS196)。
存在しないなら、0xFFFであるPiP_PG_TextSTストリーム番号をPSR2に設定する(ステップS195)。ステップS191において、条件(Z)を満たすと判定されたなら、ステップS197において、別の緩和された条件を満たすPGTextSTストリームが存在するかを判定する。別の緩和された条件とは、条件(a)、条件(c)、条件(d)を満たすものであり、ステップS198では、これらを満たすPGTextSTストリームが存在するかか否かが判定される。
もし存在するなら、条件(a)、条件(c)、条件(d)を満たすPiP_PGTextSTストリームのうち、対応するStream_EntryがSTN_tableの最初に位置するものを選択して、選択したもののPiP_PG_TextSTストリーム番号を、PSR2に設定する(ステップS198)。
存在しない場合、ステップS199において、条件(a)、条件(c)を満たすPGTextSTストリームが存在するかを判定する。存在する場合、条件(a)、条件(c)を満たすPiP_PGtestSTストリームのうち、対応するStream_EntryがSTN_tableにおいて先頭順位に位置するものを選択して、選択したもののPiP_PG_TextSTストリーム番号を、カレントPiP_PG_TextSTストリームのストリーム番号としてPSR2に設定する(ステップS200)。存在しない場合、0xFFFをPSR2に設定する(ステップS201)。
カレントPiP_PG_TextSTストリーム番号における再生区間は、必ずSubPlayItemによって規定されているので、カレントPiP_PG_TextSTストリーム番号における再生区間を規定しているサブプレイアイテムをカレントサブプレイアイテムとして特定されることになる。
以上が、カレントPGTextSTストリームの選択手順についての説明である。
以上のように本実施形態によれば、ピクチャインピクチャが有効である場合、number_of_PG_textST_streams_entriesと、number_of_PiP_PG_textST_stream_entries_plusとを足しあわせた数値範囲のの中から、PiP_PG_TextSTストリーム番号が選ばれ、このPiP_PG_TextSTストリーム番号に対応するプレゼンテーショングラフィクスストリーム又はテキスト字幕ストリームを再生するので、あるときは、プライマリビデオストリームに適した字幕を動画像と共に再生させ、またあるときは、セカンダリビデオストリームに適した字幕を動画像と共に再生させることができ、字幕選択の幅を広げることができる。
そうして選択された字幕に対応するテキスト字幕ストリームを包含しているAVクリップがサブプレイアイテムによって参照されている場合、かかるAVクリップがUnavailableクリップであると、再生が中断することになる。よって、カレントテキスト字幕ストリームを包含しているAVクリップであって、サブプレイアイテム情報から参照されているもののダウンロードを急げば、再生が中断することはないのでスムーズな再生進行を確保することができる。 (第6実施形態)
本実施形態では、仮想パッケージの構築について詳しく説明する。
先ず始めに、仮想パッケージの基本部分となるBD-ROMのデータ構造について説明する。
図51は、BD-ROMの構成の一例を示す図である。
本図の第4段目にBD-ROM100を示し、第3段目にBD-ROM上のトラック202を示す。本図のトラック202は、BD-ROM100の内周から外周にかけて螺旋状に形成されているトラック202を横方向に引き伸ばして描画している。BD-ROM100は他の光ディスク、例えばDVDやCDなどと同様にその内周から外周に向けてらせん状に記録領域を持ち、内周のリードインと外周のリードアウトの間に論理データを記録できる論理アドレス空間を有している。また、リードインの内側にはBCA(BurstCutting Area)と呼ばれるドライブでしか読み出せない特別な領域がある。この領域はアプリケーションから読み出せないため、例えば著作権保護技術などに利用されることがよくある。
「論理アドレス空間」には、先頭からファイルシステムのボリューム情報が記録され、続いて映像データなどのアプリケーションデータが記録されている。ファイルシステムとはディスク上のデータをディレクトリまたはファイルと呼ばれる単位で表現する仕組みであり、BD-ROM100の場合ではUDF(Universal Disc Format)によって記録される。日常使っているPC(パーソナルコンピュータ)の場合でも、FATまたはNTFSと呼ばれるファイルシステムを通すことにより、ディレクトリやファイルという構造でハードディスクに記録されたデータがコンピュータ上で表現され、ユーザビリティを高めている。このファイルシステムにより、通常のPCと同じように記録されている論理データをディレクトリ、ファイル構造を使って読み出しする事が可能になっている。
BD-ROM100上のディレクトリ、ファイル構造は、ルートディレクトリ(ROOT)直下にBDMVディレクトリが置かれている。BDMVディレクトリはBD-ROM100で扱うAVコンテンツや管理情報などのデータが記録されているディレクトリである。BDMVディレクトリの配下には、タイトルを構成するインデックステーブルが定義されたインデックスファイル(index.bdmv)、動的なシナリオを定義するムービーオブジェクトファイル(MovieObject.bdmv)と、PLAYLISTディレクトリ、CLIPINFディレクトリ、STREAMディレクトリ、BDJOディレクトリ、JARディレクトリが存在する。
これらのディレクトリには、映像・音声といったAVコンテンツが多重化され格納されたAVクリップ(XXX.M2TS)、AVクリップの管理情報を格納したクリップ情報ファイル(XXX.CLPI)、AVクリップの論理的な再生経路を定義したプレイリストファイル(YYY.MPLS)が存在する。
これらの他にも、以下のファイルが存在する。つまりどのJARファイルを実行するかおよびその実行方法について定義したBDJオブジェクトファイル(BBB.BDJO)、BD-Jアプリケーションを格納したJARファイル(AAA.JAR)が存在する。これらのファイルは、それぞれ前述のSTREAMディレクトリ、CLIPINFディレクトリ、PLAYLISTディレクトリ、BDJOディレクトリ、JARディレクトリの下に配置される。
以下に、BDMVディレクトリ配下に置かれる各ファイルのデータ構造について説明する。まずインデックスファイル(Index.bdmv)について説明する。インデックスファイルはインデックステーブルを持つ。
図52は、インデックスファイルの内部構成の一例を示す図である。
「インデックステーブル」は、BD-ROMに格納されるすべてのタイトル、トップメニュー、FirstPlayといったタイトル構成を定義する最上位層のテーブルである。このテーブルには、全てのタイトル、トップメニュー、FirstPlayから最初に実行されるムービーオブジェクトファイルに含まれるムービーオブジェクトが指定されている。BD-ROMの再生機は、タイトルあるいはメニューが呼び出されるたびにインデックステーブルを参照して、所定のムービーオブジェクトもしくはBDJオブジェクトを実行する。ここで、FirstPlayとは、コンテンツプロバイダによって設定されるもので、ディスク投入時に自動実行されるムービーオブジェクトまたはBDJオブジェクトが設定されている。また、トップメニューは、リモコンでのユーザ操作で、「メニューに戻る」というようなコマンドが実行されるときに、呼び出されるムービーオブジェクト、BDJオブジェクトが指定されている。プログレッシブ属性で再生されるべきプレイリストは、必ずBD-Jオブジェクトによって再生されねばならない。
以上が、仮想パッケージの前提となるBD-ROMのデータ構造である。
次に、図53を参照しながらローカルストレージ103に格納されるアップデートキットのデータ構造について説明する。
図53は、ローカルストレージ103に格納されるアップデートキットの内部構成の一例を示す図である。
ローカルストレージ103に格納されるアップデートキットは、本図に示すように、追加コンテンツ格納ディレクトリ、OrgIDディレクトリ、DiscIDディレクトリと、マージ管理情報ファイル(MERGE.XML)、署名情報ファイル(MERGE.SF)、追加コンテンツデータファイル(CCC.MPL、VVV.M2T、VVV.CLPなど)を含む。追加コンテンツ領域ルートディレクトリは、ローカルストレージ103のルートディレクトリの直下に存在し、追加コンテンツ領域のルートを示すディレクトリで、ディレクトリ名配布媒体文字以内の固定値(BD_BUDA)である。
「OrgIDディレクトリ」は、BD-ROM記録層上のBD管理情報(インデックスファイル)に記載されている、映画作品のプロバイダを特定する32bitの識別子(OrganizationID)を16進表記で表した、8文字の名前のディレクトリである。また、OrganizationIDの先頭の連続する0は、ディレクトリの名前から省略する。例えば、OrganizationIDが0x0000001Aの場合は、ディレクトリの名前は"1A"となる。
「DiscIDディレクトリ」は、BD-ROM記録層上のBD管理情報(インデックスファイル)に記載されている、BD-ROM記録層を特定する128bitの識別子(DiscID)を先頭から32bitずつ4分割し、それぞれを16進表記で表したディレクトリである。また、OrganizationIDと同様にDiscIDの先頭の連続する0は、ディレクトリの名前から省略する。
DiscIDディレクトリの配下には、マージ管理情報ファイル、署名情報ファイル、追加コンテンツデータファイルが存在する。
「マージ管理情報ファイル(MERGE.XML)」は、仮想パッケージを構成するためのローカルストレージに記録される各ファイル格納位置情報と、仮想パッケージ上でそれらのファイルへアクセスするための仮想パス情報から構成され、DiscIDディレクトリ直下に保存される。
「署名情報ファイル」は、マージ管理情報ファイルに対するプロバイダの電子的な署名を示すファイルであり、MERGE.SFというファイル名でDiscIDディレクトリ直下に保存される。電子的な署名は、一般的に改ざん防止が必要な情報に対してハッシュ値を計算し、ハッシュ値をなんらかの秘密鍵を用いて暗号化したものを用いる。本実施形態の署名情報ファイルでは、BD-ROM記録層上にあるマージ証明書中の公開鍵に対応する秘密鍵を利用して、マージ管理情報ファイルのハッシュ値が暗号化されている。
「マージ証明書」は、マージ管理情報ファイルの認証に利用する証明書で、プロバイダが公開する公開鍵が含まれる。プロバイダが提供するマージ証明書は、BD-ROM記録層上にbd.certというファイル名で保存されている。マージ証明書のファイル形式の一例としてはX.509を利用することができる。
「追加コンテンツデータファイル」は、BD-ROM記録層に記録されたオリジナルのコンテンツに対し、追加/更新するファイル群である。ここには、プレイリストファイル、AVクリップなどが記録される。
図54は、マージ管理情報ファイルの内容と、その内容を元にBD-ROMのファイルとアップデートキットのファイルとから、仮想パッケージを構築する過程の一例を示す図である。
図54の左上は、BD-ROMのディレクトリ・ファイル構成を示す。本図の左下は、アップデートキットのディレクトリ・ファイル構成を示す。
図54の右下は、マージ管理情報ファイルの内容を示す。マニフェストファイルは、仮想パッケージを構成するローカルストレージにおける「ローカルストレージパス」と、仮想パッケージ上でそれらのファイルへアクセスするための「仮想パッケージパス」と、「プログレッシブ属性」から構成される。プログレッシブ属性は、仮想パッケージを構築する前に、そのファイルがなくても良いことを示す。
ローカルストレージパスの一例として、本図では、1/1/CCC.MPL、1/1/VVV.M2T、1/1/VVV.CLP、1/1/SSS.M2T、1/1/SSS.CLPが記述されている。BD_BUMFディレクトリから追加コンテンツデータファイルへのパスが明記されている。
一方、仮想パッケージパスとして、BDMV/PLAYLIST/CCC.MPLS、BDMV/STREAM/VVV.M2TS、BDMV/CLIPINF/VVV.CLPI、BDMV/STREAM/SSS.M2TS、BDMV/CLIPINF/SSS.CLPIが記述されている。
図54の右上は、このマニフェストファイルによって生成される仮想パッケージを示す。ローカルストレージパスにおいて、1/1/CCC.MPL、1/1/VVV.M2T、1/1/VVV.CLP、1/1/SSS.M2T、1/1/SSS.CLPに存在するファイルが、BDMV/PLAYLIST/CCC.MPLS、BDMV/STREAM/VVV.M2TS、BDMV/CLIPINF/VVV.CLPI、BDMV/STREAM/SSS.M2TS、BDMV/CLIPINF/SSS.CLPIに配置されるように、仮想的にディレクトリ・ファイル構成が変更される。こうすることで、BD-ROMにはないVVV.CLPI、VVV.M2TS、SSS.CLPI、SSS.M2TSが、仮想パッケージでは存在するかの如く取り扱われることになる。
マージ管理情報に基づき、仮想パッケージが生成されれば、ローカルストレージ上のこれらのファイルは、このマージ管理情報におけるパス情報でアクセスすることができる。このとき、プログレッシブ属性が付与されているSSS.M2TSにおいては、仮想パッケージが構築される前に、ローカルストレージにダウンロードが完了している必要はない。仮想パッケージが構築された後、必要になる段階でダウンロードしても良い。

よって、アップデートキットのダウンロードにあたって、ローカルストレージへの書き込みの順序は、
マージ管理情報ファイル→プレイリスト情報→複数クリップ情報→複数AVクリップ
となる。ここでプレイリスト情報−複数のクリップ情報の書き込みが完了した段階で、仮想パッケージの構築は可能になる。何故なら、AVクリップをDisable状態として扱えば、足りるからである。
以上のように本実施形態によれば、サブプレイアイテムを、仮想的なファイルシステムを通じて、システムターゲットデコーダに供給することができる。(第6実施形態)
本実施形態では、PGストリームプレイリストを実現するアップデートキットを作成するためのオーサリングシステムについての説明する。本図に示すように、オーサリングシステムは、ストレージ300a,b、素材制作部301、シナリオ生成部302、BD-J制作部303、多重化処理部304、フォーマット処理部から構成される。
図55は、オーサリングシステムの一例を示す図である。
ストレージ300a,b,cは、それぞれ、ROMシナリオデータ、ROMディスクイメージのバージョン1(ver.1)、ROMディスクイメージのバージョン2(ver.2)を格納している。
素材制作部301は、ビデオストリーム、オーディオストリーム、プレゼンテーショングラフィックスストリーム、インタラクティブグラフィックストリームなどの各ストリームを作成する。素材制作部301は、非圧縮のビットマップなどの画像イメージをMPEG4-AVCやMPEG2などの圧縮方式に従い符号化することでビデオストリームを作成する。また素材制作部301は、非圧縮のLinearPCM音声などをAC3などの圧縮方式に従い符号化することでオーディオストリームを作成する。素材制作部301は、字幕イメージと表示タイミング、およびフェードイン/フェードアウトなどの字幕の効果を含む字幕情報ファイルを元にして、字幕ストリームであるプレゼンテーショングラフィックスストリームを作成する。素材制作部301は、メニューに使うビットマップイメージと、メニューに配置されるボタンの遷移や表示効果を記載したメニューファイルを元にして、メニュー画面を構成するインタラクティブグラフィックスストリームを作成する。
シナリオ生成部302は、素材制作部301で作成した各ストリームの情報や、オーサリングスタッフからのGUIを経由した操作にしたがって、シナリオを作成する。ここで言うシナリオは、インデックスファイル、ムービーオブジェクトファイル、プレイリストファイルなどのファイルがそれにあたる。また、シナリオ生成部302は、多重化処理を実現するための各AVクリップがどのストリームから構成されるかを記述したパラメータファイルを作成する。
BD-J制作部303は、BD-Jアプリケーションをプログラミングする手段である。GUI等のユーザインターフェースを通じて、ユーザからの要求に従って、BD-Jアプリケーションプログラムのソースコードを作成し、BD-Jアプリケーションを作成する。
多重化処理部304は、ROMシナリオデータに記述されているビデオ、オーディオ、字幕、ボタンなどの複数のストリームを多重化して、MPEG2-TS形式のAVクリップを作成する。このとき、AVクリップと対になるクリップ情報ファイルも同時に作成する。多重化処理部304によるクリップ情報ファイル内の生成は、以下の方法で行われる。多重化処理部304はAVクリップを作成と同時にエントリマップを作成する。より具体的には、素材制作部301で生成された各ストリームにおいて、含まれるビデオストリームがMPEG2であればIピクチャ、MPEG4-AVCであればIピクチャかIDRピクチャ、VC-1であればIピクチャが何処に存在するかを検出し、前述の各ピクチャの表示時刻と、MPEG2-TSとなっているAVクリップの何パケット目のソースパケットに前述の各ピクチャの先頭データが入っているかを対応付けたエントリポイントをエントリマップに登録していく。AVクリップに含まれるビデオストリームが、Primaryビデオ・Secondaryビデオの2種類がある場合は、どちらのエントリマップも同時に作成していく。多重化処理部304は、自ら生成したエントリマップと、AVクリップに含まれるストリーム毎の音声属性、映像属性などを示す属性情報をペアにしてクリップ情報ファイルを作成する。
フォーマット処理部305は、シナリオ生成部302で生成したROMシナリオデータと、BD-J制作部303で制作したBD-Jアプリケーション、多重化処理部2604で生成したAVクリップやクリップ情報ファイルや、これまでの実施形態で説明したフォーマットでファイルやディレクトリを配置し、UDFのフォーマットでディスクイメージを作成する。生成したディスクイメージをBD-ROMプレス用データに変換し、このデータに対してプレス工程を行うことで、BD-ROMの製造が可能となる。
アップデートキットを作成するには、二つのディスクイメージを用意する。1つはBD-ROMに格納されるディスクイメージであり、も第1の特徴つは仮想パッケージ構築後のディスクイメージである。
差分抽出部306は、ストレージ300a,bに格納された二つのROMディスクイメージをコンペアして、差分データを抽出する。例えば、オリジナルのディスクイメージになかったファイルや、バイナリコンペアしてアップデートされているファイルなどを抽出する。
アップデートキット制作部307は、差分抽出部306を元に前述で説明したアップデートキットのデータフォーマットに合うようにマージ管理情報ファイルや署名情報ファイルを作成し、ファイルやディレクトリを配置する。
図56は、ROMディスクイメージ、アップデートキットイメージの作成方法について説明する。
ステップS211において、素材制作部301はビデオストリーム、オーディオストリーム、IGストリーム、PGストリームを生成する。
ステップS212において、シナリオ生成部302は、インデックスファイル、ムービーオブジェクトファイル、プレイリストファイルなど再生シナリオを記述するROMシナリオデータを作成する。
ステップS213において、BD-J制作部303は、BD-Jアプリケーションのプログラムを作成する。
ステップS214において、多重化処理部304はROMシナリオデータを元にAVクリップとクリップ情報ファイルを作成する。
ステップS215において、フォーマット処理部307は、ROMシナリオデータ、変形AVクリップ、クリップ情報ファイル、復元バイトコードデータを、これまでの実施形態で述べたファイル・ディレクトリ構造に並び替え、ROMディスクイメージを作成する。
ステップS221において、差分抽出部306は二つのディスクイメージを比較して差分データを抽出する。
ステップS222において、アップデートキット制作部307は、インデックスファイル、ムービーオブジェクトファイル、プレイリストファイルなど再生シナリオを記述するROMシナリオデータを作成する。
ステップS223において、BD-J制作部303は、BD-Jアプリケーションのプログラムを作成する。
ステップS224において、多重化処理部304はROMシナリオデータを元にAVクリップとクリップ情報ファイルを作成する。
ステップS225において、フォーマット処理部307は、差分データをアップデートキットのデータフォーマットに合うように変換する。ステップS226において、マージ管理情報ファイルや署名情報ファイルを作成し、アップデートキット内に配置する。
(備考)

以上、本願の出願時点において、出願人が知り得る最良の実施形態について説明したが、以下に示す技術的トピックについては、更なる改良や変更実施を加えることができる。各実施形態に示した通り実施するか、これらの改良・変更を施すか否かは、何れも任意的であり、実施する者の主観によることは留意されたい。
(プログラミング言語の適用範囲)
上記実施形態では、仮想マシンのプログラミング言語としてJava(登録商標)を利用したが、Java(登録商標)ではなく、UNIX(登録商標)OSなどで使われているB-Shellや、Perl Script、ECMA Scriptなど他のプログラミング言語であっても良い。
(リアルタイムレコーディング)
再生装置101は、リアルタイムレコーディングを行うことで、クリップファイルをローカルストレージに記録してもよい。この際、AVストリームは、アナログ入力信号を記録装置がセルフエンコードすることにより得られたトランスポートストリームであってもよいし、記録装置がデジタル入力したトランスポートストリームをパーシャル化することで得られるトランスポートストリームであってもよい。
リアルタイムレコーディングにあたって上記装置は、AVストリームの記録と共に、メモリ上でクリップ情報やプレイリスト情報を生成する処理を行うが、この際、上述した各実施形態に記載したクリップ情報、プレイリスト情報をメモリ上で生成する。そしてAVストリームの記録を終えた後、生成されたクリップ情報、プレイリスト情報を記録媒体に書き込む。こうすることで、オーサリングシステムを用いずとも、家庭用の記録装置や、記録装置としての機能を具備したパーソナルコンピュータにて、各実施形態に示したクリップ情報、プレイリスト情報を作成することができる。そうして作成されたAVストリーム、クリップ情報、プレイリスト情報を、ライトワンス型の記録媒体に書き込んでもよい。
(AV再生の対象)
AV再生の対象は、デジタルストリーム、マップ情報、プレイリスト情報から構成されるコンテンツであるなら、BD-ROMに規定されたものに限らない。デジタルストリームは、MPEG2,MPEG4-AVC等の符号化方式で符号化されたビデオストリーム、オーディオストリームを多重化することで、得られた多重化ストリームであり、DVDVideo-RecordingではVOBと呼ばれる。
マップ情報は、上述したビデオストリームにおけるアクセスユニット(独立復号可能な再生単位をいう)のアドレス情報と、ビデオストリームの再生時間軸における再生時刻との対応を示す情報であり、DVDVideo-RecordingではTime Mapと呼ばれる。
プレイリスト情報は、開始点たる時刻情報と、終了点たる時刻情報との組みにより、1つ以上の再生区間を定義する情報である。
(制御手順の実現)
各実施形態においてフローチャートを引用して説明した制御手順や、機能的な構成要素による制御手順は、ハードウェア資源を用いて具体的に実現されていることから、自然法則を利用した技術的思想の創作といえ、“プログラムの発明”としての成立要件を満たす。
・クリップファイルのダウンロードやDataStarvedイベントの出力を行うアプリケーションプログラムの生産形態
クリップファイルのダウンロードやDataStarvedイベントの出力を行うアプリケーションプログラムは、以下のようにして作ることができる。先ず初めに、ソフトウェア開発者は、プログラミング言語を用いて、各フローチャートや、機能的な構成要素を実現するようなソースプログラムを記述する。この記述にあたって、ソフトウェア開発者は、プログラミング言語の構文に従い、クラス構造体や変数、配列変数、外部関数のコールを用いて、各フローチャートや、機能的な構成要素を具現するソースプログラムを記述する。この際、Java(登録商標)言語でのプログラムのための様々なAPIコールを使用する。
記述されたソースプログラムは、ファイルとしてコンパイラに与えられる。コンパイラは、これらのソースプログラムを翻訳してオブジェクトプログラムを生成する。
コンパイラによる翻訳は、構文解析、最適化、資源割付、コード生成といった過程からなる。構文解析では、ソースプログラムの字句解析、構文解析および意味解析を行い、ソースプログラムを中間プログラムに変換する。最適化では、中間プログラムに対して、基本ブロック化、制御フロー解析、データフロー解析という作業を行う。資源割付では、ターゲットとなるプロセッサの命令セットへの適合を図るため、中間プログラム中の変数をターゲットとなるプロセッサのプロセッサが有しているレジスタまたはメモリに割り付ける。コード生成では、中間プログラム内の各中間命令を、プログラムコードに変換し、オブジェクトプログラムを得る。
ここで生成されたオブジェクトプログラムは、各実施形態に示したフローチャートの各ステップや、機能的構成要素の個々の手順を、コンピュータに実行させるような1つ以上のプログラムコードから構成される。ここでプログラムコードは、プロセッサのネィティブコード、JAVA(登録商標)バイトコードというように、様々な種類がある。プログラムコードによる各ステップの実現には、様々な態様がある。外部関数を利用して、各ステップを実現することができる場合、この外部関数をコールするコール文が、プログラムコードになる。また、1つのステップを実現するようなプログラムコードが、別々のオブジェクトプログラムに帰属することもある。命令種が制限されているRISCプロセッサでは、算術演算命令や論理演算命令、分岐命令等を組合せることで、フローチャートの各ステップを実現してもよい。
オブジェクトプログラムが生成されるとプログラマはこれらに対してリンカを起動する。リンカはこれらのオブジェクトプログラムや、関連するライブラリプログラムをメモリ空間に割り当て、これらを1つに結合して、ロードモジュールを生成する。こうして生成されるロードモジュールは、コンピュータによる読み取りを前提にしたものであり、各フローチャートに示した処理手順や機能的な構成要素の処理手順を、コンピュータに実行させるものである。以上の処理を経て、クリップファイルのダウンロードやDataStarvedイベントの出力を行うアプリケーションプログラムを作ることができる。こうして作成したプログラムをコンピュータ読取可能な記録媒体に記録してユーザに供給してもよい。
(システムLSI化)
再生装置101を構成するハードウェアのうち、機構的な構成要素(BDドライブ)、大容量のメモリによって実装される構成要素(ビデオプレーン、グラフィクスプレーン)を除いた、論理素子を主要部とするシステムターゲットデコーダやBD-J処理部の部分を一体化してシステムLSIとして構成することが望ましい。何故なら、論理素子を主要部とする部分は、高密度に集積化することができるからである。
システムLSIとは、高密度基板上にベアチップを実装し、パッケージングしたものをいう。複数個のベアチップを高密度基板上に実装し、パッケージングすることにより、あたかも1つのLSIのような外形構造を複数個のベアチップに持たせたものも、システムLSIに含まれる(このようなシステムLSIは、マルチチップモジュールと呼ばれる。)。
ここでパッケージの種別に着目するとシステムLSIには、QFP(クッド フラッド アレイ)、PGA(ピングリッド アレイ)という種別がある。QFPは、パッケージの四側面にピンが取り付けられたシステムLSIである。PGAは、底面全体に、多くのピンが取り付けられたシステムLSIである。
これらのピンは、他の回路とのインターフェイスとしての役割を担っている。システムLSIにおけるピンには、こうしたインターフェイスの役割が存在するので、システムLSIにおけるこれらのピンに、他の回路を接続することにより、システムLSIは、再生装置101の中核としての役割を果たす。
かかるシステムLSIは、再生装置101は勿論のこと、TVやゲーム、パソコン、ワンセグ携帯等、映像再生を扱う様々な機器に組込みが可能であり、再生装置の用途を多いに広げることができる。
エレメンタバッファやビデオデコーダ、オーディオデコーダ、グラフィクスデコーダをも、一体のシステムLSIにする場合、システムLSIのアーキテクチャは、Uniphierアーキテクチャに準拠させるのが望ましい。
Uniphierアーキテクチャに準拠したシステムLSIは、以下の回路ブロックから構成される。
・データ並列プロセッサDPP
これは、複数の要素プロセッサが同一動作するSIMD型プロセッサであり、各要素プロセッサに内蔵されている演算器を、1つの命令で同時動作させることで、ピクチャを構成する複数画素に対するデコード処理の並列化を図る。
・命令並列プロセッサIPP
これは、命令RAM、命令キャッシュ、データRAM、データキャッシュからなる「LocalMemory Controller」、命令フェッチ部、デコーダ、実行ユニット、レジスタファイルからなる「Processing Unit部」、複数アプリケーションの並列実行をProcessingUnit部に行わせる「Virtual Multi Processor Unit部」で構成される。
・MPUブロック
これは、ARMコア、外部バスインターフェイス(Bus ControlUnit:BCU)、DMAコントローラ、タイマー、ベクタ割込コントローラといった周辺回路、UART、GPIO(General Purpose InputOutput)、同期シリアルインターフェイスなどの周辺インターフェイスで構成される。
・ストリーム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は、各実施形態に示した再生装置101の内部構成図を基に作ることができる。
尚、上述のようにして生成される集積回路は、集積度の違いにより、IC、LSI、スーパーLSI、ウルトラLSIと呼称されることもある。
FPGAを用いてシステムLSIを実現した場合は、多数のロジックエレメントが格子状に配置されており、LUT(LookUp Table)に記載されている入出力の組合せに基づき、縦・横の配線をつなぐことにより、各実施形態に示したハードウェア構成を実現することができる。LUTは、SRAMに記憶されており、かかるSRAMの内容は、電源断により消滅するので、かかるFPGAの利用時には、コンフィグ情報の定義により、各実施形態に示したハードウェア構成を実現するLUTを、SRAMに書き込ませる必要がある。
本発明に係る再生装置は、ストリーミングライクな再生機能を効率的に行い、ユーザに長いダウンロード時間を与えずにすむので、より魅力的な映画タイトルなどの動画コンテンツを市場に供給することができ、映画市場や民生機器市場を活性化させることができる。故に本発明に係る再生装置は、映画産業や民生機器産業において高い利用可能性をもつ
100 BD-ROM
102 WWWサーバ
103 ローカルストレージ
104 テレビ

Claims (11)

  1. プレイリストを再生する再生装置であって、
    プレイリストは、複数のプレイアイテムと、複数のサブプレイアイテムとを含み、
    前記プレイアイテムは、メインストリームを含むクリップファイルと、当該クリップファイルにおける再生区間を規定する情報であり、
    前記サブプレイアイテムは、サブストリームを含むクリップファイルと、当該クリップファイルにおける再生区間を、プレイアイテムと同期すべき再生区間として規定する情報であり、
    前記サブプレイアイテムが参照するクリップファイルは、伝送路を介して伝送されるクリップファイルであり、サブストリームは、プレイアイテムが参照しているクリップファイルとは多重化されておらず、
    プレイリストに含まれるプレイアイテムを再生する再生手段と、
    複数のプレイアイテムのうち、再生対象になっているものをカレントプレイアイテムとして特定する特定手段と、
    カレントプレイアイテムが変化する度に、カレントプレイアイテムにとって最適なサブプレイアイテムをカレントサブプレイアイテムとして決定する決定手段と、
    前記カレントプレイアイテムと同期して再生すべきカレントサブストリームを指し示すサブストリームレジスタとを備え、
    前記カレントサブプレイアイテムとは、
    カレントプレイアイテムと同期すべき再生区間を規定するサブプレイアイテムであって、前記サブストリームレジスタが指し示すサブストリームの再生区間を規定するものであり、
    前記再生手段は、
    再生装置がアクセス可能な記録媒体に、カレントサブプレイアイテムによって参照されているクリップファイルが存在すればプレイアイテムの再生を進行し、カレントサブプレイアイテムによって参照されているクリップファイルが記録媒体において存在しないか又は認識不能な状態になっていれば、プレイアイテムの再生を停止する
    ことを特徴とする再生装置。
  2. サブストリームには、オーディオストリーム、ビデオストリーム、字幕ストリームという種別があり、
    サブストリームレジスタは、サブストリームの種別毎にストリーム番号を保持する番号レジスタを備え、各番号レジスタは、ストリーム番号を保持することで、サブストリームの種別毎のカレントサブストリームを指し示し、
    前記カレントサブプレイアイテムは、
    番号レジスタが指し示すカレントサブストリームを格納したクリップファイルを参照しているサブプレイアイテムである
    ことを特徴とする請求項1記載の再生装置。
  3. 前記再生装置は、
    記録媒体におけるクリップファイルの状態を管理する管理手段を備え、
    前記クリップファイルは、
    アプリケーションがサーバ装置に対してダウンロードを要求することで伝送路を介して再生装置に送信され、
    前記再生手段による再生開始は、
    アプリケーションが、プレイリスト情報に対してプレーヤインスタンスを生成することでなされ、
    前記再生手段の停止は、
    カレントサブプレイアイテムによって参照されているクリップファイルが記録媒体において存在しないか又は認識不能な状態になっている場合、管理手段が、再生手段及びプレーヤインスタンスに、再生停止を指示するイベントを出力することでなされる
    ことを特徴とする請求項1記載の再生装置
  4. プレイアイテムから参照されるクリップファイルはビデオストリームを含み、

    サブストリームは、前記ビデオストリームと同期して再生することで立体視をユーザに行うサブビデオストリームであり、
    プレイリストは、立体視セッティング情報を含み、立体視セッティング情報は、立体視をオンとするか、オフとするかを示し、
    立体視セッティング情報が立体視オフを示している場合、再生手段は、サブプレイアイテムにて参照されているクリップファイルであって、サブビデオストリームを含むクリップファイルが前記記録媒体に存在しないか又は認識不能な状態になっていたとしても、再生を停止せず、
    再生手段が再生を停止するのは、プレイリストにおける立体視セッティング情報が立体視オンを示している場合であって、カレントサブプレイアイテムによって参照されているクリップファイルが前記記録媒体に存在しないか又は認識不能な状態になっている場合に限る
    ことを特徴とする請求項1記載の再生装置。
  5. サブストリームは、字幕ストリームであり、
    前記サブストリームレジスタは更に、字幕オン/オフの設定を含み、
    前記再生手段は、
    前記サブストリームレジスタが字幕オフを示している場合、字幕ストリームを含む何れのクリップファイルが記録媒体に存在しないか、又は、認識不能な状態であったとしても再生を停止せず、
    再生を停止するのは、前記サブストリームレジスタが字幕オンを示している場合であって、カレントサブプレイアイテムによって参照されているクリップファイルが記録媒体において存在しないか又は認識不能な状態になっている場合に限る
    ことを特徴とする請求項1記載の再生装置。
  6. プレイアイテム情報は、再生が可能なサブストリームを示すストリーム番号テーブルを含み、
    前記ストリーム番号テーブルは、複数のサブストリームエントリーとを含み、
    複数のサブストリームエントリーは、プレイアイテムと同期して再生することができる複数のサブストリームを示す情報であり、
    各々サブストリームエントリーは、同期再生可能なサブストリームと、サブプレイアイテム情報との対応付けて示す情報であり、ストリーム番号テーブルにおけるサブストリームエントリーの順序は、サブストリームの優先順位を示し、
    カレントサブストリームは、
    同期再生可能な複数のサブストリームのうち、対応するサブストリームエントリーの優先順位が最高位のものである
    ことを特徴とする請求項1記載の再生装置。
  7. 前記再生装置は、デッキ情報を格納するセッティングレジスタを備え、
    デッキ情報は、再生装置における言語設定を示し、
    前記決定手段は、
    再生が許可されているサブストリームのうち、デッキ情報に示される言語設定と合致する言語属性を有するものを、カレントサブストリームとして決定する
    ことを特徴とする請求項1記載の再生装置。
  8. プレイリストの再生時に参照されるクリップファイルを記録媒体に書き込む記録装置であって、
    プレイリストは、複数のプレイアイテムと、複数のサブプレイアイテムとを含み、
    前記プレイアイテムは、メインストリームを含むクリップファイルと、当該クリップファイルにおける再生区間を規定する情報であり、
    前記サブプレイアイテムは、サブストリームを含むクリップファイルと、当該クリップファイルにおける再生区間を、プレイアイテムと同期すべき再生区間として規定する情報であり、
    前記サブプレイアイテムが参照するクリップファイルは、伝送路を介して伝送されるクリップファイルであり、サブストリームは、プレイアイテムが参照しているクリップファイルとは多重化されておらず、
    クリップファイルを伝送路を介して受け取って、記録媒体に書き込む書込手段と、
    記録媒体に書き込まれたクリップファイルの状態を管理する管理手段と、
    プレイリストに含まれるプレイアイテムを再生する再生手段と、
    複数のプレイアイテムのうち、再生対象になっているものをカレントプレイアイテムとして特定する特定手段と、
    カレントプレイアイテムが変化する度に、カレントプレイアイテムにとって最適なサブプレイアイテムをカレントサブプレイアイテムとして決定する決定手段と、
    前記カレントプレイアイテムと同期して再生すべきカレントサブストリームを指し示すサブストリームレジスタとを備え、
    前記カレントサブプレイアイテムとは、
    カレントプレイアイテムと同期すべき再生区間を規定するサブプレイアイテムであって、前記サブストリームレジスタが指し示すサブストリームの再生区間を規定するものであり、
    前記再生手段は、
    再生装置がアクセス可能な記録媒体に、カレントサブプレイアイテムによって参照されているクリップファイルが存在すればプレイアイテムの再生を進行し、カレントサブプレイアイテムによって参照されているクリップファイルが記録媒体において存在しないか又は認識不能な状態になっていれば、プレイアイテムの再生を停止する

    ことを特徴とする記録装置。
  9. アプリケーションは、カレントプレイアイテムの再生がなされている期間内に、プレイリスト情報に含まれる複数のサブプレイアイテム情報のうち、カレントサブプレイアイテムの次順位となるものをネクストサブプレイアイテムとして特定して、ネクストサブプレイアイテムによって参照されているクリップファイルのダウンロードを、サーバ装置に対して要求し、
    前記書込手段によって記録媒体に書き込まれるクリップファイルは、ネクストサブプレイアイテム情報によって参照されているクリップファイルである
    ことを特徴とする請求項8記載の記録装置。
  10. プレイリストを再生する再生方法であって、
    プレイリストは、複数のプレイアイテムと、複数のサブプレイアイテムとを含み、
    前記プレイアイテムは、メインストリームを含むクリップファイルと、当該クリップファイルにおける再生区間を規定する情報であり、
    前記サブプレイアイテムは、サブストリームを含むクリップファイルと、当該クリップファイルにおける再生区間を、プレイアイテムと同期すべき再生区間として規定する情報であり、
    前記サブプレイアイテムが参照するクリップファイルは、伝送路を介して伝送されるクリップファイルであり、サブストリームは、プレイアイテムが参照しているクリップファイルとは多重化されておらず、
    プレイリストに含まれるプレイアイテムを再生する再生ステップと、
    複数のプレイアイテムのうち、再生対象になっているものをカレントプレイアイテムとして特定する特定ステップと、
    カレントプレイアイテムが変化する度に、カレントプレイアイテムにとって最適なサブプレイアイテムをカレントサブプレイアイテムとして決定する決定ステップと、
    前記カレントプレイアイテムと同期して再生すべきカレントサブストリームを指し示すステップとを有し、
    前記カレントサブプレイアイテムとは、
    カレントプレイアイテムと同期すべき再生区間を規定するサブプレイアイテムであって、カレントサブストリームの再生区間を規定するものであり、
    前記再生ステップは、
    アクセス可能な記録媒体に、カレントサブプレイアイテムによって参照されているクリップファイルが存在すればプレイアイテムの再生を進行し、カレントサブプレイアイテムによって参照されているクリップファイルが記録媒体において存在しないか又は認識不能な状態になっていれば、プレイアイテムの再生を停止する
    ことを特徴とする再生方法。
  11. プレイリストの再生時に参照されるクリップファイルを記録媒体に書き込む記録方法であって、
    プレイリストは、複数のプレイアイテムと、複数のサブプレイアイテムとを含み、
    前記プレイアイテムは、メインストリームを含むクリップファイルと、当該クリップファイルにおける再生区間を規定する情報であり、
    前記サブプレイアイテムは、サブストリームを含むクリップファイルと、当該クリップファイルにおける再生区間を、プレイアイテムと同期すべき再生区間として規定する情報であり、
    前記サブプレイアイテムが参照するクリップファイルは、伝送路を介して伝送されるクリップファイルであり、サブストリームは、プレイアイテムが参照しているクリップファイルとは多重化されておらず、
    クリップファイルを伝送路を介して受け取って、記録媒体に書き込む書込ステップと、
    記録媒体に書き込まれたクリップファイルの状態を管理する管理ステップと、
    プレイリストに含まれるプレイアイテムを再生する再生ステップと、
    複数のプレイアイテムのうち、再生対象になっているものをカレントプレイアイテムとして特定する特定ステップと、
    カレントプレイアイテムが変化する度に、カレントプレイアイテムにとって最適なサブプレイアイテムをカレントサブプレイアイテムとして決定する決定ステップと、
    前記カレントプレイアイテムと同期して再生すべきカレントサブストリームを指し示すステップとを有し、
    前記カレントサブプレイアイテムとは、
    カレントプレイアイテムと同期すべき再生区間を規定するサブプレイアイテムであって、カレントサブストリームの再生区間を規定するものであり、
    前記再生ステップは、
    カレントサブプレイアイテムによって参照されているクリップファイルが、記録媒体において存在すればプレイアイテムの再生を進行し、カレントサブプレイアイテムによって参照されているクリップファイルが記録媒体において存在しないか又は認識不能な状態になっていれば、プレイアイテムの再生を停止する
    ことを特徴とする記録方法。
JP2009553359A 2008-02-15 2009-02-09 再生装置、記録装置、再生方法および記録方法 Expired - Fee Related JP5281021B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US2905408P 2008-02-15 2008-02-15
US61/029,054 2008-02-15
PCT/JP2009/000505 WO2009101787A1 (ja) 2008-02-15 2009-02-09 再生装置、記録装置、再生方法および記録方法

Publications (2)

Publication Number Publication Date
JPWO2009101787A1 true JPWO2009101787A1 (ja) 2011-06-09
JP5281021B2 JP5281021B2 (ja) 2013-09-04

Family

ID=40955219

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009553359A Expired - Fee Related JP5281021B2 (ja) 2008-02-15 2009-02-09 再生装置、記録装置、再生方法および記録方法

Country Status (9)

Country Link
US (1) US8849088B2 (ja)
EP (1) EP2242269A4 (ja)
JP (1) JP5281021B2 (ja)
KR (1) KR20100121574A (ja)
CN (1) CN101682744B (ja)
BR (1) BRPI0902891A2 (ja)
MX (1) MX2009010856A (ja)
RU (1) RU2516463C2 (ja)
WO (1) WO2009101787A1 (ja)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8515052B2 (en) 2007-12-17 2013-08-20 Wai Wu Parallel signal processing system and method
JP5314915B2 (ja) * 2008-04-10 2013-10-16 アルパイン株式会社 車載ビデオ再生装置
EP2362671B1 (en) * 2008-07-25 2013-09-11 Koninklijke Philips Electronics N.V. 3d display handling of subtitles
KR100972541B1 (ko) * 2008-07-28 2010-07-28 드리머 Bd-j 기반 컨텐츠 제공 방법 및 이를 실현시키기 위한프로그램을 기록한 컴퓨터로 판독 가능한 기록 매체
US9754625B2 (en) * 2008-07-31 2017-09-05 Warner Bros. Entertainment Inc. Generation and use of user-selected scenes playlist from distributed digital content
TWI389001B (zh) * 2009-06-01 2013-03-11 Mstar Semiconductor Inc 檔案系統及檔案系統轉換方法
US9185328B2 (en) * 2009-06-08 2015-11-10 Lg Electronics Inc. Device and method for displaying a three-dimensional PIP image
WO2011040414A1 (ja) * 2009-09-30 2011-04-07 シャープ株式会社 情報記録媒体、情報記録媒体を用いた再生方法及び記録方法、情報記録再生装置、並びに、3次元化ユニット及び情報記録装置
CN102577408B (zh) 2009-09-30 2015-04-15 夏普株式会社 使用了信息记录介质的再现方法、信息记录再现装置和三维化装置以及信息记录装置
US20120257817A1 (en) * 2009-12-15 2012-10-11 Koichi Arima Image output apparatus
US20110157302A1 (en) * 2009-12-30 2011-06-30 Ati Technologies Ulc Three-dimensional video display system with multi-stream sending/receiving operation
CN102714662B (zh) * 2010-01-18 2017-06-09 瑞典爱立信有限公司 用于http媒体流分发的方法和装置
JP2011205481A (ja) * 2010-03-26 2011-10-13 Sharp Corp 立体映像視聴具及び立体映像表示システム
US8771064B2 (en) 2010-05-26 2014-07-08 Aristocrat Technologies Australia Pty Limited Gaming system and a method of gaming
CN103202028A (zh) * 2011-03-11 2013-07-10 日立民用电子株式会社 记录装置/方法/介质、再现装置/方法
US8681170B2 (en) 2011-05-05 2014-03-25 Ati Technologies Ulc Apparatus and method for multi-streaming for more than three pixel component values
KR20140029991A (ko) * 2012-08-31 2014-03-11 삼성전자주식회사 프로그래시브 플레이리스트 재생 장치 및 재생 방법, 기록 장치 및 기록 방법, 이를 위한 정보저장매체
EP3276953A1 (en) * 2015-03-27 2018-01-31 Panasonic Intellectual Property Management Co., Ltd. Video playback device and program information display method
CN106411969B (zh) * 2015-07-28 2019-10-08 广州酷狗计算机科技有限公司 歌单生成方法及装置

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2268015B1 (en) * 1996-12-04 2013-10-16 Panasonic Corporation Optical disk for high resolution and three dimensional video recording, optical disk reproduction apparatus, and optical disk recording apparatus
TWI315867B (en) 2002-09-25 2009-10-11 Panasonic Corp Reproduction apparatus, optical disc, recording medium, and reproduction method
US7639921B2 (en) * 2002-11-20 2009-12-29 Lg Electronics Inc. Recording medium having data structure for managing reproduction of still images recorded thereon and recording and reproducing methods and apparatuses
JP4228767B2 (ja) * 2003-04-25 2009-02-25 ソニー株式会社 再生装置、再生方法、再生プログラムおよび記録媒体
US20080232781A1 (en) * 2003-10-03 2008-09-25 Sharp Kabushiki Kaisha Recording and Reproducing Apparatus File Accessing Method Av Data Managing Method, Av Data Managing Method, and Server
KR100982517B1 (ko) * 2004-02-02 2010-09-16 삼성전자주식회사 이벤트 정보가 포함된 동영상 데이터가 기록된 저장 매체 및 재생 장치
KR101249224B1 (ko) * 2004-05-11 2013-04-03 파나소닉 주식회사 재생장치, 재생방법, 프로그램
KR100872949B1 (ko) * 2004-06-18 2008-12-08 파나소닉 주식회사 재생장치, 기록매체, 재생방법
EP1782424A1 (en) * 2004-08-17 2007-05-09 LG Electronics Inc. Method and apparatus of reproducing data recorded on recording medium and local storage
WO2006073260A2 (en) * 2005-01-07 2006-07-13 Lg Electronics Inc. Method and apparatus for reproducing data from recording medium using local storage
CN101151675B (zh) * 2005-01-28 2012-09-19 松下电器产业株式会社 播放装置
JP2006244655A (ja) * 2005-03-04 2006-09-14 Matsushita Electric Ind Co Ltd 再生装置および再生方法
CN101156208B (zh) * 2005-04-07 2010-05-19 松下电器产业株式会社 记录媒体、再现装置、记录方法、再现方法
JP4923751B2 (ja) * 2005-08-30 2012-04-25 ソニー株式会社 再生装置、並びに記録媒体及びその製造方法
JP2007074608A (ja) * 2005-09-09 2007-03-22 Hitachi Ltd 再生装置および再生方法
JP4815962B2 (ja) * 2005-09-12 2011-11-16 ソニー株式会社 再生装置および再生方法、プログラム、並びに、プログラム格納媒体

Also Published As

Publication number Publication date
EP2242269A1 (en) 2010-10-20
CN101682744A (zh) 2010-03-24
RU2516463C2 (ru) 2014-05-20
JP5281021B2 (ja) 2013-09-04
WO2009101787A1 (ja) 2009-08-20
US20090208189A1 (en) 2009-08-20
RU2009138027A (ru) 2011-04-20
BRPI0902891A2 (pt) 2015-09-22
MX2009010856A (es) 2009-11-02
EP2242269A4 (en) 2014-05-07
KR20100121574A (ko) 2010-11-18
CN101682744B (zh) 2013-01-30
US8849088B2 (en) 2014-09-30

Similar Documents

Publication Publication Date Title
JP5281021B2 (ja) 再生装置、記録装置、再生方法および記録方法
JP4923162B2 (ja) 受信装置、受信方法
JP5596830B2 (ja) 旧来のフォーマットとの互換を維持しつつも、記録内容を編集することができる記録媒体、記録装置
JP5027953B2 (ja) 受信装置
JP5336436B2 (ja) 集積回路
JP5291026B2 (ja) 3d映像を再生する再生装置、および配信装置
WO2010038409A1 (ja) 再生装置、記録媒体、及び集積回路
KR20120036790A (ko) 재생장치, 집적회로, 기록매체
JPWO2010103827A1 (ja) 再生装置、再生方法、記録媒体、アプリケーション、及びオーサリング装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110830

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130523

R150 Certificate of patent or registration of utility model

Ref document number: 5281021

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees