JP2009170085A - 読出装置、プログラム、読出方法 - Google Patents

読出装置、プログラム、読出方法 Download PDF

Info

Publication number
JP2009170085A
JP2009170085A JP2009021527A JP2009021527A JP2009170085A JP 2009170085 A JP2009170085 A JP 2009170085A JP 2009021527 A JP2009021527 A JP 2009021527A JP 2009021527 A JP2009021527 A JP 2009021527A JP 2009170085 A JP2009170085 A JP 2009170085A
Authority
JP
Japan
Prior art keywords
disc
application
title
content
playback
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2009021527A
Other languages
English (en)
Other versions
JP4476346B2 (ja
Inventor
Ko Ikeda
航 池田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Panasonic Corp
Original Assignee
Panasonic Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Panasonic Corp filed Critical Panasonic Corp
Priority to JP2009021527A priority Critical patent/JP4476346B2/ja
Publication of JP2009170085A publication Critical patent/JP2009170085A/ja
Application granted granted Critical
Publication of JP4476346B2 publication Critical patent/JP4476346B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/06Buying, selling or leasing transactions
    • G06Q30/0601Electronic shopping [e-shopping]
    • G06Q30/0633Lists, e.g. purchase orders, compilation or processing
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/12Formatting, e.g. arrangement of data block or words on the record carriers
    • 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/002Programmed access in sequence to a plurality of record carriers or indexed parts, e.g. tracks, thereof, e.g. for editing
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B27/00Editing; Indexing; Addressing; Timing or synchronising; Monitoring; Measuring tape travel
    • G11B27/10Indexing; Addressing; Timing or synchronising; Measuring tape travel
    • G11B27/102Programmed access in sequence to addressed parts of tracks of operating record carriers
    • G11B27/105Programmed access in sequence to addressed parts of tracks of operating record carriers of operating discs
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B27/00Editing; Indexing; Addressing; Timing or synchronising; Monitoring; Measuring tape travel
    • G11B27/10Indexing; Addressing; Timing or synchronising; Measuring tape travel
    • G11B27/19Indexing; Addressing; Timing or synchronising; Measuring tape travel by using information detectable on the record carrier
    • G11B27/28Indexing; Addressing; Timing or synchronising; Measuring tape travel by using information detectable on the record carrier by using information signals recorded by the same method as the main recording
    • G11B27/32Indexing; Addressing; Timing or synchronising; Measuring tape travel by using information detectable on the record carrier by using information signals recorded by the same method as the main recording on separate auxiliary tracks of the same or an auxiliary record carrier
    • G11B27/327Table of contents
    • G11B27/329Table of contents on a disc [VTOC]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/76Television signal recording
    • H04N5/84Television signal recording using optical recording
    • H04N5/85Television signal recording using optical recording on discs or drums
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/76Television signal recording
    • H04N5/91Television signal processing therefor
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N9/00Details of colour television systems
    • H04N9/79Processing of colour television signals in connection with recording
    • H04N9/80Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback
    • H04N9/82Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback the individual colour picture signal components being recorded simultaneously only
    • H04N9/8205Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback the individual colour picture signal components being recorded simultaneously only involving the multiplexing of an additional signal and the colour video signal
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B2220/00Record carriers by type
    • G11B2220/20Disc-shaped record carriers
    • G11B2220/21Disc-shaped record carriers characterised in that the disc is of read-only, rewritable, or recordable type
    • G11B2220/213Read-only discs
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B2220/00Record carriers by type
    • G11B2220/20Disc-shaped record carriers
    • G11B2220/25Disc-shaped record carriers characterised in that the disc is based on a specific recording technology
    • G11B2220/2537Optical discs
    • G11B2220/2541Blu-ray discs; Blue laser DVR discs

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Business, Economics & Management (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Accounting & Taxation (AREA)
  • Finance (AREA)
  • Development Economics (AREA)
  • General Business, Economics & Management (AREA)
  • Economics (AREA)
  • Strategic Management (AREA)
  • Marketing (AREA)
  • General Engineering & Computer Science (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)
  • Television Signal Processing For Recording (AREA)
  • Management Or Editing Of Information On Record Carriers (AREA)
  • Indexing, Searching, Synchronizing, And The Amount Of Synchronization Travel Of Record Carriers (AREA)

Abstract

【課題】光ディスクの交換時において、アプリケーションのスタートアップディレイをなくしつつも、映画作品に関連しないようなアプリケーションを適切に終了させることができる読出装置を提供する。
【解決手段】アプリケーションマネージャは、第1ディスクから第2ディスクへの交換時において、“アプリケーションシグナリング”を行う。この際、第1ディスクで最後に再生されたタイトルに割り当てられたアプリケーション管理テーブルに示されており、尚且つ、第2ディスクで最初に再生されるタイトルに割り当てられたアプリケーション管理テーブルに示されているアプリケーションの実行を継続し、第1ディスクで再生されていたタイトルに割り当てられたアプリケーション管理テーブルに示されているが、第2ディスクで最初に再生されるタイトルに割り当てられたアプリケーション管理テーブルには示されていないアプリケーションの実行を終了させる。
【選択図】図30

Description

本発明は、デジタル化された映画作品の再生と、アプリケーションの実行とを同時に実行する、再生制御技術の技術分野に属する発明である。
上述した再生制御技術は、デジタル化された映画作品と、様々なアプリケーションとを1つのパッケージに収めて販売するというメディアミックスを実現するにあたって、極めて重要な役割をなす。このアプリケーションが、映画作品の登場人物をキャラクタにしたゲーム的なプログラムであり、デジタル化された映画作品の一部分と同時に実行されるのなら、映像再生と、アプリケーション実行との相乗効果で、映画作品の人気を一層高めることができる。
かかる再生制御技術の先行技術としては、以下の特許文献1に記載されたものがある。
特許第2813245号公報
ところで近年の映画作品は、ある作品がヒットすれば、その続編が多く作られることが一般的である。そしてそれらシリーズ物の映画作品を複数の光ディスクに記録して、“DVD−BOX”と呼ばれる高額商品として、販売することは、映画ビジネスの分野において、1つの手法として確立されている。ここでそのように、複数の光ディスクにおいて、互いに関連しあう複数の映画作品が記録されている場合、アプリケーションをどのように制御すればよいかが問題になる。
例えばアプリケーションの実行が、1つの光ディスクが装填されている期間内に限られるとすれば、光ディスクが交換される度に、アプリケーションの終了、起動が繰り返され、アプリケーションのスタートアップディレイが長くなって、ユーザ操作に対するレスポンスが悪くなる。
逆に、アプリケーションの実行が、1つの光ディスクが装填されている期間内に限られないとすれば、光ディスクが装填されていない期間において、アプリケーションは動作していてもよいことになる。そうすると、例えば、読出装置に、悪意のプログラム(ウィルスソフト、スパイウェア等)が侵入していた場合、光ディスクが装填されていない状態で、かかる悪意のプログラムが動作していたとしても、かかるプログラムが悪意のプログラムなのか、映画作品を構成しているアプリケーションなのかが区別できない。そのため、この悪意のプログラムの動作を終了させることができず、みすみす悪意のプログラムに付け入れられるような隙を作ってしまうことになる。
本発明の目的は、光ディスクの交換時において、アプリケーションのスタートアップディレイをなくしつつも、映画作品に関連しないようなアプリケーションを適切に終了させることができる読出装置を提供することである。
上記目的を達成するため、上記目的を達成するため、本発明にかかる読出装置は、第1ディスクに記録されたコンテンツを読み取って再生する再生手段と、そのコンテンツに対応する管理テーブルに基づき、アプリケーションを実行するアプリケーション管理手段とを備え、アプリケーションには、ディスクアンバウンダリのものと、タイトルバウンダリものとがあり、前記アプリケーション管理手段は、ディスクアンバウンダリアプリケーションについては、第1ディスクから第2ディスクへの交換時において、第1ディスクにおけるコンテンツに対応する管理テーブルに示されており、尚且つ、第2ディスクで最初に再生されるコンテンツに対応する管理テーブルに示されている場合に実行を継続し、タイトルバウンダリアプリケーションについては、第1ディスクにおけるコンテンツの再生終了時に実行を終了することを特徴としている。
上記構成によれば、第1ディスクから第2ディスクへの交換時において、第1ディスクにおけるコンテンツに対応する管理テーブルに示されており、尚且つ、第2ディスクで最初に再生されるコンテンツに対応する管理テーブルに示されているアプリケーションの実行を継続するので、第1ディスク取出後にいったん終了し、第2ディスク装填時に、再度起動するという手間は不要になり、アプリケーションの起動のためのスタートアップディレイをほとんどなくすことができる。
第1ディスクで再生されていたコンテンツに対応するアプリケーションの実行を終了させるので、第2ディスクの管理テーブルに示されていないアプリケーションについては、第2ディスクの装填時に、動作が終了させられることになる。悪意のプログラムが侵入していたとしても、第2ディスクの装填を機会に、かかる悪意のプログラムを終了させることができるので、悪意のプログラムに対する対策を施すことができる。
(第1実施形態)
以降、本発明に係る読出装置の実施形態について説明する。先ず始めに、本発明に係る読出装置の実施行為のうち、使用行為についての形態を説明する。図1は、本発明に係る読出装置の、使用行為についての形態を示す図である。図1において、本発明に係る読出装置は、読出装置200である。この読出装置200は、複数のBD-ROM100からなるBD-BOX、リモコン300、テレビ400、AVアンプ500、スピーカ600から構成されるホームシアターシステムで使用される。
読出装置200は、ネット対応型のデジタル家電機器であり、BD-ROM100を再生する機能をもつ。
以上が、本発明に係る読出装置の使用行為の形態である。
続いて、BD-ROM100の内部構成を説明する。図2は、BD-ROMにおけるファイル・ディレクトリ構成を示す図である。本図においてBD-ROMには、Rootディレクトリの下に、BDMVディレクトリがある。
<BD-ROMの概要>
図2は、BD-ROMの内部構成を示す図である。本図の第4段目にBD-ROMを示し、第3段目にBD-ROM上のトラックを示す。本図のトラックは、BD-ROMの内周から外周にかけて螺旋状に形成されているトラックを、横方向に引き伸ばして描画している。このトラックは、リードイン領域と、ボリューム領域と、リードアウト領域とからなる。本図のボリューム領域は、物理層、ファイルシステム層、応用層というレイヤモデルをもつ。ディレクトリ構造を用いてBD-ROMの応用層フォーマット(アプリケーションフォーマット)を表現すると、図中の第1段目のようになる。この第1段目においてBD-ROMには、Rootディレクトリの下に、BDMVディレクトリがある。
BDMVディレクトリには、拡張子bdmvが付与されたファイル(index.bdmv,MovieObject.bdmv)がある。そしてこのBDMVディレクトリの配下には、更にPLAYLISTディレクトリ、CLIPINFディレクトリ、STREAMディレクトリ、BDBJディレクトリ、BDJAディレクトリ、AUXDATAディレクトリと呼ばれる6つのサブディレクトリが存在する。
PLAYLISTディレクトリには、拡張子mplsが付与されたファイル(00001.mpls)がある。
CLIPINFディレクトリには、拡張子clpiが付与されたファイル(00001.clpi)がある。
STREAMディレクトリには、拡張子m2tsが付与されたファイル(00001.m2ts)がある。
BDBJディレクトリには、拡張子bobjが付与されたファイル(00001.bobj)が存在する。
BDJAディレクトリには、拡張子jarが付与されたファイル(00001.jar)がある。
以上のディレクトリ構造により、互いに異なる種別の複数ファイルが、BD-ROM上に配置されていることがわかる。
<BD-ROMの構成その1.AVClip>
先ず初めに、拡張子.m2tsが付与されたファイルについて説明する。図3は、拡張子.m2tsが付与されたファイルがどのように構成されているかを模式的に示す図である。拡張子.m2tsが付与されたファイル(00001.m2ts)は、AVClipを格納している。AVClipはMPEG2-TransportStream形式のデジタルストリームである。このデジタルストリームは、フィルム映像、NTSC映像、PAL映像をデジタル化することにより得られたデジタルビデオ、デジタルオーディオを(上1段目)、PESパケットからなるエレメンタリストリームに変換し(上2段目)、更にTSパケットに変換して(上3段目)、同じく字幕系のプレゼンテーショングラフィクスストリーム(PresentatiionGraphics(PG)ストリーム)及び対話系のインタラクティブグラフィクスストリーム(Interactive Graphics(IG)ストリーム)を(下1、2段目)を、TSパケットに変換して(下3段目)、これらを多重化することで構成される。
PGストリームとは、動画の再生進行に伴った字幕表示を実現するエレメンタリストリームであり、IGストリームは、動画の再生進行に伴ったGUIを実現するエレメンタリストリームである。
ビデオストリームのうち、1つのPTSで再生される再生単位(ピクチャ等)を、“Video Presentation Unit”という。オーディオストリームのうち、1つのPTSで再生される再生単位を、“AudioPresentation Unit”という。
ここでAVClipを構成するPESパケットは、1つ以上の“STC_Sequence”を構成する。“STC_Sequence”とは、PESパケットの配列であって、そのPTS、DTSが参照しているSystemTime Clock(STC)の値に、STC不連続点(system time-base discontinuity)が存在しないものをいう。STC不連続点がないことがSTC_Sequenceの要件であるので、1つのSTC_Sequenceを構成するPESパケット列のうち、STC不連続点の直後に位置するPESパケットであって、PCR(ProgramClock Reference)を包含したものから、次のSTC不連続点の直前までが1つのSTC_Sequenceになる。
続いて、以上のように構成されたAVClipが、BD-ROMにどのように書き込まれるかを説明する。図4は、AVClipを構成するTSパケットがどのような過程を経てBD-ROMに書き込まれるかを示す。本図の第1段目にAVClipを構成するTSパケットを示す。
AVClipを構成する188バイトのTSパケットは、第2段目に示すように4バイトのTS_extra_header(図中のハッチング部)、が付されて、192バイト長のSourceパケットになる。このTS_extra_headerは、Arrival_Time_Stampを含む。
AVClipを構成するSourceパケットは、第3段目におけるAVClipにおいて、1つ以上の“ATC_Sequence”を構成する。“ATC_Sequence”とは、Sourceパケットの配列であって、そのArrival_Time_Stampが参照しているArrival_Time_Clockに、不連続点(noarrival time-base discontinutiy)が存在しないものをいう。いいかえれば、そのArrival_Time_Stampが参照しているArrival_Time_Clockに、連続性が存在するSourceパケット列を“ATC_Sequence”という。
かかるATC_SequenceがAVClipになり、xxxxx.m2tsというファイル名でBD-ROMに記録される。
かかるAVClipは、通常のコンピュータファイル同様、複数のファイルエクステントに分割され、BD-ROM上の領域に記録される。第4段目はAVClipがどのようにBD-ROMに記録されるかを模式的に示す。この第4段目においてファイルを構成する各ファイルエクステントは、予め定められたSexetent以上のデータ長を有する。
AVClipを複数のエクステントに分割して記録する場合の、エクステント一個当たりの最小データ長Sexetentを検討する。
ここでBD-ROMにおいて光ピックアップのジャンプに要する時間は、
Tjump=Taccess+Toverhead
で与えられる。
Taccessは、ジャンプ距離に応じて与えられる時間(m秒)であり、
ジャンプ距離(論理ブロック数)が0〜5000であるなら179m秒、
ジャンプ距離(論理ブロック数)が5001〜10,000であるなら210m秒、
ジャンプ距離(論理ブロック数)が10,001〜20,000であるなら270m秒、
ジャンプ距離がハーフストロークであるなら990m秒、
ジャンプ距離がフルストロークであるなら1220m秒になる。
BD-ROMから読み出されたTSパケットは、リードバッファと呼ばれるバッファに格納された上、デコーダに出力されるが、リードバッファへの入力が、Rudというビットレートで行われ、ECCブロックにおけるセクタ数をSeccとした場合、
Toverheadは、
Toverhead≦(2×Secc×8)/Rud=20m秒
という計算で与えられる。
BD-ROMから読み出されたTSパケットは、Sourceパケットの状態でリードバッファに格納された上、TS_Recording_rateという転送レートで、デコーダに供給される。
TS_Recording_rateという転送レートでの、デコーダへのTSパケット供給が跡絶えさせないなめには、Tjumpの間、リードバッファからデコーダへのTSパケット出力が継続している必要がある。ここでリードバッファからの出力は、TSパケットではなく、Sourceパケットの状態でなされるので、TSパケットのSourceパケットとのサイズ比を192/188とした場合、Tjumpの間、(192/188×TS_Recording_rate)という転送レートにより、リードバッファからのSourceパケット出力が継続している必要がある。
従って、リードバッファが、アンダーフローしないためのバッファ蓄積量は、
Boccupied≧(Tjump/1000×8)×((192/188)×TS_Recording_rate)
となる。
リードバッファへの入力レートはRud、リードバッファからの出力レートはTS_Recording_rate×(192/188)であるので、リードバッファへの蓄積レートは、入力レート−出力レートの計算で与えられ、(Rud−TS_Recording_rate×(192/188))になる。
このBoccupiedを、リードバッファに蓄積するのに要する時間Txは、
Tx=Boccupied/(Rud−TS_Recording_rate×(192/188))
になる。
BD-ROMからの読み出しには、この時間TxにおいてRudでのTSパケット入力を継続する必要があるので、AVClipを複数のエクステントに分割して記録する場合の、エクステント一個当たりの最小データ長Sexetentは、
Sexetent=Rud×Tx
=Rud×Boccupied/(Rud−TS_Recording_rate×(192/188))
≧Rud×(Tjump/1000×8)×((192/188)×TS_Recording_rate)
/(Rud−TS_Recording_rate×(192/188))
≧(Rud×Tjump/1000×8)×
×TS_Recording_rate×192/(Rud×188−TS_Recording_rate×192)
になる。
よって
Sexetent≧
(Tjump×Rud/1000×8)×
(TS_Recording_rate×192/(Rud×188−TS_Recording_rate×192))
になる。
AVClipを構成する各ファイルエクステントは、こうして算出されたSextent以上のデータ長をもつことにより、AVClipを構成する各ファイルエクステントが、BD-ROM上において離散的に位置されたとしても、再生時においてデコーダへのTSパケット供給が途絶えさせることなく、連続的に読み出されることになる。
図5は、BD-ROMの物理単位と、1つのファイルエクステントを構成するSourceパケットとの対応関係を示す図である。第2段目に示すように、BD-ROM上には複数セクタが形成されている。ファイルエクステントを構成するSourceパケットは、第1段目に示すように、32個毎にグループ化されて、連続する3つのセクタに書き込まれる。32個のSourceパケットからなるグループは、6144バイト(=32×192)であり、これは3個のセクタサイズ6144バイト(=2048×3)と一致する。3個のセクタに収められた32個のSourceパケットを“AlignedUnit”といい、BD-ROMへの書き込みにあたっては、Aligned Unit単位で暗号化がなされる。
第3段目においてセクタは、32個単位で誤り訂正符号が付され、ECCブロックを構成する。読出装置はAligned Unitの単位でBD-ROMをアクセスする限り、32個の完結したSourceパケットを得ることができる。以上がBD-ROMに対するAVClipの書き込みのプロセスである。
<エレメンタリストリームの種類>
図6は、AVClipにどのようなエレメンタリストリームが多重化されているかを示す図である。
本図に示すように、AVClipには、0x1011のPIDをもつ高画質ビデオストリーム、0x1100から0x111FまでのPIDをもつPrimaryオーディオストリーム、0x1200から0x121FまでのPIDをもつPGストリーム、0x1400から0x141FまでのPIDをもつIGストリームが多重化されている。これらのエレメンタリストリームを構成するパケットは、それに対応するPIDが付与されており、このPIDを手掛かりにして多重分離されることになる。
<BD-ROMの構成その2.Clip情報>
続いて拡張子.clpiが付与されたファイルについて説明する。拡張子.clpiが付与されたファイル(00001.clpi)は、Clip情報を格納している。Clip情報は、個々のAVClipについての管理情報である。図7は、Clip情報の内部構成を示す図である。本図の左側に示すようにClip情報は、
i)AVClipについての情報を格納した『ClipInfo()』、
ii)ATC Sequence,STC Sequenceに関する情報を格納した『Sequence Info()』
iii)Program Sequenceに関する情報を格納した『Program Info()』
iv)『Characteristic Point Info(CPI())』からなる。
Sequence Infoは、AVClipに含まれる、1つ以上のSTC-Sequence、ATC-Sequenceについての情報である。これらの情報を設けておくことの意義は、STC、ATCの不連続点を、予め読出装置に通知するためである。つまりかかる不連続点が存在すると、AVClip内において同じ値のPTS,ATSが出現する可能性があり、再生時に不都合が生じる。STC,ATCが連続しているのは、トランスポートストリームのうち、どこからどこまでであるかを示すため、SequenceInfoは設けられている。
Program Infoとは、Program内容が一定である区間(Program Sequence)を示す情報である。Programとは、同期再生のための時間軸を共有し合うエレメンタリーストリーム同士の集まりである。ProgramInfoを設けておくことの意義は、Program内容の変化点を、予め読出装置に通知するためである。ここでのProgram内容の変化点とは、ビデオストリームのPIDが変化したり、ビデオストリームの種類がSDTVからHDTVに変化している点等をいう。
続いてCharacteristic Point Infoについて説明する。図中の引き出し線cu2は、CPIの構成をクローズアップしている。引き出し線cu2に示すように、CPIは、Ne個のEP_map_for_one_stream_PID(EP_map_for_one_stream_PID(0)〜EP_map_for_one_stream_PID(Ne-1))からなる。これらEP_map_for_one_stream_PIDは、AVClipに属する個々のエレメンタリストリームについてのEP_mapである。EP_mapは、1つのエレメンタリストリーム上において、AccessUnit Delimiterが存在するエントリー位置のパケット番号(SPN_EP_start)を、エントリー時刻(PTS_EP_start)と対応づけて示す情報である。図中の引き出し線cu3は、EP_map_for_one_stream_PIDの内部構成をクローズアップしている。
これによると、EP_map_for_one_stream_PIDは、Nc個のEP_High(EP_High(0)〜EP_High(Nc-1))と、Nf個のEP_Low(EP_Low(0)〜EP_Low(Nf-1))とからなることがわかる。ここでEP_Highは、AccessUnit(Non-IDR Iピクチャ、IDRピクチャ)のSPN_EP_start及びPTS_EP_startの上位ビットを表す役割をもち、EP_Lowは、AccessUnit(Non-IDR Iピクチャ、IDRピクチャ)のSPN_EP_start及びPTS_EP_startの下位ビットを示す役割をもつ。
図中の引き出し線cu4は、EP_Highの内部構成をクローズアップしている。この引き出し線に示すように、EP_High(i)は、EP_Lowに対する参照値である『ref_to_EP_Low_id[i]』と、AccessUnit(Non-IDR Iピクチャ、IDRピクチャ)のPTSの上位ビットを示す『PTS_EP_High[i]』と、Access Unit(Non-IDR Iピクチャ、IDRピクチャ)のSPNの上位ビットを示す『SPN_EP_High[i]』とからなる。ここでiとは、任意のEP_Highを識別するための識別子である。
図中の引き出し線cu5は、EP_Lowの構成をクローズアップしている。引き出し線cu5に示すように、EP_Lowは、対応するAccess UnitがIDRピクチャか否かを示す『is_angle_change_point(EP_Low_id)』と、対応するAccessUnitのサイズを示す『I_end_position_offset(EP_Low_id)』と、対応するAccess Unit(Non-IDR Iピクチャ、IDRピクチャ)のPTSの下位ビットを示す『PTS_EP_Low(EP_Low_id)』と、対応するAccessUnit(Non-IDR Iピクチャ、IDRピクチャ)のSPNの下位ビットを示す『SPN_EP_Low(EP_Low_id)』とからなる。ここでEP_Low_idとは、任意のEP_Lowを識別するための識別子である。
<Clip情報の説明その2.EP_map>
以下、具体例を通じて、EP_mapについて説明する。図8は、映画のビデオストリームに対するEP_map設定を示す図である。第1段目は、表示順序に配置された複数のピクチャ(MPEG4-AVCに規定されたIDRピクチャ、Iピクチャ、Bピクチャ、Pピクチャ)を示し、第2段目は、そのピクチャにおける時間軸を示す。第4段目は、BD-ROM上のTSパケット列を示し、第3段目は、EP_mapの設定を示す。
第2段目の時間軸において、時点t1〜t7に、Access UnitとなるIDRピクチャ及びIピクチャが存在するものとする。そしてこれらのt1〜t7の時間間隔が、1秒程度であるとすると、映画に用いられるビデオストリームにおけるEP_mapは、t1〜t7をエントリー時刻(PTS_EP_start)として示し、これに対応づけてエントリー位置(SPN_EP_start)を示すよう、設定される。
<プレイリスト情報>
続いて、プレイリスト情報について説明する。拡張子“mpls”が付与されたファイル(00001.mpls)は、PlayList(PL)情報を格納したファイルである。
図9は、プレイリスト情報のデータ構造を示す図であり、本図において、引き出し線mp1に示すようにプレイリスト情報は、MainPathを定義するMainPath情報(MainPath())と、チャプターを定義するPlayListMark情報(PlayListMark())とからなる。
<プレイリスト情報の説明その1.MainPath情報>
先ずMainPathについて説明する。MainPathは、主映像たるビデオストリームやオーディオストリームに対して定義される再生経路である。
MainPathは、矢印mp1で示すように複数のPlayItem情報#1・・・・#mから定義される。PlayItem情報は、MainPathを構成する1つ以上の論理的な再生区間を定義する。PlayItem情報の構成は、引き出し線hs1によりクローズアップされている。この引き出し線に示すようにPlayItem情報は、再生区間のIN点及びOut点が属するAVClipの再生区間情報のファイル名を示す『Clip_Information_file_name』と、AVClipの符号化方式を示す『Clip_codec_identifier』と、PlayItemがマルチアングルを構成するか否かを示す『is_multi_angle』と、このPlayItemと、その1つ前のPlayItemとの接続を、シームレスに行うか否かを示す『connection_condition』と、このPlayItemが対象としているSTC_Sequenceを一意に示す『ref_to_STC_id[0]』と、再生区間の始点を示す時間情報『In_time』と、再生区間の終点を示す時間情報『Out_time』と、このPlayItemにおいてマスクすべきユーザオペレーションがどれであるかを示す『UO_mask_table』と、このPlayItemの途中へのランダムアクセスを許可するか否かを示す『PlayItem_random_access_flag』と、このPlayItemの再生終了後、最後のピクチャの静止表示を継続するか否かを示す『Still_mode』と、『STN_table』とから構成される。
図10は、AVClipと、プレイリスト情報との関係を示す図である。第1段目は、プレイリスト情報がもつ時間軸を示す。第2段目から第5段目は、EP_mapにて参照されているビデオストリーム(図8に示したものと同じ)を示す。
プレイリスト情報は、PlayItem情報#1,#2という2つのPlayItem情報を含んでおり、これらPlayItem情報#1,#2のIn_time,Out_timeにより、2つの再生区間が定義されることになる。これらの再生区間を配列させると、AVClip時間軸とは異なる時間軸が定義されることになる。これが第1段目に示すPlayItem時間軸である。このように、PlayItem情報の定義により、AVClipとは異なる時間軸の定義が可能になる。
以上のClip情報及びプレイリスト情報は、”静的シナリオ”に分類される。何故なら、以上のClip情報及びプレイリスト情報により、静的な再生単位であるプレイリストが定義されるからである。以上で静的シナリオについての説明を終わる。
続いて”動的なシナリオ”について説明する。動的シナリオとは、AVClipの再生制御を動的に規定するシナリオデータである。”動的に”というのは、読出装置における状態変化やユーザからのキーイベントにより再生制御の中身がかわることをいう。BD-ROMでは、この再生制御の動作環境として2つのモードを想定している。1つ目は、DVD読出装置の動作環境と良く似た動作環境であり、コマンドベースの実行環境である。2つ目は、Java(登録商標)仮想マシンの動作環境である。これら2つの動作環境のうち1つ目は、HDMVモードと呼ばれる。2つ目は、BD-Jモードと呼ばれる。これら2つの動作環境があるため、動的シナリオはこのどちらかの動作環境を想定して記述される。HDMVモードを想定した動的シナリオはMovieObjectと呼ばれる。一方BD-Jモードを想定した動的シナリオはBD-J Objectと呼ばれる。
先ず初めにMovie Objectについて説明する。
<Movie Object>
Movie Objectは、図2に示したMovieObject.bdmvというファイルに格納され、ナビゲーションコマンド列を含む。
ナビゲーションコマンド列は、条件分岐、読出装置における状態レジスタの設定、状態レジスタの設定値取得等を実現するコマンド列からなる。Movie Objectにおいて記述可能なコマンドを以下に示す。
PlayPLコマンド
書式:PlayPL(第1引数,第2引数)
第1引数は、プレイリストの番号で、再生すべきプレイリストを指定することができる。第2引数は、そのプレイリストに含まれるPlayItemや、そのプレイリストにおける任意の時刻、Chapter、Markを用いて再生開始位置を指定することができる。
PlayItemによりPL時間軸上の再生開始位置を指定したPlayPL関数をPlayPLatPlayItem()、
ChapterによりPL時間軸上の再生開始位置を指定したPlayPL関数をPlayPLatChapter()、
時刻情報によりPL時間軸上の再生開始位置を指定したPlayPL関数をPlayPLatSpecified Time()という。
JMPコマンド
書式:JMP 引数
JMPコマンドは、現在の動的シナリオを途中で廃棄し(discard)、引数たる分岐先動的シナリオを実行するという分岐である。JMP命令の形式には、分岐先動的シナリオを直接指定している直接参照のものと、分岐先動的シナリオを間接参照している間接参照のものがある。
Movie Objectにおけるナビゲーションコマンドの記述は、DVDにおけるナビゲーションコマンドの記述方式と良く似ているので、DVD上のディスクコンテンツを、BD-ROMに移植するという作業を効率的に行うことができる。MovieObjectについては、以下の国際公開公報に記載された先行技術が存在する。詳細については、本国際公開公報を参照されたい。
国際公開公報W0 2004/074976
以上でMovie Objectについての説明を終える。続いてBD-J Objectについて説明する。
<BD-J Object>
BD-J Objectは、Java(登録商標)プログラミング環境で記述された、BD-Jモードの動的シナリオであり、00001〜00003.bobjというファイルに格納される。
図11は、BD-J Objectの内部構成を示す図である。アプリケーション管理テーブル(AMT)、プレイリスト管理テーブル(PLMT)からなる。MovieObjectとの違いは、BD-J Objectにコマンドが直接記述されていない点である。つまりMovie Objectにおいて制御手順は、ナビゲーションコマンドにより直接記述されていた。これに対しBD-JObjectでは、Java(登録商標)アプリケーションに対する指定をアプリケーション管理テーブルに記載することにより、間接的に制御手順を規定している。このような間接的な規定により、複数動的シナリオにおいて制御手順を共通化するという、制御手順の共通化を効率的に行うことができる。
またMovieObjectにおけるプレイリスト再生は、プレイリスト再生を命じるナビゲーションコマンド(PlayPlコマンド)の記述によりなされるが、BD-JObjectにおけるプレイリスト再生は、プレイリスト再生手順を示すプレイリスト管理テーブルをBD-J Objectに組み込むことで記述が可能になる。
このBD-JモードにおけるJava(登録商標)アプリケーションについて説明する。ここでBD-Jモードが想定しているJava(登録商標)プラットフォームは、Java(登録商標)2Micro_Edition(J2ME)Personal Basis Profile(PBP 1.0)と、Globally Executable MHPspecification(GEM1.0.2)for package media targetsとをフル実装したものである。
このBD-JモードにおけるJava(登録商標)アプリケーションは、xletインターフェイスを通じて、Application Managerにより、制御される。xletインターフェイスは、“loaded”,“paused”、“active”,“destoryed”といった4つの状態をもつ。
上述したJava(登録商標)プラットフォームは、JFIF(JPEG)やPNG,その他のイメージデータを表示するためのスタンダードJava(登録商標)ライブラリを含む。このため、Java(登録商標)アプリケーションは、HDMVモードにおいてIGストリームにより実現されるGUIとは異なるGUIフレームワークを実現することができる。Java(登録商標)アプリケーションにおけるGUIフレームワークは、GEM1.0.2にて規定されたHAViフレームワークを含み、GEM1.0.2におけるリモートコントロールナビゲーション機構を含む。
これにより、Java(登録商標)アプリケーションは、HAViフレームワークに基づくボタン表示、テキスト表示、オンライン表示(BBSの内容)といった表示を、動画像の表示と組み合わせた画面表示を実現することができ、リモートコントロールを用いて、この画面表示に対する操作を行うことができる。
このJava(登録商標)アプリケーションの実体にあたるのが、図2におけるBDMVディレクトリ配下のBDJAディレクトリに格納されたJava(登録商標)アーカイブファイル(00001.jar)である。以降、Java(登録商標)アーカイブファイルについて説明する。
<Java(登録商標)アーカイブファイル>
Java(登録商標)アーカイブファイル(図2の00001.jar)は、1つ以上のクラスファイル、1つ以上のデータファイル等を1つにまとめることで得られるファイルであり、BD-Jモードにおいて動作すべきJava(登録商標)アプリケーションを構成する。
図12は、アーカイブファイルにより収められているプログラム、データを示す図である。本図におけるプログラム、データは、枠内に示すディレクトリ構造が配置された複数ファイルを、java(登録商標)アーカイバでまとめたものである。枠内に示すディレクトリ構造は、Rootディレクトリ、Java(登録商標)1,2,3ディレクトリ、Image1,2,3ディレクトリとからなり、Rootディレクトリにcommon.pkgが、Java(登録商標)1,Java(登録商標)2,Java(登録商標)3ディレクトリにクラスファイル(00001.class〜00007.class)が、Image1,Image2,Image3ディレクトリに、00001.JPEG〜00003.JPEG、00001.PNG〜00003.PNGが配置されている。java(登録商標)アーカイブファイルは、これらをjava(登録商標)アーカイバでまとめることで得られる。かかるクラスファイル及びデータは、BD-ROMからキャッシュに読み出されるにあたって展開され、キャッシュ上で、ディレクトリに配置された複数ファイルとして取り扱われる。Java(登録商標)アーカイブファイルのファイル名における"zzzzz"という5桁の数値は、アプリケーションのID(applicationID)を示す。本Java(登録商標)アーカイブファイルがキャッシュに読み出された際、このファイル名における数値を参照することにより、任意のJava(登録商標)アプリケーションを構成するプログラム,データを取り出すことができる。
尚、本実施形態においてアプリケーションを構成するプログラム、データは、Java(登録商標)アーカイブファイルにまとめられたが、LZHファイル、zipファイルであってもよい。
以上が、BD-Jモードにおける動的シナリオについての説明である。
<Index.bdmv>
Index.bdmvは、Titleを構成する、Movie Object又はBD-J Objectを示すテーブルである。Titleとは、MovieObject、又は、BD-JObjectと、これらにより再生されるPLayListとなる再生単位であり、BD-ROMにおいて、1つのコンテンツとして扱われるものである。Index.bdmvは、Titleにおいて、あるTitleの構成要素となるMovieObjectはどれであるか、又は、あるTitleの構成要素となるBD-JObjectはどれであるのかを定義する。
Index.bdmvについては、以下の国際公開公報に詳細が記載されている。詳細については、本公報を参照されたい。
国際公開公報WO 2004/025651 A1公報
以降、図11に示したアプリケーション管理テーブル、プレイリスト管理テーブルのそれぞれについてより詳しく説明する。
<アプリケーション管理テーブル>
アプリケーション管理テーブル(AMT)について説明する。アプリケーション管理テーブル(AMT)とは、上述したGEM1.0.2for packagemedia targetsにおける“アプリケーション シグナリング”を実装するテーブルである。“アプリケーション シグナリング”とは、GEM1.0.2が規定するMHP(MultimedeiHome Platform)において、“サービス”を生存区間としてアプリケーションの起動、実行を行う制御をいう。本実施形態におけるアプリケーション管理テーブルは、この“サービス”の代わりに、BD-ROMにおける“タイトル”を生存区間にして、アプリケーションの起動、実行の制御を実現する。
図13(a)は、アプリケーション管理テーブルの内部構成を示す図である。本図に示すようにアプリケーション管理テーブルは、『life_cycle』と、『apli_id_ref』と、『run_attribute』と、『run_priority』からなる。
図13(b)は、アプリケーション管理テーブルを構成する情報要素の意味内容を示す。
『life_cycle』は、アプリケーションの”生存区間”を示す。
『apli_id_ref』は、”アプリケーション識別子”に対する参照値が記述されることにより、左記の生存区間をもつアプリケーションがどれであるかを示す。アプリケーション識別子は、Java(登録商標)アーカイブファイルにおいて、ファイル名として付与された5桁の数値zzzzzで表現される。『apli_id_ref』には、この5桁の数値が記述される。
『run_attribute』は、当該生存区間におけるアプリケーションの”起動属性”が記述される。起動属性には、AutoRun、Present、Suspendといった種別がある。
『run_priority』は、当該生存区間におけるアプリケーションの”起動優先度”が記述される。BD-J Objectでは、これらの情報を用いてアプリケーションの挙動を制御する。
<生存区間>
アプリケーション管理テーブルに規定される情報のうち、生存区間について説明する。
生存区間とは、BD-ROM全体の時間軸において、仮想マシンのワークメモリ上でアプリケーションが生存し得る区間を示す。ワークメモリにおける”生存”とは、そのアプリケーションを構成するxletプログラムが、Java(登録商標)仮想マシン内のワークメモリに読み出され、Java(登録商標)仮想マシンによる実行が可能になっている状態をいう。
Java(登録商標)仮想マシンにおいてアプリケーションを動作させる場合、時間軸の何処からアプリケーションによるサービスを開始し、時間軸の何処でアプリケーションによるサービスを終えるかという”サービスの開始点・終了点”を明確に規定することが重要になる。このサービスの開始点・終了点を規定するのが、アプリケーション管理テーブルにおける生存区間である。
一方、DVD-Videoのような読出専用ディスクで供給されるディスクは、トップメニュータイトルを中核とした構造になっている。そのトップメニュータイトルから、個々の著作物へと分岐して再生を行い、その後再び、トップメニュータイトルに戻るという独特の状態遷移をなす。図14は、ディスクにおける状態遷移を示す図である。本図における四角枠は、Titleである。Titleとは、ディスク特有の状態遷移において、1つの”状態”にあたる再生単位であり、このタイトルが、Java(登録商標)アプリケーションの生存区間として取り扱われる。
Titleには、BD-ROMのローディング時に最初に再生される『FirstPlayTitle』、Top-Menuを構成する『Top_menuTitle』、これら以外の一般的な『Title』がある。また、図中の矢印jh1,2,3,4,5,6,7,8は、Title間の分岐を象徴的に示す。本図に示される状態遷移とは、BD-ROMローディング時に、『FirstPlayTitle』が再生され、『Top_menuTitle』への分岐が発生して、トップメニューに対する選択待ちになるというものである。
トップメニューに対する選択操作がユーザによりなされれば、選択に従って該当Titleの再生を行い、再びTopMenu Titleに戻るとの処理を、BD-ROMのイジェクトがなされるまで延々と繰り返すというのが、ディスク特有の状態遷移である。
それでは、図14のような状態遷移をなすディスクにおいて、Titleは、どのように生存区間として規定されるのであろうか。BD-ROMのローディングがなされた後、図14において矢印jh1,2,3,4・・・・・に示された参照符号の数値順に分岐がなされ、BD-ROMがイジェクトされたものとする。そうすると、BD-ROMがローディングされてから、イジェクトされるまでの連続時間帯を一本の時間軸と同視することができる。この時間軸を、ディスク全体の時間軸とする。図15(a)は、ディスク全体の時間軸を示す図であり、図15(b)は、この時間軸における構成を示す。図15(b)に示すように、ディスク全体の時間軸は、FirstPlayTitleが再生されている区間、TopMenu Titleが再生されている区間、title#1〜#3が再生されている区間等からなる。これらTitleの再生区間はどのように規定されているかというと、Titleは、唯一のBD-JObjectから構成されるから、BD-J Objectが、有効になっている期間をTitleの再生区間と考えることができる。同様に、Titleは、1つ又は複数のHDMVObjectから構成されるから、HDMV Objectが、有効になっている期間をTitleの再生区間と考えることができる。
つまりFirstPlay Title、TopMenu Title、その他のTitleは、何れも動的シナリオから構成されるから、Titleを構成するBD-JObjectのうち、どれかカレントBD-J ObjectとしてActivatedされ、読出装置内において解読・実行に供されている期間を、Titleの再生区間と定義することができる。図16(a)は、BD-ROM全体の時間軸において、識別子bobj_idにより特定されるBD-JObjectから特定されるタイトル再生区間を示す図である。ここで識別子bobj_idにより特定されるBD-J Objectが、1つのTitleを構成しているなら、その識別子bobj_idにより特定されるBD-JObjectが有効になっているBD-ROM時間軸上の一区間を、Titleの再生区間と考えることができる。
ここでBD-J ObjectがActivateされている期間の終期は、Title分岐がなされるまでである。つまり、Title分岐がなされるまで、実行の対象になっている動的シナリオは、カレントBD-JObjectとして扱われるから、そのBD-J ObjectにおいてJumpTitleが発生するまでの1つの区間を、Title区間として扱う。
続いてTitle区間と、PL時間軸との関係について説明する。上述したようにMovieObject、BD-J Objectでは、1つの処理手順としてプレイリスト再生手順を記述することができる。プレイリスト再生手順の記述があれば、上述したPL時間軸の全部又は一部がTitle区間に帰属することになる。図16(a)の一例においてBD-JObjectに、プレイリスト管理テーブルが記述されているとする。この場合、BD-J Objectに対応するTitle区間には、図16(b)に示すように、PL時間軸が帰属する。このPL時間軸には更に、複数チャプター(Chapter#1,#2,#3)が定義され得るため、BD-ROM上の時間軸には、BD-ROM全体−Title−プレイリスト−チャプターというドメインが存在することになる。これらのドメインを用いて、アプリケーションの生存区間を記述することができる。尚、プレイリスト再生は、アプリケーション実行と同時になされため、プレイリスト再生の途中で、Title分岐が発生することがある。この場合、1つのTitle再生区間内にはプレイリスト時間軸全体ではなく、プレイリスト時間軸の一部分のみが帰属することになる。つまり1つのTitleの再生区間において、プレイリスト時間軸の全体が帰属するか、その一部分が帰属するかは、Title分岐が何時発生するかによって変わる。
図17は、図16(b)の時間軸上に規定される、生存区間の典型を示す図である。本図に示すようにアプリケーションには、Titleを生存区間にした”タイトルバウンダリアプリケーション”、Title内におけるチャプターを生存区間にした”チャプターバウンダリアプリケーション”、BD-ROM全体の時間軸を生存区間にした”タイトルアンバウンダリーアプリケーション”という3つの典型がある。
このうちタイトルバウンダリアプリケーションの生存区間は、そのタイトルの識別子を用いて定義することができる。またチャプターバウンダリアプリケーションの生存区間は、チャプターが属するタイトルの識別子と、そのチャプターの識別子との組みを用いて定義することができる。
プラットフォームが動作していたとしても、Titleやチャプターという生存区間が終われば、リソースをアプリケーションから回収することができる。リソース回収の機会を保証するので、プラットフォームの動作を安定化させることができる。
近い将来、実施されるであろうディスクコンテンツを題材に選んで、アプリケーション管理テーブルにおける生存区間記述について、具体例を交えて説明する。ここで題材にするディスクコンテンツは、映像本編を構成する本編タイトル(title#1)、オンラインショッピングを構成するオンラインショッピングタイトル(title#2)、ゲームアプリケーションを構成するゲームタイトル(title#3)という、性格が異なる3つのタイトルを含むものである。図18は、本編タイトル、オンラインショッピングタイトル、ゲームタイトルという3つのタイトルを含むディスクコンテンツを示す図である。本図における右側にはIndex.bdmvを記述しており、左側には3つのタイトルを記述している。
右側における破線枠は、各アプリケーションがどのタイトルに属しているかという帰属関係を示す。3つのタイトルのうちtitle#1は、application#1、application#2、application#3という3つのアプリケーションからなる。title#2は、application#3、application#4という2つのアプリケーション、title#3は、application#5を含む。図21の一例においてapplication#3は、title#1、title#2の双方で起動される。
図18の破線に示される帰属関係から各アプリケーションの生存区間をグラフ化すると、図19(a)のようになる。本図において横軸は、タイトル再生区間であり、縦軸方向に各アプリケーションの生存区間を配置している。ここでapplication#1、application#2は、title#1のみに帰属しているので、これらの生存区間は、title#1内に留まっている。application#4は、title#2のみに帰属しているので、これらの生存区間は、title#2内に留まっている。application#5は、title#3のみに帰属しているので、これらの生存区間は、title#3内に留まっている。application#3は、title#1及びtitle#2に帰属しているので、これらの生存区間は、title#1−title#2にわたる。この生存区間に基づき、アプリケーション管理テーブルを記述すると、title#1,#2,#3のアプリケーション管理テーブルは図19(b)のようになる。このようにアプリケーション管理テーブルが記述されれば、title#1の再生開始時においてapplication#1、application#2、application#3をワークメモリにロードしておく。そしてtitle#2の開始時にapplication#1、application#2をワークメモリから削除してapplication#3のみにするという制御を行う。これと同様にtitle#2の再生開始時においてapplication#4をワークメモリにロードしておき、title#3の開始時にapplication#3,#4をワークメモリから削除するという制御を行いうる。
更に、title#3の再生中においてapplication#5をワークメモリにロードしておき、title#3の再生終了時にapplication#5をワークメモリから削除するという制御を行いうる。
タイトル間分岐があった場合でも、分岐元−分岐先において生存しているアプリケーションはワークメモリ上に格納しておき、分岐元にはなく、分岐先にのみ存在するアプリケーションをワークメモリに読み込めば良いから、アプリケーションをワークメモリに読み込む回数は必要最低数になる。このように、読込回数を少なくすることにより、タイトルの境界を意識させないアプリケーション、つまりアンバウンダリなアプリケーションを実現することができる。
続いてアプリケーションの起動属性についてより詳しく説明する。起動属性には、自動的な起動を示す「AutoRun」、自動起動の対象ではないが、仮想マシンのワークメモリに置いて良いことを示す「Present」、仮想マシンのワークメモリにはおかれるが、CPUパワーの割り当ては不可となる「Suspend」がある。
「AutoRun」は、対応するタイトルの分岐と同時に、そのアプリケーションをワークメモリに読み込み、且つ実行する旨を示す属性である。あるタイトルから、別のタイトルへの分岐があると、アプリケーション管理を行う管理主体(アプリケーションマネージャ)は、その分岐先タイトルにおいて生存しており、かつ起動属性がAutoRunに設定されたアプリケーションを仮想マシンのワークメモリに読み込み実行する。これによりそのアプリケーションは、タイトル分岐と共に自動的に起動されることになる。
起動属性「Present」は、継続属性であり、分岐元titleにおけるアプリケーションの状態を継続することを示す。また対応するアプリケーションを実行してよいことを示す属性である。起動属性が「Present」である場合、この起動属性が付与されたアプリケーションは、他のアプリケーションからの呼び出しが許可されることになる。アプリケーション管理を行う管理主体(アプリケーションマネージャ)は、起動中のアプリケーションから呼出があると、そのアプリケーションのapplicationIDが、アプリケーション管理テーブルに記述されていて、起動属性が「Present」であるか否かを判定する。「Present」であれば、そのアプリケーションをワークメモリにロードする。一方、その呼出先アプリケーションのapplicationIDがアプリケーション管理テーブルに記述されていない場合、そのアプリケーションはワークメモリにロードされない。アプリケーションによる呼出は、この「Present」が付与されたアプリケーションに限られることになる。「Present」は、起動属性を明示的に指定しない場合に付与されるデフォルトの起動属性であるから、あるアプリケーションの起動属性が無指定「−−」である場合、そのアプリケーションの起動属性の起動属性はこのPresentであることを意味する。
「Suspend」とは、リソースは割り付けられているが、CPUパワーは割り当てられない状態にアプリケーションが置かれることをいう。かかるSuspendは、例えばゲームタイトルの実行中に、サイドパスを経由するという処理の実現に有意義である。
図20は、起動属性がとり得る三態様(Present、AutoRun、Suspend)と、直前タイトルにおけるアプリケーション状態の三態様(非起動、起動中、Suspend)とがとりうる組合せを示す図である。直前状態が”非起動”である場合、起動属性が”AutoRun”であるなら、分岐先タイトルにおいてそのアプリケーションは、起動されることになる。
直前状態が”非起動”であり、起動属性が”Present”、”Suspend”であるなら、分岐先タイトルにおいてそのアプリケーションは、何もせず、状態を継続することになる。
直前状態が”起動中”である場合、起動属性が”Present”、”AutoRun”であるなら、分岐先タイトルにおいてそのアプリケーションは、何もせず、状態を継続することになる。
起動属性が”Suspend”であるなら、アプリケーションの状態はSuspendされることになる。直前状態が”Suspend”である場合、分岐先タイトルの起動属性が”Suspend”ならSuspendを維持することになる。”Present”又は”AutoRun”であるなら、分岐先タイトルにおいてそのアプリケーションは、レジュームすることになる。アプリケーション管理テーブルにおいて生存区間及び起動属性を定義することにより、タイトル再生区間の進行に沿って、Java(登録商標)アプリケーションを動作させるという同期制御が可能になり、映像再生と、プログラム実行とを伴った、様々なアプリケーションを世に送り出すことができる。
尚、直前状態が”Suspend”であり、分岐先タイトルの起動属性が”Present”の場合は、直前状態、すなわちサスペンド状態を維持しても良い。
最後に、各アプリケーションに対する”起動優先度”について説明する。
この起動優先度は、0〜255の値をとり、メモリリソース枯渇時や、CPU負荷が高まった時に、どのアプリケーションを強制的に終了させるか、また、どちらのアプリケーションからリソースを奪うかという処理をアプリケーションマネージャが行うにあたっての判断材料になる。この場合、アプリケーションマネージャは、起動優先度が低いアプリケーションの動作を終了し、起動優先度が高いアプリケーションの動作を継続させるとの処理を行う。
また起動優先度は、再生中プレイリストに対する要求が競合した場合のアプリケーション間の調停でも利用される。ここであるアプリケーションが、あるプレイリストの早送りしているものとする。ここで別のアプリケーションが同じプレイリストに対するポーズ要求を行ったとすると、これらのアプリケーションに付与された起動優先度を比較する。そして早送りを命じたアプリケーションの起動優先度が高いなら、かかるアプリケーションによる早送りを継続して行う。逆にポーズを命じたアプリケーションの起動優先度が高いなら、早送り中プレイリストのポーズを行う。
以上の生存区間・起動属性・起動優先度により、仮想マシン上で動作し得るアプリケーションの数を所定数以下に制限するよう規定しておくことがオーサリング時に可能なる。そのため、アプリケーションの安定動作を保証することができる。
<プレイリスト管理テーブル>
以上がアプリケーション管理テーブルについての説明である。続いてプレイリスト管理テーブル(PLMT)について説明する。プレイリスト管理テーブルとは、アプリケーションの生存区間において、各アプリケーション実行と同時に行うべき再生制御を示すテーブルである。アプリケーションの動作というのは不安定であり、起動の失敗や異常終了がありうる。そこで起動失敗、異常終了があった場合のFailSafe機構として、本実施形態ではアプリケーションの生存区間毎に、プレイリスト管理テーブルを設けている。プレイリスト管理テーブルは、あるアプリケーションの生存区間が開始した際、これと同時に行うべき再生制御を規定する情報である。この再生制御とは、プレイリスト情報に基づくAVClip再生であり、プレイリスト情報による再生制御を同時に行うことで、アプリケーション実行と、プレイリスト再生とが同時になされることになる。
図21(a)は、プレイリスト管理テーブルの内部構成を示す図である。本図に示すようにプレイリスト管理テーブルは、『PL_id_ref』と、『Playback_Attribute』とからなる。
図21(b)は、プレイリスト管理テーブルを構成する情報要素の意味内容を示す。
『PL_id_ref』は、プレイリスト識別子に対する”参照値”が記述されることにより、アプリケーションの生存区間において再生可能となるプレイリストがどれであるかを示す。プレイリスト識別子は、ファイルYYYYY.MPLSにおいて、ファイル名として付与された5桁の数値YYYYYで表現される。このYYYYYが記述されることにより、『PL_id_ref』は、対応するTitleにおいて再生可能となるプレイリストがどれであるかを示す。
『Playback_Attribute』は、アプリケーション管理テーブルにおける起動属性に倣った属性であり、『PL_id_ref』に記述されたプレイリストを、タイトル開始時において、どのように再生するかを規定する再生属性である。プレイリストに対する再生属性には、『AutoPlay』、『Present』といった種別がある。
『AutoPlay』とは、対応するタイトルの分岐と同時に、そのプレイリストを再生させる旨を示す属性である。あるタイトルから、別のタイトルへの分岐があると、アプリケーション管理を行う管理主体(アプリケーションマネージャ)は、その分岐先タイトルにおいて再生可能であり、かつ再生属性がAutoPlayに設定されたプレイリストの再生を開始する。これにより起動属性がAutoPlayに設定されたプレイリストは、タイトル分岐と共に自動的に起動されることになる。
『Present』とは、起動属性におけるPresent同様、継続属性であり、分岐元titleにおけるプレイリストの状態を継続することを示す。また対応するプレイリストを再生してよいことを示す属性である。例えば連続して再生される2つのTitleがあり、前のタイトル側のプレイリスト管理テーブルでは、あるプレイリストの再生属性がAutoPlayに設定され、カレントタイトル側のプレイリスト管理テーブルでは、そのプレイリストの再生属性がPresentに設定されているものとする。ここでプレイリストの再生時間が2時間長であり、このうち1時間が経過した時点で分岐が発生したとする。この場合カレントタイトルでは、再生属性がPresentに設定されているので、カレントタイトルにおいて、そのプレイリストは、1時間という再生済み区間の直後から、再生されることになる。このように再生属性をPresentに設定しておけば、Title間の分岐があった場合でも、プレイリスト再生をその残りの部分から開始することができる。これにより分岐し合う一連のTitleにおいて、共通のプレイリストを再生するという”タイトル間におけるプレイリスト再生の共通化”を容易に実現することができる。また分岐先タイトルが複数ある場合、これら複数タイトルの再生属性を何れもPresentにしておけば、複数のうちどれに分岐したとしても、1つの共通のプレイリスト再生を継続させることができる。
尚Titleの境界は、シームレス再生を保証しなくてもよいので、上述したように複数Title間で1つのプレイリストを再生しようとする場合、分岐前後でプレイリスト再生を中断させることは許容される。
また、再生属性が「Present」である場合、この再生属性が付与されたプレイリストは、他のアプリケーションからの再生要求により再生されることになる。アプリケーション管理を行う管理主体(アプリケーションマネージャ)は、起動中のアプリケーションから、プレイリストの再生要求があると、要求を受けたプレイリストのPL_id_refが、プレイリスト管理テーブルに記述されていて、再生属性が「AutoPlay」か「Present」のいずれかか否かを判定する。「AutoPlay」か「Present」のいずれかであれば、そのプレイリストを再生する。一方、要求を受けたプレイリストのPL_id_refがプレイリスト管理テーブルに記述されていない場合、そのプレイリストを再生しない。アプリケーションの要求によるプレイリスト再生は、この「AutoPlay」か「Present」のいずれかが付与されたプレイリストに限られることになる。「Present」は、再生属性を明示的に指定しない場合に付与されるデフォルトの再生属性であるから、あるプレイリストの再生属性が無指定「−−」であるとそのプレイリストの再生属性はこのPresentであることを意味する。
図22は、プレイリスト管理テーブル、アプリケーション管理テーブルにより規定されるタイトルの具体例を示す。図22の第1段目は、Titleの再生映像を示し、第2段目は、Titleの時間軸を示す。第3段目はPLMTにより再生が規定されるプレイリスト、第4段目は、アプリケーション実行を示す。第4段目においてapplication#1は、Titleの開始と共に起動されており、その後、時点t1において動作状態になる。一方PlayList#1は、Titleの開始と共に再生が開始されている。Playlist#1の再生は、Titleの開始と同じ時点に開始されているので、第1段目の左側に示すように、Titleの再生開始直後から、アプリケーションが動作状態になるまでのスタートアップディレイにおいて、プレイリストの再生画像gj1がフルスクリーン表示される。プレイリスト管理テーブルの再生属性を、”AutoPlay”に設定しておくことにより、Java(登録商標)アプリケーションが動作状態になるまで5〜10秒という時間がかかったとしても、その間、”とりあえず何かが写っている状態”になる。この”とりあえず何かが写っている状態”によりタイトル実行開始時のスタートアップディレイを補うことができる。
一方、application#1は、時点t1で動作状態になるので、プレイリスト再生画像を子画面、アプリケーションの実行画像を親画面にした合成画像gj2が時点t1において表示されることになる。アプリケーションの実行画像は、Startボタン,continueボタン,POWERインディケータを配置したゲーム用のGUIフレームワークであり、かかるGUIフレームワークの描画処理をJava(登録商標)アプリケーションが実行することでなされる。
こうした、プレイリストの再生映像と、Java(登録商標)アプリケーションのGUIフレームワークとを組み合わせた再生映像をなすタイトルを構成することができるのが、PLMTの特徴である。
図23は、カレントタイトルがとり得る三態様(プレイリスト管理テーブル無し(i)、プレイリスト管理テーブル有りで尚且つAutoPlay(ii)、プレイリスト管理テーブル有りで尚且つ無指定(iii))と、直前タイトルにおけるプレイリストの状態(非再生状態、再生中状態)とがとりうる6通りの組合せを示す図である。
本図における6通りの組合せのうち、”直前状態=非再生状態”と、”カレントタイトル=プレイリスト管理テーブル有り、尚且つ、カレントタイトルの再生属性=AutoPlay”との組合せにおいて、分岐先タイトルにおけるプレイリストの再生は、自動的に開始することになる。
また”直前状態=再生中状態”と、”カレントタイトル=プレイリスト管理テーブル無し”との組合せにおいて、分岐先タイトルでのプレイリストの再生は、自動的に停止することになる。
そしてこれら2つの組合せ以外は全て、前のタイトルの状態を継続することになる。プレイリスト管理テーブルに基づくプレイリスト再生の開始は、分岐元タイトルにおいて非再生状態であり、分岐先タイトルにおいてAutoPlay属性が付与されている場合に限られるので、タイトルの分岐発生する毎に、プレイリスト再生を開始させる必要はない。タイトル間の分岐が多数発生したとしても、プレイリスト再生を開始させる回数を必要最低数にすることができる。
以上が記録媒体についての説明である。続いて本発明に係る読出装置について説明する。
図24は、本発明に係る読出装置の内部構成を示す図である。本発明に係る読出装置は、本図に示す内部に基づき、工業的に生産される。本発明に係る読出装置は、主としてシステムLSIと、ドライブ装置というパーツからなり、これらのパーツを装置のキャビネット及び基板に実装することで工業的に生産することができる。システムLSIは、読出装置の機能を果たす様々な処理部を集積した集積回路である。こうして生産される読出装置は、BD-ROMドライブ1、リードバッファ2、デマルチプレクサ3、ビデオデコーダ4、ビデオプレーン5、バッファ6、オーディオデコーダ7、InteractiveGraphicsデコーダ11、Interactive Graphicsプレーン12、Presentation Graphicsデコーダ13、PresentationGraphicsプレーン14、JPEGデコーダ15、Stillプレーン16、合成部17、STC生成部18、ATC生成部19、ローカルストレージ20、命令ROM21、シナリオメモリ22、PSRセット23、CPU24、通信部25、操作受付部26から構成される。
BD-ROMドライブ1は、BD-ROMのローディング/イジェクトを行い、BD-ROMに対するアクセスを実行する。
リードバッファ2は、FIFOメモリであり、BD-ROMから読み出されたTSパケットが先入れ先出し式に格納される。
デマルチプレクサ3は、リードバッファ2からSourceパケットを取り出して、このSourceパケットを構成するTSパケットをPESパケットに変換する。そして変換により得られたPESパケットのうち、STN_Tableに記載されたからPIDをもつものをビデオデコーダ4、オーディオデコーダ7、InteractiveGraphicsデコーダ11、Presentation Graphicsデコーダ13のどれかに出力する。
ビデオデコーダ4は、デマルチプレクサ3から出力された複数PESパケットを復号して非圧縮形式のピクチャを得てビデオプレーン5に書き込む。
ビデオプレーン5は、非圧縮形式のピクチャを格納しておくためのプレーンである。プレーンとは、読出装置において一画面分の画素データを格納しておくためのメモリ領域である。ビデオプレーン5における解像度は1920×1080であり、このビデオプレーン5に格納されたピクチャデータは、16ビットのYUV値で表現された画素データにより構成される。ビデオプレーン5では、ビデオストリームにおける一フレーム毎の再生映像を、スケーリングすることができる。スケーリングとは、一フレーム毎の再生画像をビデオプレーン5全体の1/4(クオータという)、1/1(フルスケールという)のどちらかに変化させることである。かかるスケーリングを、BD-JモードにおいてCPU24からの指示に従い実行するので、ビデオストリームの再生画像を、画面の隅に追いやったり、全面的に出すという画面演出が可能になる。
バッファ6は、デマルチプレクサ3から出力された、TSパケットを、先入れ先だし式に格納して、オーディオデコーダ7に供する。
オーディオデコーダ7は、Primaryオーディオストリームに対するデコード処理を行う。
Interactive Graphics(IG)デコーダ11は、BD-ROM又はローカルストレージ20から読み出されたIGストリームをデコードして、非圧縮グラフィクスをInteractiveGraphicsプレーン12に書き込む。
Interactive Graphics(IG)プレーン12は、HDMVモードにおいてIGデコーダ11によるデコードで得られた非圧縮グラフィクスが書き込まれる。またBD-Jモードにおいて、アプリケーションにより描画された文字やグラフィクスが書き込まれる。
Presentation Graphics(PG)デコーダ13は、BD-ROM又はローカルストレージ20から読み出されたPGストリームをデコードして、非圧縮グラフィクスをPresentationGraphicsプレーン11に書き込む。PGデコーダ13によるデコードにより、字幕が画面上に現れることになる。
Presentation Graphics(PG)プレーン14は、一画面分の領域をもったメモリであり、一画面分の非圧縮グラフィクスを格納することができる。
JPEGデコーダ15は、BD-ROM又はローカルストレージ20に記録されているJPEGデータをデコードして、Stillプレーン16に書き込む。
Stillプレーン16は、JPEGデータを展開することで得られた非圧縮のグラフィクスデータが格納されるプレーンである。このグラフィクスデータは、Java(登録商標)アプリが描画する、GUIフレームワークのいわゆる“壁紙”として用いられる。
合成部17は、Interactive Graphicsプレーン12の格納内容と、Presentation Graphicsプレーン14の格納内容と、ビデオプレーン5の格納内容と、Stillプレーン16の格納内容とを合成した合成画像を得る。
STC生成部18は、System Time Clock(STC)を生成する。そしてSTC_Sequenceの切り換わり時において、それまでのSTC_SequenceにおけるSTC値(STC1)に、STC_deltaと呼ばれるオフセット値を加算することにより、新しいSTC_SequenceのSTC値(STC2)を求めて、それまでのSTC_SequenceにおけるSTC値(STC1)と、新しいSTC_SequenceのSTC_Sequenceにおいて最後に再生されるピクチャの表示開始時刻をPTS1(1stEND)、ピクチャの表示期間をTppとし、後続STC_Sequenceにおいて最初に表示されるピクチャの開始時刻をPTS2(2ndSTART)とした場合、STC_deltaは
STC_delta=PTS1(1stEND)+Tpp−PTS2(2ndSTART)
として表現される。以上のようにSTC_deltaを求め、これが足し合わされたクロックの計数値を各デコーダに出力する。これにより各デコーダは、2つのSTC_Sequenceにあたるストリームを途切れなく再生してゆくことができる。以上により、1つのAVClipの中に、2以上のSTC_Sequenceが存在したとしても、また、連続して再生されるべき2以上のAVClipのそれぞれが、異なるSTC_Sequenceをもっていたとしても、これらのSTC_Sequence間のデコード処理を、シームレスに実行することができる。
ATC生成部19は、Arrival Time Clock(ATC)を生成する。そしてATC_Sequenceの切り換わり時において、それまでのATC_SequenceにおけるATC値(ATC1)に、ATC_deltaと呼ばれるオフセット値を加算することにより、それまでのATC_SequenceにおけるATC値(ATC1)と、新しいATC_SequenceのATC値(ATC2)とを連続した値にする。この加算により、ATC2=ATC1+ATC_deltaになる。ATC_deltaとは、これまで読み出されているトランスポートストリーム(TS1)の最後のTSパケットの入力時点T1から、新たに読み出されたトランスポートストリーム(TS2)の最初のTSパケットの入力時点T2までのオフセット値をいい、“ATC_delta≧N1/TS_recording_rate”という計算式で与えられる。ここで入力時点T2は、TS2の最初のTSパケットの入力時点を、TS1の時間軸上に投影した時点を意味する。またN1は、TS1の最後のビデオPESパケットに後続する、TSパケットのパケット数である。BD-ROMにおいてかかるATC_deltaは、Clip情報に記述されるので、これを用いることにより、ATC_deltaを計算することができる。以上の計算により、これまでのATC_SequenceがもっているATC値(ATC1)と、新たなATC_SequenceがもっているATC値(ATC2)とを、連続した値にすることができる。ATC_deltaが足し合わされたクロックの計数値をデマルチプレクサ(De-MUX)3に出力することで、シームレスなバッファ制御を実現することができる。
また、バッファリングの連続性をみたすには、以下の1),2)を満たせば良い。
1) STC2(2ndSTART)>STC2(1stEND)をみたすこと、
ここでSTC2(1stEND)は、STC1(1stEND)を、STC2の時間軸に投影した値であり、STC2(1stEND)=STC1(1stEND)-STC_deltaという計算式で与えられる。
2) TS1からのTSパケットの取り出しと、TS2からのTSパケットの取り出しとが、同じ時間軸に投影されたSTC1と、STC2とにより定義され、バッファのアンダーフローや、オーバーフローをもたらさないこと。
ローカルストレージ20は、webサイトからダウンロードされたコンテンツ等、BD-ROM以外の記録媒体、通信媒体から供給されたコンテンツを、メタデータと共に格納しておくためのハードディスクである。このメタデータは、ダウンロードコンテンツをローカルストレージ20にバインドして管理するための情報であり、このローカルストレージ20をアクセスすることで、BD-Jモードにおけるアプリケーションは、ダウンロードコンテンツ長さを利用した様々な処理を行うことができる。
命令ROM21は、読出装置の制御を規定するソフトウェアを記憶している。
シナリオメモリ22は、カレントのPL情報やカレントのClip情報を格納しておくためのメモリである。カレントPL情報とは、BD-ROMに記録されている複数プレイリスト情報のうち、現在処理対象になっているものをいう。カレントClip情報とは、BD-ROMに記録されている複数Clip情報のうち、現在処理対象になっているものをいう。
PSRセット23は、読出装置に内蔵されるレジスタであり、64個のPlayer Status/Setting Register(PSR)と、4096個のGeneralPurpose Register(GPR)とからなる。Player Status/Setting Registerの設定値(PSR)のうち、PSR4〜PSR8は、現在の再生時点を表現するのに用いられる。
PSR4は、1〜100の値に設定されることで、現在の再生時点が属するタイトルを示し、0に設定されることで、現在の再生時点がトップメニューであることを示す。
PSR5は、1〜999の値に設定されることで、現在の再生時点が属するチャプター番号を示し、0xFFFFに設定されることで、読出装置においてチャプター番号が無効であることを示す。
PSR6は、0〜999の値に設定されることで、現在の再生時点が属するプレイリスト(カレントPL)の番号を示す。
PSR7は、0〜255の値に設定されることで、現在の再生時点が属するPlayItem(カレントPlay Item)の番号を示す。
PSR8は、0〜OxFFFFFFFFの値に設定されることで、45KHzの時間精度を用いて現在の再生時点(カレントPTM(PresentationTiMe))を示す。以上のPSR4〜PSR8により、図16(a)におけるBD-ROM全体の時間軸において、現在の再生時点はどこであるかを特定することができる。
CPU24は、命令ROM21に格納されているソフトウェアを実行して、読出装置全体の制御を実行する。この制御の内容は、操作受付部26から出力されたユーザイベントを示す情報、及び、PSRセット23における各PSRの設定値に応じて動的に変化する。
通信部25は、読出装置における通信機能を実現するものであり、BD-JモードにおいてURL指定がJava(登録商標)アプリケーションから与えられれば、そのURLにあたるwebサイトとのTCPコネクション、FTPコネクション等を確立する。かかるコネクション確立によりwebサイトからのダウンロードをJava(登録商標)アプリケーションに行わせる。
操作受付部26は、リモコンに対してなされた操作をユーザから受け付け、そうした操作、つまりユーザイベントを示す情報をCPU24に通知する。
以上が、本実施形態に係る読出装置のハードウェア構成である。続いて本実施形態に係る読出装置のソフトウェア構成について説明する。
図25は、命令ROM21に格納されたソフトウェアと、ハードウェアとからなる部分を、レイア構成に置き換えて描いた図である。本図に示すように、読出装置のレイア構成は、以下のa),b),c)からなる。つまり、
a)BD Player Deviceの第1階層、
b)BD Player Modelの第2階層、
c)Application Runtime Enviromentの第3階層からなる。
これらの階層のうち読出装置のハードウェア構成は、第1階層に属することになる。本図の第1階層”BD Player Device”には、ハードウェア構成のうちビデオデコーダ4、オーディオデコーダ7、IGデコーダ11、PGデコーダ13にあたる”デコーダ”と、ビデオプレーン5、IGプレーン12、PGプレーン14にあたる”プレーン”、BD-ROM及びそのファイルシステム、ローカルストレージ20及びそのファイルシステムを含む。
第2階層”BD Player Model”は、以下のb1),b2)の層からなる。つまり、
b1)再生制御エンジン32の層
b2)Virtual File System30及び再生エンジン31の層
からなり、自身より上位の階層に対し、ファンクションAPIを提供する。
第3階層”Application Runtime Enviroment”は、以下のc1),c2)の階層からなる。つまり、
c1)モジュールマネージャ33が存在する層、
c2)BD-Jプラットフォーム35が存在する層
からなる。
先ず初めに、第2層及び第3層に属するVirtual File System30〜HDMVモジュール34について説明する。
Virtual File System30は、ローカルストレージ20に格納されたダウンロードコンテンツを、BD-ROMにおけるディスクコンテンツと一体的に取り扱うための仮想的なファイルシステムである。ここでローカルストレージ20に格納されたダウンロードコンテンツは、SubClip、Clip情報、プレイリスト情報を含む。このダウンロードコンテンツにおけるプレイリスト情報はBD-ROM及びローカルストレージ20のどちらに存在するClip情報であっても、指定できる点で、BD-ROM上のプレイリスト情報と異なる。この指定にあたって、VirtualFile System30上のプレイリスト情報は、BD-ROMやローカルストレージ20におけるファイルをフルパスで指定する必要はない。BD-ROM上のファイルシステムやローカルストレージ20上のファイルシステムは、仮想的な1つのファイルシステム(VirtualFile System30)として、認識されるからである。故に、PlayItem情報は、Virtual File System30上のAVClip、BD-ROM上のAVClipの何れに対しても、再生区間を指定することができる。VirtualFile System30を介してローカルストレージ20の記録内容を読み出し、BD-ROMの記録内容と動的に組み合わせることにより、様々な再生のバリエーションを産み出すことができる。ローカルストレージ20と、BD-ROMとを組合せてなるディスクコンテンツは、BD-ROMにおけるディスクコンテンツと対等に扱われるので、本願における”BD-ROM”は、ローカルストレージ20+BD-ROMの組合せからなる仮想的な記録媒体をも含むことにする。
再生エンジン31は、AV再生ファンクションを実行する。読出装置のAV再生ファンクションとは、DVDプレーヤ、CDプレーヤから踏襲した伝統的な機能群であり、再生開始(Play)、再生停止(Stop)、一時停止(PauseOn)、一時停止の解除(Pause Off)、Still機能の解除(still off)、速度指定付きの早送り(Forward Play(speed))、速度指定付きの巻戻し(BackwardPlay(speed))、音声切り換え(Audio Change)、副映像切り換え(Subtitle Change)、アングル切り換え(AngleChange)といった機能である。AV再生ファンクションを実現するべく、再生エンジン31は、リードバッファ2上に読み出されたAVClipのうち、所望に時刻にあたる部分のデコードを行うよう、ビデオデコーダ4、PGデコーダ13、IGデコーダ11、オーディオデコーダ7を制御する。所望の時刻としてPSR8(カレントPTM)に示される箇所のデコードを行わせることにより、AVClipにおいて、任意の時点を再生を可能することができる。
再生制御エンジン(Playback Control Engine(PCE))32は、プレイリストに対する再生制御ファンクション(i)、PSRセット23における状態取得/設定ファンクション(ii)といった諸機能を実行する。プレイリストに対する再生制御ファンクションとは、再生エンジン31が行うAV再生ファンクションのうち、再生開始や再生停止を、カレントPL情報及びClip情報に従って行わせることをいう。これら機能(i)〜(ii)は、HDMVモジュール34〜BD-Jプラットフォーム35からのファンクションコールに応じて実行する。
モジュールマネージャ33は、BD-ROMから読み出されたIndex.bdmvを保持して、分岐制御を行う。この分岐制御は、カレントタイトルを構成する動的シナリオにTerminateイベントを発行し、分岐先タイトルを構成する動的シナリオにActivateイベントを発行することでなされる。
HDMVモジュール34は、HDMVモードの実行主体であり、MovieObjectをメモリに読み出して、このMovie Objectに記述されたナビゲーションコマンドを解読し、解読結果に基づき再生制御エンジン32に対するファンクションコールを実行する。
以上が再生エンジン31〜HDMVモジュール34についての説明である。続いてBD-Jプラットフォーム35について説明する。
BD-Jプラットフォーム35は、いわゆるJava(登録商標)プラットフォームであり、Java(登録商標)仮想マシン36を中核にした構成になっている。BD-Jプラットフォーム35は、上述したJava(登録商標)2Micro_Edition(J2ME)Personal Basis Profile(PBP 1.0)と、Globally Executable MHPspecification(GEM[1.0.2])for package media targetsに加え、BD-J Extentionを実装している。BD-JExtentionは、GEM[1.0.2]を越えた機能を、BD-Jプラットフォームに与えるために特化された、様々なパッケージを含んでいる。
以降、BD-Jプラットフォーム35の内部構成について説明する。まず始めに、BD-Jプラットフォーム35の中核となるJava(登録商標)仮想マシン36について説明する。
<Java(登録商標)仮想マシン36>
図26は、Java(登録商標)仮想マシン36の内部構成を示す図である。本図に示すようにJava(登録商標)仮想マシン36は、図24に示したCPU24と、ユーザクラスローダ52、メソッドエリア53、ワークメモリ54、スレッド55a,b・・・n、Java(登録商標)スタック56a,b・・・nとから構成される。
ユーザクラスローダ52は、BDJAディレクトリのJava(登録商標)アーカイブファイルにおけるクラスファイルをシナリオメモリ22等から読み出してメソッドエリア53に格納する。このユーザクラスローダ52によるクラスファイル読み出しは、ファイルパスを指定した読み出しをアプリケーションマネージャ37がユーザクラスローダ52に指示することでなされる。ファイルパスがシナリオメモリ22を示しているなら、ユーザクラスローダ52は、アプリケーションを構成するJava(登録商標)アーカイブファイルにおけるクラスファイルを、シナリオメモリ22からワークメモリ54に読み出す。ファイルパスがVirtualFile System30上のディレクトリを示しているなら、ユーザクラスローダ52は、アプリケーションを構成するJava(登録商標)アーカイブファイルにおけるクラスファイルを、BD-ROM又はローカルストレージ20からワークメモリ54に読み出す。アプリケーションの起動制御は、このユーザクラスローダ52によるクラスファイル読み出しにより実現される。読み出しが指示されたクラスファイルがシナリオメモリ22にない場合、ユーザクラスローダ52は読み出し失敗をアプリケーションマネージャ37に通知することになる。
メソッドエリア53は、ユーザクラスローダ52によりシナリオメモリ22から読み出されたクラスファイルが格納される。
ワークメモリ54は、いわゆるヒープエリアであり、様々なクラスファイルのインスタンスが格納される。図25に示したアプリケーションマネージャ37は、このワークメモリ54に常駐するレジデントアプリケーションである。ワークメモリ54には、これらレジデント型のインスタンスの他に、メソッドエリア53に読み出されたクラスファイルに対応するインスタンスが格納される。このインスタンスが、アプリケーションを構成するxletプログラムである。かかるxletプログラムをワークメモリ54に配置することによりアプリケーションは実行可能な状態になる。
図25のレイアモデルでは、このワークメモリ54上のアプリケーションマネージャ37を、Java(登録商標)仮想マシン36上に描いていたが、これはわかり易すさを意図した配慮に過ぎない。アプリケーションマネージャ37及びアプリケーションはインスタンスとしてスレッド55a,b・・・nにより実行されるというのが、現実的な記述になる。
スレッド55a,b・・・nは、ワークメモリ54に格納されたメソッドを実行する論理的な実行主体であり、ローカル変数や、オペランドスタックに格納された引数をオペランドにして演算を行い、演算結果を、ローカル変数又はオペランドスタックに格納する。図中の矢印ky1,ky2,kynは、ワークメモリ54からスレッド55a,b・・・nへのメソッド供給を象徴的に示している。物理的な実行主体がCPU唯1つであるのに対し、論理的な実行主体たるスレッドは、最大64個Java(登録商標)仮想マシン36内に存在し得る。この64個という数値内において、スレッドを新規に作成することも、既存のスレッドを削除することも可能であり、スレッドの動作数は、Java(登録商標)仮想マシン36の動作中において増減し得る。スレッドの数は適宜増やすことができるので、複数スレッドにより1つのインスタンスの並列実行を行い、インスタンスの高速化を図ることもできる。本図ではCPU24と、スレッドとの対応関係は、1対多の関係にしているが、CPUが複数ある場合、CPUとスレッドとの対応関係は多対多の関係になりうる。スレッド55a,b・・・nによるメソッド実行は、メソッドをなすバイトコードを、CPU24のネイティブコードに変換した上、CPU24に発行することでなされる。このネイティブコード変換については、本願の主眼から外れるため、説明を省く。
Java(登録商標)スタック56a,b・・・nは、スレッド55a,b・・・nと1対1の比率で存在しており、プログラムカウンタ(図中のPC)と、1つ以上のフレームとを内部に持つ。”プログラムカウンタ”は、インスタンスにおいて、現在どの部分が実行されているかを示す。”フレーム”はメソッドに対する1回のコールに対して割り当てられたスタック式の領域であり、その1回のコール時の引数が格納される”オペランドスタック”と、コールされたメソッドが用いる”ローカル変数スタック(図中のローカル変数)”とからなる。フレームは、コールが1回なされる度にJava(登録商標)スタック56a,b・・・n上に積み上げられるのだから、あるメソッドが自身を再帰的に呼び出す場合も、このフレームは、1つ積み上げられることになる。
以上がJava(登録商標)仮想マシンについての説明である。
<アプリケーションマネージャ37>
アプリケーションマネージャ37は、Java(登録商標)仮想マシン36内のワークメモリ上で動作するシステムソフトウェアであり、タイトル間の分岐が生じた場合、前のタイトルに対応するAMTと、カレントタイトルに対応するAMTとを用いてシグナリングを実行する。このシグナリングは、前のタイトルに対応するAMTには記載されているが、カレントタイトルに対応するAMTには記載されていないアプリケーションの動作を終了させ、前のタイトルに対応するAMTには記載されておらず、カレントタイトルに対応するAMTには記載されているアプリケーションの動作を開始させるという制御である。
図27は、BD-Jobjectにおけるアプリケーション管理テーブルに基づく、アプリケーションマネージャ37の処理を示す図である。
図27における☆1,☆2,☆3は、アプリケーション管理テーブル参照(☆1)、Java(登録商標)仮想マシン36に対するアプリケーション起動指示(☆2)、Java(登録商標)仮想マシン36による、Java(登録商標)アーカイブファイルに対する読み出し指示(☆3)、Java(登録商標)アプリケーションを定義するクラスファイルのクラスロード(☆4,5,6)という一連の過程を模式化して示す。この起動指示によりJava(登録商標)仮想マシン36は、シナリオメモリ22からワークメモリにxletプログラムを読み出す。
図28は、BD-JobjectにおけるPLMTに基づく、アプリケーションマネージャ37の処理を示す図である。▽1は、BD-JobjectにおけるPLMTの参照を示し、▽2は、再生エンジン31に対するプレイリスト情報の読み出し指示を示す。
図28における◎1,2,3,4は、Virtual File System30経由のプレイリスト情報読み出し(◎1)、プレイリスト情報を構成するPlayItem情報の解読(◎2)、VirtualFile System30経由のClip情報読み出し(◎3)、Clip情報の解読(◎4)を模式化したものである。以上の過程を経てClip情報、プレイリスト情報が解読されれば、AVClipを構成するTSパケットを、VirtualFile System30を通じて再生エンジン31に引き渡す。このようにして再生エンジン31にTSパケットが順次渡れば、再生エンジン31はAVClipを構成するTSパケットをデコーダに出力して、プレーンに表示させる。図中の☆1,2,3,4は、AVClipを構成するTSパケットの読み出し(☆1,2)、VirtualFile System30から再生エンジン31へのTSパケット引き渡し(☆3)、デコーダへのTSパケット投入(☆4)、デコーダから各種プレーンへのデコード結果出力(☆5)を模式的に示している。
以上が、アプリケーションマネージャ37についての説明である。
<機能制限部38>
機能制限部38は、J2ME PBP 1.0におけるJSSE optional packageに該当する構成要素であり、アプリケーションに付与すべき機能に制限を与えたり、またその制限を解除する。J2MEPBP 1.0におけるJSSE optional packageは、BD-Jプラットフォームの実装において必須となるパッケージであり、JSSEは、Java(登録商標)2セキュリティモデルを実現する。Java(登録商標)2セキュリティモデルとは、Sigendアプリケーションを認証し、そして認証されたアプリケーションに、コア機能を越えた機能を許可するというものである。コア機能を越えた機能とは、以下のものがある。
・Local Storageの読み書き
・ネットワーク接続の利用
・BD-ROMのアクセス
・BD-ROMにおける他のタイトルの選択
・他のBD-Jプラットフォームの実行制御
これらの機能のPermissionを獲得するには、Permission request fileを利用せねばならない。上述した機能のPermissionは、このPermissionrequest fileから獲得することができる。
またJSSEは、セキュアなコネクションを確立するためのパッケージである、“Java(登録商標) Package for secure connection”を含む。
このパッケージを用いることでBD-Jプラットフォームはインターネットにおけるサーバとの接続を行うことができる。物理的な接続は、Ethernet(登録商標),電話のそれぞれで違ってもよい。TCP/IPがサポートされ、HTTPプロトコルを使用することができることが接続の条件になる。BD-Jプラットフォームは、ネットワーク接続を利用する前に、認証されねばならず、またネットワーク接続のための適切なPermissionを得なければならない。
Java(登録商標)2セキュリティモデルに準じて、アプリケーションが実行することができる機能に制限を与えたり、この制限を解除したりするのが、機能制限部38の特徴である。
以上で、BD-Jプラットフォーム35の内部構成についての説明を終える。
<ディスクを跨いだアプリケーションシグナリング>
以上は、1つのBD-ROMのあるタイトルから、別のタイトルに再生が切り替わる場合のアプリケーションシグナリングについての説明である。以降、あるBD-ROMにおけるタイトルから、別のBD-ROMにおけるタイトルへと、再生が切り替わる場合のアプリケーションシグナリングについて説明する。
あるBD-ROM(ディスクA)におけるタイトルから、別のBD-ROM(ディスクA+1)におけるタイトルへと、再生が切り替わるケースとしては、長編の映画作品やシリーズ物の映画作品が、BD-BOXとして、複数のBD-ROMに収録されている場合が挙げられる。これは、映画作品が長編である場合や、映画作品がシリーズ物であるため、映画作品がディスク1枚に収まらない場合を想定している。この場合、1つの映画作品が、複数のBD-ROMにおいて、複数のタイトルとして収録されているので、ディスクの交換作業が必要になる。かかる交換作業では、ディスクAの最後に再生されていたタイトル(LastPlayタイトル)に対応するAMTと、ディスクA+1の最初に再生されるタイトル(FirstPlayタイトル)に対応するAMTとに基づきシグナリングを実行せねばならない。
かかるシグナリングは、新しいディスクのローディング時に、アプリケーションの起動、終了の制御がなされるので、アプリケーションによっては、ディスクの交換前後で、動作するものもでてくる。このように、ディスクの交換前後で動作するアプリケーションを“ディスクアンバウンダリィアプリケーション”という。逆に、ディスクの交換後に、動作を終了するアプリケーションを、“ディスクバウンダリィアプリケーション”という。
前編が終了した際に、ユーザーにディスク交換を促すメッセージを表示し、後編が収められたディスクが挿入されると、すぐに再生を開始できるような処理を行うアプリケーションを、ディスクアンバウンダリィアプリケーションとして規定するのが望ましい。
ここで、新たなディスクのローディング時に、シグナリングを行うのは以下の理由による。
通常、ディスクが抜かれた場合、全てのアプリケーションが終了する方が、ユーザーには理解しやすい。DVD-Videoにおける再生制御は、このように規定されている。かかる再生制御を規定するようなアプリケーションは、通常ディスクに対応付けられるアプリケーションであり、ディスクが抜かれたら、対応するディスクがなくなったとして、アプリケーションは終了させた方がよい。しかし特殊なケースではあるが、長編の映画作品やシリーズ物の映画作品が、BD-BOXとして、複数のBD-ROMに収録されている場合、アプリケーションがディスクの入れ替えを促すよう、処理を行えば、非常に便利である。このような事情により、ディスクアンバウンダリィアプリケーションが導入されている。
図29は、ディスクバウンダリィアプリケーション、ディスクアンバウンダリィアプリケーションの動作を示す図である。第1段目は、ディスクAのローディング、ディスクAにおけるタイトルの再生、ディスクAのイジェクト、ディスクA+1のローディング、ディスクA+1におけるタイトルの再生といった一連の流れを示す。
第2段目は、ディスクAのLastPlayタイトルが再生されている期間、ディスクが無い期間、ディスクA+1のFirstPlayタイトルが再生されている期間を示す。
第3段目は、LastPlayタイトルの再生内容、ディスク交換を促すメッセージ、FirstPlayタイトルの再生内容を示す。第4段目、第5段目は、ディスクバウンダリィアプリケーション、ディスクアンバウンダリィアプリケーションの生存区間を示す。この第4段目によるとディスクバウンダリィアプリケーションは、ディスクAの装填中に動作を開始する。このディスクバウンダリィアプリケーションの生存区間は、ディスクAが装填されている期間、及びディスクがない期間も継続する。ディスクA+1がローディングされ、FirstPlayタイトルの再生が開始すれば、LastPlayタイトルに対応するAMTと、FirstPlayタイトルに対応するAMTとを照合することによる、シグナリングがなされ、かかる制御により、ディスクバウンダリィアプリケーションの動作は終了する。
一方、図29の第5段目によるとディスクアンバウンダリィアプリケーションは、ディスクAの装填中に動作を開始する。このディスクアンバウンダリィアプリケーションの生存区間は、ディスクAがローディングされている期間、及びディスクがない期間においても継続する。ディスクA+1がローディングされ、FirstPlayタイトルの再生が開始すれば、LastPlayタイトルに対応するAMTと、FirstPlayタイトルに対応するAMTとを照合することによる、アプリケーションの起動ー終了制御がなされる。かかる制御により、ディスクアンバウンダリィアプリケーションは、その動作を継続する。
図30(a)は、ディスクAにおけるLastPlayタイトルに対応するAMTと、ディスクA+1におけるFirstPlayタイトルに対応するAMTとを示す図であり、図30(b)は、2つのAMTが、図30(a)のように規定されている場合の、シグナリングを示す図である。
図30(a)において、ディスクAのLastPlayタイトルに対応するAMTには、アプリケーション#1、アプリケーション#2のIDが記載されており、ディスクA+1のFirstPlayタイトルに対応するAMTには、アプリケーション#2のIDが記載されていることがわかる。
図30(b)の第1段目は、ディスクAのローディング、ディスクAにおけるタイトルの再生、ディスクAのイジェクト、ディスクA+1のローディング、ディスクA+1におけるタイトルの再生といった一連の流れを示す。
第2段目は、ディスクAのLastPlayタイトルが再生されている期間、ディスクが無い期間、ディスクA+1のFirstPlayタイトルが再生されている期間を示す。
第3段目は、LastPlayタイトルの再生内容、ディスク交換を促すメッセージ、FirstPlayタイトルの再生内容を示す。第4段目、第5段目は、アプリケーション#1、アプリケーション#2に対する制御を示す。
第4段目においてアプリケーション#1は、ディスクAにおけるLastPlayタイトルのAMTに記載されているが、ディスクA+1におけるFirstPlayタイトルのAMTには記載されていないので、アプリケーションマネージャ37は、アプリケーション#1を終了させる。
第5段目においてアプリケーション#2は、ディスクAにおけるLastPlayタイトルのAMTに記載されており、ディスクA+1におけるFirstPlayタイトルのAMTには記載されているので、アプリケーションマネージャ37は終了処理を行わず、そのアプリケーション#2はそのまま動作を続けることができる。
ディスクAに悪意を持ったアプリケーションが記録され、このアプリケーションが起動されているものとする。悪意のプログラムが実行しているにもかかわらず、ディスクAがイジェクトされ、ディスクA+1がローディングされた場合、その悪意のプログラムにより、ディスクA+1の内容がコピーされるという不測の事態が生じかねない。このような悪意のプログラムの動作を封じるため、アプリケーションマネージャ37は、ディスクが存在しない期間において、動作を継続しているアプリケーションを、SignedアプリケーションからUnsignedアプリケーションに変化させるよう機能制限部38に指示する。そして、ディスクA+1ローディング時のシグナリングにおいて、アプリケーションの動作を継続すると判定した際、動作を継続しているアプリケーションを、UnsignedアプリケーションからSignedアプリケーションに変化させる。かかる変化により、たとえディスクAに悪意のプログラムが存在していたとしても、かかる悪意のプログラムの機能は制限されるので、上述したようなディスクA+1の内容がコピーされる心配はなくなる。
また、ディスクA+1のFirstPlayタイトルに対応するAMTに、現在実行されているアプリケーションIDが登録されていない、あるいは間違ったディスクを挿入してしまった場合は、アプリケーションマネージャ37が現在動作中のアプリケーションを終了させる。この仕組みによって、悪意のプログラムが、ディスクとともに動作する心配がなくなる。
図31は、アプリケーションマネージャ37の処理手順を示すフローチャートである。
本フローチャートは、まずステップS1〜ステップS2のループ処理を実行する。ステップS1は、タイトルジャンプが発生したかの判定であり、もしタイトルジャンプがあれば、ステップS3においてタイトルの切り替えを行う。
ステップS2は、ディスクイジェクトがなされたか否かの判定であり、もしディスクイジェクトがなされれば、動作中のSignedアプリケーションをUnsignedアプリケーションに変更させるよう機能制限部38に指示して(ステップS4)、ディスク交換を促すメッセージを表示した上で(ステップS5)、新たなディスクのローディング待ちになる(ステップS6)。もしローディングがなされれば、ローディングされたディスクは、予定されていたものであるか否かを判定する(ステップS7)。もし、予定されていたものでなければ、ステップS8に移行する。
ここで、予定されたディスクがローディングされたかどうかの判定は、以下のような手順でなされる。BD-BOXを構成する各BD-ROMには、「次にローディングすべきディスクの識別子」が記録されている。アプリケーションマネージャ37は、ディスクAのローディング時において、ディスクAに記録されていた「次にローディングすべきディスクの識別子」を読み取っている。そしてディスクAのイジェクト後、新たなBD-ROMがローディングされれば、そのディスクの識別子を読み取り、この新たなBD-ROMから読み取った識別子が、ディスクAに記録されていた「次にローディングすべきディスクの識別子」と一致するか否かを判定する。もし一致すれば、新たにローディングされたBD-ROMは、BD-BOXを構成する複数のBD-ROMのうち、続編を構成するものであり、「予定されたディスクがローディングされた」と判定結果を下す。
一致しなければ、新たにローディングされたBD-ROMは、BD-BOXにおける続編を構成するものではなく、「予定外のディスクがローディングされた」と判定結果を下す。このような判定手順により、ディスクA+1が正しくローディングされたか、まったく違うディスクがローディングされたかを、区別することができる。
ステップS8は、所定のメニューを表示してディスクをまたぐアプリケーションを終了してよいか否かを確認する。図32(a)は、ディスク交換を促すメッセージの表示例であり、図32(b)は、ステップS8で表示されるメニューの一例である。図32(a)のメッセージは、ディスクAの再生が終了した旨と、ディスクAをイジェクトして、ディスクA+1のローディングを促す旨とを含む。図32(b)のメニューは、「装填されたディスクでは実行できないアプリケーションが起動されています。アプリケーションを終了させてもよろしいでしょうか」とのメッセージと、「続行ボタン」、「ディスク入れ直しボタン」からなる。
かかるメニューを表示するその理由は、以下の通りである。
もしユーザーが間違って、ディスクA+1以外の別のディスクを挿入してしまった場合、そのディスクにおけるFirstPlayタイトルのAMTには、現在動作中のアプリケーションのIDが記述されていないので、別のディスクの再生が始まると同時に、現在動作中のアプリケーションは、終了されてしまう。
そもそも、ディスクアンバウンダリィアプリケーションは、ディスクが入れ替わっても動作していることが期待されている。本来は起動を続けて欲しいアプリケーションであるにもかかわらず、ユーザーが間違ってディスクを入れたことにより終了してしまっては、不便である。そのため、ディスクアンバウンダリィアプリケーションが起動しているにもかかわらず、新たに挿入されたディスクのFirstPlayタイトルにおけるAMTに、ディスクアンバウンダリィアプリケーションが示されていない場合、ユーザーが間違ったディスクを入れた可能性が高いとして、上述したメニューを表示し、現在実行中のディスクアンバウンダリィアプリケーションを終了してよいか確認する。
ステップS9は、メニューの続行ボタン、ディスク入れ直しボタンの何れが確定されたかの判定である。ユーザが、ディスクAには関係ない別のディスクの再生を望んでおり、続行ボタンを確定した場合、動作中のUnsignedアプリケーションの動作を終了し(ステップS10)、新たなディスクのFirstPlayタイトルをカレントタイトルにして(ステップS11)、カレントタイトルのAutoPlayプレイリストの再生を先頭から開始する(ステップS12)。
挿入するディスクを間違えており、メニューにおける「ディスクを入れ直す」ボタンを確定した場合、ディスクをイジェクトし(ステップS20)、ステップS6に移行する。この際、アプリケーションの終了はなされないので、アプリケーションの動作は継続する。
このように意図していたディスクとは違うディスクがローディングされた場合、タイトルアンバウンダリーアプリケーションが、関連がないディスクと同時に実行されないようにし、また、ディスクを入れなおすか、アプリケーションの動作を継続させるかの選択をユーザーに委ねることにより、ユーザーの混乱を防ぐことができる。
図33は、予定されていなかったディスクがローディングされた場合におけるアプリケーションマネージャ37の処理を模式的に示すタイミングチャートである。
本図における第1段目は、ディスクAのイジェクト、ディスクがない期間、予定されていないディスク(ディスクB)のローディングといった一連の流れを示す。
第2段目は、第1段目の流れにおいて、表示されるメッセージ、メニューを示す。ディスクがない期間では、「ディスク交換を促すメッセージ」が表示されているが、予定されていなかったディスクがローディングされれば、メニューを表示する。このメニューは、図32(b)に示したものである。
第3段目は、第2段目におけるメニューに対して、続行ボタンを確定した場合の処理を示す。この場合、ディスクアンバウンダリィアプリケーションの動作を終了して、新たにローディングされたディスクのFirstPlayタイトルの再生を開始する。
第4段目は、第2段目におけるメニューに対して、ディスク入れ直しボタンを確定した場合の処理を示す。この場合、ディスクアンバウンダリィアプリケーションの動作を終了せず、別のディスクがローディングされるのを待つ。この図33に示したアプリケーションマネージャ37の処理を、場合分けして示したのが図34である。
図34(a)は、予定されていたディスクをローディングした場合における処理を示し、図34(b)は、予定されていたディスクとは異なるディスクがローディングされ、そのディスクの再生をユーザが希望した場合におけるアプリケーションマネージャ37の処理を示す。この(b)では、予定されていたディスクとは異なるディスクがローディングされた場合、図32(b)に示したメニューが表示され、このメニューにおける続行ボタンを確定することにより、そのディスクに記録されたFirstPlayタイトルの再生が開始される。
図34(c)は、予定されていたディスクとは異なるディスクがローディングされ、そのディスクの再生をユーザが希望しなかった場合におけるアプリケーションマネージャ37の処理を示す。この(c)では、予定されていたディスクとは異なるディスクがローディングされた場合、図32(b)に示したメニューが表示され、このメニューにおけるディスク入れ直しボタンを確定することにより、そのディスクがイジェクトされることになる。
図31における各ステップの処理の説明を再開する。
ローディングされたディスクが予定されていたものなら、ステップS7がYesになり、ステップS13に移行する。
ステップS13は、新たなディスクのFirstPlayタイトルをカレントタイトルにして(ステップS13)、前タイトルのAMTに記載されていたが、カレントタイトルのAMTに記載されていない動作中Unsignedアプリケーションxが存在するか否かを判定する(ステップS14)。かかるUnsignedアプリケーションが存在すれば、そのUnsignedアプリケーションxの動作を終了する(ステップS15)。
ステップS16は、前タイトルのAMTに記載されており、カレントタイトルのAMTに記載されている動作中Unsignedアプリケーションyが存在するか否かの判定である。かかるUnsignedアプリケーションyが存在すれば(ステップS16でYes)、そのUnsignedアプリケーションyをSignedアプリケーションに変更するよう機能制限部38に指示した上(ステップS17)、アプリケーションの動作を継続する(ステップS18)。
その後、ステップS19において、カレントタイトルのAutoPlayプレイリストのうち、警告文など該当する先頭部分をスキップして、AutoPlayプレイリストの再生を開始する。その理由は、以下の通りである。
DVD-Videoなど、光ディスクに記録された映画作品の再生では、ディスクをローディングすると、コピー禁止などの警告文が表示され、その後、他のディスクの予告編などが流れ、メニューに移ることが慣習になっている。メニューで本編の再生を選んではじめて本編の再生が開始されるが、複数のディスクにまたがるコンテンツの場合、ディスクを入れ替えるたびに、このような警告文やメニューなどが表示されていては、コンテンツのつながり感が悪い。だが、これら警告文やメニューに関しては、BD-BOXにおいて、どのディスクから再生されても、必ず再生されるように、ディスクごとに挿入されているのが普通である。
そこで、本実施形態では、ディスクアンバウンダリィアプリケーションの動作が継続している場合において、予定していた通りのディスクA+1がローディングされた場合、“ディスクAからディスクA+1への交換時特有の再生制御”を実行して、警告文などにあたる先頭部分をスキップする。
図35は、ディスクA+1のFirstPlayタイトルが通常再生される場合と、ディスクA+1のFirstPlayタイトルがスキップ再生される場合とを対比して示す図である。本図における第1段目は、ディスクAのローディング、ディスクAにおけるタイトルの再生、ディスクAのイジェクト、ディスクA+1のローディング、ディスクA+1におけるタイトルの再生といった一連の流れを示す。第2段目は、ディスクA+1のFirstPlayタイトルが通常再生がなされた場合を示し、第3段目は、ディスクA+1のFirstPlayタイトルの先頭部分がスキップされた場合を示す。第2段目、第3段目を比較すると、第2段目では、警告文、他のディスクの予告編が表示された後、本編が表示されているが、第3段目では、これらが表示されず、いきなり本編が開始されていることがわかる。このように、ディスクAを視聴後、ディスクA+1の視聴を継続するような場合、ディスクA+1のFirstPlayタイトルにおける、警告文等は、視聴しないで済むため、テンポよい連続再生を実現することができる。無論、ディスクAを再生せず、ディスクA+1から再生を開始する場合は、上述した警告文は、再生されるので、映画再生時における慣習を守ることができる。
以上が、アプリケーションマネージャ37についての説明である。
以降図36のフローチャートを参照して、再生制御エンジン32による具体的な制御手順を説明する。
図36は、再生制御エンジン32によるプレイリスト再生手順を示すフローチャートである。この再生手順は、再生エンジン31に対する制御(ステップS106)と、BD-ROMドライブ1又はローカルストレージ20に対する制御(ステップS108)とを含む。本フローチャートにおいて処理対象たるPlayItemをPlayItem#xとする。本フローチャートは、カレントPL情報(.mpls)の読み込みを行い(ステップS101)、その後、ステップS102〜ステップS110の処理を実行するというものである。ここでステップS102〜ステップS110は、ステップS109がYesになるまで、カレントPL情報を構成するそれぞれのPI情報について、ステップS103〜ステップS110の処理を繰り返すというループ処理を構成している。このループ処理において処理対象となるPlayItemを、PlayItem#x(PI#x)とよぶ。このPlayItem#xは、ステップS102において初期化される。上述したループ処理の終了要件は、このPlayItem#xがカレントプレイリストの最後のPlayItemになることであり(ステップS109)、もし最後のPlayItemでなければ、カレントプレイリストにおける次のPlayItemがPlayItem#xに設定される(ステップS110)。
ループ処理において繰り返し実行されるステップS103〜ステップS110は、PlayItem#xのClip_information_file_nameで指定されるClip情報をシナリオメモリ22に読み込み(ステップS103)、PlayItem#xのIn_timeを、カレントClip情報のEPmapを用いて、Iピクチャアドレスuに変換し(ステップS104)、PlayItem#xのOut_timeを、カレントClip情報のEP_mapを用いて、Iピクチャアドレスvに変換する(ステップS105)。ここで、PlayItem#xのOut_timeに相当するピクチャデータのデコードを行うには、アドレスvに位置するIピクチャだけでは足りず、PlayItem#xのOut_timeに後続するピクチャデータも必要となる。何故なら、PlayItem#xのOut_timeに相当するピクチャデータは、未来方向のピクチャデータを参照している可能性があるからである。
上述したように、EP_mapには、Access Unit、つまり、GOPの先頭にあたるIピクチャのアドレスが、Iピクチャの再生時刻と対応付けられて示されている。そのため、PlayItem#xのOut_timeに相当するピクチャデータが帰属するGOPの終端アドレスは、EP_mapに示されているIピクチャアドレスのうち、Iピクチャアドレスvの次のものを特定して、その1つ手前のIピクチャのアドレス(アドレスwとする)を求めることで定めることができる(ステップS107)。そうして算出されたアドレスwを用いて、IピクチャアドレスuからアドレスwまでのTSパケットの読み出しをBD-ROMドライブ1又はローカルストレージ20に命じれば(ステップS108)。PlayItem#xのOut_timeに相当するピクチャデータが参照しているような、ピクチャデータは、全てデコーダ内に読み込まれることになる。
その後、PlayItem#xがカレントプレイリストの最後のPIであるかの判定がなされる(ステップS109)。
PlayItem#xがカレントプレイリストの最後のPIでなければ、カレントプレイリストにおける次のPlayItemを、PlayItem#xに設定して(ステップS110)、ステップS103に戻る。以上のステップS103〜ステップS110を繰り返することにより、プレイリストを構成するPIは順次再生されることになる。
本フローチャートにおいて、ステップS102では、カレントのプレイリスト情報において、アプリケーションマネージャ37から指示されたPlayItemが、PlayItem#xに設定される。ここで、警告文等にあたるPlayItemではなく、本編の先頭にあたるPlayItemを、アプリケーションマネージャ37が指示した場合は、かかる警告文等をスキップして、プレイリストの再生は開始されることになる。
以上のように本実施形態によれば、複数のディスクにまたがって、アプリケーションを連続して動作させることが可能になるので、アプリケーションが、ユーザにより選択された音声の言語属性や、字幕の言語属性などを保持している場合、ディスクを交換したとしても、かかる音声の言語属性や、字幕の言語属性など、再度設定する必要がない。これらの属性を再度設定することなく、交換後のディスクを再生することができるので、シリーズ物や長編の映画作品を、好適に再生させることができるという効果がある。
(第2実施形態)
本実施形態は、第1実施形態に示したJava(登録商標)アプリケーションの詳細に関する。具体的にいうと、このJava(登録商標)アプリケーションは、BD-BOXを構成する複数のBD-ROMのうち、2枚目以降のBD-ROM(第1実施形態で述べたディスクA+1)のFirstPlayタイトルを生存区間とすものである。このJava(登録商標)アプリケーションは、FirstPlayタイトルが再生され、起動された時に、“ディスクAからディスクA+1へと交換した場合であるか”、“ディスクAをローディングせず、ディスクA+1をダイレクトにローディングした場合であるか”をアプリケーションマネージャ37に問い合わせる。そしてこの問い合わせの結果に応じて、再生制御を変化させる。
“ディスクA+1が直接、ローディングされた場合の再生制御”とは、BD-J Objectのプレイリスト記録テーブルに記述された、PlayList情報を構成する複数のPlayItem情報のうち、先頭のものから、再生を開始することである。
“ディスクAからディスクA+1への交換時特有の再生制御”とは、BD-J Objectのプレイリスト記録テーブルに記述されたAutoPlay属性をもつPlayList情報を構成する複数のPlayItem情報のうち、途中のものから、再生を開始すること(いわゆる第1実施形態に示したスキップ再生を実現すること)である。
またディスクAからディスクA+1に交換された場合、FirstPlayタイトルを生存区間とするJava(登録商標)アプリケーションはこのAutoPlay属性をもつPlayList情報とは、異なるPlayList情報を再生してもよい。この異なるPlayList情報が、警告文の再生を省いた再生経路を定義するものなら、第1実施形態で述べたような警告文を、ユーザに視聴させずに済み、複数ディスクの連続再生を快適に実行することができる。
以上のように本実施形態によれば、“ディスクAからディスクA+1へと交換した場合であるか”、“ディスクAをローディングせず、ディスクA+1をダイレクトにローディングした場合であるか”により、異なる処理を行うようなJava(登録商標)アプリケーションを、FirstPlayタイトルを生存区間とするJava(登録商標)アプリケーションとして、BD-BOXにおける複数BD-ROMのうち、1つに記録することにより、BD-BOXにおける複数BD-ROMの連続再生をテンポよくすることができる。
(備考)
以上、本願の出願時点において、出願人が知り得る最良の実施形態について説明したが、 以下に示す技術的トピックについては、更なる改良や変更実施を加えることができる。各実施形態に示した通り実施するか、これらの改良・変更を施すか否かは、何れも任意的であり、実施する者の意思によることは留意されたい。
(アプリケーションIDの管理)
アプリケーションマネージャ37が上述したようなディスクを跨いだシグナリングを実行する場合、アプリケーションIDをオーサリングサイトごとに管理して、重ならないようにするなど、ディスクA+1のアプリケーションIDと、悪意のプログラムのアプリケーションIDとが偶然重なってしまわないようにする必要がある。
(連続再生のための補足的な処理)
2つのディスクの連続再生を行うためには、アプリケーション自体を起動させるほかに、属性などを保存しておき、ディスクA+1挿入時に起動するアプリケーションから参照することが望ましい。
(アプリケーション終了時の確認方法)
アプリケーションマネージャ37は、予定されていない光ディスクがローディングされた場合において、メニューにてアプリケーションの終了を確認したが、そうではなく、ローディングされたディスクの再生を開始してよいか否かを尋ねるなど、別の方法により、アプリケーションの動作を継続するか、終了するかを判断してもよい。
(制御手順の実現)
各実施形態においてフローチャートを引用して説明した制御手順や、機能的な構成要素による制御手順は、ハードウェア資源を用いて具体的に実現されていることから、自然法則を利用した技術的思想の創作といえ、“プログラムの発明”としての成立要件を満たす。
・本発明に係るプログラムの生産形態
本発明に係るプログラムは、コンピュータが実行することができる実行形式のプログラム(オブジェクトプログラム)であり、各実施形態に示したフローチャートの各ステップや、機能的構成要素の個々の手順を、コンピュータに実行させるような1つ以上のプログラムコードから構成される。ここでプログラムコードは、プロセッサのネィティブコード、JAVA(登録商標)バイトコードというように、様々な種類がある。またプログラムコードによる各ステップの実現には、様々な態様がある。外部関数を利用して、各ステップを実現することができる場合、この外部関数をコールするコール文が、プログラムコードになる。また、1つのステップを実現するようなプログラムコードが、別々のオブジェクトプログラムに帰属することもある。命令種が制限されているRISCプロセッサでは、算術演算命令や論理演算命令、分岐命令等を組合せることで、フローチャートの各ステップが実現されることもある。
本発明にかかるプログラムは、以下のようにして作ることができる。先ず初めに、ソフトウェア開発者は、プログラミング言語を用いて、各フローチャートや、機能的な構成要素を実現するようなソースプログラムを記述する。この記述にあたって、ソフトウェア開発者は、プログラミング言語の構文に従い、クラス構造体や変数、配列変数、外部関数のコールを用いて、各フローチャートや、機能的な構成要素を具現するソースプログラムを記述する。
記述されたソースプログラムは、ファイルとしてコンパイラに与えられる。コンパイラは、これらのソースプログラムを翻訳してオブジェクトプログラムを生成する。
コンパイラによる翻訳は、構文解析、最適化、資源割付、コード生成といった過程からなる。構文解析では、ソースプログラムの字句解析、構文解析および意味解析を行い、ソースプログラムを中間プログラムに変換する。最適化では、中間プログラムに対して、基本ブロック化、制御フロー解析、データフロー解析という作業を行う。資源割付では、ターゲットとなるプロセッサの命令セットへの適合を図るため、中間プログラム中の変数をターゲットとなるプロセッサのプロセッサが有しているレジスタまたはメモリに割り付ける。コード生成では、中間プログラム内の各中間命令を、プログラムコードに変換し、オブジェクトプログラムを得る。
オブジェクトプログラムが生成されるとプログラマはこれらに対してリンカを起動する。リンカはこれらのオブジェクトプログラムや、関連するライブラリプログラムをメモリ空間に割り当て、これらを1つに結合して、ロードモジュールを生成する。こうして生成されるロードモジュールは、コンピュータによる読み取りを前提にしたものであり、各フローチャートに示した処理手順や機能的な構成要素の処理手順を、コンピュータに実行させるものである。以上の処理を経て、本発明に係るプログラムを作ることができる。
・本発明に係るプログラムの使用形態
本発明に係るプログラムは、以下のようにして使用することができる。
(i)組込プログラムとしての使用
本発明に係るプログラムを組込プログラムとして使用する場合、プログラムにあたるロードモジュールを、基本入出力プログラム(BIOS)や、様々なミドルウェア(オペレーションシステム)と共に、命令ROMに書き込む。こうした命令ROMを、制御部に組み込み、CPUに実行させることにより、本発明に係るプログラムを、読出装置200の制御プログラムとして使用することができる。
(ii)アプリケーションとしての使用
読出装置200が、ハードディスク内蔵モデルである場合は、基本入出力プログラム(BIOS)が命令ROMに組み込まれており、様々なミドルウェア(オペレーションシステム)が、ハードディスクにプレインストールされている。また、ハードディスクから、システムを起動するためのブートROMが、読出装置200に設けられている。
この場合、ロードモジュールのみを、過搬型の記録媒体やネットワークを通じて、読出装置200に供給し、1つのアプリケーションとしてハードディスクにインストールする。そうすると、読出装置200は、ブートROMによるブートストラップを行い、オペレーションシステムを起動した上で、1つのアプリケーションとして、当該アプリケーションをCPUに実行させ、本発明に係るプログラムを使用する。
ハードディスクモデルの読出装置200では、本発明のプログラムを1つのアプリケーションとして使用しうるので、本発明に係るプログラムを単体で譲渡したり、貸与したり、ネットワークを通じて供給することができる。
(命令ROM21、CPU24)
命令ROM21、CPU24は、一個のシステムLSIとして実現することができる。
システムLSIとは、高密度基板上にベアチップを実装し、パッケージングしたものをいう。複数個のベアチップを高密度基板上に実装し、パッケージングすることにより、あたかも1つのLSIのような外形構造を複数個のベアチップに持たせたものも、システムLSIに含まれる(このようなシステムLSIは、マルチチップモジュールと呼ばれる。)。
ここでパッケージの種別に着目するとシステムLSIには、QFP(クッド フラッド アレイ)、PGA(ピン グリッド アレイ)という種別がある。QFPは、パッケージの四側面にピンが取り付けられたシステムLSIである。PGAは、底面全体に、多くのピンが取り付けられたシステムLSIである。
これらのピンは、他の回路とのインターフェイスとしての役割を担っている。システムLSIにおけるピンには、こうしたインターフェイスの役割が存在するので、システムLSIにおけるこれらのピンに、他の回路を接続することにより、システムLSIは、読出装置200の中核としての役割を果たす。
システムLSIにパッケージングされるベアチップは、“フロントエンド部”、“バックエンド部”、“デジタル処理部”からなる。“フロントエンド部”は、アナログ信号を、デジタル化する部分であり、“バックエンド部”はデジタル処理の結果、得られたデータを、アナログ化して出力する部分である。
各実施形態において内部構成図として示した各構成要素は、このデジタル処理部内に実装される。
先に“組込プログラムとしての使用”で述べたように、命令ROMには、プログラムにあたるロードモジュールや、基本入出力プログラム(BIOS)、様々なミドルウェア(オペレーションシステム)が書き込まれる。本実施形態において、特に創作したのは、このプログラムにあたるロードモジュールの部分なので、プログラムにあたるロードモジュールを格納した命令ROMを、ベアチップとしてパッケージングすることにより、本発明に係るシステムLSIは生産することができる。
具体的な実装については、SoC実装やSiP実装を用いることができ望ましい。SoC(System on chip)実装とは、1チップ上に複数の回路を焼き付ける技術である。SiP(Systemin Package)実装とは、複数チップを樹脂等で1パッケージにする技術である。以上の過程を経て、本発明に係るシステムLSIは、各実施形態に示した読出装置200の内部構成図を基に作ることができる。
尚、上述のようにして生成される集積回路は、集積度の違いにより、IC、LSI、スーパーLSI、ウルトラLSIと呼称されることもある。
さらに、各記録読出装置の構成要素の一部又は全てを1つのチップとして構成してもよい。集積回路化は、上述したSoC実装,SiP実装に限るものではなく、専用回路又は汎用プロセスで実現してもよい。LSI製造後に、プログラムすることが可能なFPGA(FieldProgrammable Gate Array)や、LSI内部の回路セルの接続や設定を再構成可能なシリコンフィギュラブル・プロセッサを利用することが考えられる。更には、半導体技術の進歩又は派生する技術によりLSIに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積回路化を行っても良い。例えば、バイオ技術の適応などが可能性としてありうる。
本発明に係る読出装置は、上記実施形態に内部構成が開示されており、この内部構成に基づき量産することが明らかなので、資質において工業上利用することができる。このことから本発明に係る読出装置は、産業上の利用可能性を有する。
本発明に係る読出装置の、使用行為についての形態を示す図である。 BD-ROMの内部構成を示す図である。 拡張子.m2tsが付与されたファイルがどのように構成されているかを模式的に示す図である。 AVClipを構成するTSパケットがどのような過程を経てBD-ROMに書き込まれるかを示す。 BD-ROMの物理単位と、1つのファイルエクステントを構成するSourceパケットとの対応関係を示す図である。 AVClipにどのようなエレメンタリストリームが多重化されているかを示す図である。 Clip情報の内部構成を示す図である。 映画のビデオストリームに対するEP_map設定を示す図である。 プレイリスト情報のデータ構造を示す図である。 AVClipと、プレイリスト情報との関係を示す図である。 BD-J Objectの内部構成を示す図である。 アーカイブファイルにより収められているプログラム、データを示す図である。 (a)アプリケーション管理テーブルの内部構成を示す図である。 (b)アプリケーション管理テーブルを構成する情報要素の意味内容を示す図である。 ディスクにおける状態遷移を示す図である。 (a)BD-ROM全体の時間軸を示す図である。 (b)BD-ROM全体の時間軸における構成を示す図である。 (a)(b)BD-ROM全体の時間軸において、BD-J Objectから特定されるタイトル再生区間を示す図である。 図16(b)の時間軸上に規定される、生存区間の典型を示す図である。 本編タイトル、オンラインショッピングタイトル、ゲームタイトルという3つのタイトルを示す図である。 (a)(b)アプリケーション管理テーブル、生存区間の一例を示す図である。 起動属性がとり得る三態様(Present、AutoRun、Suspend)と、直前タイトルにおけるアプリケーション状態の三態様(非起動、起動中、Suspend)とがとりうる組合せを示す図である。 (a)プレイリスト管理テーブルの内部構成を示す図である。 (b)プレイリスト管理テーブルを構成する情報要素の意味内容を示す図である。 プレイリスト管理テーブル、アプリケーション管理テーブルにより規定されるタイトルの具体例を示す。 カレントタイトルがとり得る三態様(プレイリスト管理テーブル無し、プレイリスト管理テーブル有りで尚且つ無指定、プレイリスト管理テーブル有りで尚且つAutoPlay)と、直前タイトルにおけるPLの状態(非再生状態、再生中状態)とがとりうる6通りの組合せを示す図である。 本発明に係る読出装置の内部構成を示す図である。 ROM24に格納されたソフトウェアと、ハードウェアとからなる部分を、レイア構成に置き換えて描いた図である。 Java(登録商標)仮想マシン36の内部構成を示す図である。 再生エンジン31〜モジュールマネージャ33による処理を模式化した図である。 BD-JobjectにおけるPLMTに基づく、アプリケーションマネージャ37の処理を示す図である。 ディスクバウンダリィアプリケーション、ディスクアンバウンダリィアプリケーションの動作を示す図である。 (a)ディスクAにおけるLastPlayタイトルに対応するAMTと、ディスクA+1におけるFirstPlayタイトルに対応するAMTとを示す図である。 (b)2つのAMTが、図30(a)のように規定されている場合の、シグナリングを示す図である。 アプリケーションマネージャの処理手順を示すフローチャートである。 (a)ディスク交換を促すメッセージの表示例である。 (b)図31のステップS8で表示されるメニューの一例である。 予定されていなかったディスクがローディングされた場合におけるアプリケーションマネージャ37の処理を模式的に示すタイミングチャートである。 (a)予定されていたディスクをローディングした場合における処理を示す。 (b)予定されていたディスクとは異なるディスクがローディングされ、そのディスクの再生をユーザが希望した場合におけるアプリケーションマネージャ37の処理を示す。 (c)予定されていたディスクとは異なるディスクがローディングされ、そのディスクの再生をユーザが希望しなかった場合におけるアプリケーションマネージャ37の処理を示す。 ディスクA+1のFirstPlayタイトルが通常再生される場合と、ディスクA+1のFirstPlayタイトルがスキップ再生される場合とを対比して示す図である。 再生制御エンジン32によるプレイリスト再生手順を示すフローチャートである。
1 BD-ROMドライブ
2 リードバッファ
3 デマルチプレクサ
4 ビデオデコーダ
5 ビデオプレーン
7 オーディオデコーダ
11 Interactive Graphicsデコーダ
12 Interactive Graphicsプレーン
13 Presentation Graphicsデコーダ
14 Presentation Graphicsプレーン
15 JPEGデコーダ
16 Stillプレーン
17 合成部
18 STC生成部
19 ATC生成部
21 命令ROM
22 シナリオメモリ
23 PSRセット
24 CPU
25 通信部
26 操作受付部
30 Virtual File System
31 再生エンジン
32 再生制御エンジン
33 モジュールマネージャ
34 HDMVモジュール
35 BD-Jプラットフォーム
36 Java(登録商標)仮想マシン
37 アプリケーションマネージャ
38 機能制限部

