JPWO2010103827A1 - 再生装置、再生方法、記録媒体、アプリケーション、及びオーサリング装置 - Google Patents

再生装置、再生方法、記録媒体、アプリケーション、及びオーサリング装置 Download PDF

Info

Publication number
JPWO2010103827A1
JPWO2010103827A1 JP2011503716A JP2011503716A JPWO2010103827A1 JP WO2010103827 A1 JPWO2010103827 A1 JP WO2010103827A1 JP 2011503716 A JP2011503716 A JP 2011503716A JP 2011503716 A JP2011503716 A JP 2011503716A JP WO2010103827 A1 JPWO2010103827 A1 JP WO2010103827A1
Authority
JP
Japan
Prior art keywords
playback
stream
clip
play item
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.)
Withdrawn
Application number
JP2011503716A
Other languages
English (en)
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 JPWO2010103827A1 publication Critical patent/JPWO2010103827A1/ja
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B27/00Editing; Indexing; Addressing; Timing or synchronising; Monitoring; Measuring tape travel
    • G11B27/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/005Reproducing at a different information rate from the information rate of recording
    • 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
    • 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

Landscapes

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

Abstract

ストリームシーケンスを構成する複数のデジタルストリーム(以下「ストリーム」)を外部リソースから順次ダウンロードしながら再生する再生装置であって、前記ストリームシーケンスにおける現在の再生時間を示す時間情報と前記複数のストリームの各々について再生可能状態であるか否かを示す状態情報とを格納しており、ストリームシーケンスに対応するアプリケーションを実行する実行部とストリームシーケンスの再生を制御する再生制御部とを備え、前記アプリケーションは、前記複数のストリームそれぞれの再生区間情報を含み、前記時間情報と前記再生区間情報とに基づいて、再生中のストリームの次に再生すべき次ストリームを特定し、前記次ストリームの状態情報が再生不可能状態であれば、前記再生制御部は前記アプリケーションの要求に従って、再生中のストリームの表示期間を引き延ばすための特殊再生、または当該ストリームに続き代替映像の再生を行う。

Description

本発明は、仮想パッケージを構築し再生する再生装置に関し、特に、ストリームシーケンスを構成する複数のデジタルストリームを外部リソースから順次ダウンロードしながら再生する技術に関する。
仮想パッケージとは、記録媒体(例えばBD-ROM等)に記録されているデジタルストリームとリライタブル記録媒体(例えばローカルストレージ等)に記録されているデジタルストリームとを組み合わせることにより構築される仮想的なパッケージである。仮想パッケージが構築されることにより、各記録媒体に記録されているデジタルストリームは、あたかも仮想的な一つのパッケージに記録されているかのごとく、再生装置における再生や実行に供される(例えば特許文献1参照)。
ネットワークを介して外部リソース(例えばWWWサーバ等)から新たなデジタルストリームをリライタブル記録媒体にダウンロードすることで、記録媒体の記録内容を拡張/更新することができる。
ところで、仮想パッケージ構築機能を有する再生装置では、外部リソースから複数のデジタルストリームを順次ダウンロードしながら再生すること(所謂、ストリーミングライクな再生)が可能である。
具体的には、外部リソースが例えば、記録媒体に記録された映画本編の視聴後に配信可能となるおまけ映像(ストリームシーケンス)を、複数のデジタルストリームに分割した状態で保持しておき、再生装置は、少なくとも再生開始位置に相当するデジタルストリームのみを予めダウンロードする。そして、そのデジタルストリームの再生を開始した後は、当該デジタルストリームに後続するデジタルストリームを順次ダウンロードしながら再生することで、ストリーミングライクな再生が実現される。
これにより、おまけ映像の一部分だけをダウンロードしておくだけで再生を開始できるので、ユーザのダウンロード待ち時間を短縮することができる。また、一般的なストリーミング再生と異なり、一定の再生区間を有するデジタルストリームをダウンロードした後、再生するので、早送りや巻き戻し、スキップ等といった特殊再生が可能となる。
特開2006−109494号公報
しかしながら、ストリーミングライクな再生機能には、ダウンロード待ち時間が短縮され、特殊再生も可能になるというメリットがある反面、デジタルストリームを再生可能な状態にするのに時間がかかるというデメリットがある。具体的には、ネットワークの混雑状況によって、デジタルストリームのダウンロードに多大な時間を要する場合がある。また、ダウンロードしたデジタルストリームを記録媒体に記録するためにも時間を要し、さらには、デジタルストリームを再生可能な状態にするために当該デジタルストリームに対して誤り訂正等の処理も行う必要がある。
これらの理由により、再生装置が再生中のデジタルストリームの次に再生すべき次デジタルストリームが、当該次デジタルストリームの再生開始時間においても、未だ再生可能な状態になっていない場合がある。
その場合には、再生可能な状態のデジタルストリームが存在しないので、再生装置が再生を停止してしまい、その結果、表示画面に何も表示されない事態が生じ得る。表示画面に何も表示されないと、ユーザに対して再生が終了したという誤った印象を与えかねない。
以上は、おまけ映像を順次ダウンロードしながら再生する場合について説明したが、例えば、記録媒体に記録された映画本編の再生に合わせて、外部リソースから字幕または音声ストリームを含むデジタルストリームを順次ダウンロードしながら再生する場合にも同様の課題が生じ得る。
このように従来の再生装置は、ユーザにとっては、ストリーミングライクな再生を行う際の使い勝手が悪く、使い勝手のよい新たな再生装置が要望されている。
本発明は、ストリーミングライクな再生を行う際の使い勝手を向上させた再生装置を提供することを目的とする。
上記目的を達成するために、本発明の一実施態様である再生装置は、ストリームシーケンスを構成する複数のデジタルストリームをアプリケーションの要求に従って外部リソースから順次ダウンロードしながら再生する再生装置であって、前記ストリームシーケンスに対応するアプリケーションを実行する実行手段と、前記ストリームシーケンスにおける現在の再生時間を示す時間情報を格納する時間情報格納手段と、前記複数のデジタルストリームの各々について再生可能状態であるか、または再生不可能状態であるかを示す状態情報を格納する状態情報格納手段と、前記ストリームシーケンスの再生を制御する再生制御手段とを備え、前記アプリケーションは、前記複数のデジタルストリームそれぞれの再生開始時間及び再生終了時間を示す再生区間情報を含み、前記時間情報格納手段に格納されている時間情報と前記再生区間情報とに基づいて、現在再生されているデジタルストリームの次に再生すべき次デジタルストリームを特定し、前記状態情報格納手段に格納されている、前記次デジタルストリームの状態情報が再生不可能状態であることを示す場合、前記再生制御手段は、前記アプリケーションの要求に従って、再生中のデジタルストリームの表示期間を引き延ばすための特殊再生、または当該デジタルストリームに続き前記次デジタルストリームに代えて代替映像の再生を行う。
上記課題を解決するための手段に記載の構成により、前記アプリケーションは、現在再生されているデジタルストリームの次に再生すべき次デジタルストリームを特定することができる。
前記アプリケーションが次デジタルストリームを特定できるので、前記次デジタルストリームの状態情報が再生不可能状態であることを示す場合には、前記再生制御手段は、前記アプリケーションの要求に従って、再生の停止を回避するための制御を行うことができる。具体的には、再生中のデジタルストリームの表示期間を引き延ばすための特殊再生、または当該デジタルストリームに続いて代替映像の再生を行うことができる。
これにより、表示画面に何らかの映像を表示させつつ、次デジタルストリームを再生可能な状態にするための時間を稼ぐことができるので、ユーザに対して再生が終了したという誤った印象を与えることなく、再生が停止される可能性を低減することができる。
ストリーミングライクな再生を開始する際のダウンロード待ち時間の短縮と、次デジタルストリームが再生可能状態でない場合の再生停止可能性の低減とを両立できるので、ユーザの使い勝手を向上させることができる。
ここで、本発明の別の態様として、前記ストリームシーケンスの再生速度を示す値を格納する再生速度格納手段をさらに備え、前記アプリケーションは、前記再生速度を示す値の正負に基づいて前記ストリームシーケンスの再生方向を特定し、前記次デジタルストリームの特定はさらに、前記再生方向に基づいてなされるとしてもよい。
本態様の再生装置では、ストリームシーケンスの再生方向によらず次に再生すべきデジタルストリームを特定することができるので、ストリームシーケンスの再生方向によらず、再生の停止を回避するための制御を行うことができる。
ここで、本発明の別の態様として、前記複数のデジタルストリームを外部リソースから順次ダウンロードするダウンロード手段をさらに備え、前記次デジタルストリームがダウンロードされていなければ、前記ダウンロードされていない次デジタルストリームの状態情報は再生不可能状態として前記状態情報格納手段に格納され、前記ダウンロード手段は、前記アプリケーションの要求に従って、前記次デジタルストリームを優先的にダウンロードするとしてもよい。
本態様の再生装置では、次デジタルストリームがダウンロードされていなければ、当該次デジタルストリームを優先的にダウンロードするので、再生中のデジタルストリームから次デジタルストリームに再生が遷移する前に、次デジタルストリームの状態情報が、再生可能状態を示す確率を高めることができる。
ここで、本発明の別の態様として、前記再生装置は前記ストリームシーケンスをプレイリストに従って再生しており、前記プレイリストは、複数のプレイアイテムを含み、前記複数のプレイアイテムは、前記複数のデジタルストリームと一対一で対応しており、対応するデジタルストリームの再生区間を示し、前記複数のプレイアイテムのうち一部のプレイアイテムにはチャプタマークが付与されており、前記アプリケーションは、前記一部のプレイアイテムにチャプタマークが付与されていることを示すチャプタマーク付与情報をさらに含み、前記チャプタマーク付与情報に基づいて、前記次デジタルストリームとして、再生中のデジタルストリームの直近の、チャプタマークが付与されているプレイアイテムに対応するデジタルストリームを特定するとしてもよい。
また、本発明の別の態様として、前記ダウンロード手段は、前記アプリケーションの要求に従って、チャプタマークが付与されている残りのプレイアイテムに対応するデジタルストリームを優先的にダウンロードするとしてもよい。
本態様の再生装置では、チャプタマークが付与されているプレイアイテムに対応するデジタルストリームが特定され、当該デジタルストリームが優先的にダウンロードされるので、チャプタスキップ指示をユーザから受け付けた場合であっても、可能な限りデジタルストリームの再生を一時停止することなくストリーミングライクな再生を実現することができる。
ここで、本発明の別の態様として、前記複数のプレイアイテムのうちチャプタマークが付与されているプレイアイテムに対応するデジタルストリームのサイズが、他のデジタルストリームのサイズより小さいとしてもよい。
本態様の再生装置では、チャプタマークが付与されているプレイアイテムに対応するデジタルストリームのサイズが、他のデジタルストリームのサイズより小さいので、再生中にユーザ操作によりチャプタスキップが発生した際、スキップ先のデジタルストリームのダウンロードが完了していない場合であっても、ダウンロードに要する時間は短くて済み、ユーザの待ち時間を短縮できる。
ここで、本発明の別の態様として、前記ストリームシーケンスにおける再生開始位置に相当するデジタルストリームの状態情報が、再生可能状態であることを示しており、前記アプリケーションは、前記再生開始位置からダウンロードが完了しておらず、前記状態情報が再生不可能状態であることを示す一のデジタルストリームの直前のデジタルストリームまでの再生時間と、ダウンロードが完了していないデジタルストリームのうち先頭のデジタルストリームから当該一のデジタルストリームまでをダウンロードするのに必要な総ダウンロード時間とを算出し、総ダウンロード時間が再生時間よりも短い場合に、前記再生制御手段は、前記アプリケーションの要求に従って、前記再生開始位置から再生を開始するとしてもよい。
本態様の再生装置では、状態情報が再生不可能状態であることを示す一のデジタルストリームについて、総ダウンロード時間が再生時間よりも短い場合に、再生を開始するので、再生開始後すぐにBD-Jアプリケーションにより一時停止指示がなされる可能性を低減することができる。
ここで、本発明の別の態様として、前記アプリケーションによる再生時間及び総ダウンロード時間の算出は、ダウンロードが完了しておらず、前記状態情報が再生不可能状態であることを示す全てのデジタルストリームについてなされ、前記全てのデジタルストリームについて、総ダウンロード時間が再生時間よりも短い場合に、前記再生制御手段により再生の開始がなされるとしてもよい。
本態様の再生装置では、状態情報が再生不可能状態であることを示す全てのデジタルストリームについて、総ダウンロード時間が再生時間よりも短い場合に、前記再生制御手段により再生の開始がなされるので、再生開始後すぐにBD-Jアプリケーションにより一時停止指示がなされる可能性をさらに低減することができる。
ここで、本発明の別の態様として、前記ストリームシーケンスとともに複数のサブストリームシーケンスを前記外部リソースからダウンロードしながら再生しており、前記ストリームシーケンスは、メインクリップであり、各サブストリームシーケンスは、サブクリップであり、複数のサブデジタルストリームから構成され、前記サブクリップは、字幕ストリームまたはオーディオストリームを含み、前記状態情報はさらに、前記複数のサブデジタルストリームの各々について再生可能状態であるか、または再生不可能状態であるかを示しており、前記再生制御手段が、前記メインクリップとともに一のサブクリップのサブデジタルストリームを再生している場合において、当該サブデジタルストリームの次に再生すべき次サブデジタルストリームの状態情報が、再生不可能状態であることを示しており、他のサブクリップのサブデジタルストリームの状態情報が再生可能状態であることを示していれば、前記再生制御手段は、前記アプリケーションの要求に従って、当該他のサブデジタルストリームを前記一のサブデジタルストリームに続いて再生するとしてもよい。
本態様の再生装置では、次サブデジタルストリームの状態情報が、再生不可能状態であることを示しており、他のサブクリップのサブデジタルストリームの状態情報が再生可能状態であることを示していれば、当該他のサブデジタルストリームを前記一のサブデジタルストリームに続いて再生するので、次に再生すべきサブデジタルストリームが再生可能状態でない場合であっても、再生を一時停止することなく、再生を継続させることができる。
ここで、本発明の別の態様として、前記ストリームシーケンスとともに複数のサブストリームシーケンスを前記外部リソースからダウンロードしながら再生しており、前記ストリームシーケンスは、メインクリップであり、各サブストリームシーケンスは、サブクリップであり、複数のサブデジタルストリームから構成され、前記サブクリップは、字幕ストリームまたはオーディオストリームを含み、前記状態情報はさらに、前記複数のサブデジタルストリームの各々について再生可能状態であるか、または再生不可能状態であるかを示しており、前記再生制御手段が、前記メインクリップとともに一のサブクリップのサブデジタルストリームを再生している場合において、当該一のサブクリップから他のサブクリップへの切り替え指示をユーザから受け付けた場合、前記他のサブクリップにおける再生対象となるサブデジタルストリームの状態情報が再生不可能状態であることを示していれば、前記再生制御手段は、前記アプリケーションの要求に従って、再生中のデジタルストリーム及びサブデジタルストリームの表示期間を引き延ばすための特殊再生を行うとしてもよい。
本態様の再生装置では、切り替え指示をユーザから受け付けた場合、切り替え先のサブデジタルストリームが再生不可能状態であることを示していれば、再生制御手段は、再生の停止を回避するための制御を行うので、再生が停止される可能性を低減することができる。
再生装置100の、使用行為についての形態の一例を示す図である。 プレイリストの一例を示す図である。 プレイリストの具体例を示す図である。 AVクリップがどのようにしてダウンロードされるかを示す図である。 再生装置100の構成の一例を示す図である。 クリップ番号と状態情報との対応テーブルを示す図である。 システムパラメータ(SPRM)の一覧を示す図である。 BD-Jアプリケーションの機能構成を示すブロック図である。 ネットワーク再生情報とプレイリストとの対応関係を示す図である。 ストリーミングライクな再生機能を模式的に示す図である。 再生開始タイミングを説明するための図である。 BD-Jアプリケーションの処理手順を示すフローチャートである。 プレイリスト再生開始タイミング処理の処理手順を示すフローチャートである。 優先ダウンロード処理の処理手順を示すフローチャートである。 優先度リスト作成処理の処理手順を示すフローチャートである。 再生状況監視処理の処理手順を示すフローチャートである。 プレイアイテム特定処理の処理手順を示すフローチャートである。 プレイリスト再生処理の処理手順を示すフローチャートである。 次に再生すべきAVクリップがEnable状態でない場合のBD-Jアプリケーションによる再生制御を説明するための図である。 変形例1−2における優先度リスト作成処理の処理手順を示すフローチャートである。 チャプタマークが付与されたプレイアイテムが参照するAVクリップのダウンロード時間をどのように短縮するかを説明するための図である。 実施の形態2のプレイリストの具体例を示す図である。 サブプレイアイテムを伴う場合のストリーミングライクな再生機能を模式的に示す図である。 実施の形態2における優先ダウンロード処理の処理手順を示すフローチャートである。 実施の形態2の再生状況監視処理の処理手順を示すフローチャートである。 実施の形態2のプレイリスト再生処理の処理手順を示すフローチャートである。 字幕切り替えがユーザによって要求されたため、現在の再生時点が、サブパス(ID=#0)の10003.m2tsを参照しているサブプレイアイテム#3から、サブパス(ID=#1)の20003.m2tsを参照しているサブプレイアイテム#3に変化した場合を想定した図である。 サブパス変更における再生状況監視処理の処理手順を示すフローチャートである。 次に再生すべきサブプレイアイテムが参照しているAVクリップがEnable状態でない場合の再生制御を説明するための図である。 変形例2−2における再生状況監視処理の処理手順を示すフローチャートである。 オーサリングシステムの構成を示す図である。 (a)ROMディスクイメージの作成手順を示すフローチャートである。(b)アップデートキットイメージの作成手順を示すフローチャートである。 AVクリップの構成の一例を示す図である。 AVクリップがどのように多重化されるかを模式的に示す図である。 PESパケット列にビデオストリームがどのように格納されるかを示す図である。 AVクリップに最終的に書き込まれるTSパケットの形式を示す図である。 PMTのデータ構造を示す図である。 クリップ情報ファイルの一例を示す図である。 ストリーム属性情報の一例を示す図である。 エントリマップの一例を示す図である。 プレイリスト情報のデータ構造を示す図である。 サブパス情報の内部構成を示す図である。 STN_tableの全体構成の一例を示す図である。 システムターゲットデコーダ104の内部構成の一例を示す図である。 BD-ROMの構成の一例を示す図である。 インデックスファイルの内部構成の一例を示す図である。 ムービーオブジェクトを説明するための図である。 ローカルストレージ300に格納されるアップデートキットの内部構成の一例を示す図である。 マージ管理情報ファイルの内容と、その内容を元にBD-ROMのファイルとアップデートキットのファイルとから、仮想パッケージを構築する過程の一例を示す図である。 ネットワーク再生情報の一例を示す図である。
以下、図面を参照しながら本発明の実施の形態を説明する。
(実施の形態1)
<全体構成>
まず、再生装置の実施行為のうち、使用行為についての形態を説明する。図1は、再生装置100の、使用行為についての形態の一例を示す図である。本図に示すように、再生装置100は、BD-ROM200、ローカルストレージ300、WWWサーバ400、及びテレビ500と共にユーザによる使用に供される。
再生装置100は、テレビ500と共に、ホームシアターシステムを構築して、BD-ROM200を再生する。かかる再生装置は、ダウンロードしたデータを記録媒体に書き込む機能を有したものであり、記録装置としての機能を兼備している。
BD-ROM200は、例えば映画作品が記録された記録媒体である。
ローカルストレージ300は、再生装置100に装填され、映画配給者のWWWサーバ400から配信されたコンテンツの受け皿として利用される。これにより、インターネットを通じてダウンロードされ、ローカルストレージに格納されたコンテンツと、BD-ROM200に記録されたコンテンツとを組み合わせて、BD-ROM200のコンテンツを拡張/更新をすることができる。
WWWサーバ400は、例えば映画配給者の公式サイトを運営するサーバ装置であり、BD-ROM200に記録された映画作品の部分的な置き換えや追加を実現するファイル一式(アップデートキット)を、インターネット等を介してユーザに供給する。
テレビ500は、映画作品の再生映像を表示したり、メニュー等を表示したりすることで、対話的な操作環境をユーザに提供する。
以上が再生装置の使用形態についての説明である。続いて、再生装置が再生の対象としているプレイリストについて説明する。
<プレイリスト>
図2は、プレイリストの一例を示す図である。プレイリストは、「メインパス」と1つ以上の「サブパス」とから構成される。
「メインパス」は、1つ以上のプレイアイテムから構成される。
「プレイアイテム」は、ストリーム番号テーブルを含む。
「ストリーム番号テーブル」は、プレイアイテムにおいて再生が許可されているエレメンタリストリームのストリーム番号を示す。
「サブパス」は、メインパスと同時に再生される一連の再生経路を示し、1つ以上のサブプレイアイテムから構成される。サブパスには、プレイリストに登録される順にID(サブパスID)が振られ、このサブパスIDは、サブパスを識別するために使われる。また、サブパスには、メインパスの再生に同期して再生される同期型と、メインパスの再生に非同期で再生可能な非同期型とがあり、そのタイプはサブパスタイプに記される。
サブパスタイプが同期型の場合は、サブプレイアイテムの再生開始時刻と再生終了時刻は、メインパスと同じ時間軸で表されるが、サブパスタイプが非同期型の場合は、サブプレイアイテムの再生開始時刻と再生終了時刻は、メインパスと異なる時間軸で表される。
プレイリスト情報、プレイアイテム情報、ストリーム番号テーブル、及びサブプレイアイテム情報の詳細については、後述する。
図3は、プレイリストの具体例を示す図である。このプレイリストは、5つのプレイアイテム#1,#2,#3,#4,#5を含むメインパスから構成される。5つのプレイアイテム#1,#2,#3,#4,#5は、それぞれ00001.m2ts、00002.m2ts、00003.m2ts、00004.m2ts、00005.m2tsを参照している。すなわちプレイアイテムとAVクリップとが一対一に対応している。
各プレイアイテムから参照されるAVクリップは、全てローカルストレージに格納されるアップデートキットのコンテンツであり、ネットワーク属性が付与されている。ネットワーク属性とは、プレイリスト再生にあたって、一つのコンテンツを構成する全てのAVクリップが予めローカルストレージに格納されていることを必要とせず、プレイアイテムから参照されるAVクリップが、当該プレイアイテムがカレントプレイアイテムになる直前にローカルストレージに格納されていれば足りる、というAVクリップの属性のことである。
メインパスの各プレイアイテムは、図中右上のようなストリーム番号テーブルを有する。このストリーム番号テーブルは、ストリーム番号1が割り当てられたエントリーをもつ。このエントリーは、メインパスのプレイアイテム情報によって参照されるプライマリビデオストリームの再生を許可するものである。
本実施の形態においては、これ以降、図3に示すプレイリストを具体例として用いて、再生装置の動作を説明する。このプレイリストは、例えば、BD-ROM200に記録された映画がユーザに視聴された後、WWWサーバ400から配信されるおまけ映像に対応するものである。
図4は、AVクリップがどのようにしてダウンロードされるかを示す図である。本図における右側はWWWサーバ400を示し、左側は再生装置100を示す。真ん中は、インターネットやイントラネット等の伝送路を示す。
00001.m2ts、00002.m2ts、00003.m2ts、00004.m2ts、00005.m2tsは、WWWサーバ400に存在する。再生装置100は、WWWサーバ400に対し、00001.m2ts、00002.m2ts、00003.m2ts、00004.m2ts、00005.m2tsのダウンロード要求を順次送信することで、これらをWWWサーバ400からダウンロードすることができる。
以下、再生装置100がダウンロード要求、ダウンロード、及びプレイリスト再生を行うための構成要素について説明する。これらの処理のための構成要素には、BD-Jアプリケーションと、BD-Jオブジェクトとがあり、これらは記録媒体200に記憶されている。以下、これらの構成要素の詳細について説明する。
<BD-Jアプリケーション>
BD-Jアプリケーションは、Java(登録商標)2Micro_Edition(J2ME) Personal Basis Profile(PBP 1.0)と、Globally Executable MHP specification(GEM1.0.2)for package media targetsとをフル実装したプラットフォーム部において、タイトルを生存区間としたアプリケーションシグナリングによって起動されるJava(TM)アプリケーションである。
BD-Jアプリケーションは、プレイリストを再生するJMFプレーヤインスタンスの生成をJava(TM)仮想マシンに命じることで、プレイリスト再生を開始させる。JMF(Java Media Frame work)プレーヤインスタンスとは、JMFプレーヤクラスを基にして仮想マシンのヒープメモリ上に生成される実際のデータのことである。
JMFインスタンスが生成された後、BD-Jアプリケーションは、プレイリスト再生にあたって、必要となるAVクリップのダウンロードをWWWサーバ400に対して要求する。
上述したようなプレイリスト再生及び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展開ソフトウェアにより中身を確認することができる。
また、BD-Jアプリケーションでは、ファンクションAPIのコールを記述することにより、再生装置100特有の処理を実行させることができる。
<BD-Jオブジェクト>
BD-Jオブジェクトは、アプリケーション管理テーブル(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)を規定することができる。
続いて、再生装置100の内部構成について説明する。
<再生装置>
図5は、再生装置100の構成の一例を示す図である。再生装置100は、BD-ROMドライブ101、リードバッファ102、リードバッファ103、システムターゲットデコーダ104、BD-J実行部105、ネットワークインタフェイス106、仮想パッケージ制御部107、状態管理部108、ユーザイベント処理部109、再生エンジン110、再生制御エンジン111、HDMI送受信部112、ヒープメモリ113、仮想マシンインタプリタ114、及びPSRセット115を含んで構成されている。以降、これらの構成要素について詳細に説明する。
<BD-ROMドライブ101>
BD-ROMドライブ101は、BD-ROMディスクからデータを読み出し、リードバッファ102にデータを蓄える。
<リードバッファ102>
リードバッファ102は、BD-ROMドライブを使って読み込んだデータを一時的に格納するメモリ等で構成されたバッファである。
<リードバッファ103>
リードバッファ103は、ローカルストレージから読み込んだデータを一時的に格納するメモリ等で構成されたバッファである。
<システムターゲットデコーダ104>
システムターゲットデコーダ104は、リードバッファ102に読み出されたソースパケット及びリードバッファ103に読み出されたソースパケットに対して多重分離処理を行い、多重分離処理により得られる各ストリームをデコードし再生する処理を行う。
また、BD-J実行部105から転送される、メニューなどに表示するためのJPEG,PNGなどのグラフィックスデータをデコードして再生する処理を行う。システムターゲットデコーダ104の詳細については後述する。
<BD-J実行部105>
BD-J実行部105は、仮想パッケージ制御部107から転送されるBD-Jアプリケーションを実行するプログラム処理エンジンである。BD-Jアプリケーションのプログラムに従った動作を行い、次のような制御を行う。
(1)仮想パッケージ制御部107を介して、プレイリスト再生開始タイミング処理、優先ダウンロード処理及び再生状況監視処理を行う。これらの処理の詳細は、後述する。(2)インターネット上のWWWサーバからアップデートキットを取得しローカルストレージへ蓄積する。(3)BD-ROMとアップデートキットとを組み合わせた仮想パッケージの構築を命令する。(4)プレーヤ変数に値をセットする。(5)システムターゲットデコーダに対してメニューやゲームのグラフィックスのためのPNG・JPEGを転送して画面に表示する。これらはプログラムの作りに応じて自由に行うことができ、どのように制御するかは、オーサリング時におけるBD-Jアプリケーションのプログラミング工程によって決まる。
<ネットワークインタフェイス106>
ネットワークインタフェイス106は、再生装置における通信機能を実現するものであり、URL指定がBD-Jアプリケーションから与えられれば、そのURLにあたるwebサイトとのTCPコネクション、FTPコネクション等を確立する。かかるコネクション確立によりwebサイトからのダウンロードをJava(TM)アプリケーションに行わせる。
<仮想パッケージ制御部107>
仮想パッケージ制御部107は、BD-ROMドライブ101及びローカルストレージ300を制御して、仮想パッケージを構築し、再生装置100の再生を制御する機能を持つ。仮想パッケージとは、ローカルストレージ300に格納されたマージ管理情報に基づいて、BD-ROMディスクに記録されたコンテンツとローカルストレージ300に格納された差分データとをメモリ上で組み合せた仮想的なBD-ROMパッケージである。構築された仮想パッケージは、BD-ROMのデータ構造と同じ形式を持つ。仮想パッケージを構築するタイミングは、ディスクがインサートされた時や、BD-J実行部105により仮想パッケージ構築命令が実行された時などである。
仮想パッケージ制御部107は、仮想パッケージが構築された後は、BD-J実行部の再生命令やユーザイベント処理部の通知に基づいて、プレイリスト情報を介して、AVクリップの再生を制御する。また、仮想パッケージ制御部107は、プレーヤ変数の設定や参照を行い、再生動作を行う。
<状態管理部108>
状態管理部108は、BD-ROM及びローカルストレージに存在する個々のAVクリップの状態情報を、当該AVクリップのクリップ番号に対応付けて管理する。状態情報は、Missing状態、Enable状態、及びDisable状態の何れであるかを示す。
Missing状態とは、プレイアイテム情報、またはサブプレイアイテム情報から参照されているAVクリップが、BD-ROM及びローカルストレージの何れにも存在しない、すなわちダウンロードが完了しておらず、再生不可能な状態であることを意味する。
Enable状態とは、仮想パッケージ制御部107での再生が可能な状態であることを意味し、BD-JアプリケーションのAPIで制御される。Enable状態にセットするためのAPIが実行された場合、セットの対象となるAVクリップは、リードオンリー属性になり、仮想パッケージ制御部107でのAVクリップの再生が可能になる。
Disable状態は、Enable状態の反対を意味し、仮想パッケージ制御部107は当該状態に該当するAVクリップの再生をすることができない。BD-JアプリケーションによりEnable状態に一度もセットされていないAVクリップは、Disable状態である。また、Enable状態のAVクリップの削除や上書き等は、BD-Jアプリケーションが、APIを介して、当該AVクリップをDisable状態に一度遷移させた後に、実行される。
Missing状態及びDisable状態を併せてUnavailable 状態といい、Missing状態になっているAVクリップと、Disable状態になっているAVクリップとを併せてUnavailableクリップという。
図6は、クリップ番号と状態情報との対応テーブルを示す図である。本図に示す例では、クリップ番号00001,00002,00003の各々に対応する00001.m2ts、00002.m2ts、00003.m2tsがEnable状態であり、クリップ番号00004に対応する00004.m2tsがDisable状態であり、クリップ番号00005に対応する00005.m2tsがMissing状態であることがわかる。対応テーブルは、AVクリップのダウンロード状況等に基づいて、BD-Jアプリケーションにより適宜書き換えられる。
状態管理部108は、BD-JアプリケーションからAVクリップの状態情報の問い合わせを受けると、対応テーブルを参照し、当該AVクリップの状態情報を返信する。
<ユーザイベント処理部109>
ユーザイベント処理部109は、リモコンを通じたユーザ操作に応じた処理の実行をBD-J実行部105や仮想パッケージ制御部107に依頼する。例えば、リモコンのボタンを押した場合は、そのボタンに対応するプレイリストを実行するようBD-J実行部105に依頼する。また、例えば、リモコンで早送り・巻戻しボタンが押された場合には、仮想パッケージ制御部107に、現在再生しているプレイリストのAVクリップに対する早送り・巻戻し処理の実行を命令する。
<再生エンジン110>
再生エンジン110は、AV再生ファンクションを実行する。再生装置のAV再生ファンクションとは、DVDプレーヤ、CDプレーヤから踏襲した伝統的な機能群であり、再生開始(Play)、再生停止(Stop)、一時停止(Pause On)、一時停止の解除(Pause Off)、Still機能の解除(still off)、速度指定付きの早送り(Forward Play(speed))、速度指定付きの巻戻し(Backward Play(speed))、音声切り換え(Audio Change)、Secondaryビデオ切り換え(Subtitle Change)、及びアングル切り換え(Angle Change)といった機能である。AV再生ファンクションを実現するべく、再生エンジン110は、AVクリップのうち、所望の時刻にあたる部分のデコードを行うよう、システムターゲットデコーダを制御する。
<再生制御エンジン111>
再生制御エンジン111は、プレイリストに対する再生制御ファンクションを実行する。プレイリストに対する再生制御ファンクションとは、再生エンジン110が行うAV再生ファンクションのうち、再生開始や再生停止を、カレントプレイリスト情報及びクリップ情報に従って行わせることをいう。
<HDMI送受信部112>
HDMI送受信部112は、HDMI(HDMI: High Definition Multimedia Interface)を介して接続された他の機器から、その機器に関する情報を受信する。また、システムターゲットデコーダによるデコードにより得られたデジタル非圧縮のビデオを、LPCM状態のオーディオデータまたは圧縮符号化されたオーディオデータとともに、HDMIを介して接続された他の機器に送信する。
<ヒープメモリ113>
ヒープメモリ113は、BD-J実行部105のために確保されるスタックメモリであり、BD-Jアプリケーションによって生成されたJMFプレーヤインスタンスや、BD-Jアプリケーションに対してクラスローダを行うことで生成されるバイトコードが格納される。これらは、スレッドの態様をなし、先入先出し式に、仮想マシンインタプリタ114による実行に供される。
<仮想マシンインタプリタ114>
仮想マシンインタプリタ114は、ヒープメモリ113に格納されたバイトコードをCPUが実行可能なネィティブコードに変換してCPUに実行させる。
<PSRセット115>
PSRセット115は、プレーヤ変数を格納しているプレーヤセッティングレジスタ、プレーヤステータスレジスタである。プレーヤ変数には、プレーヤの状態を示すシステムパラメータ(SPRM)と、一般用途として使用可能なゼネラルパラメータ(GPRM)とがある。
図7は、システムパラメータ(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)は、対応するレジスタのレジスタ番号を意味している訳ではない)。
<システム時間生成部116>
システム時間生成部116は、システム起動時からの経過時間を示すシステム時間情報を生成し、BD-J実行部105へ提供する。
続いて、BD-Jアプリケーションの機能構成について説明する。
<BD-Jアプリケーションの機能構成>
図8は、BD-Jアプリケーションの機能構成を示すブロック図である。図8に示すように、BD-Jアプリケーションは、再生制御部121、優先順位決定部122、ストリームダウンロード部123、無効クリップ判定部124、ダウンロード状況判定部125、ナビゲーション制御部126、メニュー表示部127、及び再生クリップ検出部128を含んで構成される。
<再生制御部121>
再生制御部121は、次のような処理を行う。(i)再生中のAVクリップの次に再生すべき次AVクリップの通知を再生クリップ検出部128から受け付け、次AVクリップが再生可能状態であるか、または再生不可能状態であるかの判定を無効クリップ判定部124に依頼する。(ii)次AVクリップが再生可能状態であるか、または再生不可能状態であるかの判定結果を無効クリップ判定部124から受け付け、その判定結果に基づいて、再生制御エンジン111を制御する。(iii)再生中のAVクリップの通知及び再生速度を再生クリップ検出部128から受け付け、ダウンロードが完了しておらず状態情報が再生不可能状態であることを示すAVクリップをダウンロードする際の優先順位を決定するよう、優先順位決定部122に依頼する。優先順位決定部122への依頼の際、再生中のAVクリップのクリップ番号及び再生速度を通知する。(iv)システム時間生成部116からシステム時間を、ダウンロード状況判定部125からダウンロード済みのAVクリップのクリップ番号を取得する。システム時間とクリップ番号とネットワーク再生情報とに基づいて、再生制御エンジン111にプレイリストの再生開始を指示する。
<優先順位決定部122>
優先順位決定部122は、ネットワーク再生情報、再生中のAVクリップのクリップ番号、再生速度、及びダウンロードが完了していないAVクリップのクリップ番号に基づいて、どのAVクリップを優先してダウンロードすべきかを示す優先度リストを作成する。
<ストリームダウンロード部123>
ストリームダウンロード部123は、優先度リストに基づいて、ダウンロードが完了していないAVクリップのダウンロードをネットワークインタフェイス部106に指示する。
<無効クリップ判定部124>
無効クリップ判定部124は、次AVクリップの状態情報を状態管理部108に要求する。その状態情報から次AVクリップが再生可能状態であるか、または再生不可能状態であるかを判定し、その結果を再生制御部121に通知する。
<ダウンロード状況判定部125>
ダウンロード状況判定部125は、再生中のプレイリストに対応する各AVクリップの状態情報を状態管理部108に要求する。それら状態情報から当該状態情報に対応するAVクリップのダウンロードが完了しているか否かを判定し、ダウンロードが完了していると判定したAVクリップのクリップ番号を再生制御部121に通知する。また、ダウンロードが完了していないと判定したAVクリップのクリップ番号を優先順位判定部122に通知する。
<ナビゲーション制御部126>
ナビゲーション制御部126は、ユーザ操作に応じた処理を行うようメニュー表示部127及び再生制御部121を制御する。例えば、ユーザ操作がプレイリスト及びプレイアイテムの選択である場合には、再生制御部121に対し、選択されたプレイリストのプレイアイテムが参照しているAVクリップを再生するよう、指示する。
<メニュー表示部127>
メニュー表示部127は、システムターゲットデコーダに対してメニューやゲームのグラフィックスのためのPNG・JPEGを転送し、画面に表示する。
<再生クリップ検出部128>
再生クリップ検出部128は、PSRセットから現在の再生時間を取得し、取得した再生時間をネットワーク再生情報に照らし合わせて、現在再生されているAVクリップを特定する。また、PSRセットから再生速度を取得し、再生速度の正負に基づいて再生方向を特定し、特定した再生方向及びネットワーク再生情報に基づいて、現在再生されているAVクリップの次に再生すべきAVクリップを特定する。
<ネットワーク再生情報>
続いて、図9は、ネットワーク再生情報と図3で示したプレイリストとの対応関係を示す図である。図9に示すように、ネットワーク再生情報は、クリップ番号、開始時間、終了時間、チャプタマーク付与情報、及びファイルサイズを含む。これらは、図3で示したプレイリストにおけるプレイアイテムの数と同じだけ存在する。すなわち、プレイアイテムと、図9で示すネットワーク再生情報における一行分の情報とが、一対一に対応している。
クリップ番号は、対応するプレイアイテムが参照しているAVクリップのファイル名に対応しており、当該ファイル名と同じ値を示す。
開始時間は、対応するプレイアイテムにおける再生開始時刻に対応しており、再生開始時刻と同じ値を示す。
終了時間は、対応するプレイアイテムにおける再生終了時刻に対応しており、再生終了時刻と同じ値を示す。
チャプタマーク付与情報は、対応するプレイアイテムにチャプタマークが付与されているか否かを示す情報である。
ファイルサイズは、対応するプレイアイテムが参照しているAVクリップのファイルサイズを示す。
BD-Jアプリケーションが上述したネットワーク再生情報を保持しているので、再生装置から現在の再生時間を取得し、ネットワーク再生情報に照らし合わせることで、カレントプレイアイテムを特定することができる。プレイアイテムとAVクリップとは、一対一で対応しているため、ネットワーク再生情報に含まれるクリップ番号を基に、再生中のAVクリップを特定することができる。
さらに、再生装置から再生速度を取得し、ネットワーク再生情報に照らし合わせることで、その次に再生すべきAVクリップを特定することができる。
<具体例>
続いて、仮想パッケージを利用したストリーミングライクな再生機能における再生制御エンジン111の再生遷移について説明する。図10は、ストリーミングライクな再生機能を模式的に示す図である。
ストリーミングライクな再生機能とは、プレイアイテム情報又はサブプレイアイテム情報によって参照されているAVクリップであって、ネットワーク属性が付与されているものを、当該プレイアイテム情報又はサブプレイアイテム情報が、カレントプレイアイテム又はカレントサブプレイアイテム情報になる直前にローカルストレージに格納するよう、再生動作とダウンロード動作とを並列に行うことをいう。
図10上段は、プレイリストを示し、プレイリストを構成する5つのプレイアイテムは、それぞれ、00001.m2ts、0002.m2ts、00003.m2ts、00004.m2ts、00005.m2tsを参照する。これらはすべてローカルストレージに格納されたアップデートキットのコンテンツであり、ネットワーク属性が付与されている。このうち、00001.m2ts、00002.m2tsは、すでにダウンロードが完了しており、BD-JアプリケーションによりEnable状態にセットされている。00003.m2ts、00004.m2ts、00005.m2tsは、まだダウンロードがされていないMissing状態であるか、あるいはダウンロードはされているがDisable状態であることを示す。
再生制御エンジン111がプレイリストの先頭プレイアイテムから順に再生する場合、その再生位置がプレイアイテム#1に存在する限り、再生が妨げられることはない。プレイアイテム#1, #2のプレイアイテム情報は、Enable状態であるAVクリップを参照しているからである。00003.m2tsがEnable状態にセットされていないため、プレイアイテム#2の区間では、00003.m2tsの状態情報に基づいてBD-Jアプリケーションにより一時停止され得る。
図10上段では、プレイアイテム#2の途中まで再生が進行している。
図10中段は、図10上段からさらに再生位置が進んだ図を示し、再生位置がプレイアイテム#3に遷移する前に00003.m2tsのダウンロードが完了し、BD-JアプリケーションによりEnable状態にセットされたことを示す。したがって、プレイアイテム#2の区間において、一時停止されることなく、プレイアイテム#3に遷移する。
図10中段では、再生は、プレイアイテム#3の途中まで進行している。
図10下段は、図10中段からさらに再生位置が進んだ図を示し、再生位置がプレイアイテム#4に遷移する前に、00004.m2tsのダウンロードが完了しておらずMissing状態であるか、あるいはDisable状態であることを示す。この場合、00004.m2ts は再生可能状態ではないので、BD-Jアプリケーションにより00003.m2tsの再生の一時停止指示がなされることになる。
これにより、00003.m2tsに続いて00004.m2tsの再生が試みられる前に、BD-Jアプリケーションが00003.m2tsの再生を一時停止する要求を再生制御エンジン111に送ることで、再生が一時停止されるので、表示画面に何らかの映像が表示された状態を維持することができる。
したがって、00004.m2tsが再生可能な状態でないために、再生が停止される事態を回避することができる。
また、00003.m2tsの再生を一時停止することで、00004.m2tsをEnable状態に遷移させる時間を稼ぐことができ、00004.m2ts がEnable状態に遷移次第、一時停止を解除し再生を再開することも可能となる。
以上のように、再生の一時停止はなされるものの、再生の停止、すなわち表示画面に何も表示されない状態が発生しない、ストリーミングライクな再生を実現することができる。
<再生開始タイミング>
続いて、プレイリスト再生の開始タイミングについて説明する。ストリーミングライクな再生機能では、少なくとも再生開始位置に相当するAVクリップさえEnable状態であれば再生を開始することができる。しかしながら、再生開始位置に相当するAVクリップのみがEnable状態である場合に再生を開始すると、ネットワークの混雑状況等によっては、次に再生すべきAVクリップがEnable状態になっていないために、再生開始後すぐにBD-Jアプリケーションにより一時停止指示がなされ得る。
そこで、ここでは、ネットワークの混雑状況によって大きく影響を受けるダウンロード時間に焦点を絞り、このダウンロード時間に基づいて、可能な限りAVクリップの再生を一時停止することなくストリーミングライクな再生を実現するための方法について説明する。
図11は、再生開始タイミングを説明するための図である。図11(a)は、#1~#9の9つのプレイアイテムからなるプレイリストを示している。ここで、現時点で、プレイアイテム#1,#2に対応するAVクリップのダウンロードが完了しており、他のプレイアイテムに対応するAVクリップのダウンロードは完了していないとする。このような状況において、一度もAVクリップの再生を一時停止することなく、ストリーミングライクな再生を実行するためには、ダウンロードすべき残りの全AVクリップにおいて、当該AVクリップの再生が開始されるまでの時間が、当該AVクリップのダウンロードが完了するまでに必要な時間を上回っているか、あるいは等しければよい。この関係を数式で表すと、下記の(数1)となる。

