WO2007111208A1 - 再生装置、デバッグ装置、システムlsi、プログラム - Google Patents

再生装置、デバッグ装置、システムlsi、プログラム Download PDF

Info

Publication number
WO2007111208A1
WO2007111208A1 PCT/JP2007/055803 JP2007055803W WO2007111208A1 WO 2007111208 A1 WO2007111208 A1 WO 2007111208A1 JP 2007055803 W JP2007055803 W JP 2007055803W WO 2007111208 A1 WO2007111208 A1 WO 2007111208A1
Authority
WO
WIPO (PCT)
Prior art keywords
playback
application
information
rom
file
Prior art date
Application number
PCT/JP2007/055803
Other languages
English (en)
French (fr)
Inventor
Yasuyuki Matsuura
Taisaku Suzuki
Masahiro Oashi
Shinji Takeyama
Original Assignee
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 Matsushita Electric Industrial Co., Ltd. filed Critical Matsushita Electric Industrial Co., Ltd.
Priority to JP2008506866A priority Critical patent/JP4491035B2/ja
Priority to US12/294,083 priority patent/US20090103902A1/en
Priority to CN2007800105552A priority patent/CN101410904B/zh
Publication of WO2007111208A1 publication Critical patent/WO2007111208A1/ja

Links

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B27/00Editing; Indexing; Addressing; Timing or synchronising; Monitoring; Measuring tape travel
    • G11B27/02Editing, e.g. varying the order of information signals recorded on, or reproduced from, record carriers
    • G11B27/031Electronic editing of digitised analogue information signals, e.g. audio or video signals
    • G11B27/034Electronic editing of digitised analogue information signals, e.g. audio or video signals on discs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3664Environments for testing or debugging software
    • 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/36Monitoring, i.e. supervising the progress of recording or reproducing
    • 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