Claims (9)

  1. 読出装置であって、
    第1ディスクに記録されたコンテンツを読み取って再生する再生手段と、
    そのコンテンツに対応する管理テーブルに基づき、アプリケーションを実行するアプリケーション管理手段とを備え、
    アプリケーションには、ディスクアンバウンダリのものと、タイトルバウンダリものとがあり、
    前記アプリケーション管理手段は、
    ディスクアンバウンダリアプリケーションについては、第1ディスクから第2ディスクへの交換時において、第1ディスクにおけるコンテンツに対応する管理テーブルに示されており、尚且つ、第2ディスクで最初に再生されるコンテンツに対応する管理テーブルに示されている場合に実行を継続し、タイトルバウンダリアプリケーションについては、第1ディスクにおけるコンテンツの再生終了時に実行を終了する
    ことを特徴とする読出装置。
  2. 第1ディスクに再生されていたコンテンツに対応する管理テーブルに示されているが、第2ディスクで最初に再生されるコンテンツに対応する管理テーブルには示されていないアプリケーションが存在する場合、
    前記アプリケーション管理手段は、
    第1ディスク取出し後も、動作しているアプリケーションが存在している旨を表示して、動作中アプリケーションを終了させるか否かをユーザに問い合わせる旨のメニューを表示し、このメニューに対しユーザが肯定的な操作を行うことを条件にして、当該アプリケーションの実行を終了させる
    ことを特徴とする請求項1記載の読出装置。
  3. 前記アプリケーション管理手段は、前記問い合わせる旨のメニューを、第2ディスクが装填された後に表示する
    ことを特徴とする請求項2記載の読出装置。
  4. 前記読出装置は、第1ディスクが取出された際、実行中のアプリケーションによる機能に制限を付する機能制限手段を備え、
    前記機能制限手段は、
    ある実行中アプリケーションが、第1ディスクにおけるコンテンツに対応する管理テーブルに示されており、尚且つ、第2ディスクで最初に再生されるコンテンツに対応する管理テーブルに示されている場合、そのアプリケーションに課された制限を解除する
    ことを特徴とする請求項1記載の読出装置。
  5. 前記コンテンツは、デジタルストリームを含み、
    第2ディスクで最初に再生されるコンテンツに対応するアプリケーションは、第1ディスクが装填されず、第2ディスクが装填された場合と、第1ディスクから第2ディスクへの交換がなされた場合とで、デジタルストリームに対する再生制御を変化させる
    ことを特徴とする請求項1記載の読出装置。
  6. 前記再生制御の変化とは、
    第1ディスクが装填されず、第2ディスクが装填された場合に、前記コンテンツを構成するデジタルストリームを先頭から再生し、
    第1ディスクから第2ディスクへのディスク交換がなされた場合に、前記コンテンツを構成するデジタルストリームのうち、先頭部分をスキップして再生することである、請求項5記載の読出装置。
  7. デジタルストリームに対する再生制御の変化とは、
    第1ディスクが装填されず、直接第2ディスクが装填された場合に、第1の再生経路情報を用いてデジタルストリームを再生し、
    第1ディスクから第2ディスクへのディスク交換がなされた場合に、第2の再生経路情報を用いてデジタルストリームを再生することである、請求項5記載の読出装置。
  8. プログラムであって、
    第1ディスクに記録されたコンテンツを読み取って再生する再生ステップと、
    そのコンテンツに対応する管理テーブルに基づき、アプリケーションを実行するアプリケーション実行ステップとをコンピュータに実行させ、
    アプリケーションには、ディスクアンバウンダリのものと、タイトルバウンダリものとがあり、
    前記アプリケーション管理ステップは、
    ディスクアンバウンダリアプリケーションについては、第1ディスクから第2ディスクへの交換時において、第1ディスクにおけるコンテンツに対応する管理テーブルに示されており、尚且つ、第2ディスクで最初に再生されるコンテンツに対応する管理テーブルに示されている場合に実行を継続し、タイトルバウンダリアプリケーションについては、第1ディスクにおけるコンテンツの再生終了時に実行を終了させる処理をコンピュータに実行させる
    ことを特徴とするプログラム。
  9. 読出方法であって、
    第1ディスクに記録されたコンテンツを読み取って再生する再生ステップと、
    そのコンテンツに対応する管理テーブルに基づき、アプリケーションを実行するアプリケーション実行ステップとを有し、
    アプリケーションには、ディスクアンバウンダリのものと、タイトルバウンダリものとがあり、
    前記アプリケーション管理ステップは、
    ディスクアンバウンダリアプリケーションについては、第1ディスクから第2ディスクへの交換時において、第1ディスクにおけるコンテンツに対応する管理テーブルに示されており、尚且つ、第2ディスクで最初に再生されるコンテンツに対応する管理テーブルに示されている場合に実行を継続し、タイトルバウンダリアプリケーションについては、第1ディスクにおけるコンテンツの再生終了時に実行を終了する
    ことを特徴とする読出方法。