Figure 2010103827
ここで、lは、再生開始位置に相当するAVクリップを示し、mは、ダウンロードが完了していないAVクリップのうち先頭のAVクリップを示す。nは、ダウンロードが完了していないAVクリップのうち一のAVクリップを示す。
プレイアイテム#3~#9のAVクリップの各々において、(数1)の関係が満たされていれば、AVクリップ#1の再生を開始すればよい。
なお、AVクリップのダウンロード時間は、ネットワークの混雑状況によって変化するため、(数1)の関係が満たされた状態で再生が開始されたとしても、再生中のAVクリップの次に再生すべきAVクリップの状態情報が、再生可能な状態を示していない場合も当然あり得る。
しかしながら、再生開始の基準として(数1)を設けることで、再生開始後すぐにBD-Jアプリケーションにより一時停止指示がなされる可能性を低減することはできる。
<BD-Jアプリケーションの処理>
図12は、BD-Jアプリケーションの処理手順を示すフローチャートである。
ステップS1において、BD-Jアプリケーションは、ローディングされたBD-ROMに対応するアップデートキットを、ローカルストレージのBUDA(Biding Unit Data Area)ディレクトリにダウンロードする。
ステップS2において、アップデートキット内のマージ管理情報ファイルを指定した仮想パッケージ構築要求を発行する。
以降、ステップS3〜ステップS6のループを実行する。まず、ステップS3において、プレイリスト、当該プレイリスト中の再生開始位置となるプレイアイテム、及び再生速度を指定するユーザ入力を取得する。
ステップS4において、ユーザ入力に対応するプレイリストを選択し、JMFプレーヤインスタンスをヒープメモリ内にクリエイトする。
ステップS5において、(1)プレイリスト再生開始タイミング処理、(2)優先ダウンロード処理、及び(3)再生状況監視処理という3つのスレッドを仮想マシン内に立てて、これらの処理を並列で実行する。
これらの3つの処理の実行が終了すれば、ステップS6において、3つのスレッドを終了させ、ステップS3に戻る。
<プレイリスト再生開始タイミング処理>
図13は、プレイリスト再生開始タイミング処理の処理手順を示すフローチャートである。本フローチャートにおいて、xは、ダウンロードが完了していない一のAVクリップを特定するための変数であり、xが1のとき、ダウンロードが完了していないAVクリップのうち再生開始位置に最も近いAVクリップを示す。xが大きくなるにつれて、xにより特定されるAVクリップは、再生開始位置から離れていく。また、yは、ダウンロードが完了していないAVクリップの総数を示す。
まず、ステップS11において、再生制御部121は、指定されたプレイアイテムに対応するAVクリップから再生方向に向かって順次ダウンロードするよう、ストリームダウンロード部123を介してネットワークインタフェイスに指示する。
ステップS12において、システム時間生成部116からダウンロード開始時のシステム時間を取得する。
予め設定された所定時間が経過した後(ステップS13でYes)、ステップS14、15において、ダウンロード済みのAVクリップのクリップ番号と現在のシステム時間とを取得する。
ステップS16において、ネットワーク再生情報を参照して、取得したクリップ番号に対応するAVクリップの総ファイルサイズを算出した後、この総ファイルサイズと、現在のシステム時間とダウンロード開始時のシステム時間との差分とに基づいて、AVクリップのダウンロード速度を算出する。
ステップS17において、変数xに1を設定する。
ステップS18において、再生開始位置から変数xにより特定されるAVクリップの直前のAVクリップまでの再生時間を、ネットワーク再生情報を参照して算出する。
ステップS19において、ダウンロードが完了していないAVクリップのうち変数xにより特定されるAVクリップまでのダウンロードサイズを、ネットワーク再生情報を参照して算出する。
ステップS20において、このダウンロードサイズとステップS16で算出したダウンロード速度とに基づいて、ダウンロードが完了していないAVクリップのうち変数xにより特定されるAVクリップまでのダウンロード時間を算出する。
ステップS21において、再生時間がダウンロード時間以上の長さであるか判定する。
ダウンロード時間が再生時間より長いと判定された場合には、ステップS13に戻る。
再生時間がダウンロード時間以上の長さであると判定された場合には、ステップS22において、xがy以上かの判定、すなわち他にダウンロードが完了していないAVクリップが存在するかの判定を行う。
他にダウンロードが完了していないAVクリップが存在すると判定された場合には、ステップS23において、変数xを1計数し、ステップS18に戻る。
他にダウンロードが完了していないAVクリップが存在すると判定されなかった場合、すなわちダウンロードが完了していない全てのAVクリップについて、ステップS21の関係を満たす場合には、ステップS24において、APIを介して、再生制御エンジン111にプレイリスト再生を指示する。
<優先ダウンロード処理>
図14は、優先ダウンロード処理の処理手順を示すフローチャートである。
まず、ステップS31において、再生クリップ検出部128は、PSRセット115から現在の再生位置を取得する。
ステップS32において、再生中のプレイリストに対応するネットワーク再生情報を取得する。
ステップS33において、現在の再生位置をネットワーク再生情報に照らし合わせて、当該再生位置を含む再生区間を特定する。そして、その再生区間のクリップ番号に基づいて、カレントプレイアイテムを特定する。
ステップS34において、優先順位判定部122は、後述する優先度リスト作成処理を行い、ステップS35において、優先度リストに基づいて、AVクリップをダウンロードするよう指示する。
<優先度リスト作成処理>
図15は、優先度リスト作成処理の処理手順を示すフローチャートである。本フローチャートにおいてiは、一のプレイアイテムを特定する変数である。
まず、ステップS41において、優先順位判定部122は、プレイアイテムiにカレントプレイアイテムを設定する。
ステップS42において、再生速度を取得し、ステップS43において、取得した再生速度に基づいて、プレイリストの再生方向が順方向であるか判定する。この判定は、例えば、再生速度の値の正負に基づいてなされる。
再生速度の値が正の値、すなわち再生方向が順方向であると判定された場合には、ステップS44において、カレントプレイアイテムに後続するプレイアイテムが存在するかをネットワーク再生情報に基づいて判定する。ここで、カレントプレイアイテムに後続するプレイアイテムとは、例えば、プレイアイテム#3がカレントプレイアイテムであるとした場合、プレイアイテム#4が該当する(図3参照)。
後続するプレイアイテムが存在すると判定されなかった場合には、カレントプレイアイテムに続いて再生すべきプレイアイテムは、もはや存在しないので、ダウンロード対象となるAVクリップも存在せず、処理を終了する。
後続するプレイアイテムが存在すると判定された場合には、ステップS45において、そのプレイアイテムに対応するAVクリップのクリップ番号を取得する。
ステップS46において、プレイアイテムiに後続のプレイアイテムを設定する。
ステップS47において、クリップ番号で示されるAVクリップがすでにダウンロード済みであるかを判定する。
クリップ番号で示されるAVクリップがすでにダウンロード済みであると判定された場合には、ステップS43に戻る。
クリップ番号で示されるAVクリップがすでにダウンロード済みであると判定されなかった場合には、ステップS48において、クリップ番号を優先度リストへ格納し、ステップS43に戻る。優先度リストに真っ先に格納されるクリップ番号に対応するAVクリップが、ダウンロードの優先度が最も高いAVクリップとなる。
ステップS43において、再生速度の値が負の値、すなわち再生方向が順方向であると判定されなかった場合には、ステップS49において、カレントプレイアイテムの直前のプレイアイテムが存在するかをネットワーク再生情報に基づいて判定する。ここで、カレントプレイアイテムの直前のプレイアイテムとは、例えば、プレイアイテム#3がカレントプレイアイテムであるとした場合、プレイアイテム#2が該当する(図3参照)。
直前のプレイアイテムが存在すると判定されなかった場合には、カレントプレイアイテムに続いて再生すべきプレイアイテムは、もはや存在しないので、処理を終了する。
直前のプレイアイテムが存在すると判定された場合には、ステップS50において、そのプレイアイテムに対応するAVクリップのクリップ番号を取得する。
ステップS51において、プレイアイテムiに直前のプレイアイテムを設定し、ステップS47に進む。それ以降の処理は、すでに説明した通りである。
以上の処理を経ることで、優先度リストを作成することができる。優先度リストには、ダウンロードの優先度が高い順にクリップ番号が格納されている。
したがって、この優先度リストに基づいてダウンロード指示を行うことで、ダウンロードの優先度が高い、すなわちダウンロードが完了していないAVクリップのうち再生中のAVクリップに最も近いAVクリップから順にダウンロードすることができる。例えば、逆方向の再生がなされている場合、カレントプレイアイテムの直前のプレイアイテムが参照するAVクリップがダウンロードされていなければ、まずは当該AVクリップを優先的にダウンロードする。
その結果、再生中のAVクリップの次に再生すべきAVクリップの状態情報が、再生可能状態を示す確率を高めることができる。
なお、ステップS44において、後続するプレイアイテムが存在すると判定されなかった場合には、処理を終了するとしたが、再生中のプレイアイテムの前のプレイアイテムにさかのぼって、ダウンロードされていないAVクリップがあるか検索してもよい。
<再生状況監視処理>
図16は、再生状況監視処理の処理手順を示すフローチャートである。本フローチャートは、定期的(例えば数秒おき)または不定期に実行される。本フローチャートのステップS61〜63までの処理は、図14のステップS31〜33と同様であるため、ここでは説明を省略する。
ステップS63において、カレントプレイアイテムを特定すると、再生クリップ検出部128は、ステップS64において、後述するプレイアイテム特定処理を行う。
ステップS65において、再生制御部121は、次に再生すべきAVクリップがEnable状態であるか判定する。
そのAVクリップがEnable状態であると判定された場合には、再生を継続する。
そのAVクリップがEnable状態であると判定されなかった場合には、ステップS66において、APIを介して、再生制御エンジン111に再生の一時停止を指示する。
その後、ステップS67において、再生再開処理を行う。再生再開処理は、例えば、図13のステップS13以降の処理を行うことによりなされるとしてもよい。
<プレイアイテム特定処理>
図17は、プレイアイテム特定処理の処理手順を示すフローチャートである。ステップS71において、再生クリップ検出部128は、再生速度を取得し、ステップS72において、取得した再生速度に基づいて、プレイリストの再生方向が順方向であるか判定する。
再生方向が順方向であると判定された場合には、ステップS73において、カレントプレイアイテムに後続するプレイアイテムが存在するかをネットワーク再生情報に基づいて判定する。
後続するプレイアイテムが存在すると判定されなかった場合には、カレントプレイアイテムに続いて再生すべきプレイアイテムは、もはや存在しないので、処理を終了する。
後続するプレイアイテムが存在すると判定された場合には、ステップS74において、そのプレイアイテムに対応するAVクリップのクリップ番号を取得する。
ステップS72において、再生方向が順方向であると判定されなかった場合には、ステップS75において、カレントプレイアイテムの直前のプレイアイテムが存在するかをネットワーク再生情報に基づいて判定する。
直前のプレイアイテムが存在すると判定されなかった場合には、カレントプレイアイテムに続いて再生すべきプレイアイテムは、もはや存在しないので、処理を終了する。
直前のプレイアイテムが存在すると判定された場合には、ステップS76において、そのプレイアイテムに対応するAVクリップのクリップ番号を取得する。
これにより、プレイリストの再生方向によらず次に再生すべきプレイアイテムを特定することができる。したがって、プレイリストの再生方向によらず再生状況監視処理を行うことができる。
<プレイリスト再生処理>
図18は、プレイリスト再生処理の処理手順を示すフローチャートである。ステップS81において、再生制御エンジン111は、プレイリスト情報における、再生開始位置に相当するプレイアイテムをカレントプレイアイテムに設定する。
ステップS82において、カレントプレイアイテムのClip_information_file_nameで指定されているAVクリップを選択する。
以降、ステップS83〜ステップS88のループ処理を実行する。ステップS83において、AVクリップを構成するソースパケットのうち、カレントプレイアイテムのin_timeからout_timeまでの部分をローカルストレージ300から読み出す。
ステップS84において、他にプレイアイテムが存在するか否かを判定する。
他にプレイアイテムが存在すると判定されなかった場合には、処理を終了する。
他にプレイアイテムが存在すると判定された場合には、ステップS85において、PSRセットから再生速度を取得し、ステップS86において、取得した再生情報に基づいて、プレイリストの再生方向が順方向か否かを判定する。
再生方向が順方向であると判定された場合には、ステップS87において、カレントプレイアイテムに後続するプレイアイテムを新たなカレントプレイアイテムに設定する。
再生方向が順方向であると判定されなかった場合には、ステップS88において、カレントプレイアイテムの直前のプレイアイテムを新たなカレントプレイアイテムに設定する。
ステップS87またはステップS88により、新たなカレントプレイアイテムが設定された後、ステップS83に戻る。
以上のように本実施の形態によれば、BD-Jアプリケーションがネットワーク再生情報を含んでおり、現在の再生時間をPSRセットから取得するので、再生時間をネットワーク再生情報に照らし合わせることにより、再生中のAVクリップを特定することができる。
また、PSRセットから再生速度を取得するので、再生速度から再生方向を判定することにより、次に再生すべき次AVクリップを特定することができる。
次AVクリップが特定されると、当該次AVクリップの状態情報を状態管理部108から取得することで、次AVクリップが再生可能状態であるかを判定することができる。
したがって、次AVクリップが再生可能状態でない場合には、再生中のAVクリップを一時停止することにより、再生が停止される状況を回避することができる。
(変形例1−1)
次に再生すべきAVクリップがEnable状態でない場合のBD-Jアプリケーションによる再生制御の内容を代替映像の再生に替えた一変形例について説明する。
図19は、次に再生すべきAVクリップがEnable状態でない場合のBD-Jアプリケーションによる再生制御を説明するための図である。
図19上段は、プレイリストを示しており、このプレイリストは、10個のプレイアイテム#1,#2,#3,~,#10から構成される。10個のプレイアイテムは、それぞれ、00001.m2ts、0002.m2ts、00003.m2ts、・・・、00010.m2tsを参照する。これらはすべてローカルストレージに格納されたアップデートキットのコンテンツであり、プレイアイテム#10以外のプレイアイテムには、ネットワーク属性が付与されている。このうち、00001.m2tsは、すでにダウンロードが完了しており、BD-JアプリケーションによりEnable状態にセットされている。00002.m2ts以降のAVクリップは、まだダウンロードがされていないMissing状態であるか、あるいはダウンロードはされているがDisable状態であることを示す。
また、プレイアイテム#10にはネットワーク属性が付与されていないため、プレイアイテム#10が参照する00010.m2tsは、仮想パッケージ構築時において、ダウンロードが完了している必要がある。
00010.m2tsは、ユーザ通知用のAVクリップであり、図19下段に示すように、例えば、「Download中です」という文字列を含む映像である。このAVクリップに対応するプレイアイテム#10には、チャプタマークが付与されていてもよい。
再生制御エンジン111がプレイリストの先頭プレイアイテムから順に再生する場合、00002.m2tsはまだダウンロードがされていないので、BD-Jアプリケーションは、00001.m2tsの再生中に、プレイアイテム#10に付与されたチャプタマークを指定して00010.m2tsの再生を指示することになる。
以上のように、次に再生すべきAVクリップがEnable状態でない場合に、BD-Jアプリケーションの指示により00010.m2tsを再生することで、再生の停止を回避するとともに、AVクリップがDownload中である旨をユーザに通知することができる。
また、00002.m2tsのダウンロードが完了し、再生可能な状態になれば、00001.m2tsの再生に戻ってもよい。その際、再生を切り替える直前の再生位置を記憶しておいてもよい。
なお、ここでは、ネットワーク属性が付与されていないAVクリップを使用することで、再生を保証したが、ネットワーク属性が付与されたAVクリップであっても、再生開始前にダウンロードを完了しておくことで、プレイリスト再生時には必ず再生可能な状態であることを保証してもよい。
また、プレイアイテム#10に付与されたチャプタマークを指定して00010.m2tsの再生を指示したが、プレイアイテム#10の再生開始時間を指定して再生を開始してもよい。
また、ユーザ通知用AVクリップの映像は、主映像であってもよいし、副映像であってもよい。さらに、再生中のプレイリスト内のAVクリップであってもよいし、別のプレイリストのAVクリップであってもよい。00010.m2tsが再生中のプレイリストとは異なるプレイリストに含まれる場合には、BD-Jアプリケーションは、そのプレイリストを選択して、当該プレイリストにおけるプレイアイテム#10の再生を開始するとしてもよい。その際、プレイアイテム#10を含むプレイリストを示す情報は、例えばBD-Jアプリケーションに含まれるとしてもよい。
(変形例1−2)
チャプタマークの有無に応じて2種類の優先度リストを作成する一変形例について説明する。
再生装置がプレイリスト再生中に、スキップ等の特殊再生指示をユーザから受け付けることがある。この場合には、上述した優先度リストに従ってAVクリップをダウンロードしたとしても、一時停止される頻度を抑えた、ストリーミングライクな再生を必ずしも実現することはできない。
ここでは、プレイリスト再生中にスキップ等の特殊再生指示をユーザから受け付けた場合であっても、可能な限りAVクリップの再生を一時停止することなくストリーミングライクな再生を実現するための方法について説明する。
図20は、変形例1−2における優先度リスト作成処理の処理手順を示すフローチャートである。本フローチャートにおいてiは、一のプレイアイテムを特定する変数である。
本図のステップS91〜97の処理は、図15のステップS41〜47と同様であり、ステップS101〜103の処理は、ステップS49〜51と同様であるため、ここでは説明を省略する。
ステップS97において、クリップ番号で示されるAVクリップがすでにダウンロード済みであると判定されなかった場合には、ステップS98において、プレイアイテムにチャプタマークが付与されているか判定する。
プレイアイテムにチャプタマークが付与されていると判定された場合には、ステップS99において、チャプタマーク有りに対応する優先度リストへクリップ番号を格納する。
プレイアイテムにチャプタマークが付与されていると判定されなかった場合には、ステップS100において、チャプタマーク無しに対応する優先度リストへクリップ番号を格納する。
このように、本変形例では、優先順位判定部122は、チャプタマークの有無に応じた2種類の優先度リストを作成する。
そして、例えばユーザからのスキップ指示があった場合には、チャプタマーク有りに対応する優先度リストに基づいてAVクリップをダウンロードするよう、指示する。
図3を用いて具体的に説明する。仮に現在の再生位置がプレイアイテム#1であるとし、00002.m2ts以降のAVクリップのダウンロードは完了していないものとする。この場合、次にチャプタマークが付与されているプレイアイテムは、プレイアイテム#3である。したがって、ユーザからのスキップ指示があった場合には、チャプタマーク有りに対応する優先度リストに基づいて、00002.m2tsではなく、00003.m2tsを優先的にダウンロードする。その後、00005.m2tsを優先的にダウンロードする。
スキップ等の特殊再生指示により不連続な再生区間を再生する場合であっても、その再生区間に相当するAVクリップ、すなわちチャプタマークが付与されたプレイアイテムが参照するAVクリップを優先的にダウンロードするので、AVクリップの再生が一時停止される可能性を低減することができる。
また、ユーザからのスキップ指示を受け付けていない間は、チャプタマーク無しに対応する優先度リストに基づいてAVクリップをダウンロードするよう、指示すればよい。
このように、ユーザからのスキップ指示の有無に応じて2種類の優先度リストを使い分けることにより、スキップ指示をユーザから受け付けた場合であっても、可能な限りAVクリップの再生を一時停止することなくストリーミングライクな再生を実現することができる。
なお、ここでは、チャプタマークの有無に応じて2種類の優先度リストを作成するとしたが、これに限らず、例えば、ユーザが再度視聴したい箇所を示すレジュームポイントやCM等の区切りを示すマークの有無に応じて作成するとしてもよい。
また、チャプタマーク有りに対応する優先度リストに基づくダウンロードは、ユーザからのスキップ指示があった場合に限らず、ユーザからのスキップ指示を受け付けていない場合になされてもよい。
(変形例1−3)
チャプタマークが付与されたプレイアイテムが参照するAVクリップのダウンロード時間を短縮する一変形例について説明する。
図21は、チャプタマークが付与されたプレイアイテムが参照するAVクリップのダウンロード時間をどのように短縮するかを説明するための図である。図21上段、下段はともにプレイリストを示している。これらは、図21下段のプレイリストにおける、チャプタマークが付与されたプレイアイテムが参照する00003.m2tsのサイズが、他のAVクリップのサイズより小さい点で異なる。すなわち、図21上段に示すプレイリストでは、各AVクリップの再生区間は等しく設定されている。そのため、00001.m2tsの再生中にユーザ操作によりチャプタスキップが発生した際、00003.m2tsのダウンロードが完了していない場合には、そのダウンロードに時間を要し、その再生をすぐに開始することができない場合がある。
一方、図21下段に示すプレイリストでは、00003.m2tsのサイズが、他のAVクリップのサイズより小さく設定されている。したがって、00001.m2tsの再生中にユーザ操作によりチャプタスキップが発生した際、00003.m2tsのダウンロードが完了していない場合であっても、図21上段の例と比べて、ダウンロードに要する時間を短縮でき、00003.m2tsの再生を早く開始することができる。
チャプタマークが付与されたプレイアイテムが参照するAVクリップのサイズを小さくする方法として、そのAVクリップのビットレートを下げることが挙げられる。再生区間が同一のままであってもビットレートを下げることでサイズを小さくすることができる。よって、サーバ側にビットレートの異なるAVクリップを複数用意しておき、ダウンロードの転送レートに応じて、ダウンロードすべきAVクリップをBD-Jアプリケーションが選択するような仕組みにしてもよい。
このような構成にすることで、再生装置が接続されたネットワーク環境に応じたAVクリップのダウンロードが可能となる。
また、サーバ側にビットレートの異なるAVクリップを複数用意しておき、画質優先か、またはリアルタイム性を優先するかをユーザ操作に基づいて選択し、その選択結果に応じて、BD-JアプリケーションがダウンロードすべきAVクリップを選択するとしてもよい。
このような構成にすることで、ユーザの意図を反映させてAVクリップをダウンロードすることができる。
また、チャプタマークが付与されたプレイアイテムが参照するAVクリップの再生時間が、その次のAVクリップのダウンロード時間を上回るか、等しくなるようにすることで、再生位置が変更された後もAVクリップの再生を一時停止することなく、ストリーミングライクな再生を継続することができる。
(実施の形態2)
本実施の形態では、プレイリストがサブパスを含む場合について説明する。図22は、本実施の形態のプレイリストの具体例を示す図である。図22に示すように、このプレイリストは、1つのメインパスと、2つのサブパス(サブパス(ID=0),サブパス(ID=1))とから構成される。メインパスについてはすでに説明しているので、ここではその説明を省略する。ID=0のサブパスは、5つのサブプレイアイテム#1,#2,#3,#4,#5を含み、ID=1のサブパスは、5つのサブプレイアイテム#1,#2,#3,#4,#5を含む。どちらのサブパスも同期型であり、例えば別々の言語の字幕データであるプレゼンテーショングラフィックスストリームが多重化されたAVクリップをそれぞれ参照している。
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が再生される。
<具体例>
図23は、サブプレイアイテムを伴う場合のストリーミングライクな再生機能を模式的に示す図である。図中の矢印は、再生がどこまで進行を示したかを示す。
第1段目は、再生制御エンジン111の再生状態を示し、第2段目は、本実施の形態のプレイリストを示す。第2段目に示すように、00001.m2ts、00002.m2ts、00003.m2ts、10001.m2ts、10002.m2ts、10003.m2ts、20001.m2tsは、すでにダウンロードが完了しており、BD-JアプリケーションによりEnable状態にセットされている。また、他のAVクリップは、Unavailable状態である。
再生制御エンジン111がプレイリストの先頭から順に再生する場合、サブパス(ID=1)に属するサブプレイアイテム#1がカレントサブプレイアイテム情報になっているため、再生は、プレイアイテム#1, サブプレイアイテム#1まで進行可能である。
ただし、プレイアイテム#2では、対応するサブプレイアイテム#2によって参照される20002.m2tsがUnavailableクリップであるから、プレイアイテム#2、サブプレイアイテム#2がそれぞれ、カレントプレイアイテム、カレントサブプレイアイテムになる前に、BD-Jアプリケーションによりプレイアイテム#1, サブプレイアイテム#1の再生の一時停止指示がなされることになる。
そのため、第1段目に示すように、再生制御エンジン111は、プレイアイテム#1, サブプレイアイテム#1の途中までは再生状態になっているが、BD-Jアプリケーションからの指示があると、一時停止状態になる。
これにより、20001.m2tsに続いて20002.m2tsの再生が試みられる前に、BD-Jアプリケーションが00001.m2ts及び20001.m2tsの再生を一時停止する要求を再生制御エンジン111に送るので、表示画面に何らかの映像が表示された状態を維持することができる。したがって、20002.m2tsが再生可能な状態でないために、再生が停止される事態を回避することができる。
また、プレイアイテムの再生のみが進行することを防止できるので、プレイアイテムのみ表示され字幕データが表示されない区間の発生を回避することができる。
<優先ダウンロード処理>
図24は、本実施の形態の優先ダウンロード処理の処理手順を示すフローチャートである。本フローチャートのステップS111〜114の処理は、図14のステップS31〜34と同様であるので、ここではその説明を省略する。
ステップS114において、優先度リスト作成処理を行った後、ステップS115において、優先順位判定部122は、カレントプレイアイテムをSync_Playitem_idに指定しているサブプレイアイテムが存在するか判定する。
サブプレイアイテムが存在すると判定された場合には、ステップS116において、カレントサブプレイアイテムを特定し、ステップS117において、サブプレイアイテムに関する優先度リスト作成処理を行う。サブプレイアイテムに関する優先度リスト作成処理は、図15で示した優先度リスト作成処理と基本的には同様であり、図15のプレイアイテムをサブプレイアイテムに置き換えればよい。
<再生状況監視処理>
図25は、本実施の形態の再生状況監視処理の処理手順を示すフローチャートである。本フローチャートにおいて、ステップS121〜127の処理は、図16のステップS61〜67と同様であるので、ここではその説明を省略する。
ステップS125において、次に再生すべきAVクリップがEnable状態であると判定された場合には、ステップS128において、カレントプレイアイテムをSync_Playitem_idに指定しているサブプレイアイテムが存在するか判定する。
サブプレイアイテムが存在すると判定されなかった場合には、カレントプレイアイテムと同時に再生されるサブプレイアイテムは存在しないので、プレイアイテムの再生が継続される。
サブプレイアイテムが存在すると判定された場合には、ステップS129において、カレントサブプレイアイテムを特定し、ステップS130において、サブプレイアイテム特定処理を行う。サブプレイアイテム特定処理は、図17で示したプレイアイテム特定処理と基本的には同様であり、図17のプレイアイテムをサブプレイアイテムに置き換えればよい。
ステップS130において、サブプレイアイテム特定処理を行った後、ステップS131において、次に再生すべきAVクリップ(特定されたサブプレイアイテムが参照するAVクリップ)がEnable状態であるか判定する。
Enable状態であると判定された場合には、再生が継続され、Enable状態であると判定されなかった場合には、ステップS126において、BD-Jアプリケーションにより、再生の一時停止指示がなされることになる。
<プレイリスト再生処理>
図26は、本実施の形態のプレイリスト再生処理の処理手順を示すフローチャートである。本フローチャートにおいて、ステップS141〜143、ステップS147〜151の処理は、図18のステップS81〜83、ステップS84〜88と同様であるので、ここではその説明を省略する。
ステップS143の処理の後、ステップS144において、カレントプレイアイテムをSync_Playitem_idに指定しているサブプレイアイテムが存在するか判定する。
サブプレイアイテムが存在すると判定された場合には、ステップS145において、カレントサブプレイアイテムのClip_information_file_nameで指定されているAVクリップを選択する。
ステップS146において、AVクリップを構成するソースパケットのうち、カレントサブプレイアイテムのin_timeからout_timeまでの部分をローカルストレージ300から読み出す。その後、ステップS147に移行する。
(変形例2−1)
続いて、ユーザによりサブパス変更(例えば字幕切り替え)が要求された場合について説明する。使用形態としては、例えば、BD-ROM200に記録された映画本編の再生に合わせて、字幕データをストリーミングライクに再生する場合が挙げられる。
図27は、字幕切り替えがユーザによって要求されたため、現在の再生時点が、サブパス(ID=#0)の10003.m2tsを参照しているサブプレイアイテム#3から、サブパス(ID=#1)の20003.m2tsを参照しているサブプレイアイテム#3に変化した場合を想定した図である。00001.m2ts、00002.m2ts、00003.m2ts、10001.m2ts、10002.m2ts、10003.m2ts、20001.m2tsは、すでにダウンロードが完了しており、BD-JアプリケーションによりEnable状態にセットされている。また、他のAVクリップは、Unavailable状態である。
ユーザ操作などでSPRM(2)を3に変更した場合、再生する字幕はサブパスID=1のサブプレイアイテム#3になる。サブプレイアイテム#3が参照している20003.m2tsは、Unavailableクリップであるから、この切り替えと同時に、BD-Jアプリケーションにより、00003.m2ts,10003.m2tsの再生の一時停止指示がなされることになる。
以上のように、字幕切り替えが要求された場合、切り替え先の字幕ストリームを包含しているAVクリップがMissing状態であるか、Disable状態であれば、再生制御エンジン111は、BD-Jアプリケーションの指示に従って、切り替えと同時に再生を一時停止する。
<サブパス変更における再生状況監視処理>
図28は、サブパス変更における再生状況監視処理の処理手順を示すフローチャートである。
ステップS161において、ユーザによりサブパス変更要求がなされると、ステップS162において、変更後のサブパスにおけるサブプレイアイテムが参照しているAVクリップが、Enable状態であるか判定する。
変更後のサブパスにおけるサブプレイアイテムが参照しているAVクリップが、Enable状態であると判定された場合には、再生が継続され、変更後のサブパスにおけるサブプレイアイテムが参照しているAVクリップが、Enable状態であると判定されなかった場合には、ステップS163において、BD-Jアプリケーションは再生の一時停止を指示する。
その後、ステップS164において、再生再開処理を行う。
(変形例2−2)
続いて、次に再生すべきサブプレイアイテムが参照しているAVクリップがEnable状態でない場合に再生を継続する方法について説明する。
図29は、次に再生すべきサブプレイアイテムが参照しているAVクリップがEnable状態でない場合の再生制御を説明するための図である。
再生制御エンジン111がプレイリストの先頭から順に再生する場合、サブパス(ID=0)に属するサブプレイアイテム#1がカレントサブプレイアイテム情報になっているため、再生は、プレイアイテム#2, サブプレイアイテム#2まで進行可能である。
ただし、プレイアイテム#3では、対応するサブプレイアイテム#3によって参照されている10003.m2tsがUnavailableクリップである。したがって、仮にサブパス(ID=0)の再生をそのまま継続するとした場合には、BD-Jアプリケーションによりプレイアイテム#2, サブプレイアイテム#2の再生の一時停止指示がなされることになる。
しかしながら、サブパス(ID=0)に属するサブプレイアイテム#3によって参照されている20003.m2tsは、Enable状態である。
そこで、本変形例では、BD-Jアプリケーションが、サブプレイアイテム#3の再生開始時において、サブパス(ID=0)をサブパス(ID=1)に切り替える。
これにより、次に再生すべきサブプレイアイテムが参照しているAVクリップがEnable状態でない場合であっても、再生を一時停止することなく、再生を継続させることができる。
また、プレイアイテムの再生のみが進行することを防止できるので、プレイアイテムのみ表示され字幕データが表示されない区間の発生を回避することができる。
<再生状況監視処理>
図30は、本変形例の再生状況監視処理の処理手順を示すフローチャートである。本フローチャートにおいて、ステップS171〜181の処理は、図25のステップS121〜131と同様であるので、ここではその説明を省略する。
ステップS181において、次に再生すべきAVクリップがEnable状態であると判定されなかった場合には、ステップS182において、カレントプレイアイテムをSync_Playitem_idに指定しているサブプレイアイテムが他に存在するか判定する。
サブプレイアイテムが他に存在すると判定された場合には、ステップS183において、他のサブプレイアイテムが参照するAVクリップがEnable状態であるか判定する。
他のサブプレイアイテムが参照するAVクリップがEnable状態であると判定された場合には、ステップS184において、BD-Jアプリケーションは、他のサブプレイアイテムが参照するAVクリップの再生を指示する。
(実施の形態3)
本実施の形態では、アップデートキットを作成するためのオーサリングシステムについて説明する。図31は、オーサリングシステムの構成を示す図である。本図に示すように、オーサリングシステムは、ストレージ600a,b,c、素材制作部601、シナリオ生成部602、BD-J制作部603、多重化処理部604、フォーマット処理部605、差分抽出部606、及びアップデートキット制作部607から構成される。
ストレージ600a,b,cは、それぞれ、ROMシナリオデータ、ROMディスクイメージのバージョン1(ver.1)、ROMディスクイメージのバージョン2(ver.2)を格納している。
素材制作部601は、ビデオストリーム、オーディオストリーム、プレゼンテーショングラフィックスストリーム、インタラクティブグラフィックストリームなどの各ストリームを作成する。
素材制作部601は、非圧縮のビットマップなどの画像イメージをMPEG4-AVCやMPEG2などの圧縮方式に従い符号化することでビデオストリームを作成する。
素材制作部601は、非圧縮のLinearPCM音声などをAC3などの圧縮方式に従い符号化することでオーディオストリームを作成する。
素材制作部601は、字幕イメージ、表示タイミング、およびフェードイン/フェードアウトなどの字幕の効果を含む字幕情報ファイルを元にして、字幕ストリームであるプレゼンテーショングラフィックスストリームを作成する。
素材制作部601は、メニューに使うビットマップイメージと、メニューに配置されるボタンの遷移や表示効果を記載したメニューファイルとを元にして、メニュー画面を構成するインタラクティブグラフィックスストリームを作成する。
シナリオ生成部602は、素材制作部601で作成した各ストリームの情報や、オーサリングスタッフからのGUIを経由した操作にしたがって、シナリオを作成する。ここで言うシナリオは、インデックスファイル、ムービーオブジェクトファイル、プレイリストファイルなどのファイルである。
また、シナリオ生成部602は、多重化処理を実現するための、各AVクリップがどのストリームから構成されるかを記述したパラメータファイルを作成する。
BD-J制作部603は、BD-Jアプリケーションをプログラミングする手段である。GUI等のユーザインターフェースを通じて、ユーザからの要求に従って、BD-Jアプリケーションプログラムのソースコードを作成し、BD-Jアプリケーションを作成する。
多重化処理部604は、ROMシナリオデータに記述されているビデオ、オーディオ、字幕、ボタンなどの複数のストリームを多重化して、MPEG2-TS形式のAVクリップを作成する。このとき、AVクリップと対になるクリップ情報ファイルも同時に作成する。
多重化処理部604によるクリップ情報ファイル内の生成は、以下の方法で行われる。多重化処理部604は、AVクリップを作成と同時にエントリマップを作成する。より具体的には、素材制作部601で生成された各ストリームにおいて、含まれるビデオストリームがMPEG2であればIピクチャ、MPEG4-AVCであればIピクチャかIDRピクチャ、VC-1であればIピクチャが何処に存在するかを検出する。そして、前述の各ピクチャの表示時刻と、MPEG2-TS形式のAVクリップの何パケット目のソースパケットに、前述の各ピクチャの先頭データが入っているかを対応付けたエントリポイントをエントリマップに登録していく。AVクリップに含まれるビデオストリームが、Primaryビデオ・Secondaryビデオの2種類存在する場合には、どちらのエントリマップも同時に作成していく。
多重化処理部604は、生成したエントリマップと、AVクリップに含まれるストリーム毎の音声属性、映像属性などを示す属性情報とをペアにしてクリップ情報ファイルを作成する。
フォーマット処理部605は、シナリオ生成部602で生成したROMシナリオデータ、BD-J制作部603で制作したBD-Jアプリケーション、及び多重化処理部604で生成したAVクリップやクリップ情報ファイルを、これまでの実施の形態で説明したフォーマットで配置し、UDFのフォーマットでディスクイメージを作成する。生成したディスクイメージをBD-ROMプレス用データに変換し、このデータに対してプレス工程を行うことで、BD-ROMの製造が可能となる。
アップデートキットを作成するには、二つのディスクイメージを用意する。1つはBD-ROMに格納されるディスクイメージであり、もう1つは仮想パッケージ構築後のディスクイメージである。
差分抽出部606は、ストレージ600b,cに格納された二つのROMディスクイメージをコンペアして、差分データを抽出する。例えば、オリジナルのディスクイメージになかったファイルや、バイナリコンペアしてアップデートされているファイルなどを抽出する。
アップデートキット制作部607は、差分抽出部606を元に、前述で説明したアップデートキットのデータフォーマットに合うようにマージ管理情報ファイルや署名情報ファイルを作成し、ファイルやディレクトリを配置する。
図32(a)は、ROMディスクイメージの作成手順を示すフローチャートであり、図32(b)は、アップデートキットイメージの作成手順を示すフローチャートである。
ステップS211において、素材制作部601はビデオストリーム、オーディオストリーム、IGストリーム、PGストリームを生成する。
ステップS212において、シナリオ生成部602は、インデックスファイル、ムービーオブジェクトファイル、プレイリストファイルなど再生シナリオを記述するROMシナリオデータを作成する。
ステップS213において、BD-J制作部603は、BD-Jアプリケーションのプログラムを作成する。
ステップS214において、多重化処理部604はROMシナリオデータを元にAVクリップとクリップ情報ファイルとを作成する。
ステップS215において、フォーマット処理部605は、ROMシナリオデータ、変形AVクリップ、クリップ情報ファイル、復元バイトコードデータを、これまでの実施形態で述べたファイル・ディレクトリ構造に並び替え、ROMディスクイメージを作成する。
ステップS221において、差分抽出部606は二つのディスクイメージを比較して差分データを抽出する。
ステップS222において、アップデートキット制作部607は、インデックスファイル、ムービーオブジェクトファイル、プレイリストファイルなど再生シナリオを記述するROMシナリオデータを作成する。
ステップS223において、BD-J制作部603は、BD-Jアプリケーションのプログラムを作成する。
ステップS224において、多重化処理部604はROMシナリオデータを元にAVクリップとクリップ情報ファイルを作成する。
ステップS225において、フォーマット処理部605は、差分データをアップデートキットのデータフォーマットに合うように変換する。
ステップS226において、マージ管理情報ファイルや署名情報ファイルを作成し、アップデートキット内に配置する。
(備考)
AVクリップ(XXX.M2TS)、クリップ情報ファイル(XXX.CLPI)、プレイリスト情報ファイル(XXX.MPLS)、及びシステムターゲットデコーダの詳細について順に説明する。
<AVクリップの内部構成>
AVクリップは、MPEG-2トランスポートストリーム形式のデジタルストリームである。
図33は、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クリップにおける多重化>
図34は、AVクリップがどのように多重化されるかを模式的に示す図である。まず、ビデオストリーム、及びオーディオストリームを(第1段目)、それぞれPESパケット列に変換し(第2段目)、TSパケット列に変換する(第3段目)。同じくプレゼンテーショングラフィックスストリームおよびインタラクティブグラフィックス7(第7段目)を、それぞれPESパケット列に変換し(エレメンタリストリーム)(第6段目)、更にTSパケット列に変換する(第5段目)。AVクリップ(第4段目)は、これらのTSパケットを1本のストリームに多重化することで構成される。
図35は、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パケット列>
図36は、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時間の情報を持つ。
図37は、PMTのデータ構造を示す図である。PMTの先頭には、そのPMTに含まれるデータの長さなどを記した「PMTヘッダ」が配置される。その後ろには、AVクリップに関する「ディスクリプタ」が配置される。前述したコピーコントロール情報などが、ディスクリプタとして記載される。ディスクリプタの後には、AVクリップに含まれる各ストリームに関する「ストリーム情報#1〜#N」が複数配置される。ストリーム情報は、ストリームの圧縮コーデックなどを識別するためのストリームタイプ、ストリームのPID、及びストリームの属性情報(フレームレート、アスペクト比など)が記載されたストリームディスクリプタから構成される。ストリームディスクリプタは、AVクリップに存在するストリームの数だけ存在する。
以上がAVクリップについての説明である。続いて、クリップ情報ファイルの詳細について説明する。
<クリップ情報ファイル>
図38は、クリップ情報ファイルの一例を示す図である。クリップ情報ファイルは、本図に示すようにAVクリップの管理情報であり、AVクリップと1対1に対応し、ストリーム属性情報とエントリマップから構成される。
図39は、ストリーム属性情報の一例を示す図である。ストリーム属性情報は本図に示すように、AVクリップに含まれる各ストリームについての属性情報が、PID毎に登録される。属性情報はビデオストリーム、オーディオストリーム、プレゼンテーショングラフィックスストリーム、インタラクティブグラフィックスストリーム毎に異なる情報を持つ。
「ビデオストリーム属性情報」は、そのビデオストリームがどのような圧縮コーデックで圧縮されたか、ビデオストリームを構成する個々のピクチャデータの解像度がどれだけであるか、アスペクト比はどれだけであるか、フレームレートはどれだけであるかなどの情報を持つ。
「オーディオストリーム属性情報」は、そのオーディオストリームがどのような圧縮コーデックで圧縮されたか、そのオーディオストリームに含まれるチャンネル数は何であるか、何の言語に対応するか、サンプリング周波数がどれだけであるかなどの情報を持つ。これらの情報は、再生装置が再生する前のデコーダの初期化などに利用される。
図40は、エントリマップの一例を示す図である。
エントリマップは、本図に示すように、AVクリップ内に含まれるビデオストリームの各フレーム内符号化画像(以下、Iピクチャと呼ぶ)の表示時刻を示すPTSと各Iピクチャが開始するAVクリップのSPNが記載されたテーブル情報である。
ここではテーブルの1つの行で示される対となるPTSとSPNの情報をエントリポイントと呼ぶことにする。また先頭を0としてエントリポイント毎にインクリメントした値をエントリポイントID(以下EP_ID)と呼ぶことにする。このエントリマップを利用することにより、再生装置はビデオストリームの時間軸上の任意の時点に対応するAVクリップのファイル位置を特定することが出来るようになる。例えば、早送り・巻戻しの特殊再生の際には、エントリマップに登録されるIピクチャを特定し選択して再生することによりAVクリップを解析することなく効率的に処理を行うことが出来る。また、エントリマップはAVクリップ内に多重化されるビデオストリーム毎に作られ、PIDで管理される。映画タイトルにおいて、エントリマークをチャプタの先頭となる位置に付与することで、チャプタ再生を行うことが可能である。
以上がクリップ情報ファイルについての説明である。続いて、プレイリスト情報の詳細なデータ構造について説明する。
図41は、プレイリスト情報のデータ構造を示す図であり、本図に示すように、プレイリスト情報は、メインパスを定義するメインパス情報(MainPath())と、サブパスを定義するサブパス情報(Subpath())と、マーク情報とを含む。
<プレイリスト情報の説明その1.メインパス情報>
メインパス情報について説明する。引き出し線mp1は、メインパス情報の内部構成をクローズアップして示している。メインパスは、矢印mp1で示すように複数のプレイアイテム情報#1・・・・#mから定義される。プレイアイテム情報は、メインパスを構成する1つの論理的な再生区間を定義する。プレイアイテム情報の構成は、引き出し線mp2によりクローズアップされている。この引き出し線に示すように、プレイアイテム情報は、再生区間のIN点及びOut点が属するAVクリップの再生区間情報のファイル名を示す『Clip_Information_file_name』と、AVクリップの符号化方式を示す『Clip_codec_identifier』と、プレイアイテムがマルチアングルを構成するか否かを示す『is_multi_angle』と、このプレイアイテム(カレントプレイアイテム)と、その1つ前のプレイアイテム(プリービァスプレイアイテム)との接続状態を示す『connection_condition』と、このプレイアイテムが対象としているSTC_Sequenceを一意に示す『ref_to_STC_id[0]』と、再生区間の始点を示す時間情報『In_time』と、再生区間の終点を示す時間情報『Out_time』と、このプレイアイテムにおいてマスクすべきユーザオペレーションがどれであるかを示す『UO_mask_table』と、このプレイアイテムの途中へのランダムアクセスを許可するか否かを示す『PlayItem_random_access_flag』と、このプレイアイテムの再生終了後、最後のピクチャの静止表示を継続するか否かを示す『Still_mode』と、『STN_table』とから構成される。このうち、再生経路を構成するのは、再生区間の始点を示す時間情報『In_time』、再生区間の終点を示す時間情報『Out_time』の組みであり、再生経路情報とは、この『In_time』及び『Out_time』の組みから構成される。
<プレイリスト情報の説明その2.マーク情報>
マーク情報について説明する。マーク情報(PLmark())は、プレイリスト時間軸のうち、任意の区間を、チャプタとして指定する情報である。引き出し線mp3は、マーク情報の内部構成をクローズアップして示している。マーク情報は、矢印mp3で示すように、プレイアイテムを指定する『ref_to_PlayItem_Id』と、プレイリスト時間軸の一時点を指定する『Mark_time_stamp』とから定義される。これらの指定によりプレイリスト時間軸には、チャプタが定義されることになる。
<プレイリスト情報の説明その3.サブパス情報>
メインパスが、プライマリビデオたるメインクリップに定義される再生経路であるのに対し、サブパスは、メインパスと同期すべきサブクリップに対して定義される再生経路である。
図42は、サブパス情報の内部構成を示す図である。本図における矢印hc0に示すように各サブパスは、サブパスの類型を示すSubPath_typeと、1つ以上のサブプレイアイテム情報(・・・SubPlayItem()・・・)とを含む。
図中の引き出し線hc1は、サブプレイアイテム情報の構成をクローズアップしている。
サブプレイアイテムは、メインパスから分離した、1以上のエレメンタリストリーム再生パスを定義し、当該パスをメインパスとどのように同期するかという類型を表現するのに使われる。サブプレイアイテムで使用されるのが、The Primary audio / PG / IG / Secondary audio / Secondary video のサブパスであるなら、これらのサブプレイアイテムは、プレイリスト中のプレイアイテムを使っているメインパスと同期することになる。このエレメンタリストリーム再生のためのサブパスによって使われるエレメンタリストリームは、メインパス側のプレイアイテムによって使われるメインクリップから分離したクリップ、つまりサブクリップに多重化される。
以降、サブプレイアイテムの内部構成について説明する。サブプレイアイテム情報は、図中の矢印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』は、クリップ情報のファイル名を記述することにより、サブプレイアイテムに対応するサブクリップを一意に指定する情報である。
『Clip_codec_identifier』は、AVクリップの符号化方式を示す。
『ref_to_STC_id[0]』は、このサブプレイアイテムが対象としているSTC_Sequenceを一意に示す。
『SubPlayItem_In_time』は、サブクリップの再生時間軸上における、サブプレイアイテムの始点を示す情報である。
『SubPlayItem_Out_time』は、サブクリップの再生時間軸上における、サブプレイアイテムの終点を示す情報である。
『sync_PlayItem_Id』は、メインパスを構成するプレイアイテムのうち、本サブプレイアイテムが同期すべきものを一意に指定する情報である。
『SubPlayItem_In_time』は、この『sync_PlayItem_Id』で指定されたプレイアイテムの再生時間軸上に存在する。
『sync_start_PTS_of_PlayItem』は、『sync_PlayItem_Id』で指定されたプレイアイテムの再生時間軸上において、『SubPlayItem_In_time』で指定されたサブプレイアイテムの始点が、どこに存在するかを45KHzの時間精度で示す。あるサブプレイアイテムがセカンダリビデオストリーム上の再生区間を定義していて、そのサブプレイアイテムの『sync_start_PTS_of_PlayItem』が、プレイアイテム時間軸における一時点を示している場合、そのサブプレイアイテムは、“同期ピクチャインピクチャ”を実現することになる。
また、この『sync_start_PTS_of_PlayItem』には、不定値(0xFFF)を設定することもできる。この不定値は、『sync_PlayItem_Id』にて指定されたPlayItemの時間軸において、ユーザによりロック操作がなされた時点を、Sync_PlayItem_Idにて指定されたPlayItemとの同期時点に定める旨を示す。sync_start_PTS_of_PlayItemが不定値に設定されており、尚且つサブプレイアイテムが、セカンダリビデオストリームの再生を意図している場合、かかるサブプレイアイテムは、“非同期ピクチャインピクチャ”を実現することになる。
以上が、サブパス情報についての説明である。
<プレイリスト情報の説明その4.STN_table>
プレイリスト情報において特徴的であるのは、STN_Tableである。
STN_tableは、プレイアイテム情報のClip_Information_file_nameで指定されているAVクリップに多重化された複数エレメンタリストリーム、サブプレイアイテム情報のClip_Information_file_nameで指定されているOut_of_MUXストリームのうち、再生可能なものを示すテーブルである。具体的にいうとSTN_tableは、メインクリップに多重化されている複数In_MUXストリーム、サブクリップに多重化されているOut_of_MUXストリームのそれぞれについてのStream_entryを、Stream_attributeと対応付けることで構成される。
図43は、STN_tableの全体構成の一例を示す図である。本図に示すようにSTN_tableは、Primaryビデオストリームについて、stream_entry及びstream_attributesの組み(stream_entry- stream_attribute)を一つ有し、Primaryオーディオストリーム、PGストリーム、IGストリーム、Secondaryオーディオストリーム、及びSecondaryビデオストリームのそれぞれについて、stream_entry及びstream_attributeの組み(stream_entry- stream_attribute)を複数有している。
また、STN_tableは、再生可能なPrimaryビデオストリーム数を示すnumber_of_video_stream_entries、再生可能なPrimaryオーディオストリーム数を示すnumber_of_audio_stream_entries、再生可能なPGストリーム数を示すnumber_of_PG_stream_entries、再生可能なIGストリーム数を示すnumber_of_IG_stream_entries、再生可能なSecondaryオーディオストリーム数を示すnumber_of_Secondary_audio_stream_entries、及び再生可能なSecondaryビデオストリームを示すnumber_of_Secondary_video_stream_entries、を含む。
<システムターゲットデコーダ104>
続いて、システムターゲットデコーダ104の詳細について説明する。
図44は、システムターゲットデコーダ104の内部構成の一例を示す図である。本図に示すように、システムターゲットデコーダ104は、ソースデパケタイザ122a,bと、PIDフィルタ123a,bと、Primaryビデオデコーダ124と、Primaryビデオプレーン125と、Secondaryビデオデコーダ126と、Secondaryビデオプレーン127と、PGデコーダ128と、PGプレーン129と、IGデコーダ130と、IGプレーン131と、Primaryオーディオデコーダ132と、Secondaryオーディオデコーダ133と、音声ミキサー134と、BD-Jプロセッサ135と、BD-Jプレーン136と、加算部137とから構成される。
ソースデパケタイザ122a,bは、システムターゲットデコーダ104に転送されるソースパケットを解釈し、TSパケットを取り出しPIDフィルタに送出する。この送出にあたって、各ソースパケットのATSに応じてデコーダへの入力時刻を調整する。具体的には、ATCカウンタが生成するATCの値と、ソースパケットのATS値とが同一になった瞬間に、AVクリップの記録レートにしたがって、そのTSパケットだけをPIDフィルタに転送する。
PIDフィルタ123a,bは、ソースデパケッタイザから出力されたTSパケットのうち、TSパケットのPIDが、再生に必要とされるPIDに一致するものを、PIDにしたがって、Primaryビデオデコーダ、Secondaryビデオデコーダ、IGデコーダ、PGデコーダ、Primaryオーディオデコーダ、Secondaryオーディオデコーダに転送する。例えば、BD-ROMの場合には、TSパケットに含まれるPIDが0x1011である場合はPrimaryビデオデコーダ124に、PIDが0x1B00から0x1B1Fである場合はSecondaryビデオデコーダ126に、PIDが0x1100から0x111Fである場合はPrimaryオーディオデコーダ132に、PIDが0x1A00から0x1A1Fである場合はSecondaryオーディオデコーダ133に、PIDが0x1200から0x121Fである場合はPGデコーダ128に、PIDが0x1400から0x141Fである場合はIGデコーダ130に転送される。
図44に示す通り、ソースデパケタイザ及びPIDフィルタは、それぞれ二つ存在し、一つはリードバッファ102から転送されるAVクリップ、一つはリードバッファ103から転送されるAVクリップを処理する。サブパスタイプが同期型の場合は、メインパスから参照されるAVクリップとサブパスから参照されるAVクリップは同期を取りながら再生される。サブパスタイプが非同期型の場合は、メインパスから参照されるAVクリップとサブパスから参照されるAVクリップは非同期で再生される。
Primaryビデオデコーダ124は、緩衝バッファを有し、バッファにデータを蓄えながら、TSヘッダ、PESヘッダなどの情報を取り除いて、符号化状態にあるピクチャ(Iピクチャ、Bピクチャ、Pピクチャ)を取り出し、ビデオストリームの個々のフレーム画像を所定の復号時刻(DTS)ごとにデコードすることにより複数フレーム画像を作成し、表示時刻(PTS)のタイミングでPrimaryビデオプレーン125に書き込む。AVクリップに多重化されるビデオストリームの圧縮符号化形式にはMPEG2、MPEG4AVC、VC1などがあるため、ストリームの属性に応じて、圧縮映像の復号化方式を切り替える。
Primaryビデオプレーン125は、Primaryビデオデコーダ124によって得られたフレーム画像が格納される。
Secondaryビデオデコーダ126は、Primaryビデオデコーダ124と同様の構成を持ち、入力されるSecondaryビデオストリームのデコードを行い、表示時刻(PTS)のタイミングでピクチャをSecondaryビデオプレーンに書き出す。
Secondaryビデオプレーン127は、Secondaryビデオデコーダ126によって得られたフレーム画像が格納される。
PGデコーダ128は、ソースデパケタイザから入力されるTSパケットからプレゼンテーショングラフィックスストリームを抽出してデコードし、非圧縮のグラフィックスデータを表示時刻(PTS)のタイミングでPGプレーンに書き出す。
PGプレーン129は、非圧縮のグラフィクスデータが格納される。
IGデコーダ130は、ソースデパケタイザから入力されるTSパケットからインタラクティブグラフィックスストリームを抽出してデコードし、非圧縮のグラフィックスデータを表示時刻(PTS)のタイミングでIGプレーンに書き出す。
IGプレーン131には、非圧縮のグラフィクスデータが格納される。
Primaryオーディオデコーダ132は、緩衝バッファを有し、バッファにデータを蓄えながら、TSヘッダ、PESヘッダなどの情報を取り除いて、音声ストリームデコード処理を行い、非圧縮のLPCM状態のオーディオデータを得て再生時刻(PTS)のタイミングで音声ミキサーに出力する。AVクリップに多重化されるオーディオストリームの圧縮符号化形式にはAC3、DTSなどがあるため、ストリームの属性に応じて、圧縮音声の復号化方式を切り替える。
Secondaryオーディオデコーダ133は、Primaryオーディオデコーダと同様の構成を持ち、入力されるSecondaryオーディオストリームのデコードを行い、表示時刻のタイミングで非圧縮のLPCMの状態のオーディオデータを音声ミキサーに出力する。AVクリップに多重化されるオーディオストリームの圧縮符号化形式にはDolbyDigitalPlus、DTS-HD LBRなどがあるため、ストリームの属性に応じて、圧縮音声の復号化方式を切り替える。
音声ミキサー134は、Primaryオーディオデコーダから出力される非圧縮音声データとSecondaryオーディオデコーダから出力される非圧縮音声データとをミキシング(音の重ね合わせ)をしてスピーカなどに出力する。
BD-Jプロセッサ135は、BD-J実行部105から転送されるPNG形式又はJPEG形式のグラフィクスデータをデコードして、BD-Jアプリケーションから指定される表示時刻にしたがって、BD-Jプレーンに出力する。
BD-Jプレーン136には、BD-Jプロセッサ135によってデコードされたグラフィクスデータが格納される。
加算部137は、Primaryビデオプレーン、Secondaryビデオプレーン、IGプレーン、PGプレーン、BD-Jプレーンに書かれたデータを瞬時に重畳し、TVなどの画面に表示する。
以上のように、BD-ROMプレーヤモデルに準拠した内部構成を実現することにより、プレイリストの再生を実現することができる。
<仮想パッケージの構築>
続いて、仮想パッケージの構築について詳しく説明する。
先ず始めに、仮想パッケージの基本部分となるBD-ROMのデータ構造について説明する。
図45は、BD-ROMの構成の一例を示す図である。
本図の第4段目にBD-ROM100を示し、第3段目にBD-ROM上のトラックを示す。本図のトラックは、BD-ROM100の内周から外周にかけて螺旋状に形成されているトラックを横方向に引き伸ばして描画している。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)について説明する。インデックスファイルはインデックステーブルを持つ。
図46は、インデックスファイルの内部構成の一例を示す図である。
「インデックステーブル」は、BD-ROMに格納されるすべてのタイトル、トップメニュー、FirstPlayといったタイトル構成を定義する最上位層のテーブルである。このテーブルには、全てのタイトル、トップメニュー、FirstPlayから最初に実行されるムービーオブジェクトファイルに含まれるムービーオブジェクトが指定されている。BD-ROMの再生装置は、タイトルあるいはメニューが呼び出されるたびにインデックステーブルを参照して、所定のムービーオブジェクトもしくはBD-Jオブジェクトを実行する。ここで、FirstPlayとは、コンテンツプロバイダによって設定されるもので、ディスク投入時に自動実行されるムービーオブジェクトまたはBD-Jオブジェクトが設定されている。また、トップメニューは、リモコンでのユーザ操作で、「メニューに戻る」というようなコマンドが実行されるときに、呼び出されるムービーオブジェクト、BD-Jオブジェクトが指定されている。ネットワーク属性で再生されるべきプレイリストは、必ずBD-Jオブジェクトによって再生されねばならない。
次にムービーオブジェクトファイルについて説明する。図47に示すように、ムービーオブジェクトファイル内には、複数のムービーオブジェクトが定義されており、各ムービーオブジェクトはムービーオブジェクトIDによって識別される。各ムービーオブジェクトは、プレイリストの再生の指示や、他のムービーオブジェクトやタイトルへの遷移を命令する1つ以上のナビゲーションコマンドを持つ。再生装置は、そのナビゲーションコマンド列を順に実行する。例えば、PlayPL#Nと記述されていれば、再生装置は、PLAYLISTディレクトリの中から該当するプレイリストのファイル名を選択し再生する。
また、例えば、JumpObject#Nと記述されていれば、再生装置は、ムービーオブジェクトファイルの中から該当するムービーオブジェクトを選択し実行する。
以上が、仮想パッケージの前提となるBD-ROMのデータ構造である。
次に、図48を参照しながらローカルストレージ300に格納されるアップデートキットのデータ構造について説明する。
図48は、ローカルストレージ300に格納されるアップデートキットの内部構成の一例を示す図である。
ローカルストレージ300に格納されるアップデートキットは、本図に示すように、追加コンテンツ格納ディレクトリ、OrgIDディレクトリ、DiscIDディレクトリ、マージ管理情報ファイル(MERGE.INFO)、署名情報ファイル(MERGE.SF)、追加コンテンツデータファイル(CCC.MPL、VVV.M2T、VVV.CLPなど)を含む。
「追加コンテンツ領域ルートディレクトリ」は、ローカルストレージ300のルートディレクトリの直下に存在し、追加コンテンツ領域のルートを示すディレクトリで、ディレクトリ名配布媒体文字以内の固定値(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.INFO)」は、仮想パッケージを構成するためのローカルストレージに記録される各ファイル格納位置情報と、仮想パッケージ上でそれらのファイルへアクセスするための仮想パス情報から構成され、DiscIDディレクトリ直下に保存される。
「署名情報ファイル」は、マージ管理情報ファイルに対するプロバイダの電子的な署名を示すファイルであり、MERGE.SFというファイル名でDiscIDディレクトリ直下に保存される。電子的な署名は、一般的に改ざん防止が必要な情報に対してハッシュ値を計算し、ハッシュ値をなんらかの秘密鍵を用いて暗号化したものを用いる。本実施形態の署名情報ファイルでは、BD-ROM記録層上にあるマージ証明書中の公開鍵に対応する秘密鍵を利用して、マージ管理情報ファイルのハッシュ値が暗号化されている。
「マージ証明書」は、マージ管理情報ファイルの認証に利用する証明書で、プロバイダが公開する公開鍵が含まれる。プロバイダが提供するマージ証明書は、BD-ROM記録層上にbd.certというファイル名で保存されている。マージ証明書のファイル形式の一例としてはX.509を利用することができる。
「追加コンテンツデータファイル」は、BD-ROM記録層に記録されたオリジナルのコンテンツに対し、追加/更新するファイル群である。ここには、プレイリストファイル、AVクリップなどが記録される。
図49は、マージ管理情報ファイルの内容と、その内容を元にBD-ROMのファイルとアップデートキットのファイルとから、仮想パッケージを構築する過程の一例を示す図である。
図49の左上は、BD-ROMのディレクトリ・ファイル構成を示す。本図の左下は、アップデートキットのディレクトリ・ファイル構成を示す。
図49の右下は、マージ管理情報ファイルの内容を示す。マージ管理情報ファイルは、仮想パッケージを構成するローカルストレージにおける「ローカルストレージパス」と、仮想パッケージ上でそれらのファイルへアクセスするための「仮想パッケージパス」と、「ネットワーク属性」から構成される。ネットワーク属性は、仮想パッケージを構築する前に、そのファイルがなくても良いことを示す。
ローカルストレージパスの一例として、本図では、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が記述されている。
図49の右上は、このマニフェストファイルによって生成される仮想パッケージを示す。ローカルストレージパスにおいて、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にはないCCC.MPLS、VVV.CLPI、VVV.M2TS、SSS.CLPI、SSS.M2TSが、仮想パッケージでは存在するかの如く取り扱われることになる。
マージ管理情報に基づき、仮想パッケージが生成されれば、ローカルストレージ上のこれらのファイルは、このマージ管理情報におけるパス情報でアクセスすることができる。このとき、ネットワーク属性が付与されているSSS.M2TSにおいては、仮想パッケージが構築される前に、ローカルストレージにダウンロードが完了している必要はない。仮想パッケージが構築された後、必要になる段階でダウンロードしても良い。
よって、アップデートキットのダウンロードにあたって、ローカルストレージへの書き込みの順序は、
マージ管理情報ファイル→プレイリスト情報→複数クリップ情報→複数AVクリップ
となる。ここでプレイリスト情報−複数のクリップ情報の書き込みが完了した段階で、仮想パッケージの構築は可能になる。何故なら、AVクリップをDisable状態として扱えば、足りるからである。
以上のように、仮想的なファイルシステムを通じてサブプレイアイテムをシステムターゲットデコーダに供給することができる。
<BD-ROMとの併用>
メインパスがディスクに格納されている本編映像を示す場合には、現在の再生位置以降のサブプレイアイテムで利用される、
現在のPrimaryオーディオストリーム番号SPRM(1)、
字幕ストリーム番号SPRM(2)、
Secondaryビデオストリーム番号SPRM(21)、
Secondaryオーディオストリーム番号SPRM(22)
が示すストリーム番号に対応するストリームを含むAVクリップを、逐次、現在の再生位置から近い順にシーケンシャルにダウンロードすることが望ましい。
このようにすることで、本編映像を見る間ユーザは、字幕や音声を変えることはまれなので、ユーザに待ち時間を与えることなくプレイリストの再生を実現できる。
(補足)
本発明は上記実施の形態に限られないことは勿論である。
(1)上記実施の形態では、ネットワーク再生情報は、クリップ番号、各プレイアイテムの再生区間の開始時点を示す開始時点情報、再生区間の終了時点を示す終了時点情報、チャプタマーク付与情報、及びファイルサイズから構成されるとしたが、図50に示すように、これらに加え、BD-Jアプリケーションがネットワーク経由でアップデートキットを取得する際のネットワーク上のアドレスを示すURL情報、AVクリップが記憶されるローカルストレージ上のファイルパス、CM等の区切りを示し、AVクリップに付与されるマーク情報、及びAVクリップの前後のAVクリップのクリップ番号を示す情報を含むとしてもよい。
(2)上記実施の形態では、再生が一時停止された後、再生を再開するに際し、再生再開制御を行うとしたが、必ずしも再生再開制御を行う必要はなく、次に再生すべきプレイアイテムに対応するAVクリップがEnable状態になれば、再生を再開するとしてもよい。
(3)上記実施の形態では、BD-JアプリケーションがPSRセットから再生速度を取得し、再生方向を特定するとしたが、プレイリストが順方向に再生されることを前提とするシステムであれば、必ずしも再生速度を取得する必要はない。
(4)上記実施の形態では、次に再生すべきAVクリップが再生可能状態でない場合には、BD-Jアプリケーションが再生中のAVクリップを一時停止する指示を行うとしたが、これに限らない。再生中のAVクリップの表示期間を引き延ばせればよく、例えば、スロー再生を指示してもよい。また、一時停止やスロー再生中に、AVクリップをダウンロード中である旨を示すグラフィクスをAVクリップに重畳して出力するとしてもよい。
(5)上記実施の形態では、次に再生すべきAVクリップが再生可能状態でない場合には、再生中のAVクリップを終端まで再生することなく、途中で一時停止等の制御を行うとしたが、当該AVクリップを終端まで再生し、終端のフレームを一時停止の対象としてもよいし、終端まで再生後、代替映像に切り替えてもよい。
(6)上記実施の形態では、再生制御エンジン111がプレイリストの先頭プレイアイテムから順に再生する場合について主に説明したが、例えばチャプタジャンプ等の飛び込み再生時においても同様である。具体的には、飛び込み再生地点を現在の再生位置に設定し、再生位置を含むAVクリップの次に再生すべきAVクリップが再生可能状態でなければ、再生を一時停止する。
(7)図11では、ダウンロードが完了していない全てのAVクリップが(数1)の関係を満たす場合に、プレイリスト再生を指示するとしたが、予め設定された数のAVクリップが、(数1)の関係を満たす場合には、プレイリスト再生を指示するとしてもよい。例えば、図11において、AVクリップ#3〜#7が、(数1)の関係を満たす場合には、プレイリスト再生を指示し、AVクリップ#3〜#7のうち一つでも(数1)の関係を満たさないものがあれば、プレイリスト再生を指示しない、としてもよい。
これにより、可能な限りAVクリップを一時停止することを防ぎながら、再生開始時間が遅くなりすぎないようにすることができる。
(8)上記実施の形態では、図2に示すように、プレイリストが「メインパス」と1つ以上の「サブパス」とから構成されるとしたが、プレイリストが「サブパス」を含まず、「メインパス」のみで構成されていてもよい。
上記実施の形態及び上記補足をそれぞれ組み合わせるとしてもよい。
本発明は、ストリーミングライクな再生機能を有する再生装置に広く適用することができる。
100 再生装置
101 BD-ROMドライブ
102、103 リードバッファ
104 システムターゲットデコーダ
105 BD-J実行部
106 ネットワークインタフェイス
107 仮想パッケージ制御部
108 状態管理部
109 ユーザイベント処理部
110 再生エンジン
111 再生制御エンジン
112 HDMI送受信部
113 ヒープメモリ
114 仮想マシンインタプリタ
115 PSRセット
200 BD-ROM
300 ローカルストレージ
400 WWWサーバ
500 テレビ
本発明は、仮想パッケージを構築し再生する再生装置に関し、特に、ストリームシーケンスを構成する複数のデジタルストリームを外部リソースから順次ダウンロードしながら再生する技術に関する。
仮想パッケージとは、記録媒体(例えばBD-ROM等)に記録されているデジタルストリームとリライタブル記録媒体(例えばローカルストレージ等)に記録されているデジタルストリームとを組み合わせることにより構築される仮想的なパッケージである。仮想パッケージが構築されることにより、各記録媒体に記録されているデジタルストリームは、あたかも仮想的な一つのパッケージに記録されているかのごとく、再生装置における再生や実行に供される(例えば特許文献1参照)。
ネットワークを介して外部リソース(例えばWWWサーバ等)から新たなデジタルストリームをリライタブル記録媒体にダウンロードすることで、記録媒体の記録内容を拡張/更新することができる。
ところで、仮想パッケージ構築機能を有する再生装置では、外部リソースから複数のデジタルストリームを順次ダウンロードしながら再生すること(所謂、ストリーミングライクな再生)が可能である。
具体的には、外部リソースが例えば、記録媒体に記録された映画本編の視聴後に配信可能となるおまけ映像(ストリームシーケンス)を、複数のデジタルストリームに分割した状態で保持しておき、再生装置は、少なくとも再生開始位置に相当するデジタルストリームのみを予めダウンロードする。そして、そのデジタルストリームの再生を開始した後は、当該デジタルストリームに後続するデジタルストリームを順次ダウンロードしながら再生することで、ストリーミングライクな再生が実現される。
これにより、おまけ映像の一部分だけをダウンロードしておくだけで再生を開始できるので、ユーザのダウンロード待ち時間を短縮することができる。また、一般的なストリーミング再生と異なり、一定の再生区間を有するデジタルストリームをダウンロードした後、再生するので、早送りや巻き戻し、スキップ等といった特殊再生が可能となる。
特開2006−109494号公報
しかしながら、ストリーミングライクな再生機能には、ダウンロード待ち時間が短縮され、特殊再生も可能になるというメリットがある反面、デジタルストリームを再生可能な状態にするのに時間がかかるというデメリットがある。具体的には、ネットワークの混雑状況によって、デジタルストリームのダウンロードに多大な時間を要する場合がある。また、ダウンロードしたデジタルストリームを記録媒体に記録するためにも時間を要し、さらには、デジタルストリームを再生可能な状態にするために当該デジタルストリームに対して誤り訂正等の処理も行う必要がある。
これらの理由により、再生装置が再生中のデジタルストリームの次に再生すべき次デジタルストリームが、当該次デジタルストリームの再生開始時間においても、未だ再生可能な状態になっていない場合がある。
その場合には、再生可能な状態のデジタルストリームが存在しないので、再生装置が再生を停止してしまい、その結果、表示画面に何も表示されない事態が生じ得る。表示画面に何も表示されないと、ユーザに対して再生が終了したという誤った印象を与えかねない。
以上は、おまけ映像を順次ダウンロードしながら再生する場合について説明したが、例えば、記録媒体に記録された映画本編の再生に合わせて、外部リソースから字幕または音声ストリームを含むデジタルストリームを順次ダウンロードしながら再生する場合にも同様の課題が生じ得る。
このように従来の再生装置は、ユーザにとっては、ストリーミングライクな再生を行う際の使い勝手が悪く、使い勝手のよい新たな再生装置が要望されている。
本発明は、ストリーミングライクな再生を行う際の使い勝手を向上させた再生装置を提供することを目的とする。
上記目的を達成するために、本発明の一実施態様である再生装置は、ストリームシーケンスを構成する複数のデジタルストリームをアプリケーションの要求に従って外部リソースから順次ダウンロードしながら再生する再生装置であって、前記ストリームシーケンスに対応するアプリケーションを実行する実行手段と、前記ストリームシーケンスにおける現在の再生時間を示す時間情報を格納する時間情報格納手段と、前記複数のデジタルストリームの各々について再生可能状態であるか、または再生不可能状態であるかを示す状態情報を格納する状態情報格納手段と、前記ストリームシーケンスの再生を制御する再生制御手段とを備え、前記アプリケーションは、前記複数のデジタルストリームそれぞれの再生開始時間及び再生終了時間を示す再生区間情報を含み、前記時間情報格納手段に格納されている時間情報と前記再生区間情報とに基づいて、現在再生されているデジタルストリームの次に再生すべき次デジタルストリームを特定し、前記状態情報格納手段に格納されている、前記次デジタルストリームの状態情報が再生不可能状態であることを示す場合、前記再生制御手段は、前記アプリケーションの要求に従って、再生中のデジタルストリームの表示期間を引き延ばすための特殊再生、または当該デジタルストリームに続き前記次デジタルストリームに代えて代替映像の再生を行う。
上記課題を解決するための手段に記載の構成により、前記アプリケーションは、現在再生されているデジタルストリームの次に再生すべき次デジタルストリームを特定することができる。
前記アプリケーションが次デジタルストリームを特定できるので、前記次デジタルストリームの状態情報が再生不可能状態であることを示す場合には、前記再生制御手段は、前記アプリケーションの要求に従って、再生の停止を回避するための制御を行うことができる。具体的には、再生中のデジタルストリームの表示期間を引き延ばすための特殊再生、または当該デジタルストリームに続いて代替映像の再生を行うことができる。
これにより、表示画面に何らかの映像を表示させつつ、次デジタルストリームを再生可能な状態にするための時間を稼ぐことができるので、ユーザに対して再生が終了したという誤った印象を与えることなく、再生が停止される可能性を低減することができる。
ストリーミングライクな再生を開始する際のダウンロード待ち時間の短縮と、次デジタルストリームが再生可能状態でない場合の再生停止可能性の低減とを両立できるので、ユーザの使い勝手を向上させることができる。
ここで、本発明の別の態様として、前記ストリームシーケンスの再生速度を示す値を格納する再生速度格納手段をさらに備え、前記アプリケーションは、前記再生速度を示す値の正負に基づいて前記ストリームシーケンスの再生方向を特定し、前記次デジタルストリームの特定はさらに、前記再生方向に基づいてなされるとしてもよい。
本態様の再生装置では、ストリームシーケンスの再生方向によらず次に再生すべきデジタルストリームを特定することができるので、ストリームシーケンスの再生方向によらず、再生の停止を回避するための制御を行うことができる。
ここで、本発明の別の態様として、前記複数のデジタルストリームを外部リソースから順次ダウンロードするダウンロード手段をさらに備え、前記次デジタルストリームがダウンロードされていなければ、前記ダウンロードされていない次デジタルストリームの状態情報は再生不可能状態として前記状態情報格納手段に格納され、前記ダウンロード手段は、前記アプリケーションの要求に従って、前記次デジタルストリームを優先的にダウンロードするとしてもよい。
本態様の再生装置では、次デジタルストリームがダウンロードされていなければ、当該次デジタルストリームを優先的にダウンロードするので、再生中のデジタルストリームから次デジタルストリームに再生が遷移する前に、次デジタルストリームの状態情報が、再生可能状態を示す確率を高めることができる。
ここで、本発明の別の態様として、前記再生装置は前記ストリームシーケンスをプレイリストに従って再生しており、前記プレイリストは、複数のプレイアイテムを含み、前記複数のプレイアイテムは、前記複数のデジタルストリームと一対一で対応しており、対応するデジタルストリームの再生区間を示し、前記複数のプレイアイテムのうち一部のプレイアイテムにはチャプタマークが付与されており、前記アプリケーションは、前記一部のプレイアイテムにチャプタマークが付与されていることを示すチャプタマーク付与情報をさらに含み、前記チャプタマーク付与情報に基づいて、前記次デジタルストリームとして、再生中のデジタルストリームの直近の、チャプタマークが付与されているプレイアイテムに対応するデジタルストリームを特定するとしてもよい。
また、本発明の別の態様として、前記ダウンロード手段は、前記アプリケーションの要求に従って、チャプタマークが付与されている残りのプレイアイテムに対応するデジタルストリームを優先的にダウンロードするとしてもよい。
本態様の再生装置では、チャプタマークが付与されているプレイアイテムに対応するデジタルストリームが特定され、当該デジタルストリームが優先的にダウンロードされるので、チャプタスキップ指示をユーザから受け付けた場合であっても、可能な限りデジタルストリームの再生を一時停止することなくストリーミングライクな再生を実現することができる。
ここで、本発明の別の態様として、前記複数のプレイアイテムのうちチャプタマークが付与されているプレイアイテムに対応するデジタルストリームのサイズが、他のデジタルストリームのサイズより小さいとしてもよい。
本態様の再生装置では、チャプタマークが付与されているプレイアイテムに対応するデジタルストリームのサイズが、他のデジタルストリームのサイズより小さいので、再生中にユーザ操作によりチャプタスキップが発生した際、スキップ先のデジタルストリームのダウンロードが完了していない場合であっても、ダウンロードに要する時間は短くて済み、ユーザの待ち時間を短縮できる。
ここで、本発明の別の態様として、前記ストリームシーケンスにおける再生開始位置に相当するデジタルストリームの状態情報が、再生可能状態であることを示しており、前記アプリケーションは、前記再生開始位置からダウンロードが完了しておらず、前記状態情報が再生不可能状態であることを示す一のデジタルストリームの直前のデジタルストリームまでの再生時間と、ダウンロードが完了していないデジタルストリームのうち先頭のデジタルストリームから当該一のデジタルストリームまでをダウンロードするのに必要な総ダウンロード時間とを算出し、総ダウンロード時間が再生時間よりも短い場合に、前記再生制御手段は、前記アプリケーションの要求に従って、前記再生開始位置から再生を開始するとしてもよい。
本態様の再生装置では、状態情報が再生不可能状態であることを示す一のデジタルストリームについて、総ダウンロード時間が再生時間よりも短い場合に、再生を開始するので、再生開始後すぐにBD-Jアプリケーションにより一時停止指示がなされる可能性を低減することができる。
ここで、本発明の別の態様として、前記アプリケーションによる再生時間及び総ダウンロード時間の算出は、ダウンロードが完了しておらず、前記状態情報が再生不可能状態であることを示す全てのデジタルストリームについてなされ、前記全てのデジタルストリームについて、総ダウンロード時間が再生時間よりも短い場合に、前記再生制御手段により再生の開始がなされるとしてもよい。
本態様の再生装置では、状態情報が再生不可能状態であることを示す全てのデジタルストリームについて、総ダウンロード時間が再生時間よりも短い場合に、前記再生制御手段により再生の開始がなされるので、再生開始後すぐにBD-Jアプリケーションにより一時停止指示がなされる可能性をさらに低減することができる。
ここで、本発明の別の態様として、前記ストリームシーケンスとともに複数のサブストリームシーケンスを前記外部リソースからダウンロードしながら再生しており、前記ストリームシーケンスは、メインクリップであり、各サブストリームシーケンスは、サブクリップであり、複数のサブデジタルストリームから構成され、前記サブクリップは、字幕ストリームまたはオーディオストリームを含み、前記状態情報はさらに、前記複数のサブデジタルストリームの各々について再生可能状態であるか、または再生不可能状態であるかを示しており、前記再生制御手段が、前記メインクリップとともに一のサブクリップのサブデジタルストリームを再生している場合において、当該サブデジタルストリームの次に再生すべき次サブデジタルストリームの状態情報が、再生不可能状態であることを示しており、他のサブクリップのサブデジタルストリームの状態情報が再生可能状態であることを示していれば、前記再生制御手段は、前記アプリケーションの要求に従って、当該他のサブデジタルストリームを前記一のサブデジタルストリームに続いて再生するとしてもよい。
本態様の再生装置では、次サブデジタルストリームの状態情報が、再生不可能状態であることを示しており、他のサブクリップのサブデジタルストリームの状態情報が再生可能状態であることを示していれば、当該他のサブデジタルストリームを前記一のサブデジタルストリームに続いて再生するので、次に再生すべきサブデジタルストリームが再生可能状態でない場合であっても、再生を一時停止することなく、再生を継続させることができる。
ここで、本発明の別の態様として、前記ストリームシーケンスとともに複数のサブストリームシーケンスを前記外部リソースからダウンロードしながら再生しており、前記ストリームシーケンスは、メインクリップであり、各サブストリームシーケンスは、サブクリップであり、複数のサブデジタルストリームから構成され、前記サブクリップは、字幕ストリームまたはオーディオストリームを含み、前記状態情報はさらに、前記複数のサブデジタルストリームの各々について再生可能状態であるか、または再生不可能状態であるかを示しており、前記再生制御手段が、前記メインクリップとともに一のサブクリップのサブデジタルストリームを再生している場合において、当該一のサブクリップから他のサブクリップへの切り替え指示をユーザから受け付けた場合、前記他のサブクリップにおける再生対象となるサブデジタルストリームの状態情報が再生不可能状態であることを示していれば、前記再生制御手段は、前記アプリケーションの要求に従って、再生中のデジタルストリーム及びサブデジタルストリームの表示期間を引き延ばすための特殊再生を行うとしてもよい。
本態様の再生装置では、切り替え指示をユーザから受け付けた場合、切り替え先のサブデジタルストリームが再生不可能状態であることを示していれば、再生制御手段は、再生の停止を回避するための制御を行うので、再生が停止される可能性を低減することができる。
再生装置100の、使用行為についての形態の一例を示す図である。 プレイリストの一例を示す図である。 プレイリストの具体例を示す図である。 AVクリップがどのようにしてダウンロードされるかを示す図である。 再生装置100の構成の一例を示す図である。 クリップ番号と状態情報との対応テーブルを示す図である。 システムパラメータ(SPRM)の一覧を示す図である。 BD-Jアプリケーションの機能構成を示すブロック図である。 ネットワーク再生情報とプレイリストとの対応関係を示す図である。 ストリーミングライクな再生機能を模式的に示す図である。 再生開始タイミングを説明するための図である。 BD-Jアプリケーションの処理手順を示すフローチャートである。 プレイリスト再生開始タイミング処理の処理手順を示すフローチャートである。 優先ダウンロード処理の処理手順を示すフローチャートである。 優先度リスト作成処理の処理手順を示すフローチャートである。 再生状況監視処理の処理手順を示すフローチャートである。 プレイアイテム特定処理の処理手順を示すフローチャートである。 プレイリスト再生処理の処理手順を示すフローチャートである。 次に再生すべきAVクリップがEnable状態でない場合のBD-Jアプリケーションによる再生制御を説明するための図である。 変形例1−2における優先度リスト作成処理の処理手順を示すフローチャートである。 チャプタマークが付与されたプレイアイテムが参照するAVクリップのダウンロード時間をどのように短縮するかを説明するための図である。 実施の形態2のプレイリストの具体例を示す図である。 サブプレイアイテムを伴う場合のストリーミングライクな再生機能を模式的に示す図である。 実施の形態2における優先ダウンロード処理の処理手順を示すフローチャートである。 実施の形態2の再生状況監視処理の処理手順を示すフローチャートである。 実施の形態2のプレイリスト再生処理の処理手順を示すフローチャートである。 字幕切り替えがユーザによって要求されたため、現在の再生時点が、サブパス(ID=#0)の10003.m2tsを参照しているサブプレイアイテム#3から、サブパス(ID=#1)の20003.m2tsを参照しているサブプレイアイテム#3に変化した場合を想定した図である。 サブパス変更における再生状況監視処理の処理手順を示すフローチャートである。 次に再生すべきサブプレイアイテムが参照しているAVクリップがEnable状態でない場合の再生制御を説明するための図である。 変形例2−2における再生状況監視処理の処理手順を示すフローチャートである。 オーサリングシステムの構成を示す図である。 (a)ROMディスクイメージの作成手順を示すフローチャートである。(b)アップデートキットイメージの作成手順を示すフローチャートである。 AVクリップの構成の一例を示す図である。 AVクリップがどのように多重化されるかを模式的に示す図である。 PESパケット列にビデオストリームがどのように格納されるかを示す図である。 AVクリップに最終的に書き込まれるTSパケットの形式を示す図である。 PMTのデータ構造を示す図である。 クリップ情報ファイルの一例を示す図である。 ストリーム属性情報の一例を示す図である。 エントリマップの一例を示す図である。 プレイリスト情報のデータ構造を示す図である。 サブパス情報の内部構成を示す図である。 STN_tableの全体構成の一例を示す図である。 システムターゲットデコーダ104の内部構成の一例を示す図である。 BD-ROMの構成の一例を示す図である。 インデックスファイルの内部構成の一例を示す図である。 ムービーオブジェクトを説明するための図である。 ローカルストレージ300に格納されるアップデートキットの内部構成の一例を示す図である。 マージ管理情報ファイルの内容と、その内容を元にBD-ROMのファイルとアップデートキットのファイルとから、仮想パッケージを構築する過程の一例を示す図である。 ネットワーク再生情報の一例を示す図である。
以下、図面を参照しながら本発明の実施の形態を説明する。
(実施の形態1)
<全体構成>
まず、再生装置の実施行為のうち、使用行為についての形態を説明する。図1は、再生装置100の、使用行為についての形態の一例を示す図である。本図に示すように、再生装置100は、BD-ROM200、ローカルストレージ300、WWWサーバ400、及びテレビ500と共にユーザによる使用に供される。
再生装置100は、テレビ500と共に、ホームシアターシステムを構築して、BD-ROM200を再生する。かかる再生装置は、ダウンロードしたデータを記録媒体に書き込む機能を有したものであり、記録装置としての機能を兼備している。
BD-ROM200は、例えば映画作品が記録された記録媒体である。
ローカルストレージ300は、再生装置100に装填され、映画配給者のWWWサーバ400から配信されたコンテンツの受け皿として利用される。これにより、インターネットを通じてダウンロードされ、ローカルストレージに格納されたコンテンツと、BD-ROM200に記録されたコンテンツとを組み合わせて、BD-ROM200のコンテンツを拡張/更新をすることができる。
WWWサーバ400は、例えば映画配給者の公式サイトを運営するサーバ装置であり、BD-ROM200に記録された映画作品の部分的な置き換えや追加を実現するファイル一式(アップデートキット)を、インターネット等を介してユーザに供給する。
テレビ500は、映画作品の再生映像を表示したり、メニュー等を表示したりすることで、対話的な操作環境をユーザに提供する。
以上が再生装置の使用形態についての説明である。続いて、再生装置が再生の対象としているプレイリストについて説明する。
<プレイリスト>
図2は、プレイリストの一例を示す図である。プレイリストは、「メインパス」と1つ以上の「サブパス」とから構成される。
「メインパス」は、1つ以上のプレイアイテムから構成される。
「プレイアイテム」は、ストリーム番号テーブルを含む。
「ストリーム番号テーブル」は、プレイアイテムにおいて再生が許可されているエレメンタリストリームのストリーム番号を示す。
「サブパス」は、メインパスと同時に再生される一連の再生経路を示し、1つ以上のサブプレイアイテムから構成される。サブパスには、プレイリストに登録される順にID(サブパスID)が振られ、このサブパスIDは、サブパスを識別するために使われる。また、サブパスには、メインパスの再生に同期して再生される同期型と、メインパスの再生に非同期で再生可能な非同期型とがあり、そのタイプはサブパスタイプに記される。
サブパスタイプが同期型の場合は、サブプレイアイテムの再生開始時刻と再生終了時刻は、メインパスと同じ時間軸で表されるが、サブパスタイプが非同期型の場合は、サブプレイアイテムの再生開始時刻と再生終了時刻は、メインパスと異なる時間軸で表される。
プレイリスト情報、プレイアイテム情報、ストリーム番号テーブル、及びサブプレイアイテム情報の詳細については、後述する。
図3は、プレイリストの具体例を示す図である。このプレイリストは、5つのプレイアイテム#1,#2,#3,#4,#5を含むメインパスから構成される。5つのプレイアイテム#1,#2,#3,#4,#5は、それぞれ00001.m2ts、00002.m2ts、00003.m2ts、00004.m2ts、00005.m2tsを参照している。すなわちプレイアイテムとAVクリップとが一対一に対応している。
各プレイアイテムから参照されるAVクリップは、全てローカルストレージに格納されるアップデートキットのコンテンツであり、ネットワーク属性が付与されている。ネットワーク属性とは、プレイリスト再生にあたって、一つのコンテンツを構成する全てのAVクリップが予めローカルストレージに格納されていることを必要とせず、プレイアイテムから参照されるAVクリップが、当該プレイアイテムがカレントプレイアイテムになる直前にローカルストレージに格納されていれば足りる、というAVクリップの属性のことである。
メインパスの各プレイアイテムは、図中右上のようなストリーム番号テーブルを有する。このストリーム番号テーブルは、ストリーム番号1が割り当てられたエントリーをもつ。このエントリーは、メインパスのプレイアイテム情報によって参照されるプライマリビデオストリームの再生を許可するものである。
本実施の形態においては、これ以降、図3に示すプレイリストを具体例として用いて、再生装置の動作を説明する。このプレイリストは、例えば、BD-ROM200に記録された映画がユーザに視聴された後、WWWサーバ400から配信されるおまけ映像に対応するものである。
図4は、AVクリップがどのようにしてダウンロードされるかを示す図である。本図における右側はWWWサーバ400を示し、左側は再生装置100を示す。真ん中は、インターネットやイントラネット等の伝送路を示す。
00001.m2ts、00002.m2ts、00003.m2ts、00004.m2ts、00005.m2tsは、WWWサーバ400に存在する。再生装置100は、WWWサーバ400に対し、00001.m2ts、00002.m2ts、00003.m2ts、00004.m2ts、00005.m2tsのダウンロード要求を順次送信することで、これらをWWWサーバ400からダウンロードすることができる。
以下、再生装置100がダウンロード要求、ダウンロード、及びプレイリスト再生を行うための構成要素について説明する。これらの処理のための構成要素には、BD-Jアプリケーションと、BD-Jオブジェクトとがあり、これらは記録媒体200に記憶されている。以下、これらの構成要素の詳細について説明する。
<BD-Jアプリケーション>
BD-Jアプリケーションは、Java(登録商標)2Micro_Edition(J2ME) Personal Basis Profile(PBP 1.0)と、Globally Executable MHP specification(GEM1.0.2)for package media targetsとをフル実装したプラットフォーム部において、タイトルを生存区間としたアプリケーションシグナリングによって起動されるJava(登録商標)アプリケーションである。
BD-Jアプリケーションは、プレイリストを再生するJMFプレーヤインスタンスの生成をJava(登録商標)仮想マシンに命じることで、プレイリスト再生を開始させる。JMF(Java Media Frame work)プレーヤインスタンスとは、JMFプレーヤクラスを基にして仮想マシンのヒープメモリ上に生成される実際のデータのことである。
JMFインスタンスが生成された後、BD-Jアプリケーションは、プレイリスト再生にあたって、必要となるAVクリップのダウンロードをWWWサーバ400に対して要求する。
上述したようなプレイリスト再生及び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展開ソフトウェアにより中身を確認することができる。
また、BD-Jアプリケーションでは、ファンクションAPIのコールを記述することにより、再生装置100特有の処理を実行させることができる。
<BD-Jオブジェクト>
BD-Jオブジェクトは、アプリケーション管理テーブル(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)を規定することができる。
続いて、再生装置100の内部構成について説明する。
<再生装置>
図5は、再生装置100の構成の一例を示す図である。再生装置100は、BD-ROMドライブ101、リードバッファ102、リードバッファ103、システムターゲットデコーダ104、BD-J実行部105、ネットワークインタフェイス106、仮想パッケージ制御部107、状態管理部108、ユーザイベント処理部109、再生エンジン110、再生制御エンジン111、HDMI送受信部112、ヒープメモリ113、仮想マシンインタプリタ114、及びPSRセット115を含んで構成されている。以降、これらの構成要素について詳細に説明する。
<BD-ROMドライブ101>
BD-ROMドライブ101は、BD-ROMディスクからデータを読み出し、リードバッファ102にデータを蓄える。
<リードバッファ102>
リードバッファ102は、BD-ROMドライブを使って読み込んだデータを一時的に格納するメモリ等で構成されたバッファである。
<リードバッファ103>
リードバッファ103は、ローカルストレージから読み込んだデータを一時的に格納するメモリ等で構成されたバッファである。
<システムターゲットデコーダ104>
システムターゲットデコーダ104は、リードバッファ102に読み出されたソースパケット及びリードバッファ103に読み出されたソースパケットに対して多重分離処理を行い、多重分離処理により得られる各ストリームをデコードし再生する処理を行う。
また、BD-J実行部105から転送される、メニューなどに表示するためのJPEG,PNGなどのグラフィックスデータをデコードして再生する処理を行う。システムターゲットデコーダ104の詳細については後述する。
<BD-J実行部105>
BD-J実行部105は、仮想パッケージ制御部107から転送されるBD-Jアプリケーションを実行するプログラム処理エンジンである。BD-Jアプリケーションのプログラムに従った動作を行い、次のような制御を行う。
(1)仮想パッケージ制御部107を介して、プレイリスト再生開始タイミング処理、優先ダウンロード処理及び再生状況監視処理を行う。これらの処理の詳細は、後述する。(2)インターネット上のWWWサーバからアップデートキットを取得しローカルストレージへ蓄積する。(3)BD-ROMとアップデートキットとを組み合わせた仮想パッケージの構築を命令する。(4)プレーヤ変数に値をセットする。(5)システムターゲットデコーダに対してメニューやゲームのグラフィックスのためのPNG・JPEGを転送して画面に表示する。これらはプログラムの作りに応じて自由に行うことができ、どのように制御するかは、オーサリング時におけるBD-Jアプリケーションのプログラミング工程によって決まる。
<ネットワークインタフェイス106>
ネットワークインタフェイス106は、再生装置における通信機能を実現するものであり、URL指定がBD-Jアプリケーションから与えられれば、そのURLにあたるwebサイトとのTCPコネクション、FTPコネクション等を確立する。かかるコネクション確立によりwebサイトからのダウンロードをJava(登録商標)アプリケーションに行わせる。
<仮想パッケージ制御部107>
仮想パッケージ制御部107は、BD-ROMドライブ101及びローカルストレージ300を制御して、仮想パッケージを構築し、再生装置100の再生を制御する機能を持つ。仮想パッケージとは、ローカルストレージ300に格納されたマージ管理情報に基づいて、BD-ROMディスクに記録されたコンテンツとローカルストレージ300に格納された差分データとをメモリ上で組み合せた仮想的なBD-ROMパッケージである。構築された仮想パッケージは、BD-ROMのデータ構造と同じ形式を持つ。仮想パッケージを構築するタイミングは、ディスクがインサートされた時や、BD-J実行部105により仮想パッケージ構築命令が実行された時などである。
仮想パッケージ制御部107は、仮想パッケージが構築された後は、BD-J実行部の再生命令やユーザイベント処理部の通知に基づいて、プレイリスト情報を介して、AVクリップの再生を制御する。また、仮想パッケージ制御部107は、プレーヤ変数の設定や参照を行い、再生動作を行う。
<状態管理部108>
状態管理部108は、BD-ROM及びローカルストレージに存在する個々のAVクリップの状態情報を、当該AVクリップのクリップ番号に対応付けて管理する。状態情報は、Missing状態、Enable状態、及びDisable状態の何れであるかを示す。
Missing状態とは、プレイアイテム情報、またはサブプレイアイテム情報から参照されているAVクリップが、BD-ROM及びローカルストレージの何れにも存在しない、すなわちダウンロードが完了しておらず、再生不可能な状態であることを意味する。
Enable状態とは、仮想パッケージ制御部107での再生が可能な状態であることを意味し、BD-JアプリケーションのAPIで制御される。Enable状態にセットするためのAPIが実行された場合、セットの対象となるAVクリップは、リードオンリー属性になり、仮想パッケージ制御部107でのAVクリップの再生が可能になる。
Disable状態は、Enable状態の反対を意味し、仮想パッケージ制御部107は当該状態に該当するAVクリップの再生をすることができない。BD-JアプリケーションによりEnable状態に一度もセットされていないAVクリップは、Disable状態である。また、Enable状態のAVクリップの削除や上書き等は、BD-Jアプリケーションが、APIを介して、当該AVクリップをDisable状態に一度遷移させた後に、実行される。
Missing状態及びDisable状態を併せてUnavailable 状態といい、Missing状態になっているAVクリップと、Disable状態になっているAVクリップとを併せてUnavailableクリップという。
図6は、クリップ番号と状態情報との対応テーブルを示す図である。本図に示す例では、クリップ番号00001,00002,00003の各々に対応する00001.m2ts、00002.m2ts、00003.m2tsがEnable状態であり、クリップ番号00004に対応する00004.m2tsがDisable状態であり、クリップ番号00005に対応する00005.m2tsがMissing状態であることがわかる。対応テーブルは、AVクリップのダウンロード状況等に基づいて、BD-Jアプリケーションにより適宜書き換えられる。
状態管理部108は、BD-JアプリケーションからAVクリップの状態情報の問い合わせを受けると、対応テーブルを参照し、当該AVクリップの状態情報を返信する。
<ユーザイベント処理部109>
ユーザイベント処理部109は、リモコンを通じたユーザ操作に応じた処理の実行をBD-J実行部105や仮想パッケージ制御部107に依頼する。例えば、リモコンのボタンを押した場合は、そのボタンに対応するプレイリストを実行するようBD-J実行部105に依頼する。また、例えば、リモコンで早送り・巻戻しボタンが押された場合には、仮想パッケージ制御部107に、現在再生しているプレイリストのAVクリップに対する早送り・巻戻し処理の実行を命令する。
<再生エンジン110>
再生エンジン110は、AV再生ファンクションを実行する。再生装置のAV再生ファンクションとは、DVDプレーヤ、CDプレーヤから踏襲した伝統的な機能群であり、再生開始(Play)、再生停止(Stop)、一時停止(Pause On)、一時停止の解除(Pause Off)、Still機能の解除(still off)、速度指定付きの早送り(Forward Play(speed))、速度指定付きの巻戻し(Backward Play(speed))、音声切り換え(Audio Change)、Secondaryビデオ切り換え(Subtitle Change)、及びアングル切り換え(Angle Change)といった機能である。AV再生ファンクションを実現するべく、再生エンジン110は、AVクリップのうち、所望の時刻にあたる部分のデコードを行うよう、システムターゲットデコーダを制御する。
<再生制御エンジン111>
再生制御エンジン111は、プレイリストに対する再生制御ファンクションを実行する。プレイリストに対する再生制御ファンクションとは、再生エンジン110が行うAV再生ファンクションのうち、再生開始や再生停止を、カレントプレイリスト情報及びクリップ情報に従って行わせることをいう。
<HDMI送受信部112>
HDMI送受信部112は、HDMI(HDMI: High Definition Multimedia Interface)を介して接続された他の機器から、その機器に関する情報を受信する。また、システムターゲットデコーダによるデコードにより得られたデジタル非圧縮のビデオを、LPCM状態のオーディオデータまたは圧縮符号化されたオーディオデータとともに、HDMIを介して接続された他の機器に送信する。
<ヒープメモリ113>
ヒープメモリ113は、BD-J実行部105のために確保されるスタックメモリであり、BD-Jアプリケーションによって生成されたJMFプレーヤインスタンスや、BD-Jアプリケーションに対してクラスローダを行うことで生成されるバイトコードが格納される。これらは、スレッドの態様をなし、先入先出し式に、仮想マシンインタプリタ114による実行に供される。
<仮想マシンインタプリタ114>
仮想マシンインタプリタ114は、ヒープメモリ113に格納されたバイトコードをCPUが実行可能なネィティブコードに変換してCPUに実行させる。
<PSRセット115>
PSRセット115は、プレーヤ変数を格納しているプレーヤセッティングレジスタ、プレーヤステータスレジスタである。プレーヤ変数には、プレーヤの状態を示すシステムパラメータ(SPRM)と、一般用途として使用可能なゼネラルパラメータ(GPRM)とがある。
図7は、システムパラメータ(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)は、対応するレジスタのレジスタ番号を意味している訳ではない)。
<システム時間生成部116>
システム時間生成部116は、システム起動時からの経過時間を示すシステム時間情報を生成し、BD-J実行部105へ提供する。
続いて、BD-Jアプリケーションの機能構成について説明する。
<BD-Jアプリケーションの機能構成>
図8は、BD-Jアプリケーションの機能構成を示すブロック図である。図8に示すように、BD-Jアプリケーションは、再生制御部121、優先順位決定部122、ストリームダウンロード部123、無効クリップ判定部124、ダウンロード状況判定部125、ナビゲーション制御部126、メニュー表示部127、及び再生クリップ検出部128を含んで構成される。
<再生制御部121>
再生制御部121は、次のような処理を行う。(i)再生中のAVクリップの次に再生すべき次AVクリップの通知を再生クリップ検出部128から受け付け、次AVクリップが再生可能状態であるか、または再生不可能状態であるかの判定を無効クリップ判定部124に依頼する。(ii)次AVクリップが再生可能状態であるか、または再生不可能状態であるかの判定結果を無効クリップ判定部124から受け付け、その判定結果に基づいて、再生制御エンジン111を制御する。(iii)再生中のAVクリップの通知及び再生速度を再生クリップ検出部128から受け付け、ダウンロードが完了しておらず状態情報が再生不可能状態であることを示すAVクリップをダウンロードする際の優先順位を決定するよう、優先順位決定部122に依頼する。優先順位決定部122への依頼の際、再生中のAVクリップのクリップ番号及び再生速度を通知する。(iv)システム時間生成部116からシステム時間を、ダウンロード状況判定部125からダウンロード済みのAVクリップのクリップ番号を取得する。システム時間とクリップ番号とネットワーク再生情報とに基づいて、再生制御エンジン111にプレイリストの再生開始を指示する。
<優先順位決定部122>
優先順位決定部122は、ネットワーク再生情報、再生中のAVクリップのクリップ番号、再生速度、及びダウンロードが完了していないAVクリップのクリップ番号に基づいて、どのAVクリップを優先してダウンロードすべきかを示す優先度リストを作成する。
<ストリームダウンロード部123>
ストリームダウンロード部123は、優先度リストに基づいて、ダウンロードが完了していないAVクリップのダウンロードをネットワークインタフェイス部106に指示する。
<無効クリップ判定部124>
無効クリップ判定部124は、次AVクリップの状態情報を状態管理部108に要求する。その状態情報から次AVクリップが再生可能状態であるか、または再生不可能状態であるかを判定し、その結果を再生制御部121に通知する。
<ダウンロード状況判定部125>
ダウンロード状況判定部125は、再生中のプレイリストに対応する各AVクリップの状態情報を状態管理部108に要求する。それら状態情報から当該状態情報に対応するAVクリップのダウンロードが完了しているか否かを判定し、ダウンロードが完了していると判定したAVクリップのクリップ番号を再生制御部121に通知する。また、ダウンロードが完了していないと判定したAVクリップのクリップ番号を優先順位判定部122に通知する。
<ナビゲーション制御部126>
ナビゲーション制御部126は、ユーザ操作に応じた処理を行うようメニュー表示部127及び再生制御部121を制御する。例えば、ユーザ操作がプレイリスト及びプレイアイテムの選択である場合には、再生制御部121に対し、選択されたプレイリストのプレイアイテムが参照しているAVクリップを再生するよう、指示する。
<メニュー表示部127>
メニュー表示部127は、システムターゲットデコーダに対してメニューやゲームのグラフィックスのためのPNG・JPEGを転送し、画面に表示する。
<再生クリップ検出部128>
再生クリップ検出部128は、PSRセットから現在の再生時間を取得し、取得した再生時間をネットワーク再生情報に照らし合わせて、現在再生されているAVクリップを特定する。また、PSRセットから再生速度を取得し、再生速度の正負に基づいて再生方向を特定し、特定した再生方向及びネットワーク再生情報に基づいて、現在再生されているAVクリップの次に再生すべきAVクリップを特定する。
<ネットワーク再生情報>
続いて、図9は、ネットワーク再生情報と図3で示したプレイリストとの対応関係を示す図である。図9に示すように、ネットワーク再生情報は、クリップ番号、開始時間、終了時間、チャプタマーク付与情報、及びファイルサイズを含む。これらは、図3で示したプレイリストにおけるプレイアイテムの数と同じだけ存在する。すなわち、プレイアイテムと、図9で示すネットワーク再生情報における一行分の情報とが、一対一に対応している。
クリップ番号は、対応するプレイアイテムが参照しているAVクリップのファイル名に対応しており、当該ファイル名と同じ値を示す。
開始時間は、対応するプレイアイテムにおける再生開始時刻に対応しており、再生開始時刻と同じ値を示す。
終了時間は、対応するプレイアイテムにおける再生終了時刻に対応しており、再生終了時刻と同じ値を示す。
チャプタマーク付与情報は、対応するプレイアイテムにチャプタマークが付与されているか否かを示す情報である。
ファイルサイズは、対応するプレイアイテムが参照しているAVクリップのファイルサイズを示す。
BD-Jアプリケーションが上述したネットワーク再生情報を保持しているので、再生装置から現在の再生時間を取得し、ネットワーク再生情報に照らし合わせることで、カレントプレイアイテムを特定することができる。プレイアイテムとAVクリップとは、一対一で対応しているため、ネットワーク再生情報に含まれるクリップ番号を基に、再生中のAVクリップを特定することができる。
さらに、再生装置から再生速度を取得し、ネットワーク再生情報に照らし合わせることで、その次に再生すべきAVクリップを特定することができる。
<具体例>
続いて、仮想パッケージを利用したストリーミングライクな再生機能における再生制御エンジン111の再生遷移について説明する。図10は、ストリーミングライクな再生機能を模式的に示す図である。
ストリーミングライクな再生機能とは、プレイアイテム情報又はサブプレイアイテム情報によって参照されているAVクリップであって、ネットワーク属性が付与されているものを、当該プレイアイテム情報又はサブプレイアイテム情報が、カレントプレイアイテム又はカレントサブプレイアイテム情報になる直前にローカルストレージに格納するよう、再生動作とダウンロード動作とを並列に行うことをいう。
図10上段は、プレイリストを示し、プレイリストを構成する5つのプレイアイテムは、それぞれ、00001.m2ts、0002.m2ts、00003.m2ts、00004.m2ts、00005.m2tsを参照する。これらはすべてローカルストレージに格納されたアップデートキットのコンテンツであり、ネットワーク属性が付与されている。このうち、00001.m2ts、00002.m2tsは、すでにダウンロードが完了しており、BD-JアプリケーションによりEnable状態にセットされている。00003.m2ts、00004.m2ts、00005.m2tsは、まだダウンロードがされていないMissing状態であるか、あるいはダウンロードはされているがDisable状態であることを示す。
再生制御エンジン111がプレイリストの先頭プレイアイテムから順に再生する場合、その再生位置がプレイアイテム#1に存在する限り、再生が妨げられることはない。プレイアイテム#1, #2のプレイアイテム情報は、Enable状態であるAVクリップを参照しているからである。00003.m2tsがEnable状態にセットされていないため、プレイアイテム#2の区間では、00003.m2tsの状態情報に基づいてBD-Jアプリケーションにより一時停止され得る。
図10上段では、プレイアイテム#2の途中まで再生が進行している。
図10中段は、図10上段からさらに再生位置が進んだ図を示し、再生位置がプレイアイテム#3に遷移する前に00003.m2tsのダウンロードが完了し、BD-JアプリケーションによりEnable状態にセットされたことを示す。したがって、プレイアイテム#2の区間において、一時停止されることなく、プレイアイテム#3に遷移する。
図10中段では、再生は、プレイアイテム#3の途中まで進行している。
図10下段は、図10中段からさらに再生位置が進んだ図を示し、再生位置がプレイアイテム#4に遷移する前に、00004.m2tsのダウンロードが完了しておらずMissing状態であるか、あるいはDisable状態であることを示す。この場合、00004.m2ts は再生可能状態ではないので、BD-Jアプリケーションにより00003.m2tsの再生の一時停止指示がなされることになる。
これにより、00003.m2tsに続いて00004.m2tsの再生が試みられる前に、BD-Jアプリケーションが00003.m2tsの再生を一時停止する要求を再生制御エンジン111に送ることで、再生が一時停止されるので、表示画面に何らかの映像が表示された状態を維持することができる。
したがって、00004.m2tsが再生可能な状態でないために、再生が停止される事態を回避することができる。
また、00003.m2tsの再生を一時停止することで、00004.m2tsをEnable状態に遷移させる時間を稼ぐことができ、00004.m2ts がEnable状態に遷移次第、一時停止を解除し再生を再開することも可能となる。
以上のように、再生の一時停止はなされるものの、再生の停止、すなわち表示画面に何も表示されない状態が発生しない、ストリーミングライクな再生を実現することができる。
<再生開始タイミング>
続いて、プレイリスト再生の開始タイミングについて説明する。ストリーミングライクな再生機能では、少なくとも再生開始位置に相当するAVクリップさえEnable状態であれば再生を開始することができる。しかしながら、再生開始位置に相当するAVクリップのみがEnable状態である場合に再生を開始すると、ネットワークの混雑状況等によっては、次に再生すべきAVクリップがEnable状態になっていないために、再生開始後すぐにBD-Jアプリケーションにより一時停止指示がなされ得る。
そこで、ここでは、ネットワークの混雑状況によって大きく影響を受けるダウンロード時間に焦点を絞り、このダウンロード時間に基づいて、可能な限りAVクリップの再生を一時停止することなくストリーミングライクな再生を実現するための方法について説明する。
図11は、再生開始タイミングを説明するための図である。図11(a)は、#1~#9の9つのプレイアイテムからなるプレイリストを示している。ここで、現時点で、プレイアイテム#1,#2に対応するAVクリップのダウンロードが完了しており、他のプレイアイテムに対応するAVクリップのダウンロードは完了していないとする。このような状況において、一度もAVクリップの再生を一時停止することなく、ストリーミングライクな再生を実行するためには、ダウンロードすべき残りの全AVクリップにおいて、当該AVクリップの再生が開始されるまでの時間が、当該AVクリップのダウンロードが完了するまでに必要な時間を上回っているか、あるいは等しければよい。この関係を数式で表すと、下記の(数1)となる。