Definitions

  • FIG. 2 is a diagram showing an IDE environment and an ADK environment that are useful for the first embodiment.
  • FIGS. 24A to 24C are diagrams showing a screen layout setup menu 801a, an audio output setup menu 8 01b, and a caption display setup menu 801c.
  • FIG. 26 is a flowchart showing the procedure of update processing at the current time point.
  • FIG. 45 is a flowchart showing a processing procedure of the reproduction control engine 206.
  • FIG. 51 is a diagram schematically showing how a root certificate is assigned in BD_ROM.
  • the process of mounting a directory refers to a mount operation in a file system such as UNIX.
  • a file system such as UNIX
  • it refers to the operation of incorporating the directory U managed by the file system of another computer A (server) into the directory X managed by the file system of computer B (client).
  • Source Viewerl21 displays the source list of the BD-J application, and creates source code and modifies the created source code according to the user's ability.
  • Fig. 33 is a diagram illustrating elementary streams multiplexed into the MainClip.
  • the elementary stream multiplexed in the MainClip STC_Sequence is a primary video stream with a PID of 0x1011, a primary audio stream with a PID from 0x1100 to 0x111F, 32 PG streams with PIDs from 0x1200 to 0xl21F, 0x1400 To 32 IG streams with PIDs from 0xl41F to 32 Secondary video streams with PIDs from OxlBOO to OxlBlF.
  • the second level shows two time axes defined by PlayList information.
  • the lower time axis indicates the PlayList time axis defined by Playltem information
  • the upper time axis indicates the SubPlayltem time axis defined by SubPlayltem.
  • Title_object_type is set to "10" to indicate that the title specified by title_id is associated with the BD-J Object. By setting it to “01”, it indicates that it is associated with the title force Movie Object specified by title_id. Specification by Title_object_type, that is, whether or not it is related to BD-J Object is expressed in this Title_object_type.
  • the source de-packetizer 2d extracts TS packets from the source packets that make up the SubClip and sends them out. In this transmission, the input time to the decoder is adjusted according to the ATS. Specifically, at the moment when the ATC value generated by ATC Counter2c and the ATS value of the Source packet become the same, TS_Recording_Rate is used to transfer only that TS packet to PID Filter3d.
  • the Re-order Buffer 5e is a buffer for changing the order of decoded pictures from the code order to the display order.
  • Secondary video plane 5g This is a memory area for storing data.
  • the transport buffer (TB) 6a stores, in a first-in first-out manner, the TS packet output from the PID Filter 3a that constitutes the primary audio stream, and supplies it to the audio decoder 8a.
  • the Transport Buffer (TB) 12a is a buffer in which TS packets belonging to the textST stream are temporarily stored.
  • the 3 multiplier 15c multiplies the transmittance of 3 by the volatility of the pixels constituting the uncompressed picture subjected to Scalling and Positioning by the Scalling 'Positioning unit 15b.
  • the adder 15d is a non-compressed digital pixel that is multiplied by the transmittance 3 for each pixel by the multiplier 3 15c, and a non-compressed digital pixel that is multiplied by the transmittance 1- ⁇ 3 for each pixel by the 1 ⁇ 3 multiplier 15a. Combined with the compressed digital picture to obtain a composite picture.
  • PSR6 Stores the current playlist number.
  • PSR14 Stores the stream number of the secondary audio stream and the stream number of the secondary video stream.
  • the playback control engine stub 126 in the debugging device generates an event for the event listener as described above when the playback control engine is called from the B DJ application, and the event listener in the BD-J application. However, the reception operation is normally performed.
  • the BD scenario generation device 53 includes a menu editing unit 53a and a scenario editing unit 53b.
  • the subtitle creation unit 55a provides subtitles, display timing, fade-in / fade-out, etc. Based on the caption information file including the caption effect, it generates and outputs a Presentation Graphics stream that conforms to the BD-ROM standard.
  • step S304 using the ID class creation unit 111 and the Java (TM) programming unit 112, the Java (TM) program source code, program additional information, and ID class source code for the Java (TM) title are obtained. create.
  • step S305 the user uses the Java (TM) import unit 114, and the Java (TM) program source code and ID class source code created in step S4 are disc creation devices. Import to 56.
  • this digital certificate chain is one, but if the authority described below is provided, two digital certificate chains are created. These two digital certificate chains are called the first digital certificate chain and the second digital certificate chain.
  • the root certificate of the first digital certificate chain indicates the authorized organization's discretion certificate, and the leaf certificate indicates the organization ID of the authorized organization.
  • the root certificate of the second digital certificate chain indicates the discretion certificate of the organization that provides the authority, and the leaf certificate indicates the organization ID of the organization that provides the authority.
  • there is only one digital certificate chain (the first digital certificate chain).
  • FIG. 55 is a block diagram showing a configuration of a PC 100 including a BD-ROM drive, hardware and software for decoding AV content, and a platform unit.
  • the debugging device in this figure is the same as the hardware configuration of the PC 100 and the software configuration shown in FIG. 17 and FIG. 18 (PC platform 122, abstract content 124, abstract content creation unit 125, playback Power with control engine stub 126, AV playback screen display unit 128, simulation environment update unit 129)
  • components of BD-ROM playback device 200 (BD-ROM drive 201, low power
  • BD-ROM drive 201 low power
  • Step S104 the end determination is performed in step S104 only when No in step S101 and N 0 in step S102. However, the end determination is performed regardless of the determination results in steps S102 and S1 03. (Step S104) may be performed.
  • the simulation information may be changed in the reverse order of the force used (step S114).
  • the force returned to step S101 after execution of the process of step S113 may perform the determination process of step S102 after execution of step S110.
  • the power used to display the AV playback screen using a rectangle is not limited to this. It is also possible to display only the text information, or the current time point information of each video is superimposed in the rectangle. You may display in the form to do. Further, it may be configured to display an arbitrary background image that does not need to be painted with a single color of the rectangle. In addition, a figure having an arbitrary shape such as a circle or a polygon may be used instead of a rectangle.
  • the hardware configuration shown in each embodiment can be realized.
  • the LUT is stored in the SRAM, and the content of the powerful SRAM disappears when the power is turned off.
  • the hardware configuration shown in each embodiment is realized by defining the conflicter information.
  • the LUT must be written to the SRAM.

Abstract

 本発明にかかる再生装置は、アプリケーションの開発を支援する機能を有している。具体的には、アプリケーションが存在する記録媒体におけるファイルシステム情報を、ネットワークを通じて取得して、取得したファイルシステム情報を、自身に装填されている記録媒体におけるファイルシステム情報にマウントすることができ、再生制御エンジンは、マウントされたファイルシステム情報から認識することができるAVコンテンツを再生する。プラットフォーム部は、マウントされたファイルシステム情報から認識することができるアプリケーションを実行する。  前記開発支援機能とは、プラットフォーム部がアプリケーションを実行するにあたって、その実行のログを、アプリケーションのデバッグ装置に送信することでなされる。

Description

明 細 書
再生装置、デバッグ装置、システム LSI、プログラム
技術分野
[0001]
本発明は、アプリケーション開発の技術分野に属し、特に、 AVコンテンツの再生制 御用アプリケーションのデバッグを実現するための改良に関する。
背景技術
[0002]
上述した再生制御用アプリケーションは、 DVD-Videoや BD-ROMに記録され、再生 すべきプレイリストの選択や、デジタルストリームの選択等の再生制御を再生装置に 命じる。かかる再生制御により、様々な GUIがユーザに供されるので、このような再生 制御用アプリケーションは、映画作品を DVD-Videoや BD-ROMで配給するにあたつ て、なくてはならない必需品になっている。
[0003] DVD-Videoでは AVコンテンツの再生は AVコンテンツに重畳されたコマンドによつ て制御される。 AV再生の制御を実施するコマンドが制御対象のストリームと共に存在 しており、 AVコンテンツの作成と、 AVコンテンツの再生制御を行うアプリケーションの 作成とが直列の関係になっているので、 DVD-Video用のアプリケーションを開発する には、 AVコンテンツの製作の環境が整っていることが大前提となる。ここで AVコンテ ンッの製作には、映画スタジオが導入してレ、るような高価なォーサリング機器が不可 欠であり、一般のソフトハウスにとっては、なかなか手が出るものではない。このように 、設備投資が大きなネックになって、 DVD-Videoアプリケーションの製作に参入する ソフトハウスは、限られているという実情がある。
[0004] 一方、 BD-ROMでは、プログラム記述言語に Javaを採用しており、 AVコンテンツと、 Java(TM)アプリケーションとのクロス開発環境を整えているので、多くのソフトハウスに 参入を呼びかけることができる。
DVD-Videoディスク作成時の AV再生制御処理に関連する不具合解析や問題修正 後の動作確認を容易とするための装置、方法についての先行技術には、以下の特 許文献 1に記載されたものがある。
特許文献 1 :特開平 11-203841号公報
発明の開示
発明が解決しょうとする課題
[0005] しかしながら、この BD-ROMプレーヤモデルで規定されている AVコンテンツの再生 制御は、複雑かつ多岐にわたるので、クロス開発環境において、 Java(TM)アプリケー シヨンが完成したとしても、直ちに、かかる Java(TM)アプリケーションを出荷できると判 断を下すことができない。そうするとやはり、 Java(TM)アプリケーションを AVコンテンツ と同じ、 1つのディスクに納めてみて、最終的な動作確認をしなければならない。
[0006] 更にその動作確認において、バグが発見されれば、 Java(TM)アプリケーションを修 正して再度、 Java(TM)アプリケーションを AVコンテンツと同じ、 1つのディスクに納める 必要がある。かかる動作確認と、バグ修正との繰り返しが発生する恐れがあるので、こ れらの事情を考えると、 BD-ROMアプリケーションの制作には、専用のォーサリング 機器を導入するのが、望ましいと思われる。
[0007] だ力 BD-ROMプレーヤモデルは、ハイビジョン画像を前提にしたハイエンドなハ 一ドウエア仕様を有しているので、これを製作するォーサリング機器も、 DVD-Videoの ォーサリング機器と比べて、非常に高価で大規模なものであり、小資本のソフトハウス にとつては導入が難しレ、。これが障壁になって、 BD-ROM用の Java(TM)アプリケーシ ヨンの開発に参入するソフトハウス力 なかなか増えないという問題が生じる危惧があ る。
[0008] BD-ROMを題材として、本発明が前提としている技術的課題を述べた力 BD-RO Mに限らず、ある特定の論理フォーマットで、 AVコンテンツと共に、記録媒体に記録さ れてエンドユーザに供給されるようなアプリケーションは、 AVコンテンツの再生と連動 した再生動作が確認できるまでは、アプリケーションの開発が完了したとはいえず、そ の開発が難航するといわれる。そして、そのような動作確認の術が不足していることが 、アプリケーション開発の大きな妨げになっている。
[0009] 本発明の目的は、専用のォーサリング機器を導入しなくても、 BD-Jアプリケーション の解析及び修正をすることができる再生装置を提供することである。 課題を解決するための手段
[0010] 上記目的を達成するため、本発明に力、かる再生装置は、アプリケーションが配置さ れている記録媒体におけるネットワークファイルシステム情報を取得して、 自身に装 填されてレ、る記録媒体におけるファイルシステム情報と組み合わせることで、仮想的 なファイルシステムを得るマウント手段と、仮想的なファイルシステムから認識すること ができるアプリケーションを実行するプラットフォーム部と、仮想的なファイルシステム 力ら認識することができる AVコンテンツを、前記アプリケーションからの指示に従い再 生する再生制御エンジンとを備え、前記開発支援機能とは、プラットフォーム部がァ プリケーシヨンを実行するにあたっての実行情報を、ネットワーク上で送受信する機能 であることを特 ί数としている。
発明の効果
[0011] 本発明に力かる再生装置は上述した構成を有しているので、 AVコンテンツを、再生 装置に装填されるディスク媒体に配置しておき、アプリケーションをネットワークドライ ブとなる記録媒体に配置しておけば、再生装置との間で、実行情報の送受信を行う ことで、 AVコンテンツの再生と、アプリケーションの動作とを連動させることが可能に なる。
再生装置に装填されるディスク媒体ではなぐネットワークドライブとなる記録媒体に 、アプリケーションを配置しておけば、実機での再生を前提にしたアプリケーションの 動作確認を行うことができるので、 AV再生制御を伴うアプリケーションの検証、及び、 解析 ·修正を効率よく実施することができる。
[0012] アプリケーションをターゲットとなるディスク媒体に配置しなくても、開発環境におけ るネットワークドライブにアプリケーションを配置しておけば、アプリケーションの解析、 修正を効率的に行うことが可能になるので、ネットワーク接続の環境さえあれば、高価 なォーサリング機器を導入せずとも、 AVコンテンツの再生と連動したアプリケーション のデバッグが可能となる。
[0013] BD-ROM用 Java(TM)アプリケーション製作事業参入のための障壁が低くなり、多く のソフトハウスに、 BD-ROM用 Java(TM)アプリケーションの製作事業に参入を呼びか けることができる。また BD-ROMに限らず、ある特定の論理フォーマットで、 AVコンテ ンッと共に、記録媒体に記録されてエンドユーザに供給されるようなアプリケーション の開発がスムーズになるので、アプリケーションの充実化を促進することができる。 図面の簡単な説明
[0014] [図 1]BD_Jアプリケーションの作成手順を示すフローチャートである。
[図 2]第 1実施形態に力かる IDE環境、及び、 ADK環境を示す図である。
[図 3]Java Platform Debugger Architecture (JPDA)のレイヤモデルを示す図である。
[図 4] (a) (b)標準出力関数を用いた ADK環境におけるデバッグ例、 ECLIPSEを用い たデバッグ例を示す図である。
[図 5]ADK環境において、 ECLIPSEを用いたデバッグを行う場合の、 GUIの一例を示 す図である。
[図 6]ADK環境でのデバッグ手順を示すフローチャートである。
[図 7]第 1実施形態に係る BD-ROM再生装置 200の内部構成を示すである。
[図 8] (a)ネットワーク管理情報に含まれる情報識別子と、その解説とを対応付けて示 す図である。
[0015] (b)ネットワーク管理情報の具体的な記述を示す図である。
[図 9]上のファイルシステムと、 BD-ROM上のファイルシステムとを組合せた仮想的な
[図 10]ADK処理部 208の内部構成を示す図である。
[図 11]ADK環境における BD-Jアプリケーション実行と、 AVコンテンツ再生とを模式的 に示す図である。
[図 12]ADK環境の処理手順を示すフローチャートである。
[図 13]Log出力用 APIである DebugLogについてのクラス構造体を示す図である。
[図 14] (a)〜(c) setLevelメソッド、 printLogメソッド、 printExc印 tionメソッドの処理手 順を示すフローチャートである。
[図 15]Log出力 APIを利用した、 Java(TM)プログラムソースコードの一例を示す。
[図 16]tryメソッドの処理手順を示すフローチャートである。
[図 17]デバッグ装置のハードウェア構成を示す図である。
[図 18]IDE環境のソフトウェア構成を示す図である。 [図 19]BD-Jシミュレータ 118の内部構成を示す図である
[図 20]プレイリスト構成メニュー 501の一例を示す図である。
[図 21] (a) (b)音声ストリーム構成メニュー 601a、字幕ストリーム構成メニュー 601bの 一例を示す図である。
[図 22]AV再生画面表示部 128による表示内容の一例を示す図である。
[図 23] (a)〜(b)現在時点メニュー 701b、動作状態セットアップメニュー 701cを示す 図である。
[図 24] (a)〜(c)画面配置セットアップメニュー 801a、音声出力セットアップメニュー 8 01b、字幕表示セットアップメニュー 801cを示す図である。
[図 25]再生制御エンジンスタブ 126の処理手順におけるメインルーチンを示すフロー チャートである。
[図 26]現在時点の更新処理の手順を示すフローチャートである。
[図 27] (a) (b)シミュレーション情報変更の詳細手順、状態変化通知処理の詳細手順 を示すフローチャートである。
[図 28]シミュレーション情報変更の処理手順を示すフローチャートである。
[図 29]BD_ROMの内部構成を示す図である。
園 30]拡張子. m2tsが付与されたファイルがどのように構成されているかを模式的に 示す図である。
[図 31]AVClipを構成する TSパケットがどのような過程を経て BD-ROMに書き込まれる かを示す。
[図 32]BD_ROMの物理単位と、 1つのファイルエクステントを構成する Sourceパケットと の対応関係を示す図である。
[図 33]MainClipに多重化されるエレメンタリストリームを示す図である。
[図 34]SubClipに多重化されるエレメンタリストリームを示す図である。
園 35]Clip情報の内部構成を示す図である。
[図 36]映画のビデオストリームに対する EPjnap設定を示す図である。
[図 37] (a) (b) PlayList情報のデータ構造、 Multし Clip_entriesの内部構成を示す図で ある。
[図 38]PlayList情報における PlayListMark情報の内部構成を示す図である。
[図 39]AVClipと、 PlayList情報との関係を示す図である。
[図 40]Subpath情報の内部構成をクローズアップして示す図である。
[図 41]ローカルストレージ上の SubClipと、ローカルストレージ 202上の PlayList情報と
、 BD-ROM上の MainClipとの対応を示す図である。
[図 42]PiP_metadataの内部構成を示す図である。
[図 43]再生エンジン 205の内部構成を示す図である。
園 44]合成部 15の内部構成を示す図である。
[図 45]再生制御エンジン 206の処理手順を示すフローチャートである。
[図 46]PlayList情報における SubPlayltem情報に従った再生手順を示すフローチヤ一 トである。
園 47]本実施形態に係るォーサリングシステムの内部構成と、本システムにおけるデ バッグ装置の位置付けを示す図である。
[図 48]フォーマッティング工程における処理の流れを示すフローチャートである。
[図 49] (a) (b)ネットワークドライブのディレクトリ 'ファイル構造、 JARアーカイブフアイ ルの内部構成を示す図である。
[図 50] (a) (b) Credentialのデータ構造、 Credentialの具体的な一例を示す図である。
[図 51]BD_ROMにおいてルート証明書がどのように割り当てられるかを模式的に示す 図である。
[図 52]権限の提供がない場合の SIG_BD.RSA、 SIG_BD.SF、 BD.ROOT.CERTIFICA TE、 MANIFEST.MFの相互関係を示す図である。
[図 53]権限の提供がない場合の SIG_BD.RSA、 SIG_BD.SF、 BD.ROOT.CERTIFICA TE、 MANIFEST.MF, bd.XXXX.permの相互関係を示す図である。
園 54]プラットフォーム部の内部構成を示す図である。
[図 55]BD_ROMドライブ、 AVコンテンツをデコードするためのハードウェア及びソフト ウェア、プラットフォーム部を具備した PC100の構成を示すブロック図である。
[図 56]再生装置の主たる構成要素を組込んだシステム LSIを模式的に示す図である 園 57]再生装置の主たる構成要素を組込んだシステム LSIを、機器に装備した状態を
示す図である。
符号の説明
ァノ ッグ装置
101 ネットワークドライブ
102 ブート ROM
103 RAM
104 入出力 I/O
105 MPU
106 ネットワーク I/F
200 再生装置
201 BD-ROMドライブ
202 ローカルストレージ
203 ネットワーク I/F
204 仮想ファイルシステム部
205 再生エンジン
206 再生制御エンジン
207 BD-Jプラットフォーム部
208 ADK処理部
209 初期化処理部
210 マウント設定部
発明を実施するための最良の形態
以下本発明の実施の形態について、図面を参照しながら説明する。
(第 1実施形態)
先ず始めに、 BD-ROMの制作及び工業的な生産について説明する。
先ず初めに、企画工程を行う。この工程では、 BD-ROMをどのような筋書きで再生 させるカゝを決める。 [0019] 次に、素材作成工程を行う。この工程は、動画収録、音声収録等の素材作成を行う ものである。
そしてフォーマット工程を行う。この工程は、企画工程において作成された筋書きと 、素材とから BD-ROMのボリューム領域に記録すべきデータの全体像 (一般にボリュ ームデータという)を得るものである。
[0020] 最後にプレス工程を行う。このプレス工程では、ボリュームイメージを物理データ列 に変換して、この物理データ列を用いて原盤カッティングを行レ、、ディスク原盤を作 成する。
こうして、プレス装置によって原盤が作成されれば、 BD-ROMを工業的に大量に生 産する。この生産は主に、基板成形、反射膜成膜、保護膜コーティング、張り合わせ 、レーベルの印刷といった諸工程からなる。
[0021] 以上の工程を経て、各実施形態に示した記録媒体 (BD-ROM)を作ることができる。
く Java(TM)アプリケーションの製作 >
上述したフォーマッティング工程において、製作の対象となるソフトウェアは、 BD-J アプリケーションと呼ばれる Java(TM)アプリケーションと、 BD-Jオブジェクトと力もなる。 先ず始めに BD-Jアプリケーションについて説明する。
[0022] BD- Jアプリケーションとは、 Java2Micro_Edition(J2ME) Personal Basis Profile(PBP 1 .0)と、 Globally Executable MHP specification(GEM 1.0.2)for package media targetsと をフル実装したプラットフォーム部にて動作する Javaアプリケーションである。
この BD-Jアプリケーションは、 xletインターフェイスを通じて、 Application Managerに より、制御される。 xletインターフェイスは、 "loaded", "paused"、 " active", "destoryed" といった 4つの状態をもつ。
[0023] 上述した Javaプラットフォーム部は、 JFIF(JPEG)や PNG,その他のイメージデータを 表示するためのスタンダード Javaライブラリを含む。このため、 Javaアプリケーションは 、 GEM1.0.2にて規定された HAViフレームワークを含み、 GEM1.0.2におけるリモート コントロールナビゲーシヨン機構を含む GUIフレームワークを実現することができる。 これにより、 Javaアプリケーションは、 HAViフレームワークに基づくボタン表示、テキ スト表示、オンライン表示 (BBSの内容)といった表示を、動画像の表示と組み合わせ た画面表示を実現することができ、リモートコントロールを用いて、この画面表示に対 する操作を行うことができる。
[0024] こうした BD-Jアプリケーションを構成する一連のファイルは、 http: //java. sun.com/j2 se/1.4.2/docs/guide/jar/jar.htmlに記載された仕様に準じた、 Java(TM)アーカイブフ アイルに変換される。 Java(TM)アーカイブファイルは、 ZIPファイルの形式を、 Java(TM) に特化したものであり、市販されている ZIP展開ソフトウェアにより中身を確認すること ができる。
[0025] 後者の BD-Jオブジェクトは、アプリケーション管理テーブル (A卯 licationManagemen tTableO)を含み、 BD-ROM再生時において、タイトル切り替えに伴うアプリケーション シグナリングをプラットフォーム部に実行させるデータのことである。より具体的にいう と、 ApplicationManagementTableOは、実行すべき BD- Jアプリケーションを示す applic ationjdと、 BD- Jアプリケーションを起動する際の制御を示す application_contorol_cod eを含む。 application_contorol_codeは、タイトル選択後におけるアプリケーションの最 初の実行状態を規定しており、また application_contorol_codeは、 BD-Jアプリケーショ ンを仮想マシンにロードして自動開始するか (AUTOSTART), BD-Jアプリケーション を仮想マシンにロードするが自動開始はしなレ、か (PRESENT)を規定することができる
[0026] 以上が BD-Jアプリケーション及び BD-Jオブジェクトについての説明である。続いて 、 BD-Jアプリケーション作成工程の詳細について、説明する。
図 1は、 BD-Jアプリケーションの作成手順を示すフローチャートである。 IDE(IDE: I ntegrated Development Environment)i¾ におレヽ飞 Javaコ1 ~~ト 作成し (スアップ S ij 、そうして得た Javaプログラムソースコードをコンパイルした上、 JARアーカイブファイル に変換する (ステップ S2)。かかる変換にて、 BD-Jアプリケーションが得られる。その後 、 IDE環境にてシミュレータをもちいて、 BD-Jアプリケーション単体での動作確認を行 い (ステップ S3)、動作 OKかどうかを判定する (ステップ S4)。動作が NGであるなら (ス テツプ S4で No)、 IDE環境で Java(TM)プログラムソースコードを修正した上 (ステップ S 5)、ステップ S2に戻って動作確認をやり直す。
[0027] 以上の過程は、 AVコンテンツの製作とクロス開発の環境になっており、これとは另 IJ 途、 AVコンテンツの製作が進められている。
本実施形態にいう AVコンテンツは、いやゆる BD-ROMコンテンツであり、ストリーム 実体— Clip情報—プレイリスト—タイトルという階層構造を有していて、タイトルという 単位をもって、ユーザ選択に供されるデータ客体をレ、う。
[0028] AVコンテンツの製作が完了すれば、作成された AVコンテンツは、 BD-REver3.0フォ 一マットに変換された上、 BD-REに書き込まれる。 BD_REver3.0フォーマットは、書き 換え型ディスクを対象にした論理フォーマットでありながら、読み出し専用型ディスク である BD-ROMと、完全な互換性をもつ論理フォーマットであり、 AVコンテンツをかか るフォーマットに、変換することで、 BD-ROMの完成を待たなくても、実機での再生を 想定した総合テストを実現することができる。尚、説明の簡略化のため、本明細書で は、 ver3.0フォーマットを有する BD- REを、 BD-ROMと呼ぶ。
[0029] BD-Jアプリケーション側の動作確認が〇Kであるなら (ステップ S4で Yes)、 BD-Jォブ ジェタトを記述して (ステップ S6)、 BD-ROM再生装置が参照できる位置に、 BD-Jォブ ジェクト、 JARアーカイブファイルを配置する (ステップ S7)。
そして、 ADK(ADK: Application Development Kit)環境で動作確認を行い (ステップ S8)、デバッグが完了したかどうかを判断する (ステップ S9)。 ADK環境とは、詳しくは 後述するが、実機での動作に近い開発環境である。デバッグが未完ならば、 IDE環境 で Java(TM)プログラムソースコードの修正を行レ、(ステップ S10)、 Javaプログラムソー スコードをコンパイルした上、 JARアーカイブファイルに変換する (ステップ S 11)。その 後、ステップ S6に戻って動作確認をやり直す。
[0030] < IDE環境、及び、 ADK環境 >
続いて、 BD-Jアプリケーションを製作するための IDE環境、及び、 ADK環境につい て説明する。図 2は、第 1実施形態にかかる IDE環境、及び、 ADK環境を示す図であ る。本実施形態に力、かる IDE環境は、この図 1における PC100から構成される。 ADK 環境は、この図 2における PC100、及び、 BD-ROM再生装置 200力 構成される。デ バッグ装置は、一般のパーソナルコンピュータ (以下、 PC100とレ、う)に、 IDE環境のソ フトウヱァをインストールすることで、構成されている。
ADK環境について説明する。 ADK環境とは、 BD-Jアプリケーションを構成する JAR アーカイブファイルや、 BD-Jオブジェクトを、ネットワークドライブ (PC搭載の HDDであ つて、ネットワークを介して参照可能となるもの)に配置しておいて、ネットワークフアイ ルシステム情報を、 BD-ROMのファイルシステム情報にマウントすることで、ネットヮー クドライブ上の BD-Jアプリケーションを、 BD-ROM再生装置に実行させるという動作 環境をいう。
[0031] この ADK環境では、 AVコンテンツは、 BD-ROM再生装置に搭載の BD- ROMドライ ブに記録されているものを用レ、、 BD-Jオブジェクトは、 PC上のネットワークドライブを 記録されているものを用いて、動作確認を実現することができる。 PC上の BD-Jアプリ ケーシヨンケーシヨンを BD-ROM再生装置上の BD-ROMにあるのと同様に動作させ ることにより、 BD-ROMに記録された状態を、想定した動作確認をすることができる。
[0032] ADK環境のデバッグでは、 JPDA(Java Platform Debugger Architecture)の仕組みを 利用することで Javaアプリケーションのデバッグを実現している。 JPDAQava Platform Debugger Architecture)は、 Java 2プラットフォーム部で定義されたインターフェイスで あって、アプリケーション開発環境で使用するデバッガ用に設計されたものであり、そ のレイヤモデルは、図 3に示す通りとなる。
[0033] 図 3は、 Java Platform Debugger Architecture (JPDA)のレイヤモデルを示す図であ る。 JPDAは、実行環境 #1、実行環境 #2、 JDWPから構成される。
実行環境 #1は、『バックエンド』、『JVMDI』、『JavaVM』から構成される。 『バックエンド』は、フロントエンドと通信を行い、 Java(TM)アプリケーションからの要 求、要求に対する応答、イベントとの送受信を行う。
[0034] fjVMDKjava VM Debug Interface)』は、 Java仮想マシンが提供するデバッグサービ スを定義する。以上が実行環境 #1について説明である。
『JavaVM』は、 Java(TM)アプリケーションの実行主体となる Java(TM)仮想マシンであ る。
実行環境 #2は、『UI』と、『JDI』と、『フロントエンド』とからなる。
[0035] 『UI(User Interface)』は、バックエンドの設定や、変数の参照/変更操作、ステップ 実行等のデバッグ要求をユーザから受け付ける。
『JDI(Java Debug Interface )』は、高レベルの Java言語インタフェースを定義する。 『フロントエンド』は、バックエンドと通信を行い、ユーザからの要求、要求に対する 応答、イベントとの送受信を行う。
[0036] 『JDWP(Java Debug Wire Protocol)』は、デバッグ対象のプロセスとデバッガのプロ セス間で行われる通信を定義したものであり、フロントエンド及びバックエンド間の通 信を行う。
以上の JPDAにおいて、実行ログや変数の保持値、プログラムカウンタの値、ブレー クポイントとなるアドレスの送受信は、再生装置と PCとを結ぶシリアルポート、 Socketで なされる。説明の便宜上、 JPDAでの送受信は、シリアルポートでなされるものとする。
Socketは、 IEEE802.3(Ethernet(TM)),IP,TCP/UDP上に位置するセッション層の通信 路であり、 BD-Jアプリケーションは、ネットワークモデルとして、 IEEE802.3(Ethernet),I P,TCP/UDPを採用しているため、無論のこと、かかる Socketをデバッグ時の伝送路に 採用してよいことはいうまでもなレ、。本明細書における実行情報は、これら図 7 (a) (b )に示した実行ログや変数の保持値、プログラムカウンタの値、ブレークポイントとなる アドレスを包含した、アプリケーションの実行に関する情報を広く包含する。
[0037] 以上が JPDAについての説明である。図 2の例では、この実行環境 #1に、 BD-ROM 再生装置 200が割り当てられ、実行環境 #2に、デバッグ装置 100が割り当てられる。
ADK環境でのデバッグ例(1)について述べる。
図 4 (a)は、標準出力関数を用いた ADK環境におけるデバッグ例を示す図である。 図中のバルーンへルプ0^1,1^2,1^3,1^4)は、 PC100、 BD-R0M再生装置 200上で なされる処理の解説である。 BD-Jアプリケーションにおいて、標準出力関数を利用し た実行ログを出力すれば (hpl)、 BD-ROM再生装置 200では、シリアルポートを利用 して、 PC100側のログサーバーターミナルに、実行ログを送信する (hp2)。こうすること で、ログサーバーターミナルは、実行ログを受け取ることができるので、かかる実行口 グを、コマンドプロンプトに表示することができる (hp3)。以上の実行ログの送信により、 AVコンテンツの再生、イベント発生、 BD-ROM再生装置が保持する情報などを含め て、実際の動作環境 (製品版 BD-ROM再生装置上での BD-ROM再生)と同等の状 態で動作確認を実施することが可能となる。ただし、 BD-ROM上のデータレイアウトに 依存する動作(データアクセス等)に起因するものなど、一部に同等とは言い切れな いケースもあるので、この点は、注意を要する。
[0038] また、実行 Logの内容に応じてレベル (重要度)を設定しておくことにより、このデバ ッグレベルに応じて実行 Logを抑制することができる。
標準出力関数を用いたデバッグでは、手軽にアプリの動作状況をチェックすること が可能になり、アプリケーションの動作検証、再現確認などに有効となる。但しこれは 、簡易的なデバッグ作業向けに過ぎない。
[0039] 続いて、 ECLIPSEを用いたデバッグについて述べる。図 4 (b)は、 ECLIPSEを用いた デバッグ例を示す図である。 ECLIPSEとは、 Java IDE環境の一つであり、 JPDAを利用 して Debugを行うための GUIを備えている。そのため、 ECLIPSEを禾 lj用すれば、アプリ の動作をソースコードと対応付けて St印単位でチェックし、ブレークポイント設定、 One St印実行、実行中の変数値の確認など詳細なデバッグ作業を実行することで、アブ リの動作を St印単位で詳細に確認することができる。力かる ECLIPSEの利用のため、 PC100は、 BD-ROM再生装置 200と、 JPDAの仕組みに従って通信を行い (hp4)、 PC 100上の ECLIPSE力ら、 BD-ROM再生装置で動作してレ、る BD-Jアプリケーションに 接続して、デバッグ作業を実施する (hp5)。これは、発見した不具合の原因解析、及 び、修正等本格的なデバッグ作業向けである。
[0040] 実行環境 #2の GUIでは、実行環境 #1のプラットフォーム部におけるスレッドや、変数 、ブレークポイント、即値を表示することが可能になる。図 5は、 ADK環境において、 E CLIPSEを用いたデバッグを行う場合の、 GUIの一例を示す図である。以下、この GUI には、スレッド一覧ウィンドウ wdl、変数一覧ウィンドウ wd2、ブレークポイント一覧ウィン ドウ wd3、ソースコード表示ウィンドウ wd4、標準出力関数表示ウィンドウ wd5が存在する 。以下、これらの各ウィンドウについて説明する。
'スレッド一覧ウィンドウ wdl、
スレッド一覧ウィンドウ wdlは、仮想マシンにおけるスレッドが一覧表示される。図中 の例では、 Thread[AWT-Windows(TM)],Thread[AWT- Shutdown],Thread[AWT- Eve ntQueue-0]が表示されており、これらのうち、 Thread[AWT_Windows],Thread[AWT- Shutdown]が実行状態 (Running)であり、 Thread[AWT_EventQueue_0]がサスペンド状 態であることがわかる。 また図中の PopupMainMenu(BasicFeatrure).keyPressed(int) line26は、上述した Thr ead[AWT— EventQueue— 0コのつち、 PopupMamMenu(BasicFeatrure) . keyPressed(mt) ¾r 構成する line26が、実行ラインであることを示す。
'変数一覧ウィンドウ wd2
変数一覧ウィンドウ wd2には、変数名が、その保持値と対応付けられて配置される。 図中の一 f列で、は、 choises,currentIndex,currentSub eature,font,parentとレヽっ 5つの変 数と、その保持値とを対応付けて示す。
•ブレークポイント一覧ウィンドウ wd3
ブレークポイント一覧ウィンドウ wd3には、ブレークポイントが配置される。図中の例 では、 BasicFeatrureにおけるライン 22と、 PopupMainMenuにおけるライン 67とに、ブ レークポイントが設定されてレ、ることを示す。
'ソースコード表示ウィンドウ wd4
ソースコード表示ウィンドウ wd4は、ソースリストが配置される。 PopupMainMenu(Basic Featrure).keyPressed(int)のソースコードフアイノレである BasicFeatrure. javaのソースリ ストのうち、 13行目力ら 26行目までのソースコード力 本図において、表示対象にな つている。そして、これらの行のうち、ブレークポイントが設定されているものには、特 殊なマークが付され、また実行ラインは、強調表示されている。
'標準出力関数表示ウィンドウ wd5
標準出力関数表示ウィンドウ wd5には、 BD-ROM再生装置 200から送信された実行 ログが配置される。図中の [util.JMFPlaybackControl] playPlayList 29 atMark 0は、 B D-ROM再生装置 200から送信された実行 Logである。かかる実行ログは、メソッド util において実行されている JMFPlaybackControl、つまり、 JMFプレーヤインスタンスによ る再生制御に関する実行ログである。かかる JMFプレーヤインスタンスは、メソッド util 力、らの APIコールにより、プラットフォーム部内に生成されたものであり、本図における 実行ログには、具体的には、再生制御エンジンによりどのプレイリストが再生されてい る力 \現在時点はどこである力、が、この実行ログに示されている。本図における具体 例について解説すると、再生中のプレイリスト (playPlayList)は、 PlayListId=29のプレイ リストであり、現在時点は、 markld=0のチャプターであることがわかる。 [0042] 以上の GUIの詳細については、下記 HPなどを参照されたい。
http://sdc.sun.co.Jp/java/ docs/j2se/l.4/ja/ docs/ja/ guide/ jpda/mdex.htmi Eclipseを利用した Debugの詳細については、下記 HP等を参照されたい。 http://www-06.ibm.com/jp/ developerworks/opensource/03071丄 /j_os- ecbug.html http://www.okisoft.co.jp/ esc/ eclipse3/ ecnpse-debug.html
以上が ECLIPSEにおける GUIである。続いて、 ADK環境における具体的な処理手 順について説明する。
[0043] 図 6は、 ADK環境でのデバッグ手順を示すフローチャートである。
ADK環境でのデバッグ手順とは、検証チームが、 BD-Jアプリケーションについての 動作テストを行い (ステップ S 12)、 BD-Jアプリケーションの不正動作を目視ゃ音声等 によりチェックする。そして不具合が発見されたかどうかを判断して (ステップ S 13)、も し不具合が発見されなければ、ステップ S 14〜ステップ S 18をスキップして、ステップ S 19に移行する。
[0044] もし不具合が発見されれば、開発者は、不具合発生時、又は、不具合発生前後の 実行 Logを利用して原因解析を行う (ステップ S 14)。そして、原因が特定できたかどう 力を判断する (ステップ S 15)。原因が特定できれば (ステップ S 15で Yes)、ステップ S I 6、ステップ S 17をスキップする力 原因が特定できなかった場合 (ステップ S 15で No) 、デバック装置による解析 (ステップ S 16)を、原因が特定されるまで繰り返す (ステップ S 17)。原因が特定されれば、コード修正、及び、動作確認を行う (ステップ S 18)。そ の後、その後、全検証が完了したかどうかを判断して (ステップ S 19)、未検証の項目 が残っていれば、ステップ S 12に移行して、動作テストからやり直す。未検証の項目 が残っていなければ、処理を終了する。
[0045] 続いて、本実施形態に係る再生装置の内部構成について説明する。図 7は、第 1 実施形態に係る BD-ROM再生装置 200の内部構成を示すであり、 BD-ROMドライブ 201、ローカノレストレージ 202、ネットワーク I/F203、仮 ¾|ファイノレシステムき 204、再 生エンジン 205、再生制御エンジン 206、 BD-Jプラットフォーム部 207、 ADK処理部 208を備える。
1.BD-ROMドライブ 201 BD— ROMドライブ 201は、 BD- ROMのローデイング/イジェクトを行レ、、 BD— ROMに 対するアクセスを実行する
2.ローカルストレージ 202
ローカルストレージ 202は、差分コンテンツを格納する。差分コンテンツとは、 BD-R 〇Mとは別に、 WWWサーバから配信され、 BD-ROMコンテンツと組合せて再生される コンテンツの総称である。
3.ネットワーク I/F203
ネットワーク I/F203は、ネットワーク管理情報に基づき LANに接続されたデバッグ 装置との通信を行う。通信の客体のうち、デバッグ装置から再生装置に送り込まれる ものには、ネットワークファイルシステム (NFS)情報、 BD-Jアプリケーション、 BD-Jォブ ジヱタトがあり、再生装置からデバッグ装置へと送り込まれるものには、マウントコマン ドがある。ここで、ネットワーク管理情報は、ネットワークを利用するにあたっての、シリ アルポート設定、ネットマスク設定、ゲートウェイ設定、ホスト設定を示す情報である。 図 8 (a)は、ネットワーク管理情報における各設定項目に割り当てられている情報識 別子と、その解説とを対応付けて示す図である。また、図 8 (b)は、ネットワーク管理情 報の具体的な記述を示す図である。
[0046] 本図における情報識別子のうち、 "LOGSERVERHOST"、 "LOGSERVERSELECT" 、 "LOGSERVERPORT"は、上述したような実行ログを送受信するための設定である。
LOGSERVERHOSTは、実行ログの送信先となるネットワークアドレスであり、具体例 では、ログサーバーターミナルが動作しているデバッグ装置のネットワークアドレス" 1 92.168.0.1"が、記述されている。
[0047] LOGSERVERSELECTは、実行ログを、ログサーバーターミナルのシリアルポートに 出力するか、サーバに出力するかを示す出力設定であり、具体例では、 "SERIAL"と 記述されている。この LOGSERVERSELECTが" SERIAL"の場合は、 LOGSERVERHO ST、 LOGSERVERPORTは無視され、 SERIALポートにログが出力される。 LOGSERVE RSELECTが" SOCKET"の時に、 LOGSERVERHOST、 LOGSERVERPORTのアドレス 、ボート番号に対して、実行ログが出力されることになる。
[0048] LOGSERVERPORTは、出力先となる Socketを特定するためのポート番号であり、具 体例では、ポート番号 4096の Socketに、実行ログが入力されていることを示す。
"NETMASK"はネットマスクの設定を示し、 " GATEWAY", "GATEWAYNAME"は、 ゲートウェイの設定を示す。
NETMASKは、再生装置と、再生装置との接続にあたって、使用されるマスクである
[0049] GATEWAYは、ゲートウェイを介して、再生装置を再生装置実機と接続するか否か を示す。同図(b)における具体例では、 "Yes"と記述されていることから、ゲートウェイ を介して再生装置実機と接続されてレ、ることがわかる。
GATEWAYNAMEは、実機となる再生装置が存在するネットワークにおけるゲートゥ ヱイのアドレスである。
、 "HOSTADR"、 "BDVIDEOMOUNT"は、ホストの設定をそれぞれ示す。
[0050] HOSTADRは、実機となる再生装置のネットワークアドレスを示す。具体例では、 "19 2.168.0.2"と記述されていることから、ネットワークアドレス 192.168.0.2に、再生装置の 実機が存在することがわかる。
BDVIDEOMOUNTは、 BD-Jアプリケーションが存在するネットワークパスが記述さ れる。具体例では、 "192.168.0.1 :/home/bdrom/"と記述されていることから、ネットヮ ークアドレス 192· 168.0.1における/ home/bdrom/が設定されてレ、ることがわかる。また 、この/ home/bdrom/におけるファイルシステム情報力 ネットワークファイルシステム のファイルシステム情報として、 BD-ROM再生装置 200に送り込まれることがわかる。
[0051] 以上が、ネットワーク管理情報及びネットワーク I/F203についての説明である。
4.仮想ファイルシステム部 204
仮想ファイルシステム部 204は、 BD-ROMにおけるファイルシステム情報に、他の 記録媒体のファイルシステム情報を組み合せることで、仮想的なファイルシステムを 生成する。一般に BD-ROMの再生装置は、ローカルストレージのファイルシステム情 報を"他の記録媒体"のファイルシステム情報として読み出すことで、仮想的なパッケ ージを生成するが、本実施形態において特徴的なのは、ネットワークドライブのフアイ ルシステム情報を、 "他の記録媒体"のファイルシステム情報として読み出すことで、 仮想的なパッケージを生成する点である。力、かる仮想的なパッケージの生成により、 プラットフォーム部は、ネットワークドライブ上の Java(TM)アプリケーションを、 BD-RO Mに存在するかのように認識して、アクセスすることができる。図 9は、仮想ファイルシ ステム部 204によるファイルシステム情報の組合せを模式的に示す図である。右側は 、ネットワークドライブにおけるファイル 'ディレクトリ構造であり、中側は、 BD-ROMに おけるファイル ·ディレクトリ構造である。左側は、仮想的なパッケージである。
[0052] 右側は、ネットワークファイルシステム情報を用いて表現される、ハードディスクを示 す。このハードディスクには、 homeディレクトリの配下に、 bd-romディレクトリ、 BD-VID E〇ディレクトリというサブディレクトリが存在し、更にその配下に、 BDJOディレクトリ、 JA Rディレクトリが存在することがわかる。
BDJOディレクトリには、拡張子 bdjoが付与されたファイル (OOOOl.bdjo)が存在する。
[0053] JARディレクトリには、 JARアーカイブファイルファイル (OOOOl.jar)が存在する。
中側は、 BD- ROMのファイルシステム情報を用いて表現される、 BD-ROMのフアイ ルシステムを示す。この BD- ROMファイルシステムは、 Rootディレクトリの下に、 BDVI DEOディレクトリが存在する。
BDVIDEOディレクトリには、拡張子 bdmvが付与されたファイル (index.bdmv,MovieO bject.bdmv)がある。そしてこの BDVIDEOディレクトリの配下には、更に PLAYLISTディ レクトリ、 CLIPINFディレクトリ、 STREAMディレクトリが存在する。
[0054] PLAYLISTディレクトリには、拡張子 mplsが付与されたファイル (OOOOl.mpls)がある。
CLIPINFディレクトリには、拡張子 clpiが付与されたファイル (OOOOl.clpi)がある。
STREAMディレクトリには、拡張子 m2tsが付与されたファイル (00001.m2ts)がある。 図中の矢印 mtl,mt2は、上述したような仮想ファイルシステム部 204によるファイル システム情報の組合せを模式的に示す。この組合せにより、ネットワークファイルシス テムに存在する BDJOディレクトリ、 JARアーカイブファイルディレクトリは、 BD- ROMの ファイルシステムにおける BDVIDEOディレクトリの配下に組込まれることになり (図中の 破線枠 hwl)、ネットワークファイルシステムに存在する BDJOディレクトリ、 JARァーカイ ブファイルディレクトリは、あたかも、 BD- ROMファイルシステムにおいて、 BDVIDEO ディレクトリの配下に存在するかのように、取り扱われる。
5.再生エンジン 205 再生エンジン 205は、仮想ファイルシステム部 204により生成された仮想パッケージ から、認識することができる AVコンテンツを再生する。
6.再生制御エンジン 206
再生制御エンジン 206は、 BD-Jアプリケーションからの APIコールに基づく再生を、 再生エンジン 205に行わせる。
7. BD-Jプラットフォーム部 207
BD-Jプラットフォーム部 207は、仮想ファイルシステム部 204により生成された仮想 パッケージから、認識することができる BD-Jアプリケーションを実行する。
8. ADK処理部 208
ADK処理部 208は、 BD-Jプラットフォーム部 207の構成要素であり、 ADK環境にお けるデバッグを実現する。
以上が、 BD-ROM再生装置 200の内部構成を示す図である。この ADK処理部 208 の構成要素のうち、特徴的なものを記述したの力 図 10である。
図 10は、 ADK処理部 208の内部構成を示す図である。本図に示すように ADK処理 部 208は、初期化処理部 209、マウント設定部 210を備える。
9.初期化処理部 209
初期化処理部 209は、装置の内部情報やハードウェア等の初期化処理を行うと共 に、ネットワーク管理情報をネットワーク I/Fに読み込ませて、ネットワーク設定処理を 行う。ネットワーク設定処理とは、 UNIX(TM)の routeコマンド等による操作を指す。ネッ トワーク管理情報が図 8 (b)に示すような内容の場合、ネットワーク設定処理は、図 8 ( a)における、 NETMASK、 GATEWAY, GATEWAYNAME、 HOSTADDRの各情報識 別子で指定されている情報をもとに、以下のような routeコマンドを作成することでなさ れる。
/sbin/route add—net 192.168.0.2 netmask 255.255.255.0 ethl
10.マウント設定部 210
マウント設定部 210は、ネットワーク管理情報における BDVIDEOMOUNTの情報識 別子で指定されている情報をもとに、ネットワークに接続されたネットワークドライブに おけるファイルシステム (NFS)に対し、マウント設定処理を行う。マウント設定処理とは 、 UNIXの mountコマンド等による操作を指す。
[0056] ディレクトリをマウントするという処理は、 UNIX等のファイルシステムにおけるマウント の操作を指す。例えば、計算機 B (クライアント)のファイルシステムにより管理される ディレクトリ Xに、他の計算機 A (サーバ)のファイルシステムにより管理されるディレクト リ Uを組み込むという操作を指す。この操作を行うと、計算機 B上のアプリケーションが 計算機 Aのディレクトリ Uをアクセスする場合、アクセス要求がディレ外リ Xを指定すれ ばよぐ計算機 Aのディレクトリ Uをアプリケーションが指定する必要はなレ、。このように あるディレクトリ Xを他のディレクトリ Uに割り当てる操作は、ディレクトリ Xにディレクトリ U をマウントすると呼ばれている。この操作では、ディレクトリ Xは、 "マウント先のディレク トリ"と呼ばれ、ディレクトリ Uは、 "マウント元のディレクトリ"と呼ばれる。ここで、プラット フォーム部は、 Linux等、家電機器用のリアルタイム OS上で動作するので、マウント設 定部 210は、ネットワークを介して、 mountコマンドを発することで、上述したようなマウ ントを行うことができる。ネットワーク管理情報が図 8 (b)に示すものと仮定すると、マウ ント設定部 210が発行する mountコマンドは以下のようなものになる。
mount - 1 nfs— o nolock— o ro 192.168.0.1 :/home/bdrom/BDVIDEO/BDJO /BDVI DEO/BDJO
mount - 1 nfs— o nolock— o ro 192.168.0.1 :/home/bdrom/BDVIDEO/JAR /BDVID EO/JAR
上記 mountコマンドの処理のうち、前半では、 BD-ROMの/ BDVIDEO/BDJOディレ クトリに、 PCの/ home/bdrom/BDVIDEO/BDJOディレクトリをマウントしており、 BD—RO Mの/ BDVIDEO/BDJOディレクトリがマウント先ディレクトリ、 PCの/ home/bdrom/BDVI DEO/BDJOディレクトリがマウント元ディレクトリとなる。また、後半では、 BD-ROMの/ BDVIDEO/JARアーカイブファイルディレクトリに、 PCの/ home/bdrom/BDVIDEO/JA Rアーカイブファイルディレクトリをマウントしており、 BD-ROMの/ BDVIDEO/JARァー 力イブファイルディレクトリがマウント先ディレクトリ、 PCの/ home/bdrom/BDVIDEO/JA Rアーカイブファイルディレクトリがマウント元ディレクトリとなる。
[0057] 力、かるマウントにより、プラットフォーム部及び再生制御エンジンが認識するファイル システムは、ネットワークドライブ上のファイルシステムと、 BD- ROM上のファイルシス テムとを組合せたもの、つまり、図 9に示したような仮想的なパッケージにおけるフアイ ノレシステムになる。こうすることで、プラットフォーム部は、ネットワークドライブ上の BD- Jアプリケーションが、あたかも、 BD-ROM上に存在するように、認識することができ、 B D-ROM上の AVコンテンツの再生と、プラットフォーム部による BD-Jアプリケーション の実行とを連動させることができる。本実施形態では、 BD-Jアプリケーションが、ブラ ットフォーム部に対して、デバッグのための所定のマウント用 APIをコールすることによ り、マウント設定部 210は、 BD-Jアプリケーションが存在するネットワークドライブに対 して、上述したようなマウントを実行する。
[0058] またネットワーク管理情報において、標準出力関数の出力先は、ログサーバーター ミナルにおけるシリアルポートに設定されているので、プラットフォーム部は、 BD-Jァ プリケーシヨン内の標準出力関数の呼出しにおいて、引き数として指定された値を取 り出し、取り出された値を、実行ログとしてシリアルポートを通じて、ログサーバーター ミナルに送信する。
[0059] 図 11は、 ADK環境における BD-Jアプリケーション実行と、 AVコンテンツ再生とを模 式的に示す図である。本図は、図 4における構成図に、バルーンヘルプを書き加えた ものになっている。このバルーンは、右側がネットワークドライブ、中側が BD_ROM、 左側が仮想パッケージの中身を示す。これらの中身は、図 9に示したものと同等であ る。マウント設定部 210がマウントを行うことにより、仮想パッケージが生成されるので 、ハードディスクに存在する BD-Jアプリケーションや BD-Jオブジェクトが、 BD-ROMに 存在するかのように扱われ、 BD-ROM再生装置 200における再生制御エンジンは、 この仮想パッケージ内の AVコンテンツの再生を行レ、、 BD- ROM再生装置 200におけ るプラットフォーム部力 この仮想パッケージ内の BD-Jアプリケーションを実行するこ とにより、実際、家庭内の再生装置で、 BD-Jアプリケーションが再生されるのと、同じ ような環境で、 BD-Jアプリケーションが実行されることになる。
[0060] 'ADK環境の処理手順
図 12は、 ADK環境の処理手順を示すフローチャートである。まず始めに、ネットヮ ーク管理情報をネットワーク I/F203に設定した上で (ステップ S21)、 PC100上のハー ドディスクにおけるファイルシステム情報を、 BD-ROMにおけるファイルシステム情報 にマウントして、仮想的なファイルシステムを生成する (ステップ S22)。そして、この仮 想的なファイルシステムにおける Index.bdmvを BD-ROMから読み出す。ここで、 Index. bdmvとは、上述したようなタイトルバウンダリのアプリケーションシグナリングを実行す るため、タイトノレと、 BD-Jオブジェクト及び BD-Jアプリケーションとの関連を記載した 情報である (その詳細については、第 6実施形態で述べる)。力、かる Index.bdmvが読み 出されれば、これと、ユーザ操作に基づき、再生すべきタイトルを特定する (ステップ S 23)。
[0061] ステップ S24は、特定されたタイトルが、 BD-Jアプリケーションにより制御されるタイト ルであるか否かの判定であり、もし BD-Jアプリケーションにより制御されるタイトルであ れば、 BD-Jオブジェクト内の ApplicationManagementTableOに基づき、シグナリングを 行レ、、力 BD-Jアプリケーションを、 Javaプラットフォーム部内にロードする (ステップ S 25)。そして BD-Jアプリケーションを実行して、 JPDAによるデバッグを開始する (ステツ プ S26)。もし BD-Jアプリケーションの実行が終了し、タイトルにおけるプレイリストの再 生が終了すれば、ステップ S24に戻って、ステップ S24〜ステップ S26の処理を繰り 返す。
[0062] 上述したような BD— Jタイトルの再生において、プレイリストの再生が終了すれば、そ のプレイリストの再生終了を示すイベントが再生制御エンジンから出力される。 BD-J アプリケーションにおけるイベントハンドラは、かかるイベントに従い、次のタイトルを行 う。一方、プレイリスト再生終了を示すイベントが発行され、タイトルを切り替える際、プ ラットフオーム部は、ログを PC100に送信する。 PC100がかかるログを、受信すること で、タイトル切り替えが正しく行われたかの確認を行うことができる。
[0063] 以上のように本実施形態によれば、実機のプラットフォーム部上で、エラーが発生し た場合における実行ログがデバッグ装置に送信されるので、デバッグ装置上で、エラ 一原因を突止める処理が好適に行われることになり、実機を取り入れた総合テストを 好適に行うことができる。
また本実施の形態によれば、 AVコンテンツを BD-ROMドライブから取得し、アプリケ ーシヨンを、ネットワークドライブ装置から取得することで、アプリケーションを AVコンテ ンッに連動させることができるので、 AV再生制御を行うアプリケーションの動作力 作 成者の意図と異なる動作を行う場合には、デバッグ装置上で解析'修正を行うことが 可能になる。これにより、アプリケーションが BD-ROMに配置されていなくても、効率 的な解析 ·修正を実施することが可能となる。
[0064] (第 2実施形態)
本実施形態は、 ADK環境において、実行ログ出力を行う実施形態に関する。標準 出力関数呼び出しにより実行 Logの出力を行うべき箇所には、以下のものがある。
1)API呼出し時 (AV再生制御用 API、 BD-ROM再生装置についての各種情報取得 /設定 APIなど)に、呼び出し API種別、引数などを出力する。ここでの API呼出しには 、 PlayList再生、 PlayList切換え、 Title切換え、 Subtitle/Audio/Angleなどの切換え、 再生速度/方向等の変更、レジスター値取得/変更などを、再生制御エンジンに行わ せるための APIがある。
[0065] 具体的な Java(TM)プログラムソースコードの記述は、以下のようになる。ソースコー ドのうち、 PlayList再生、 PlayList切換え、 Title切換え、 Subtitle/Audio/Angleなどの切 換え、再生速度/方向等の変更、レジスター値取得/変更のソースコードに、標準出 力関数の呼び出しを記述する。この呼び出しにあたって、イベント名、受信時におけ る詳細パラメータを引数とする。
[0066] 2)各種イベント受信時に、プラットフォーム部が受信したイベント名、受信時におけ る詳細パラメータを出力する。具体例としては、 Keyイベント、再生状態等の変化ィべ ントの受信時に、プラットフォーム部が受信したイベント名、受信時における詳細パラ メータなどがある。具体的には、ソースコードのうち、 Keyイベント、再生状態等の変化 イベントの受信しているイベントリスナ部のソースコードに、標準出力関数の呼び出し を記述する。この呼び出しにあたって、イベント名、受信時における詳細パラメータを 引数とする。
[0067] 3)エラー発生時に、エラーメッセージ、 Stack Traceを出力する。ここでいうエラーと は、 Exc印 tionの発生、 AV再生制御の失敗、 API呼出しの失敗をいう。特に、 API呼出 しに伴うエラー発生時においては、呼び出しの対象となった APIの種別、及び、その A PI呼出し時における引数を実行ログとして送信する。 AV再生制御の失敗時における 実行ログには、現在再生されているプレイリストの番号の他、その再生時点を示す時 刻情報、ユーザによりコールされたメニューのメニュー番号がある。
[0068] 具体的な Java(TM)プログラムソースコードの記述は、以下のようになる。つまり、 Exc 印 tionの発生、 AV再生制御の失敗発生、 API呼出しの失敗発生を条件文とした I戊 を記述して、力、かる条件文が真である場合、エラーメッセージ、又は、 Stack Traceを 引数にして標準出力関数の呼出しを行うよう、 Java(TM)プログラムソースコードを記述 する。
4)アプリ動作のポイントとなる処理実行時に、処理実行が特定可能なメッセージを 出力する。具体的にいうと、タイトルバウンダリで BD-Jアプリケーションのシグナリング を行うにあたって、アプリケーションの動作が変化する時点力 アプリ動作のポイントと なる。つまり、ユーザによりタイトルが選択されて、アプリケーションの実行が開始され るタイミング、タイトルの再生が終了してアプリケーションの実行が終了するタイミング がアプリ動作ポイントとなる。特に、タイトルの再生が終了時には、アプリケーションに より、ルートメニューやタイトルメニューの表示がなされるので、かかる終了時をアプリ 動作ポイントとして、実行ログを送信させれば、アプリケーションの動作検証に役立て ること力 Sできる。
[0069] 具体的な Java(TM)プログラムソースコードの記述は、以下のようになる。つまり、上 述したようなアプリケーションの実行開始部分は、 BD-Jアプリケーションを構成するク ラスファイルのうち、メインルーチンにあたるものの、先頭部分に該当する。同じぐァ プリケーシヨンの実行終了部分は、 BD-ROMLを構成するプログラムのうち、メインノレ 一チンにあたるものの、終端部分に該当する。力かる先頭部分及び終端部分に、標 準出力関数の呼び出しを記述して、表示対象となるメニューの識別子を、その引数と すれば、上述したルートメニューやタイトノレメニュー力 表示対象になつているかどう かを、正しく検証することができる。
1)、 3)の実行ログを出力する場合について、以下説明する。
[0070] この実行ログ出力には、デバッグ用ルーチンが組込まれた状態の BD-Jアプリケー シヨンを、 BD-ROM再生装置 200に実行させて、実機テストを実行すればよい。 ここで BD-Jアプリケーションに組込まれたデバッグルーチンとは、 APIを通じて、プラ ットフォーム部に対して、プレイリストの再生を命じると共に、プラットフォーム部におい て例外処理 (Exception)が発生した際、メッセージやメモリダンプを出力するとレ、うもの である。 Javaの仮想マシンにおけるスタックには、関数呼び出しの情報、変数の情報 が先入れ後出し式に蓄積される。本実施形態では、これらから関数呼び出しのダン プ (Stack Trace)を生成して、実行ログとして出力する。
[0071] プラットフォーム部における例外処理は、予定外のイベントが発行された場合、又は 、規定外のパラメータを使用したシステムコールがなされた場合に発生する。本実施 形態で述べるデバッグ用ルーチンは、図 13のような LOG出力用 APIを前提にしてい て、図 15の形態で、 BD-Jアプリケーションに組込まれているので、プラットフォーム部 で Exc印 tionが発生した際起動され、 Exc印 tion発生時におけるエラーメッセージゃメ モリダンプを、標準出力関数に出力することができる。こうして標準出力関数に出力さ れるメモリダンプを、本実施形態では、実行ログとして扱う。
[0072] 以降、標準出力関数による Log出力用 APIについて説明する。図 13は、 Log出力用 APIである DebugLogについてのクラス構造体を示す図である。
本図のクラス構造体は、整数型のパブリック変数 ALL、 FINEST, FINER, FINE, INF 0、 WARNING, ERROR, OFF, debugLevelを、メンバーとしてもつ。外部からコール すること力 Sできるメソッドとしては、 setLevelメソッド、 printLogメソッド、 printExceptionメ ソッド力 Sある。
[0073] setLevelメソッドは、 newLevelを引数として受け付けて、この newLevelを debugLevel に代入し (debugLevel = newLevel;),標準出力関数である System.out.printlnメソッドを コーノレするとレヽぅものである。このコールにあたって、 "debugLevel set to " + debugL evelを引数にしているので、 debugLevelは、その前に" debugLevel set to "との文字 列が付された状態で表示される。
[0074] printLogメソッドは、 logLevel, Class caller, String messageを引数として受け付けて、 logLevelが debugLevel以下がどう力を半 IJ定し (logLeveK=debugLevel)、もしそうであれ ば、標準出力関数である System.out.printlnメソッドをコールするものである。このコー ノレにあたって、 Ύ + caller. getNameO +つ " + messageを引数にしている。ここで calle r.getNameOは、コール元となった関数の名称を取得するものでなので、かかる caller. getNameで取得された関数名は、前後に括弧 []が付され、その後ろに messageが追加 された状態で表示される。
[0075] printExceptionメソッドは、 logLevel, Class caller, Throwable tを引数として受け付け て、 logLevel, caller, t.getMessageOを引数にして、 printLogのコーノレを行い、 t.printSt ackTraceOのコーノレを行うものである。
図 14 (a)〜(c)は、 setLevelメソッド、 printLogメソッド、 printExc印 tionメソッドの処理 手順を示すフローチャートである。
[0076] ' setLevelメソッド
本図(a)における setLevelメソッドは、 debugLevelに newLevelを設定して (ステップ S3
1)、設定された debugLevelに、 "debugLevel set to"の文字列を付して表示されるべく
、 System.out.printlnメソッドをコールするとレ、う手順から構成される (ステップ S32)。
[0077] ' printLogメソッド
本図(b)における printLogメソッドは、引数にて与えられた logLevelが、 debugLeveは り小さいかどうかを判定して (ステップ S35)、もし小さいならば、コール元のメソッド名(
Caller.getNameO)に、引数で与えられたメッセージを表示すベぐ標準出力関数であ る System.out.printlnメソッドのコールを行い (ステップ S36)、もし debugLeveはり大きい ならば、このコールをスキップするという手順から構成される。
[0078] · printExceptionメソット
本図(c)における printExc印 tionメソッドは、コール元のクラス名と、引数にて与えら れた Exc印 tionのメッセージ名とを表示するよう、 printLogメソッドをコールして (ステツ プ S33)、引数で与えられた Exc印 tionの StackTraceメソッドをコールするものである (ス テツプ S 34)。
[0079] 図 15は、 Log出力 APIを利用した、 Java(TM)プログラムソースコードの一例を示す。
図中の fhncは、 playListld, markldを引数として受け付けて、 tryメソッドをコーノレするも のである。
tryメソッドは、 PlayList再生の再生を命じて、その結果を標準出力関数に出力する ものである。具体的には引数 playListld, markldを用いて、 PlayPLメソッドをコールする ことで JMFPlaybackControl、つまり、 JMFプレーヤインスタンスによる再生制御をプラ ットフォーム部に実行させるものである (PlayPL( plavListld, markld ))。その後、 printL og関数のコールを行う (printLog(DebugLog.INFO, this, "PlayPL PL:" + playListld + "mark:" + markld ))。ここで、 PlayPLメソッドのコール時における引数は、 playListld, m arkldであるので、この引数に示されたプレイリストのうち、 markldで指示された時点か ら、プレイリストの再生は開始される。
[0080] printLog関数のコール時における引数として、 DebugLog.INFO, thisを含んでいる ので、かかる printLog関数のコールにあたって、コール元となる関数の名称" try"が G UIに表示されることになる。
一方 printLog関数のコール時における引数は、 "PlayPL PL:" + playListld + "mark ':' + markldを含んでいるので、 playListldは、その前に" PlayPL PL:"とレ、う文字列が 付された状態で表示される。 markldは、 "mark:"という文字列が付された状態で表示 される。シリアルポートを通じて、これら力 実行ログとしてデバッグ装置に出力される ことになる。
[0081] catch (Exception e)は、例外処理が発生した際に、実行されるものであり、その内容 は、 DebugLog.ERRORを引数にして、 printExceptionをコールするというものである。 図 16は、 tryメソッドの処理手順を示すフローチャートである。 playListID,MarkIdを引 数にして、 PlayPLメソッドのコールを行レ、(ステップ S41)、 debugLevelのレベルを" INF 0"に設定して、このメソッドで再生されるプレイリストのログを出力するための PrintLog メソッドをコールする (ステップ S42)。 playListIDが =3であり、 Markldが =2である場合、 ログサーバーターミナルのコンソールには、ステップ S42の右脇に示すように、 [try]pl ayPL PL: 3 mark:2という文字列が表示される。
[0082] ステップ S43は、 Exceptionが発生したかどうかの判定であり、発生しなければ、本フ ローチャートを終了するが、もし発生すれば、 debugLevelのレベルを" ERROR"に設 定して、このメソッドで発生した Exc印 tionのエラーメッセージと、 StackTrackを出力す るための PrintExc印 tionメソッドのコールを行う (ステップ S44)。そうすると、このステツ プ S44の右脇に示すように、ログサーバーターミナルのコンソールには、 2段表記で、 [try]エラーメッセージと、スタックトレースとが表示される。
[0083] このデバッグルーチンのように、要所となるプログラムソースの位置に、標準出力関 数を記載することで、任意の位置での状態監視が可能となる。但し、出力関数の実行 自体に時間が必要になるため、標準出力関数の有無によって実行タイミングに影響 がでることには留意が必要となる。
(第 3実施形態)
本実施形態は、 BD-ROM再生装置における内部状態を示す変数の読み書きを実 現する実施形態である。
[0084] BD-Jアプリケーションには、割り込み命令と、モニタプログラムとが組み込まれてい る。この割り込み命令は、シリアルポートへとコマンドが入力すると、 BD-Jアプリケーシ ヨン力、らモニタリングプログラムへと分岐するというものである。
モニタリングプログラムは、シリアルポートからのコマンド入力待ちを行レ、、もしシリア ルポートを介してコマンドが入力されると、そのコマンドに従った処理を行うというプロ グラムである。
[0085] ここで、入力される可能性があるコマンドには、読出コマンド、書込コマンドがある。
読出コマンドは、第 1オペランドに、読み出しの対象となる PSR番号を記述することが できる。書込コマンドは、第 1オペランドに、書き込みの対象となる PSR番号を記述す ること力 Sでき、第 2オペランドに即値を記述することができる。
読出コマンドの入力時において、モニタプログラムは、その第 1オペランドに指定さ れたレジスタ番号の PSRの格納値を読み出すよう、再生制御エンジンに対して、再生 制御エンジンのコールを行う。力かるコールに対するレスポンスとして、 PSR格納値が 読み出されれば、その PSR格納値を引数にした標準出力関数のコールを行うことによ り、この PSR格納値をログサーバーターミナルに送信する。こうすることで、ログサーバ 一ターミナルは、 PSR格納値をシリアルポートを介して取得することができる。
[0086] 書込コマンドの入力時において、モニタプログラムは、その第 1オペランドに指定さ れたレジスタ番号の PSRに対して、第 2オペランドに指定された即値を書き込むよう、 再生制御エンジンに対して、再生制御エンジンのコールを行う。かかるコールに対す るレスポンスとして、書き込みの成否を示すイベントが再生制御エンジンから出力され れば、そのイベントに示される書き込み成否を引数にした標準出力関数のコールを 行うことにより、この PSR格納値をログサーバーターミナルに送信する。こうすることで、 ログサーバーターミナルは、 PSR格納値をシリアルポートを介して取得することができ る。
[0087] 以上のように本実施形態によれば、 PSRに対する読み書きを、 BD-Jアプリケーション に組込まれたモニタプログラムに行わせ、その結果を、シリアルポートを通じてログサ 一バーターミナルに送信するので、ログサーバーターミナルは、 BD-Jアプリケーショ ンに組込まれたモニタプログラムを通じて、 PSRの値を自由に操作することができる。
(第 4実施形態)
本実施形態では、 IDE環境である、デバッグ装置の内部構成について説明する。図 1 7は、デバッグ装置のハードウェア構成を示す図である。本実施形態において PC 1 00は、本図に示すように、ネットワークドライブ 101、ブート ROM 102、 RAM 103 ,入 出力 1/0104、 MPU 105 ,ネットワーク I/F106力も構成される。
[0088] .ネットワークドライブ 101
ネットワークドライブ 101は、 ADK環境に供される BD-Jアプリケーション、 BD-Jォブ ジェタトを格納しておくためのハードディスクであり、 BD-ROM再生装置 200からはネ ットワークドライブとして認識される。
•ブート ROM 102
ブート ROM 102は、オペレーションシステムのブートストラップを行うためソフトウェア コードを格納している。
[0089] - RAM 103
RAM 103には、オペレーションシステムを構成するカーネル、ハンドラ部や、 IDE環 境において、 BD-Jアプリケーションを作成するための各種プログラムがロードされる。 •入出力 I/O 104
入出力 I/O 104は、キーボード、マウスといった入力機器や、ディスプレイのような出 力機器を接続して GUIを構成する。
[0090] - MPU 105
MPU 105は、 RAM 103にロードされたソフトウェアを実行する。
'ネットワーク I/F106
ネットワーク I/F106は、ネットワーク上でのデータ入出力を行う。
•HDD 107 HDD107は、ォーサリングシステムから取得したタイトル構造情報を格納しておくハ ードディスクドライブである。
[0091] タイトル構造情報とは、木構造を用いて、 BD-ROMにおける再生単位の関係、例え ば、タイトル、 Movieオブジェクト、 BD-Jオブジェクト、プレイリスト間の関係を規定する 情報である。具体的にいうと、タイトル構造情報は、制作しょうとする BD-ROMの「ディ スク名」に対応するノード、その BD-ROMにおいて、 Index.bdmvから再生可能となる「 タイトル」に対応するノード、そのタイトルを構成する「Movieオブジェクト及び BD-Jォ ブジェクト」に対応するノード、当該 Movieオブジェクト及び BD-Jオブジェクトから再生 される「プレイリスト」のノードを規定して、これらノードを、エッジ (辺)で結び付けること で、タイトル、 Movieオブジェクト、 BD-Jオブジェクト、プレイリスト間の関係を規定する 。タイトル構造情報においてプレイリストは、 00001.mpls,00002.mplsというような、実際 の BD-ROMへの記録時に利用される、具体的なファイル名ではなぐ MainPlaylist, M e皿 Playlistというような、抽象的な名称で記載される。これは、 BD-ROM向けのデータ と、 DVD-Video向けのデータとを同時に作成する場合、かかる再生単位の構造は、 抽象的に表現されていることが望ましいからである。
[0092] -HDD108
HDD108は、オペレーションシステムのカーネル、ハンドラ部や、 IDE環境のための 各種ソフトウェア、 IDクラスソースコードや、 Java(TM)プログラムソースコード、作成途 上の BD-Jオブジェクトを格納しておく HDDである。
IDクラスソースコードとは、 Java(TM)プログラムが最終的にディスク上に作成される In dex.bdmvや PlayList情報にアクセスするための Java(TM)クラスライブラリのソースコー ドである。 IDクラスソースコードは、プレイリスト番号を指定することでディスクから所定 のプレイリストファイルを読み込むコンストラクタをもち、このコンストラクタを実行して作 成したインスタンスを利用することで AVClipの再生等が実現される。 IDクラスライブラリ の変数名は、 MainPlaylist, MenuPlaylistのように、タイトル構造情報で定義されるプレ イリストノードの名前を用いて定義される。このとき用いるプレイリスト番号は、ダミーの 番号である。この IDクラスソースコードに基づき、コンパイルが生成する Java(TM)クラ スライブラリを IDクラスライブラリと呼ぶ。 以上が、 PC100のハードウェア的な構成要素である。以降、ソフトウェア的な構成要 素について説明する。図 18は、 IDE環境のソフトウェア構成を示す図である。本図に 示すように、 IDE環境は、 IDクラス作成部 111、 &0^1)プログラミング部112、 BD-J オブジェクト作成部 113、 Java(TM)インポート部 114、 ID変換部 115、 Java(TM)インポ ート部 116、ログサーバターミナノレ 117、 BD- Jシミュレータ 118力、ら構成される。
1. IDクラス作成部 111
IDクラス作成部 111は、 HDD 107に格納されたタイトル構造情報を利用して IDクラ スソースコードを作成し、 HDD108に格糸内する。
2. Java(TM)プログラミング部112
Java(TM)プログラミング部112は、 GUI等のユーザインターフェースを通じて、ユー ザからの編集操作に従って、 Java(TM)プログラムのソースコードを作成し、 Java(TM) プログラムソースコードを HDD108に書き込む。この Java(TM)プログラムソースコード は、 BD-Jアプリケーションの元になるのだが、かかる Java(TM)プログラムを、 BD-Jァプ リケーシヨンとして作成するには、 Index.bdmv、プレイリストといった、 BD-ROM特有の 情報を参照せねばならなレ、。これら、 BD-ROM特有の情報に関する参照部分の記述 には、上述したような IDクラスライブラリが用いられる。
3. BD-Jオブジェクト作成部 113
BD-Jオブジェクト作成部 113は、 Java(TM)プログラミング部 112で作成した Java(TM )プログラムソースコードと、 IDクラスソースコードとを元に、 BD-Jオブジェクト生成情報 を作成する。 BD-Jオブジェクト生成情報とは、最終的に BD-ROMに記録されるべき B D-Jオブジェクトの雛形となる情報であり、再生すべきプレイリストを、 00001.mpls,0000 2.mplsというような具体的なファイル名ではなぐ IDクラスライブラリで定義された変数 名を用いて、指定している。
4. Java(TM)インポート部 114
Java(TM)インポート部 114は、 BD-Jオブジェクト作成部 113によって作成された Jav a(TM)プログラムソースコード、 IDクラスソースコード、 BD-Jオブジェクト生成情報をィ ンポートする。 Java(TM)インポート部 114は、タイトル構造情報を利用し、インポートす る Java(TM)プログラムソースコード、 IDクラスソースコード、 BD-Jオブジェクト生成情報 と、それらのコード及び情報がどの BD-Jオブジェクトに対応するのかの関連付けを行 レ、、タイトル構造情報の BD-Jオブジェクトノードの BD-Jオブジェクト生成情報を設定 する。
5.ID変換部 115
ID変換部 115は、 Java(TM)インポート部 114によって、インポートされた IDクラスソ ースコードを、タイトル番号、プレイリスト番号に変換する。また、 ID変換部 115は、 BD -Jオブジェクト生成情報についても、 BD-Jオブジェクト内で定義されるプレイリスト名 が、実際のディスク上のプレイリスト番号と一致するよう変換する。
6. Java(TM)ィンポート部116
&0^)プログラムビルド部116は、 ID変換部 115によって変換された IDクラスソー スコードと、 Java(TM)プログラムソースコードとに対してコンパイル処理を行って、 BD- Jオブジェクト、及び、 BD-Jアプリケーションを出力する。ここで出力される BD-Jアプリ ケーシヨンは、 JARアーカイブファイルの形式になっている。
Java(TM)インポート部 116では、複数のコンパイルスィッチの設定が可能であり、 A DK環境向けのコンパイルスィッチを使用した場合、図 15に示した Log出力用 APIや、 この Log出力用 APIの利用例たる部分がコンパイルされる。
IDE環境向けのコンパイルスィッチを使用した場合、 IDクラスソースコードが、タイト ル番号、プレイリスト番号に変換されないまま、コンパイルされる。これは、後述するよ うに、シミュレートで使用される抽象化コンテンツは、 MainPlaylist, MenuPlaylistのよう に、タイトル構造情報で定義されるプレイリストノードの名前を用いて定義されている からである。
7.ログサーバターミナル 117
ログサーバターミナル 117は、再生装置から受信したログを、ウィンドウ上に表示す る。ログサーバーターミナルによるログのウィンドウ表示は、図 5のようなウィンドウ表示 と同一の画面上でなされるので、ユーザは、このログサーバーターミナルによるログの 表示を見ながら、ソースプログラムコードの不具合を解析し、修正すること力できる。
8. BD-Jシミュレータ 118
BD- Jシミュレータ 118は、 BD- Jアプリケーションのシミュレートを実行する。 [0095] 以上が、 IDE環境におけるソフトウェア構成である。続いて、 BD-Jシミュレータ 118の 内部構成について、より詳細に説明する。
図 19は、 BD-Jシミュレータ 118の内部構成を示す図である。本図に示すように、ソ ース Viewerl 21、 PC上プラットフォーム部 122、トレーサ 123、抽象ィ匕コンテンツ 124 、抽象化コンテンツ作成部 125、再生制御エンジンスタブ 126、シミュレーション情報 127、 AV再生画面表示部 128から構成される。以降、この BD-Jシミュレータ 118を構 成する各構成要素について、説明する。
[0096] 1.ソース Viewerl 21
ソース Viewerl21は、 BD-Jアプリケーションのソースリスト表示を行うと共に、ユーザ 力、らの操作に従レ、、ソースコードの作成や、作成されたソースコードに対する修正を 実行する。
2.PC上プラットフォーム部 122
PC上プラットフォーム部 122は、 PC100上における Javaプラットフォーム部であり、 P C100上において BD-Jアプリケーションを実行する。
2.トレーサ 123
トレーサ 123は、実行された動作、レジスタ、変数値などを出力するソフトウェアであ る。このトレーサは、ブレークポイント設定や、ワンステップ実行、スナップショット機能 を有する。スナップショット機能は、特定の機能を実行したときや、特定の条件だけ、 レジスタの値や変数値、実行結果を出力する機能である。ユーザは、これらの処理を 組み合わせることで、変数値を書き換えた上でのアプリケーション実行など、様々な デバッグ手法を実行することができる。
3.抽象化コンテンツ 124
抽象化コンテンツ 124は、シミュレートに使用される AVコンテンツの代替品である。 ここで抽象化コンテンツ 124力 BD-ROMに記録されるべき AVコンテンツとどう違うか とレヽうと、 BD- ROMにおける AVコンテンツ力 BD- ROM応用層規格におけるシンタツ タスに従って、記述されているのに対して、抽象化コンテンツ 124は、力、力、る BD- RO M応用層規格のシンタックスよりも抽象度が高レ、シンタックスで記述されてレ、る点であ る。つまり、 MainPlaylist, MenuPlaylistのように、タイトル構造情報で定義されるプレイ リストノードの名前を用いて、抽象化コンテンツ 124の構成要素は特定される。この抽 象化コンテンツは、 1つまたは 2つ以上のプレイリストから構成されている。一つのプレ イリストは、 1つまたは 2つ以上のチャプターに分けることができ、任意の場所にプレイ リストマークと呼ばれる論理的な印が設定されている。ここで抽象化コンテンツにおい て各プレイリストは、映像の解像度と、映像のエンコード種別と、映像のフレームレート と、映像の長さと、プレイリストと組み合わされて再生することができる音声ストリーム数 と、プレイリストとあわせて表示することができるサブタイトル数とから特定され、ピクチ ャインピクチャを実現する。このピクチャインピクチャは、親画面、子画面のそれぞれ に、動画像を表示させて、再生するという機能である。
4.抽象化コンテンツ作成部 125
抽象化コンテンツ作成部 125は、プレイリスト構成メニュー 501を表示して、かかるメ ニューに対するユーザ操作に基づいて、抽象化コンテンツを作成する。
i)プレイリスト構成メニュー 501
図 20は、プレイリスト構成メニュー 501の一例を示す図である。本図に示すように、 プレイリスト構成メニュー 501は、複数のプレイリストパネル 502、キャンセルボタン、 決定ボタンから構成される
ii)プレイリストパネル 502
プレイリストパネル 502は、映像を構成するそれぞれのプレイリストの内容を視覚的 に表現してユーザ操作に供する GUI部品であり、タブを付した状態で、重ね合わされ て表示される。このような重合せ表示において、何れかのタブがクリックされれば、タリ ックされたプレイリストパネル 502は、全面表示され、それまで全面表示されたプレイリ ストパネルは、その背後に回る。
プレイリストパネル 502は、抽象化コンテンツの各項目につレ、てユーザーから入力 を受け付けることにより抽象化コンテンツの設定を行うための GUIであり、以下表を含 む。
•映像属性表 hi
映像属性表は、見出し欄と、これに対応する入力欄との組みを用いて表現される。 見出し欄は、『解像度』、『エンコード方式』、『フレームレート』といった映像属性の名 称入力を、ユーザから受け付けるものである。ユーザは、かかる見出し欄をカーソル で指示してキー入力を行うことで、力かる映像属性の名称を規定することができる。入 力欄は、映像属性の具体的な設定を、受け付けるものであり、かかる入力欄をカーソ ルで指示して、キー入力をすることで、プレイリストの構成要素には、具体的な値が与 えられる。本図の一例では、『解像度』が" 1920 X 1080"、『エンコード方式』が" MPEG -2"、『フレームレート』が" 24"と規定されていることがわかる。
'ストリーム表 h2
ストリーム表は、見出し欄と、これに対応する入力欄との組みを用いて表現される。 見出し欄は、『音声ストリーム数』、『字幕ストリーム数』というように、映像と共に再生さ れるストリームの名称入力を、ユーザから受け付けるものである。ユーザは、かかる見 出し欄をカーソルで指示してキー入力を行うことで、力、かる音声ストリーム数、字幕スト リーム数といった名称を規定することができる。入力欄は、ストリーム数の具体的な設 定を、受け付けるものであり、かかる入力欄をカーソルで指示して、キー入力をするこ とで、プレイリストの構成要素には、具体的な値が与えられる。本図の一例では、『音 声ストリーム数』が" 2本"、『字幕ストリーム数』が" 3本"であると規定されている。
'チャプター表 h3
チャプター表は、タイムコード欄と、これに対応するチャプター名欄との組みを用い て表現される。タイムコードネ闌は、 00:00:00:00、 00:30:00:00^01 :50:00:00,01 :59:25:0 0といったといったタイムコードの数値入力を、ユーザ力 受け付けるものである。ユー ザは、力かるタイムコード欄をカーソルで指示してキー入力を行うことで、かかるタイム コードを規定すること力 Sできる。チャプター名欄は、チャプターの具体的な名称設定 を、受け付けるものであり、かかるチャプター名欄をカーソルで指示して、キー入力を することで、チャプターには、具体的な名称が与えられる。本図の一例では、 "Openin g""Battle" "Ending"といった名称が与えられていることがわ力る。
'マーク表 h4
マーク表は、タイムコード欄と、これに対応するマーク名欄との組みを用いて表現さ れる。タイムコード欄は、 00:02: 14:00、 00:05:54:00〜01 :25: 10:00, 01 :55: 10:00といつ たといったタイムコードの数値入力を、ユーザから受け付けるものである。ユーザは、 力かるタイムコード欄をカーソルで指示してキー入力を行うことで、力かるタイムコード を規定することができる。マーク名欄は、マークの具体的な名称設定を、受け付ける ものであり、かかるマーク名欄をカーソルで指示して、キー入力をすることで、マーク には、具体的な名称が与えられる。本図の一例では、 Title Display,Prologue finish, C G- Effect Interview, Ending Startとの名称が与えられている。
また、プレイリスト構成メニュー 501には、音声詳細設定ボタン 503、字幕詳細設定 ボタン 504、チャプター追加ボタン 505、マーク追加ボタン 506がある。
iii)音声詳細設定ボタン 503
音声詳細設定ボタン 503は、図 21 (a)に示すような音声ストリーム構成メニュー 601 aの表示要求をユーザから受け付けるための GUI部品である。音声ストリーム構成メニ ユー 601aは、音声の詳細設定をユーザから受け付ける GUIである。この音声の詳細 は、番号欄と、これに対応する名称欄との組みを用いて表現される。番号欄は、再生 可能な音声の番号入力 (図中の #01,#02)を受け付けるものである。名称欄は、音声の 抽象的な名称 (Japanese,English)を、受け付けるものであり、かかる入力欄をカーソル で指示して、キー入力をすることで、音声の詳細が規定される。
[0098] また本画面では、「キャンセル」ボタン、「決定」ボタンをあわせて表示して、これら画 面上での設定を、シミュレーションに反映させるかどうかを、ユーザに選択させるよう にしている。
iv)字幕詳細設定ボタン 504
字幕詳細設定ボタン 504は、図 21 (b)に示すような字幕ストリーム構成メニュー 601 bの表示要求を受け付けるための GUI部品である。字幕ストリーム構成メニュー 601b は、字幕の詳細設定をユーザから受け付ける GUIである。この字幕の詳細は、番号欄 と、これに対応する名称欄との組みを用いて表現される。番号欄は、再生可能な字幕 の番号入力 (図中の #01,#02,#03)を受け付けるものである。名称欄は、字幕の抽象的 な名称 (Japanese,English,Japanese [吹替])を、受け付けるものであり、かかる入力欄を カーソルで指示して、キー入力をすることで、字幕の詳細が規定される。
[0099] また本画面では、「キャンセル」ボタン、「決定」ボタンをあわせて表示して、これら画 面上での設定を、シミュレーションに反映させるかどうかを、ユーザに選択させるよう にしている。 このパネルを介した入力により、アプリケーションと連動するプレイリスト の詳細が規定されるのである。
これらの GUIに対するユーザ操作に基づき、抽象化コンテンツ 124を作成すること ができるので、プログラマは、思いのままに、 BD-Jアプリケーションのデバッグに用い られる抽象化コンテンツの仕様を構成することができる。以上が、抽象化コンテンツ作 成部 125についての説明である。
[0100]
5.再生制御エンジンスタブ 126
再生制御エンジンスタブ 126は、 AVデータォーサリング完了前であって、 AVデー タがなレ、状態で PC上でのデバッグを実行するものである。従って再生制御エンジン スタブ 126は、 BD-Jアプリケーションに対して、以下の項目を提供する。
[0101] - AV再生処理
-再生状態変化 (停止、トリック再生等)などに起因するイベント発生
- PSRの設定値や、 Persistent領域の格納内容等、 BD-ROM再生装置が保持して いる情報
これにより、主による Graphic表示処理、 Keyイベント処理などの動作確認を実施す ると同時に、 AV再生等シミュレーション対象の処理については、そのアルゴリズム(口 ジック)について確認することができる。一般に、 BD-ROM再生装置の標準モデルは 、再生制御エンジン部上に、 BDJプラットフォーム部が存在するというレイヤ構成にな つている。この再生制御エンジン部は、 HD画像の再生を前提にしたハイエンドなもの なので、一般の PC100上での実現が難しぐこの代わりとして、 PC100には、再生制 御エンジンスタブ 126が設けられている。
[0102] ここで再生制御エンジンスタブ 126は、再生制御 APIのコールがなされた場合、コー ルされた再生制御エンジンの解析を行レ、、解析結果に基づいて、シミュレーション情 報の変更、あるいは、シミュレーション情報からの情報取得を行う。再生エミユレーショ ン情報に変更が発生すると、再生状態変化の通知を行う。このとき発生した変更のす ベてをに対して通知する必要はなぐ変更内容や再生状態に基づレ、て通知する内容 を動的に変更させる。 6.シミュレーション情報 127
シミュレーション情報 127は、例えば、シミュレートにおける動作条件を、再生制御 エンジンスタブ 126に与えるものであり、『現在時点情報』、『動作状態情報』、『画面 配置情報』、『音声出力情報』、『字幕表示情報』を含む。これらは、再生制御ェンジ ンにおいて、 PSRの設定値として規定されているものである。
[0103] 『現在時点情報』には、例えば、再生ストリーム上での再生位置を示す再生タイムコ ードと、再生中のプレイリストを特定するプレイリスト番号と、再生対象の映像のチヤプ ター番号と、プレイリストマーク番号とが含まれる。
『動作状態情報』には、例えば、再生処理が再生停止、通常再生、特殊再生、再生 一時停止のいずれの状態にあるかを示す再生状態と、時間軸に従って映像が再生 されてレ、るか時間に逆行して映像が再生されてレ、るかを示す再生方向と、映像の速 度を示す再生速度とが含まれてレ、る。
[0104] 『画面配置情報』には、例えば、画面上の擬似再生映像の表示位置を示す再生位 置と、画面上に表示される映像のサイズと、再生中の映像のスケーリング倍率を示す スケール情報とが含まれる。
『音声出力情報』には、例えば、音声ストリームの再生音量と、再生中の音声ストリ ームを特定する音声ストリーム番号とが含まれる。字幕表示情報には、例えば、サブ タイトルの表示状況と、表示中のサブタイトル番号とが含まれる。
7. AV再生画面表示部 128
AV再生画面表示部 128は、シミュレーション情報、及び、抽象化コンテンツ 14に基 づいた表示を行う。上述したように、抽象化コンテンツ 124、シミュレーション情報 127 は、 BD-ROMコンテンツや、再生制御エンジンにおける状態設定の代替物に過ぎな いので、 AV再生画面表示部 128による表示内容は、例えば単色で塗りつぶした矩 形を表示するという、擬似的なものに過ぎない。
[0105] ただし、シミュレーション情報に変更が発生した場合には、表示中の内容にその変 更を反映することで、変更に対する影響が、画面上に現れるようにする。
図 22は、 AV再生画面表示部 128による表示内容の一例を示す図である。本図に おける表記を解説すると、矩形 701aは再生映像を表示する領域を表しており、矩形 702aは、ピクチャインピクチヤにおけるプライマリビデオの表示位置とサイズを表し、 矩形 703aは、ピクチャインピクチヤにおけるセカンダリビデオの表示位置とサイズを 表してレ、る。文字列 704aはプライマリビデオの再生と合わせて表示されてレ、る字幕 の表示を表している。
8.シミュレーション環境更新部 129
シミュレーション環境更新部 129は、ユーザーから指定に基づいてシミュレーション 情報を対話的に更新する。シミュレーション環境更新部 129は、図 23 (a)に示すよう な現在時点メニュー 701b、図 23 (b)に示すような動作状態セットアップメニュー 701b 、図 24 (a)に示すような画面配置セットアップメニュー 801a、図 24 (b)に示すような音 声出力セットアップメニュー 801b、図 24 (c)に示すような字幕表示セットアップメニュ 一 801cを表示して、これらの画面に対するユーザ入力を受け付けることで、当該対 話的な更新を実現する。
[0106] 力かる対話的な更新は、 AV再生画面表示部 128による再生表示中においても、実 行することができ、 AV再生画面表示部 128による再生がなされている状態で、リアル タイムに、再生状況を変更することができる。
a.現在時点セットアップメニュー 701b
図 23 (a)に示す現在時点セットアップメニュー 701bは、見出し欄と、これに対応す る入力欄との組みを用いて、現在時点を表現している。見出し欄は、『タイムコード』、 『カレントプレイリスト』、『カレントチャプター』、『カレントマーク』といった情報要素を用 いて現在時点を表すものである。入力欄は、映像属性の具体的な設定を、受け付け るものであり、力かる入力欄をカーソルで指示して、キー入力をすることで、現在時点 として、具体的な値を設定することができる。本図の一例では、『タイムコード』が 01 :25 :43: 10、『カレントプレイリスト』が 00001[Main Movie],『カレントチャプター』が #02[Batt le]、『カレントマーク』が CG-Effect Interviewとして設定され、現在時点が表現されて レ、ることがわかる。
[0107] また本画面では、「キャンセル」ボタン、「変更反映」ボタンをあわせて表示して、これ ら画面上での設定を、シミュレーションに反映させるかどうかを、ユーザに選択させる ようにしている。 b.動作状態セットアップメニュー 701c
図 23 (b)に示す動作状態セットアップメニュー 701cは、見出し欄と、これに対応す る入力欄との組みを用いて、再生動作を表現している。見出し欄は、『再生状態』、『 再生方向』、『再生速度』といった情報要素を用いて再生動作の状態を表すものであ る。入力欄は、映像動作の具体的な設定を、受け付けるものであり、かかる入力欄を カーソルで指示して、キー入力をすることで、再生動作の状態として、具体的な値を 設定することができる。本図の一例では、『再生状態』が"特殊再生"、『再生方向』が "順方向"、『再生速度』が"早送り"といった情報を用いて再生動作の状態を表してい る。
[0108] また本画面では、「キャンセル」ボタン、「変更反映」ボタンをあわせて表示して、これ ら画面上での設定を、シミュレーションに反映させるかどうかを、ユーザに選択させる ようにしている。
c.画面配置セットアップメニュー 801a
図 24 (a)に示す画面配置セットアップメニュー 801aは、見出し欄と、これに対応す る入力欄との組みを用いて、表示位置を表現している。見出し欄は、『サイズ』、『スケ 一ル』、『透明度』、『左上座標』といった情報を用いて表示位置を表すものである。入 力欄は、映像動作の具体的な設定を、受け付けるものであり、かかる入力欄をカーソ ルで指示して、キー入力をすることで、表示位置として、具体的な値を設定することが できる。本図の一例では、『サイズ』が 1920 X 1080、『スケール』が 1.0倍、『透明度』が 0%、『表示座標』が (0, 180)に設定されていることがわかる。
[0109] また本画面では、「キャンセル」ボタン、「変更反映」ボタンをあわせて表示して、これ ら画面上での設定を、シミュレーションに反映させるかどうかを、ユーザに選択させる ようにしている。
d.音声出力セットアップメニュー 801b
図 24 (b)に示す音声出力セットアップメニュー 801bは、見出し欄と、これに対応す る入力欄との組みを用いて、音声設定を表現している。見出し欄は、『ストリーム選択 』、『左前の音量』、『中央前の音量』、『右前の音量』、『左後の音量』、『右後の音量』 、『左右の音量』といった情報を用いて音声設定を表すものである。入力欄は、音声 出力の具体的な設定を、受け付けるものであり、かかる入力欄をカーソルで指示して 、キー入力をすることで、音声出力として、具体的な設定をすることができる。本図の 一例では、『ストリーム選択』として #01 [English]力 『左前の音量』として" 15"が、『中 央前の音量』として" 20"が、『右前の音量』として" 15"が、『左後の音量』として" 10" が、『右後の音量』として" 10"が、『左右の音量』として、 "10"が設定されていることが わ力る。
[0110] また本画面では、「キャンセル」ボタン、「変更反映」ボタンをあわせて表示して、これ ら画面上での設定を、シミュレーションに反映させるかどうかを、ユーザに選択させる ようにしている。
e.字幕表示セットアップメニュー 801c
図 24 (c)に示す字幕表示セットアップメニュー 801cは、見出し欄と、これに対応す る入力欄との組みを用いて、字幕設定を表現している。見出し欄は、『表示状態』、『 ストリーム選択』といった情報を用いて字幕設定を表すものである。入力欄は、字幕の 具体的な設定を、受け付けるものであり、かかる入力欄をカーソルで指示して、キー 入力をすることで、字幕設定として、具体的な値を設定することができる。本図の一例 では、『表示状態』として"表示有り"が、『ストリーム選択』として" #01 [Japanese]"が設 定されていることがわかる。また本画面では、「キャンセル」ボタン、「変更反映」ボタン をあわせて表示して、これら画面上での設定を、シミュレーションに反映させるかどう かを、ユーザに選択させるようにしている。
[0111] 以上のメニューを介して、シミュレートにおける動作条件を設定したり、変更すること ができるので、 BD-Jアプリケーションの単体テストの効率を高めることができる。 以降、ソフトウェアによる再生制御エンジンスタブ 126の実装について説明する。再 生制御エンジンスタブ 126は、図 25〜図 28のフローチャートの処理手順を、コンビュ ータ記述言語で記述することにより、コンピュータ読み取り可能なプログラムを作成し て、これを MPUに実行させることで、再生装置内に実装することができる。
[0112] 本フローチャートのステップ S101〜ステップ S104は、ループ処理を構成している 。本ループ処理は、再生制御 APIのコールがなされたか (ステップ S101)、再生状況 を変更する要求を受け付けたか (ステップ S102)の判定を行レ、、現在時点の更新処 理を行う (ステップ S103)という処理を、ステツステップ S104が Yesと判定されるまで繰 り返すものである。
[0113] このステップ S104は、本ループ処理における動作終了判定であり、かかる動作終 了が Yesと判定されるまで、上述したようなループ処理は、繰り返し実行される。
図 26は、現在時点の更新処理の処理手順を示すフローチャートである。本フロー チャートは、動作状態に基づき、現在時点を示すタイムコードを、インクリメント又はデ クリメントして (ステップ S105)、ステップ S106に移行する。ステップ S106は、現在時 点において、プレイリスト又はチャプター又はマークの切り替わりが発生したかどうか の判定であり、発生しなければステップ S107をスキップする力 S、発生すれば、ステツ プ S107におレ、て、カレントプレイリスト、カレントチャプター、カレントマークを更新し た上で、ステップ S 108に移行する。
[0114] ステップ S108は、現在時点が、オーディオ又は字幕又はセカンダリビデオの再生 時点に到達したかどうかの判定であり、到達しなければステップ S109をスキップする 、到達すれば、ステップ S109において、 AV再生画面を更新した上で、前図のフロ 一チャートにリターンする。
再生制御 APIのコールがなされた場合(ステップ S101が Yes)には、再生制御 APIコ ールの解釈を行い(ステップ S 110)、シミュレーション情報の変更処理を行う (ステップ Sl l l)。再生制御 APIのコールに対する応答を、アプリケーションに対して送信して( ステップ S112)、ステップ S113において、アプリケーションに対して状態変化通知処 理を行い、ステップ S101に戻る。
[0115] 再生制御 APIコールを受け付けなかったが(ステップ S101が No)、ユーザー操作に よる再生状況を変更する要求を受け付けた場合 (ステップ S102が Yes)、ステップ SI 1 4において、シミュレーション情報の更新処理を行レ、、ステップ S115において、アプリ ケーシヨンに対して状態変化通知を行レ、、ステップ S101に戻る。
図 27 (a)は、シミュレーション情報変更の詳細手順を示すフローチャートである。本 フローチャートにおいて、ステップ S116では、 APIコールにて要求された再生制御ェ ンジンに基づき、シミュレーション情報における情報要素を書き換える。ステップ S 11 7では、このシミュレーション情報の書き換えに伴レ、、 AV再生画面の更新が必要かど う力を判定する。
[0116] シミュレーション情報の書き換えに伴って AV再生画面の更新が必要な場合 (ステツ プ S117が Yes)、ステップ S 118において AV再生画面を更新した上、メインルーチン にリターンするが、更新が不要な場合、このステップ S118をスキップしてメインルーチ ンにリターンする。
図 27 (b)は、状態変化通知処理の詳細手順を示すフローチャートである。ステップ S119は、シミュレーション情報において書き換えられた情報要素力 通知を要する 情報要素であるか否かの判定であり、本ステップ力 Wesであるなら、ステップ S120に おいて、変化を示すイベントをアプリケーションに通知した上、メインルーチンにリタ一 ンするが、更新が不要な場合、このステップ S 120をスキップしてメインルーチンにリタ ーンする。
[0117] 以下、具体例を交えながら、上述したようなフローチャートで示される処理をより詳 細に説明する。ここで想定する動作ケースは、 BD-Jアプリケーションが、画面左上の 隅から下方向に 180ピクセルだけ移動した位置に、解像度" 1920 X 1080 "のプレイ リスド 00001"の再生を、スケール 1倍で要求したというものである。
力かる要求を意味する再生制御エンジンを、 BD-Jアプリケーションから受け付けた 場合、再生制御エンジンスタブ 126は、動作状態情報の再生状態を「通常再生」に、 再生方向を「順方向」に、再生速度を「通常(X 1.0)」に変更し、現在時点情報の再 生タイムコードを「00 : 00 : 00 : 00」に、プレイリストを「00001」に、チャプターを「#01」 に変更する。
[0118] この際、 AV再生画面表示部 128は、サイズが 1920 X 1080である矩形を画面左上 の隅から下方向に 180ピクセルの位置に表示し、現在時点メニューと動作状態情報 画面における表示内容の更新を行う。また再生制御エンジンスタブ 126は、 APIコー ルに対するイベントを出力することにより、プレイリスト 00001の再生が開始されたこと をアプリケーションに通知する。
[0119] ユーザが、現在時点セットアップメニュー 701bを通じて、再生タイムコード" 00 : 10 :
00: 00 "に現在時点を変更する操作を行った場合、シミュレーション情報に保持され ている再生タイムコードを" 01 : 10 : 00 : 00Ίこ変更する。かかる変更がなされると AV 再生画面表示部 128は、現在時点セットアップメニュー 701bにおける再生タイムコー ドを" 01 : 10 : 00 : 00"に更新する。
[0120] 再生制御エンジンスタブ 126は、再生制御エンジンに対して APIコールがなされれ ば、それに対応するイベントを出力することにより、げ%がタイムコード" 01 : 10 : 00 : 0 0"に変更されたことを BD-Jアプリケーションに通知する。
ユーザが現在時点セットアップメニュー 701bに対して、げ%をプレイリストマーク" C G-Effect Interview "に変更する操作を行った場合、抽象化コンテンツ力、らプレイリス トマーク〃 CG_Effect Interview〃の位置を示すタイムコード" 01: 25 : 10 : 00"を取得し 、シミュレーション情報 17に保持されてレ、る再生タイムコードを" 01 : 25 : 10 : 00 "に変 更する。
[0121] これに伴い、 AV再生画面表示部 128は、現在時点セットアップメニュー 701bの再 生タイムコードを" 01 : 25 : 10 : 00〃に更新する。一方再生制御エンジンスタブ 126は 、 BD-Jアプリケーションに対してイベントを出力することにより、再生位置がプレイリス トマーク〃 CG-Effect Interview〃の位置に到達したことを BD-Jアプリケーションに通知 する。
[0122] プレイリストマーク〃 CG-Effect Interview〃への到達通知を受けた BD-Jアプリケーシ ヨンが、解像度" 960 X 1440 "のプレイリスド '00002"を画面左上の隅から下方向に 7 60ピクセノレ、かつ、右方向に 1160ピクセルに移動した位置にスケール 0.5倍で再生 せよと、再生制御エンジンをコールしたものとする。そうすると AV再生画面表示部 12 8は、その要求を受けて、 480 X 720の大きさをもつ矩形を画面左上の隅から下方向 に 760ピクセル、かつ、右方向に 1160ピクセルの位置に表示し、表示中の情報の更 新を行う。
[0123] この際、再生制御エンジンスタブ 126は、プレイリスト 00002の再生が開始されたこと を BD-Jアプリケーションに通知する。
以上のように、本実施の形態によれば、 AVコンテンツが BD-Jアプリケーションと並 行に開発されていて、 BD-Jアプリケーション開発者の手元に、 AVコンテンツが存在し ない場合でも、 AV再生制御を行うアプリケーションの動作を確認することができる。
[0124] また、現在再生中の位置をタイムコードによりフレーム単位で指定し管理することが 可能であり、映像の表示位置や表示スケールなど AVコンテンツの再生状況を画面上 で確認することが可能となる。また、再生位置や再生状態を任意の状態に容易に変 更することができるため、 AVコンテンツを利用することなく十分な精度でアプリケーシ ヨンの動作検証、及び、解析'修正を効率的に実施することができる。
[0125] 更に、シミュレートの結果、不具合が出ても、全く同じ動作を再現することができるの で、バグ原因の検証に便利である。
(第 5実施形態)
アプリケーション動作が AVコンテンツの再生映像、あるいは、その再生映像中の特 定のフレーム画像に依存しているような場合に、動作検証、解析、修正作業を効率的 に実施するための改良に関する実施の形態である。
[0126] 先の実施形態では、図 22に示すような図形を利用して AVコンテンツ再生中の画面 表示を行っている力 図形を表示するだけでは前記のような動作を行うアプリケーショ ンの動作検証を効率に行うことが困難である。そこで、本実施形態では、画像と、そ の画像の表示を行う AVコンテンツ上の位置の指定を行うことを可能にしている。 図 28は、シミュレーション情報変更の処理手順を示すフローチャートである。本フロ 一チャートは、図 28は、図 27 (a)を原図として採用し、これにステップ S120〜ステツ プ S 122を書き加えることで作成されている。これらのステップを書き加えた場所は、 ステップ S 117と、ステップ S 118との間である。
[0127] 以降、本フローチャートにおいて、新たに書き加えたステップについて説明する。ス テツプ S 120は、現在時点が指定されているタイムコードに到達したかどうかの判定で あり、もし到達すれば、ステップ S121において、指定された映像を取得し、ステップ S 122において、指定された画像を利用して表示画面に再生状態の表示を行った上 で、ステップ S118に移行する。到達しなければ、これらのステップ S121、ステップ S 122をスキップして、ステップ S118に移行する。
[0128] 以上のように、本実施形態によれば、ユーザーが予め設定した AVコンテンツ上の 任意の位置に再生が到達した場合に、ユーザーが指定した任意の画像を表示する ことが可能となり、例えば AVコンテンツとして記録されている画像の特定の部分にァ プリケーシヨンにより表示されるグラフィックを重畳して表示するといつた、 AVコンテン ッの特定の 1フレームとして表示される映像に依存したアプリケーションの動作確認、 及び、解析'修正作業を効率的に実施することができる。
[0129] (第 6実施形態)
本実施形態は、第 1実施形態に示した BD-ROMコンテンツ (AVコンテンツ)の詳細を 開示する実施形態である。上述したように BD-ROMコンテンツは、図 29のようなディ レクトリ及びファイルから構成される。
図 29は、 BD-ROMの内部構成を示す図である。本図の第 2段目は、 BD-ROMを示 す。ディレクトリ構造を用いて BD-ROMの応用層フォーマット (アプリケーションフォー マット)を表現すると、図中の第 1段目のようになる。この第 1段目において BD-ROMに は、 Rootディレクトリの下に、 BDVIDEOディレクトリがある。
[0130] この BDVIDEOディレクトリの配下には、更に PLAYLISTディレクトリ、 CLIPINFディレ クトリ、 STREAMディレクトリと呼ばれる 3つのサブディレクトリが存在する。
PLAYLISTディレクトリには、拡張子 mplsが付与されたファイル (OOOOl.mpls)がある。
CLIPINFディレクトリには、拡張子 clpiが付与されたファイル (OOOOl.clpi)がある。
STREAMディレクトリには、拡張子 m2tsが付与されたファイル (00001.m2ts)がある。
[0131] 以上のディレクトリ構造により、互いに異なる種別の複数ファイル力 BD-ROM上に 配置されていることがわかる。
以降、これらのファイルのそれぞれに対する説明を行う。図中の xxxxx.m2tsは、 Mai nClip、 SubClipを格納したファイルである。
先ず始めに、 MainClipの内部構成についての説明する。図 30は、拡張子. m2tsが 付与されたファイルがどのように構成されているかを模式的に示す図である。拡張子. m2tsが付与されたファイル (00001.m2ts)は、 AVClipを格納している。 AVClipは MPEG 2-Transport Stream形式のデジタルストリームである。このデジタルストリームは、デジ タル化された映像、デジタル化された音声を (上 1段目)、 PESパケットからなるエレメン タリストリームに変換し (上 2段目)、更に TSパケットに変換して (上 3段目)、同じく字幕 系のプレゼンテーショングラフィクスストリーム (Presentatiion Graphics(PG)ストリーム) 及び対話系のインタラクティブグラフィクスストリーム (Interactive Graphics(IG)ストリー ム)を (下 1段目、下 2段目)、 TSパケットに変換して (下 3段目)、これらを多重化すること で構成される。
[0132] 続いて、以上のように構成された AVClipが、 BD-ROMにどのように書き込まれる力 を説明する。図 31は、 AVClipを構成する TSパケットがどのような過程を経て BD-ROM に書き込まれるかを示す。本図の第 1段目に AVClipを構成する TSパケットを示す。
AVClipを構成する 188バイトの TSパケットは、第 2段目に示すように 4バイトの TS_extr a_header (図中のハッチング部)、が付されて、 192バイト長の Sourceパケットになる。こ の TS_extra_headerは、当該 TSパケットのデコーダ入力時刻情報を示す Arrival_Time_ Stampを含む。
[0133] AVClipを構成する Sourceパケットは、第 3段目における AVClipにおいて、 1つ以上 の" ATC_Seuqence"を構成する。 "ATC_Seuqence"とは、 Sourceパケットの配列であつ て、その Arrival_Time_Stampか参照し飞いる Arrival_Time_Clockに、不連糸冗点 Ληο arriv al time-base discontinutiy)が存在しないものをいう。いいかえれば、その Arrival_Time _Stampが参照している Arrival_Time_Clockに、連続性が存在する Sourceパケット列を" ATC— Seuqence"とレ、う。
[0134] かかる ATC_Seuqenceが AVClipになり、 xxxxx.m2tsというファイル名で BD-ROMに記 録される。
力かる AVClipは、通常のコンピュータファイル同様、 1つ以上のファイルエクステント に分割され、 BD-ROM上の領域に記録される。第 4段目は AVClipがどのように BD-R OMに記録されるかを模式的に示す。この第 4段目においてファイルを構成する各フ アイルエクステントは、予め定められた Sextent以上のデータ長を有する (図中の数式 参照)。
図 32は、 BD-ROMの物理単位と、 1つのファイルエクステントを構成する Sourceパケ ットとの対応関係を示す図である。第 2段目に示すように、 BD-ROM上には複数セク タが形成されている。ファイルエクステントを構成する Sourceパケットは、第 1段目に示 すように、 32個毎にグループ化されて、連続する 3つのセクタに書き込まれる。 32個の Sourceパケットからなるグループは、 6144バイト (=32 X 192)であり、これは 3個のセクタ サイズ 6144バイト (=2048 X 3)と一致する。 3個のセクタに収められた 32個の Sourceパケ ットを" Aligned Unit"とレ、い、 BD-ROMへの書き込みは、 Aligned Unit単位でなされる
[0135] 第 3段目においてセクタは、 32個単位で誤り訂正符号が付され、 ECCブロックを構 成する。再生装置は Aligned Unitの単位で BD-ROMをアクセスする限り、 32個の完結 した Sourceパケットを得ることができる。以上が BD-ROMに対する AVClipの書き込み のプロセスである。
MainClipに多重化されるエレメンタリストリームについて、更に詳しく説明する。
[0136] 図 33は、 MainClipに多重化されるエレメンタリストリームを示す図である。 MainClip の STC_Sequenceに多重化されるエレメンタリストリームは、 0x1011の PIDをもつ Primar yビデオストリーム、 0x1100から 0x111Fまでの PIDをもつプライマリオーディオストリーム 、 0x1200から 0xl21Fまでの PIDをもつ 32本の PGストリーム、 0x1400から 0xl41Fまでの PIDをもつ 32本の IGストリーム、 OxlBOOから OxlBlFまでの PIDをもつ 32本の Secondary ビデオストリームである。
[0137] 以降、これらのビデオストリーム、オーディオストリーム、 PGストリーム、 IGストリームに ついて説明する。
<プライマリビデオストリーム >
プライマリビデオストリームは、映画作品の本編を構成するストリームであり、 SD画像 、 HD画像であるピクチャデータ力 構成される。ビデオストリームには、 VC-1のビデ ォストリーム、 MPEG4-AVCのビデオストリーム、 MPEG2-Videoのビデオストリームとい つた形式が存在する。 MPEG4-AVCのビデオストリームでは、 IDRピクチャ, Iピクチャ ,Ρ ピクチャ, Βピクチャに、 PTS、 DTSといったタイムスタンプが付され、このピクチャの単 位で、再生制御がなされる。このように、 PTS、 DTS力付されて、再生制御の単位とな る、ビデオストリームの一単位を" Video Presentation Unit"とレ、う。
<セカンダリビデオストリーム >
セカンダリビデオストリームは、映画作品のコメンタリィ等を構成するストリームであり 、このセカンダリビデオストリームの再生映像を、プライマリビデオストリームの再生映 像内に合成することで、ピクチャインピクチヤが実行される。ビデオストリームには、 VC -1のビデオストリーム、 MPEG4- AVCのビデオストリーム、 MPEG2- Videoのビデオスト リームといった形式が存在し、 "Video Presentation Unit"をもつ。セカンダリビデオスト リームのフォーマットには、 525/60ビデオフォーマット、 625/50ビデオフォーマット、 19 20 X 1080フォーマット、 1280 X 720フォーマットがある。
<プライマリオーディオストリーム >
プライマリオーディオストリームは、映画作品の主音声を表すストリームであり、 LPC Mオーディオストリーム、 DTS—HDオーディオストリーム、 DD/DD+オーディオストリーム や DD/MLPオーディオストリームといった形式が存在する。オーディオストリームにお けるオーディオフレームに、タイムスタンプが付され、このオーディオフレームの単位 で、再生制御がなされる。このように、タイムスタンプが付されて、再生制御の単位と なる、オーディオストリームの一単位を" Audio Presentation Unit',とレ、う。尚、 BD-RO Mには記録されていなレ、が、映画作品の副音声を表すようなオーディオストリームを、 セカンダリオーディオストリームという。
[0138] く PGストリーム〉
PGストリームは、言語毎の字幕を構成するグラフィクスストリームであり、英語、 日本 語、フランス語とレ、うように複数言語にっレ、てのストリームが存在する。
< IGストリーム >
IGストリームは、対話制御を実現するグラフィクスストリームである。 IGストリームにて 定義される対話制御は、 DVD再生装置上の対話制御と互換性がある対話制御であ る。
[0139] 本図に示した各エレメンタリストリームのように、プライマリビデオストリームと同じ AV Clipに多重化されるエレメンタリストリームを、 "In_MUXストリーム"という。
以上で、 MainClipについての説明を終える。続いて、 SubClipの内部構成について の説明する。
[0140] SubClipには、ビデオストリーム、オーディオストリーム、 PGストリーム、 IGストリームと レ、う 4種類のエレメンタリストリームが多重化されている。このように AVClipに多重化さ れるエレメンタリストリームには、どのようなものがあるかを詳細に説明する。
図 34は、 SubClipに多重化されるエレメンタリストリームを示す図である。 SubClipに 多重化されるエレメンタリストリームは、 0x1800の PIDをもつ textST(text SubTitle (テキ スト字幕))ストリーム、 OxlAOOから OxlAlFまでの PIDをもつプライマリオーディオストリ ーム、 OxlBOOから OxlBlFまでの PIDをもつ 32本の Out_of_MUX_Secondaryビデオストリ ーム、 0x1200から 0xl21Fまでの PIDをもつ 32本の PGストリーム、 0x1400から 0xl41Fま での PIDをもつ 32本の IGストリームである。この図 34に示したエレメンタリストリームの ように、プライマリビデオストリームと異なる AVClipに多重化されるエレメンタリストリー ム全般を、 "Out_of_MUXストリーム"とレヽう。
< BD_ROMの構成その 2 情報>
続いて拡張子. clpiが付与されたファイルについて説明する。拡張子. dpiが付与され たファイル (OOOOl.clpi)は、 Clip情報を格納している。 Clip情報は、個々の AVClipにつ いての管理情報である。図 35は、 Clip情報の内部構成を示す図である。本図の左側 に示すように Clip情報は、
i)AVClipについての情報を格納した『ClipInfo()』、
ii) ATC Sequence,STC Sequenceに関する情報を格納した『Sequence InfoOJ iii) Program Sequenceに関す |%幸艮を格糸内した『Program Info()』
iv) fCharacteristic Point Info(CPI())』からなる。
[0141] Cliplnfoには、この Clip情報が参照する AVClipのアプリケーションタイプ(application _type)がある。力かる Cliplnfoを参照することで、アプリケーションタイプによって MainC lipか SubClipかや、動画を含んでいるのか静止画 (スライドショー)を含んでいるのかな どが識別できる。また Cliplnfoには、上述した TS_recording_rateが記述されてレ、る。
equence Infoi 、 AVClipfこ^!まれ 、 1つ以上の C— Sequence、 ATし— Sequencedこ ついての情報である。これらの情報を設けておくことの意義は、 STC、 ATCの不連続 点を、予め再生装置に通知するためである。つまりかかる不連続点が存在すると、 AV Clip内において同じ値の PTS,ATSが出現する可能性があり、再生時に不都合が生じ る。 STC,ATCが連続しているのは、トランスポートストリームのうち、どこからどこまでで あるかを示すため、 Sequence Infoは設けられている。
[0142] Program Infoとは、 Program内容が一定である区間 (Program Sequence)を示す情報 である。 Programとは、同期再生のための時間軸を共有し合うエレメンタリーストリーム 同士の集まりである。 Program Sequence情報を設けておくことの意義は、 Program内 容の変化点を、予め再生装置に通知するためである。ここでの Program内容の変化 点とは、ビデオストリームの PIDが変化したり、ビデオストリームの種類が SD画像から H D画像に変化してレ、る点等をレ、う。
続いて Characteristic Point Infoについて説明する。図中の引き出し線 cu2は、 CPI の構成をクローズアップしている。引き出し線 cu2に示すように、 CPIは、 Ne個の EPjna p_for_one_stream_PID(EP_map_ror_one_stream_PID[0]〜EP_map_ror_one_stream_PID[N e- 1])からなる。これら EP_map_for_one_stream_PIDは、 AVClipに属する個々のエレメン タリストリームについての EP_mapである。 EP_mapは、 1つのエレメンタリストリーム上に おいて、 Access Unitが存在するエントリー位置のパケット番号 (SPN_EP_start)を、ェン トリー時刻 (PTS_EP_start)と対応づけて示す情報である。図中の引き出し線 cu3は、 EP _map_for_one_stream_PIDの内部構成をクローズアップしている。
[0143] これによると、 EP_map_for_one_stream_PIDは、 Nc個の EP_High(EP_High(0)〜EP_High (Nc-1))と、 Nf個の EP丄 ow(EP丄 ow(0)〜EP丄 ow(Nf-l))とからなることがわかる。ここで E P_Highは、 Access Unit(Non-IDR Iピクチャ、 IDRピクチャ)の SPN_EP_start及び PTS_EP —startの上位ビットを表す役割をもち、 EP丄 owは、 Access Unit(Non_IDR Iピクチャ、 ID Rピクチャ)の SPN_EP_start及び PTS_EP_startの下位ビットを示す役割をもつ。
[0144] 図中の引き出し線 cu4は、 EP_Highの内部構成をクローズアップしている。この引き 出し線に示すように、 EP_High(i)は、 EP丄 owに対する参照値である『ref_to_EP丄 ow_id[i ]』と、 Access Unit(Non-IDR Iピクチャ、 IDRピクチャ)の PTSの上位ビットを示す『PTS_E P_High[i]』と、 Access Unit(Non-IDR Iピクチャ、 IDRピクチャ)の SPNの上位ビットを示 す『SPN_EP_High[i]』とからなる。ここで iとは、任意の EP_Highを識別するための識別子 である。
[0145] 図中の引き出し線 cu5は、 EP丄 owの構成をクローズアップしている。引き出し線 cu5 に示すように、 EP丄 owは、対応する Access Unitが IDRピクチャか否かを示す『is_angle _change_point(EP_Low_id)』と、対応する Access Unitのサイズを示す『I_end_position_off set(EP丄 ow_id)』と、対応する Access Unit(Non-IDR Iピクチャ、 IDRピクチャ)の PTSの 下位ビットを示す『PTS_EP丄 ow(EP丄 ow_id)』と、対応する Access Unit(Non-IDR Iピク チヤ、 IDRピクチャ)の SPNの下位ビットを示す『SPN_EP丄 ow(EP丄 ow_id)』とからなる。こ こで EP丄 ow_idとは、任意の EP丄 owを識別するための識別子である。
[0146]
< Clip情報の説明その 2.EP_map >
以下、具体例を通じて、 EPjnapについて説明する。図 36は、映画のビデオストリー ムに対する EPjnap設定を示す図である。第 1段目は、表示順序に配置された複数の ピクチャ (MPEG4-AVCに規定された IDRピクチャ、 Iピクチャ、 Bピクチャ、 Pピクチャ)を 示し、第 2段目は、そのピクチヤにおける時間軸を示す。第 4段目は、 BD-ROM上の T Sパケット列を示し、第 3段目は、 EPjnapの設定を示す。
[0147] 第 2段目の時間軸において、時点 tl〜t7に、 Access Unitとなる IDRピクチャ及び Iピ クチャが存在するものとする。そしてこれらの tl〜t7の時間間隔が、 1秒程度であると すると、映画に用いられるビデオストリームにおける EPjnapは、 tl〜t7をエントリ一時 刻 (PTS_EP_start)として示し、これに対応づけてエントリー位置 (SPN_EP_start)を示す よう、設定される。
[0148] < PlayList情報 >
拡張子" mpls"が付与されたファイル (00002.mpls)について説明する。本ファイルは 、 MainPath, Subpathと呼ばれる 2種類の再生経路を束ねたものを Playlist(PL)として定 義する情報である。図 37 (a)は、 PlayList情報のデータ構造を示す図であり、本図に 示すように PlayList情報は、 MainPathを定義する MainPath情報 (MainPathO)と、チャフ。 ターを定義する PlayListMark情報 (PlayListMarkO)と、 Subpathを定義する Subpath情 報 (SubpathO)と、その他の拡張データ (Extention_Data)からなる。
[0149] く PlayList情報の説明その 1.MainPath情報〉
先ず MainPathについて説明する。 MainPathは、プライマリビデオたるビデオストリー ムゃオーディオストリームに対して定義される再生経路である。
MainPathは、矢印 mplで示すように複数の Playltem情報 #1 · · . ·¾ηから定義される。
Playltem情報は、 MainPathを構成する 1つの論理的な再生区間を定義する。 Playltem 情報の構成は、引き出し線 hslによりクローズアップされている。
[0150] この引き出し線に示すように Playltem情報は、再生区間の IN点及び Out点が属する AVClipの再生区間情報のファイル名を示す『Clip_Information_file_name[0]』と、 AVCli Pの符号化方式を示す『Clip_codec_identifier[0]』と、 Playltemがマルチアングルを構 成するか否かを示す『is_multi_angle』と、この Playltem (カレント Playltem)と、その 1つ前 の Playltem(previousPlayltem)との接続状態を示す『connection— condition』と、この Pla yltemが対象としている STC_Sequenceを一意に示す『ref_to_STC_id[0]』と、再生区間 の始点を示す時間情報『In_time』と、再生区間の終点を示す時間情報『0ut_time』と、 この Playltemにおいてマスクすべきユーザオペレーションがどれであるかを示す『UO_ mask_table』と、この Playltemの途中へのランダムアクセスを許可するか否かを示す『P1 ayItem_random_access_flag』と、この Playltemの再生終了後、最後のピクチャの静止表 示を継続するか否かを示す『Still_mode』と、 Playltemがマルチアングルを構成する場 合、力、かるマルチアングルを構成する複数の AVClipを示す『Multi_Clip_entries』と、『S TN_table』とから構成される。
[0151] 図 37 (b)は、 Multし Clip_entriesの内部構成を示す図である。本図に示すように、 Mul ti_Clip_entriesは、マルチアングル区間におけるアングル総数を示す『number_of_angl es』、アングル映像において、異なる音声を再生させるかどうかを示す『is_different_au dio』を しており、『Ciip— codec— identifier[l]』、 Uし lip— Information— file— name[l]』、 u ref— to — STし— id[l]』〜『Clip— codec— identifier[N]』、『Clip— Information— file— name[N]』、『ref— to— ST C_W[N]』を含む。
[0152] これら Multi— Clip— entriesにおける『Clip— codec— identifier』、『Clip— Information— file— nam e』、『ref_to_STC_id[0]』のそれぞれは、マルチアングル区間において、個々のアング ル映像を構成する AVClipに対応している。
以降、 PlayListMark情報について説明をはじめる。
図 38は、 PlayList情報における PlayListMark情報の内部構成を示す図である。本 図の図中の引き出し線 pmOに示すように、 PlayListMark情報は、複数の PLMark情報( # ί〜#η)からなる。 PLmark情報 (PLmarkO)は、 PL時間軸のうち、任意の位置を、チヤ プタ一点として指定する情報である。引き出し線 pmlに示すように PLmark情報は、チ ャプター指定の対象たる Playltemを示す『ref_to_PlayItem_Id』と、その Playltemにおけ る、チャプター位置を時間表記により示す『mark_time_stamp』とを含む。
[0153] 図 39は、 AVClipと、 PlayList情報との関係を示す図である。第 2段目から第 5段目は 、 EP_mapにて参照されてレ、るビデオストリームを示す。
PlayList情報は、 Playltem情報 #1,#2という 2つの Playltem情報を含んでおり、これら P layltem情報 #1,#2の In_time,Out_timeにより、 2つの再生区間が定義されることになる。 これらの再生区間を配列させると、 AVClip時間軸とは異なる時間軸が定義されること になる。これが第 1段目に示す PlayList時間軸である。このように、 Playltem情報の定 義により、 AVClipとは異なる再生経路の定義が可能になる。
[0154] 本図の第 1段目は、 PLMark情報と、 PL時間軸とを示す。この第 1段目には、 2つの P LMark情報 #1〜#2が存在する。矢印 ktl,2は、 PLMark情報の ref_to_PlayItem_Idによる 指定を示す。この矢印力、らもわ力、るように PLMark情報の ref_to_PlayItem_Idは、参照す る Playltemを指定していることがわかる。また、 Mark_time_Stampは、当該 Playltem時間 軸のうち、 Chapter#l,#2になるべき時点を示す。このように、 PLMark情報は、 Playltem 時間軸上に、チャプター点を定義することができる。
[0155] < PlayList情報の説明その l .Subpath情報 >
MainPathが、プライマリビデオたる MainClipに定義される再生経路であるのに対し、 Subpathは、 MainPathと同期すべき SubClipに対して定義される再生経路である。
図 40は、 Subpath情報の内部構成をクローズアップして示す図である。本図におけ る矢印 hcOに示すように各 Subpathは、 SubClipの類型を示す SubPath_typeと、 1つ以上 の SubPlayltem情報 (· · · SubPlayltemO · · とを含む。
[0156] 図中の引き出し線 hclは、 SubPlayltem情報の構成をクローズアップしている。
SubPlayltemは、メインパス力ら分離した、 1以上のエレメンタリストリーム再生パスを 定義し、当該パスをメインパスとどのように同期するかという類型を表現するのに使わ れる。 Sub Playltemで使用されるの力 The Primary audio / PG / IG / Secondary audi o / Secondary videoのサブパスであるなら、これらの SubPlayltemは、 PlayList中の Pla yltemを使っているメインパスと同期することになる。このエレメンタリストリーム再生の ためのサブパスによって使われるエレメンタリストリームは、 MainPath側の Playltemに よって使われる MainClipから分離した Clip、つまり SubClipに多重化される。
[0157] 以降、 SubPlayltemの内部構成について説明する。 SubPlayltem情報は、図中の矢 印 hclに示すように『Clip_information_file_name[0]』、『Clip_codec_identifier[0]』、『ref_t o— STC— id[0]』、『SubPlayItem— In— time』、『SubPlayItem— Out— time』、『sync— Playltem— id』 、『sync_start_PTS_of_PlayItem』からなる。
『Clip_information_file_name[0]』は、 Clip情報のファイル名を記述することにより、 Sub Playltemに対応する SubClipを一意に指定する情報である。
[0158] 『Clip_codec_identifier[0]』は、 AVClipの符号化方式を示す。
『ref_to_STC_id[0]』は、この SubPlayltemが対象としている STC_Sequenceを一意に示 す。
『SubPlayItem_In_time』は、 SubClipの再生時間軸上における、 SubPlayltemの始点を 示す情報である。
[0159] 『SubPlayItem_〇ut_time』は、 SubClipの再生時間軸上における、 SubPlayltemの終点 を示す情報である。
『syn Playltem_id』は、 MainPathを構成する Playltemのうち、本 SubPlayltemが同期 すべきものを一意に指定する情報である。 SubPlayItemJn_timeは、この sync_PlayItem_ idで指定された Play Itemの再生時間軸上に存在する。
[0160] 『sync_start_PTS_of_PlayItem』は、 sync_PlayItem_idで指定された Play Itemの再生時 間軸上にぉレ、て、 SubPlayItemJn_timeで指定された SubPlayltemの始点力 どこに存 在するかを 45KHzの時間精度で示す。ある SubPlayltemがセカンダリビデオストリーム 上の再生区間を定義していて、その SubPlayltemの sync_start_PTS_of_PlayItem力 Pla yltem時間軸における一時点を示している場合、その SubPlayltemは、 "同期ピクチャ インピクチヤ"を実現することになる。
< SubPath情報についての詳細その 2.三者の関係 >
ここでの三者とは、ローカルストレージ 202上の SubClip、ローカルストレージ 202上 の PlayList情報、 BD-ROM上の MainClipの三者をレ、う。
[0161] 図 41は、ローカルストレージ上の SubClipと、ローカルストレージ 202上の PlayList情 報と、 BD-ROM上の MainClipとの対応を示す図である。本図において第 1段目は、口 一力ルストレージ 202上に存在する SubClipを示す。この第 1段目に示すように、ロー カルストレージ 202上の SubClipには、セカンダリビデオストリーム、セカンダリオーディ ォストリーム、 PGストリーム、 IGストリームといった種別がある。これらのうち何れ力、が、 S ubPathとして同期再生に供されることになる。
[0162] 第 2段目は、 PlayList情報により定義される 2つの時間軸を示す。第 2段目のうち下側 の時間軸は、 Playltem情報により定義される PlayList時間軸を示し、上側の時間軸は SubPlayltemにより定義される SubPlayltem時間軸を示す。
本図に示すように、 SubPlayltem情報の SubPlayItem_Clip_information_file_nameは、 S TREAMディレクトリに格納された .m2tsファイルに多重化された Out- of-MUXストリーム のうち、どれを再生区間指定の対象として選ぶかという、 SubClip選択の役割を果たし ていることがわかる。
[0163] そして SubPlayItem.IN_time、 SubPlayltem. Out_timeは、 SubClip上の、再生区間の始 点及び終点を定義するという役割を果たしていることがわかる。
矢印 Sync_PlayItem_Idは、どの Playltemとの同期を意図しているかという同期指定の 役割を果たし、 syn start_PTS_of_PlayItemは、 Playltem時間軸上における SubPlaylte mjn.timeの位置を決める役割を果たす。
[0164] 以上が、 SubPath情報についての説明である。
< STN— table >
BD-ROM及びローカルストレージ 202における PlayList情報において特徴的である のは、 STN_Tableである。以降、ローカルストレージ 202上の PlayList情報について説 明する。
[0165] STN_tableは、 Playltem情報の Clip Jnformation_file_nameで指定されてレ、る AVClipに 多重化された複数 In_MUXストリーム、 SubPlayltem情報の Clip Jnformation_file_nameで 指定されている Out_of_MUXストリームのうち、再生可能なものを示すテーブルである 。 STN_tableは、 MainClipに多重化されている複数 In_MUXストリーム、 SubClipに多重 ィ匕されている〇ut_of_MUXストリームのそれぞれについての Stream_entryを、 Stream_at tributeと対応付けることで構成される。
[0166] 以降、 extention_dataの内部構成について説明する。この extention_dataは、ピクチ ャインピクチャのためのメタデータである、 PiPjnetadataを格納している。図 42は、 PiP_ metadataの内部構成を示す図である。引出線 hmlは、 PiPjnetadataの内部構成をクロ ーズアップしている。この引出線 hmlに示すように、 PiPjnetadataは、 number_of_metad ata— block— entriesと、 n 1個の metadata— block— headerと、 n2個の PiP— metadata— blockと力 ら構成される。
[0167] 引出線 hm2は、 metadata_block_headerの内部構成をクローズアップして示している。
つまり、 metadata_block_headerは、同一のクラス構造体から生成した複数のインスタン スであり、その内部構成は、どれも、この引き出し線 hm2に示すものとなる。以下、 met adata_block_headerを構成する各フィールドについて説明する。
Figure imgf000059_0001
ピクチャインピクチヤの対象となるべき Playltem[k]の Playltemjdを示すフィールド である。
ref_to_secondary_video_stream_id[kJ:
ref to_PlayItem_id[k]で参照される Playltemの STN_tableで定義される secondary— video_stream_id値のうち、このピクチャインピクチャで再生に供するものを示すフィー ルドである。
pip— timeline— type[k」:
Playltem時間軸における Sync_Start_PTS_of_PlayItemの写像点を、ピクチャインピク チヤ実行タイミングの基準とする力、 SubPlayltemの原点を基準とすることを示す。
[0168] 以上のように、 Playltem側、 SubPlayltem側のどちらを基準とするのが理想的にする かにより、ピクチャインピクチャ再生を好適に実現することができる。
is— luma— key:
このフラグが 1の場合、 upper_limit_luma_key値に従って、対応する Secondaryビ デォストリームに luma-keyingが適用される。 luma_keyingとは、セカンダリビデオを構 成する個々のピクチャに、被写体部分と、背景部分とが存在する場合、各ピクチャか ら、被写体部分を抜き出して、プライマリビデオとの合成に供する処理である。
tnck_playing_flag:
これは、プライマリビデオに対するトリック再生の実行中、 ピクチャインピクチャのた めのウィンドウを開き続けるか閉じるかのコンテンツプロバイダの意思を示すフラグで ある。このフラグは同期式ピクチャインピクチャにぉレ、てのみ有効となる。
[0169] upper_limit_luma_key: これは、 luma-keyingのための対応する Secondaryビデオ輝度 (Y)の上限値を指定 するフィールドである。
続いて、 PiP_metadata_blockの内部構成について説明する。引き出し線 hm3は、 PiP_ metadata_blockの構成をクローズアップしている。この引き出し線に示すように、 PiP_m etadata_blocKLl」は、 k個の PiP_metaaata_entry[l]〜[K」と、 number_of_pipmetadata_entn esとからなる。
[0170] 引き出し線 hm4は、 PiP_metadata_entryの内部構成をクローズアップして示している 。つまり、 PiP_metadata_entryは、同一のクラス構造体から生成した複数のインスタンス で ¾>り、その内咅!^き成は、どれも、 pip_metadata_time_stamp[i」と、 pip_composition_met adataOとから構成される。
pip_metadata_time_stamp[i]:
pip_composition_metadata()が有効である時間間隔の開始時点を示すフィールドで ある。
[0171] k¾=目の PiP— metadata— block[k]にお る 1番目の pip— composition— metadataOは、最 後を除レヽ飞、 pip— metadata— time— stamp 」以上 pip— metadata— time— stamp[i+l]未、満の 時間間隔にぉレ、て有効になる。 PiP_metadata_block[k]()内の最後の pip_metadata_ti me— stampの最後の pip— composition— metadataOは、取後の pip— metadata— time— stamp 以上で、 ref_to_secondary_video_stream_id[k]で指定される SubPathの表示終了時刻 未満の時間間隔において有効である。また、連続する 2つの pip_metadata_time_stam P値間の最小の時間間隔は 1秒であり、 1秒も含む。
[0172] pip— composition— metadataOは、以下のフィールドからなる。
pip_honzontal_position[i]:
Primaryビデオプレーン上での Secondaryビデオの左上端の画素の水平位置を 示す。ビデオプレーンの横幅を video_widthと表現した場合、本 PiP_horizontal_positio nにて指定される水平位置は 0力 video_width_lの範囲となる。
pip_vertical_postionLij:
Primaryビデオプレーン上での Secondaryビデオの左上端の画素の垂直位置を示 す。ビデオプレーンの縦幅を video_heightとした場合、本 PiP_vertical_positionで指定 される垂直位置は 0力 video_height- lの範囲となる。
[0173]
pip_scale[i] : Secondaryビデオのスケーリングタイプを示すフィールドである。スケー リングタイプには、以下のものがある。
0 :予約
1 :スケーリングなし(xl)
2 : 1/2スケーリング(xl/2)
3 : 1/4スケーリング(xl/4)
4: 1.5倍スケーリング(xl .5)
5 :フノレスクリーンスケーリング
以上が、 PlayList情報の内部構成である。 PlayList情報は、上述したような内部構成 にて、 AVClip、 Clip情報を参照しているので、 playPlaylistAPIのコール時においては 、力かる PlayList情報に基づき、 AVClipが正しく再生されるかの検証が可能になる。 pi ayPlaylistが正しくなされれば、この PlayList情報に従レ、、様々な In_MUXストリーム、 0 ut-of-MUXストリームの再生が可能になる。
[0174] 以上で、 PlayList情報についての説明を終える。これまでに述べた SubClip, Clip情 報, PlayList情報は、 BD- ROMだけではなく、ローカルストレージに存在してもよい。 P1 ayList情報が SubClip, Clip情報がローカルストレージに存在する場合、力かる PlayList 情報は、 BD-ROMに記録された MainClipに多重化されている Primary Videoストリーム と、ローカルストレージに記録された SubClipに多重化されている Out-of-MUXストリー ムとを、再生するよう規定することで、 BD-ROMの格納内容と、ローカルストレージの 格納内容とを組合せた AVコンテンツを実現することができる。
[0175] 続いて、 Movie Objectについて説明する。
< Movie Object >
Movie Objectは、 MovieObject.bdmvとレヽぅフアイノレに格糸内される。 MovieObject.bdm Vは、 number_of_mobjs個の MovieObjectである『Movie〇bjects』を含む。 MovieObject は、 MenuCallがなされた際、 MenuCall後の再生再開を意図しているか否かを示す『re sume_intention_flag』、 MenuCallをマスクする力否力を示す情報『menu_call_mask』、タ ィトルサーチ機能をマスクするかを示す『title_search_flag』、ナビゲーシヨンコマンドの 個数で、ある『number— of— navigation— command』、 numDer— of— navigation— command個の『 ナビゲーシヨンコマンド』からなる。
[0176] ナビゲーシヨンコマンド列は、条件分岐、再生装置における状態レジスタの設定、 状態レジスタの設定値取得等を実現するコマンド列からなる。 Movie Objectにおいて 記述可能なコマンドを以下に示す。
PlayPLコマンド
書式: PlayPL (第 1引数,第 2引数)
第 1引数は、プレイリストの番号で、再生すべき PLを指定することができる。第 2引数 は、その PLに含まれる Playltemや、その PLにおける任意の時亥 lj、 Chapter, Markを用 レ、て再生開始位置を指定することができる。
[0177] Playltemにより PL時間軸上の再生開始位置を指定した PlayPLメソッドを PlayPLatPla yltem()、
Chapterにより PL時間軸上の再生開始位置を指定した PlayPLメソッドを PlayPLatCha pter()、
時刻情報により PL時間軸上の再生開始位置を指定した PlayPLメソッドを PlayPLatS pecified Time()とレヽつ。
JMPコマンド
書式: JMP引数
JMPコマンドは、現在の動的シナリオを途中で廃棄し (diScard)、引数たる分岐先動 的シナリオを実行するという分岐である。 JMP命令の形式には、分岐先動的シナリオ を直接指定している直接参照のものと、分岐先動的シナリオを間接参照している間 接参照のものがある。
Movie Objectにおけるナビゲーシヨンコマンドの記述は、 DVDにおけるナビゲーショ ンコマンドの記述方式と良く似ているので、 DVD上のディスクコンテンツを、 BD- ROM に移植するという作業を効率的に行うことができる。
< sound.bdmv
続いて sound.bdmvについて説明する。 sound.bdmvは、 Javaアプリケーションの GUI フレームワークに対して操作がなされた場合、クリック音として出力すべきオーディオ データ (かかるオーディオデータを、サウンドデータとレ、う)が格納されるファイルである
。力かる AVClipの再生途切れを避けるには、 AVClipの再生がなされていない時点に おいて、ファイル sound.bdmvを予めバッファにプリロードしておく必要がある。つまり A VClipの再生に先立ち、ファイル sound.bdmv内のサウンドデータを、プリロードしてお く必要がある。以上がファイル sound.bdmvにつレ、ての説明である。
< Index. bdmv >
Index.bdmvは、複数の Index Table entryを含み、ある Titleの再生を開始するにあた つて、その Titleの構成要素となる MovieObjectはどれである力、、又は、その Titleの構 成要素となる BD-J Objectはどれであるのかを定義する。ここで Index Table entryは、 Title_bdjo_file_nameと、 Title_object_typeと ¾Γ3む。 Title_bdjo_file_nameは、 Titleに関連 付けられた BD-J Objectファイルの名前を特定している。 BD-J Objectは、 A卯 lication ManagementTableOを有し、この ApplicationManagementTableOは、実行すべきアプリ ケーシヨンの application— id 不してレヽるので、 Index Table entry内の Title— bdjo— file— na meによる BD-J Objectファイルのファイル名力 分岐先となるタイトルにおいて、実行 すべき BD-Jアプリケーションを BD-J Terminalに指示すると理解することができる。
[0178] Title_object_typeは、 "10"に設定されることで、 title_idにて特定される titleが、 BD-J Objectに関連付けられていることを示す。 "01"に設定されることで、 title_idにて特定さ れる title力 Movie Objectに関連付けられていることを示す。 Title_object_typeによる 指定、つまり、 BD-J Objectに関連付けられるか否力が、この Title_object_typeに表現 される。
[0179] 以上が、 BD-ROM100についての説明である。
IDE環境でのシミュレートでは、ダミーデータとはいえ、より BD- ROMに格納されるも のに近いコンテンツを用いる必要がある。そのため、シミュレートに用いる抽象化コン テンッは、上述したような AVClip、 Clip情報、 PlayList情報から構成することが望まし レ、。ただ、各フィールドに対する設定値は、抽象的な識別子を記述しておけばよい。
[0180] ADK環境でのデバッグでは、 PC100内のネットワークドライブにおけるファイルシス テム情報を、 BD-ROMのファイルシステム情報にマウントすることで、仮想的なパッケ ージを生成して再生制御エンジンに再生させるので、これらの図に示した AVClip、 C1 ip情報、 PlayList情報を制作して、デバッグ装置内のハードディスクに配置しておけば 、開発中の BD-Jアプリケーションにより、これらの AVClip、 Clip情報、 PlayList情報に 対する再生が、正常に行われるかどうかを確認することができる。
[0181] 本発明が対象とする AVコンテンツは、上述したようなデータ構造から一般化される AVコンテンツ、つまり、プレイリスト情報のような論理的な区間、経路を規定する情報 力、ら、再生を行うべき In-MUXストリーム、 Out- of-MUXストリームを指定することで、ォ 一ディォのミキシング再生ゃピクチャインピクチャ、字幕やメニューの合成表示を動画 再生時に実現する全てのコンテンツを含む。かかるコンテンツには、 DVD-Videoコン テンッ、 HD-DVDコンテンツ等を包含することはいうまでもない。
[0182] 続いて、上述したような AVコンテンツを再生するための、再生エンジン 205の内部 構成について説明する。
図 43は、再生エンジン 205の内部構成を示す図である。本図に示すように、再生ェ ンジン 205は、リードバッファ lb,c、 ATCカウンタ 2a,c, Source Depacketizer2b,d、 ATC カウンタ 2b,d、 STCカウンタ 3a,c、 PID Filter3b,d、 Transport Buffer(TB)4a、 Elementar y Buffer(EB)4c、ビデオデコーダ 4d、 Re-order Buffer4e、 Decoded Picture Buffer4f、 ビデオプレーン 4g、 Transport Buffer(TB)5a、 Elementary Buffer(EB)5c、ビデオデコ ~~ダ 5d、 Re-order Buffer5e、 Decoded Picture Buffer5f、ヒアオプレーン 5g、 Transpo rt Buffer(TB)6a,b、バッファ 7a,b、オーディオデコーダ 8a,b、ミキサー 9a、スィッチ 10a ,b,c,d,e、 BD一 Jプレーン 11、 Transport Buffer(TB)12a、バッファ 12b、 Text based su btitleアコータ l 2c、 Transport Buffer(TB)13a、 Presentation Graphicsアコ1 ~~ダ l 3b、 Presentation Graphicsプレーン 13c、合成部 15、 HDMI送受信部 16、 PSRセット 17、 PID変換部 18から構成される。
[0183] リードバッファ (RB)lbは、 BD-ROM力、ら読み出された Sourceパケット列を蓄積する。
リードバッファ (RB)lcは、ローカルストレージ 202力、ら読み出された Sourceパケット列 を蓄積する。
ATC Counter2aは、 MainClipを構成する Sourceパケットのうち、再生区間の最初に 位置するものの ATSを用いてリセットされ、以降ソースデバケツタイザ 2bに ATCを出力 してゆく。
[0184] ソースデバケツタイザ (Source De_packetizer)2bは、 MainClipを構成する Sourceパ ケットから TSパケットを取り出して、送出する。この送出にあたって、各 TSパケットの AT Sに応じてデコーダへの入力時刻を調整する。具体的には、 ATC Counter2aが生成 する ATCの値と、 Sourceパケットの ATS値とが同一になった瞬間に TS_Recording_Rate で、その TSパケットだけを PID Filter3bに転送する。
[0185] ATC Counter2cは、 SubClipを構成する Sourceパケットのうち、再生区間の最初に位 置するものの ATSを用いてリセットされ、以降ソースデバケツタイザ 2dに ATCを出力し てゆく。
ソースデパケッタイザ (Source De- packetizer)2dは、 SubClipを構成する Sourceパケ ットから TSパケットを取り出して、送出する。この送出にあたって、 ATSに応じてデコー ダへの入力時刻を調整する。具体的には、 ATC Counter2cが生成する ATCの値と、 Sourceパケットの ATS値とが同一になった瞬間に TS_Recording_Rateで、その TSバケツ トだけを PID Filter3dに転送する。
[0186] STC Counter3aは、 MainClipの PCRによってリセットされ、 STCを出力する。
PID Filter3bは、 MainClip用の多重分離部であり、ソースデバケツタイザ 2bから出力 された Sourceパケットのうち、 PID変換部 24から通知された PID参照値をもつものを、 夫々ビデオデコーダ 4d、ビデオデコーダ 5d、オーディオデコーダ 8a、 Presentation G raphicsデコーダ 13bに出力する。各デコーダは、 PID Filter3bを経由したエレメンタリ ストリームを受け取って、 MainClipの PCRに従いデコードから再生の処理を行う。この ように PID Filter3bを通過して各デコーダに入力されるエレメンタリストリームは、 Main Clipの PCRに従って、デコード及び再生に供されることになる。
[0187] STC Counter3cは、 SubClipの PCRによってリセットされ、 STCを出力する。 PIDフィノレ タ 3dは、この STCを参照して、多重分離を行う。
PID Filter3dは、 SubClip用の多重分離部であり、ソースデバケツタイザ 2dから出力 された Sourceパケットのうち、 PID変換部 18から通知された PID参照値をもつものを、 夫々オーディオデコーダ 8b、 Presentation Graphicsデコーダ 13bに出力する。このよ うに PID Filter3dを通過して各デコーダに入力されるエレメンタリストリームは、 SubClip の PCRに従って、デコード及び再生に供されることになる。
[0188] Transport Buffer(TB)4aは、プライマリビデオストリームに帰属する TSパケットが PID Filter3bから出力された際、ー且蓄積されるバッファである。
Elementary Buffer(EB)4cは、符号化状態にあるピクチャ (Iピクチャ、 Bピクチャ、 Pピク チヤ)が格納されるバッファである。
デコーダ (DE ) 4dは、プライマリビデオを構成する個々のピクチャを所定の復号時 刻(DTS)ごとにデコードすることにより複数フレーム画像を得て、 Primary Videoプレ ーン 4gに書き込む。
[0189] Re-order Buffer4eは、復号されたピクチャの順序を、符号ィ匕順序から表示順序に 入れ替えるためのバッファである。
Decoded Picture Buffer4fは、デコーダ 4dのデコードにより得られた非圧縮のピクチ ャを格納しておくバッファである。
Primary Videoプレーン 4gは、プライマリビデオを構成するーピクチャ分の画素デー タを格納しておくためのメモリ領域である。画素データは、 16ビットの YUV値で表現さ れ、ビデオプレーン 4gは、 1920 X 1080という解像度にあたる画素データを格納してい る。
[0190] Transport Buffer(TB)5aは、セカンダリビデオストリームに帰属する TSパケットが PID Filter3bから出力された際、ー且蓄積されるバッファである。
Elementary Buffer(EB)5cは、符号化状態にあるピクチャ (Iピクチャ、 Bピクチャ、 Pピク チヤ)が格納されるバッファである。
デコーダ (DEC.)5dは、セカンダリビデオを構成する個々のピクチャを所定の復号時 刻(DTS)ごとにデコードすることにより複数フレーム画像を得て、 Secondary Videoプ レーン 5gに書き込む。
[0191] Re-order Buffer5eは、復号されたピクチャの順序を、符号ィ匕順序から表示順序に 入れ替えるためのバッファである。
Decoded Picture Buffer5fは、デコーダ 5dのデコードにより得られた非圧縮のピクチ ャを格納しておくバッファである。
Secondary Videoプレーン 5gは、セカンダリビデオを構成するーピクチャ分の画素デ ータを格納しておくためのメモリ領域である。
[0192] Transport Buffer(TB)6aは、 PID Filter3aから出力された TSパケットのうち、プライマ リオーディオストリームを構成するものを、先入れ先だし式に格納して、オーディオデ コーダ 8aに供する。
Transport Buffer(TB)6bは、 PID Filter3bから出力された TSパケットのうち、セカンダ リオーディオストリームを構成するものを、先入れ先だし式に格納して、オーディオデ コーダ 8bに供する。
[0193] オーディオデコーダ 8aは、 Transport Buffer(TB)6aに格納された TSパケットを PESパ ケットに変換して、この PESパケットに対しデコード処理を行レ、、非圧縮状態の LPCM 状態のオーディオデータを得て出力する。これによりプライマリオーディオストリーム におけるデジタル出力がなされる。
オーディオデコーダ 8bは、 Transport Buffer(TB)6bに格納された TSパケットを PESパ ケットに変換して、この PESパケットに対しデコード処理を行レ、、非圧縮状態の LPCM 状態のオーディオデータを得て出力する。これによりセカンダリオーディオストリーム におけるデジタル出力がなされる。
[0194] ミキサ 9aは、オーディオデコーダ 8aから出力される LPCM状態のデジタルオーディ ォと、オーディオデコーダ 8bから出力される LPCM状態のデジタルオーディオとをミキ シングする。
スィッチ 10aは、 BD-ROMから読み出された TSパケット、ローカルストレージ 202から 読み出された TSパケットのどちらかを、選択的にセカンダリビデオデコーダ 5d側に供 給する。
[0195] スィッチ 10bは、 BD-ROMから読み出された TSパケット、ローカルストレージ 202力、 ら読み出された TSパケットのどちらかを、選択的に Presentation Graphicsデコーダ 13 b側に供給する。
スィッチ 10dは、 PID Filter3bにより多重分離がなされた、プライマリオーディオストリ ームを構成する TSパケット、 PID Filter3dにより多重分離がなされたプライマリオーデ ィォストリームを構成する TSパケットのうちどちらをオーディオデコーダ 8aに供給する 力、を切り換えるスィッチである。 [0196] スィッチ lOeは、 PID Filter3bにより多重分離がなされた、セカンダリオーディオストリ ームを構成する TSパケット、 PID Filter3dにより多重分離がなされたセカンダリオーデ ィォストリームを構成する TSパケットのどちらを、オーディオデコーダ 8bに供給するか を切り換えるスィッチである。
BD-Jプレーン 11は、 BD-Jアプリケーションによる GUI描画に用いられるプレーンメ モリである。
[0197] Transport Buffer(TB)12aは、 textSTストリームに帰属する TSパケットが一旦蓄積さ れるバッファである。
Buffer(TB)12bは、 textSTストリームを構成する PESパケットが一旦蓄積されるバッフ ァである。
Text Based Subtitleデコーダ 12cは、 BD-ROM又はローカルストレージ 202から読 み出された textSTストリームにおいて、キャラクタコードを用いて、表現されている字 幕をビットマップに展開して、 PGプレーン 13cに書き込む。この展開には、 BD-ROM1 00又はローカルストレージ 202に格納されているフォントデータが用いられるので、 te xtSTストリームのデコードには、前もってかかるフォントデータを読み込んでおく必要 力 sある。
[0198] Transport Buffer(TB)13aは、 PGストリームに帰属する TSパケットが一旦蓄積される バッファである。
Presentation Graphics(PG)デコーダ 13bは、 BD- ROM又はローカルストレージ 202 力 読み出された PGストリームをデコードして、非圧縮グラフィクスを Presentation Gra phicsプレーン 13cに書き込む。 PGデコーダ 13bによるデコードにより、字幕が画面上 に現れることになる。
[0199] Presentation Graphics(PG)プレーン 13cは、一画面分の領域をもったメモリであり、 一画面分の非圧縮グラフィクスを格納することができる。
合成部 15は、 Primary Videoプレーン 4g、 Secondary Videoプレーン 5g、 BD一 Jプレ ーン 11、 Presentation Graphicsプレーン 13cの格納内容を重ねあわせて出力するも のであり、図 44のような内部構成を有する。図 44は、合成部 15の内部構成を示す図 である。本図に示すように合成部 15は、 1 _ひ 3乗算部 15a、 Scalling' Positioning部 1 5b、 α 3乗算部 15c、加算部 15d、 1 a l乗算部 15e、 α 1乗算部 15f、加算部 15g、 1ー ひ 2乗算部1511、 α 2乗算部 15i、加算部 15j力 構成される。
[0200] 1 a 3乗算部 15aは、ビデオデコーダ 4gに格納されている非圧縮のデジタルピク チヤを構成する画素の揮度に、透過率 1- a 3を乗じる。
Scalling ' Positioning部 15bは、ビデオプレーン 5gに格納されている非圧縮のデジタ ルピクチャを拡大 ·縮小する処理 (Scalling)を施し、また配置位置を変更する処理 (Posi tioning)を行う。この拡大 ·縮小は、メタデータにおける PiP_scaleに基づき、配置位置 の変更は、メタデータにおける PiP_horizontal_position、 PiP_vertical_positionに基づく
[0201] ひ 3乗算部 15cは、 Scalling ' Positioning部 15bにより、 Scalling, Positioningが施され た非圧縮のピクチャを構成する画素の揮度に対し、透過率ひ 3を乗じる。
加算部 15dは、 ひ 3乗算部 15cにより画素毎に透過率ひ 3が乗じられた非圧縮デジ タルピクチヤと、 1一 《 3乗算部 15aにより画素毎に透過率 1- α 3が乗じられた非圧縮 デジタルピクチャとを合成して、合成ピクチャを得る。
[0202] 1 - a 1乗算部 15eは、加算部 15dにより合成がなされたデジタルピクチャを構成す る画素の揮度に、透過率 1- a 1を乗じる。
a 1乗算部 15fは、 Presentation Graphicsプレーン 13cに格納されている非圧縮グラ フィクスを構成する画素の揮度に、透過率 α 1を乗じる。
加算部 15gは、 1 α ΐ乗算部 15eにより画素毎に透過率 l- α ΐが乗じられた非圧縮 デジタルピクチャと、 a 1乗算部 15fにより画素毎に透過率 α 1が乗じられた非圧縮グ ラフイクスとを合成して、合成ピクチャを得る。
[0203] 1 _ ひ 2乗算部 15hは、加算部 15gにより合成がなされたデジタルピクチャを構成す る画素の揮度に、透過率 1_ α 2を乗じる。
ひ 2乗算部 15iは、 Presentation Graphicsプレーン 13cに格納されている非圧縮グラ フィクスを構成する画素の揮度に、透過率ひ 2を乗じる。
加算部 15jは、 1 _ ひ 2乗算部 15hにより画素毎に透過率 1-ひ 2が乗じられた非圧縮 デジタルピクチャと、 a 2乗算部 15iにより画素毎に透過率ひ 2が乗じられた非圧縮グ ラフイクスとを合成して、合成ピクチャを得る。 [0204] 以上のように合成部 15には、複数の加算部が存在するので、 BD-Jアプリケーション が描画した表示内容は、ビデオストリームにおける再生映像と重ね合わされることに なる。そのため ADK環境においては、 AVClipの再生画像と、開発中の BD-Jアプリケ ーシヨンによる描画内容とが、どのように合成されて出力されるかを確認することがで きる。
HDMI送受信部 16は、 HDMI (HDMI:High Definition Multimedia Interface)を介して 接続された他の機器から、その機器に関する情報を受信とすると共に、加算部 15jの 合成により得られたデジタル非圧縮のビデオを、ミキサー 9aにより合成がなされたォ 一ディォデータと共に、 HDMIを介して接続された TV等の他の機器に送信する。
[0205] PSRセット 17は、再生装置に内蔵されるレジスタであり、 64個の BD-ROM Player Set ting/Status Register(PSR)と、 4096個の General Purpose Register (GPR)とからなる。 B D-ROM Player Setting/Status Registerの設定値 (PSR)のうち、 PSR4〜PSR8は、現在 の再生時点を表現するのに用いられる。 64個の BD-ROM再生装置 Setting/Status R egister(PSR)についての詳細は、以下の通りである。
[0206] PSR1:現在選択されてレ、るプライマリオーディオストリームのストリーム番号を格納す る。
PSR3:現在選択されてレ、るアングル番号を格納する。
PSR4:カレントタイトル番号を格納する。
PSR5:カレントチャプター番号を格納する。
[0207] PSR6 :カレントプレイリスト番号を格納する。
PSR7:カレントの Playltem番号を格納する。
PSR8:カレント PTM(Presentation TiMe)を格納する。
PSR13:パレンタルロックの設定を示す。
PSR14 :セカンダリオーディオストリームのストリーム番号、セカンダリビデオストリーム のストリーム番号を格納する。
[0208] PSR15 :オーディオ再生能力を示す。
PSR16:オーディオ再生にっレ、ての言語設定を示す。
PSR19:国コードを格納している。 PSR20:リージョンコードを格納してレ、る。
PSR29:ビデオ再生能力を示す。
[0209] PSR31:プロファイル/バージョン番号を示す。
PID変換部 18は、 PSRセット 17に格納されているストリーム番号を、 STN_Tableに基 づき、 PID参照値に変換して、変換結果たる PID参照値を PID Filter 3b, PID Filter3d に指示する。
[0210] 以上が、再生エンジン 205の内部構成である。続いて、再生制御エンジン 206につ いて説明する。再生制御エンジン 206は、具体的には、 PlayList情報に従って、 AVC1 ipを再生させるものである。図 45は、再生制御エンジン 206の処理手順を示すフロー チャートである。本フローチャートは、メソッド playPlaylistのコール時に実行されるもの であり、まず playPlaylistの引数 Playlistldにて指定された mplsファイルが存在するかど うかを判定する (ステップ S201)。もし存在すれば、引数 Playlistldにて指定された Play List情報を構成する. mplsファイルを読み込み (ステップ S202)、引数 markldにて指定 された PlayListMarkが存在するかどうかを判定する (ステップ S203)。
[0211] もし存在すれば、 PlayList情報における Playltem情報のうち、引数にて指定された P1 ayListMarkが存在する Playltemをカレント Playltemとする (ステップ S 204)。
ステップ S 206〜ステップ S 216は、 PlayList情報における各 Playltemに対する処理 を繰り返すループ構造になっている。このループ構造は、ステップ S215を終了条件 としたものであり、カレント Playltemの In_Timeに対応する Access Unit力ら、カレント Pla yltemの Out_Timeに対応する Access Unitまでを読み出しを BD-ROMドライブに命じ( ステップ S206)、カレント Playltemに previousPlayltemが存在するか否かを判定して (ス テツプ S207)、判定結果に応じて、ステップ S208の処理、ステップ S209〜ステップ S213の処理を選択的に実行する。具体的には、カレント Playltemに previousPlaylte mがなければ (ステップ S207で No)、カレント Playltemのうち、引数で指定された markl dから PlayItem_Out_Timeまでの再生をデコーダに命じる (ステップ S208)。
[0212] カレント Playltemに previousPlayltemがあれば (ステップ S207で Yes)、 ATC_deltalと 呼ばれる MainClipのためのオフセット値を算出し (ステップ S207)、それまでの ATC_S equenceにおける ATC値 (ATC 1)に、 ATC_deltalを加算することにより、新しレ、ATC_Se quenceの ATC値 (ATC2)を得る (ステップ S 210)。
また、上述した、 previousPlayltemが存在する場合、 MainClipにおける STC_Sequenc eが切り替わることになる。この切り替えにおいて、 STC_deltalと呼ばれるオフセット値 を求めて (ステップ S211)、それまでの STC_Sequenceにおける STC値 (STC1)に、 STC_ deltalを加算することにより (ステップ S212)、新しレ、 STC_Sequenceの STC値 (STC2)を 求める。
[0213] そして Audio Overrapのミュートをオーディオデコーダ 8a,bに指示した上で、 Playlte m_In_Timeから PlayItem_〇ut_Timeまでの再生をデコーダに命じる (ステップ S213)。 ステップ S208、ステップ S209〜ステップ S213のどちらかの処理を実行すればス テツプ S214を実行する。
ステップ S214は、カレント Playltemと同期再生している SubPlayltemが存在していて 、現在の再生時点 (カレント PTM(Presentation TiMe))が、その SubPlayltemと、次の Sub Playltemとの境界に達したかを判定する。もしステップ S214力 Wesになれば、図 46に おけるフローチャートの処理手順を実行する。
[0214] ステップ S215は、カレント Playltemが PlayList情報における最後の Playltemになつ たか否かの判定であり、最後の Playltemでなければ、 PlayList情報における次の Playl temを、カレント Playltemにして (ステップ S216)、ステップ S206に移行する。以上の 処理により、 PlayList情報における全ての Playltemに対して、ステップ S206〜ステツ プ S215の処理が施されることになる。
[0215] 図 46は、 PlayList情報における SubPlayltem情報に従った再生手順を示すフローチ ヤートである。
ステップ S221〜ステップ S223では、 1つの Playltem中の連続する 2つの SubPlaylte mのうち、一方の SubPlayltemから、他方の SubPlayltemへと再生が切り替つたとして、 その切り替え後の SubPlayltemを、カレント SubPlayltemとする (ステップ S221)。
[0216] そしてカレント SubPlayltemの In_Timeに相当する Access Unit力、ら、カレント SubPlaylt emの Out_Timeに相当する Access Unitまでの読み出しをローカルストレージ 202に命 じ (ステップ S222)、カレント SubPlayItem_In_Timeからカレント SubPlayItem_Out_Timeま での再生をデコーダに命じる (ステップ S223)。以上が、再生制御エンジンについて の説明である。
[0217] 以降、力かる再生制御エンジンに対する BD-Jアプリケーションの記述について説明 する。
以上のように PSRが規定されているため、 BD-Jアプリケーションは、以下のような処 理を行う。
DPSR15に示されるオーディオ再生能力、 PSR16に示される言語設定に基づき、プ ライマリオーディオストリームを選択して、選択されたストリーム番号を PSR1に書き込 む処理。
2) PSR15に示されるオーディオ再生能力、 PSR16に示される言語設定に基づき、セ カンダリオーディオストリームを選択して、選択されたストリーム番号を PSR14に書き込 む処理。
3) PSR29に示されるビデオ再生能力に基づき、セカンダリビデオストリームを選択し て、選択されたストリーム番号を PSR14に書き込む処理。
4)ユーザ操作に基づきアングル番号を決定して、 Playltem情報における multし clip_e ntryにて指示されている複数の AVClipの中から、そのアングル番号に対応するもの を再生させる処理。
5) PSR13に示されるパレンタルロックの設定に応じたプレイリストを選択して再生する 処理
そこで、 ECLIPSEを用いたデバッグにおいて、シリアルポートを通じて、これら PSRの 格納値の読み書きを実現する。このような BD-ROMコンテンツの詳細構成や PSRの設 定値に応じた統合テストを実行すれば、具体的なレベルで、 BD-Jアプリケーションの デバッグを行うことができる。
[0218] また AVコンテンツ及び再生エンジン力 S、上述したように構成されている場合、単体 テスト及び総合テストにおいて、 BD-Jアプリケーションのどのような API仕様に対して、 デバッグを実行すればよいかについて述べる。一般に、 Javaアプリケーションのデバ ッグは、 ECLIPSE等におけるデバッグツールを用いることで行われる。 ECLIPSEでは、 Java(TM)アプリケーションを、マイクロソフト社の汎用 OS"Windows(TM)"で動作させ、 デバッグすることができるからである。 [0219] 一方、 BD-Jアプリケーションの APIには、 GEM for media contrc^からの BD-J特有の 拡張部分を定義しているパッケージがある。このパッケージを、 org.bluray.mediaという 。 org.bluray.mediaにて定義されているイベントリスナには、以下のものがある。
AngleChangeListnerは、 AngleChange ヘントをノヽンドリンク、" 5るためのインタ1 ~フエ イスである。 AngleChangeイベントは、 PlayList情報における Multi_clip_entriesに従い、 複数のアングノレ映像を切り替える際に生成されるイベントであり、新たに再生対象と なった、アングノレ番号を通知するために、用いられる。
[0220] PanningChangeListnerは、 Panning制御の変化通知を受け取るため、アプリケーショ ンに実装される。
PiPStatusListnerは、再生されているプレイリストにおける PiPステータスイベントをハ ンドリングするためのインターフェイスである。 PiPステータスイベントとは、 PlayList情 報における PiP_meta_block_entryに従ってピクチャインピクチャを実行した際、セカン ダリビデオの座標や大きさの変化を通知するイベントである。
[0221] PlaybackListnerは、再生変化の通知を受け取るため、アプリケーションに実装され る。
PlaybackListnerにて通知される再生変化には、 MarkReached,PlayItemReachedがあ る。 MarkReachedは、 PSRにて指示される現在時点が PlayListMarkに到達したことを 通知する。 PlayltemReachedは、 PSRにて指示される現在時点が Playltemの境界に到 達したことを通知する。
[0222] UOMaskTableListnerは、 Playltem情報毎に設定された UOMaskTableの内容が変 化された時、生成されるイベントを受信するため、インプリメントされる。
これらのイベントは、 ECLIPSEでは規定されていないから、これらのイベントが発生し た際のデバッグを、上述したような ECLIPSEで行うことはできなレ、。
そこで単体テスト時において、デバッグ装置内の再生制御エンジンスタブ 126は、 B D-Jアプリケーションからの再生制御エンジンのコール時において、上述したようなィ ベントリスナに対するイベントを発生して、 BD-Jアプリケーションにおけるイベントリス ナが、正常に受信動作を行うようにする。
[0223] また総合テスト時において、 BD-Jアプリケーションからの再生制御エンジンのコー ノレ力 Sなされ、上述したようなイベントリスナに対するイベントが、再生制御エンジンから 出力されれば、このイベントを引数にして標準出力関数のコールを行うことで、かかる イベントを、再生装置からログサーバーターミナルに送信する。こうすることで、かかる イベントを受信した際のイベント名や詳細パラメータを、実行ログとしてログサーバー ターミナルに保存させる。
[0224] 以上のように本実施形態によれば、 AVClip、 Clip情報、 PlayList情報の具体的な記 述に基づき、 BD-Jアプリケーションによる描画や、ストリーム選択、ピクチャインピクチ ャの制御が正当になされるかどうかの動作確認を好適に実現することができる。 また、 Javaアプリケーションの汎用デバッグツールでは難しレ、、 BD-Jアプリケーショ ン固有の部分のデバッグを、実現することができるので、 BD-Jアプリケーションの開 発を促進することができる。
[0225] (第 7実施形態)
本実施形態は、先の実施形態に示した AVコンテンツをどのように制作するかにつ いて開示する。力かる AVコンテンツの制作は、ォーサリングシステムと呼ばれる専用 のシステムでなされる。本システムは、制作スタジオに設置され、ユーザの使用に供さ れる。図 47は、本実施形態に係るォーサリングシステムの内部構成と、本システムに おけるデバッグ装置の位置付けを示す図である。以降、本図を参照しながら、ォーサ リングシステムについての説明を行う。
[0226] 本図に示すようにォーサリングシステムは、タイトル構造作成装置 51、リールセット 編集装置 52、 BDシナリオ生成装置 53、素材作成/インポート装置 55、 ディスク作成 装置 56、検証装置 57、マスター作成部 58といった装置を、構内ネットワークを介して 互いに接続することで構成される。
1)タイトル構造作成装置 51
タイトル構造作成装置 51は、 BD-ROMに記録されるべき各タイトルがどのようなコン テンッで構成されるかを決定する。本装置による決定は、タイトル構造情報を作成す ることでなされる。
2)リールセット編集装置 52 リールセット編集装置 52は、ビデオ、オーディオ、字幕、ボタンアニメーションなど映 画として完結する複数のエレメンタリーストリームの関係を決定する。例えば、 1本の 映画が 1本のビデオ、 2本のオーディオ、 3本の字幕、 1本のボタンアニメーションから なる場合、それらで一本の映画となることを指定し、また、映画本編に対して、一部分 だけ映像が異なるようなディレクターズカットを指定したり、複数のアングノレを持つマ ルチアングルを設定する。
3) BDシナリオ生成装置 53
BDシナリオ生成装置 53は、メニュー編集部 53aと、シナリオ編集部 53bとから構成 される。
(メニュー編集部 53a)
メニュー編集部 53aは、 GUIを経由したユーザ操作に従って、メニューにおけるボタ ンの配置や、ボタンに付加されるコマンド、ボタンアニメーションなどの機能を作成す る。
(シナリオ編集部 53b)
シナリオ編集部 53bは、 GUIを経由したユーザ操作に従った編集処理をタイトル構 造作成装置 51によって作成されたタイトル構造情報に施すことにより、シナリオを作 成し出力する。ここでシナリオとは、デジタルストリームの再生にあたって、タイトノレ単 位での再生を再生装置に行わせる情報であり、 BD-ROMでは IndexTable、 MovieObj ect、 PlayListとして定義されている情報がシナリオにあたる。 BD-ROMシナリオデータ には、ストリームを構成する素材情報、再生経路情報、メニュー画面配置、メニューか らの遷移情報などを含み、ユーザーはこれらの情報の検証が完了するまでシナリオ 編集作業を行う。このシナリオ編集作業では、シナリオ編集部 53bは、タイトル構造情 報のプレイリストリストの内容を設定する。
4)素材作成/インポート装置 55は、字幕作成部 55a、オーディオインポート部 55b、 ビデオインポート部 55cから構成される。入力されるビデオ素材、オーディオ素材、字 幕用素材、 Java(TM)プログラムソースコード等を、 BD-ROM規格に準拠した形式に変 換し、ディスク作成装置 56に受け渡す。
(字幕作成部 55a)
字幕作成部 55aは、字幕と表示タイミング、およびフェードイン/フェードアウトなどの 字幕の効果を含む字幕情報ファイルを元にして、 BD-ROM規格に準拠した Presentat ion Graphicsストリームを生成して出力する。
[0228] (オーディオインポート部 55b)
オーディオインポート部 55bは、あらかじめ AC— 3などで圧縮されているオーディオ が入力された場合には、対応するビデオに対するタイミング情報などを付加したり、 余分なデータを削除する等処理を施した上で出力する。圧縮されていない場合には 、ユーザーが指定するフォーマットに変換して出力される。
[0229] (ビデオインポート部 55c)
ビデオインポート部 55cは、あらかじめ MPEG2、 MPEG4_AVC、 VC-1などの方式で 圧縮されているビデオストリームが入力された場合、必要に応じて不必要な情報を削 除する。また、非圧縮のビデオストリームが入力された場合には、かかるビデオストリ ームを、ユーザーが指定するパラメーターに従って圧縮した後、出力する。
[0230] 6)ディスク作成装置 56
ディスク作成装置 56は、静止画エンコーダー 56b、データベース生成部 56c、マル チプレクサ 56e、フォーマット部 56f、ディスクイメージ作成部 56gから構成される。
(静止画エンコーダー 56b)
静止画エンコーダー 56bは、入力された BD-ROMシナリオデータに静止画または 静止画が保持されている場所が含まれる場合に、入力素材に含まれる静止画用ィメ 一ジの中力も該当する静止画を選択し、 BD-ROMに準拠した MPEG2、 MPEG4-AV C、 VC1のいずれかの形式に変換する。
[0231] (データベース生成部 56c)
データベース生成部 56cは、入力された BD-ROMシナリオデータを元にして、 BD- ROMに準拠したシナリオデータのデータベースを生成する。ここでのデータベースと は、前述の BD-ROMで定義される Index.bdmv、 Movieオブジェクト、プレイリスト、 BD- J オブジェクトなどの総称である。
(マルチプレクサ 56e)
マルチプレクサ 56eは、 BD-ROMシナリオデータに記述されているビデオ、オーディ ォ、字幕、メニューを実現する複数のエレメンタリーストリームを多重化して、 MPEG2- TS形式の AVClipと呼ばれるデジタルストリームを得る。また、マルチプレクサ 56eは、 前記 AVClipを出力すると同時に、 AVClipに関する情報を持つ Clip情報を出力する。
[0232] 具体的には、 AVClipの何パケット目の TSパケットに Iピクチャ、 IDRピクチャの先頭が 存在するかを検出して、この対応付けを作成することで EPjnapを生成する。マルチプ レクサ 56eは、 自ら生成した EPjnapと、ストリーム毎の音声属性、映像属性などを示す 属性情報をペアにして Clip情報を作成する。
(フォーマット部 56f)
フォーマット部 56fは、前述のデータベース、 AVClip, PC100により生成された BD-J アプリケーションを入力とし、 BD-ROMフォーマットに適合したデータ構造で、ファイル の配置処理を行う。 BD-ROMの応用層を規定するディレクトリ構造を作成し、各フアイ ルを適切な箇所に配置する。この時、フォーマット部 56fは、 BD-Jアプリケーションと A VClipの関連付けを行う。以上のようなディレクトリ構造を、ユーザからの対話操作に 基づいて作成してゆくことで、本装置は、ファイル同士の関連付けを完成させてゆく。
(ディスクイメージ作成部 56g)
ディスクイメージ作成部 56gは、前述のデータベース、 AVClipを入力とし、これらに B D-ROMフォーマットに適合したアドレスに割り付けてボリュームイメージを得る。
6)検証装置 57
検証装置 57は、エミュレータ一部 57aとベリファイア一部 57bとからなる。
[0233] エミュレータ一部 57aでは、前述のボリュームイメージを入力として、実際の映画コン テンッを再生し、制作者が意図した通りの動作、例えばメニューから本編映画への遷 移が正しく行われている力、字幕切り替えやオーディオ切り替えは意図したとおりに 動作している力、、映像やオーディオの品質は意図したとおりにできているかなどを検 証する。
(ベリファイア一部 57b)
ベリファイア一部 57bでは、前述のボリュームイメージを入力として、制作されたデー タカ BD-ROMの規格に準拠してレ、るかどうかを検証する。
[0234] 〇ut_of_MUXストリームでピクチャインピクチャを実現するにあたっては、 STN_tableに おいて同時に再生することが許可されている複数のエレメンタリストリームにおける、 T Sパケットの、 1秒当たりの総ビット量を、 48Mbit以下に制限せねばならない。この制限 が満たされているかどうかを確認するため、ベリファイア一部 57bは、 ATC時間軸上の 任意の 1秒という期間において、ビット量がこの制限以下であるかを確認するこの 1秒 という単位時間は、 "Window"と呼ばれ、 ATC Sequenceの時間軸上の任意の位置に 置かれる。つまり、デコードエレメンタリストリームにおけるビット量は、どのような 1秒の 期間においても、この 48Mbit以下という条件を満たす必要がある。
[0235] ォーサリング時には、 Sourceパケット列において、かかる Windowを、 1パケットずつシ フトさせつつ、 1秒という期間内の、 TSパケットのビット数力 48Mbit以下という制限を 満たすかどうかをチェックする。もし、制限を満たせば、次の TSパケットに Windowをシ フトさせ、制限を満たさねば、 BD-ROM規格に違反していると断定する。そして、かか るシフトを繰り返した結果、 Windowの Out_Timeが、最後の Sourceパケットに達すれば 、当該 Sourceパケットは、 BD- ROM規格に整合しているとの判定を下すのである。
[0236] このようにボリュームイメージはエミュレーター 57a、およびベリファイア一 57bで検証 され、エラーが発見されると、然るべき前工程に戻って作業をやり直す。これら 2つの 検証過程を経た後、マスター作成部 58を経て、 BD-ROMプレス用データが完成し、 ディスクの製造を行うプレス工程に入る。
次に図 48を参照しながら、フォーマッティング工程における処理の流れにっレ、て説 明する。
[0237] ステップ S301にて、ユーザはタイトル構造作成装置 51を用いて BD-ROMのタイトル 構造を設定する。これによりタイトル構造情報が作成される。
ステップ S303にて、ユーザはタイトルに利用する動画、音声、静止画、字幕情報を 用意した後、素材作成/インポート装置 55を利用し、ディスク作成装置 56に対してィ ンポートを行う。
[0238] ステップ S304にて、 IDクラス作成部 111、 Java(TM)プログラミング部 112を用いて、 J ava(TM)タイトル用の Java(TM)プログラムソースコード、プログラム付加情報、 IDクラス ソースコードを作成する。
ステップ S305にて、ユーザは Java(TM)インポート部 114を利用し、ステップ S4にて 作成された Java(TM)プログラムソースコード、 IDクラスソースコードをディスク作成装置 56にインポートする。
[0239] ステップ S306にて、 ID変換部 115は、 IDクラスソースコード、 BD-Jオブジェクト生成 情報における記述を、実際のディスク上のタイトル番号、プレイリスト番号に変換する ステップ S307にて、 &0^)プログラムビルド部116は、ステップ S306で出力され たソースコードを利用し、コンパイル処理によって Java(TM)プログラムを作成する。尚 、ステップ S306とステツステップ S307はタイトル構造情報に Java(TM)タイトルが存在 しない場合は、スキップすることが出来る。
[0240] ステップ S308にて、静止画エンコーダ 56bは、 BD-ROMシナリオデータに静止画ま たは静止画が保持されている場所が含まれる場合には、該当する静止画を BD-RO Mに準拠した MPEG2、 MPEG4-AVC, VC1のいずれかの形式に変換する。
ステップ S309にて、マルチプレクサ 56eは、 BD- ROMシナリオデータに従って、複 数のエレメンタリーストリームの多重化を行レ、、 MPEG2-TS形式の AVClipを作成する
[0241] ステップ S310にて、データベース生成部 56cは、 BD- ROMシナリオデータに従って
、 BD-ROMに準拠したデータベース情報を作成する。
ステップ S311にて、フォーマット部 56fは、ステップ S307で作成された Java(TM)プ ログラム、ステップ S309で作成された AVClip、ステツステップ S10で作成されたデー タベースを入力とし、 BD-ROMに準拠したフォーマットでファイルの配置を行う。このと き、 Java(TM)プログラムと AVClipの関連付けを行い、ファイル関連情報を作成する。
[0242] ステップ S312にて、ディスクイメージ作成部 56gは、ファイル関連情報を利用しなが ら、ステップ S311によって作成されたファイル群を使レ、、 BD-ROMフォーマットに適 合したボリュームイメージを作成する。
ステップ S313にて、検証部 57は、ステップ S12にて作成されたディスクイメージの 検証を行う。もしエラーが発生した場合は、然るべき前工程に戻って作業のやり直し を行う。
[0243] 以上のようなォーサリングシステムにおいて、デバッグ装置は、フォーマット部 56fに よる変換を実行する前に、 Java(TM)プログラムソースコードから BD-Jアプリケーション を作成して、 IDE環境及び ADK環境において、動作確認を行うので、上述したような 図に示した全体工程におけるやり直しを減らすことができる。
(第 8実施形態)
本実施形態は、 JARアーカイブファイルの詳細構成を開示する実施形態である。
[0244] 図 49 (a)は、ネットワークドライブのディレクトリ 'ファイル構造を示す。このディレクト リ 'ファイル構造は、ルートディレクトリ(ROOT)直下、 bdromディレクトリ、 BDVIDEOデ ィレクトリが置かれるというものである。ディレクトリ BDDATAには、次の 2種類のフアイ ルが記録されている。
(A) BD.ROOT.CERTIFICATE:ディスクルート証明書 301
これには、ディスクルート証明書のダミーが格納されている。ディスクルート証明書と は、この BD-ROMを作成した作成者力 ルート認証局から配布を受けたルート証明 書を、 BD-ROMに割り当てたものである。ディスクルート証明書はたとえば X.509の形 式で符号されている。 X.509の仕様は国際電信電話諮問委員会より発行されており、 し CITT Recommendation X.509 (1988), fhe Directory - Authentication Framewor k"に記載されている。 BD.ROOT.CERTIFICATEには、かかるルート証明書のダミー が存在している。
(B) OOOOl.JARアーカイブファイル: Java(TM)アーカイブファイル 302
JARアーカイブファイルの内部構成は、図 49 (b)のようなディレクトリ及びファイル構 成によって表現される。図 49 (b)は、 JARアーカイブファイルの内部構成を示す図で ある。
[0245] JARアーカイブファイルのディレクトリ構造は、 Rootディレクトリの配下に Xletlディレク トリと、 META— INFディレクトリとを設け、更にこの Xletlディレクトリの配下に、クラスフ アイルを格納した CLASSESディレクトリと、データファイルを格納した DATAディレクトリ とを配置するとレ、う階層構造になってレ、る。
これらの CLASSESディレクトリに構成されたファイル (Xletl.class)と、 DATAディレクト リに配置されたファイル (Xletl.dat)と力 クラスローダにより、仮想マシン内のヒープ領 域にロードされることにより、 BD-Jアプリケーションを構成することになる。
[0246] (i)Xletl. class:クラスファイル 401 クラスファイル 401は、バーチャルマシーン上で実行することができる Java(TM)ァプ リケーシヨンを定義するような構造体を格納したクラスファイル 401である。
(ii) MANIFEST.MF:マニフェストファイル 402
マニフェストファイル 402は、デジタル証明書に対応するものであり、 Java(TM)ァー 力イブファイル 302の属性、 Java(TM)アーカイブファイル 302内のクラスファイル 401 やデータファイルのハッシュ値が記載されてレ、るファイルである。 Java(TM)アーカイブ ファイル 302の属性には、クラスファイル 401のインスタンスである、 Java(TM)アプリケ ーシヨンに付与されるアプリ ID、 Java(TM)アーカイブファイル 302を実行するために最 初に実行すべきクラスファイル 401名がある。上記の二つの Java(TM)アーカイブファ ィル 302の属性が存在しない場合、 Java(TM)アーカイブファイル 302中のクラスファ ィル 401のインスタンスである Java(TM)アプリケーションを実行しなレ、。
(iii) SIG-BD.SF:シグネチヤファイル 403、
シグネチヤファイル 403は、マニフェストファイル 402のハッシュ値が記載されている ファイルである。
(iv) SIG-BD.RSA:デジタルシグネチヤファイル 404、
デジタルシグネチヤファイル 404は、「デジタル証明書チェーン」、シグネチャフアイ ル 403の「署名情報」が記載されているファイルである。
[0247] シグネチヤファイル 403に対する「署名情報」は、署名処理をシグネチヤファイル 40 3に施すことで得られる。これらの署名処理には、デジタルシグネチヤファイル 404内 のデジタル証明書チェーンにおける公開鍵に対応する秘密鍵が用いられる。
「デジタル証明書チェーン」とは、一つ目の証明書 (ノレート証明書)が二つ目の証明 書を署名し、また同じように n番目の証明書が n+1番目の証明書を署名している形を もつ複数の証明書群である。デジタル証明書チェーンの最後の証明書を「リーフ証 明書」と呼ぶ。この構成を利用することにより、ルート証明書力 順番に次の証明書を 保障していくことにより、デジタル証明書チヱーンの最後の証明書までを保障すること ができる。
[0248] 「ルート証明書」は、 BD.ROOT.CERTIFICATEファイルに存在するディスクルート証 明書 301と同じ証明書を格納している。 「リーフ証明書」には、組織 IDが記載されている。シグネチヤファイル 403は、 PKCS# 7という形式により格納されている。 PKCS#7は署名および一つ以上のデジタル証明 書を格納するためのファイル形式であり、 IETF (Internet Engineering Task Force) より発行された RFC2315に記載されてレ、る。 RFC2315は http:〃 www. ietf.org/rfc/rf c2315.txtより参照できる。
[0249] 通常、このデジタル証明書チェーンは、 1つであるが、後述する権限の提供がある 場合、このデジタル証明書チヱーンは 2つの作られる。これら 2つのデジタル証明書チ ヱーンを、第 1デジタル証明書チヱーン、第 2デジタル証明書チヱーンと呼ぶ。第 1デ ジタル証明書チェーンのルート証明書は、権限提供を受ける側の組織のディスクノレ ート証明書を示し、リーフ証明書は、権限提供を受ける側の組織の組織 IDを示す。第 2デジタル証明書チェーンのルート証明書は、権限を提供する側の組織のディスクノレ ート証明書を示し、リーフ証明書は、権限を提供する側の組織の組織 IDを示す。一 方、権限の提供がない場合、デジタル証明書チェーンは、 1つ (第 1デジタル証明書 チェーン)のみになる。
[0250] マニフェストファイル 402、シグネチヤファイル 403、デジタルシグネチヤファイル 40 4の詳細は Java(TM)アーカイブファイルの仕様に記載されている。マニフェストフアイ ノレ 402、シグネチヤファイル 403、デジタルシグネチヤファイル 404は署名処理および 署名検証処理を行うために利用される。最終的に Java(TM)アーカイブファイル 302中 のクラスファイル 401のインスタンスである Java(TM)アプリケーションやパーミッションリ タエストファイル 405をデジタル証明書により署名することが可能になる。以降マニフ エストフアイノレ 402、シグネチヤファイル 403、デジタルシグネチヤファイル 404をまと めて「デジタル証明書による署名」と称する。
[0251] (v)bd.Xletl.perm:パーミッションリクエストファイル 405
パーミッションリクエストファイル 405は、実行される Java(TM)アプリケーションにどの パーミッションを与えるのかの情報を格納するファイルである。具体的に以下の情報 を格納する。
(ァ) Credential (デジタル信用証明書)
(ィ)アプリ間通信の許可情報 以降、(ァ) Credentialについて説明する。 "Credential"とは、ある組織に帰属する組 織ディレクトリ内のファイルを共有化するための情報である。この共有化は、ある組織 に属するアプリケーション用ファイルを利用する権限を、他の組織に属するアプリケ ーシヨンに提供することでなされる。そのため Credentialは、権限を提供する側の組織 を示す提供者組織 ID、権限を受領する側の組織の識別を示す受領者組織 IDを含む
[0252] 図 50 (a)は、 Credentialのデータ構造の一例を示す。 Credentialには、ルート認証 局から提供者組織に配布されたルート証明書のハッシュ値 501、提供者組織に割り 当てられた提供者組織 ID 502、ルート認証局から受領者に配布された受領者ルート 証明書のハッシュ値 503、受領者組織に割り当てられた受領者組織 ID504、受領者 アプリ ID505、提供フアイノレリスト 506力、らなる。提供フアイノレリスト 506に fま、一つ以 上の提供ファイル名 507とアクセス方法 508 (読み取り可 ·書き込み可)の情報が格納 されてレ、る。 Credentialが有効であるためには署名されなければならなレ、。 Credential の署名にはデジタルシグネチヤファイル 404と同様に PKCS#7の方式を利用できる。
[0253] 図 50 (b)は、 Credentialの具体的な一例を示す図である。本図における Credential は、ファイル「4/5/scores.txt」に対して読み取り許可、ファイル「4/5ん tc/settings.txt 」に対して読み書き許可を Credentialにより与えていることになる。
続いて (ィ)アプリ間通信の許可情報について説明する。一つの Java(TM)ァーカイ ブファイル 302に含まれる Java(TM)アプリケーションは通常、他の Java(TM)ァーカイ ブファイル 302に含まれる Java(TM)アプリケーションとの通信(アプリ間通信)が許可 されなレ、。パーミッションリクエストファイル 405にアプリ間通信の許可が与えられてい る場合だけアプリ間通信が可能である。
[0254] 以上が、パーミッションリクエストファイル 405についての説明である。続いて、ルー ト証明書についてのより詳しく説明する。
図 51は、 BD-ROMにおいてルート証明書がどのように割り当てられるかを模式的に 示す図である。本図の第 1段目は、機器 (再生装置)と、この機器に装填される BD-R OMを示し、第 2段目は、これら機器及び BD-ROMを作成する業者(BD-ROMの作成 者、機器の製造業者)を示す。第 3段目は、ルート証明書を管理するルート認証局を 示す。
[0255] 本図において、 BD-ROMの作成者は、ルート認証局力らルート証明書の配布を受 け (fl)、配布されたルート証明書を、ディスクルート証明書 301として BD-ROMに割り 当てた上で、このルート証明書を BD.ROOT.CERTIFICATEに格納して、 BD-ROMに 書き込む (wl)。一方、 Java(TM)アーカイブファイル 302を作成するにあたって、このル ート証明書と、組織 IDを示すリーフ証明書とを SIG-BD.SFに収録して、 Java(TM)ァー 力イブファイル 302に包含させる。
[0256] BD- ROMではなく、 Java(TM)アーカイブファイル 302が、 WWWサーバからダウン口 ードされて、再生装置内の記憶装置に書き込まれる場合も同様である。かかるダウン ロードは、 BD-ROMに記録されたコンテンツのアップデートを目的とするものだ力 か 力、るダウンロードにおいて、 BD.ROOT.CERTIFICATEに収録され、ディスクルート証 明書 301として書き込まれているルート証明書と同一性をもつルート証明書を、 SIG- BD.SFに格納して Java(TM)アーカイブファイルに包含させる。こうすることで、 BD-RO Mに記録されたコンテンツのアップデートを目的とする Java(TM)アーカイブファイル 3 02を、ダウンロードにて再生装置に供給する場合も、 BD-ROMに割り当てたディスク ルート証明書 301を用いることにより、 Java(TM)アーカイブファイル 302の正当性を再 生装置に確認させることができる。
[0257] 図 52は、権限の提供がない場合の SIG_BD.RSA、 SIG-BD.SF, BD.ROOT.CERTIF ICATE、 MAMFEST.MFの相互関係を示す図である。本図における矢印 dlは、これら のファイルの内部構成の情報要素のうち、同一性があるものを示している。権限の提 供がなレ、場合、 BD.ROOT.CERTIFICATE内のルート証明書(ディスクルート証明書 3 01)は、 SIG-BD.RSAにおける第 1のデジタル証明書チェーン内のルート証明書と同 一性を有したものになる。
[0258] MAMFEST.MFは、クラスファイル XXXX.classを署名し、 SIG- BD.SFは、 MANIFEST .MFから算出されたハッシュ値を含み、 SIG-BD.RSAは、 SIG-BD.SFから算出された ハッシュ値を含んでいるので (矢印 hl)、これらの署名が正しいかどうかを確認し、これ らの図に示す同一性を判定することで、再生装置は、 Java(TM)アーカイブファイル 30 2が正当なもの力、、改竄が加えられたものかを判断することができる。また権限の提供 がないとの想定なので、本図では、 bd.XXXX.permを示していなレ、。
[0259] 図 53は、権限の提供がない場合の SIG_BD.RSA、 SIG_BD.SF、 BD.ROOT.CERTIF ICATE、 MANIFEST.MF, bd.XXXX.permの相互関係を示す図である。本図における 矢印 dl〜d6は、これらのファイルの内部構成の情報要素のうち、同一性があるものを 示している。権限の提供権限の提供があった場合も、 BD.ROOT.CERTIFICATE内の ルート証明書(ディスクルート証明書)は、 SIG-BD.RSAにおける第 1のデジタル証明 書チェーン内のルート証明書と同一性を有したものになる (矢印 dl)。一方、権限の提 供があると、 BD.ROOT.CERTIFICATE内のディスクルート証明書 301は、受領者のも のになるので、 bd.XXXX.permにおける Credentialの、受領者ルート証明書が、 BD.R ◦ OT.CERTIFICATE内のルート証明書と同一性をもつ (矢印 d2)。また、 Credentialに おける受領者組織 IDは、第 1のデジタル証明書チェーンにおけるリーフの組織 IDと同 一性をもつ (矢印 d3)。
[0260] bd.XXXX.permにおける Credentialの、提供者組織のルート証明書は、 SIG-BD.RS A内の第 2のデジタル証明書チェーンにおけるルート証明書と同一性をもつ (矢印 d4) 。また、 Credentialにおける提供者組織 IDは、 SIG-BD.RSAの第 2のデジタル証明書 チェーンにおけるリーフの組織 IDと同一性をもつ (矢印 d5)。 Credentialにおける受領 者アプリ IDは、 bd.XXXX.permにおレ、て Credential以外の部分に存在するアプリ IDと 同一性をもつ (矢印 d6)。
[0261] MANIFEST.MFは、クラスファイル XXXX.classから算出したハッシュ値を含み、 SIG- BD.SFは、 MANIFEST.Mから算出したハッシュ値を含み、 SIG- BD.RSAは、 SIG- BD.S Fから取得したハッシュ値を含むので (矢印 hl)、これらの署名が正しいかどうかを確認 し、これらの図に示す同一性を判定することで、再生装置は、 Java(TM)アーカイブフ アイル 302が正当なもの力、、改竄が加えられたものかを判断することができる。あらか じめ断っておくが、本実施形態では、ルート証明書の同一性を、それぞれのルート証 明書について算出されたハッシュ値を比較し、これらのハッシュ値が一致しているか どうかで判断するものとする。またハッシュ値の算出は一度行えばよぐ算出したもの をメモリ等に記憶して、利用することが一般的に行われる。ルート証明書からハッシュ 値を算出することや、メモリに格納したハッシュ値を取出すことを、ハッシュ値の「取得 」と呼ぶ。
[0262] 以上が、ディスクルート証明書及び JARアーカイブファイルについての説明である。
続いて、本実施形態に係るローカルストレージ 202、及び、 BD-Jプラットフォーム部 2 07の内部構成について説明する。図 54は、プラットフォーム部 207、及び、ロー力ノレ ストレージ 202の内部構成を示す図である。本図に示すようにプラットフォーム部 207 は、アプリケーションマネージャ 212、仮想マシン 213、セキュリティマネージャ 215か ら構成される。またローカルストレージ 202は、 Persistent領域 214を含む。
[0263] (アプリケーションマネージャ 212)
アプリケーションマネージャ 212は、仮想マシン 213内のヒープ領域内で動作する システムアプリケーションであり、アプリケーションシグナリングを実行する。〃アプリケ ーシヨンシグナリング"とは、 GEM1.0.2力規定する MHP(Multimedia Home Platform)に おいて、〃サービス〃を生存区間としてアプリケーションの起動、実行を行う制御をいう 。本実施形態におけるアプリケーションマネージャ 212は、この〃サービス〃の代わりに 、 BD-ROMにおける"タイトル"を生存区間にして、アプリケーションの起動、実行の制 御を実現する。ここで、〃タイトル"とは、 BD-ROMに記録されている映像'音声データ の再生単位であり、アプリケーション管理テーブル (ApplicationManagementTableO)が 一意に割り当てられている。
[0264] アプリケーションを起動させるにあたって、アプリケーションマネージャ 212は、起動 しょうとするアプリケーションが正当なものかどうかを判定する。この判定手順は以下 の通りである。 BD-ROMがローデイングされれば、 /BDDATA/BD.ROOT.CERTIFIC ATEというファイルの存在を確認する。ファイルが存在する場合、アプリケーションマ ネージャ 212がこのディスクルート証明書 301を BD-ROM力も読み取り、メモリ上に保 持する。その後、 Java(TM)アーカイブファイル 302を読みだし、この Java(TM)ァーカイ ブファイル 302に存在する署名を検証する。この検証が正しいのなら、アプリケーショ ンマネージャ 212は BD-ROM上に存在する Java(TM)アーカイブファイル 302中のクラ スフアイノレ 401を、仮想マシン 213内に読みだし、このクラスファイル 401のインスタン スをヒープ領域に生成することで、 Java(TM)アプリケーションを起動する。
[0265] (仮想マシン 213) 仮想マシン 213は、クラスファイルを BD-ROM力 読み出すユーザクラスローダ、ク ラスファイルに対応するインスタンスを Java(TM)アプリケーションとして格納するヒープ メモリ、スレッド、 Java(TM)スタック力も構成される Java(TM)アプリケーションの実行主 体である。ここでスレッドは、 Java(TM)アプリケーションにおけるメソッドを実行する論 理的な実行主体であり、ローカル変数や、オペランドスタックに格納された引数をォ ぺランドにして演算を行い、演算結果を、ローカル変数又はオペランドスタックに格納 する。スレッドによるメソッド実行は、メソッドをなすバイトコードを、 CPUのネイティブコ ードに変換した上、 CPUに発行することでなされる。このネイティブコード変換につい ては、本願の主眼から外れるため、説明を省く。 Java(TM)アーカイブファイル 302内 にパーミッションリクエストファイル 405が存在する場合、マニフェストファイル 402の 中に、 Java(TM)アプリケーションの正しいハッシュ値が入っていなければ、その Java(T M)アプリケーションを実行してはならなレ、。力、かるハッシュ値の判定のため、仮想マシ ン 213は、実行する Java(TM)アプリケーションはどの Java(TM)アーカイブファイル 302 に格納されてレ、たのかを示す情報をメモリ上に保持する。このパーミッションリクエスト ファイル 405を参照することで、仮想マシン 213はアプリケーションマネージャ 212が 保持するアプリ間通信の許可を確認し、 Java(TM)アプリケーションに対してアプリ間 通信の機能を提供する。
(Persistent領域 214)
Persistent領域 214は、 Java(TM) 10 Packageからのメソッドを用いることにより、ァク セスすることができるローカルストレージのー領域である。この Persistent領域 214は、 複数のドメイン領域を有する。ここでドメイン領域とは、各ディスクルート証明書 301に 対応するディレクトリ (図中の R1,R2)のことであり、これらのディレクトリの配下に、組織 毎のディレクトリ (図中の orgl,org2,org3)を格納するというものである。組織のアプリケ ーシヨン毎のディレクトリ(図中の orgl/appl,orgl/app2,orgl/app3 )は、 MHPのも のと同じである。つまりローカルストレージでは、 MHPに規定された各組織のアプリケ ーシヨン毎のディレクトリ(図中の orgl/appl,orgl/app2,orgl/app3 )を、ノレート証明 書に対応したディレクトリ (図中の R1,R2)の配下に配置した構成になっている。こうする ことで、 MHPの格納方式と、互換を維持することができる。ここでローカルストレージの ディレクトリ構成をアクセスするためのファイルパスのうち、ルート証明書に対応した部 分まで (図中の Root/Rl,Root/R2)を、〃ローカルストレージルード'という。
[0267] (セキュリティマネージャ 215)
セキュリティマネージャ 215は、ルート証明書から算出されたハッシュ値と、ロー力ノレ ストレージルートとの組みを複数示したハッシュ管理テーブルを保持しており、アプリ ケーシヨンから、ファイルの読み出し Z書き込みが要求されれば、要求元のアプリケ ーシヨンに対応するルート証明書について、ハッシュ値を算出して、そうして算出した ハッシュ値に対応したローカルストレージルートをハッシュ管理テーブルから選ぶ。そ うして選んだローカルストレージルートを、ファイルパスに組み入れる。また、 Credenti alに基づきファイルパスの組織 IDに対応するディレクトリを置き換える。こうすることで、 アプリケーションのファイルパスの記述は、 MHPに規定されたものと互換を保つことが できる。
以上がプラットフォーム部の構成である。このようにディスクルート証明書は、 Java(T M)アプリケーションの認証や Java(TM)アプリケーションの権限チェック、ローカルスト レージにおけるドメイン領域のアクセスに利用されることがわかる。し力 ディスクルー ト証明書は、 BD-ROM—枚に対して害 ijり当てられるものであるため、 BD-ROMが未完 成の段階では、上述したような Java(TM)アプリケーションの認証や Java(TM)アプリケ ーシヨンの権限チェック、ドメイン領域のアクセスをテストすることができなレ、。
[0268] そこで本実施形態では、上述したように、ディスクルート証明書のダミーデータを JA Rアーカイブファイルと共にネットワークドライブに格納してレ、る。そうすると JARァ一力 イブファイルをロードする際、再生装置は、このディスクルート証明書に対応するドメイ ン領域をクリエイトして、 BD-ROMコンテンツに対応する差分コンテンツを、このドメィ ン領域に格納する。
[0269] そして、 Java(TM)仮想マシンは、このディスクルート証明書を手掛かりに、ドメイン領 域をアクセスする。
このようにダミーのディスクルート証明書が JARアーカイブファイルに存在すれば、マ ゥントコマンドを発行された際、このダミーに基づき認証を行レ、、利用権限のチェック を行う。更に、このダミーに対応するドメイン領域をローカルストレージにクリエイトして 、 Java(TM)アプリケーションが利用するデータを、力かるドメイン領域に保存する。
[0270] 以上のように本実施形態によれば、 JARアーカイブファイル内に、ダミーデータを組 込んでおくことで、 Java(TM)アプリケーションの認証が正当になされる力、アプリケー シヨンに付与された利用権限が正当にチェックされるかを、テストすることができるの で、テスト効率を高めることができる。
(第 9実施形態)
本実施形態は、第 1実施形態に示した PC100と、第 2実施形態に示した再生装置 とを一体構成にする改良に関する。具体的には、本実施形態に係る PC100は、 BD- R〇Mドライブ、 AVコンテンツをデコードするためのハードウェア及びソフトウェア、プラ ットフォーム部を具備した PC100であり、ログサーバーターミナルは、 自装置内に存 在するプラットフォーム部から出力される実行ログを受け取り、収集するのである。
[0271] 例えば、 2つの AVコンテンツを含む BD-ROMのォーサリングにおいて、一方の AVコ ンテンッのォーサリングのみが完了し、もう一方のォーサリングは未完了であるような 場合に、効率的にアプリケーションの動作検証、および、解析 ·修正を行うことができ る。
図 55は、 BD-ROMドライブ、 AVコンテンツをデコードするためのハードウェア及びソ フトウェア、プラットフォーム部を具備した PC100の構成を示すブロック図である。本 図におけるデバッグ装置は、図 17、図 18に示した PC100のハードウェア構成、及び 、ソフトウェア構成と同一の構成要素 (PC上プラットフォーム部 122、抽象化コンテンツ 124、抽象化コンテンツ作成部 125、再生制御エンジンスタブ 126、 AV再生画面表 示部 128、シミュレーション環境更新部 129)を有する力 この PC上プラットフォーム 部 122の配下に、 BD-ROM再生装置 200の構成要素 (BD-ROMドライブ 201、ロー力 ノレストレージ 202、仮想ファイルシステム部 204、再生エンジン 205、再生制御ェンジ ン 206)が存在する点が異なる。
[0272] PC上プラットフォーム部 122は、 BD-Jアプリケーションからの再生要求の対象となる AVコンテンツのォーサリングが完了しているかどうかを判断し、 BD-Jアプリケーション 力 ォーサリング未完了の AVコンテンツに対する再生要求を受け取った場合には、 第 4施形態と同様のシミュレーションを実行するが、ォーサリング完了済みの AVコン テンッに対する再生要求を受け取った場合には、第 1実施形態と同様のマウント処理 を、ネットワークドライブではなぐ自身に内蔵されている HDDに対して実行するように している。
[0273] 以上のように本実施形態によれば、再生対象の AVコンテンツのォーサリングが完 了している場合には、 BD-ROM上に配置された実際の AVコンテンツを利用してァプ リケーシヨンの動作検証、及び、解析'修正を行い、再生対象の AVコンテンツのォー サリングが未完了の場合には、実際の AVコンテンツではなく抽象化コンテンツを利用 した AV再生エミユレーシヨンによるアプリケーションの動作検証、及び、解析'修正を 行うことが可能となる。
[0274] これにより、個々の AVコンテンツのォーサリング作業の進渉状況に応じて、最適な 方法でアプリケーションの動作検証、及び、解析 ·修正を効率的に実施することが可 能となる。なお、本実施の形態では、 BD-ROMに含まれる AVコンテンツが 2つの場合 を使つて説明してレ、るが、 3つ以上の AVコンテンッを含む BD-ROMが対象であつても よい。
(補足事項)
上記実施形態に基づいて説明してきたが、現在において最善の効果が期待できる システム例として提示したに過ぎない。本発明はその要旨を逸脱しない範囲で変更 実施することができる。代表的な変更実施の形態として、以下に掲げるものがある。 (記録媒体のバリエーション)
各実施形態では、 AVコンテンツやアプリケーションを記録する記録媒体ゃォーサリ ングの対象を BD-ROMとして説明を進めた力 この BD-ROMの物理的性質は、本発 明の作用'効果の発揮にさほど貢献していなレ、。 BD-ROM同様、 AVコンテンツを記 録し得る容量を持った記録媒体であるなら、他の記録媒体を採用してもよい。例えば 、 BD—ROM以外の CD-R〇M、 CD-R, CD-RW, DVD-ROM, DVD-R, DVD_RW、 DV D- RAM、 DVD+R、 DVD+RW等の他の光ディスクであってよいことはレ、うまでもなレ、。 また、 PD、 MO等の光磁気ディスクであってもよレ、。更に、 SDメモリカード、コンパクトフ ラッシュ(登録商標)カード、スマートメディア、メモリスティック、マルチメディアカード、 PCM-CIAカード等の半導体メモリーカードであってもよレ、。 HDD,フレキシブルデイス ク、 SuperBD- ROM、 Zip, Click!等の磁気記録ディスク、 ORB, Jaz、 SparQ、 Syjet、 E ZFley、マイクロドライブ等のリムーバブルハードディスクドライブであってもよい。無論 、ローカルストレージは、再生装置に装填され、所定の著作権保護がなされた記録媒 体であるならば、上述したような記録媒体の何れでもよレ、。
(BD-Jアプリケーションの配置場所)
各実施形態において、 BD-Jアプリケーションの配置場所は、 HDDを選んだ力 S、その 他 USB等で接続可能なメモリ等であっても構わない。
(ステップ S104での終了判定)
図 25のフローチャートではステップ S101にて Noであり、かつ、ステップ S102にて N 0である場合にのみ、ステップ S104で終了判定を行っているがステップ S102及び S1 03の判定結果に関わらず終了判定 (ステップ S104)を行っても良い。また、再生制 御 APIコールの受け付け(ステップ S101)を行った後で、シミュレーション情報の変更 を(ステップ S114)を行っている力 逆の順序で行ってもよレ、。さらには、ステップ S11 3の処理実行後にステップ S101に戻っている力 ステップ S110の実行後にステップ S 102の判定処理を行ってもよい。
[0275] (GUIの利用)
図 22では、再生情報の表示と、再生状況の変更とを同一の GUIで行っているが、 別々の GUI上で行ってもよレ、。
(画面の利用)
図 22において、 2つ以上の画面を利用して抽象化コンテンツとシミュレーション情報 の表示とを行ってレ、るが、 1つの画面を利用して表示するように構成しても良レ、。
(矩形の利用)
図 22では、矩形を利用した AV再生画面の表示を行っていた力 これだけではなく 、文字情報による表示のみを行うようにしても良いし、矩形の中にそれぞれの映像の 現在時点情報などを重畳する形で表示しても良い。また、矩形を単色で塗りつぶす 必要はなぐ任意の背景画像を表示するように構成しても良い。また、矩形の代わり に円形、多角形など任意の形状をした図形を利用しても良い。
[0276] また、再生状況の変更は、ユーザーからの数値、あるいは、文字列の入力を受け付 けることによって変更を行っている力 予め設定されている情報の表示を行いそのな 力からユーザーが選択することにより変更できるように構成してもよい。
(実装)
PC100におけるソフトウェア的な構成要素は、 PC100内の CPUなどの演算装置に よって実行されるように構成しても良レ、し、信号処理回路を用いて構成しても良レ、し、 上述の処理を実行する LSIなどの集積回路を用いて実現しても良い。
また、 PC100内のソフトウェア的な構成要素は、 PC100内のメモリなどに予め記録 されていても良いし、読み取り可能な記録媒体に格納されており、記録媒体に記録さ れた内容を読み取って実行する構成であってもよい。
抽象化コンテンツの作成は複数の画面を利用して設定を行っている力 1つの画面 のみで設定が行えるように構成してもよレ、。
(エラー表示)
AVコンテンツと抽象化コンテンツとがー致していない場合に、エラーメッセージを表 示して AVコンテンツと抽象化コンテンツのいずれを修正するかを選択可能なように構 成してもよい。 また、 2つ以上の AVコンテンツが存在する場合には、ひとつ AVコン テンッが完成するたびに、 AVコンテンツを BD-ROMに配置するようにしても良い。
(BD-Jアプリケーションの個数)
本実施の形態では AVコンテンツの再生制御を行うアプリケーションが一つの場合 を例に説明を行うが、アプリケーションが 2つ以上あってもよい。
(現在時点の変更)
第 4実施形態では、現在時点の変更をユーザーがタイムコードを変更することにより 行っているが、プレイリストやチャプター番号を指定することにより再生位置の変更を 行っても良い。また、ユーザーに設定させるのではなぐタイマーを利用して一定時 間が経過する毎に再生位置を自動的に変更するように構成しても良い。
(AVコンテンツ、 BD-Jアプリケーションの配置)
AVコンテンツ、 BD-Jアプリケーションは、それぞれ BD-R〇M、 HDDに酉己置するとレヽ うのは一例であり、 BD-Jアプリケーションを BD-ROMに配置してもよいし、 AVコンテン ッを HDDに配置してもよレ、。またローカルストレージに配置してもよい。 [0278] IDE環境においては、図 13に示したような Log出力 APIや、これを利用するデバッグ ルーチンを、デバッグ時のみコンパイルするよう、コンパイルスィッチを設定しておこと が望ましい。
標準出力関数による実行ログは、サービスマン機能として、特殊な操作がなされた のみ、実行されるようにすることが望ましい。
[0279] (差分コンテンツの作成工程)
映画作品を、 BD-ROMコンテンツと、差分コンテンツとで構成する場合は、上述した 企画工程からフォーマッティング工程までを実行する。そうして、 1つのボリュームデー タを構成する AVClip、 Clip情報、 PlayList情報が得られれば、これらのうち、既に BD- ROMにて供給すべきものを除外し、残ったものを、差分コンテンツとして、アーカイバ プログラム等で 1つのファイルにまとめる。こうした処理を経て、差分コンテンツが得ら れれば、力かる差分コンテンツを WWWサーバに供し、再生装置からの要求に応じて 、再生装置に送出する。
[0280] (システム LSI化)
第 1実施形態に示した再生装置の内部構成は、 1つのシステム LSIとして構成しても よい。
システム LSIとは、高密度基板上にベアチップを実装し、パッケージングしたものを いう。複数個のベアチップを高密度基板上に実装し、パッケージングすることにより、 あた力も 1つの LSIのような外形構造を複数個のベアチップに持たせたものも、システ ム LSIに含まれる (このようなシステム LSIは、マルチチップモジュールと呼ばれる。)。
[0281] ここでパッケージの種別に着目するとシステム LSIには、 QFP (タッドフラッドアレイ) 、 PGA (ピングリッドアレイ)という種別がある。 QFPは、パッケージの四側面にピンが 取り付けられたシステム LSIである。 PGAは、底面全体に、多くのピンが取り付けられ たシステム LSIである。
これらのピンは、他の回路とのインターフェイスとしての役割を担っている。システム LSIにおけるピンには、こうしたインターフェイスの役割が存在するので、システム LSI におけるこれらのピンに、他の回路を接続することにより、システム LSIは、再生装置の 中核としての役割を果たす。 [0282] 力かるシステム LSIは、再生装置は勿論のこと、 TVやゲーム、パソコン、ワンセグ携 帯等、映像再生を扱う様々な機器に組込みが可能であり、本発明の用途を多いに広 げること力 Sできる。
図 56は、再生装置の主たる構成要素を組込んだシステム LSIを模式的に示す図で ある。
[0283] 具体的な生産手順の詳細は以下のものになる。まず各実施形態に示した構成図を 基に、システム LSIとすべき部分の回路図を作成し、回路素子や IC,LSIを用いて、構 成図における構成要素を具現化する。
そうして、各構成要素を具現化してゆけば、回路素子や IC,LSI間を接続するバスや その周辺回路、外部とのインターフェイス等を規定する。更には、接続線、電源ライン 、グランドライン、クロック信号線等も規定してゆく。この規定にあたって、 LSIのスぺッ クを考慮して各構成要素の動作タイミングを調整したり、各構成要素に必要なバンド 幅を保証する等の調整を加えながら、回路図を完成させてゆく。
[0284] 各実施形態の内部構成のうち、一般的な部分については、既存の回路パターンを 定義した Intellectual Propertyを組み合わせて設計するのが望ましレ、。特徴的な部分 につレ、ては、 HDLを用いた抽象度が高レ、動作レベルを記述やレジスタトランスファレ ベルでの記述を用いてトップダウン設計を行うのが望ましい。
回路図が完成すれば、実装設計を行う。実装設計とは、回路設計によって作成され た回路図上の部品 (回路素子や IC, LSI)を基板上のどこへ配置するか、あるいは、回 路図上の接続線を、基板上にどのように配線するかを決定する基板レイアウトの作成 作業である。
[0285] こうして実装設計が行われ、基板上のレイアウトが確定すれば、実装設計結果を CA Mデータに変換して、 NC工作機械等の設備に出力する。 NC工作機械は、この CAM データを基に、 SoC実装や SiP実装を行う。 SoC(System on chip)実装とは、 1チップ上 に複数の回路を焼き付ける技術である。 SiP(System in Package)実装とは、複数チッ プを樹脂等で 1パッケージにする技術である。以上の過程を経て、本発明に係るシス テム LSIは、各実施形態に示した再生装置の内部構成図を基に作ることができる。図 57は、こうして作られたシステム LSIを、機器に装備した状態を示す図である。 [0286] 尚、上述のようにして生成される集積回路は、集積度の違いにより、 IC、 LSI,スーパ 一 LSI、ゥノレトラ LSIと呼称されることもある。
FPGAを用いてシステム LSIを実現した場合は、多数のロジックエレメントが格子状に 配置されており、 LUT(Look Up Table)に記載されている入出力の組合せに基づき、 縦'横の配線をつなぐことにより、各実施形態に示したハードウェア構成を実現するこ とができる。 LUTは、 SRAMに記憶されており、力かる SRAMの内容は、電源断により 消滅するので、力、かる FPGAの利用時には、コンフイダ情報の定義により、各実施形 態に示したハードウェア構成を実現する LUTを、 SRAMに書き込むませる必要がある 。更に、デコーダを内蔵した映像復調回路は、積和演算機能を内蔵した DSPで実現 するのが望ましい。
(アーキテクチャ)
本発明に力かるシステム LSIは、再生装置の機能を実現するものなので、システムし SIは、 Uniphierアーキテクチャに準拠させるのが望ましい。
[0287] Uniphierアーキテクチャに準拠したシステム LSIは、以下の回路ブロックから構成さ れる。
•データ並列プロセッサ DPP
これは、複数の要素プロセッサが同一動作する SIMD型プロセッサであり、各要素プ 口セッサに内蔵されている演算器を、 1つの命令で同時動作させることで、ピクチャを 構成する複数画素に対するデコード処理の並列化を図る。
'命令並列プロセッサ IPP
これは、命令 RAM、命令キャッシュ、データ RAM、データキャッシュからなる「Local Memory Contoroller」、命令フェッチ部、デコーダ、実行ユニット、レジスタファイル力、 らなる「Processing Unit部」、複数アプリケーションの並列実行を Processing Unit部に 行わせる「Virtual Multi Processor Unit部」で構成される。
[0288] . CPUブロック
これは、 ARMコア、外部バスインターフェイス (Bus Control Unit:BCU)、 DMAコント口 ーラ、タイマー、ベクタ割込コントローラといった周辺回路、 UART、 GPIO(General Pur pose Input Output),同期シリアルインターフェイスなどの周辺インターフェイスで構成 される。先に述べたコントローラは、この CPUブロックとしてシステム LSIに実装される。
[0289] 'ストリーム I/Oブロック
これは、 USBインターフェイスや ATA Packetインターフェイスを介して、外部バス上 に接続されたドライブ装置、ハードディスクドライブ装置、 SDメモリカードドライブ装置 とのデータ入出力を行う。
•AVI/0ブロック
これは、オーディオ入出力、ビデオ入出力、〇SDコントローラで構成され、テレビ、 A Vアンプとのデータ入出力を行う。
[0290] 'メモリ制御ブロック
これは、外部バスを介して接続された SD-RAMの読み書きを実現するブロックであり 、各ブロック間の内部接続を制御する内部バス接続部、システム LSI外部に接続され た SD-RAMとのデータ転送を行うアクセス制御部、各ブロックからの SD-RAMのァクセ ス要求を調整するアクセススケジュール部からなる。
(本発明に係るプログラムの生産形態)
本発明に係るプログラムは、コンピュータが実行することができる実行形式のプログ ラム (オブジェクトプログラム)であり、実施形態に示したフローチャートの各ステップや 、機能的構成要素の個々の手順を、コンピュータに実行させるような 1つ以上のプロ グラムコードから構成される。ここでプログラムコードは、プロセッサのネイティブコード 、 JAVAバイトコードというように、様々な種類がある。
[0291] 本発明に力かるプログラムは、以下のようにして作ることができる。先ず初めに、ソフ トウエア開発者は、プログラミング言語を用いて、各フローチャートや、機能的な構成 要素を実現するようなソースプログラムを記述する。この記述にあたって、ソフトウェア 開発者は、プログラミング言語の構文に従い、クラス構造体や変数、配列変数、外部 関数のコールを用いて、各フローチャートや、機能的な構成要素を具現するソースプ ログラムを記述する。
[0292] 記述されたソースプログラムは、ファイルとしてコンパイラに与えられる。コンパイラは 、これらのソースプログラムを翻訳してオブジェクトプログラムを生成する。
オブジェクトプログラムが生成されるとプログラマはこれらに対してリンカを起動する 。リンカはこれらのオブジェクトプログラムや、関連するライブラリプログラムをメモリ空 間に割り当て、これらを 1つに結合して、ロードモジュールを生成する。こうして生成さ れるロードモジュールは、コンピュータによる読み出しを前提にしたものであり、各フロ 一チャートに示した処理手順や機能的な構成要素の処理手順を、コンピュータに実 行させるものである。以上の処理を経て、本発明に係るプログラムを作ることができる
。く BR〉
産業上の利用可能性
本発明に係る再生装置及びデバッグ装置は、上記実施形態に内部構成が開示さ れており、この内部構成に基づき量産することが明らかなので、資質において工業上 利用することができる。そして、 AVコンテンツの再生を行うための環境が存在しない 場合のアプリケーション解析'修正等の用途にも応用できる。