JP2009021527A 2005-02-04 2009-02-02 読出装置、プログラム、読出方法 Active JP4476346B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009021527A JP4476346B2 (ja) 2005-02-04 2009-02-02 読出装置、プログラム、読出方法

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2005028748 2005-02-04
JP2009021527A JP4476346B2 (ja) 2005-02-04 2009-02-02 読出装置、プログラム、読出方法

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2006527189A Division JP4410253B2 (ja) 2005-02-04 2006-02-02 読出装置、プログラム、読出方法

Publications (2)

Publication Number Publication Date
JP2009170085A true JP2009170085A (ja) 2009-07-30
JP4476346B2 JP4476346B2 (ja) 2010-06-09

Family

ID=36777274

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2006527189A Active JP4410253B2 (ja) 2005-02-04 2006-02-02 読出装置、プログラム、読出方法
JP2009021527A Active JP4476346B2 (ja) 2005-02-04 2009-02-02 読出装置、プログラム、読出方法

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP2006527189A Active JP4410253B2 (ja) 2005-02-04 2006-02-02 読出装置、プログラム、読出方法

Country Status (7)

Country Link
US (2) US8032007B2 (ja)
EP (2) EP2317516B1 (ja)
JP (2) JP4410253B2 (ja)
CN (2) CN1993760B (ja)
BR (1) BRPI0605867A2 (ja)
RU (1) RU2007103565A (ja)
WO (1) WO2006082892A1 (ja)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1696321A1 (en) 2005-02-23 2006-08-30 Deutsche Thomson-Brandt Gmbh Method and apparatus for executing software applications
US8015548B2 (en) * 2007-03-22 2011-09-06 Arcsoft, Inc. Method for obtaining context of corresponding Xlet while playing BD-J title
KR101227603B1 (ko) * 2008-03-19 2013-01-29 삼성전자주식회사 복합기와 이동식 저장 장치의 데이터를 송수신하는 방법 및이를 실행하는 화상형성장치
JP2009271589A (ja) * 2008-04-30 2009-11-19 Sony Corp 情報処理装置、その制御方法、制御プログラム及びネームマッピング情報
JP2010033657A (ja) * 2008-07-29 2010-02-12 Fujitsu Ten Ltd 制御装置、制御方法および制御プログラム
JP2010033658A (ja) * 2008-07-29 2010-02-12 Fujitsu Ten Ltd コンテンツ再生装置、再生制御方法および再生制御プログラム
JP5347714B2 (ja) 2009-05-26 2013-11-20 三菱電機株式会社 映像情報再生方法及び映像情報再生装置
JPWO2010143243A1 (ja) * 2009-06-11 2012-11-22 パナソニック株式会社 情報再生装置、情報再生方法、プログラム、情報記録媒体及び半導体集積回路
TWI488107B (zh) * 2009-12-09 2015-06-11 Silicon Motion Inc 用來增進快退效能之方法以及相關的電子裝置
JP2011155559A (ja) 2010-01-28 2011-08-11 Panasonic Corp ディスク再生装置
US8401370B2 (en) * 2010-03-09 2013-03-19 Dolby Laboratories Licensing Corporation Application tracks in audio/video containers
WO2011121891A1 (ja) * 2010-03-29 2011-10-06 パナソニック株式会社 光ディスク再生装置
WO2011121890A1 (ja) * 2010-03-29 2011-10-06 パナソニック株式会社 光ディスク再生装置
US8588580B2 (en) * 2010-06-10 2013-11-19 Panasonic Corporation Playback device, recording medium, playback method and program
JP2012119839A (ja) * 2010-11-30 2012-06-21 Funai Electric Co Ltd 映像表示機器
KR20140018743A (ko) * 2012-08-03 2014-02-13 삼성전자주식회사 디스크리스 어플리케이션 재생 장치 및 기록 장치, 재생 방법 및 기록 방법과 디스크리스 어플리케이션을 기록한 정보저장매체
WO2016118519A1 (en) * 2015-01-19 2016-07-28 Berman Matthew System and methods for facile, instant, and minimally disruptive playback of media files

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2813245B2 (ja) 1995-08-21 1998-10-22 松下電器産業株式会社 光ディスクの再生装置及び再生方法
CN100351911C (zh) * 1995-08-21 2007-11-28 松下电器产业株式会社 根据交互控制实现意外性场景展开的多媒体光盘再生装置
TW401311B (en) * 1996-11-21 2000-08-11 Nintendo Co Ltd Information processing system and a method for finding genuineness therefor
JP2000113614A (ja) * 1998-10-09 2000-04-21 Sony Corp ドライブ装置、定速移動サーボ方法
US20020116277A1 (en) * 2001-02-20 2002-08-22 Kraft Joshua Dickinson Portable audio system housing a preloaded purchaser selected library od MP3 compressed music titles stored on a hard disk drive
JP2002369154A (ja) 2001-04-02 2002-12-20 Matsushita Electric Ind Co Ltd ディジタル映像コンテンツの映像再生装置、映像再生方法、映像再生プログラム、パッケージメディア
US20020194618A1 (en) * 2001-04-02 2002-12-19 Matsushita Electric Industrial Co., Ltd. Video reproduction apparatus, video reproduction method, video reproduction program, and package media for digital video content
SK16302003A3 (sk) * 2001-06-04 2004-08-03 Matsushita Electric Industrial Co., Ltd. Záznamové zariadenie, záznamové médium, prehrávacie zariadenie, program a spôsob
JP2003249057A (ja) 2002-02-26 2003-09-05 Toshiba Corp デジタル情報媒体を用いるエンハンスド・ナビゲーション・システム
CA2497697C (en) * 2002-09-12 2013-07-09 Matsushita Electric Industrial Co., Ltd. Recording medium, playback device, program, playback method, and recording method
CN1754225B (zh) 2003-02-21 2012-05-30 松下电器产业株式会社 再现设备、记录方法以及再现方法
TW200518070A (en) * 2003-10-10 2005-06-01 Matsushita Electric Ind Co Ltd Recording medium, reproduction device, program, and reproduction method
JP2005321953A (ja) * 2004-05-07 2005-11-17 Hitachi Ltd ストレージ制御装置、その動作プログラム、及びアクセス制御方法
JP2005332521A (ja) 2004-05-21 2005-12-02 Toshiba Corp 情報記録媒体及び情報再生装置
MXPA06014210A (es) * 2004-07-22 2007-02-14 Matsushita Electric Ind Co Ltd Aparato de reproduccion para realizar reproduccion sincronizada con aplicaciones.
ATE421144T1 (de) * 2004-09-08 2009-01-15 Panasonic Corp Anti chatter, antiklapper zeitgeber für anwendungs-eingaben in einem dvd wiedergabegerät.
WO2006075874A1 (en) * 2005-01-12 2006-07-20 Samsung Electronics Co., Ltd. Information storage medium storing management information of application executable from a plurality of storage media, and method and apparatus for executing the application

Also Published As

Publication number Publication date
BRPI0605867A2 (pt) 2009-03-17
CN102081944B (zh) 2012-12-26
WO2006082892A1 (ja) 2006-08-10
JP4476346B2 (ja) 2010-06-09
US8687943B2 (en) 2014-04-01
EP1764799B1 (en) 2011-06-08
CN1993760A (zh) 2007-07-04
US20080292270A1 (en) 2008-11-27
US20110299833A1 (en) 2011-12-08
JP4410253B2 (ja) 2010-02-03
EP1764799A1 (en) 2007-03-21
US8032007B2 (en) 2011-10-04
EP2317516B1 (en) 2013-04-17
CN102081944A (zh) 2011-06-01
RU2007103565A (ru) 2008-08-10
CN1993760B (zh) 2011-03-09
EP1764799A4 (en) 2009-11-11
EP2317516A1 (en) 2011-05-04
JPWO2006082892A1 (ja) 2008-06-26

Similar Documents

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

Legal Events

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20100209

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20100309

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

Ref document number: 4476346

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20130319

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20140319

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20140319

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20150319

Year of fee payment: 5