Figure 2010103827
ここで、lは、再生開始位置に相当するAVクリップを示し、mは、ダウンロードが完了していないAVクリップのうち先頭のAVクリップを示す。nは、ダウンロードが完了していないAVクリップのうち一のAVクリップを示す。
プレイアイテム#3~#9のAVクリップの各々において、(数1)の関係が満たされていれば、AVクリップ#1の再生を開始すればよい。
なお、AVクリップのダウンロード時間は、ネットワークの混雑状況によって変化するため、(数1)の関係が満たされた状態で再生が開始されたとしても、再生中のAVクリップの次に再生すべきAVクリップの状態情報が、再生可能な状態を示していない場合も当然あり得る。
しかしながら、再生開始の基準として(数1)を設けることで、再生開始後すぐにBD-Jアプリケーションにより一時停止指示がなされる可能性を低減することはできる。
<BD-Jアプリケーションの処理>
図12は、BD-Jアプリケーションの処理手順を示すフローチャートである。
ステップS1において、BD-Jアプリケーションは、ローディングされたBD-ROMに対応するアップデートキットを、ローカルストレージのBUDA(Biding Unit Data Area)ディレクトリにダウンロードする。
ステップS2において、アップデートキット内のマージ管理情報ファイルを指定した仮想パッケージ構築要求を発行する。
以降、ステップS3〜ステップS6のループを実行する。まず、ステップS3において、プレイリスト、当該プレイリスト中の再生開始位置となるプレイアイテム、及び再生速度を指定するユーザ入力を取得する。
ステップS4において、ユーザ入力に対応するプレイリストを選択し、JMFプレーヤインスタンスをヒープメモリ内にクリエイトする。
ステップS5において、(1)プレイリスト再生開始タイミング処理、(2)優先ダウンロード処理、及び(3)再生状況監視処理という3つのスレッドを仮想マシン内に立てて、これらの処理を並列で実行する。
これらの3つの処理の実行が終了すれば、ステップS6において、3つのスレッドを終了させ、ステップS3に戻る。
<プレイリスト再生開始タイミング処理>
図13は、プレイリスト再生開始タイミング処理の処理手順を示すフローチャートである。本フローチャートにおいて、xは、ダウンロードが完了していない一のAVクリップを特定するための変数であり、xが1のとき、ダウンロードが完了していないAVクリップのうち再生開始位置に最も近いAVクリップを示す。xが大きくなるにつれて、xにより特定されるAVクリップは、再生開始位置から離れていく。また、yは、ダウンロードが完了していないAVクリップの総数を示す。
まず、ステップS11において、再生制御部121は、指定されたプレイアイテムに対応するAVクリップから再生方向に向かって順次ダウンロードするよう、ストリームダウンロード部123を介してネットワークインタフェイスに指示する。
ステップS12において、システム時間生成部116からダウンロード開始時のシステム時間を取得する。
予め設定された所定時間が経過した後(ステップS13でYes)、ステップS14、15において、ダウンロード済みのAVクリップのクリップ番号と現在のシステム時間とを取得する。
ステップS16において、ネットワーク再生情報を参照して、取得したクリップ番号に対応するAVクリップの総ファイルサイズを算出した後、この総ファイルサイズと、現在のシステム時間とダウンロード開始時のシステム時間との差分とに基づいて、AVクリップのダウンロード速度を算出する。
ステップS17において、変数xに1を設定する。
ステップS18において、再生開始位置から変数xにより特定されるAVクリップの直前のAVクリップまでの再生時間を、ネットワーク再生情報を参照して算出する。
ステップS19において、ダウンロードが完了していないAVクリップのうち変数xにより特定されるAVクリップまでのダウンロードサイズを、ネットワーク再生情報を参照して算出する。
ステップS20において、このダウンロードサイズとステップS16で算出したダウンロード速度とに基づいて、ダウンロードが完了していないAVクリップのうち変数xにより特定されるAVクリップまでのダウンロード時間を算出する。
ステップS21において、再生時間がダウンロード時間以上の長さであるか判定する。
ダウンロード時間が再生時間より長いと判定された場合には、ステップS13に戻る。
再生時間がダウンロード時間以上の長さであると判定された場合には、ステップS22において、xがy以上かの判定、すなわち他にダウンロードが完了していないAVクリップが存在するかの判定を行う。
他にダウンロードが完了していないAVクリップが存在すると判定された場合には、ステップS23において、変数xを1計数し、ステップS18に戻る。
他にダウンロードが完了していないAVクリップが存在すると判定されなかった場合、すなわちダウンロードが完了していない全てのAVクリップについて、ステップS21の関係を満たす場合には、ステップS24において、APIを介して、再生制御エンジン111にプレイリスト再生を指示する。
<優先ダウンロード処理>
図14は、優先ダウンロード処理の処理手順を示すフローチャートである。
まず、ステップS31において、再生クリップ検出部128は、PSRセット115から現在の再生位置を取得する。
ステップS32において、再生中のプレイリストに対応するネットワーク再生情報を取得する。
ステップS33において、現在の再生位置をネットワーク再生情報に照らし合わせて、当該再生位置を含む再生区間を特定する。そして、その再生区間のクリップ番号に基づいて、カレントプレイアイテムを特定する。
ステップS34において、優先順位判定部122は、後述する優先度リスト作成処理を行い、ステップS35において、優先度リストに基づいて、AVクリップをダウンロードするよう指示する。
<優先度リスト作成処理>
図15は、優先度リスト作成処理の処理手順を示すフローチャートである。本フローチャートにおいてiは、一のプレイアイテムを特定する変数である。
まず、ステップS41において、優先順位判定部122は、プレイアイテムiにカレントプレイアイテムを設定する。
ステップS42において、再生速度を取得し、ステップS43において、取得した再生速度に基づいて、プレイリストの再生方向が順方向であるか判定する。この判定は、例えば、再生速度の値の正負に基づいてなされる。
再生速度の値が正の値、すなわち再生方向が順方向であると判定された場合には、ステップS44において、カレントプレイアイテムに後続するプレイアイテムが存在するかをネットワーク再生情報に基づいて判定する。ここで、カレントプレイアイテムに後続するプレイアイテムとは、例えば、プレイアイテム#3がカレントプレイアイテムであるとした場合、プレイアイテム#4が該当する(図3参照)。
後続するプレイアイテムが存在すると判定されなかった場合には、カレントプレイアイテムに続いて再生すべきプレイアイテムは、もはや存在しないので、ダウンロード対象となるAVクリップも存在せず、処理を終了する。
後続するプレイアイテムが存在すると判定された場合には、ステップS45において、そのプレイアイテムに対応するAVクリップのクリップ番号を取得する。
ステップS46において、プレイアイテムiに後続のプレイアイテムを設定する。
ステップS47において、クリップ番号で示されるAVクリップがすでにダウンロード済みであるかを判定する。
クリップ番号で示されるAVクリップがすでにダウンロード済みであると判定された場合には、ステップS43に戻る。
クリップ番号で示されるAVクリップがすでにダウンロード済みであると判定されなかった場合には、ステップS48において、クリップ番号を優先度リストへ格納し、ステップS43に戻る。優先度リストに真っ先に格納されるクリップ番号に対応するAVクリップが、ダウンロードの優先度が最も高いAVクリップとなる。
ステップS43において、再生速度の値が負の値、すなわち再生方向が順方向であると判定されなかった場合には、ステップS49において、カレントプレイアイテムの直前のプレイアイテムが存在するかをネットワーク再生情報に基づいて判定する。ここで、カレントプレイアイテムの直前のプレイアイテムとは、例えば、プレイアイテム#3がカレントプレイアイテムであるとした場合、プレイアイテム#2が該当する(図3参照)。
直前のプレイアイテムが存在すると判定されなかった場合には、カレントプレイアイテムに続いて再生すべきプレイアイテムは、もはや存在しないので、処理を終了する。
直前のプレイアイテムが存在すると判定された場合には、ステップS50において、そのプレイアイテムに対応するAVクリップのクリップ番号を取得する。
ステップS51において、プレイアイテムiに直前のプレイアイテムを設定し、ステップS47に進む。それ以降の処理は、すでに説明した通りである。
以上の処理を経ることで、優先度リストを作成することができる。優先度リストには、ダウンロードの優先度が高い順にクリップ番号が格納されている。
したがって、この優先度リストに基づいてダウンロード指示を行うことで、ダウンロードの優先度が高い、すなわちダウンロードが完了していないAVクリップのうち再生中のAVクリップに最も近いAVクリップから順にダウンロードすることができる。例えば、逆方向の再生がなされている場合、カレントプレイアイテムの直前のプレイアイテムが参照するAVクリップがダウンロードされていなければ、まずは当該AVクリップを優先的にダウンロードする。
その結果、再生中のAVクリップの次に再生すべきAVクリップの状態情報が、再生可能状態を示す確率を高めることができる。
なお、ステップS44において、後続するプレイアイテムが存在すると判定されなかった場合には、処理を終了するとしたが、再生中のプレイアイテムの前のプレイアイテムにさかのぼって、ダウンロードされていないAVクリップがあるか検索してもよい。
<再生状況監視処理>
図16は、再生状況監視処理の処理手順を示すフローチャートである。本フローチャートは、定期的(例えば数秒おき)または不定期に実行される。本フローチャートのステップS61〜63までの処理は、図14のステップS31〜33と同様であるため、ここでは説明を省略する。
ステップS63において、カレントプレイアイテムを特定すると、再生クリップ検出部128は、ステップS64において、後述するプレイアイテム特定処理を行う。
ステップS65において、再生制御部121は、次に再生すべきAVクリップがEnable状態であるか判定する。
そのAVクリップがEnable状態であると判定された場合には、再生を継続する。
そのAVクリップがEnable状態であると判定されなかった場合には、ステップS66において、APIを介して、再生制御エンジン111に再生の一時停止を指示する。
その後、ステップS67において、再生再開処理を行う。再生再開処理は、例えば、図13のステップS13以降の処理を行うことによりなされるとしてもよい。
<プレイアイテム特定処理>
図17は、プレイアイテム特定処理の処理手順を示すフローチャートである。ステップS71において、再生クリップ検出部128は、再生速度を取得し、ステップS72において、取得した再生速度に基づいて、プレイリストの再生方向が順方向であるか判定する。
再生方向が順方向であると判定された場合には、ステップS73において、カレントプレイアイテムに後続するプレイアイテムが存在するかをネットワーク再生情報に基づいて判定する。
後続するプレイアイテムが存在すると判定されなかった場合には、カレントプレイアイテムに続いて再生すべきプレイアイテムは、もはや存在しないので、処理を終了する。
後続するプレイアイテムが存在すると判定された場合には、ステップS74において、そのプレイアイテムに対応するAVクリップのクリップ番号を取得する。
ステップS72において、再生方向が順方向であると判定されなかった場合には、ステップS75において、カレントプレイアイテムの直前のプレイアイテムが存在するかをネットワーク再生情報に基づいて判定する。
直前のプレイアイテムが存在すると判定されなかった場合には、カレントプレイアイテムに続いて再生すべきプレイアイテムは、もはや存在しないので、処理を終了する。
直前のプレイアイテムが存在すると判定された場合には、ステップS76において、そのプレイアイテムに対応するAVクリップのクリップ番号を取得する。
これにより、プレイリストの再生方向によらず次に再生すべきプレイアイテムを特定することができる。したがって、プレイリストの再生方向によらず再生状況監視処理を行うことができる。
<プレイリスト再生処理>
図18は、プレイリスト再生処理の処理手順を示すフローチャートである。ステップS81において、再生制御エンジン111は、プレイリスト情報における、再生開始位置に相当するプレイアイテムをカレントプレイアイテムに設定する。
ステップS82において、カレントプレイアイテムのClip_information_file_nameで指定されているAVクリップを選択する。
以降、ステップS83〜ステップS88のループ処理を実行する。ステップS83において、AVクリップを構成するソースパケットのうち、カレントプレイアイテムのin_timeからout_timeまでの部分をローカルストレージ300から読み出す。
ステップS84において、他にプレイアイテムが存在するか否かを判定する。
他にプレイアイテムが存在すると判定されなかった場合には、処理を終了する。
他にプレイアイテムが存在すると判定された場合には、ステップS85において、PSRセットから再生速度を取得し、ステップS86において、取得した再生情報に基づいて、プレイリストの再生方向が順方向か否かを判定する。
再生方向が順方向であると判定された場合には、ステップS87において、カレントプレイアイテムに後続するプレイアイテムを新たなカレントプレイアイテムに設定する。
再生方向が順方向であると判定されなかった場合には、ステップS88において、カレントプレイアイテムの直前のプレイアイテムを新たなカレントプレイアイテムに設定する。
ステップS87またはステップS88により、新たなカレントプレイアイテムが設定された後、ステップS83に戻る。
以上のように本実施の形態によれば、BD-Jアプリケーションがネットワーク再生情報を含んでおり、現在の再生時間をPSRセットから取得するので、再生時間をネットワーク再生情報に照らし合わせることにより、再生中のAVクリップを特定することができる。
また、PSRセットから再生速度を取得するので、再生速度から再生方向を判定することにより、次に再生すべき次AVクリップを特定することができる。
次AVクリップが特定されると、当該次AVクリップの状態情報を状態管理部108から取得することで、次AVクリップが再生可能状態であるかを判定することができる。
したがって、次AVクリップが再生可能状態でない場合には、再生中のAVクリップを一時停止することにより、再生が停止される状況を回避することができる。
(変形例1−1)
次に再生すべきAVクリップがEnable状態でない場合のBD-Jアプリケーションによる再生制御の内容を代替映像の再生に替えた一変形例について説明する。
図19は、次に再生すべきAVクリップがEnable状態でない場合のBD-Jアプリケーションによる再生制御を説明するための図である。
図19上段は、プレイリストを示しており、このプレイリストは、10個のプレイアイテム#1,#2,#3,~,#10から構成される。10個のプレイアイテムは、それぞれ、00001.m2ts、0002.m2ts、00003.m2ts、・・・、00010.m2tsを参照する。これらはすべてローカルストレージに格納されたアップデートキットのコンテンツであり、プレイアイテム#10以外のプレイアイテムには、ネットワーク属性が付与されている。このうち、00001.m2tsは、すでにダウンロードが完了しており、BD-JアプリケーションによりEnable状態にセットされている。00002.m2ts以降のAVクリップは、まだダウンロードがされていないMissing状態であるか、あるいはダウンロードはされているがDisable状態であることを示す。
また、プレイアイテム#10にはネットワーク属性が付与されていないため、プレイアイテム#10が参照する00010.m2tsは、仮想パッケージ構築時において、ダウンロードが完了している必要がある。
00010.m2tsは、ユーザ通知用のAVクリップであり、図19下段に示すように、例えば、「Download中です」という文字列を含む映像である。このAVクリップに対応するプレイアイテム#10には、チャプタマークが付与されていてもよい。
再生制御エンジン111がプレイリストの先頭プレイアイテムから順に再生する場合、00002.m2tsはまだダウンロードがされていないので、BD-Jアプリケーションは、00001.m2tsの再生中に、プレイアイテム#10に付与されたチャプタマークを指定して00010.m2tsの再生を指示することになる。
以上のように、次に再生すべきAVクリップがEnable状態でない場合に、BD-Jアプリケーションの指示により00010.m2tsを再生することで、再生の停止を回避するとともに、AVクリップがDownload中である旨をユーザに通知することができる。
また、00002.m2tsのダウンロードが完了し、再生可能な状態になれば、00001.m2tsの再生に戻ってもよい。その際、再生を切り替える直前の再生位置を記憶しておいてもよい。
なお、ここでは、ネットワーク属性が付与されていないAVクリップを使用することで、再生を保証したが、ネットワーク属性が付与されたAVクリップであっても、再生開始前にダウンロードを完了しておくことで、プレイリスト再生時には必ず再生可能な状態であることを保証してもよい。
また、プレイアイテム#10に付与されたチャプタマークを指定して00010.m2tsの再生を指示したが、プレイアイテム#10の再生開始時間を指定して再生を開始してもよい。
また、ユーザ通知用AVクリップの映像は、主映像であってもよいし、副映像であってもよい。さらに、再生中のプレイリスト内のAVクリップであってもよいし、別のプレイリストのAVクリップであってもよい。00010.m2tsが再生中のプレイリストとは異なるプレイリストに含まれる場合には、BD-Jアプリケーションは、そのプレイリストを選択して、当該プレイリストにおけるプレイアイテム#10の再生を開始するとしてもよい。その際、プレイアイテム#10を含むプレイリストを示す情報は、例えばBD-Jアプリケーションに含まれるとしてもよい。
(変形例1−2)
チャプタマークの有無に応じて2種類の優先度リストを作成する一変形例について説明する。
再生装置がプレイリスト再生中に、スキップ等の特殊再生指示をユーザから受け付けることがある。この場合には、上述した優先度リストに従ってAVクリップをダウンロードしたとしても、一時停止される頻度を抑えた、ストリーミングライクな再生を必ずしも実現することはできない。
ここでは、プレイリスト再生中にスキップ等の特殊再生指示をユーザから受け付けた場合であっても、可能な限りAVクリップの再生を一時停止することなくストリーミングライクな再生を実現するための方法について説明する。
図20は、変形例1−2における優先度リスト作成処理の処理手順を示すフローチャートである。本フローチャートにおいてiは、一のプレイアイテムを特定する変数である。
本図のステップS91〜97の処理は、図15のステップS41〜47と同様であり、ステップS101〜103の処理は、ステップS49〜51と同様であるため、ここでは説明を省略する。
ステップS97において、クリップ番号で示されるAVクリップがすでにダウンロード済みであると判定されなかった場合には、ステップS98において、プレイアイテムにチャプタマークが付与されているか判定する。
プレイアイテムにチャプタマークが付与されていると判定された場合には、ステップS99において、チャプタマーク有りに対応する優先度リストへクリップ番号を格納する。
プレイアイテムにチャプタマークが付与されていると判定されなかった場合には、ステップS100において、チャプタマーク無しに対応する優先度リストへクリップ番号を格納する。
このように、本変形例では、優先順位判定部122は、チャプタマークの有無に応じた2種類の優先度リストを作成する。
そして、例えばユーザからのスキップ指示があった場合には、チャプタマーク有りに対応する優先度リストに基づいてAVクリップをダウンロードするよう、指示する。
図3を用いて具体的に説明する。仮に現在の再生位置がプレイアイテム#1であるとし、00002.m2ts以降のAVクリップのダウンロードは完了していないものとする。この場合、次にチャプタマークが付与されているプレイアイテムは、プレイアイテム#3である。したがって、ユーザからのスキップ指示があった場合には、チャプタマーク有りに対応する優先度リストに基づいて、00002.m2tsではなく、00003.m2tsを優先的にダウンロードする。その後、00005.m2tsを優先的にダウンロードする。
スキップ等の特殊再生指示により不連続な再生区間を再生する場合であっても、その再生区間に相当するAVクリップ、すなわちチャプタマークが付与されたプレイアイテムが参照するAVクリップを優先的にダウンロードするので、AVクリップの再生が一時停止される可能性を低減することができる。
また、ユーザからのスキップ指示を受け付けていない間は、チャプタマーク無しに対応する優先度リストに基づいてAVクリップをダウンロードするよう、指示すればよい。
このように、ユーザからのスキップ指示の有無に応じて2種類の優先度リストを使い分けることにより、スキップ指示をユーザから受け付けた場合であっても、可能な限りAVクリップの再生を一時停止することなくストリーミングライクな再生を実現することができる。
なお、ここでは、チャプタマークの有無に応じて2種類の優先度リストを作成するとしたが、これに限らず、例えば、ユーザが再度視聴したい箇所を示すレジュームポイントやCM等の区切りを示すマークの有無に応じて作成するとしてもよい。
また、チャプタマーク有りに対応する優先度リストに基づくダウンロードは、ユーザからのスキップ指示があった場合に限らず、ユーザからのスキップ指示を受け付けていない場合になされてもよい。
(変形例1−3)
チャプタマークが付与されたプレイアイテムが参照するAVクリップのダウンロード時間を短縮する一変形例について説明する。
図21は、チャプタマークが付与されたプレイアイテムが参照するAVクリップのダウンロード時間をどのように短縮するかを説明するための図である。図21上段、下段はともにプレイリストを示している。これらは、図21下段のプレイリストにおける、チャプタマークが付与されたプレイアイテムが参照する00003.m2tsのサイズが、他のAVクリップのサイズより小さい点で異なる。すなわち、図21上段に示すプレイリストでは、各AVクリップの再生区間は等しく設定されている。そのため、00001.m2tsの再生中にユーザ操作によりチャプタスキップが発生した際、00003.m2tsのダウンロードが完了していない場合には、そのダウンロードに時間を要し、その再生をすぐに開始することができない場合がある。
一方、図21下段に示すプレイリストでは、00003.m2tsのサイズが、他のAVクリップのサイズより小さく設定されている。したがって、00001.m2tsの再生中にユーザ操作によりチャプタスキップが発生した際、00003.m2tsのダウンロードが完了していない場合であっても、図21上段の例と比べて、ダウンロードに要する時間を短縮でき、00003.m2tsの再生を早く開始することができる。
チャプタマークが付与されたプレイアイテムが参照するAVクリップのサイズを小さくする方法として、そのAVクリップのビットレートを下げることが挙げられる。再生区間が同一のままであってもビットレートを下げることでサイズを小さくすることができる。よって、サーバ側にビットレートの異なるAVクリップを複数用意しておき、ダウンロードの転送レートに応じて、ダウンロードすべきAVクリップをBD-Jアプリケーションが選択するような仕組みにしてもよい。
このような構成にすることで、再生装置が接続されたネットワーク環境に応じたAVクリップのダウンロードが可能となる。
また、サーバ側にビットレートの異なるAVクリップを複数用意しておき、画質優先か、またはリアルタイム性を優先するかをユーザ操作に基づいて選択し、その選択結果に応じて、BD-JアプリケーションがダウンロードすべきAVクリップを選択するとしてもよい。
このような構成にすることで、ユーザの意図を反映させてAVクリップをダウンロードすることができる。
また、チャプタマークが付与されたプレイアイテムが参照するAVクリップの再生時間が、その次のAVクリップのダウンロード時間を上回るか、等しくなるようにすることで、再生位置が変更された後もAVクリップの再生を一時停止することなく、ストリーミングライクな再生を継続することができる。
(実施の形態2)
本実施の形態では、プレイリストがサブパスを含む場合について説明する。図22は、本実施の形態のプレイリストの具体例を示す図である。図22に示すように、このプレイリストは、1つのメインパスと、2つのサブパス(サブパス(ID=0),サブパス(ID=1))とから構成される。メインパスについてはすでに説明しているので、ここではその説明を省略する。ID=0のサブパスは、5つのサブプレイアイテム#1,#2,#3,#4,#5を含み、ID=1のサブパスは、5つのサブプレイアイテム#1,#2,#3,#4,#5を含む。どちらのサブパスも同期型であり、例えば別々の言語の字幕データであるプレゼンテーショングラフィックスストリームが多重化されたAVクリップをそれぞれ参照している。
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が再生される。
<具体例>
図23は、サブプレイアイテムを伴う場合のストリーミングライクな再生機能を模式的に示す図である。図中の矢印は、再生がどこまで進行を示したかを示す。
第1段目は、再生制御エンジン111の再生状態を示し、第2段目は、本実施の形態のプレイリストを示す。第2段目に示すように、00001.m2ts、00002.m2ts、00003.m2ts、10001.m2ts、10002.m2ts、10003.m2ts、20001.m2tsは、すでにダウンロードが完了しており、BD-JアプリケーションによりEnable状態にセットされている。また、他のAVクリップは、Unavailable状態である。
再生制御エンジン111がプレイリストの先頭から順に再生する場合、サブパス(ID=1)に属するサブプレイアイテム#1がカレントサブプレイアイテム情報になっているため、再生は、プレイアイテム#1, サブプレイアイテム#1まで進行可能である。
ただし、プレイアイテム#2では、対応するサブプレイアイテム#2によって参照される20002.m2tsがUnavailableクリップであるから、プレイアイテム#2、サブプレイアイテム#2がそれぞれ、カレントプレイアイテム、カレントサブプレイアイテムになる前に、BD-Jアプリケーションによりプレイアイテム#1, サブプレイアイテム#1の再生の一時停止指示がなされることになる。
そのため、第1段目に示すように、再生制御エンジン111は、プレイアイテム#1, サブプレイアイテム#1の途中までは再生状態になっているが、BD-Jアプリケーションからの指示があると、一時停止状態になる。
これにより、20001.m2tsに続いて20002.m2tsの再生が試みられる前に、BD-Jアプリケーションが00001.m2ts及び20001.m2tsの再生を一時停止する要求を再生制御エンジン111に送るので、表示画面に何らかの映像が表示された状態を維持することができる。したがって、20002.m2tsが再生可能な状態でないために、再生が停止される事態を回避することができる。
また、プレイアイテムの再生のみが進行することを防止できるので、プレイアイテムのみ表示され字幕データが表示されない区間の発生を回避することができる。
<優先ダウンロード処理>
図24は、本実施の形態の優先ダウンロード処理の処理手順を示すフローチャートである。本フローチャートのステップS111〜114の処理は、図14のステップS31〜34と同様であるので、ここではその説明を省略する。
ステップS114において、優先度リスト作成処理を行った後、ステップS115において、優先順位判定部122は、カレントプレイアイテムをSync_Playitem_idに指定しているサブプレイアイテムが存在するか判定する。
サブプレイアイテムが存在すると判定された場合には、ステップS116において、カレントサブプレイアイテムを特定し、ステップS117において、サブプレイアイテムに関する優先度リスト作成処理を行う。サブプレイアイテムに関する優先度リスト作成処理は、図15で示した優先度リスト作成処理と基本的には同様であり、図15のプレイアイテムをサブプレイアイテムに置き換えればよい。
<再生状況監視処理>
図25は、本実施の形態の再生状況監視処理の処理手順を示すフローチャートである。本フローチャートにおいて、ステップS121〜127の処理は、図16のステップS61〜67と同様であるので、ここではその説明を省略する。
ステップS125において、次に再生すべきAVクリップがEnable状態であると判定された場合には、ステップS128において、カレントプレイアイテムをSync_Playitem_idに指定しているサブプレイアイテムが存在するか判定する。
サブプレイアイテムが存在すると判定されなかった場合には、カレントプレイアイテムと同時に再生されるサブプレイアイテムは存在しないので、プレイアイテムの再生が継続される。
サブプレイアイテムが存在すると判定された場合には、ステップS129において、カレントサブプレイアイテムを特定し、ステップS130において、サブプレイアイテム特定処理を行う。サブプレイアイテム特定処理は、図17で示したプレイアイテム特定処理と基本的には同様であり、図17のプレイアイテムをサブプレイアイテムに置き換えればよい。
ステップS130において、サブプレイアイテム特定処理を行った後、ステップS131において、次に再生すべきAVクリップ(特定されたサブプレイアイテムが参照するAVクリップ)がEnable状態であるか判定する。
Enable状態であると判定された場合には、再生が継続され、Enable状態であると判定されなかった場合には、ステップS126において、BD-Jアプリケーションにより、再生の一時停止指示がなされることになる。
<プレイリスト再生処理>
図26は、本実施の形態のプレイリスト再生処理の処理手順を示すフローチャートである。本フローチャートにおいて、ステップS141〜143、ステップS147〜151の処理は、図18のステップS81〜83、ステップS84〜88と同様であるので、ここではその説明を省略する。
ステップS143の処理の後、ステップS144において、カレントプレイアイテムをSync_Playitem_idに指定しているサブプレイアイテムが存在するか判定する。
サブプレイアイテムが存在すると判定された場合には、ステップS145において、カレントサブプレイアイテムのClip_information_file_nameで指定されているAVクリップを選択する。
ステップS146において、AVクリップを構成するソースパケットのうち、カレントサブプレイアイテムのin_timeからout_timeまでの部分をローカルストレージ300から読み出す。その後、ステップS147に移行する。
(変形例2−1)
続いて、ユーザによりサブパス変更(例えば字幕切り替え)が要求された場合について説明する。使用形態としては、例えば、BD-ROM200に記録された映画本編の再生に合わせて、字幕データをストリーミングライクに再生する場合が挙げられる。
図27は、字幕切り替えがユーザによって要求されたため、現在の再生時点が、サブパス(ID=#0)の10003.m2tsを参照しているサブプレイアイテム#3から、サブパス(ID=#1)の20003.m2tsを参照しているサブプレイアイテム#3に変化した場合を想定した図である。00001.m2ts、00002.m2ts、00003.m2ts、10001.m2ts、10002.m2ts、10003.m2ts、20001.m2tsは、すでにダウンロードが完了しており、BD-JアプリケーションによりEnable状態にセットされている。また、他のAVクリップは、Unavailable状態である。
ユーザ操作などでSPRM(2)を3に変更した場合、再生する字幕はサブパスID=1のサブプレイアイテム#3になる。サブプレイアイテム#3が参照している20003.m2tsは、Unavailableクリップであるから、この切り替えと同時に、BD-Jアプリケーションにより、00003.m2ts,10003.m2tsの再生の一時停止指示がなされることになる。
以上のように、字幕切り替えが要求された場合、切り替え先の字幕ストリームを包含しているAVクリップがMissing状態であるか、Disable状態であれば、再生制御エンジン111は、BD-Jアプリケーションの指示に従って、切り替えと同時に再生を一時停止する。
<サブパス変更における再生状況監視処理>
図28は、サブパス変更における再生状況監視処理の処理手順を示すフローチャートである。
ステップS161において、ユーザによりサブパス変更要求がなされると、ステップS162において、変更後のサブパスにおけるサブプレイアイテムが参照しているAVクリップが、Enable状態であるか判定する。
変更後のサブパスにおけるサブプレイアイテムが参照しているAVクリップが、Enable状態であると判定された場合には、再生が継続され、変更後のサブパスにおけるサブプレイアイテムが参照しているAVクリップが、Enable状態であると判定されなかった場合には、ステップS163において、BD-Jアプリケーションは再生の一時停止を指示する。
その後、ステップS164において、再生再開処理を行う。
(変形例2−2)
続いて、次に再生すべきサブプレイアイテムが参照しているAVクリップがEnable状態でない場合に再生を継続する方法について説明する。
図29は、次に再生すべきサブプレイアイテムが参照しているAVクリップがEnable状態でない場合の再生制御を説明するための図である。
再生制御エンジン111がプレイリストの先頭から順に再生する場合、サブパス(ID=0)に属するサブプレイアイテム#1がカレントサブプレイアイテム情報になっているため、再生は、プレイアイテム#2, サブプレイアイテム#2まで進行可能である。
ただし、プレイアイテム#3では、対応するサブプレイアイテム#3によって参照されている10003.m2tsがUnavailableクリップである。したがって、仮にサブパス(ID=0)の再生をそのまま継続するとした場合には、BD-Jアプリケーションによりプレイアイテム#2, サブプレイアイテム#2の再生の一時停止指示がなされることになる。
しかしながら、サブパス(ID=0)に属するサブプレイアイテム#3によって参照されている20003.m2tsは、Enable状態である。
そこで、本変形例では、BD-Jアプリケーションが、サブプレイアイテム#3の再生開始時において、サブパス(ID=0)をサブパス(ID=1)に切り替える。
これにより、次に再生すべきサブプレイアイテムが参照しているAVクリップがEnable状態でない場合であっても、再生を一時停止することなく、再生を継続させることができる。
また、プレイアイテムの再生のみが進行することを防止できるので、プレイアイテムのみ表示され字幕データが表示されない区間の発生を回避することができる。
<再生状況監視処理>
図30は、本変形例の再生状況監視処理の処理手順を示すフローチャートである。本フローチャートにおいて、ステップS171〜181の処理は、図25のステップS121〜131と同様であるので、ここではその説明を省略する。
ステップS181において、次に再生すべきAVクリップがEnable状態であると判定されなかった場合には、ステップS182において、カレントプレイアイテムをSync_Playitem_idに指定しているサブプレイアイテムが他に存在するか判定する。
サブプレイアイテムが他に存在すると判定された場合には、ステップS183において、他のサブプレイアイテムが参照するAVクリップがEnable状態であるか判定する。
他のサブプレイアイテムが参照するAVクリップがEnable状態であると判定された場合には、ステップS184において、BD-Jアプリケーションは、他のサブプレイアイテムが参照するAVクリップの再生を指示する。
(実施の形態3)
本実施の形態では、アップデートキットを作成するためのオーサリングシステムについて説明する。図31は、オーサリングシステムの構成を示す図である。本図に示すように、オーサリングシステムは、ストレージ600a,b,c、素材制作部601、シナリオ生成部602、BD-J制作部603、多重化処理部604、フォーマット処理部605、差分抽出部606、及びアップデートキット制作部607から構成される。
ストレージ600a,b,cは、それぞれ、ROMシナリオデータ、ROMディスクイメージのバージョン1(ver.1)、ROMディスクイメージのバージョン2(ver.2)を格納している。
素材制作部601は、ビデオストリーム、オーディオストリーム、プレゼンテーショングラフィックスストリーム、インタラクティブグラフィックストリームなどの各ストリームを作成する。
素材制作部601は、非圧縮のビットマップなどの画像イメージをMPEG4-AVCやMPEG2などの圧縮方式に従い符号化することでビデオストリームを作成する。
素材制作部601は、非圧縮のLinearPCM音声などをAC3などの圧縮方式に従い符号化することでオーディオストリームを作成する。
素材制作部601は、字幕イメージ、表示タイミング、およびフェードイン/フェードアウトなどの字幕の効果を含む字幕情報ファイルを元にして、字幕ストリームであるプレゼンテーショングラフィックスストリームを作成する。
素材制作部601は、メニューに使うビットマップイメージと、メニューに配置されるボタンの遷移や表示効果を記載したメニューファイルとを元にして、メニュー画面を構成するインタラクティブグラフィックスストリームを作成する。
シナリオ生成部602は、素材制作部601で作成した各ストリームの情報や、オーサリングスタッフからのGUIを経由した操作にしたがって、シナリオを作成する。ここで言うシナリオは、インデックスファイル、ムービーオブジェクトファイル、プレイリストファイルなどのファイルである。
また、シナリオ生成部602は、多重化処理を実現するための、各AVクリップがどのストリームから構成されるかを記述したパラメータファイルを作成する。
BD-J制作部603は、BD-Jアプリケーションをプログラミングする手段である。GUI等のユーザインターフェースを通じて、ユーザからの要求に従って、BD-Jアプリケーションプログラムのソースコードを作成し、BD-Jアプリケーションを作成する。
多重化処理部604は、ROMシナリオデータに記述されているビデオ、オーディオ、字幕、ボタンなどの複数のストリームを多重化して、MPEG2-TS形式のAVクリップを作成する。このとき、AVクリップと対になるクリップ情報ファイルも同時に作成する。
多重化処理部604によるクリップ情報ファイル内の生成は、以下の方法で行われる。多重化処理部604は、AVクリップを作成と同時にエントリマップを作成する。より具体的には、素材制作部601で生成された各ストリームにおいて、含まれるビデオストリームがMPEG2であればIピクチャ、MPEG4-AVCであればIピクチャかIDRピクチャ、VC-1であればIピクチャが何処に存在するかを検出する。そして、前述の各ピクチャの表示時刻と、MPEG2-TS形式のAVクリップの何パケット目のソースパケットに、前述の各ピクチャの先頭データが入っているかを対応付けたエントリポイントをエントリマップに登録していく。AVクリップに含まれるビデオストリームが、Primaryビデオ・Secondaryビデオの2種類存在する場合には、どちらのエントリマップも同時に作成していく。
多重化処理部604は、生成したエントリマップと、AVクリップに含まれるストリーム毎の音声属性、映像属性などを示す属性情報とをペアにしてクリップ情報ファイルを作成する。
フォーマット処理部605は、シナリオ生成部602で生成したROMシナリオデータ、BD-J制作部603で制作したBD-Jアプリケーション、及び多重化処理部604で生成したAVクリップやクリップ情報ファイルを、これまでの実施の形態で説明したフォーマットで配置し、UDFのフォーマットでディスクイメージを作成する。生成したディスクイメージをBD-ROMプレス用データに変換し、このデータに対してプレス工程を行うことで、BD-ROMの製造が可能となる。
アップデートキットを作成するには、二つのディスクイメージを用意する。1つはBD-ROMに格納されるディスクイメージであり、もう1つは仮想パッケージ構築後のディスクイメージである。
差分抽出部606は、ストレージ600b,cに格納された二つのROMディスクイメージをコンペアして、差分データを抽出する。例えば、オリジナルのディスクイメージになかったファイルや、バイナリコンペアしてアップデートされているファイルなどを抽出する。
アップデートキット制作部607は、差分抽出部606を元に、前述で説明したアップデートキットのデータフォーマットに合うようにマージ管理情報ファイルや署名情報ファイルを作成し、ファイルやディレクトリを配置する。
図32(a)は、ROMディスクイメージの作成手順を示すフローチャートであり、図32(b)は、アップデートキットイメージの作成手順を示すフローチャートである。
ステップS211において、素材制作部601はビデオストリーム、オーディオストリーム、IGストリーム、PGストリームを生成する。
ステップS212において、シナリオ生成部602は、インデックスファイル、ムービーオブジェクトファイル、プレイリストファイルなど再生シナリオを記述するROMシナリオデータを作成する。
ステップS213において、BD-J制作部603は、BD-Jアプリケーションのプログラムを作成する。
ステップS214において、多重化処理部604はROMシナリオデータを元にAVクリップとクリップ情報ファイルとを作成する。
ステップS215において、フォーマット処理部605は、ROMシナリオデータ、変形AVクリップ、クリップ情報ファイル、復元バイトコードデータを、これまでの実施形態で述べたファイル・ディレクトリ構造に並び替え、ROMディスクイメージを作成する。
ステップS221において、差分抽出部606は二つのディスクイメージを比較して差分データを抽出する。
ステップS222において、アップデートキット制作部607は、インデックスファイル、ムービーオブジェクトファイル、プレイリストファイルなど再生シナリオを記述するROMシナリオデータを作成する。
ステップS223において、BD-J制作部603は、BD-Jアプリケーションのプログラムを作成する。
ステップS224において、多重化処理部604はROMシナリオデータを元にAVクリップとクリップ情報ファイルを作成する。
ステップS225において、フォーマット処理部605は、差分データをアップデートキットのデータフォーマットに合うように変換する。
ステップS226において、マージ管理情報ファイルや署名情報ファイルを作成し、アップデートキット内に配置する。
(備考)
AVクリップ(XXX.M2TS)、クリップ情報ファイル(XXX.CLPI)、プレイリスト情報ファイル(XXX.MPLS)、及びシステムターゲットデコーダの詳細について順に説明する。
<AVクリップの内部構成>
AVクリップは、MPEG-2トランスポートストリーム形式のデジタルストリームである。
図33は、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クリップにおける多重化>
図34は、AVクリップがどのように多重化されるかを模式的に示す図である。まず、ビデオストリーム、及びオーディオストリームを(第1段目)、それぞれPESパケット列に変換し(第2段目)、TSパケット列に変換する(第3段目)。同じくプレゼンテーショングラフィックスストリームおよびインタラクティブグラフィックス7(第7段目)を、それぞれPESパケット列に変換し(エレメンタリストリーム)(第6段目)、更にTSパケット列に変換する(第5段目)。AVクリップ(第4段目)は、これらのTSパケットを1本のストリームに多重化することで構成される。
図35は、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パケット列>
図36は、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時間の情報を持つ。
図37は、PMTのデータ構造を示す図である。PMTの先頭には、そのPMTに含まれるデータの長さなどを記した「PMTヘッダ」が配置される。その後ろには、AVクリップに関する「ディスクリプタ」が配置される。前述したコピーコントロール情報などが、ディスクリプタとして記載される。ディスクリプタの後には、AVクリップに含まれる各ストリームに関する「ストリーム情報#1〜#N」が複数配置される。ストリーム情報は、ストリームの圧縮コーデックなどを識別するためのストリームタイプ、ストリームのPID、及びストリームの属性情報(フレームレート、アスペクト比など)が記載されたストリームディスクリプタから構成される。ストリームディスクリプタは、AVクリップに存在するストリームの数だけ存在する。
以上がAVクリップについての説明である。続いて、クリップ情報ファイルの詳細について説明する。
<クリップ情報ファイル>
図38は、クリップ情報ファイルの一例を示す図である。クリップ情報ファイルは、本図に示すようにAVクリップの管理情報であり、AVクリップと1対1に対応し、ストリーム属性情報とエントリマップから構成される。
図39は、ストリーム属性情報の一例を示す図である。ストリーム属性情報は本図に示すように、AVクリップに含まれる各ストリームについての属性情報が、PID毎に登録される。属性情報はビデオストリーム、オーディオストリーム、プレゼンテーショングラフィックスストリーム、インタラクティブグラフィックスストリーム毎に異なる情報を持つ。
「ビデオストリーム属性情報」は、そのビデオストリームがどのような圧縮コーデックで圧縮されたか、ビデオストリームを構成する個々のピクチャデータの解像度がどれだけであるか、アスペクト比はどれだけであるか、フレームレートはどれだけであるかなどの情報を持つ。
「オーディオストリーム属性情報」は、そのオーディオストリームがどのような圧縮コーデックで圧縮されたか、そのオーディオストリームに含まれるチャンネル数は何であるか、何の言語に対応するか、サンプリング周波数がどれだけであるかなどの情報を持つ。これらの情報は、再生装置が再生する前のデコーダの初期化などに利用される。
図40は、エントリマップの一例を示す図である。
エントリマップは、本図に示すように、AVクリップ内に含まれるビデオストリームの各フレーム内符号化画像(以下、Iピクチャと呼ぶ)の表示時刻を示すPTSと各Iピクチャが開始するAVクリップのSPNが記載されたテーブル情報である。
ここではテーブルの1つの行で示される対となるPTSとSPNの情報をエントリポイントと呼ぶことにする。また先頭を0としてエントリポイント毎にインクリメントした値をエントリポイントID(以下EP_ID)と呼ぶことにする。このエントリマップを利用することにより、再生装置はビデオストリームの時間軸上の任意の時点に対応するAVクリップのファイル位置を特定することが出来るようになる。例えば、早送り・巻戻しの特殊再生の際には、エントリマップに登録されるIピクチャを特定し選択して再生することによりAVクリップを解析することなく効率的に処理を行うことが出来る。また、エントリマップはAVクリップ内に多重化されるビデオストリーム毎に作られ、PIDで管理される。映画タイトルにおいて、エントリマークをチャプタの先頭となる位置に付与することで、チャプタ再生を行うことが可能である。
以上がクリップ情報ファイルについての説明である。続いて、プレイリスト情報の詳細なデータ構造について説明する。
図41は、プレイリスト情報のデータ構造を示す図であり、本図に示すように、プレイリスト情報は、メインパスを定義するメインパス情報(MainPath())と、サブパスを定義するサブパス情報(Subpath())と、マーク情報とを含む。
<プレイリスト情報の説明その1.メインパス情報>
メインパス情報について説明する。引き出し線mp1は、メインパス情報の内部構成をクローズアップして示している。メインパスは、矢印mp1で示すように複数のプレイアイテム情報#1・・・・#mから定義される。プレイアイテム情報は、メインパスを構成する1つの論理的な再生区間を定義する。プレイアイテム情報の構成は、引き出し線mp2によりクローズアップされている。この引き出し線に示すように、プレイアイテム情報は、再生区間のIN点及びOut点が属するAVクリップの再生区間情報のファイル名を示す『Clip_Information_file_name』と、AVクリップの符号化方式を示す『Clip_codec_identifier』と、プレイアイテムがマルチアングルを構成するか否かを示す『is_multi_angle』と、このプレイアイテム(カレントプレイアイテム)と、その1つ前のプレイアイテム(プリービァスプレイアイテム)との接続状態を示す『connection_condition』と、このプレイアイテムが対象としているSTC_Sequenceを一意に示す『ref_to_STC_id[0]』と、再生区間の始点を示す時間情報『In_time』と、再生区間の終点を示す時間情報『Out_time』と、このプレイアイテムにおいてマスクすべきユーザオペレーションがどれであるかを示す『UO_mask_table』と、このプレイアイテムの途中へのランダムアクセスを許可するか否かを示す『PlayItem_random_access_flag』と、このプレイアイテムの再生終了後、最後のピクチャの静止表示を継続するか否かを示す『Still_mode』と、『STN_table』とから構成される。このうち、再生経路を構成するのは、再生区間の始点を示す時間情報『In_time』、再生区間の終点を示す時間情報『Out_time』の組みであり、再生経路情報とは、この『In_time』及び『Out_time』の組みから構成される。
<プレイリスト情報の説明その2.マーク情報>
マーク情報について説明する。マーク情報(PLmark())は、プレイリスト時間軸のうち、任意の区間を、チャプタとして指定する情報である。引き出し線mp3は、マーク情報の内部構成をクローズアップして示している。マーク情報は、矢印mp3で示すように、プレイアイテムを指定する『ref_to_PlayItem_Id』と、プレイリスト時間軸の一時点を指定する『Mark_time_stamp』とから定義される。これらの指定によりプレイリスト時間軸には、チャプタが定義されることになる。
<プレイリスト情報の説明その3.サブパス情報>
メインパスが、プライマリビデオたるメインクリップに定義される再生経路であるのに対し、サブパスは、メインパスと同期すべきサブクリップに対して定義される再生経路である。
図42は、サブパス情報の内部構成を示す図である。本図における矢印hc0に示すように各サブパスは、サブパスの類型を示すSubPath_typeと、1つ以上のサブプレイアイテム情報(・・・SubPlayItem()・・・)とを含む。
図中の引き出し線hc1は、サブプレイアイテム情報の構成をクローズアップしている。
サブプレイアイテムは、メインパスから分離した、1以上のエレメンタリストリーム再生パスを定義し、当該パスをメインパスとどのように同期するかという類型を表現するのに使われる。サブプレイアイテムで使用されるのが、The Primary audio / PG / IG / Secondary audio / Secondary video のサブパスであるなら、これらのサブプレイアイテムは、プレイリスト中のプレイアイテムを使っているメインパスと同期することになる。このエレメンタリストリーム再生のためのサブパスによって使われるエレメンタリストリームは、メインパス側のプレイアイテムによって使われるメインクリップから分離したクリップ、つまりサブクリップに多重化される。
以降、サブプレイアイテムの内部構成について説明する。サブプレイアイテム情報は、図中の矢印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』は、クリップ情報のファイル名を記述することにより、サブプレイアイテムに対応するサブクリップを一意に指定する情報である。
『Clip_codec_identifier』は、AVクリップの符号化方式を示す。
『ref_to_STC_id[0]』は、このサブプレイアイテムが対象としているSTC_Sequenceを一意に示す。
『SubPlayItem_In_time』は、サブクリップの再生時間軸上における、サブプレイアイテムの始点を示す情報である。
『SubPlayItem_Out_time』は、サブクリップの再生時間軸上における、サブプレイアイテムの終点を示す情報である。
『sync_PlayItem_Id』は、メインパスを構成するプレイアイテムのうち、本サブプレイアイテムが同期すべきものを一意に指定する情報である。
『SubPlayItem_In_time』は、この『sync_PlayItem_Id』で指定されたプレイアイテムの再生時間軸上に存在する。
『sync_start_PTS_of_PlayItem』は、『sync_PlayItem_Id』で指定されたプレイアイテムの再生時間軸上において、『SubPlayItem_In_time』で指定されたサブプレイアイテムの始点が、どこに存在するかを45KHzの時間精度で示す。あるサブプレイアイテムがセカンダリビデオストリーム上の再生区間を定義していて、そのサブプレイアイテムの『sync_start_PTS_of_PlayItem』が、プレイアイテム時間軸における一時点を示している場合、そのサブプレイアイテムは、“同期ピクチャインピクチャ”を実現することになる。
また、この『sync_start_PTS_of_PlayItem』には、不定値(0xFFF)を設定することもできる。この不定値は、『sync_PlayItem_Id』にて指定されたPlayItemの時間軸において、ユーザによりロック操作がなされた時点を、Sync_PlayItem_Idにて指定されたPlayItemとの同期時点に定める旨を示す。sync_start_PTS_of_PlayItemが不定値に設定されており、尚且つサブプレイアイテムが、セカンダリビデオストリームの再生を意図している場合、かかるサブプレイアイテムは、“非同期ピクチャインピクチャ”を実現することになる。
以上が、サブパス情報についての説明である。
<プレイリスト情報の説明その4.STN_table>
プレイリスト情報において特徴的であるのは、STN_Tableである。
STN_tableは、プレイアイテム情報のClip_Information_file_nameで指定されているAVクリップに多重化された複数エレメンタリストリーム、サブプレイアイテム情報のClip_Information_file_nameで指定されているOut_of_MUXストリームのうち、再生可能なものを示すテーブルである。具体的にいうとSTN_tableは、メインクリップに多重化されている複数In_MUXストリーム、サブクリップに多重化されているOut_of_MUXストリームのそれぞれについてのStream_entryを、Stream_attributeと対応付けることで構成される。
図43は、STN_tableの全体構成の一例を示す図である。本図に示すようにSTN_tableは、Primaryビデオストリームについて、stream_entry及びstream_attributesの組み(stream_entry- stream_attribute)を一つ有し、Primaryオーディオストリーム、PGストリーム、IGストリーム、Secondaryオーディオストリーム、及びSecondaryビデオストリームのそれぞれについて、stream_entry及びstream_attributeの組み(stream_entry- stream_attribute)を複数有している。
また、STN_tableは、再生可能なPrimaryビデオストリーム数を示すnumber_of_video_stream_entries、再生可能なPrimaryオーディオストリーム数を示すnumber_of_audio_stream_entries、再生可能なPGストリーム数を示すnumber_of_PG_stream_entries、再生可能なIGストリーム数を示すnumber_of_IG_stream_entries、再生可能なSecondaryオーディオストリーム数を示すnumber_of_Secondary_audio_stream_entries、及び再生可能なSecondaryビデオストリームを示すnumber_of_Secondary_video_stream_entries、を含む。
<システムターゲットデコーダ104>
続いて、システムターゲットデコーダ104の詳細について説明する。
図44は、システムターゲットデコーダ104の内部構成の一例を示す図である。本図に示すように、システムターゲットデコーダ104は、ソースデパケタイザ122a,bと、PIDフィルタ123a,bと、Primaryビデオデコーダ124と、Primaryビデオプレーン125と、Secondaryビデオデコーダ126と、Secondaryビデオプレーン127と、PGデコーダ128と、PGプレーン129と、IGデコーダ130と、IGプレーン131と、Primaryオーディオデコーダ132と、Secondaryオーディオデコーダ133と、音声ミキサー134と、BD-Jプロセッサ135と、BD-Jプレーン136と、加算部137とから構成される。
ソースデパケタイザ122a,bは、システムターゲットデコーダ104に転送されるソースパケットを解釈し、TSパケットを取り出しPIDフィルタに送出する。この送出にあたって、各ソースパケットのATSに応じてデコーダへの入力時刻を調整する。具体的には、ATCカウンタが生成するATCの値と、ソースパケットのATS値とが同一になった瞬間に、AVクリップの記録レートにしたがって、そのTSパケットだけをPIDフィルタに転送する。
PIDフィルタ123a,bは、ソースデパケッタイザから出力されたTSパケットのうち、TSパケットのPIDが、再生に必要とされるPIDに一致するものを、PIDにしたがって、Primaryビデオデコーダ、Secondaryビデオデコーダ、IGデコーダ、PGデコーダ、Primaryオーディオデコーダ、Secondaryオーディオデコーダに転送する。例えば、BD-ROMの場合には、TSパケットに含まれるPIDが0x1011である場合はPrimaryビデオデコーダ124に、PIDが0x1B00から0x1B1Fである場合はSecondaryビデオデコーダ126に、PIDが0x1100から0x111Fである場合はPrimaryオーディオデコーダ132に、PIDが0x1A00から0x1A1Fである場合はSecondaryオーディオデコーダ133に、PIDが0x1200から0x121Fである場合はPGデコーダ128に、PIDが0x1400から0x141Fである場合はIGデコーダ130に転送される。
図44に示す通り、ソースデパケタイザ及びPIDフィルタは、それぞれ二つ存在し、一つはリードバッファ102から転送されるAVクリップ、一つはリードバッファ103から転送されるAVクリップを処理する。サブパスタイプが同期型の場合は、メインパスから参照されるAVクリップとサブパスから参照されるAVクリップは同期を取りながら再生される。サブパスタイプが非同期型の場合は、メインパスから参照されるAVクリップとサブパスから参照されるAVクリップは非同期で再生される。
Primaryビデオデコーダ124は、緩衝バッファを有し、バッファにデータを蓄えながら、TSヘッダ、PESヘッダなどの情報を取り除いて、符号化状態にあるピクチャ(Iピクチャ、Bピクチャ、Pピクチャ)を取り出し、ビデオストリームの個々のフレーム画像を所定の復号時刻(DTS)ごとにデコードすることにより複数フレーム画像を作成し、表示時刻(PTS)のタイミングでPrimaryビデオプレーン125に書き込む。AVクリップに多重化されるビデオストリームの圧縮符号化形式にはMPEG2、MPEG4AVC、VC1などがあるため、ストリームの属性に応じて、圧縮映像の復号化方式を切り替える。
Primaryビデオプレーン125は、Primaryビデオデコーダ124によって得られたフレーム画像が格納される。
Secondaryビデオデコーダ126は、Primaryビデオデコーダ124と同様の構成を持ち、入力されるSecondaryビデオストリームのデコードを行い、表示時刻(PTS)のタイミングでピクチャをSecondaryビデオプレーンに書き出す。
Secondaryビデオプレーン127は、Secondaryビデオデコーダ126によって得られたフレーム画像が格納される。
PGデコーダ128は、ソースデパケタイザから入力されるTSパケットからプレゼンテーショングラフィックスストリームを抽出してデコードし、非圧縮のグラフィックスデータを表示時刻(PTS)のタイミングでPGプレーンに書き出す。
PGプレーン129は、非圧縮のグラフィクスデータが格納される。
IGデコーダ130は、ソースデパケタイザから入力されるTSパケットからインタラクティブグラフィックスストリームを抽出してデコードし、非圧縮のグラフィックスデータを表示時刻(PTS)のタイミングでIGプレーンに書き出す。
IGプレーン131には、非圧縮のグラフィクスデータが格納される。
Primaryオーディオデコーダ132は、緩衝バッファを有し、バッファにデータを蓄えながら、TSヘッダ、PESヘッダなどの情報を取り除いて、音声ストリームデコード処理を行い、非圧縮のLPCM状態のオーディオデータを得て再生時刻(PTS)のタイミングで音声ミキサーに出力する。AVクリップに多重化されるオーディオストリームの圧縮符号化形式にはAC3、DTSなどがあるため、ストリームの属性に応じて、圧縮音声の復号化方式を切り替える。
Secondaryオーディオデコーダ133は、Primaryオーディオデコーダと同様の構成を持ち、入力されるSecondaryオーディオストリームのデコードを行い、表示時刻のタイミングで非圧縮のLPCMの状態のオーディオデータを音声ミキサーに出力する。AVクリップに多重化されるオーディオストリームの圧縮符号化形式にはDolbyDigitalPlus、DTS-HD LBRなどがあるため、ストリームの属性に応じて、圧縮音声の復号化方式を切り替える。
音声ミキサー134は、Primaryオーディオデコーダから出力される非圧縮音声データとSecondaryオーディオデコーダから出力される非圧縮音声データとをミキシング(音の重ね合わせ)をしてスピーカなどに出力する。
BD-Jプロセッサ135は、BD-J実行部105から転送されるPNG形式又はJPEG形式のグラフィクスデータをデコードして、BD-Jアプリケーションから指定される表示時刻にしたがって、BD-Jプレーンに出力する。
BD-Jプレーン136には、BD-Jプロセッサ135によってデコードされたグラフィクスデータが格納される。
加算部137は、Primaryビデオプレーン、Secondaryビデオプレーン、IGプレーン、PGプレーン、BD-Jプレーンに書かれたデータを瞬時に重畳し、TVなどの画面に表示する。
以上のように、BD-ROMプレーヤモデルに準拠した内部構成を実現することにより、プレイリストの再生を実現することができる。
<仮想パッケージの構築>
続いて、仮想パッケージの構築について詳しく説明する。
先ず始めに、仮想パッケージの基本部分となるBD-ROMのデータ構造について説明する。
図45は、BD-ROMの構成の一例を示す図である。
本図の第4段目にBD-ROM100を示し、第3段目にBD-ROM上のトラックを示す。本図のトラックは、BD-ROM100の内周から外周にかけて螺旋状に形成されているトラックを横方向に引き伸ばして描画している。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)について説明する。インデックスファイルはインデックステーブルを持つ。
図46は、インデックスファイルの内部構成の一例を示す図である。
「インデックステーブル」は、BD-ROMに格納されるすべてのタイトル、トップメニュー、FirstPlayといったタイトル構成を定義する最上位層のテーブルである。このテーブルには、全てのタイトル、トップメニュー、FirstPlayから最初に実行されるムービーオブジェクトファイルに含まれるムービーオブジェクトが指定されている。BD-ROMの再生装置は、タイトルあるいはメニューが呼び出されるたびにインデックステーブルを参照して、所定のムービーオブジェクトもしくはBD-Jオブジェクトを実行する。ここで、FirstPlayとは、コンテンツプロバイダによって設定されるもので、ディスク投入時に自動実行されるムービーオブジェクトまたはBD-Jオブジェクトが設定されている。また、トップメニューは、リモコンでのユーザ操作で、「メニューに戻る」というようなコマンドが実行されるときに、呼び出されるムービーオブジェクト、BD-Jオブジェクトが指定されている。ネットワーク属性で再生されるべきプレイリストは、必ずBD-Jオブジェクトによって再生されねばならない。
次にムービーオブジェクトファイルについて説明する。図47に示すように、ムービーオブジェクトファイル内には、複数のムービーオブジェクトが定義されており、各ムービーオブジェクトはムービーオブジェクトIDによって識別される。各ムービーオブジェクトは、プレイリストの再生の指示や、他のムービーオブジェクトやタイトルへの遷移を命令する1つ以上のナビゲーションコマンドを持つ。再生装置は、そのナビゲーションコマンド列を順に実行する。例えば、PlayPL#Nと記述されていれば、再生装置は、PLAYLISTディレクトリの中から該当するプレイリストのファイル名を選択し再生する。
また、例えば、JumpObject#Nと記述されていれば、再生装置は、ムービーオブジェクトファイルの中から該当するムービーオブジェクトを選択し実行する。
以上が、仮想パッケージの前提となるBD-ROMのデータ構造である。
次に、図48を参照しながらローカルストレージ300に格納されるアップデートキットのデータ構造について説明する。
図48は、ローカルストレージ300に格納されるアップデートキットの内部構成の一例を示す図である。
ローカルストレージ300に格納されるアップデートキットは、本図に示すように、追加コンテンツ格納ディレクトリ、OrgIDディレクトリ、DiscIDディレクトリ、マージ管理情報ファイル(MERGE.INFO)、署名情報ファイル(MERGE.SF)、追加コンテンツデータファイル(CCC.MPL、VVV.M2T、VVV.CLPなど)を含む。
「追加コンテンツ領域ルートディレクトリ」は、ローカルストレージ300のルートディレクトリの直下に存在し、追加コンテンツ領域のルートを示すディレクトリで、ディレクトリ名配布媒体文字以内の固定値(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.INFO)」は、仮想パッケージを構成するためのローカルストレージに記録される各ファイル格納位置情報と、仮想パッケージ上でそれらのファイルへアクセスするための仮想パス情報から構成され、DiscIDディレクトリ直下に保存される。
「署名情報ファイル」は、マージ管理情報ファイルに対するプロバイダの電子的な署名を示すファイルであり、MERGE.SFというファイル名でDiscIDディレクトリ直下に保存される。電子的な署名は、一般的に改ざん防止が必要な情報に対してハッシュ値を計算し、ハッシュ値をなんらかの秘密鍵を用いて暗号化したものを用いる。本実施形態の署名情報ファイルでは、BD-ROM記録層上にあるマージ証明書中の公開鍵に対応する秘密鍵を利用して、マージ管理情報ファイルのハッシュ値が暗号化されている。
「マージ証明書」は、マージ管理情報ファイルの認証に利用する証明書で、プロバイダが公開する公開鍵が含まれる。プロバイダが提供するマージ証明書は、BD-ROM記録層上にbd.certというファイル名で保存されている。マージ証明書のファイル形式の一例としてはX.509を利用することができる。
「追加コンテンツデータファイル」は、BD-ROM記録層に記録されたオリジナルのコンテンツに対し、追加/更新するファイル群である。ここには、プレイリストファイル、AVクリップなどが記録される。
図49は、マージ管理情報ファイルの内容と、その内容を元にBD-ROMのファイルとアップデートキットのファイルとから、仮想パッケージを構築する過程の一例を示す図である。
図49の左上は、BD-ROMのディレクトリ・ファイル構成を示す。本図の左下は、アップデートキットのディレクトリ・ファイル構成を示す。
図49の右下は、マージ管理情報ファイルの内容を示す。マージ管理情報ファイルは、仮想パッケージを構成するローカルストレージにおける「ローカルストレージパス」と、仮想パッケージ上でそれらのファイルへアクセスするための「仮想パッケージパス」と、「ネットワーク属性」から構成される。ネットワーク属性は、仮想パッケージを構築する前に、そのファイルがなくても良いことを示す。
ローカルストレージパスの一例として、本図では、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が記述されている。
図49の右上は、このマニフェストファイルによって生成される仮想パッケージを示す。ローカルストレージパスにおいて、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にはないCCC.MPLS、VVV.CLPI、VVV.M2TS、SSS.CLPI、SSS.M2TSが、仮想パッケージでは存在するかの如く取り扱われることになる。
マージ管理情報に基づき、仮想パッケージが生成されれば、ローカルストレージ上のこれらのファイルは、このマージ管理情報におけるパス情報でアクセスすることができる。このとき、ネットワーク属性が付与されているSSS.M2TSにおいては、仮想パッケージが構築される前に、ローカルストレージにダウンロードが完了している必要はない。仮想パッケージが構築された後、必要になる段階でダウンロードしても良い。
よって、アップデートキットのダウンロードにあたって、ローカルストレージへの書き込みの順序は、
マージ管理情報ファイル→プレイリスト情報→複数クリップ情報→複数AVクリップ
となる。ここでプレイリスト情報−複数のクリップ情報の書き込みが完了した段階で、仮想パッケージの構築は可能になる。何故なら、AVクリップをDisable状態として扱えば、足りるからである。
以上のように、仮想的なファイルシステムを通じてサブプレイアイテムをシステムターゲットデコーダに供給することができる。
<BD-ROMとの併用>
メインパスがディスクに格納されている本編映像を示す場合には、現在の再生位置以降のサブプレイアイテムで利用される、
現在のPrimaryオーディオストリーム番号SPRM(1)、
字幕ストリーム番号SPRM(2)、
Secondaryビデオストリーム番号SPRM(21)、
Secondaryオーディオストリーム番号SPRM(22)
が示すストリーム番号に対応するストリームを含むAVクリップを、逐次、現在の再生位置から近い順にシーケンシャルにダウンロードすることが望ましい。
このようにすることで、本編映像を見る間ユーザは、字幕や音声を変えることはまれなので、ユーザに待ち時間を与えることなくプレイリストの再生を実現できる。
(補足)
本発明は上記実施の形態に限られないことは勿論である。
(1)上記実施の形態では、ネットワーク再生情報は、クリップ番号、各プレイアイテムの再生区間の開始時点を示す開始時点情報、再生区間の終了時点を示す終了時点情報、チャプタマーク付与情報、及びファイルサイズから構成されるとしたが、図50に示すように、これらに加え、BD-Jアプリケーションがネットワーク経由でアップデートキットを取得する際のネットワーク上のアドレスを示すURL情報、AVクリップが記憶されるローカルストレージ上のファイルパス、CM等の区切りを示し、AVクリップに付与されるマーク情報、及びAVクリップの前後のAVクリップのクリップ番号を示す情報を含むとしてもよい。
(2)上記実施の形態では、再生が一時停止された後、再生を再開するに際し、再生再開制御を行うとしたが、必ずしも再生再開制御を行う必要はなく、次に再生すべきプレイアイテムに対応するAVクリップがEnable状態になれば、再生を再開するとしてもよい。
(3)上記実施の形態では、BD-JアプリケーションがPSRセットから再生速度を取得し、再生方向を特定するとしたが、プレイリストが順方向に再生されることを前提とするシステムであれば、必ずしも再生速度を取得する必要はない。
(4)上記実施の形態では、次に再生すべきAVクリップが再生可能状態でない場合には、BD-Jアプリケーションが再生中のAVクリップを一時停止する指示を行うとしたが、これに限らない。再生中のAVクリップの表示期間を引き延ばせればよく、例えば、スロー再生を指示してもよい。また、一時停止やスロー再生中に、AVクリップをダウンロード中である旨を示すグラフィクスをAVクリップに重畳して出力するとしてもよい。
(5)上記実施の形態では、次に再生すべきAVクリップが再生可能状態でない場合には、再生中のAVクリップを終端まで再生することなく、途中で一時停止等の制御を行うとしたが、当該AVクリップを終端まで再生し、終端のフレームを一時停止の対象としてもよいし、終端まで再生後、代替映像に切り替えてもよい。
(6)上記実施の形態では、再生制御エンジン111がプレイリストの先頭プレイアイテムから順に再生する場合について主に説明したが、例えばチャプタジャンプ等の飛び込み再生時においても同様である。具体的には、飛び込み再生地点を現在の再生位置に設定し、再生位置を含むAVクリップの次に再生すべきAVクリップが再生可能状態でなければ、再生を一時停止する。
(7)図11では、ダウンロードが完了していない全てのAVクリップが(数1)の関係を満たす場合に、プレイリスト再生を指示するとしたが、予め設定された数のAVクリップが、(数1)の関係を満たす場合には、プレイリスト再生を指示するとしてもよい。例えば、図11において、AVクリップ#3〜#7が、(数1)の関係を満たす場合には、プレイリスト再生を指示し、AVクリップ#3〜#7のうち一つでも(数1)の関係を満たさないものがあれば、プレイリスト再生を指示しない、としてもよい。
これにより、可能な限りAVクリップを一時停止することを防ぎながら、再生開始時間が遅くなりすぎないようにすることができる。
(8)上記実施の形態では、図2に示すように、プレイリストが「メインパス」と1つ以上の「サブパス」とから構成されるとしたが、プレイリストが「サブパス」を含まず、「メインパス」のみで構成されていてもよい。
上記実施の形態及び上記補足をそれぞれ組み合わせるとしてもよい。
本発明は、ストリーミングライクな再生機能を有する再生装置に広く適用することができる。
100 再生装置
101 BD-ROMドライブ
102、103 リードバッファ
104 システムターゲットデコーダ
105 BD-J実行部
106 ネットワークインタフェイス
107 仮想パッケージ制御部
108 状態管理部
109 ユーザイベント処理部
110 再生エンジン
111 再生制御エンジン
112 HDMI送受信部
113 ヒープメモリ
114 仮想マシンインタプリタ
115 PSRセット
200 BD-ROM
300 ローカルストレージ
400 WWWサーバ
500 テレビ