Claims

請求の範囲
[1] アプリケーションの開発を支援する機能を有した再生装置であって、
アプリケーションが配置されている記録媒体におけるネットワークファイルシステム 情報を取得して、 自身に装填されている記録媒体におけるファイルシステム情報と組 み合わせることで、仮想的なファイルシステムを得るマウント手段と、
仮想的なファイルシステムから認識することができるアプリケーションを実行するブラ ットフォーム部と、
仮想的なファイルシステムから認識することができる AVコンテンツを、前記アプリケ ーシヨンからの指示に従い再生する再生制御エンジンとを備え、
前記開発支援機能とは、プラットフォーム部がアプリケーションを実行するにあたつ ての実行情報を、ネットワーク上で送受信する機能である、再生装置。
[2] 前記再生制御エンジンは、状態レジスタを有し、
実行情報は、再生制御エンジン内の状態レジスタから読み出された設定値、又は、 当該状態レジスタに書き込むべき設定値を含み、
当該設定値は、
AVコンテンツにおける現在の再生時点、
AVコンテンツを構成するエレメンタリストリームのうち、現在選択されているもののス トリーム番号、
再生装置における再生能力、
再生装置における言語設定、年齢設定の何れかを示す
ことを特徴とする請求項 1記載の再生装置。
[3] 前記プラットフォーム部による実行情報の送信は、
所定のイベントをプラットフォーム部が受信した際になされ、
所定のイベントは、
マルチアングル区間におけるアングル切り替えを通知するイベント、
パンニング制御の変化を示すイベント、
ピクチャインピクチャ再生におけるステータス変化を通知するイベント、
現在時点がプレイリストマークに到達したことを通知するイベント、 現在時点が、プレイリストを構成するプレイアイテムの境界に到達したことを通知す るイベントの何れかであり、
プラットフォーム部により送信される実行情報は、
プラットフォーム部により受信されたイベントのイベント名、受信したイベントにおける 詳細パラメータを含む
ことを特徴とする請求項 1記載の再生装置。
[4] 前記再生装置に装填されている記録媒体には、光ディスクと、ローカルストレージとが あり、
AVコンテンツは、光ディスク又はローカルストレージの何れかに記録されたプレイリ スト情報と、エレメンタリストリームとを含み、
プラットフォーム部は、再生制御エンジンにプレイリスト情報に従レ、、光ディスク又は ローカルストレージに記録されているエレメンタリストリームの再生を再生制御ェンジ ンに行わせる、プログラミングインターフェイスを含み、
プラットフォーム部による実行情報の送信は、プログラミングインターフェイスをコー ルした際に実行され、
実行情報は、前記コール時における、再生制御エンジンからの戻り値を含む ことを特徴とする請求項 1記載の再生装置。
[5] 前記アプリケーションは、タイトルバウンダリアプリケーションであり、
前記プラットフォーム部による実行情報の送信は、
タイトルがユーザにより選択された際、タイトルの再生が終了した際になされる ことを特徴とする請求項 1記載の再生装置。
[6] 前記アプリケーションは、ディスクに固有なディスクルート証明書を用いて、署名がな された署名付きアプリケーションであり、
マウント手段は、マウントにあたって、ダミーのディスクルート証明書の取得を行い、 前記プラットフォーム部によるアプリケーションの実行は、マウント手段により取得さ れたダミーのディスクルート証明書を用いて、認証処理を行い、当該認証処理にて、 アプリケーションの正当が確認された場合のみなされる
ことを特徴とする請求項 1記載の再生装置。
[7] 再生装置は、ローカルストレージを備え、
ローカルストレージは、複数のドメイン領域を有し、
前記アプリケーションは、複数のドメイン領域のうち、自身に割り当てられたディスク ルート証明書に対応するものをアクセスする
ことを特徴とする請求項 6記載の再生装置。
[8] デバッグ装置であって、
ユーザからの指示に従い、アプリケーションに対する解析操作及び/又は修正操 作を実行するデバッグ手段と、
ネットワークを介して、再生装置との送受信を行う送受信手段とを備え、 前記送受信手段は、
アプリケーションの解析及び修正を実行するにあたって、アプリケーションが記録さ れた記録媒体におけるネットワークファイルシステム情報、及び、アプリケーションを 再生装置に送信し、再生装置上のプラットフォーム部による実行情報の送受信を、再 生装置との間で実行する
ことを特徴とするデバッグ装置。
[9] 前記アプリケーションのデバッグには、
クロス開発の段階におけるデバッグと、
総合テストの段階におけるデバッグとがあり、
前記デバッグ装置は、スタブに基づきアプリケーションを動作させることで統合テス トの段階におけるデバッグを実行し、
前記スタブは、
再生装置における再生制御エンジンの代替手段であり、
再生制御エンジンにおける状態設定を示す状態レジスタを有し、再生制御エンジン が発するイベントの、ダミーとなるイベントを発する
ことを特徴とする請求項 8記載のデバッグ装置。
[10] 再生装置に組込まれ、アプリケーションの開発を支援する機能を有したシステム LSI であって、
アプリケーションが配置されている記録媒体におけるネットワークファイルシステム 情報を取得して、 自身に装填されている記録媒体におけるファイルシステム情報と組 み合わせることで、仮想的なファイルシステムを得るマウント手段と、
仮想的なファイルシステムから認識することができるアプリケーションを実行するブラ ットフォーム部と、
仮想的なファイルシステムから認識することができる AVコンテンツを、前記アプリケ ーシヨンからの指示に従い再生する再生制御エンジンとを備え、
前記開発支援機能とは、プラットフォーム部がアプリケーションを実行するにあたつ ての実行情報を、ネットワーク上で送受信する機能である、システム LSI。
コンピュータに開発支援機能を実現させるプログラムであって、
プログラムが配置されている記録媒体におけるネットワークファイルシステム情報を 取得して、自身に装填されている記録媒体におけるファイルシステム情報と組み合わ 仮想的なファイルシステムから認識することができる AVコンテンツを、再生するステ ップとをコンピュータに実行させ、
前記開発支援機能とは、コンピュータがプログラムを実行するにあたっての実佇青 報を、ネットワーク上で送受信する機能である、プログラム。
PCT/JP2007/055803 2006-03-24 2007-03-22 再生装置、デバッグ装置、システムlsi、プログラム WO2007111208A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2008506866A JP4491035B2 (ja) 2006-03-24 2007-03-22 再生装置、デバッグ装置、システムlsi、プログラム
US12/294,083 US20090103902A1 (en) 2006-03-24 2007-03-22 Reproduction device, debug device, system lsi, and program
CN2007800105552A CN101410904B (zh) 2006-03-24 2007-03-22 再现装置、调试装置、系统lsi、程序

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP2006-083727 2006-03-24
JP2006083727 2006-03-24
JP2006-244254 2006-09-08
JP2006244254 2006-09-08