Claims (18)

  1. ストリームシーケンスを構成する複数のデジタルストリームをアプリケーションの要求に従って外部リソースから順次ダウンロードしながら再生する再生装置であって、
    前記ストリームシーケンスに対応するアプリケーションを実行する実行手段と、
    前記ストリームシーケンスにおける現在の再生時間を示す時間情報を格納する時間情報格納手段と、
    前記複数のデジタルストリームの各々について再生可能状態であるか、または再生不可能状態であるかを示す状態情報を格納する状態情報格納手段と、
    前記ストリームシーケンスの再生を制御する再生制御手段とを備え、
    前記アプリケーションは、前記複数のデジタルストリームそれぞれの再生開始時間及び再生終了時間を示す再生区間情報を含み、
    前記時間情報格納手段に格納されている時間情報と前記再生区間情報とに基づいて、現在再生されているデジタルストリームの次に再生すべき次デジタルストリームを特定し、
    前記状態情報格納手段に格納されている、前記次デジタルストリームの状態情報が再生不可能状態であることを示す場合、前記再生制御手段は、前記アプリケーションの要求に従って、再生中のデジタルストリームの表示期間を引き延ばすための特殊再生、または当該デジタルストリームに続き前記次デジタルストリームに代えて代替映像の再生を行う
    再生装置。
  2. 前記ストリームシーケンスの再生速度を示す値を格納する再生速度格納手段をさらに備え、
    前記アプリケーションは、前記再生速度を示す値の正負に基づいて前記ストリームシーケンスの再生方向を特定し、
    前記次デジタルストリームの特定はさらに、前記再生方向に基づいてなされる
    請求項1記載の再生装置。
  3. 前記複数のデジタルストリームを外部リソースから順次ダウンロードするダウンロード手段をさらに備え、
    前記次デジタルストリームがダウンロードされていなければ、前記ダウンロードされていない次デジタルストリームの状態情報は再生不可能状態として前記状態情報格納手段に格納され、前記ダウンロード手段は、前記アプリケーションの要求に従って、前記次デジタルストリームを優先的にダウンロードする
    請求項2記載の再生装置。
  4. 前記再生速度を示す値が負の値の場合に、前記アプリケーションは、前記ストリームシーケンスの再生方向が時間方向と逆方向であると特定し、
    前記次デジタルストリームは、現在再生されているデジタルストリームの直前の再生区間に相当するデジタルストリームである
    請求項3記載の再生装置。
  5. 前記ストリームシーケンスをプレイリストに従って再生しており、
    前記プレイリストは、複数のプレイアイテムを含み、
    前記複数のプレイアイテムは、前記複数のデジタルストリームと一対一で対応しており、対応するデジタルストリームの再生区間を示し、
    前記複数のプレイアイテムのうち一部のプレイアイテムにはチャプタマークが付与されており、
    前記アプリケーションは、前記一部のプレイアイテムにチャプタマークが付与されていることを示すチャプタマーク付与情報をさらに含み、
    前記チャプタマーク付与情報に基づいて、前記次デジタルストリームとして、再生中のデジタルストリームの直近の、チャプタマークが付与されているプレイアイテムに対応するデジタルストリームを特定する
    請求項3記載の再生装置。
  6. 前記ダウンロード手段は、前記アプリケーションの要求に従って、チャプタマークが付与されている残りのプレイアイテムに対応するデジタルストリームを優先的にダウンロードする
    請求項5記載の再生装置。
  7. 前記複数のプレイアイテムのうちチャプタマークが付与されているプレイアイテムに対応するデジタルストリームのサイズが、他のデジタルストリームのサイズより小さい
    請求項5または6記載の再生装置。
  8. 前記ストリームシーケンスにおける再生開始位置に相当するデジタルストリームの状態情報が、再生可能状態であることを示しており、
    前記アプリケーションは、前記再生開始位置からダウンロードが完了しておらず、前記状態情報が再生不可能状態であることを示す一のデジタルストリームの直前のデジタルストリームまでの再生時間と、ダウンロードが完了していないデジタルストリームのうち先頭のデジタルストリームから当該一のデジタルストリームまでをダウンロードするのに必要な総ダウンロード時間とを算出し、
    総ダウンロード時間が再生時間よりも短い場合に、前記再生制御手段は、前記アプリケーションの要求に従って、前記再生開始位置から再生を開始する
    請求項1記載の再生装置。
  9. 前記アプリケーションによる再生時間及び総ダウンロード時間の算出は、ダウンロードが完了しておらず、前記状態情報が再生不可能状態であることを示す全てのデジタルストリームについてなされ、
    前記全てのデジタルストリームについて、総ダウンロード時間が再生時間よりも短い場合に、前記再生制御手段により再生の開始がなされる
    請求項8記載の再生装置。
  10. 前記ストリームシーケンスとともに複数のサブストリームシーケンスを前記外部リソースからダウンロードしながら再生しており、
    前記ストリームシーケンスは、メインクリップであり、
    各サブストリームシーケンスは、サブクリップであり、複数のサブデジタルストリームから構成され、
    前記サブクリップは、字幕ストリームまたはオーディオストリームを含み、
    前記状態情報はさらに、前記複数のサブデジタルストリームの各々について再生可能状態であるか、または再生不可能状態であるかを示しており、
    前記再生制御手段が、前記メインクリップとともに一のサブクリップのサブデジタルストリームを再生している場合において、当該サブデジタルストリームの次に再生すべき次サブデジタルストリームの状態情報が、再生不可能状態であることを示しており、他のサブクリップのサブデジタルストリームの状態情報が再生可能状態であることを示していれば、前記再生制御手段は、前記アプリケーションの要求に従って、当該他のサブデジタルストリームを前記一のサブデジタルストリームに続いて再生する
    請求項1記載の再生装置。
  11. 前記ストリームシーケンスとともに複数のサブストリームシーケンスを前記外部リソースからダウンロードしながら再生しており、
    前記ストリームシーケンスは、メインクリップであり、
    各サブストリームシーケンスは、サブクリップであり、複数のサブデジタルストリームから構成され、
    前記サブクリップは、字幕ストリームまたはオーディオストリームを含み、
    前記状態情報はさらに、前記複数のサブデジタルストリームの各々について再生可能状態であるか、または再生不可能状態であるかを示しており、
    前記再生制御手段が、前記メインクリップとともに一のサブクリップのサブデジタルストリームを再生している場合において、当該一のサブクリップから他のサブクリップへの切り替え指示をユーザから受け付けた場合、前記他のサブクリップにおける再生対象となるサブデジタルストリームの状態情報が再生不可能状態であることを示していれば、前記再生制御手段は、前記アプリケーションの要求に従って、再生中のデジタルストリーム及びサブデジタルストリームの表示期間を引き延ばすための特殊再生を行う
    請求項1記載の再生装置。
  12. 前記特殊再生は、一時停止である
    請求項1記載の再生装置。
  13. 前記特殊再生は、スロー再生である
    請求項1記載の再生装置。
  14. 前記再生装置はさらに、前記アプリケーションの要求に従ってグラフィクスを描画するプロセッサを含み、
    前記グラフィクスは、前記特殊再生中のデジタルストリームに重畳されて出力される
    請求項12または13記載の再生装置。
  15. ストリームシーケンスを構成する複数のデジタルストリームをアプリケーションの要求に従って外部リソースから順次ダウンロードしながら再生する再生装置に用いられる再生方法であって、
    前記ストリームシーケンスに対応するアプリケーションを実行する実行ステップと、
    前記ストリームシーケンスの再生を制御する再生制御ステップとを含み、
    前記アプリケーションは、前記複数のデジタルストリームそれぞれの再生開始時間及び再生終了時間を示す再生区間情報を含み、
    前記再生装置に格納されている、前記ストリームシーケンスにおける現在の再生時間を示す時間情報と前記再生区間情報とに基づいて、現在再生されているデジタルストリームの次に再生すべき次デジタルストリームを特定し、
    前記再生装置に格納されている、前記複数のデジタルストリームの各々について再生可能状態であるか、または再生不可能状態であるかを示す状態情報のうち、前記次デジタルストリームの状態情報が再生不可能状態であることを示す場合、前記再生制御ステップは、前記アプリケーションの要求に従って、再生中のデジタルストリームの表示期間を引き延ばすための特殊再生、または当該デジタルストリームに続き前記次デジタルストリームに代えて代替映像の再生を行う
    再生方法。
  16. アプリケーションが記録された記録媒体であって、
    前記アプリケーションは、再生装置により実行され、
    前記再生装置は、前記アプリケーションに対応するストリームシーケンスを構成する複数のデジタルストリームを前記アプリケーションの要求に従って外部リソースから順次ダウンロードしながら再生するものであり、
    前記ストリームシーケンスにおける現在の再生時間を示す時間情報を格納する時間情報格納手段と、
    前記複数のデジタルストリームの各々について再生可能状態であるか、または再生不可能状態であるかを示す状態情報を格納する状態情報格納手段と、
    前記ストリームシーケンスの再生を制御する再生制御手段とを備え、
    前記アプリケーションは、前記複数のデジタルストリームそれぞれの再生開始時間及び再生終了時間を示す再生区間情報を含み、
    前記時間情報格納手段に格納されている時間情報と前記再生区間情報とに基づいて、現在再生されているデジタルストリームの次に再生すべき次デジタルストリームを特定する特定手順と
    前記状態情報格納手段に格納されている、前記次デジタルストリームの状態情報が再生不可能状態であることを示す場合、再生中のデジタルストリームの表示期間を引き延ばすための特殊再生、または当該デジタルストリームに続き前記次デジタルストリームに代えて代替映像の再生を行うよう、前記再生制御手段に要求する要求手順とを含む
    記録媒体。
  17. ストリームシーケンスを構成する複数のデジタルストリームを外部リソースから順次ダウンロードしながら再生する再生装置により実行されるアプリケーションであって、
    前記再生装置は、
    前記ストリームシーケンスにおける現在の再生時間を示す時間情報を格納する時間情報格納手段と、
    前記複数のデジタルストリームの各々について再生可能状態であるか、または再生不可能状態であるかを示す状態情報を格納する状態情報格納手段と、
    前記ストリームシーケンスの再生を制御する再生制御手段とを備え、
    前記アプリケーションは、前記複数のデジタルストリームそれぞれの再生開始時間及び再生終了時間を示す再生区間情報を含み、
    前記時間情報格納手段に格納されている時間情報と前記再生区間情報とに基づいて、現在再生されているデジタルストリームの次に再生すべき次デジタルストリームを特定する特定手順と、
    前記状態情報格納手段に格納されている、前記次デジタルストリームの状態情報が再生不可能状態であることを示す場合、再生中のデジタルストリームの表示期間を引き延ばすための特殊再生、または当該デジタルストリームに続き前記次デジタルストリームに代えて代替映像の再生を行うよう、前記再生制御手段に要求する要求手順とを含む
    アプリケーション。
  18. オーサリング装置であって、
    ユーザ操作を受け付ける受付手段と、
    前記ユーザ操作に基づいてアプリケーションを生成する生成手段とを備え、
    前記アプリケーションは、ストリームシーケンスを構成する複数のデジタルストリームそれぞれの再生開始時間及び再生終了時間を示す再生区間情報を含み、
    前記ストリームシーケンスにおける現在の再生時間を示す時間情報を再生装置から取得する取得手順と、
    前記時間情報と前記再生区間情報とに基づいて、前記再生装置において現在再生されているデジタルストリームの次に再生すべき次デジタルストリームを特定する特定手順と、
    前記次デジタルストリームが再生不可能な状態である場合、再生中のデジタルストリームの表示期間を引き延ばすための特殊再生、または当該デジタルストリームに続き前記次デジタルストリームに代えて代替映像の再生を行うよう、前記再生装置に要求する要求手順とを含む
    オーサリング装置。
JP2011503716A 2009-03-12 2010-03-10 再生装置、再生方法、記録媒体、アプリケーション、及びオーサリング装置 Withdrawn JPWO2010103827A1 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2009059063 2009-03-12
JP2009059063 2009-03-12
PCT/JP2010/001701 WO2010103827A1 (ja) 2009-03-12 2010-03-10 再生装置、再生方法、記録媒体、アプリケーション、及びオーサリング装置

Publications (1)

Publication Number Publication Date
JPWO2010103827A1 true JPWO2010103827A1 (ja) 2012-09-13

Family

ID=42728123

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011503716A Withdrawn JPWO2010103827A1 (ja) 2009-03-12 2010-03-10 再生装置、再生方法、記録媒体、アプリケーション、及びオーサリング装置

Country Status (4)

Country Link
US (1) US20110262104A1 (ja)
JP (1) JPWO2010103827A1 (ja)
CN (1) CN102272842A (ja)
WO (1) WO2010103827A1 (ja)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9538232B2 (en) * 2013-03-14 2017-01-03 Verizon Patent And Licensing Inc. Chapterized streaming of video content
CN104007977A (zh) * 2014-06-09 2014-08-27 威盛电子股份有限公司 电子装置及音频播放方法
US20170171275A1 (en) * 2015-12-14 2017-06-15 Jbf Interlude 2009 Ltd. Object Embedding in Multimedia
CN108574880A (zh) * 2017-03-07 2018-09-25 合网络技术(北京)有限公司 多媒体资源播放方法及装置
CN108156514B (zh) * 2017-12-27 2020-07-07 Oppo广东移动通信有限公司 媒体文件的播放方法、装置及存储介质
CN109347968B (zh) * 2018-11-07 2021-09-24 网宿科技股份有限公司 一种下载资源文件的数据块的方法、设备和系统
JP7174926B2 (ja) 2019-12-17 2022-11-18 パナソニックIpマネジメント株式会社 表示制御システム、移動体、表示制御方法、表示装置、表示方法及びプログラム
US11102272B2 (en) * 2019-12-19 2021-08-24 Wangsu Science and Technology Co., Ltd. Method and device for downloading resource file

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100657237B1 (ko) * 1998-12-16 2006-12-18 삼성전자주식회사 데이터열간의 연속 재생을 보장하기 위한 부가 정보 생성 방법
EP1921623B1 (en) * 2003-06-18 2011-09-21 Panasonic Corporation Playback apparatus, program, and playback method
JP2005094396A (ja) * 2003-09-18 2005-04-07 Alpine Electronics Inc データ通信機能を備えたデータ再生装置およびデータ再生装置におけるデータ再生方法
JP4375305B2 (ja) * 2004-10-26 2009-12-02 ソニー株式会社 情報処理装置および情報処理方法、記録媒体、並びに、プログラム
JP4610302B2 (ja) * 2004-11-04 2011-01-12 富士通テン株式会社 記録再生装置
US20070003223A1 (en) * 2005-04-11 2007-01-04 Phatcat Media, Inc. User initiated access to secondary content from primary video/audio content
US20070112973A1 (en) * 2005-11-16 2007-05-17 Harris John M Pre-cached streaming content method and apparatus
JP4880298B2 (ja) * 2005-12-13 2012-02-22 株式会社バンダイナムコゲームス プログラム、情報記憶媒体、及びデータ再生システム
US20070266170A1 (en) * 2006-05-11 2007-11-15 Mockett Gregory P Interactive, rich-media delivery over an ip network using synchronized unicast and multicast
JP2008294878A (ja) * 2007-05-28 2008-12-04 D & M Holdings Inc 音声・映像信号送出装置