Publications (1)

Publication Number Publication Date
WO2007111208A1 true WO2007111208A1 (ja) 2007-10-04

Family

ID=38541128

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2007/055803 WO2007111208A1 (ja) 2006-03-24 2007-03-22 再生装置、デバッグ装置、システムlsi、プログラム

Country Status (4)

Country Link
US (1) US20090103902A1 (ja)
JP (1) JP4491035B2 (ja)
CN (1) CN101410904B (ja)
WO (1) WO2007111208A1 (ja)

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009094904A (ja) * 2007-10-10 2009-04-30 Canon Inc 情報処理装置、その制御方法、プログラム
WO2009153928A1 (ja) * 2008-06-17 2009-12-23 パナソニック株式会社 光ディスクの再生装置及び再生方法
JP2010020632A (ja) * 2008-07-11 2010-01-28 Sony Corp 情報処理装置、情報処理システム、および情報処理方法、並びにプログラム
JP2010020633A (ja) * 2008-07-11 2010-01-28 Sony Corp 情報処理装置、情報処理システム、情報記録媒体、および情報処理方法、並びにプログラム
US8301013B2 (en) * 2008-11-18 2012-10-30 Panasonic Corporation Reproduction device, reproduction method, and program for stereoscopic reproduction
US8335425B2 (en) * 2008-11-18 2012-12-18 Panasonic Corporation Playback apparatus, playback method, and program for performing stereoscopic playback
JP2013512498A (ja) * 2009-11-26 2013-04-11 エスケー プラネット カンパニー、リミテッド ユーザアプリケーションのテストが可能なメディア再生装置及びこれを利用したユーザアプリケーションのテスト方法
JP2013512499A (ja) * 2009-11-26 2013-04-11 エスケー プラネット カンパニー、リミテッド コンピューティング装置及びメディア再生装置を利用したユーザアプリケーションテストシステム及びテスト方法
JP2013512497A (ja) * 2009-11-26 2013-04-11 エスケープラネット株式会社 メディア再生装置で実行されるユーザアプリケーションを提供するコンピューティング装置及び提供方法
JP2014521185A (ja) * 2011-07-20 2014-08-25 ソノズ インコーポレイテッド ウェブベースの音楽パートナーシステムおよびその方法
WO2020158095A1 (ja) * 2019-02-01 2020-08-06 株式会社Nttドコモ 評価装置

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8352400B2 (en) 1991-12-23 2013-01-08 Hoffberg Steven M Adaptive pattern recognition based controller apparatus and method and human-factored interface therefore
US7966078B2 (en) 1999-02-01 2011-06-21 Steven Hoffberg Network media appliance system and method
US8429613B2 (en) * 2006-10-31 2013-04-23 Microsoft Corporation Stepping and application state viewing between points
KR101125286B1 (ko) * 2007-03-27 2012-03-21 삼성전자주식회사 부가 데이터 업데이트 방법 및 재생 장치
US8555410B2 (en) * 2007-04-10 2013-10-08 Abbott Medical Optics Inc. External interface access control
US8555070B2 (en) * 2007-04-10 2013-10-08 Abbott Medical Optics Inc. External interface access control for medical systems
US8433929B2 (en) * 2007-04-19 2013-04-30 Panasonic Corporation Data management device, stored data management method and computer program
GB0709105D0 (en) * 2007-05-11 2007-06-20 Univ Leicester Debugging tool
US8336029B1 (en) 2007-11-08 2012-12-18 Google Inc. Debugger connection
JP5406178B2 (ja) * 2008-04-16 2014-02-05 パナソニック株式会社 再生装置、再生方法、プログラム
US20100017725A1 (en) * 2008-07-21 2010-01-21 Strands, Inc. Ambient collage display of digital media content
US8332406B2 (en) * 2008-10-02 2012-12-11 Apple Inc. Real-time visualization of user consumption of media items
CN102027749B (zh) * 2008-11-18 2014-02-19 松下电器产业株式会社 考虑特殊再现的再现装置、集成电路、再现方法
US8826239B2 (en) * 2010-10-06 2014-09-02 International Business Machines Corporation Asynchronous code testing in integrated development environment (IDE)
US8718443B2 (en) * 2010-10-13 2014-05-06 Sony Corporation Implementing web browser in BD platform
US8281288B1 (en) 2011-10-20 2012-10-02 Google Inc. Integrated development environment with network-based compilation and sandboxed native machine-language capabilities
US8417667B1 (en) * 2011-10-31 2013-04-09 Symantec Corporation Running commands on files using filename extensions to overload operations
CN103019941B (zh) * 2012-12-28 2015-09-30 大唐微电子技术有限公司 程序调试方法和装置
CN103559121B (zh) * 2013-09-23 2016-09-21 清华大学 基于日志注入的驱动配置调试方法
JP6272563B2 (ja) * 2015-05-11 2018-01-31 三菱電機株式会社 シミュレーション再現装置、シミュレーション再現方法およびシミュレーション再現プログラム
US10514996B2 (en) 2016-04-12 2019-12-24 Mitsubishi Electric Corporation Simulation reproducing apparatus and computer-readable recording medium
CN107277693B (zh) * 2017-07-17 2020-03-17 青岛海信移动通信技术股份有限公司 音频设备调用方法及装置
US11561771B2 (en) 2017-08-22 2023-01-24 Codestream, Inc. System and method for in-ide code review
US10782937B2 (en) * 2017-08-22 2020-09-22 Codestream, Inc. Systems and methods for providing an instant communication channel within integrated development environments
US10810099B2 (en) * 2017-09-11 2020-10-20 Internatinal Business Machines Corporation Cognitive in-memory API logging
JP7424599B2 (ja) * 2019-05-23 2024-01-30 コネクトフリー株式会社 システムおよび情報処理方法
CN114039859B (zh) * 2021-11-03 2023-05-30 中盈优创资讯科技有限公司 一种stn网络设备链改环方法及装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1169024A (ja) * 1997-08-15 1999-03-09 Sony Corp 情報通信方法、情報通信システム、通信端末およびサーバ装置
JP2002334511A (ja) * 2001-01-31 2002-11-22 Sony Computer Entertainment Inc コンピュータシステム及びその使用方法
JP2005223687A (ja) * 2004-02-06 2005-08-18 Toshiba Corp コンテンツ再生システム、コンテンツ再生方法及びテレビジョン受像機

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6622174B1 (en) * 1997-08-15 2003-09-16 Sony Corporation System for sending, converting, and adding advertisements to electronic messages sent across a network
DE10152875B4 (de) * 2000-11-21 2014-08-07 Heidelberger Druckmaschinen Ag Wendeeinrichtung mit Speicher für flächiges Material
US7080373B2 (en) * 2001-03-07 2006-07-18 Freescale Semiconductor, Inc. Method and device for creating and using pre-internalized program files
US20030231343A1 (en) * 2002-05-08 2003-12-18 Ayako Kobayashi Image forming apparatus, program adding method, and a recording medium
TWI315867B (en) * 2002-09-25 2009-10-11 Panasonic Corp Reproduction apparatus, optical disc, recording medium, and reproduction method
CN100585720C (zh) * 2003-02-19 2010-01-27 松下电器产业株式会社 再现装置、记录方法、再现方法
GB0311141D0 (en) * 2003-05-15 2003-06-18 Koninkl Philips Electronics Nv DVD player enhancement
US8732675B2 (en) * 2003-06-23 2014-05-20 Broadcom Corporation Operational analysis system for a communication device
TW200601300A (en) * 2003-06-30 2006-01-01 Matsushita Electric Ind Co Ltd Apparatus and computer-readable program for generating volume image
CN1757074A (zh) * 2003-11-28 2006-04-05 索尼株式会社 再现设备、再现方法、再现程序、和记录介质
KR100636141B1 (ko) * 2004-04-30 2006-10-18 삼성전자주식회사 프로그래밍 기능을 가진 어플리케이션을 기록한 저장매체, 재생 장치 및 그 재생 방법
KR100601677B1 (ko) * 2004-05-17 2006-07-14 삼성전자주식회사 저장 매체에 기록된 데이터와 다운로드된 데이터를 함께재생하는 재생 방법 및 그 재생 장치
US7720888B2 (en) * 2004-12-08 2010-05-18 Electronics & Telecommunications Research Institute Contents conversion communication terminal, server system, and method
KR20060081336A (ko) * 2005-01-07 2006-07-12 엘지전자 주식회사 기록매체에서의 디지털 인증방법
KR101147763B1 (ko) * 2005-01-19 2012-05-25 엘지전자 주식회사 데이터 복호방법 및 복호장치, 기록매체
KR20070014941A (ko) * 2005-07-29 2007-02-01 엘지전자 주식회사 기록매체, 데이터 재생방법 및 재생장치와 데이터 기록방법및 기록장치
KR20070014944A (ko) * 2005-07-29 2007-02-01 엘지전자 주식회사 데이터 재생방법 및 재생장치, 기록매체와 데이터 기록방법및 기록장치
US8024706B1 (en) * 2005-09-27 2011-09-20 Teradata Us, Inc. Techniques for embedding testing or debugging features within a service
US20070206929A1 (en) * 2006-03-02 2007-09-06 David Konetski System and method for presenting karaoke audio and video features from an optical medium

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1169024A (ja) * 1997-08-15 1999-03-09 Sony Corp 情報通信方法、情報通信システム、通信端末およびサーバ装置
JP2002334511A (ja) * 2001-01-31 2002-11-22 Sony Computer Entertainment Inc コンピュータシステム及びその使用方法
JP2005223687A (ja) * 2004-02-06 2005-08-18 Toshiba Corp コンテンツ再生システム、コンテンツ再生方法及びテレビジョン受像機

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009094904A (ja) * 2007-10-10 2009-04-30 Canon Inc 情報処理装置、その制御方法、プログラム
US8676039B2 (en) 2007-10-10 2014-03-18 Canon Kabushiki Kaisha Recording apparatus, control method thereof, and non-transitory computer-readable storage medium
WO2009153928A1 (ja) * 2008-06-17 2009-12-23 パナソニック株式会社 光ディスクの再生装置及び再生方法
JP2010020632A (ja) * 2008-07-11 2010-01-28 Sony Corp 情報処理装置、情報処理システム、および情報処理方法、並びにプログラム
JP2010020633A (ja) * 2008-07-11 2010-01-28 Sony Corp 情報処理装置、情報処理システム、情報記録媒体、および情報処理方法、並びにプログラム
US8819091B2 (en) 2008-07-11 2014-08-26 Sony Corporation Information processing apparatus, information processing system, information recording medium, information processing method, and program
US8301013B2 (en) * 2008-11-18 2012-10-30 Panasonic Corporation Reproduction device, reproduction method, and program for stereoscopic reproduction
US8335425B2 (en) * 2008-11-18 2012-12-18 Panasonic Corporation Playback apparatus, playback method, and program for performing stereoscopic playback
JP2013512497A (ja) * 2009-11-26 2013-04-11 エスケープラネット株式会社 メディア再生装置で実行されるユーザアプリケーションを提供するコンピューティング装置及び提供方法
JP2013512499A (ja) * 2009-11-26 2013-04-11 エスケー プラネット カンパニー、リミテッド コンピューティング装置及びメディア再生装置を利用したユーザアプリケーションテストシステム及びテスト方法
JP2013512498A (ja) * 2009-11-26 2013-04-11 エスケー プラネット カンパニー、リミテッド ユーザアプリケーションのテストが可能なメディア再生装置及びこれを利用したユーザアプリケーションのテスト方法
US9026999B2 (en) 2009-11-26 2015-05-05 Sk Planet Co., Ltd. Media playback apparatus capable of testing a user application, and method for testing a user application using same
US9189368B2 (en) 2009-11-26 2015-11-17 Sk Planet Co., Ltd. System and method for testing a user application using a computing apparatus and a media playback apparatus
US9606898B2 (en) 2009-11-26 2017-03-28 Sk Planet Co., Ltd. Computing apparatus and method for providing a user application to be executed in a media playback apparatus
JP2014521185A (ja) * 2011-07-20 2014-08-25 ソノズ インコーポレイテッド ウェブベースの音楽パートナーシステムおよびその方法
WO2020158095A1 (ja) * 2019-02-01 2020-08-06 株式会社Nttドコモ 評価装置