Also Published As

Publication number Publication date
US20110262104A1 (en) 2011-10-27
WO2010103827A1 (ja) 2010-09-16
CN102272842A (zh) 2011-12-07

Similar Documents

Publication Publication Date Title
JP4842971B2 (ja) 再生装置、再生方法及び情報記録媒体
RU2516463C2 (ru) Устройство воспроизведения, записывающее устройство, способ воспроизведения и способ записи
JP5406044B2 (ja) 個別販売に用いられる記録媒体、記録装置、再生装置、それらの方法
JP4765733B2 (ja) 記録装置、記録方法および記録プログラム
WO2010103827A1 (ja) 再生装置、再生方法、記録媒体、アプリケーション、及びオーサリング装置
JP4765734B2 (ja) 情報処理装置、情報処理方法および情報処理プログラム、ならびに、表示制御装置
JP2009037730A (ja) アプリケーション連動再生を行う再生装置、再生方法、及び再生プログラム
WO2010106745A1 (ja) アプリケーション実行装置
JP5032408B2 (ja) 簡易レジューム再生装置及び簡易レジューム再生方法
JPWO2008149501A1 (ja) 再生装置、再生方法、プログラム
JP4784371B2 (ja) 記録装置、記録方法および記録プログラム
JP6272534B2 (ja) 再生方法、および再生装置
US20110038616A1 (en) Reproduction apparatus and method of controlling a reproduction apparatus
JP5295572B2 (ja) 情報記録媒体および情報記録媒体再生システム
KR101022479B1 (ko) 이벤트 정보가 포함된 동영상 데이터가 기록된 저장 매체, 재생 장치 및 재생 방법
KR20080112931A (ko) 정보 저장 매체, 제조 방법, 및 정보 재생 방법
JP2007018623A (ja) 情報記録媒体、およびその再生装置、再生方法。
JP2007011899A (ja) 宣言型言語で記述された再生制御環境の起動条件を考慮した情報記録媒体およびその再生装置、再生方法。
JP5393847B2 (ja) 簡易レジューム再生装置、及びプログラム
JP2006244655A (ja) 再生装置および再生方法
KR20070031218A (ko) 데이터 재생방법 및 재생장치 그리고 기록방법, 기록장치및 기록매체
JP2006228339A (ja) 宣言型言語で記述された再生制御環境のリソース管理を考慮した情報記録媒体およびその再生装置、再生方法
JP2006236453A (ja) 情報記録媒体およびその再生装置、再生方法。
JP2007012217A (ja) 情報記録媒体およびその再生装置、再生方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20130124

A761 Written withdrawal of application

Free format text: JAPANESE INTERMEDIATE CODE: A761

Effective date: 20130527