Also Published As

Publication number Publication date
CN101410904B (zh) 2011-09-14
CN101410904A (zh) 2009-04-15
US20090103902A1 (en) 2009-04-23
JPWO2007111208A1 (ja) 2009-08-13
JP4491035B2 (ja) 2010-06-30

Similar Documents

Publication Publication Date Title
JP4491035B2 (ja) 再生装置、デバッグ装置、システムlsi、プログラム
CN102005228B (zh) 记录方法和再现装置
EP2234109B1 (en) Individual sales oriented recording medium, recording device, reproducing device and method for them
JP4898890B2 (ja) 再生装置、記録方法
CN101872637B (zh) 再现装置和再现方法
US8200070B2 (en) Recording medium, playback apparatus, recording method, program, and playback method
RU2408092C2 (ru) Способ и устройство воспроизведения данных с носителя записи
JPWO2008099647A1 (ja) 再生装置、システムlsi及び再生方法
CN101156209B (zh) 记录媒体、再现装置、记录方法、再现方法
JP2007036663A (ja) 互換性を考慮した情報記録媒体およびその記録装置、記録方法、記録プログラム
US20090055744A1 (en) Recording medium, reproducing device, recording device, system lsi, method, and program
JP4870493B2 (ja) 再生装置、記録方法、再生方法、システムlsi、プログラム
JP4084833B2 (ja) 記録媒体、再生装置、プログラム、再生方法、集積回路
US20080145027A1 (en) Recording medium, playback apparatus, recording method, program, and playback method
JP5245940B2 (ja) オーサリング方法、プログラム、編集データ再生装置
RU2415483C2 (ru) Устройство воспроизведения

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 07739246

Country of ref document: EP

Kind code of ref document: A1

DPE1 Request for preliminary examination filed after expiration of 19th month from priority date (pct application filed from 20040101)
WWE Wipo information: entry into national phase

Ref document number: 2008506866

Country of ref document: JP

WWE Wipo information: entry into national phase

Ref document number: 12294083

Country of ref document: US

WWE Wipo information: entry into national phase

Ref document number: 200780010555.2

Country of ref document: CN

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 07739246

Country of ref document: EP

Kind code of ref document: A1

DPE1 Request for preliminary examination filed after expiration of 19th month from priority date (pct application filed from 20040101)