[go: up one dir, main page]

JP4442564B2 - 再生装置、再生方法、再生プログラムおよび記録媒体 - Google Patents

再生装置、再生方法、再生プログラムおよび記録媒体 Download PDF

Info

Publication number
JP4442564B2
JP4442564B2 JP2005510280A JP2005510280A JP4442564B2 JP 4442564 B2 JP4442564 B2 JP 4442564B2 JP 2005510280 A JP2005510280 A JP 2005510280A JP 2005510280 A JP2005510280 A JP 2005510280A JP 4442564 B2 JP4442564 B2 JP 4442564B2
Authority
JP
Japan
Prior art keywords
data
image data
recording medium
button
stored
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.)
Expired - Fee Related
Application number
JP2005510280A
Other languages
English (en)
Other versions
JPWO2004049710A1 (ja
Inventor
俊也 浜田
元樹 加藤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sony Corp
Original Assignee
Sony 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 Sony Corp filed Critical Sony Corp
Publication of JPWO2004049710A1 publication Critical patent/JPWO2004049710A1/ja
Application granted granted Critical
Publication of JP4442564B2 publication Critical patent/JP4442564B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/41Structure of client; Structure of client peripherals
    • H04N21/422Input-only peripherals, i.e. input devices connected to specially adapted client devices, e.g. global positioning system [GPS]
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B19/00Driving, starting, stopping record carriers not specifically of filamentary or web form, or of supports therefor; Control thereof; Control of operating function ; Driving both disc and head
    • G11B19/02Control of operating function, e.g. switching from recording to reproducing
    • G11B19/022Control panels
    • G11B19/025'Virtual' control panels, e.g. Graphical User Interface [GUI]
    • 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]
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B27/00Editing; Indexing; Addressing; Timing or synchronising; Monitoring; Measuring tape travel
    • G11B27/10Indexing; Addressing; Timing or synchronising; Measuring tape travel
    • G11B27/34Indicating arrangements 
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/41Structure of client; Structure of client peripherals
    • H04N21/426Internal components of the client ; Characteristics thereof
    • H04N21/42646Internal components of the client ; Characteristics thereof for reading from or writing on a non-volatile solid state storage medium, e.g. DVD, CD-ROM
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/432Content retrieval operation from a local storage medium, e.g. hard-disk
    • H04N21/4325Content retrieval operation from a local storage medium, e.g. hard-disk by playing back content from the storage medium
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/439Processing of audio elementary streams
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/443OS processes, e.g. booting an STB, implementing a Java virtual machine in an STB or power management in an STB
    • H04N21/4438Window management, e.g. event handling following interaction with the user interface
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N9/00Details of colour television systems
    • H04N9/64Circuits for processing colour signals
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N9/00Details of colour television systems
    • H04N9/79Processing of colour television signals in connection with recording
    • H04N9/80Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback
    • H04N9/804Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback involving pulse code modulation of the colour picture signal components
    • H04N9/8042Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback involving pulse code modulation of the colour picture signal components involving data reduction
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/00086Circuits for prevention of unauthorised reproduction or copying, e.g. piracy
    • G11B20/0021Circuits for prevention of unauthorised reproduction or copying, e.g. piracy involving encryption or decryption of contents recorded on or reproduced from a record carrier
    • G11B20/00485Circuits for prevention of unauthorised reproduction or copying, e.g. piracy involving encryption or decryption of contents recorded on or reproduced from a record carrier characterised by a specific kind of data which is encrypted and recorded on and/or reproduced from the record carrier
    • G11B20/00492Circuits for prevention of unauthorised reproduction or copying, e.g. piracy involving encryption or decryption of contents recorded on or reproduced from a record carrier characterised by a specific kind of data which is encrypted and recorded on and/or reproduced from the record carrier wherein content or user data is encrypted
    • G11B20/00528Circuits for prevention of unauthorised reproduction or copying, e.g. piracy involving encryption or decryption of contents recorded on or reproduced from a record carrier characterised by a specific kind of data which is encrypted and recorded on and/or reproduced from the record carrier wherein content or user data is encrypted wherein each title is encrypted with a separate encryption key for each title, e.g. title key for movie, song or data file
    • 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
    • G11B2020/1264Formatting, e.g. arrangement of data block or words on the record carriers wherein the formatting concerns a specific kind of data
    • G11B2020/1288Formatting by padding empty spaces with dummy data, e.g. writing zeroes or random data when de-icing optical 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/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/21Disc-shaped record carriers characterised in that the disc is of read-only, rewritable, or recordable type
    • G11B2220/215Recordable discs
    • G11B2220/216Rewritable 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
    • 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/2562DVDs [digital versatile discs]; Digital video discs; MMCDs; HDCDs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N11/00Colour television systems
    • H04N11/06Transmission systems characterised by the manner in which the individual colour picture signal components are combined
    • H04N11/20Conversion of the manner in which the individual colour picture signal components are combined, e.g. conversion of colour television standards
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/44Receiver circuitry for the reception of television signals according to analogue transmission standards
    • H04N5/445Receiver circuitry for the reception of television signals according to analogue transmission standards for displaying additional information
    • H04N5/44504Circuit details of the additional information generator, e.g. details of the character or graphics signal generator, overlay mixing circuits
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/76Television signal recording
    • H04N5/765Interface circuits between an apparatus for recording and another apparatus
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/76Television signal recording
    • H04N5/84Television signal recording using optical recording
    • H04N5/85Television signal recording using optical recording on discs or drums
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N9/00Details of colour television systems
    • H04N9/79Processing of colour television signals in connection with recording
    • H04N9/80Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback
    • H04N9/804Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback involving pulse code modulation of the colour picture signal components
    • H04N9/806Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback involving pulse code modulation of the colour picture signal components with processing of the sound signal
    • H04N9/8063Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback involving pulse code modulation of the colour picture signal components with processing of the sound signal using time division multiplex of the PCM audio and PCM video signals
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N9/00Details of colour television systems
    • H04N9/79Processing of colour television signals in connection with recording
    • H04N9/80Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback
    • H04N9/82Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback the individual colour picture signal components being recorded simultaneously only
    • H04N9/8205Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback the individual colour picture signal components being recorded simultaneously only involving the multiplexing of an additional signal and the colour video signal
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N9/00Details of colour television systems
    • H04N9/79Processing of colour television signals in connection with recording
    • H04N9/80Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback
    • H04N9/82Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback the individual colour picture signal components being recorded simultaneously only
    • H04N9/8205Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback the individual colour picture signal components being recorded simultaneously only involving the multiplexing of an additional signal and the colour video signal
    • H04N9/8211Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback the individual colour picture signal components being recorded simultaneously only involving the multiplexing of an additional signal and the colour video signal the additional signal being a sound signal
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N9/00Details of colour television systems
    • H04N9/79Processing of colour television signals in connection with recording
    • H04N9/80Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback
    • H04N9/82Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback the individual colour picture signal components being recorded simultaneously only
    • H04N9/8205Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback the individual colour picture signal components being recorded simultaneously only involving the multiplexing of an additional signal and the colour video signal
    • H04N9/8227Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback the individual colour picture signal components being recorded simultaneously only involving the multiplexing of an additional signal and the colour video signal the additional signal being at least another television signal
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N9/00Details of colour television systems
    • H04N9/79Processing of colour television signals in connection with recording
    • H04N9/80Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback
    • H04N9/82Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback the individual colour picture signal components being recorded simultaneously only
    • H04N9/8205Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback the individual colour picture signal components being recorded simultaneously only involving the multiplexing of an additional signal and the colour video signal
    • H04N9/8233Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback the individual colour picture signal components being recorded simultaneously only involving the multiplexing of an additional signal and the colour video signal the additional signal being a character code signal
    • H04N9/8244Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback the individual colour picture signal components being recorded simultaneously only involving the multiplexing of an additional signal and the colour video signal the additional signal being a character code signal involving the use of subcodes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N9/00Details of colour television systems
    • H04N9/79Processing of colour television signals in connection with recording
    • H04N9/87Regeneration of colour television signals
    • H04N9/8715Regeneration of colour television signals involving the mixing of the reproduced video signal with a non-recorded signal, e.g. a text signal

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Human Computer Interaction (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)
  • Television Signal Processing For Recording (AREA)
  • Indexing, Searching, Synchronizing, And The Amount Of Synchronization Travel Of Record Carriers (AREA)

Description

この発明は、ブルーレイディスク(Blu−ray Disc)といった大容量の記録媒体に記録されたプログラムに対するユーザによるインタラクティブな操作を可能とする再生装置、再生方法、再生プログラムおよび記録媒体に関する。
近年、記録可能で記録再生装置から取り外し可能なディスク型記録媒体の規格として、Blu−ray Disc(ブルーレイディスク)規格が提案されている。Blu−ray Disc規格では、記録媒体として直径12cm、カバー層0.1mmのディスクを用い、光学系として波長405nmの青紫色レーザ、開口数0.85の対物レンズを用いて、最大で27GB(ギガバイト)の記録容量を実現している。これにより、日本のBSディジタルハイビジョン放送を、画質を劣化させることなく2時間以上記録することが可能である。
この記録可能光ディスクに記録するAV(Audio/Video)信号のソース(供給源)としては、従来からの、例えばアナログテレビジョン放送によるアナログ信号によるものと、例えばBSディジタル放送をはじめとするディジタルテレビジョン放送によるディジタル信号によるものとが想定されている。Blu−ray Disc規格では、これらの放送によるAV信号を記録する方法を定めた規格は、既に作られている。
現状のBlu−ray Discの派生規格として、映画や音楽などが予め記録された、再生専用の記録媒体を開発する動きが進んでいる。映画や音楽を記録するためのディスク状記録媒体としては、既にDVD(Digital Versatile Disc)が広く普及しているが、このBlu−ray Discの規格に基づいた再生専用光ディスクは、Blu−ray Discの大容量および高速な転送速度などを活かし、ハイビジョン映像を高画質なままで2時間以上収録できる点が、既存のDVDとは大きく異なり、優位である。
現状のBlu−ray Discの規格では、ディスクに記録されている映像コンテンツの一覧を画面表示する方法や、その一覧表上にカーソルを表示させ、再生したい映像コンテンツをユーザに選択させるなどといったユーザインターフェイスに関する機能が定められていない。これらの機能は、Blu−ray Discに対する記録再生を行う記録再生装置本体によって実現されている。そのため、同一の記録媒体を再生した場合でも、再生に用いた記録再生装置によってコンテンツ一覧画面のレイアウトが異なってしまい、ユーザインタフェースにも差が生じ、必ずしもユーザにとって使い易いものではない。再生専用ディスクとしては、再生機器によらず、ディスク(コンテンツ)制作者が意図した通りのメニュー画面などが表示され、意図通りのユーザインターフェイスが実現される必要がある。
映像コンテンツの再生中に選択画面が表示され、ユーザの選択によってストーリーが分岐していくマルチストーリーの機能は、一般にインタラクティブ機能とも呼ばれる。このインタラクティブ機能を実現するためには、ディスク制作者が再生順序や分岐を定めたシナリオを作り、そのシナリオをプログラム言語、スクリプト言語等を使って記述し、ディスクに記録しておく必要がある。再生装置側では、そのプログラムを読み込み、実行することで、制作者の意図に従った映像コンテンツの再生や、分岐のための選択画面提示を実現することになる。
現状のBlu−ray Disc規格(Blu−ray Disc Rewritable Format Ver1.0)では、この制作者の意図通りのユーザインターフェイスを実現するための、メニュー画面や分岐選択画面の構成方法、ユーザ入力に対する処理を記述する方法が定められていない。現状では、Blu−ray Discを用いて、制作者が意図したシナリオ通りの再生を、再生装置の製造メーカや機種に左右されることなく互換性を持たせた形で実現することが難しいという問題点があった。
再生専用ディスクにおいては、同一の被写体を複数のカメラで撮影し、ユーザが好みのアングルでの視聴を選択できるマルチアングル機能が制作者側より求められており、これを実現できる仕組みを用意する必要がある。
再生専用ディスクにおいては、字幕を表示する仕組みが不可欠である。しかしながら、この字幕表示についても、現状のBlu−ray Disc規格では、定められていない。
従来から、例えばDVD(Digital Versatile Disc)の規格においては、上述のようなインタラクティブな機能が既に実現されていた。DVDビデオでは、動画を再生中にリモートコントロールコマンダなどを用いてメニュー画面を呼び出し、メニュー画面上に配置されたボタンを選択するなどして、再生場面を変更するなどの処理が可能であった。字幕を表示する仕組みも規定されていた。字幕表示については、予め用意されている日本語字幕と英語字幕とを切り換えて表示させることができた。マルチアングル機能も実現されていた。
DVDの場合、メニュー画面を固定的なサブピクチャデータにより構成し、メニュー画面が呼び出された際に、動画データにこのサブピクチャデータを合成して表示する。特開平10−308924号公報に、このように動画データにサブピクチャデータを合成して記録可能なDVDに記録する構成が記載されている。
従来技術によるメニュー画面の一例の表示について、概略的に説明する。例えば、映画が収録されたDVDを再生装置で再生する際に、映画本編が再生されるのに先立って、メニュー画面が表示される。一般に、メニュー画面には、複数のボタンが配置される。各ボタンには、それぞれ特定の動作が割り当てられており、ボタンを選択し実行を指示すると、選択されたボタンに割り当てられた動作が実行される。「映画本編」と表示されたボタンを選択し実行を指示することで、当該ボタンに割り当てられた動作が実行され、当該DVDに収録された映画の本編が再生されることになる。
ユーザは、リモートコントロールコマンダ(以下、リモコンと略称する)に設けられた、上下左右の方向をそれぞれ指示するようにされたキー(方向キー)などを操作して、メニュー画面に表示されたボタンの一つを選択状態とし、そこで決定キーを操作することで、選択されたボタンに割り当てられた動作を実行状態とする。ボタンには、通常(非選択)状態、選択状態及び実行状態という3種類の状態が存在し、ユーザが区別し易いように、それぞれ画像や色などが異ならされている。一般に、選択状態および実行状態のボタンは、同時には一つしか存在しない。
DVDビデオの場合、ボタンの表示は、それぞれサブピクチャ、ハイライトと呼ばれる2種類のデータにより実現される。第1図は、従来技術による一例のDVDメニュー画面300を示す。メニュー画面300は、「タイトルメニュー」と名付けられ、それぞれ「本編再生」、「映像特典」および「音声設定」と表示された3個のボタン301A、301Bおよび301Cが配置される。この第1図の例では、「本編再生」ボタン301Aの外枠の色がボタン301Aの元の外枠の色と異なった色にされており、「本編再生」ボタン301Aが選択状態となっていることが示される。
この状態で、ユーザがリモコンの方向キーを所定に操作することにより、第2図A、第2図Bおよび第2図Cにそれぞれ例示されるように、選択状態のボタンを変更することができる。選択されたボタンは、上述の第1図と同様に、外枠の色が非選択状態の場合に対して異ならされる。第1図の状態で、ユーザがリモコンに設けられた決定ボタンを操作すると、その時点で選択状態にある「本編再生」ボタン301Aが第3図に一例が示されるように、実行状態を表す色に変化される。その後、メニュー画面300が消え、本編が再生されることになる。以上が、DVDビデオによるボタンの基本動作である。
ところで、第1図に例示されるメニュー画面300は、第4図A、第4図Bおよび第4図Cにそれぞれ一例が示されるように、背景画像310、サブピクチャ311およびハイライト312の3種類のデータから構成される。背景画像310は、静止画や、当該DVDに収録されるコンテンツ本体の動画などが表示される。
サブピクチャ311は、第5図に例示されるように、1ピクセル当たり2ビットの情報で表現された1枚のビットマップ画像と、4色の色情報(A0,B0,C0,D0)と、当該サブピクチャ311の表示開始位置を示す座標(X,Y)とを有する。色情報A0、B0、C0およびD0は、それぞれ1組のR(赤)G(緑)B(青)データからなる1色の色情報データであって、R、G、B各色について各々8ビットの情報を有する。ビットマップ画像は、1ピクセルにつき2ビットの情報を有し、2ビットを用いて上述の4色の色情報(A0,B0,C0,D0)の中から1色をピクセル毎に選択する。色情報は、透明度情報も含まれており、サブピクチャ311に対して背景画像310が透けて見える領域を設けることができる。サブピクチャ311の表示位置は、サブピクチャ311の左上隅の位置が背景画像310に対する相対的な座標(X,Y)で示される。
サブピクチャ311は、表示開始および停止時刻を示す情報、当該サブピクチャ311に対してフェードイン、フェードアウトといった視覚効果を施すコマンドを有することができる。
DVDビデオにおいては、同時に複数のビットマップ画像を表示することができない。そのため、上述した第1図に例示されるような、複数のボタンが配置されたようなメニュー画面300の表示は、第4図Bに例示されるような、3個のボタン画像を含む1枚の大きなビットマップ画像によりなされる。第4図Bのサブピクチャ311のビットマップ画像において、ボタン301A、301Bおよび301Cの外側の領域を透明領域として設定することで、このサブピクチャ311と背景画像310とを合成した際に、ボタン301A、301Bおよび301Cの表示領域以外に背景画像310を透過させて表示させることができる。
ハイライト312は、サブピクチャ311に用いられている4色を、他の4色に置き換えるための情報である。第5図に例示されるように、ハイライト312は、色情報として、選択状態の色情報(A1,B1,C1,D1)および実行状態の色情報(A2,B2,C2,D2)を有する。これらの色情報も、上述のサブピクチャ311と同様、RGBそれぞれ8ビットで表現される4色の色情報である。
また、ハイライト312は、位置情報として、色を置き換える領域の座標の組を有する。色を置き換える範囲は、サブピクチャ311の画像全体に限らず、サブピクチャ311内の一部の矩形領域とすることができる。このハイライト312により色を変化させるサブピクチャ311内の矩形領域の数がユーザが選択可能なボタンの数に相当する。それぞれの矩形領域の表示位置は、左上隅および右下隅の位置が座標(X,Y)で示される。例えば、ボタン301Aに対応するハイライト312Aの位置は、座標(X1,Y1)および(X1’,Y1’)で示される。ボタン301Bおよび301Cにそれぞれ対応するハイライト312Bおよび312Cも、同様である。
一例として、ハイライト312Aは、背景画像310の座標(X1,Y1)および(X1’,Y1’)で示される領域の色情報(A0,B0,C0,D0)を、選択状態の色として指定される色情報(A1,B1,C1,D1)に置き換える。このとき、背景画像310の色情報A0がハイライト312Aの色情報A1に置き換えられる。同様に、背景画像310の色情報B0が色情報B1に、色情報C0が色情報C1に、色情報D0が色情報D1に、それぞれ置き換えられる。
このハイライト312による色の置き換えの例を、第1図、第2図A、第2図Bおよび第2図C、ならびに、第3図を用いて上述した、メニュー画面300におけるボタン301Aの状態に応じた表示変化に対応させて説明する。ボタン301Aが非選択状態のときには、ボタン301Aの枠、表面および文字がそれぞれ色情報B0、色情報C0および色情報D0を用いて表示されているものとする。ボタン301Aを選択状態とすると、ボタン301Aの枠色B0がハイライト312Aの選択状態の対応する色情報B1で置き換えられる。表面色C0および文字色D0は、変化しない。次いで、ボタン301Aが実行状態とされると、選択状態の色に対して、ボタン301Aの表面色C0が色情報C1に置き換えられる。枠色B1および文字色D0は、選択状態に対して変化しない。
DVDビデオにおいて、通常の映像再生時は、背景画像310に相当する画像だけが表示されている。字幕付きの映画などの場合は、映画本編が再生されている背景画像310と、字幕が表示されているサブピクチャ311とが合成された状態で表示がなされている。
しかしながら、サブピクチャ311、選択状態を表すハイライト312、実行状態を表すハイライト312は、それぞれ最大4色しか用いることができず、色数の多いサブピクチャを表示することができないという問題点があった。
ハイライト312は、サブピクチャ311の色を置き換え変更するだけであったため、選択状態や実行状態においてボタン中に表示されている文字を変えることや、ボタンの形状が変化するような効果を実現することができず、表現力に乏しいという問題点があった。
字幕表示とボタン表示とを、サブピクチャ311を用いた同一の仕組みで実現していたため、字幕とボタンとをそれぞれ独立して表示制御することや、字幕あるいはボタン表示に透明度を設定してこれらを重ね合わせて表示させるといった、合成処理もできないという問題点があった。
メニュー画面を呼び出した際に、背景に表示される動画データの再生が中断されていた。このように、例えインタラクティブな機能が実現されていても、その機能を実現するためのユーザインターフェイスの自由度が低いという問題点があった。
字幕の表示や変化に同期させて効果音を発生させる仕組みが規格で定められていないため、字幕に同期させて効果音を発生させるようなことができないという問題点があった。
ボタンについても、ユーザがボタンを選択状態にした際に発せられる効果音や、ボタンの選択状態時に決定キーを操作するなどして、当該ボタンを実行状態にした際に発せられるクリック音のような効果音を発生させる仕組みが規格で定められていなかったため、表現豊かなユーザインターフェイスを実現することが困難であるという問題点があった。
自由度の高いユーザインタフェースを実現する上で、ボタンの描画速度や更新速度、ユーザ入力に対する応答性が問題となるが、それらを見積もるためのグラフィックスのデコーダモデルが必要であった。
ここでいう効果音とは、動画プレーン上に表示される動画や静止画に同期して再生される音声(例えば、映画などにおいて、映画映像と対になって収録されている音声)とは別途に用意された音声データが、字幕やボタンの表示制御に同期して再生される音声のことをいう。
この発明の目的は、大容量の再生専用光ディスクにおいて自由度の高いユーザインターフェイスを実現するための再生装置、再生方法、再生プログラムおよび記録媒体を提供することにある。
この発明の他の目的は、大容量の再生専用光ディスクにおいて、より表現豊かなユーザインターフェイスを実現する再生装置、再生方法、再生プログラムおよび記録媒体を提供することにある。
上述した課題を解決するために、第1の発明は、コンテンツデータを再生する再生装置において、少なくともプログラムコードおよびユーザに対して操作を促す操作画面を構成する画像データを含む非リアルタイムストリームと、少なくとも動画データおよび字幕データを含むリアルタイムストリームとが入力される入力手段と、入力手段により入力されたプログラムコードを格納するコード格納手段と、入力手段により入力された画像データを格納する画像データ格納手段と、入力手段により入力された動画データをデコードした復号動画データと、入力手段により入力された字幕データをデコードした復号字幕データとを合成する第1の合成手段と、コード格納手段に格納されたプログラムコードに基づき、画像データ格納手段に格納された画像データをデコードした復号画像データと、第1の合成手段により合成された動画字幕合成データとを合成する第2の合成手段とを有することを特徴とする再生装置である。
第2の発明は、コンテンツデータを再生する再生方法において、少なくともプログラムコードおよびユーザに対して操作を促す操作画面を構成する画像データを含む非リアルタイムストリームと、少なくとも動画データおよび字幕データを含むリアルタイムストリームとを入力する入力のステップと、入力のステップにより入力されたプログラムコードをコード格納手段に格納するステップと、入力のステップにより入力された画像データを画像データ格納手段に格納するステップと、入力のステップにより入力された動画データをデコードした復号動画データと、入力のステップにより入力された字幕データをデコードした復号字幕データとを合成する第1の合成のステップと、コード格納手段に格納されたプログラムコードに基づき、画像データ格納手段に格納された画像データをデコードした復号画像データと、第1の合成のステップにより合成された動画字幕合成データとを合成する第2の合成のステップとを有することを特徴とする再生方法である。
第3の発明は、コンテンツデータを再生する再生方法をコンピュータ装置に実行させる再生プログラムにおいて、再生方法は、少なくともプログラムコードおよびユーザに対して操作を促す操作画面を構成する画像データを含む非リアルタイムストリームと、少なくとも動画データおよび字幕データを含むリアルタイムストリームとを入力する入力のステップと、入力のステップにより入力されたプログラムコードをコード格納手段に格納するステップと、入力のステップにより入力された画像データを画像データ格納手段に格納するステップと、入力のステップにより入力された動画データをデコードした復号動画データと、入力のステップにより入力された字幕データをデコードした復号字幕データとを合成する第1の合成のステップと、コード格納手段に格納されたプログラムコードに基づき、画像データ格納手段に格納された画像データをデコードした復号画像データと、第1の合成のステップにより合成された動画字幕合成データとを合成する第2の合成のステップとを有することを特徴とする再生プログラムである。
第4の発明は、コンテンツデータを再生する再生方法をコンピュータ装置に実行させる再生プログラムが記録された記録媒体において、再生方法は、少なくともプログラムコードおよびユーザに対して操作を促す操作画面を構成する画像データを含む非リアルタイムストリームと、少なくとも動画データおよび字幕データを含むリアルタイムストリームとを入力する入力のステップと、入力のステップにより入力されたプログラムコードをコード格納手段に格納するステップと、入力のステップにより入力された画像データを画像データ格納手段に格納するステップと、入力のステップにより入力された動画データをデコードした復号動画データと、入力のステップにより入力された字幕データをデコードした復号字幕データとを合成する第1の合成のステップと、コード格納手段に格納されたプログラムコードに基づき、画像データ格納手段に格納された画像データをデコードした復号画像データと、第1の合成のステップにより合成された動画字幕合成データとを合成する第2の合成のステップとを有することを特徴とする記録媒体である。
第5の発明は、コンテンツデータが記録された円盤状の形状を有する記録媒体において、少なくともプログラムコードおよびユーザに対して操作を促す操作画面を構成する画像データを含む非リアルタイムストリームと、少なくとも動画データおよび字幕データを含むリアルタイムストリームとが記録され、プログラムコードに基づき、再生後に画像データ格納手段に格納された画像データをデコードした復号画像データと、再生された動画データをデコードした復号動画データおよび再生された字幕データをデコードした復号字幕データが合成された動画字幕合成データとが合成されることを特徴とする記録媒体である。
上述したように、第1、第2、第3および第4の発明は、少なくともプログラムコードおよびユーザに対して操作を促す操作画面を構成する画像データを含む非リアルタイムストリームと、少なくとも動画データおよび字幕データを含むリアルタイムストリームとを入力し、入力されたプログラムコードおよび画像データをコード格納手段および画像データ格納手段にそれぞれ格納し、入力された動画データおよび字幕データをそれぞれデコードした復号動画データおよび復号字幕データとを合成して動画字幕合成データとし、コード格納手段に格納されたプログラムコードに基づき、画像データ格納手段に格納された画像データをデコードした復号画像データと動画字幕合成データとを合成するようにしているため、再生時に、同一の画像データを用いた操作画面を、異なるタイミングでそれぞれ表示させることが容易である。
第5の発明は、少なくともプログラムコードおよびユーザに対して操作を促す操作画面を構成する画像データを含む非リアルタイムストリームと、少なくとも動画データおよび字幕データを含むリアルタイムストリームとが記録され、プログラムコードに基づき、再生後に画像データ格納手段に格納された画像データをデコードした復号画像データと、再生された動画データをデコードした復号動画データおよび再生された字幕データをデコードした復号字幕データが合成された動画字幕合成データとが合成されるようにしているため、再生時に、同一の画像データを用いた操作画面を、異なるタイミングでそれぞれ表示させることが容易である。
第1図は、従来技術による一例のDVDメニュー画面を示す略線図、第2図A、第2図Bおよび第2図Cは、リモコン操作により選択状態のボタンを変更する様子を示す略線図、第3図は、決定ボタンの操作によりボタンが実行状態を表す色に変更される様子を示す略線図、第4図A、第4図Bおよび第4図Cは、従来技術によるメニュー画面の構成の例を示す略線図、第5図は、従来技術によるサブピクチャの一例のデータ構成を示す略線図、第6図は、AVストリームファイルの再生順序指定の仕組みを模式的に示す略線図、第7図は、クリップAVストリーム、クリップ情報、クリップ、プレイアイテムおよびプレイリストの関係を示すUML図、第8図は、複数のプレイリストから同一のクリップを参照する方法を説明するための略線図、第9図は、記録媒体に記録されるファイルの管理構造を説明するための略線図、第10図は、ファイル「info.bdav」の一例の構造を表すシンタクスを示す略線図、第11図は、ブロックUIAppInfoBDAV()の一例の構造を表すシンタクスを示す略線図、第12図は、ブロックTableOfPlayLists()の一例の構造を表すシンタクスを示す略線図、第13図は、ファイル「xxxxx.rpls」および「yyyyy.vpls」の一例の構造を表すシンタクスを示す略線図、第14図は、ブロックUIAppInfoPlayList()の一例の構造を表すシンタクスを示す略線図、第15図は、ブロックPlayList()の一例の構造を表すシンタクスを示す略線図、第16図は、ブロックPlayItem()の一例の構造を表すシンタクスを示す略線図、第17図は、ブリッジクリップを説明するための略線図、第18図は、ブロックPlayListMark()の一例の構造を表すシンタクスを示す略線図、第19図は、ファイル「zzzzz.clpi」の一例の構造を表すシンタクスを示す略線図、第20図は、この発明の実施の一形態で画像の表示系として用いられるプレーン構造の一例を示す略線図、第21図は、動画プレーン、字幕プレーンおよびグラフィクスプレーンの一例の解像度および表示可能色を示す略線図、第22図は、動画プレーン、字幕プレーンおよびグラフィクスプレーンを合成する一例の構成を示すブロック図、第23図は、パレットの入出力データの一例を示す略線図、第24図は、パレットに格納される一例のパレットテーブルを示す略線図、第25図は、グラフィクスプレーンに表示されるメニュー画面の一例を示す略線図、第26図は、シナリオの一例の内部構造を示す略線図、第27図は、シナリオの一例の内部構造を示す略線図、第28図は、シナリオの構成の分類を説明するための略線図、第29図A、第29図Bおよび第29図Cは、プレイリストの構成の分類を説明するための略線図、第30図は、タイトルおよびチャプタについて説明するための略線図、第31図は、BD仮想プレーヤモデルについて説明するための略線図、第32図A、第32図Bおよび第32図Cは、BD仮想プレーヤにおいて独自に定義される一例のイベントを示す略線図、第33図A、第33図B、第33図C、第33図D、第33図E、第33図F、第33図Gおよび第33図Hは、この発明の実施の一形態で定義される、BD仮想プレーヤが有するコマンドの一例を示す略線図、第34図A、第34図B、第34図C、第34図D、第34図E、第34図F、第34図G、第34図H、第34図Iおよび第34図Jは、この発明の実施の一形態で定義される、BD仮想プレーヤが有するコマンドの一例を示す略線図、第35図Aおよび第35図Bは、独自コマンドを記述言語として用いたシナリオで記述されるコマンドによるBD仮想プレーヤの動作を概略的に示すフローチャート、第36図Aおよび第36図Bは、プレイリストの再生動作を説明するためのフローチャート、第37図Aおよび第37図Bは、シナリオの一例の階層構造を示す略線図、第38図は、ディスクに記録されるシナリオ構成の一例を示す略線図、第39図は、シナリオを構成する際に必要とされる一例のファイルを一覧して示す略線図、第40図は、シナリオがディスクに記録される際の一例のディレクトリ構造を示す略線図、第41図は、スクリプトファイルのより具体的な記述の例を示す略線図、第42図は、スクリプトファイルのより具体的な記述の例を示す略線図、第43図は、HTMLファイルのより具体的な記述の例を示す略線図、第44図は、スクリプトファイルのより具体的な記述の例を示す略線図、第45図は、記録媒体に記録されるファイルの管理構造を説明するための略線図、第46図は、シナリオを記述するためのシナリオファイル(scenario.hdmv)の一例の構造を表すシンタクスを示す略線図、第47図は、ブロックAutoplay()の一例の構造を表すシンタクスを示す略線図、第48図は、ブロックScenario()の一例の構造を表すシンタクスを示す略線図、第49図は、ブロックentrylist.dataの一例の構造を表すシンタクスを示す略線図、第50図は、ブロックAppInfo()の一例の構造を表すシンタクスを示す略線図、第51図は、ブロックScenarioEntry()の一例の構造を表すシンタクスを示す略線図、第52図は、ファイルxxxxx.mplsの一例の構造を表すシンタクスを示す略線図、第53図は、ブロックPLCpntrolInfo()の一例の構造を表すシンタクスを示す略線図、第54図は、フィールドPL_Playback_typeのの取り得る値と意味を示す略線図、第55図は、フィールドPL_random_access_modeの取り得る値と意味を示す略線図、第56図は、ブロックPlayList()の一例の構造を表すシンタクスを示す略線図、第57図は、ブロックPlayItem()の一例の構造を表すシンタクスを示す略線図、第58図は、フィールドPI_random_access_modeの取り得る値と意味を示す略線図、第59図は、フィールドstill_modeの取り得る値と意味を示す略線図、第60図は、フィールドis_seamless_angle_changeの取り得る値と意味を示す略線図、第61図は、ブロックSubPlayItem()の一例の構造を表すシンタクスを示す略線図、第62図は、フィールドis_repeat_flagの取り得る値と意味を示す略線図、第63図は、メインパスとサブパスの時間軸の関係を示す略線図、第64図は、ファイルzzzzz.clpiの一例の構造を表すシンタクスを示す略線図、第65図は、ブロックClipInfo()の一例の構造を表すシンタクスを示す略線図、第66図は、フィールドapplication_typeの取り得る値と意味を示す略線図、第67図は、ブロックSequenceInfo()の一例の構造を表すシンタクスを示す略線図、第68図は、ブロックProgramInfo()の一例の構造を表すシンタクスを示す略線図、第69図は、ブロックStreamCodingInfo()の一例の構造を表すシンタクスを示す略線図、第70図は、ブロックCPI()の一例の構造を表すシンタクスを示す略線図、第71図は、フィールドCPI_typeの取り得る値と意味を示す略線図、第72図は、ブロックEP_map_for_one_stream_PID()の一例の構造を表すシンタクスを示す略線図、第73図A、第73図Bおよび第73図Cは、プレーヤデコーダの一例の構成を示す機能ブロック図、第74図は、ボタン表示の一例の状態遷移図、第75図は、オブジェクトの種類の分類を説明するための図、第76図A、第76図Bおよび第76図Cは、この発明の実施の一形態によるグラフィクスオブジェクトのデータ構造の例を示す略線図、第77図は、グラフィクスオブジェクトが分割されてPESパケットに格納される様子を示す略線図、第78図は、グラフィクスオブジェクトのデコードを行うグラフィクスオブジェクトデコーダモデルの一例の構成を示す機能ブロック図、第79図A、第79図B、第79図Cおよび第79図Dは、グラフィクスオブジェクト入力バッファ、PNGデコーダ、オブジェクトバッファおよびプレーンバッファにおける蓄積データ量の遷移の例を概略的に示す略線図、第80図は、プレーンへのデータ転送速度について説明するための図、第81図Aおよび第81図Bは、ウィンドウの定義について説明するための図、第82図Aおよび第82図Bは、ウィンドウの定義について説明するための図、第83図は、グラフィクスオブジェクトの一例の構造を表すシンタクスを示す略線図、第84図は、ブロックGlobalPaletteTable()の一例の構造を表すシンタクスを示す略線図、第85図Aおよび第85図Bは、命令グループDispCmds(i)に置かれる表示制御命令の例を一覧して示す略線図、第86図Aおよび第86図Bは、命令set_display_box(x1,y1,x2,y2)および命令set_clipping_box(a1,b1,a2,b2)を説明するための略線図、第87図は、座標軸の定義を説明するための略線図、第88図は、命令グループDispCmds(i)の記述とグラフィクスオブジェクトの表示変化の一例を示す略線図、第89図A、第89図B、第89図Cおよび第89図Dは、字幕表示が徐々に現れるフェードインの例を示す略線図、第90図Aおよび第90図Bは、字幕のPNG画像がプレーン内を移動する例を示す略線図、第91図Aおよび第91図Bは、字幕表示をスクロールさせる例を示す略線図、第92図Aおよび第92図Bは、PNG画像の一部を表示する枠を設定し、PNG画像上でこの枠を移動させつつ、プレーン上での表示位置も移動させる例を示す略線図、第93図は、ボタン画像に音声データを割り当てたグラフィクスオブジェクトの一例のデータ構造を示す略線図、第94図は、グラフィクスオブジェクトに音声データを格納しない場合の一例のデータの管理構造を示す略線図、第95図は、グラフィクスオブジェクトに音声データを格納する一例の方法を示す略線図、第96図は、グラフィクスオブジェクトに音声データを格納しない場合の音声データの再生についてより具体的に説明するための略線図である。
この発明の実施の一形態について説明する。この発明の実施の一形態では、記録再生規格であるBlu−ray Disc規格(Blu−ray Disc Rewritable Format Ver1.0)を基に、再生専用ディスクで必要となるインタラクティブ機能や、マルチアングル機能などの機能を実現できるようにした。
以下の説明は、下記の構成に従い行う。
1.BD−REフォーマットの概要
2.BD−ROMフォーマットの概要
2−1.プレーンについて
2−2.メニュー画面
2−3.シナリオについて
2−4.シナリオの分類
2−5.仮想プレーヤモデルについて
2−6.コマンドについて
2−7.コマンドの実行について
2−8.シンタクスについて
2−9.デコーダモデル
2−10.ボタンについて
2−11.グラフィクスの転送速度について
2−12.グラフィクスオブジェクトについて
2−13.効果音について
2−14.その他
1.BD−REフォーマットの概要
先ず、理解を容易とするために、Blu−ray Discに関し、”Blu−ray Disc Rewritable Format Ver1.0 part3 Audio Visual Specifications”で規定されている、コンテンツすなわちディスクに記録されたAV(Audio/Video)データの管理構造について説明する。以下では、この管理構造をBDAVフォーマットと称する。
例えばMPEG(Moving Pictures Experts Group)ビデオやMPEGオーディオなどの符号化方式で符号化され、MPEG−2システムに従い多重化されたビットストリームは、クリップAVストリーム(またはAVストリーム)と称される。クリップAVストリームは、Blu−ray Discに関する規格の一つである”Blu−ray Disc Rewritable Format Ver1.0 part2”で定義されたファイルシステムにより、ファイルとしてディスクに記録される。このファイルを、クリップAVストリームファイル(またはAVストリームファイル)と称する。
クリップAVストリームファイルは、ファイルシステム上での管理単位であり、ユーザにとって必ずしも分かりやすい管理単位であるとは限らない。ユーザの利便性を考えた場合、複数のクリップAVストリームファイルに分割された映像コンテンツを一つにまとめて再生するための情報や、クリップAVストリームファイルの一部だけを再生するための情報、特殊再生や頭出し再生を滑らかに行うための情報などをデータベースとしてディスクに記録しておく必要がある。Blu−ray Discに関する規格の一つである”Blu−ray Disc Rewritable Format Ver1.0 part3”で、このデータベースが規定される。
第6図は、AVストリームファイルの一部または全部の範囲を指定して、必要な部分だけを並べて再生する再生順序指定の仕組みを模式的に示す。第6図において、プレイリスト(PlayList)は、AVストリームファイルの一部または全部の範囲を指定して、必要な部分だけを再生する指示を与える。ユーザがコンテンツの再生を行う際には、このプレイリストの単位で選択する。プレイリストは、ユーザからみてひとまとまりであり、再生が連続に行われることをユーザが暗黙に期待する、映像・音声の単位である。
最も簡単なプレイリストの構成は、記録が開始されてから記録が終了されるまでの一繋がりのAVストリームファイルからなり、編集をしなければ、これが一つのプレイリストになる。
プレイリストは、再生するAVストリームファイルの指定と、指定されたAVストリームファイルの再生箇所を指定する再生開始点と再生終了点の集まりとから構成される。この再生開始点と再生終了点の情報を一組としたものは、プレイアイテム(PlayItem)と称される。プレイリストは、プレイアイテムの集合で構成される。プレイアイテムを再生するということは、そのプレイアイテムに参照されるAVストリームファイルの一部分を再生するということになる。
クリップAVストリームは、上述したように、ビデオデータやオーディオデータがMPEG2 TS(トランスポートストリーム)の形式などに多重化されたビットストリームである。このクリップAVストリームに関する情報がクリップ情報(Clip Information)としてファイルに記録される。
クリップAVストリームファイルと、対応するクリップ情報が記録されたクリップ情報ファイルとをひとまとまりのオブジェクトと見なし、クリップ(Clip)と称する。クリップは、クリップAVストリームとクリップ情報とから構成される、一つのオブジェクトである。
ファイルは、一般的に、バイト列として扱われる。クリップAVストリームファイルのコンテンツは、時間軸上に展開され、クリップ中のエントリーポイントは、主に時間ベースで指定される。所定のクリップへのアクセスポイントのタイムスタンプが与えられた場合、クリップAVストリームファイルの中でデータの読み出しを開始すべきアドレス情報を見つけるために、クリップ情報ファイルを用いることができる。
1のディスク中に記録された全てのプレイリストおよびクリップは、ボリュームインフォメーション(Volume Information)で管理される。
第7図は、上述のようなクリップAVストリーム、クリップ情報(Stream Attributes)、クリップ、プレイアイテムおよびプレイリストの関係を示すUML(Unified Modeling Language)図である。プレイリストは、1または複数のプレイアイテムに対応付けられ、プレイアイテムは、1のクリップに対応付けられる。1のクリップに対して、それぞれ開始点および/または終了点が異なる複数のプレイアイテムを対応付けることができる。1のクリップから1のクリップAVストリームファイルが参照される。1のクリップから1のクリップ情報ファイルが参照される。クリップAVストリームファイルとクリップ情報ファイルとは、1対1の対応関係を有する。このような構造を定義することにより、クリップAVストリームファイルを変更することなく、任意の部分だけを再生する、非破壊の再生順序指定を行うことが可能となる。
第8図のように、複数のプレイリストから同一のクリップを参照することもできる。第8図の例では、クリップ1が2つのプレイリスト2および3から参照されている。第8図において、クリップ1は、横方向が時間軸を表す。プレイリスト2により、コマーシャル区間b−cとシーンeとを含むクリップ1の区間a〜fが参照される。プレイリスト3により、シーンeを含むクリップ1の区間d−gが参照される。プレイリスト2を指定することで、クリップ1の区間a〜fを再生することができ、プレイリスト3を指定することで、クリップ1の区間d−gを再生することができる。
”Blu−ray Disc Rewritable Format Ver1.0 part3”で規定された、記録媒体に記録されるファイルの管理構造について、第9図を用いて説明する。ファイルは、ディレクトリ構造により階層的に管理される。記録媒体上には、先ず、1つのディレクトリ(第9図の例ではルートディレクトリ)が作成される。このディレクトリの下が、1つの記録再生システムで管理される範囲とする。
ルートディレクトリの配下に、ディレクトリBDAVが置かれる。ディレクトリBDAVは、第9図のように、ディレクトリBDAV、BDAV1、BDAV2、・・・、BDAVnの如く、ルートディレクトリの配下に複数を置くことができる。以下では、複数のディレクトリBDAV、BDAV1、BDAV2、・・・、BDAVnをディレクトリBDAVで代表させて説明する。
ディレクトリBDAVの配下には、以下の6種類のファイルが置かれる。
(1)info.bdav
(2)menu.tidx、mark.tidx
(3)menu.tdt1、menu.tdt2、mark.tdt1、mark.tdt2
(4)#####.rpls、#####.vpls
(5)%%%%%.clpi
(6)*****.m2ts
(4)のファイル「#####.rpls」および「#####.vpls」において、「#####」は、任意の番号を示す。(5)のファイル「%%%%%.clpi」において、「%%%%%」は任意の番号を示す。(6)のファイル「*****.m2ts」において、「*****」は、ファイル「*****.m2ts」がファイル「%%%%%.clpi」と一対一で対応するような番号である。番号「*****」は、番号「%%%%%」と同一とすることができる。
(1)のファイル「info.bdav」は、ディレクトリBDAV全体の情報が格納されるファイルである。(2)のファイル「menu.tidx」および「mark.tidx」は、サムネイル画像の情報が格納されるファイルである。(3)のファイル「menu.tdt1」、「menu.tdt2」、「mark.tdt1」および「mark.tdt2」は、サムネイル画像が格納されるファイルである。各ファイルの拡張子「tdt1」および「tdt2」は、当該ファイルに格納されているサムネイル画像データが暗号化されているか否かを示す。
(4)のファイル「#####.rpls」、「#####.vpls」は、プレイリストの情報が格納されるファイルである。ファイル「#####.rpls」、「#####.vpls」は、ディレクトリBDAVの配下に設けられたディレクトリPLAYLISTのさらに配下に置かれている。
(5)のファイル「%%%%%.clpi」は、クリップ情報が格納されるファイルである。ファイル「%%%%%.clpi」は、ディレクトリBDAVの配下に設けられたディレクトリCLIPINFのさらに配下に置かれている。(6)のファイル「*****.m2ts」は、クリップAVストリームが格納される、クリップAVストリームファイルである。このクリップAVストリームファイルは、ファイル名の番号「*****」により、1つのクリップ情報ファイル「%%%%%.clpi」に対応付けられる。ファイル「*****.m2ts」は、ディレクトリBDAVの配下に設けられたディレクトリSTREAMのさらに配下に置かれる。
各ファイルについて、より詳細に説明する。(1)のファイル「info.bdav」は、ディレクトリBDAVの配下に唯一、設けられる。第10図は、ファイル「info.bdav」の一例の構造を表すシンタクスを示す。シンタクスをコンピュータ装置などのプログラムの記述言語として用いられるC言語の記述法に基づき示す。他のシンタクスを表す図において、同様である。
第10図において、ファイル「info.bdav」の内部は、機能別の情報毎にブロックが構成される。フィールドtype_indicatorには、文字列「BDAV」が格納され、このファイルがファイル「info.bdav」であることが示される。フィールドversion_numberには、このファイル「info.bdav」のバージョンが示される。ブロックUIAppInfoBDAV()には、ディレクトリBDAVの配下に関する情報が格納される。ブロックTableOfPlayLists()には、プレイリストの並び順に関する情報が格納される。ブロックMakersPrivateData()には、記録再生装置のメーカ固有の情報が格納される。
ファイル「info.bdav」の先頭には、各ブロックの先頭を表すアドレスが記述される。例えば、フィールドTableOfPlayLists_Start_addressには、ブロック「TableOfPlayLists()」の開始する位置がファイル内の相対バイト数で示される。
第11図は、ブロックUIAppInfoBDAV()の一例の構造を表すシンタクスを示す。フィールドlengthには、フィールドlength直後のフィールドからこのブロックUIAppInfoBDAV()の最後までの長さがバイトで示される。フィールドBDAV_character_setには、このブロックUIAppInfoBDAV()内のフィールドBDAV_nameに記録されている文字列の文字セットが示される。文字セットとしては、ASCII、Unicodeなどが選択できる。
フラグBDAV_protect_flagは、ディレクトリBDAVの配下に置かれるコンテンツを、ユーザに制限無しに見せて良いか否かを示す。例えば、このフラグが値「1」にセットされており、且つ、ユーザが正しく暗証番号PIN(Personal Identification Number)を入力できた場合に、ディレクトリBDAVの配下に置かれたコンテンツをユーザに見せることができるものとする。一方、フラグBDAV_protect_flagが値「0」にセットされている場合には、ユーザによる暗証番号PINの入力が無くても、ディレクトリBDAVの配下に置かれたコンテンツをユーザに見せることができる。
暗証番号PINは、フィールドPINに記録される。暗証番号PINは、例えば4桁の0〜9の数字からなり、上述のように再生制御を有効にした場合に必要となる暗証番号を表す。暗証番号PINのそれぞれの数字は、例えばISO(International Organization for Standarization)/IEC(International Electrotechnical Commission)646の規定に従って符号化される。
このブロックUIAppInfoBDAV()に示される以上の情報により、ディレクトリBDAVに対する再生制限が規定される。なお、詳細は後述するが、個々のプレイリストに対する再生制限については、ファイル「#####.rpls」、「#####.vpls」内に示されるブロックUIAppInfoPlayList()の中で定義されるフラグplayback_control_flagによって規定される。
この例では、ディレクトリBDAVの配下のコンテンツの再生を再開する際に、優先して再生すべきプレイリストを指定する、レジューム機能を用いることができる。このレジューム機能は、前回視聴を中断した箇所から再生を再開したい場合などに使うことを想定している。
第11図において、フラグresume_valid_flagは、このレジューム機能の有効/無効を示す。例えば、このフラグが値「0」にセットされている場合には、レジューム機能は無効とされる。このフラグが値「1」にセットされている場合には、レジューム機能が有効とされ、フィールドresume_PlayList_file_nameで指定されるプレイリストを、優先して再生すべきプレイリストとして扱う。
フィールドref_to_menu_thumbnail_indexは、このディレクトリBDAVを代表するサムネイル画像が存在する場合、そのサムネイル画像を特定するサムネイル番号が格納される領域である。Blu−ray Discの規格では、ディレクトリBDAVを代表する静止画を特にメニューサムネイルと呼ぶ。フィールドref_to_menu_thumbnail_indexで指定されるインデックスthumbnail_indexを持つサムネイル画像がこのディレクトリBDAVのメニューサムネイルとなる。
フィールドBDAV_name_lengthは、フィールドBDAV_nameに示されるディレクトリBDAV名のバイト長を示す。このフィールドBDAV_nameにおいて、左から、フィールドBDAV_name_lengthで示されるだけのバイト数が有効な文字列であり、それがこのディレクトリBDAVの名前を示す。なお、フィールドBDAV_nameの中で、フィールドBDAV_name_lengthで示された有効な文字列の後のバイト列には、どのような値が入っていても良い。
第12図は、ブロックTableOfPlayLists()の一例の構造を表すシンタクスを示す。フィールドnumber_of_PlayListsには、このディレクトリBDAVの配下に置かれたプレイリストの数が示される。このプレイリスト数をループ変数とする、次に続く「for」文のループにおいてフィールドPlayList_file_nameにより示されるプレイリストの並びが、プレイリスト一覧表示画面などに表示される際のプレイリストの順序を示す。プレイリストは、フィールドPlayList_file_nameにより、「#####.rpls」や「#####.vpls」といったファイル名で指定される。
ファイル「#####.rpls」および「#####.vpls」は、上述したように、ディレクトリPLAYLISTの配下に置かれる。これらのファイルは、1つのプレイリストと一対一に対応している。
第13図は、ファイル「#####.rpls」および「#####.vpls」の一例の構造を表すシンタクスを示す。第13図において、ファイル「#####.rpls」および「#####.vpls」の内部は、機能別の情報毎にブロックが構成される。フィールドtype_indicatorにこのファイルを示す文字列が格納され、フィールドversion_numberにこのファイルのバージョンが示される。
ブロックUIAppInfoPlayList()には、このプレイリストに関する属性情報が格納される。ブロックPlayList()には、このプレイリストを構成するプレイアイテムに関する情報が格納される。ブロックPlayListMark()には、このプレイリストに付されるマークの情報が格納される。ブロックMakersPrivateData()には、このプレイリストファイルを記録した装置の、メーカ固有の情報が格納される。ファイル「#####.rpls」および「#####.vpls」の先頭に設けられるフィールドPlayList_start_address、PlayListMark_start_addressおよびMakersPrivateData_start_addressには、それぞれ対応するブロックの先頭アドレスが例えば32ビットのアドレス情報として示される。
各ブロックの先頭アドレスがファイル「#####.rpls」および「#####.vpls」の先頭に示されるために、ブロックの前および/または後ろに、任意の長さのデータpadding_wordを挿入することができる。但し、ファイル「#####.rpls」および「#####.vpls」の最初のブロックであるブロックUIAppInfoPlayList()の開始位置は、ファイルの先頭から320バイト目に固定される。
第14図は、ブロックUIAppInfoPlayList()の一例の構造を表すシンタクスを示す。ブロックUIAppInfoPlayList()は、プレイリストの再生において直接的に必要とされない、プレイリストに関する各種の属性情報が格納される。フィールドPlayList_character_setは、プレイリストに関する文字列情報の文字セットが指定される。
フラグplayback_control_flagには、情報表示やプレイリストの再生を暗証番号PINに基づき制限するか否かが指定される。例えばフラグplayback_control_flagが値「1」であれば、ユーザにより正しい暗証番号PINが入力されなければ、プレイリストのサムネイル画像などの情報表示や、プレイリストの再生ができないとされる。フラグwrite_protect_flagは、消去禁止フラグである。例えばこのフラグwrite_protect_flagが値「1」であれば、ユーザが容易にプレイリストを消去できないようなユーザインタフェースにする必要がある。フラグis_played_flagは、このプレイリストが再生済みであることを示す。フラグis_edited_flagは、このプレイリストが編集されたことを示す。
フィールドtime_zoneは、このプレイリストが記録された地点のタイムゾーンを示す。フィールドrecord_time_and_dateは、プレイリストの記録日時を示す。フィールドPlayList_duratronは、プレイリストの再生時間を示す。
フィールドmaker_IDおよびmaker_model_codeには、このプレイリストを最終更新した記録機のメーカおよび記録機をそれぞれ特定する情報が例えば番号で示される。フィールドchannel_numberには、記録したクリップAVストリームのチャンネル番号が示され、フィールドchannel_nameには、当該チャンネル名が示される。フィールドchannel_nameに示されるチャンネル名の長さがフィールドchannel_name_lengthに示される。フィールドchannel_nameの領域のうち、フィールドchannel_name_lengthで示される長さの文字列が有効となる。フィールドPlayList_nameには、フィールドPlayList_name_lengthに示される値を有効長としてプレイリスト名が示される。フィールドPlayList_detailには、フィールドPlayList_detail_lengthに示される値を有効長としてプレイリストの詳細情報が示される。
第15図は、ブロックPlayList()の一例の構造を表すシンタクスを示す。フィールドlengthは、フィールドlengthの直後のフィールドからこのブロックPlayList()の終端までのバイト長を示す。フィールドPL_CPI_typeは、このプレイリストが持つCPI(Characteristic Point Information:特徴点情報)の種類を示す。フィールドnumber_of_PlayItemsは、このプレイリストを構成するプレイアイテムの数を示す。フィールドnumber_of_SubPlayItemsは、このプレイリストに付けられているアフレコオーディオ用のプレイアイテム(サブプレイアイテム)の数を示す。詳細は省略するが、プレイリストは、所定の条件を満たす場合にだけ、サブプレイアイテムを持つことができる。
ブロックPlayItem()は、プレイアイテムの情報が格納される。ブロックSubPlayItem()は、サブプレイアイテムの情報が格納される。
第16図は、ブロックPlayItem()の一例の構造を表すシンタクスを示す。フィールドClip_Information_file_nameには、このプレイアイテムが参照しているクリップと一対一に対応するクリップ情報ファイル(拡張子がclpiであるファイル)のファイル名が文字列で示される。クリップ情報ファイルは、拡張子が「clpi」とされているファイルである。
フィールドClip_codec_identifierは、このプレイアイテムにより参照されるクリップの符号化方式を示す。この例では、フィールドClip_codec_Identifierは、値「M2TS」に固定的とされる。フィールドconnection_conditionは、このプレイアイテムが次のプレイアイテムとの間でどのような接続がされているかを示す情報である。フィールドconnection_conditionにより、プレイアイテムとプレイアイテムとの間が継ぎ目なくシームレスに再生できるか否かが示される。
フィールドref_to_STC_idは、このプレイアイテムにより参照されるクリップ内のシーケンスSTC_sequenceを指定する。シーケンスSTC_sequenceは、MPEG2 TS(Transport Stream)における時間軸の基準であるPCR(Program Clock Reference)が連続な範囲を表すBlu−ray Disc規格独自の構造である。シーケンスSTC_sequenceには、クリップ内で一意な番号STC_idが割り当てられる。このシーケンスSTC_sequence内では、不連続の無い一貫した時間軸を定義できるので、プレイアイテムの開始時刻および終了時刻を一意に定めることができる。各プレイアイテムの開始点と終了点は、同一のシーケンスSTC_sequenceに存在していなければならない。フィールドref_to_STC_idでは、番号STC_idによりシーケンスSTC_sequenceが指定される。
フィールドIN_timeおよびOUT_Timeは、このプレイアイテムにおける開始点および終了点の、シーケンスSTC_sequence上でのタイムスタンプpts(presentation_time_stamp)をそれぞれ示す。
ブロックBridgeSequnceInfo()には、ブリッジクリップ(Bridge−Clip)に関する情報が格納される。ブリッジクリップは、第17図に一例が示されるように、プレイアイテム間を継ぎ目無く、シームレスに再生する機能を実現する際に作成されるビットストリームである。前のプレイアイテムと現在のプレイアイテムとの継ぎ目の部分で、本来再生すべきビットストリームとは異なるビットストリーム、すなわちブリッジクリップを代わりに再生することで、2つのプレイアイテムをシームレスに再生することができる。
第18図は、ブロックPlayListMark()の一例の構造を表すシンタクスを示す。ブロックPlayListMark()は、マークの情報が格納されるデータ構造である。マークは、プレイリスト上の時刻を保持するための構造であって、マークを用いることにより、プレイリスト中への頭出し点の設定、プレイリストを細分化するチャプタの構造を設ける、などの機能が実現される。後述するグラフィクスプレーン上に描画された画像の表示開始/停止のタイミングを、マークを用いて指定することができる。
フィールドlengthは、フィールドlengthの直後のフィールドからブロックPlayListMark()の終端までのバイト長を示す。フィールドnumber_of_PlayList_marksは、プレイリスト中のマークの数を表す。「for」文での1回のループが1つのマークの情報を示す。フラグmark_invalid_flagは、このマークが有効であるか否かを示す。例えば、フラグmark_invalid_flagが値「0」でそのマークが有効であることが示され、値「1」であれば、そのマークの情報がデータベース上に存在するが、当該マークがユーザには見えない無効マークとされていることを示す。
フィールドmark_typeは、このマークの種類を表す。マークの種類としては、プレイリストのサムネイル画像(代表画)とする映像の位置を示すマーク、どこまで再生したかを示すレジュームマーク、頭出し点を示すチャプタマーク、ある区間の再生を飛ばして先に進むことを示すスキップマーク、グラフィクス画像の読み込み開始タイミングを示すマーク、グラフィクス画像の表示開始のタイミングを示すマーク、グラフィクス画像の表示停止のタイミングを示すマークなどがある。
フィールドmark_name_lengthは、後述するフィールドmark_nameのデータ長を示す。フィールドmaker_IDは、このマークを作成した記録機の製造者を示す。これは、製造者独自のマークを識別する際に用いられる。フィールドref_to_PlayItem_idには、このマークにより指示される時刻がどのプレイアイテム上に存在するかが示される。フィールドmark_time_stampは、このマークにより指示される時刻が示される。
フィールドentry_ES_PIDには、このマークがどのエレメンタリストリームすなわち映像データおよび/または音声データが符号化されたストリームに対して付与されたものかが示される。フィールドref_to_menu_thumbnail_indexおよびフィールドref_to_mark_thumbnail_indexは、マークを視覚的に表すサムネイル画像を示す。サムネイル画像としては、例えばそのマークにより指定される時刻の映像を静止画として抜き出した画像が考えられる。
フィールドdurationには、マークが時間軸上で長さを持つ場合に使われる。例えばスキップマークであれば、どのくらいの時間ジャンプをするかがフィールドdurationにより指定される。
フィールドmakers_informationは、製造者独自の情報を記録するための領域である。フィールドmark_nameには、マークに名前をつけた際、その名前を格納するための領域であり、サイズが上述のフィールドmark_name_lengthで指定される。
第19図は、ファイル「%%%%%.clpi」の一例の構造を表すシンタクスを示す。上述したように、ファイル「%%%%%.clpi」は、ディレクトリCLIPINFの配下に置かれ、各AVストリームファイル(ファイル「*****.m2ts」)毎に作られる。ファイル「%%%%%.clpi」の内部は、機能別の情報毎にブロックが構成される。フィールドtype_indicatorにこのファイルを示す文字列が格納され、フィールドversion_numberにこのファイルのバージョンが示される。
ブロックClipInfo()には、クリップに関する情報が格納される。ブロックSequenceInfo()には、MPEG2システムにおけるトランスポートストリームの時刻基準を表すPCRの不連続点に関する情報が格納される。ブロックProgramInfo()には、MPEG2システムのプログラムに関する情報が格納される。ブロックCPI()には、ランダムアクセス開始可能点などの、AVストリーム中の特徴的な箇所を表す特徴点情報CPIに関する情報が格納される。ブロックClipMark()には、クリップに付された頭出しのためのインデックス点やコマーシャルの開始および/または終了点などのマーク情報が格納される。ブロックMakersPrivateData()には、記録機の製造者独自の情報が格納される。
これら各ブロックのファイル「%%%%%.Clpi」中での先頭を表すアドレス情報が、当該ファイルの先頭部分にフィールドSequenceInfo_start_address、ProgramInfo_start_address、CPI_start_address、ClipMark_start_addressおよびMakersPrivateData_start_addressとして示される。
BDAVフォーマットは、以上に概略的に説明したようなデータ構造を持つことにより、クリップAVストリーム中の再生したい部分を開始および終了点の組で指定したプレイアイテムの並びでプレイリストを構築し、ユーザが認識するひとまとまりの再生単位を管理することが可能となる。
2.BD−ROMフォーマットの概要説明
次に、この発明の実施の一形態について説明する。この発明では、上述したBDAVフォーマットを拡張し、再生専用ディスク(BD−ROM:Blu−ray Disc−Read Only Memory)に適したフォーマットを構築する。拡張されたBDAVフォーマットを、BDMVフォーマットと称する。
ディスクの内容を提示するメニュー画面を実現するためのプレーン構成を説明する。コンテンツ制作者側がプレイリストの再生順序を指定できるようにするためのシナリオ構造を追加する。そのシナリオ構造において、再生専用ディスクに特徴的なスチル(一時停止)、ランダム・シャッフル再生、マルチアングルなどの機能を実現するために必要なデータと、その格納方法について説明する。
2−1.プレーンについて
この発明の実施の一形態では、画像の表示系について、第20図に一例が示されるようなプレーン構成を取る。動画プレーン10は、最も後ろ側(ボトム)に表示され、プレイリストで指定された画像(主に動画データ)が扱われる。字幕プレーン11は、動画プレーン10の上に表示され、動画再生中に表示される字幕データが扱われる。グラフィクスプレーン12は、最も前面に表示され、メニュー画面を表示するための文字データやボタンを表すビットマップデータなどのグラフィクスデータが扱われる。1つの表示画面は、これら3つのプレーンが合成されて表示される。
従来のDVDビデオと異なる特徴的な点は、従来の技術で説明した字幕やメニュー画面、ボタンなどが表示されるサブピクチャを、字幕プレーン11およびグラフィクスプレーン12とに分離し、字幕とボタンとをそれぞれ独立的に制御できるようにしたことである。従来のDVDビデオでは、メニュー画面やボタンなどのグラフィクス表示と、字幕表示とを、同じ仕組みで制御しており、これらを同一プレーン上に表示していた。同時に表示できるビットマップ画像は、1枚に限られていた。そのため、DVDビデオでは、複数のビットマップ画像を同時に表示することができなかった。この発明では、字幕を表示する字幕プレーン11と、グラフィクス表示を行うグラフィクスプレーン12とをそれぞれ独立的に設けることで、DVDビデオの持つ問題点を解消している。
字幕プレーン11およびグラフィクスプレーン12が、“Blu−ray Disc Rewritable Format Ver1.0 part3”に対する拡張部分であると考えることができる。
動画プレーン10、字幕プレーン11およびグラフィクスプレーン12は、それぞれ独立して表示が可能とされ、第21図に一例が示されるような解像度および表示可能色を有する。動画プレーン10は、解像度が1920画素×1080ラインで1画素当たりに換算したデータ長が16ビットであって、輝度信号Y、色差信号Cb、Crが4:2:2のシステム(以下、YCbCr(4:2:2))とされる。YCbCr(4:2:2)は、各画素当たり輝度信号Yが8ビット、色差信号Cb、Crがそれぞれ8ビットで、色差信号Cb、Crが水平2画素で一つの色データを構成すると見なすカラーシステムである。
字幕プレーン11は、1920画素×1080ラインで各画素のサンプリング深さが8ビットとされ、カラーシステムは、256色のパレットを用いた8ビットカラーマップアドレスとされる。
グラフィクスプレーン12は、解像度が1920画素×1080ラインで各画素のサンプリング深さが8ビットとされ、カラーシステムは、256色のパレットを用いた8ビットカラーマップアドレスとされる。
上述では、字幕プレーン11とグラフィクスプレーン12のカラーシステムを、256色のパレットを用いた8ビットカラーマップアドレスとしたが、この例に限定されない。色数については、サンプリング深さを変えてパレットの色数を増やせばよい。例えばサンプリング深さを12ビットとすれば、パレットで使用可能な色数を4096色とすることができる。サンプリング深さを24ビットとして、パレットを持たずに各画素が色情報を持つようにしたYCbCr(4:4:4)およびRGB(4:4:4)も、同様の仕組みで可能である。
グラフィクスプレーン12および字幕プレーン11は、256段階のアルファブレンディングが可能とされており、他のプレーンとの合成の際に、透明度を256段階で設定することが可能とされている。透明度の設定は、画素毎に行うことができる。以下では、透明度αが(0≦α≦1)の範囲で表され、透明度α=0で完全に透明、透明度α=1で完全に不透明であるものとする。
字幕プレーン11では、例えばPNG(Portable Network Graphics)形式の画像データが扱われる。グラフィクスプレーン12でも、PNG形式の画像データを扱うことができる。PNG形式は、1画素のサンプリング深さが1ビット〜16ビットとされ、サンプリング深さが8ビットまたは16ビットの場合に、アルファチャンネル、すなわち、それぞれの画素成分の透明度情報(アルファデータと称する)を付加することができる。サンプリング深さが8ビットの場合には、256段階で透明度を指定することができる。このアルファチャンネルによる透明度情報を用いてアルファブレンディングが行われる。256色までのパレットイメージを用いることができ、予め用意されたパレットの何番目の要素(インデックス)であるかがインデックス番号により表現される。
字幕プレーン11およびグラフィクスプレーン12で扱われる画像データは、PNG形式に限定されない。JPEG方式など他の圧縮符号化方式で圧縮符号化された画像データや、ランレングス圧縮された画像データ、圧縮符号化がなされていないビットマップデータなどを扱うようにしてもよい。
第22図は、上述の第20図および第21図に従い3つのプレーンを合成する一例の構成を示す。動画プレーン10の動画データが422/444変換回路20に供給される。動画データは、422/444変換回路20でカラーシステムがYCbCr(4:2:2)からYCbCr(4:4:4)に変換され、乗算器21に入力される。422/444変換回路20と乗算器21との間に解像度変換回路を挿入し、動画データの解像度を変換するようにしてもよい。
字幕プレーン11の画像データがパレット22に入力され、RGB(4:4:4)の画像データとして出力される。この画像データに対してアルファブレンディングによる透明度が指定されている場合には、指定された透明度α1(0≦α1≦1)がパレット22から出力される。
第23図は、パレット22の入出力データの一例を示す。パレット22には、例えばPNG形式のファイルに対応したパレット情報がテーブルとして格納される。パレット22からは、入力された8ビットの画素データをアドレスとして、インデックス番号が参照される。このインデックス番号に基づき、それぞれ8ビットのデータからなるRGB(4:4:4)のデータが出力される。それと共に、パレット22からは、透明度を表すアルファチャンネルのデータが取り出される。
第24図は、パレット22に格納される一例のパレットテーブルを示す。256個のカラーインデックス値〔0x00〕〜〔0xFF〕(〔0x〕は16進表記であることを示す)のそれぞれに対して、各々8ビットで表現される三原色の値R、GおよびBと、透明度αとが割り当てられる。パレット22は、入力されたPNG形式の画像データに基づきパレットテーブルが参照され、画像データにより指定されたインデックス値に対応する、それぞれ8ビットのデータからなるR、GおよびB各色のデータ(RGBデータ)と、透明度αとを画素毎に出力する。後述するパレット26にも、同様のパレットテーブルが格納される。
パレット22から出力されたRGBデータは、RGB/YCbCr変換回路29に供給され、各データ長が8ビットの輝度信号Yと色信号Cb、Crのデータに変換される(以下、まとめてYCbCrデータと称する)。これは、以降のプレーン間合成を共通のデータ形式で行う必要があるためで、動画データのデータ形式であるYCbCrデータに統一している。
RGB/YCbCr変換回路29から出力されたYCbCrデータおよび透明度データα1とがそれぞれ乗算器23に入力される。RGB/YCbCr変換回路29と乗算器23との間に解像度変換回路を挿入し、YCbCrデータの解像度を変換するようにしてもよい。乗算器23では、入力されたYCbCrデータに透明度データα1が乗ぜられる。乗算結果は、加算器24の一方の入力端に入力される。乗算器23では、YCbCrデータにおける輝度信号Y、色差信号Cb、Crのそれぞれについて、透明度データα1との乗算が行われる。透明度データα1の補数(1−α1)が乗算器21に供給される。
乗算器21では、422/444変換回路20から入力された動画データに透明度データα1の補数(1−α1)が乗ぜられる。乗算結果は、加算器24の他方の入力端に入力される。加算器24において、乗算器21および23の乗算結果が加算される。これにより、動画プレーン10と字幕プレーン11とが合成される。加算器24の加算結果が乗算器25に入力される。
グラフィクスプレーン12の画像データも字幕プレーン11と同様に、パレットテーブル26によりRGB(4:4:4)のデータが出力され、RGB/YCbCr変換回路27に入力される。グラフィクスプレーン12の画像データのカラーシステムがRGB(4:4:4)である場合には、カラーシステムがYCbCr(4:4:4)に変換されてRGB/YCbCr変換回路27から出力される。RGB/YCbCr変換回路27から出力されたYCbCrデータが乗算器28に入力される。RGB/YCbCr変換回路27と乗算器28との間に解像度変換回路を挿入し、YCbCrデータの解像度を変換するようにしてもよい。
パレット26において、インデックス値に対してアルファブレンディングによる透明度が指定されている場合には、指定された透明度α2(0≦α2≦1)がパレット26から出力される。透明度データα2は、乗算器28に供給される。乗算器28では、RGB/YCbCr変換回路27から入力されたYCbCrデータに対し、輝度信号Y、色差信号Cb、Crのそれぞれについて、透明度データα2との乗算が行われる。乗算器28による乗算結果が加算器29の一方の入力端に入力される。透明度データα2の補数(1−α2)が乗算器25に供給される。
乗算器25では、加算器24の加算結果に対して透明度データα2の補数(1−α2)が乗ぜられる。乗算器25の乗算結果は、加算器27の他方の入力端に入力され、上述した乗算器28による乗算結果と加算される。これにより、動画プレーン10と字幕プレーン11との合成結果に対して、グラフィクスプレーン12が合成される。
字幕プレーン11およびグラフィクスプレーン12において、例えば、表示すべき画像の無い領域の透明度α=0と設定することで、そのプレーンの下に表示されるプレーンを透過表示させることができる。そうすることにより、動画プレーン10に表示されている動画データを、字幕プレーン11やグラフィクスプレーン12の背景として表示することができる。
なお、この第22図に示される構成は、ハードウェアおよびソフトウェアの何れでも実現可能なものである。
上述では、グラフィクスプレーン12の解像度を1920画素×1080ライン、カラーシステムを256色のカラーパレットを用いた8ビットカラーマップアドレスとしたが、グラフィクスプレーン12の解像度および色数は、上述に限定されない。
例えば、解像度を960画素×540ラインとし、サンプリング深さを24ビットとして各画素にRGB各色にそれぞれ8ビットの色情報を持たせ、さらに各画素に8ビットのアルファデータを持たせるようにできる。使用可能な色数が上述の256色に比べて格段に増大し、表現力が増す。画素数が減るのでプレーンの書き換え速度が低下することもない。グラフィクスプレーン12の用途を、将来的に自然画や高速のアニメーションの描画に拡張した際に、有用であると考えられる。
この例では、上述の1920画素×1080ラインの例に対して全体の画素数が1/4になる一方、各画素毎のデータ量が8ビットから32ビットと4倍になるので、グラフィクスプレーン12全体のデータ量に変化がない。そのため、追加のメモリは必要なく、フレームメモリの使用方法を変えるだけで容易に実現可能である。
また、RGB各色にそれぞれ8ビットずつの色情報を持たせており、表示可能色数が十分とされるため、第22図におけるパレット22を省略できる。図示は省略するが、グラフィクスプレーン12の画像データは、直接的にRGB/YCbCr変換回路27に入力されることになる。アルファデータα2は、RGB/YCbCr変換回路27の前で抜き出されて、乗算器28に供給される。
グラフィクスプレーン12と合成される動画プレーン10および字幕プレーン11の解像度は、1920画素×1080ラインのままである。実際の表示においては、動画プレーン10または字幕プレーン11の例えば2画素×2ラインからなる4画素に対して、解像度を1/4にしたグラフィクスプレーン12の1画素を繰り返し表示させ、見かけ上の解像度を合わせた後に、動画プレーン10および字幕プレーン11との合成を行う。
以上のようなプレーンを設定することで、再生専用規格に必要なメニュー画面とボタンの表示を可能とする。メニュー画面上のボタンが選択されると、そのボタンに対応したプレイリストが再生されることになる。このとき、プレイリスト間がどのように結び付けられているかという情報がディスク上に記録されていることが必要となる。節2−2でメニュー画面について説明し、節2−3および節2−4でプレイリスト間の結びつき(リンク)を定義するシナリオについて説明する。
2−2.メニュー画面について
グラフィクスプレーン12には、ユーザに対して操作を促す画面、例えばメニュー画面を表示させることができる。第25図は、グラフィクスプレーン12に表示されるメニュー画面60の一例を示す。メニュー画面60は、文字や画像を特定の位置に表示させ、ユーザが選択や実行を指示することで新たな動作が開始される「リンク」や「ボタン」を配置することができる。
「リンク」は、例えば、文字列や画像データに対して所定のファイルへのアクセス方法を示す記述を設定し、ユーザがポインティングデバイスなどを用いて画面に表示された当該文字列や画像データ上を指定することで、当該文字列や画像データに設定されたアクセス方法に従って当該ファイルにアクセスできるようにしたものである。「ボタン」は、例えば、「リンク」において通常の状態、選択された状態および押された状態の3種類の画像データを用意し、ユーザにより当該ボタン画像が指定された際に、3種類の画像データの表示を切り換えて、ユーザが行った操作をユーザ自身に認識しやすくしたものである。
「リンク」や「ボタン」に対する指定動作は、マウスを用いて画面上のカーソル表示を移動させ、「リンク」による文字列や画像、「ボタン」による画像上で、マウスボタンを1または複数回押すクリック動作を行うことでなされる。マウス以外のポインティングデバイスによっても、同様の動作を行うことができる。これに限らず、リモートコントロールコマンダやキーボードのキー操作により、「リンク」や「ボタン」の指定を行うこともできる。方向キーなど所定のキーで指定を行いたい「リンク」や「ボタン」を選択し、決定キーなどにより選択された「リンク」や「ボタン」を指定する。
第25図の例では、グラフィクスプレーン12上に表示されたメニュー画面60の上部に、画像データとしてタイトル61が表示される。タイトル61に続けて、リンクとしての選択項目62A、62B、62Cおよび62Dが表示される。例えばリモートコントロールコマンダのキー操作により、選択項目62A、62B、62Cおよび62Dのうち1つを選択し指定することで、指定された選択項目にリンクとして設定されたファイルがアクセスされる。
メニュー画面60の下部に、字幕の表示の有無や、出力される音声を例えば英語および日本語から選択するためのボタン64および65が表示される。これらボタン64や65を上述のように操作することで、それぞれの設定を行う画面を表示するためのファイルがアクセスされ、所定の画面表示がなされる。
メニュー画面60の左下部分には、項目の選択方法を示す文字列63が表示される。この文字列63も、グラフィクスプレーン12上の表示である。
第25図に一例が示されるようなメニュー画面60を表示するためには、画面の表示方法やリンク情報などを記述可能な、何らかの記述言語が必要とされる。Blu−ray Discによる、このようなメニュー画面表示を可能とする記述言語としては、様々な方式のものが考えられるが、以下の説明では、下記の2種類の記述言語を用いた例について、それぞれ説明する。
(1)DVDビデオのナビゲーションコマンドを基に変更・拡張を加えたコマンド体系に、字幕・ボタン用の独自の表示制御コマンドを加えた命令群を追加した記述言語。以下、独自コマンドと称する。
(2)インターネット上のWWW(World Wide Web)などで広く普及している記述言語である、HTML(Hyper Text Markup Language)と、HTMLと親和性の高いスクリプト言語であるECMAスクリプト。
2−3.シナリオについて
さて、前節で述べたようなBlu−ray Discのメニュー画面60では、例えばプレイリストの一覧が画像データや文字列、ボタンなどで表示され、あるプレイリストを指定することで、指定されたプレイリストがディスクから読み出され再生されることが期待される。
第25図の例では、メニュー画面60に対してプレイリストの一覧が表示される。このメニュー画面60およびメニュー画面60上の選択項目を選択した際に再生される映像・音声は、実際には、複数のプレイリストが並んだ構造によって構成されている。メニューの一項目を構成する複数のプレイリスト内で、プレイリストの関連付けを行うことで、ストーリーを分岐させる仕組みを実現することができる。ストーリーを分岐できるようにすることで、ユーザの選択によってストーリーが変化していくマルチストーリー機能や、プレーヤの設定言語に従って自動的に適切な言語を再生する機能や、ユーザの年齢に応じてシーンを差し替えるパレンタル機能を実現することができる。
このような機能は、記録済みのディスクにおいて特に有用であって、テレビジョン放送の記録/再生が主目的である現行のBlu−ray Disc規格では想定されていない。
以下では、この複数のプレイリストが並べられた構造を、シナリオと称する。第26図は、独自コマンドを用いた場合のシナリオ70の一例の内部構造を示す。このシナリオ70は、複数のプレイリスト73A〜73Mを含む。また、シナリオ70は、グラフィクスプレーン12を用いて分岐選択画面を表示する箇所が2箇所(画面80Aおよび80B)設けられている。画面80Aは、分岐選択画面を表示するためのグラフィクスデータ74Aとプレイリスト73Cを有する。同様に、画面80Bは、分岐選択画面を表示するためのグラフィクスデータ74Bとプレイリスト73Jを有する。
シナリオは、プレイリストの並びを決めると共に、グラフィクスプレーン12に対する表示のタイミングを規定する。グラフィクスプレーン12への表示のタイミングは、グラフィクスプレーンに表示する画像に対して付加された表示制御命令によって規定することができる。
第26図の例では、メニュー画面60はシナリオ70における画面80Aに対応する。メニュー画面60における選択項目(例えば選択項目62A)は、グラフィクス74Aによって構成されている。メニュー画面60において選択項目62Aが指定されると、選択項目に対応したプレイリスト73Dが再生されることになる。
第26図のシナリオ70では、先ず、ディスクがプレーヤに挿入されると、プレイリスト73Aが再生される。プレイリスト73Aの再生が終了されると、続けてプレイリスト73Bが再生され、プレイリスト73Bの再生が終了されると、プレイリスト73Cが再生され、グラフィクスデータ74Aが読み出されて、ユーザにストーリーの分岐選択を促す画面80Aが表示される。
画面80Aが表示された以降は、ユーザの選択に基づきストーリーが分岐される。この第26図の例では、第1の選択により、画面80Aの後、プレイリスト73D、73E、73Fの順に再生され、全体の再生が終了される。プレイリスト73Fの再生が終了された後、メインのメニュー画面(例えば上述したメニュー画面60)に戻るようにしてもよい。
画面80Aにおける第2の選択では、画面80Aの後、プレイリスト73Gが再生される。プレイリスト73Gは、所定のタイミングにマークが設定されていてもよい。プレイリスト73Gが再生されると、再生装置自身の設定やユーザによる他のシナリオや分岐選択画面などでの選択に基づき、プレイリスト73Gのマーク位置で分岐するか、プレイリスト73Gを最後まで再生するかが制御される。プレイリスト73Gが最後まで再生される場合には、プレイリスト73Gの再生終了後、プレイリスト73M、73Iと再生され、プレイリスト73Jがさらに再生される。
プレイリスト73Gにおいてマーク位置で分岐された場合には、次にプレイリスト73K、73Lと再生され、プレイリスト73Lの再生が終了されたら、次に、プレイリスト73Iに設定されたマーク位置から再生が継続される。
プレイリスト73Jは、グラフィクスデータ74Bが読み出されて、ユーザにストーリーの分岐選択を促す画面80Bが表される。画面80Bにおける第1の選択では、プレイリスト73Fが再生される。画面80Bの第2の選択では、プレイリスト73Kに設定されているマーク位置からの再生が行われる。
シナリオの再生において、マークの検出、ユーザからの入力、プレーヤの動作変更の検出がされた時の動作は、プレイリスト毎にコマンド列(プログラム)が用意されており、そのプログラムをプレーヤが実行することにより行われる。
次に、記述言語としてHTMLおよびECMAスクリプトを用いた場合のシナリオ構造について、第27図を用いて説明する。第27図において、第26図と共通する部分には同一の符号を付し、繁雑さを避けるために詳細な説明を省略する。
第27図に示されるシナリオ70’は、第26図におけるシナリオ70と同様のメニューや分岐選択を有し、シナリオ70と同様に進行可能である。シナリオ70’は、複数のプレイリスト73A〜73Mを含み、グラフィクスプレーン12を用いて分岐選択画面を表示する箇所が2箇所(画面80Aおよび80B)設けられる。
画面80Aは、分岐選択画面を表示するためのグラフィクスデータ74Aとプレイリスト73Cを有する。画面80Bは、分岐選択画面を表示するためのグラフィクスデータ74Bとプレイリスト73Jを有する。シナリオ70’は、プレイリストの並びを決めると共に、グラフィクスプレーン12に対する表示のタイミングを規定する。グラフィクスプレーン12への表示タイミングは、プレイリスト中のマークを用いて規定することができる。
マークの検出、ユーザからの入力、プレーヤの動作変更の検出は、イベントドリブンモデルに基づきなされる。プレイリストの再生が開始された、プレイリストの再生が終了された、プレイリストの再生中にマークが検出された、リモートコントロールコマンダのキー操作などによりユーザからの入力があった、などによりイベントが発生される。特定のイベントがきっかけになって実行されるイベントハンドラをプログラム中に用意しておくことで、プレーヤにおいて、当該イベントにより期待される動作が実行される。
第27図に一例が示されるシナリオ70’には、2つのイベントハンドラ71および72が設定されている。これらのうち、イベントハンドラ71は、シナリオ70の全体にわたって有効なイベントハンドラが記述される、グローバルなイベントハンドラ定義である。
例えば、シナリオ70’内のプレイリスト73A〜73Mの何れが再生中であっても、リモートコントロールコマンダに設けられたメニューボタンが押されたら、シナリオの一覧が表示されるメニュー画面60が表示される。この、メニュー画面60を表示するためのプレイリストに再生処理が移行される動作を実現したい場合について考える。この場合、リモートコントロールコマンダのメニューボタンが押されたときに発生するイベント(メニューボタン押下イベント)に対応するイベントハンドラであり、メニュー画面60を表示させるプレイリストに処理が移行される命令を、グローバルなイベントハンドラ71として記述する。
イベントハンドラ72は、特定のプレイリストの再生中にのみ、あるいは、特定のユーザ入力画面が表示されている間のみに実行され得るイベントハンドラが記述される、ローカルなイベントハンドラ定義である。例えば、分岐選択画面である画面80Aに表示されているリンクがユーザにより指定されたときに、別のプレイリストを再生するという動作は、リンクが指定されたというイベントに対して、プレイリストの再生を開始する命令をローカルなイベントハンドラ72として記述するすることで、実現することができる。
このようなイベントハンドラ定義は、ECMAスクリプトを用いて記述される。ECMAスクリプトは、ECMA(European Computer Manufacturers Association)により定められた、JavaScript(登録商標)に基づいたクロスプラットフォーム用のスクリプト言語である。ECMAスクリプトは、HTML文書との親和性が高いことと、独自のオブジェクトの定義が可能である。
2−4.シナリオの分類
シナリオは、後述するように、BDMVディレクトリに一つ定義され、1または複数のプレイリストから構成される。ここで、シナリオの構成の分類について第28図および第29図A、第29図Bおよび第29図Cを用いて説明する。シナリオの構成は、プレイリスト同士の接続を基に考えると、第28図に示されるように、(1)シングルプレイリスト、(2)シーケンシャルプレイリスト、(3)マルチプレイリスト、の3種類に大別することができる。
(1)のシングルプレイリストは、第29図Aに一例が示されるように、単一のプレイリストで構成されるシナリオである。タイムラインが定義可能で、シナリオ再生中の割り込みが無い。コンテンツが映画であれば、ディスクのローディング後に映画本編だけが再生されるようなシナリオである。
(2)のシーケンシャルプレイリストは、第29図Bに一例が示されるように、複数のプレイリストが分岐無しに直列的に並べられて構成されるシナリオである。各プレイリストは、プレイリストの末尾と次のプレイリストの先頭とが接続されるように並べられる。各プレイリストを通じてのタイムラインが定義可能である。コンテンツが映画であれば、メニュー画面と映画本編との組み合わせからなるようなシナリオである。ディスクのローディング後にメニュー画面を表示させるプレイリストが実行され、メニュー画面に対して映画本編の再生が指示されると、次のプレイリストが実行され、映画の本編が再生される。
(3)のマルチプレイリストは、第29図Cに一例が示されるように、プレイリストの分岐や収束による接続を含むシナリオである。プレイリストを通じてのタイムラインを定義することができず、例えば各プレイリスト内にタイムラインが定義される。マルチプレイリストによれば、ユーザ入力によって再生内容が変化するようなインタラクティブ性やゲーム性を実現することができる。コンテンツが映画の場合には、同一シーンを様々なアングルで収録し、再生時にユーザの指示により選択して鑑賞できるようにしたマルチアングルを実現するようなシナリオである。
再生専用メディアの場合、シナリオは、BDMVディレクトリに一つ定義されるが、ユーザに対しては、シナリオをより細分化した単位を見せる必要がある。但し、プレイリストの単位がユーザの認識する単位と一致するとは限らない。例えば、一つのプレイリストに3本の映画が収録されているときには、各映画の頭出し点をユーザに見せる必要がある。プレイリストの構造とは独立した頭出し点(エントリポイント)を、タイトルおよび/またはチャプタと呼ぶことにする。
第30図を用いてタイトルおよびチャプタについて説明する。タイトルは、シナリオ中の任意の再生開始点を表す。この第30図の例では、プレイリスト470Aの先頭にタイトル1に設定されている。タイトル2は、プレイリスト470Dの途中に設定されている。プレイリスト470Aの先頭からタイトル2の直前までがタイトル1とされる。チャプタは、タイトルをさらに細分化した単位で、これもユーザが再生開始点として認識できる単位となる。タイトル1がチャプタによりさらに細分化される。第30図の例では、タイトル1に対してチャプタ1、2および3が設定され、タイトル1が3つに細分化されている。また、第30図に示されるように、タイトルおよびチャプタの位置は、プレイリストの途中を指定することもできる。
2−5.仮想プレーヤモデルについて
次に、シナリオ記述に従って動作する再生装置のモデルを考える。このモデル化された再生装置をBD(Blu−ray disc)仮想プレーヤと称し、このBD仮想プレーヤの構成の定義をBD仮想プレーヤモデルと称する。
第31図を用いて、BD仮想プレーヤモデルについて説明する。BD仮想プレーヤ30は、ディスクのローディング後、この発明で定義したシナリオ記述言語により記述されディスクに記録されたシナリオを、PBCプログラム40として読み込み、シナリオの記述に従い動作する。
BD仮想プレーヤ30は、この発明の実施の一形態により定義されるディスク状記録媒体を再生するもので、パーソナルコンピュータなどのコンピュータ環境上のオブジェクトである。コンピュータ環境は、汎用的なパーソナルコンピュータに限られず、この発明の実施の一形態により定義されるディスク状記録媒体などを再生するように専用的に構成された再生装置および/または記録再生装置に組み込まれたソフトウェア環境も含む。以下、この発明の実施の一形態により定義されるディスク状記録媒体を、ディスクと略称する。
BD仮想プレーヤ30の状態は、概略的には、プレイリストおよびグラフィクスを再生する状態Aと、再生が停止された状態Bの2つの状態に分類できる。ある状態から別の状態への遷移や、ある状態の中での次の動作の指定は、BD仮想プレーヤ30のオブジェクトに対するコマンドにより行われる。
状態Aは、複数の動作を含む。状態Aに含まれる動作としては、高速再生、逆転再生といった変速再生や、ディスク上の任意の時刻から再生する飛び込み再生といった特殊再生などが考えられる。BD仮想プレーヤ30においてグラフィクスプレーン12による表示がなされているときは、これら変速再生や特殊再生が制限されることがある。
PBC(Play Back Control)プログラム40は、例えばディスクに記録されているシナリオに対応する。詳細は後述するが、シナリオは、ディスクに記録されたプレイリストの再生方法や、メニュー画面の表示を指示する。PBCプログラム40とBD仮想プレーヤ30とは、API(Application Programming Interface)41を介してコマンドのやりとりを行い、ディスクに記録されたプレイリストを再生する。
より具体的には、BD仮想プレーヤ30の状態遷移の際には、PBCプログラム40により、API41を介して、BD仮想プレーヤ30において使用目的が定められたメモリとして定義された共通パラメータ32に対して、必要な情報が伝達される。この共通パラメータ32に対する値のセットは、PBCプログラム40とBD仮想プレーヤ30との間でAPI41を介してやりとりされるコマンドによって直接、あるいは、API41を介して実行されるプレーヤコマンド31から間接的に行うことができる。
この発明の実施の一形態では、BD仮想プレーヤ30は、イベントドリブンモデルに基づき制御される。BD仮想プレーヤ30の動作中には、様々なイベントが発生する。イベントは、ユーザによるキー入力やリモートコントロールコマンダによる操作、タイマによる割り込みなどにより、ハードウェア/OS(Operating System)50において発生され、BD仮想プレーヤ30に渡される。これに限らず、再生されたプレイリスト中のマークの検出や、プレーヤの動作変更の検出など、BD仮想プレーヤ30自身によりイベントが発生される場合もある。
発生されるイベントの種類は、BD仮想プレーヤモデルで定義されている。イベントが発生すると、発生したイベントに対応するイベントハンドラが実行される。BD仮想プレーヤに組み込まれているイベントハンドラが実行され、規格で規定されているプレーヤ動作が実行される。
BD仮想プレーヤ30における割り込みイベントは、(1)再生中のコンテンツから発せられるイベント、(2)ユーザからの割り込みにより発生されるイベント、(3)プレーヤの状態の変化により発生されるイベント、の3種類に大別される。
(1)の、再生中のコンテンツから発せられるイベントは、予め設定された割り込みであって、当該コンテンツの再生の度に、同一のタイミングで発生される。例えば、BD仮想プレーヤ30においてプレイリストを再生中に、プレイリスト中に記述されたマークで指し示したディスク上の時刻に到達すると、BD仮想プレーヤ30においてマーク検出の割り込みが発生される。スクリプトにおいてタイマが設定された場合に、設定された時刻や、当該スクリプトによりタイマ設定がなされた10秒後などにタイマ割り込みのイベントが発生される。
(2)の、ユーザからの割り込みによるイベントは、発生および発生タイミングの予測ができないイベントである。例えば、ユーザによるリモートコントロールコマンダのキー操作により、この割り込みイベントが発生される。この場合、ユーザが何時キー操作を行うかが分からないため、事前にそのタイミングを知ることができない。
(3)の、BD仮想プレーヤ30の状態変化によるイベントは、例えば、音声や字幕のストリーム変更を通知するためのイベントである。コンテンツの再生状態から停止状態へ、停止状態から再生状態への状態遷移でも、このイベントが発生される。このプレーヤの状態変化によるイベントは、上述した(1)の再生中のコンテンツから発せられるイベントや、(2)のユーザによる割り込みイベントに伴い引き起こされる場合も多い。上述の音声や字幕のストリーム変更の通知のイベントの例では、ユーザによるリモートコントロールコマンダなどのキー操作による割り込みイベントで、音声や字幕のストリームが変更され、この変更に伴うBD仮想プレーヤ30の状態遷移に基づき、変更通知のイベントが発生される。
記述言語としてHTMLおよびECMAスクリプトを用いた場合、グラフィクスプレーン12を用いた表示制御がHTML(Hyper Text Markup Language)4.0またはXHTML(eXtensible HTML)文書として記述され、グラフィクスプレーン12による表示画面に対するイベントは、HTML4.0の組み込みイベントが用いられる。また、HTML4.0の組み込みイベントでは不十分なイベントは、ECMAスクリプトを用いて記述される。
HTML形式とECMAスクリプトを組み合わせて用いる場合、イベントが発生すると、先ず、そのイベントが発生した要素に属性で指定されているイベントハンドラが文書中に存在するか否かで、処理が異なる。イベントハンドラが存在する場合は、そのイベントハンドラが実行される。イベントハンドラが存在しない場合は、文書中にグローバルなイベントハンドラが用意されているか否かが探される。その結果、若し、グローバルなイベントハンドラが当該文書中に存在すれば、そのイベントハンドラが実行される。文書中にスクリプト言語によるイベントハンドラの記述が無い場合には、BD仮想プレーヤ30において当該イベントに対して用意されたデフォルトのイベント処理が行われる。
イベントハンドラの記述方法としては、HTML文書における要素の属性として記述する方法と、ECMAスクリプトにおいてメソッドcaptureEventsを使って記述する方法とを用いることができる。
HTML文書を用いてイベントハンドラを記述する方法について説明する。この発明の実施の第1の形態によるBD仮想プレーヤ30では、HTML4.0に規定される組み込みイベントのうち、例えばイベントonload、イベントonunload、イベントonclickおよびイベントonkeypressを用いることができる。これらのイベントは、タグの要素中に属性として記述される。
イベントonloadは、利用者エージェントが1つのウィンドウまたは1対のタグ〈FRAMESET〉〈/FRAMESET〉で定義される全てのフレームを終了する際に発生される。例えば、メニュー画面の表示の際にイベントonloadが発生される。
ウィンドウは、HTMLの規定に基づきHTMLファイルを表示するブラウザアプリケーションにおける表示単位であり、フレームは、1つのウィンドウを分割して複数のHTMLファイルを表示させる際に用いられる枠組みである。フレーム内に表示されるHTMLファイルも含めてフレームと称する。このイベントonload属性は、要素BODYおよび要素FRAMESETと共に使用することができる。
イベントonunloadは、利用者エージェントが1つのウィンドウまたは1つのフレームから1つのHTML文書を除去する際に発生される。このイベントonunload属性は、要素BODYおよび要素FRAMESETと共に使用することができる。
イベントonclickは、ポインティングデバイスなどにより要素が指定された場合に発生される。例えば、マウスボタンのクリック操作を行った場合に、イベントonclickが発生される。このイベントonclick属性は、HTML4.0における殆どの要素と共に用いることができる。
イベントonkeypressは、キーが要素上で押されたり解放されたりする際に発生される。例えば、ある要素により定義される画面上の領域が選択状態のときに、キーボード上の所定のキーやリモートコントロールコマンダのキーが押された際に、イベントonkeypressが発生される。このイベントonkeypress属性は、HTML4.0における殆どの要素と共に用いることができる。
BD仮想プレーヤ30の動作を制御するためには、上述のHTMLによるイベントでは不十分であるため、独自のイベントを定義する必要がある。第32図A、第32図Bおよび第32図Cは、BD仮想プレーヤ30において独自に定義される一例のイベントを示す。このイベントは、ECMAスクリプトにより、HTML文書に埋め込まれて記述される。イベントハンドラを指定する属性名は、イベント名の先頭に「on」を付して示す。
イベントTimerFiredは、カウントダウンタイマの値が「0」になるか、カウントアップタイマの値が指定された値になったときに発生される。イベントPlayStoppedおよびイベントPlayStilledは、それぞれ再生の停止および一時停止により発生される。イベントStillReleasedは、一時停止が解除された際に発生される。イベントPlayPausedおよびイベントPauseReleasedは、それぞれユーザによる再生の一時停止および一時停止の解除の際に発生される。イベントPlayStartedは、再生が開始された際に発生される。イベントPlayRepeatedは、繰り返し再生時の先頭が検出された際に発生される。
イベントSPDisplayStatusChangedは、サブピクチャ(字幕)ストリームの表示/非表示状態が変化した際に発生される。イベントSelectedAudioChangedおよびイベントVideoStoppedは、それぞれ再生するオーディオストリームおよびビデオストリームが変わった際に発生される。
イベントScenarioStartedおよびイベントScenarioEndedは、それぞれシナリオの先頭および終端が検出された際に発生される。イベントPlayListStartedおよびイベントPlayListEndedは、それぞれプレイリストの先頭および終端が検出された際に発生される。イベントPlayItemStartedおよびイベントPlayItemEndedは、それぞれプレイアイテムの先頭および終端が検出された際に発生される。
イベントMarkEncounteredは、プレイリストの再生中にマークが検出された際に発生される。このイベントは、例えばグラフィクスプレーン12に画像データを表示する際に用いられる。共通パラメータ32に、検出されたマークの種類と番号とが格納される。
イベントButtonPressedは、画面上に配置されたボタンが押された際に発生される。例えば、グラフィクスプレーン12上に表示されたボタンを、キー操作やマウスのクリック操作などにより仮想的に押した場合に、イベントButtonPressedが発生される。
イベントValidPeriodStartedは、有効期間が開始された際に発生される。これは、リンクの選択有効期間を設定する際に用いることができる。イベントValidPeriodEndedは、有効期間が終了した際に発生される。これは、リンクの強制実行のときに用いることができる。
イベントKeyPressedは、リモートコントロールコマンダのキーが押されたときに発生される。押されたキーの種類は、イベントハンドラ内の「switch」文などで識別される。
シナリオ記述言語として独自コマンドを用いた場合、この独自コマンドとしてシナリオを実行するに当たって必要なイベントを予め言語として定義することができる。そのため、独自コマンドを用いてシナリオ記述を行う場合には、汎用なECMAスクリプトを用いる場合のように、シナリオの実行に特に適合したイベントをプログラム内で定義する必要は、無い。
2−6.コマンドについて
BD仮想プレーヤ30は、一連のコマンドを有し、これらのコマンドにより、BD仮想プレーヤ30における動作および状態、BD仮想プレーヤ30で扱うビデオストリーム、オーディオストリームおよびサブピクチャ(字幕プレーン11の画像データ)に関する情報取得や制御、共通パラメータ32に対する操作、タイマやキー入力の割り込みに応じた処理、グラフィクスプレーン12で扱う画像データの制御がそれぞれ定義される。
これらのコマンドは、第31図で既に説明した、BD仮想プレーヤ30におけるAPI41に実装される。PBCプログラム40の記述に基づきこれらのコマンドがAPI41を介して呼び出され、BD仮想プレーヤ30におけるディスク再生が制御される。PBCプログラム40の具体的な例については、後述する。
BD仮想プレーヤ30が有するコマンドは、シナリオ記述言語として独自コマンドを用いる場合と、HTMLおよびECMAスクリプトを用いる場合とで、多少異なる。先ず、シナリオ記述言語として独自コマンドを用いる場合のコマンドについて、第33図A、第33図B、第33図C、第33図D、第33図E、第33図F、第33図Gおよび第33図Hを用いて説明する。
再生開始位置指定に関するコマンドについて説明する。コマンドLinkPlayList(playListNumber)で、”playListNumber”で指定されたプレイリストの再生開始が指示される。コマンドLinkPlayItem(playListNumber,playItemNumber)で、指定のプレイリストの指定のプレイアイテムからの再生開始が指示される。”playItemNumber”は、”PlayItem_id”であり、値が「0」から始まる。”playItemNumber”に値「0」を指定することで、当該プレイアイテムが属するプレイリストの先頭から再生される。
コマンドLink(position)(object)で、シナリオ内での移動が指示される。現在移動中の箇所から前後のプレイリスト、プレイアイテムおよびチャプタに移動することがこのコマンドで指示される。なお、パラメータ”position”は、”prev”、”next”、”top”、”Parent”または”tail”の何れかの値を取り、パラメータ”object”で示される移動対象(プレイリスト、プレイアイテムまたはチャプタ)に対する移動方法が指示される。
コマンドExitで、シナリオ再生の停止が指示される。この場合、標準レジスタの値は、保持されない。コマンドRSMで、プレーヤ内のメモリに保存されているレジューム情報を呼び出し、レジスタにセットして再生を開始する。
プレーヤ状態の取得に関するコマンドについて説明する。コマンドgetMenuDescriptionLanguage()で、メニュー表示の際に用いられる言語が取得される。コマンドgetScenarioNumber()、コマンドgetPlayListNumber()およびコマンドgetChapterNumber()で、再生中のシナリオ番号、プレイリスト番号およびチャプタ番号がそれぞれ取得される。コマンドgetPlayerSupport()で、プレーヤのバージョン情報が取得される。
ビデオストリームに関するコマンドについて説明する。コマンドgetVideoStreamAvailability()で、指定のビデオストリームが含まれているか否かが取得される。コマンドsetVideoStreamNumber()で、デコードするビデオストリームが指定される。コマンドgetVideoStreamNumber()で、選択中のビデオストリームの番号が取得される。コマンドgetVideoStreamAttribute()で、選択中のビデオストリームの属性が取得される。ビデオストリームの属性は、例えば、そのビデオストリームの符号化方式、解像度、アスペクト比、アスペクト比が4:3のときのディスプレイモード、クローズドキャプションの有無である。コマンドsetAngleNumber()で、アングル番号が指定される。コマンドgetAngleNumber()で、選択中のアングル番号が取得される。コマンドgetMaxVideoStreams()で、ビデオストリームの最大数が取得される。
オーディオストリームに関するコマンドについて説明する。コマンドgetAudioStreamAvailability()で、指定のオーディオストリームが含まれているか否かが取得される。コマンドgetAudioStreamLanguage()で、指定のオーディオストリームの言語に関する情報が取得される。コマンドgetAudioStreamStatus()で、指定のオーディオストリームの状態が取得され、コマンドsetAudioStreamStatus()で、指定のオーディオストリームに対する状態のセットが指示される。オーディオストリームの状態は、例えば再生または非再生である。コマンドgetAudioStreamAttribute()で、指定のオーディオストリームの属性が取得される。
サブピクチャストリーム(字幕データ)ストリームに関するコマンドについて説明する。コマンドgetSPStreamAvailability()で、指定のサブピクチャストリームが含まれているか否かが取得される。コマンドgetSPStreamLanguage()で、指定のサブピクチャストリームで用いられている言語が取得される。コマンドgetSPDisplayStatus()で、サブピクチャストリームの表示状態が取得され、コマンドsetSPDisplayStatus()で、サブピクチャストリームの表示状態がセットされる。サブピクチャストリームの表示状態は、例えばサブピクチャストリームの表示のオン/オフである。コマンドgetSPStreamAttribute()で、指定のサブピクチャストリームの属性が取得される。サブピクチャストリームの属性は、例えばサブピクチャストリームの表示がアスペクト比4:3またはワイド画面の何れでなされるかである。
共通パラメータ32に関するコマンドについて説明する。図中では、レジスタリード/ライトとして記されている。コマンドclearReg()で、BD仮想プレーヤ30が内蔵しているメモリ領域すなわちレジスタについて、全レジスタの初期化が指示される。コマンドsetReg()で、指定のレジスタへの値のセットが指示される。コマンドgetReg()で、指定のレジスタからの値の読み出しが指示される。
タイマに関するコマンドについて説明する。コマンドsleep()で、指定された時間の処理の停止が指示される。コマンドsetTimeout()で、指定された時間後に関数や処理を実行することが指示される。コマンドsetInterval()で、指定された時間毎に処理を実行することが指示される。タイマに関するコマンドにおいて、時間はミリ秒単位で指定することができる。コマンドclearTimer()で、指定された登録タイマIDの処理の中止が指示される。コマンドpauseTimer()で、指定された登録タイマIDのタイマの一時停止が指示される。コマンドresumeTimer()で、指定された登録タイマIDのタイマを一時停止から再開することが指示される。
効果音に関するコマンドでは、コマンドplaySoundEffect(sound_id)で、指定の効果音を再生する。
この第33図A、第33図B、第33図C、第33図D、第33図E、第33図F、第33図Gおよび第33図Hに例示されるようなコマンドを、後述するポストコマンド領域やボタンコマンド領域に書くことにより、特定のプレイリストへのジャンプを実現することができる。コマンドは、この第33図A、第33図B、第33図C、第33図D、第33図E、第33図F、第33図Gおよび第33図Hに例示されるに止まらず、さらに他のコマンドを定義することも可能である。
シナリオ記述言語としてHTMLおよびECMAスクリプトを用いる場合のコマンドについて、第34図A、第34図B、第34図C、第34図D、第34図E、第34図F、第34図G、第34図H、第34図Iおよび第34図Jを用いて説明する。
プレーヤ動作に関するコマンドについて説明する。コマンドplayScenario(scenarioNumber,[scenarioTime])で、”scenarioNumber”で指定されるシナリオの再生が指示される。”scenarioNumber”は、実際には、シナリオ構成を記述したファイルなどの場所を示すURI(Universal Resource Identifier)になる。コマンドplayPlayList(playListNumber)で、”playListNumber”で指定されたプレイリストの再生が指示される。コマンドplayChapterMark(playListNumber,chapterNumber)で、”playListNumber”で示されるプレイリスト中の、”chapterNumber”指定されるチャプタからの再生が指示される。コマンドplayPlayItem(playListNumber,playItemNumber)で、”playListNumber”および”playItemNumber”で示されるプレイアイテムからの再生が指示される。”playItemNumber”は、”playItem_id”であり、値「0」を指定することで、当該プレイアイテムが属するプレイリストの先頭から再生される。
コマンドplay(position)(object)で、シナリオ内での移動が指示される。現在移動中の箇所から前後のプレイリストやプレイアイテムに移動することがこのコマンドで指示される。パラメータ”position”は、”prev”、”next”、”top”、”goUp”または”tail”の何れかの値を取り、パラメータ”object”で示される移動対象(プレイリスト、プレイアイテムまたはチャプタ)に対する移動方法が指示される。
コマンドstop()で、シナリオ再生の停止が指示される。この場合、標準レジスタの値は、保持されない。コマンドresume()で、前回再生を停止した箇所からの再生の再開が指示される。コマンドplaySoundEffect()で、選択された効果音の再生が指示される。
プレーヤ状態に関するコマンドについて説明する。コマンドgetMenuDescriptionLanguage()で、メニュー表示の際に用いられる言語が取得される。コマンドgetScenarioNumber()、コマンドgetPlayListNumber()およびコマンドgetChapterNumber()で、再生中のシナリオ番号、プレイリスト番号およびチャプタ番号がそれぞれ取得される。コマンドgetPlayerSupport()で、プレーヤのバージョン情報が取得される。
ビデオストリームに関するコマンドについて説明する。コマンドsetVideoStreamNumber()で、デコードするビデオストリームが指定される。コマンドgetVideoStreamNumber()、コマンドgetVideoStreamStatus()およびコマンドgetVideoStreamAttr()で、再生中のビデオストリームの番号、状態および属性がそれぞれ取得される。なお、ビデオストリームの属性は、例えば、そのビデオストリームの符号化方式、解像度、アスペクト比、アスペクト比が4:3のときのディスプレイモード、クローズドキャプションの有無である。コマンドsetAngleNumber()で、アングル番号が指定される。コマンドgetAngleNumber()で、選択中のアングル番号が取得される。コマンドgetMaxVideoStream()で、ビデオストリームの最大数が取得される。
オーディオストリームに関するコマンドについて説明する。コマンドgetAudioStreamAvailability()で、指定のオーディオストリームが含まれているか否かが取得される。コマンドgetAudioStreamLanguage()で、指定のオーディオストリームの言語に関する情報が取得される。コマンドgetAudioStreamStatus()で、指定のオーディオストリームの状態が取得され、コマンドsetAudioStreamStatus()で、指定のオーディオストリームに対する状態のセットが指示される。オーディオストリームの状態は、例えば再生または非再生である。コマンドgetAudioStreamAttribute()で、指定のオーディオストリームの属性が取得される。
サブピクチャストリーム(字幕データ)ストリームに関するコマンドについて説明する。コマンドgetSPStreamAvailability()で、指定のサブピクチャストリームが含まれているか否かが取得される。コマンドgetSPStreamLanguage()で、指定のサブピクチャストリームで用いられている言語が取得される。コマンドgetSPDisplayStatus()で、サブピクチャストリームの表示状態が取得され、コマンドsetSPDisplayStatus()で、サブピクチャストリームの表示状態がセットされる。サブピクチャストリームの表示状態は、例えばサブピクチャストリームの表示のオン/オフである。コマンドgetSpStreamAttribute()で、指定のサブピクチャストリームの属性が取得される。サブピクチャストリームの属性は、例えばサブピクチャストリームの表示がアスペクト比4:3またはワイド画面の何れでなされるかである。
共通パラメータ32に関するコマンドについて説明する。第34図A、第34図B、第34図C、第34図D、第34図E、第34図F、第34図G、第34図H、第34図Iおよび第34図Jでは、レジスタリード/ライトとして記されている。コマンドclearReg()で、BD仮想プレーヤ30が内蔵しているメモリ領域すなわちレジスタについて、全レジスタの初期化が指示される。コマンドsetReg()で、指定のレジスタへの値のセットが指示される。コマンドgetReg()で、指定のレジスタからの値の読み出しが指示される。
タイマに関するコマンドについて説明する。コマンドsleep()で、指定された時間の処理の停止が指示される。コマンドsetTimeout()で、指定された時間後に関数や処理を実行することが指示される。コマンドsetInterval()で、指定された時間毎に処理を実行することが指示される。タイマに関するコマンドにおいて、時間はミリ秒単位で指定することができる。コマンドclearTimer()で、指定された登録タイマIDの処理の中止が指示される。コマンドpauseTimer()で、指定された登録タイマIDのタイマの一時停止が指示される。コマンドresumeTimer()で、指定された登録タイマIDのタイマを一時停止から再開することが指示される。
キー入力に関するコマンドでは、コマンドgetPressedKey()で、入力された(押された)キーの種類が取得される。
グラフィクスに関するコマンドについて説明する。コマンドloadGraphics(htmlfile,ID)で、”htmlfile”で示されるファイルを読み込み、グラフィクスプレーン12に非表示で展開することが指示される。展開されたグラフィクス画像には”ID”が割り当てられ、後述のコマンドで参照される。コマンドshowGraphics(ID)は、上述のコマンドloadGraphics(htmlfile,ID)により既にグラフィクスプレーン12上に展開されている画像に対して、表示が指示される。コマンドhideGraphics(ID)で、”ID”で示される画像の表示を消去することが指示される。
その他のコマンドについて説明する。コマンドrandom(input Number num)で、1から”num”までの乱数の発生が指示される。乱数の発生は、独自の定義で行われる。コマンドcatchEvent(eventname,eventhandler)で、”eventname”で示されたイベントが発生した際、”eventhandler”で示された関数を実行することが指示される。
2−7.コマンドの実行について
上述のように定義されたコマンドの実行について説明する。先ず、シナリオ記述言語として独自コマンドを用いた場合の例について説明する。シナリオ記述言語として独自コマンドを用いた場合、シナリオには、プレーヤの動作を指示するコマンドが並んだプログラムを含むコマンドを配置する領域として、グローバルコマンド領域と、ローカルコマンド領域の二つがある。
グローバルコマンド領域は、シナリオ全体に有効なプログラムが格納されており、例えば、ディスクがプレーヤに挿入されたときに最初に自動的にプレーヤによって実行されて、パラメータの初期化を行い、メニュー画面を構成するプレイリストにジャンプするようなプログラムを記述する領域である。ローカルコマンド領域は、各プレイリストに関係するプログラムを記述する領域である。ローカルコマンドは、さらにプレコマンド、プレイアイテムコマンド、ポストコマンド、ボタンコマンドの4種類に分類される。
第35図Aおよび第35図Bは、独自コマンドを記述言語として用いたシナリオで記述されるコマンドによるBD仮想プレーヤ30の動作を概略的に示す。第35図Aは、ディスクのローディング時の動作の例を示す。既に述べたように、シナリオは、後述するBDMVディレクトリに対して一つが作られる。ディスクがプレーヤに挿入されディスクに対するイニシャルアクセスがなされると(ステップS30)、レジスタすなわち共通パラメータ32が初期化される(ステップS31)。そして、次のステップS32で、プログラムがディスクから読み込まれて実行される。イニシャルアクセスとは、ディスク挿入時のように、ディスクの再生が初めて行われることをいう。
この、ディスクローディング時に最初に読み込まれ、実行されるコマンド群(プログラム)を、グローバルコマンドと称する。グローバルコマンドは、例えば宣伝用映像(トレーラー)やメニュー画面を構成するプレイリストへのジャンプ命令が記述されており、その命令通りにプレーヤがプレイリストを再生していくことになる。
第35図Bは、プレーヤ30が停止状態からユーザにより例えばプレイキーが押下され再生が指示された場合の動作の例を示す。これは、第31図で説明したBD仮想プレーヤ30における状態Bから状態Aへの状態遷移に相当する。最初の停止状態(ステップS40)に対して、ユーザにより、例えばリモコンなどを用いて再生が指示される(UOP:User Operation)。再生が指示されると、先ず、レジスタすなわち共通パラメータ32が初期化され(ステップS41)、次のステップS42で、プレイリストの再生フェイズに移行する。
プレイリストの再生フェイズにおけるプレイリストの再生について、第36図Aおよび第36図Bを用いて説明する。第36図Aは、プレイリストが単一のプレイアイテムからなる場合の例である。プレイリストは、プレコマンド領域、プレイアイテムコマンド領域およびポストコマンド領域の3箇所にプログラムが配される。プレイリストの再生フェイズに移行すると、先ずプレコマンド領域のプレコマンドが実行され(ステップS10)、プレコマンドの実行が終了されると、プレイリストを構成するプレイアイテムの再生フェイズに移行する(ステップS11)。プレイアイテムの再生フェイズでは、プレイアイテムにおいて開始点および終了点で指定されたストリームが再生される(ステップS110)。終了点までの再生が終了した時点で、プレイアイテムコマンドが実行される(ステップS111)。プレイアイテムコマンドが実行されると、次にポストコマンド領域のポストコマンドが実行され(ステップS12)、プレイリストの再生が終了される。
ポストコマンドは、一般的な使用においては、次に再生すべきプレイリストへのジャンプ命令や、メニュー画面を構成するプレイリストへのジャンプ命令が記述される。ジャンプ命令が無い場合には、そこで再生が停止し、プレーヤは、停止状態(第31図の状態B)に遷移される。
第36図Bは、プレイリストが複数のプレイアイテムを含む場合の例である。この場合でも、プレイリスト中にプレコマンド領域、プレイアイテムコマンド領域およびポストコマンド領域が配され、それぞれプログラムが格納される。複数のプレイアイテムを含む場合、プレイアイテムコマンド領域では、プレイアイテム数分のプレイアイテムストリームおよびプレイアイテムコマンドが、時系列に従って配置される。
プレイリストが複数のプレイアイテムを含む場合でも、プレイリストの再生フェイズに移行すると、先ず、プレコマンドが実行される(ステップS10)。次のプレイアイテムの再生フェイズでは、プレイアイテムの開始点から終了点までのストリームの再生と、プレイアイテムコマンドの実行とが、プレイリストが含むプレイアイテムの数だけ実行される。第36図Bの例では、最初のプレイアイテムストリームが再生され(ステップS110−1)、対応するプレイアイテムコマンドが実行される(ステップS111−1)。次に、図示は省略するが、2番目のプレイアイテムストリームが再生され(ステップS110−2)、対応するプレイアイテムコマンドが実行される(ステップS111−2)。これをプレイアイテムの数だけ行い、最後のプレイアイテムストリームが再生され(ステップS110−n)、対応するプレイアイテムコマンドが実行されると(ステップS111−n)、プレイアイテムの再生フェイズが終了する。プレイアイテムの再生フェイズが終了すると、ポストコマンドが実行され(ステップS12)、このプレイリストの再生フェイズが終了される。
この発明の実施の一形態では、BD仮想プレーヤ30、ならびに、BD仮想プレーヤ30上で実行されるシナリオ、プレイリストおよびプレイアイテムを、階層的に考えることができる。すなわち、第37図Aで示されるように、BD仮想プレーヤ層600の下に1つのシナリオ層601があり、シナリオ層601の下に、1または複数のプレイリストを含むプレイリスト層602がある。プレイリスト層602の下には、プレイアイテム(PI)層603があり、プレイリスト毎に1または複数のプレイアイテムを持つことができる。
このような階層的な構造とすることで、プレイリストおよびプレイアイテムは、シナリオ層601を介してBD仮想プレーヤにより実行されることになる。したがって、シナリオにプレイリストに対する制御コマンドを記述することで、プレイリストの分岐などの制御が容易に実現される。これは、プレイアイテムに関しても同様である。この様子を第37図Bに示す。
シナリオ記述言語としてHTMLおよびECMAスクリプトを用いた場合の例について説明する。以下の説明は、シナリオ記述言語としてHTMLおよびECMAスクリプトを用いた場合の、より具体的なPBCプログラム40の例である。
HTMLおよびECMAスクリプトを用いてシナリオを記述した場合、一つのシナリオに対して、一つのスクリプトファイルが作成される。グラフィクスプレーン12を用いてメニュー画面60などを表示する場合には、1画面に対して一つのHTMLファイルが作成される。スクリプトファイルおよびHTMLファイルは、ファイル名の拡張子がそれぞれ「js」および「html」とされ、拡張子で以てこれら2種類のファイルが識別可能される。ディスクがドライブ装置に挿入されて最初に実行されるスクリプトプログラムが格納されるファイルは、ファイル名を例えば「startup.js」に固定的とする。
一例として、第38図に示されるようなシナリオ構成のディスクを考える。このディスクは、シナリオScenario000およびScenario001の2つのシナリオを有し、シナリオScenario000は、シナリオScenario001へのリンクボタン92を表示するメニュー画面91を表示させる。ディスクが再生装置に装填されると、メニュー画面91が表示され、メニュー画面91に表示されるボタン92が例えばクリック操作により押されると、シナリオScenario001が再生される。シナリオScenario001の再生が終了されると、再びメニュー画面91が表示される。
第39図は、第38図の構成に対して必要とされる一例のファイルを一覧して示す。この例では、ファイル「startup.js」、ファイル「scenario000.js」、ファイル「000.html」、ファイル「00000.rpls」、ファイル「scenario001.js」およびファイル「00001.rpls」の6ファイルが必要とされる。
これらのうち、ファイル「scenario000.js」は、シナリオScenario000の構成情報が記述されるスクリプトファイルであって、メニュー画面91すなわちシナリオ一覧画面の構成情報が記述される。ファイル「000.html」は、メニュー画面91のレイアウト情報が記述されるHTMLファイルである。ファイル「00000.rpls」は、メニュー画面91において背景として表示されるプレイリストファイルである。ファイル「scenario001.js」は、シナリオScenario001の構成情報が記述されるスクリプトファイルである。ファイル「00001.rpls」は、シナリオScenario001で再生されるプレイリストの情報が記述されたプレイリストファイルである。
第39図では、プレイリストファイル「00000.rpls」および「000001.rpls」で実際に再生されるコンテンツファイルなど(クリップ情報ファイル「%%%%%.clip」、AVストリームファイル「*****.m2ts」)については省略されている。
第39図に示される各ファイルは、第40図に一例が示されるディレクトリ構造に従い、ディスクに記録される。ディレクトリBDAVの直下にファイル「startup.js」が置かれると共に、ディレクトリBDAVの配下にディレクトリSCRIPTが設けられる。このディレクトリSCRIPTの下に、シナリオの構成情報が記述されるスクリプトファイル(ファイル「scenario000.js」など)や、メニュー画面のレイアウト情報などが記述されるHTMLファイル(ファイル「000.html」など)が置かれる。
第41図〜第44図は、スクリプトファイルおよびHTMLファイルのより具体的な記述の例を示す。第41図は、ファイル「startup.js」の記述例である。ファイル「startup.js」では、当該ディスクに格納されているシナリオの数と名前とが定義される。そして、メソッドplayScenario(”scenario000”)の記述により、ファイル「scenario000.js」が呼び出され、シナリオScenario000の再生が指示される。シナリオScenario000が再生されることにより、メニュー画面91が表示される。
第42図は、ファイル「scenario000.js」の記述例である。関数functionが定義され、メソッドcatchEvent()に「on」が付されて記述されたイベント(第32図A、第32図Bおよび第32図C参照)が発生すると、対応する関数functionで定義された内容が実行される。第42図の例では、メニュー画面91のレイアウト情報が記述されたHTMLファイル「000.html」が指定され、グラフィクスプレーン12へのメニュー画面91の読み込みおよび表示のタイミングが制御される。それと共に、メソッドplayPlayList(”00000.rpls”)が記述され、プレイリスト「00000.rpls」の再生が指示される。
このファイル「scenario000.js」により、プレイリスト「00000.rpls」による動画の動画プレーン10に対する表示が指示されると共に、プレイリスト「00000.rpls」の再生中に検出されたマークのタイミングで、メニュー画面91をグラフィクスプレーン12に表示する旨が指示される。
第43図は、ファイル「000.html」の記述例である。タグ〈style type=”text/css”〉および〈/style〉で囲まれた部分に、「menu」および「scenario001」で参照される画像の、メニュー画面91におけるレイアウト情報が記述される。この第43図の例では、レイアウト情報が画面上の絶対座標で記述され、画像名「menu」で参照される画像データが画面の上端から200ピクセル、左端から800ピクセルの位置に、幅200ピクセル、高さ50ピクセルの画像として表示されることが示される。同様に、画像名「scenario」で参照される画像データが画面の上端から700ピクセル、左端から700ピクセルの位置に、幅400ピクセル、高さ100ピクセルの画像として表示されることが示される。
タグ〈script type=”text/javascript”〉および〈/script〉で囲まれた部分に、関数functionで、マウス操作に対するイベントハンドラonMoverhandler(f)、onMouthandler(f)およびonMclickhandler(f)がそれぞれ定義される。この第43図の例では、イベントハンドラonMoverhandler(f)、onMouthandler(f)およびonMclickhandler(f)に対してボタン画像を表示する画像データである画像データ「201.png」、「200.png」および「202.png」がそれぞれ対応付けられると共に、イベントハンドラonMclickhandler(f)においては、シナリオファイル「scenario001.js」の再生が指示される。
タグ〈body〉および〈/body〉で囲まれた部分に、メニュー画面91においてグラフィクスプレーン12に表示される画像データが指定される。上述のタグ〈style type=”text/css”〉および〈/style〉で囲まれた部分に記述される画像名に対応する画像データのファイル名(「100.png」、「200.png」)がそれぞれ記述される。画像名「scenario001」で参照される画像データに対しては、マウスなどポインティングデバイスに対する操作に応じて発生するイベントonMouseover、onMouseoutおよびonclickに対して、上述の関数functionで定義されたイベントハンドラonMoverhandler(f)、onMouthandler(f)およびonMclickhandler(f)がそれぞれ実行されることが指示される。
イベントonMouseoverは、指定された領域などにカーソル表示が重なった際に発生されるイベントである。イベントonMouseoutは、指定された領域などからカーソル表示が離れた際に発生されるイベントである。イベントonclickは、指定された領域にカーソル表示があるときにポインティングデバイスに対する所定の操作、例えばマウスボタンのクリックが行われた際に発生されるイベントである。
第44図は、ファイル「scenario001.js」の記述例である。関数function UOPControl()において、このシナリオファイル「scenario001.js」の再生中に、例えばリモートコントロールコマンダに設けられたメニューキーが押されたときに、メニュー画面91を表示するためのシナリオScenario000を再生することが定義される。また、関数function playListEnded()により、このシナリオファイル「scenario001.js」によるプレイリストの再生が終了したら、メニュー画面91を表示するためのシナリオScenario000を再生することが定義される。このシナリオファイル「scenario001.js」でプレイリスト「00001.rpls」が再生されることが指示される。
第41図〜第44図の記述に基づく動作について説明する。ディスクが再生装置に装填されると、ファイル「startup.js」が読み込まれ、このファイル中の記述によりファイル「scenario000.js」が呼び出される。このファイルに記述されたシナリオ「scenario000」が実行されると、第42図の記述に基づき、プレイリスト「00000.rpls」による動画が動画プレーン10に表示される。
プレイリスト「00000.rpls」中に指定されたマークに対応するタイミングで、ファイル「000.html」が呼び出され、ファイル「000.html」の記述に基づきシナリオ一覧を表示するメニュー画面91がグラフィクスプレーン12上に展開され、表示される。このメニュー画面91自体も、シナリオ「scenario000」という一つのシナリオで構成されたものである。
メニュー画面91には、例えば「Menu」という文字列が描画された画像ファイル「100.png」と、「Scenario001」という文字列が描画された画像ファイル「200.png」とが配置されている。これらの画像ファイルは、グラフィクスプレーン12上に配置され表示される。グラフィクスプレーン12の背景に表示される動画プレーン10上では、プレイリスト「00000.rpls」による動画が表示される。動画プレーン10上のプレイリスト「00000.rpls」による動画と、グラフィクスプレーン12上のファイル「000.html」によるメニュー画面91とが重ね合わされて同一画面上に表示される。動画を背景にメニュー画面91が表示される。
このとき、グラフィクスプレーン12上に表示されている画面(メニュー画面91)に所定に透明度を設定し、メニュー画面91を動画プレーン10上の動画に対して透過させて表示させることができる。この例では、プレイリスト「00000.rpls」の先頭および末尾にマークが設定され、メニュー画面91は、プレイリスト「00000.rpls」の再生と共に表示が開始され、プレイリスト「00000.rpls」の再生終了と共に表示が消去されるようになっている。
メニュー画面91上には、ユーザのリモートコントロールコマンダのキー操作などに応じて移動可能なカーソルが表示される。画像ファイル「200.png」の表示にカーソル表示が重なると、ファイル「000.html」において定義されるイベントMouseoverが発生される。このイベントMouseoverが発生されると、当該画像ファイル「200.png」にフォーカスが当たっていることを表現するために、イベントonMouseoverに対応するイベントハンドラonMoverhandler()が実行される。イベントハンドラonMoverhandler()の実行により、画像ファイル「200.png」が画像ファイル「201.png」に置き換えられる。画像ファイル「201.png」は、画像ファイル「200.png」に対して配色が変えられたボタン画像などである。
カーソル表示が画像ファイル「201.png」上にあるときに、ユーザにより、リモートコントロールコマンダの所定のキー操作によりクリック操作が行われると、イベントonclickに対応するイベントハンドラonMclickhandler()が実行され、画像ファイル「201.png」が、選択されたことを表現する画像ファイル「202.png」に置き換えられる。画像ファイル「202.png」は、例えばボタンが押されたことを仮想的に表現するようなボタン画像である。
このように、「フォーカスされた」、「クリックされた」というイベント発生に対応するイベントハンドラをファイル「000.html」中に記述することで、ユーザの入力に反応するインタラクティブな機能を有するメニュー画面が実現される。
メニュー画面91において、「Scenario001」と描画されたボタン画像がクリックされると、シナリオ「Scenario001」の再生処理に移行される。ファイル「scenario001.js」が実行されることで、シナリオ「Scenario001」が再生される。第44図に示したように、ファイル「scenario001.js」中に記述されたメソッドplayPlayList(”00001.rpls”)が呼び出され、プレイリスト「00001.rpls」が再生される。
プレイリスト「00001.rpls」の再生が終了されると、プレイリスト再生終了のイベントPlayListEnded()が発生され、このイベントに対応したイベントハンドラplayScenario(”scenario000.js”)により、シナリオ「Scenario000.js」を再生するように指示される。この例では、シナリオ「Scenario001」の再生が終了されると、再びメニュー画面91が表示される。
シナリオ「Scenario001」の再生中に、「keyID」で指定されるキーが操作されても、シナリオ「Scenario000.js」の再生が指示され、再びメニュー画面91が表示される。
第41図〜第44図で示したHTMLおよびECMAスクリプトの記述は、一例であって、これはこの例に限定されるものではない。HTMLやECMAスクリプトの記述には自由度があり、一部を異なる記述にしても同等の動作を実現するようにできる。
2−8.シンタクスについて
シナリオ記述言語として独自コマンドを用いた場合の、各ファイルのシンタクスについて説明する。先ず、シナリオを記述するコマンドやデータベースのディスクへの格納方法について説明する。第45図は、シナリオ記述言語として独自コマンドを用いた場合の一例のファイルの管理構造を示す。
ディスク上には、先ず、1つのルートディレクトリが作成される。このルートディレクトリの下が、1つの再生システムで管理される範囲とする。ルートディレクトリの下に、ディレクトリBDMVが置かれる。図示はされていないが、ディレクトリBDMVは、第9図の如く、ルートディレクトリの下に複数を置くことができる。
ディレクトリBDMVの下には、2つのファイルすなわちファイル「scenario.hdmv」およびファイル「entrylist.data」が置かれると共に、ディレクトリ「PLAYLIST」、ディレクトリ「CLIPINF」、ディレクトリ「STREAM」といった複数のディレクトリが置かれる。
第46図は、ファイル「scenario.hdmv」の一例の構造を表すシンタクスを示す。このファイル「scenario.hdmv」は、ディスク挿入時などのイニシャルアクセス時に最初に読み込まれ実行されるファイルである。ファイル「scenario.hdmv」は、最初にファイル識別記号(フィールドtype_indicator)、バージョン番号(フィールドversion_number)が記述され、その後に、機能毎のデータを集めたブロックが並んでいる。
フィールドtype_indicatorは、32ビットのデータ長を有し、このファイルがファイル「scenario.hdmv」であることを表す特定の文字列が格納されている。フィールドversion_numberは、32ビットのデータ長を有し、バージョン番号が入る。フィールドScenario_start_addressは、32ビットのデータ長を有する符号無しの整数で、ブロックScenario()が開始される位置をファイル「scenario.hdmv」の先頭からの相対バイト数で表した値が格納される。
ブロックAutoplay()は、ファイルの先頭から41バイト目の固定位置から始まる。ブロックAutoplay()には、イニシャルアクセス時(ディスク挿入時のようにディスクの再生が始めて行われる時)に実行されるプログラムが記述される。Autoplay()の後には、任意の数のパディングワード(padding_word)が入り、ブロックの後に空きを持たせることができるようになっている。
第47図は、第46図におけるブロックAutoplay()の一例のデータ構造を表すシンタクスを示す。フィールドlengthは、データ長が32ビットの符号無しの整数で、このフィールドlengthの直後からブロックAutoplay()の終わりまでのデータ長を、バイトで表したものが記述される。フィールドnumber_of_commandsは、その後に続くフィールドcommand(i)の数を表す。フィールドcommand(i)は、データ長が32ビットの値で、上述の第33図A、第33図B、第33図C、第33図D、第33図E、第33図F、第33図Gおよび第33図Hに一例が記されている、プレーヤのパラメータのセット、指定のプレイリストの再生開始、演算などの命令が記述されている。
ブロックScenario()は、これまで説明してきた「シナリオ」が記述される。プレイリストの再生順序の情報およびプレイリスト毎に持つローカルコマンド領域などが、このブロックScenario()に記述される。
第48図は、ブロックScenario()の一例の構造を表すシンタクスを示す。ブロックScenario()は、シナリオの情報、すなわちプレイリスト間のリンクを定義するブロックであって、上述したプレコマンド、ポストコマンド、プレイアイテムコマンドなどの情報およびコマンドそのものが格納される。ブロックScenario()は、ブロックScenario()内に格納されるコマンドの情報を示すフィールドが記述される領域と、実際のプレコマンド、ポストコマンド、プレイアイテムコマンドが列挙される領域とから構成される。
フィールドlengthは、このフィールドlengthの直後からブロックScenario()の終わりまでの長さをバイトで表現した値が記述される。フィールドnumber_of_PlayListsは、シナリオを構成するプレイリストの数を表す。このフィールドnumber_of_PlayLists以降は、プレイリスト毎に持つデータである。すなわち、フィールドnumber_of_PlayListsの次行からのforループにより、フィールドnumber_of_PlayListsで示される値をループカウンタiの最大値として、プレイリスト毎のデータが記述される。
フィールドPre_Command_start_idは、プレイリストを再生する前に実行されるプログラム(プレコマンド)の、コマンドテーブル中での開始番号を表す。フィールドPre_Command_start_idにより示される番号は、後述するフィールドPL_Command(i)が列挙されるforループ内でのループカウンタjを表す。同様に、フィールドPost_Command_start_idは、プレイリストを再生した後に実行されるプログラム(ポストコマンド」)の、コマンドテーブル中での開始番号を表す。フィールドPost_Command_start_idにより示される番号は、後述するフィールドPL_Command(j)が列挙されるforループ内でのループカウンタjを表す。
フィールドnumber_of_Pre_Commandsは、このプレイリストを再生する前に実行されるプログラム(プレコマンド)を構成するコマンドの数を表す。同様に、フィールドnumber_of_Post_Conmmandsは、このプレイリストを再生した後に実行されるプログラム(ポストコマンド)を構成するコマンドの数を表す。これらのプログラムは、後述するコマンドテーブル内に記述される。
フィールドnumber_of_PlayItemsは、このプレイリストを構成するプレイアイテムの数を表す。フィールドPI_Command_start_idは、プレイアイテムの再生後に実行するコマンドの、コマンドテーブル中の開始番号を表す。フィールドPI_Command_start_idにより示される番号は、後述するコマンドテーブル内でのループカウンタjを表す。フィールドnumber_of_PI_Commandsは、プレイアイテムの再生後に実行するコマンド(プレイアイテムコマンド)の数を表す。後述するコマンドテーブル内において、フィールドPI_Command_start_idで示される位置から始まり、フィールドnumber_of_PI_Commandsで表される数のコマンドを、プレイアイテムの再生後に実行する。
フィールドnumber_of_PL_Commandsは、次行からのコマンドテーブル中のコマンドの数を表す。コマンドテーブルは、フィールドPL_Command(j)が列挙されるforループにより構成される。コマンドテーブル内のコマンドには、順に番号jが割り当てられている。番号jは、コマンドテーブルを記述するためのforループのループカウンタjに対応する。フィールドPL_Command(j)は、一つのコマンドを表し、番号jは、上述したフィールドPre_Command_start_id、フィールドPost_Command_start_idおよびフィールドPI_Command_start_idから参照される。
第49図は、ファイル「entrylist.data」の一例のデータ構造を表したシンタクスを示す。ファイル「entrylist.data」には、最初にファイル識別記号(フィールドtype_indicator)、バージョン番号(フィールドversion_number)、ブロックの開始アドレス(フィールドScenarioEntry_start_address)が記述され、その後に、機能毎のデータを集めたブロックが並んでいる。
フィールドtype_indicatorには、データ長が32ビットを有し、このファイルがタイトルやメニューのエントリポイントを記述したファイルであることを表す特定の文字列が格納されている。フィールドversion_numberには、データ長が32ビットを有し、バージョン番号が格納される。フィールドScenarioEntry_start_addressには、データ長が32ビットの符号無しの整数で、ブロックScenarioEntry()が開始される位置を、ファイル「entrylist.data」の先頭からの相対バイト数で表した値が格納される。
第50図は、ブロックAppInfo()の一例の構造を表すシンタクスを示す。フィールドlengthには、データ長が32ビットの符号無しの整数で、このフィールドlengthの直後からブロックAppInfo()の終わりまでの長さをバイトで表したものが記述される。フィールドBDMV_name_character_setは、後述するフィールドBDMV_nameを記述する文字セットを表す。フィールドPIN_valid_flagは、再生時に暗証番号を設定するか否かを表し、設定有効の場合は、直後のフィールドPINが暗証番号を表す。フィールドBDMV_name_lengthは、次のフィールドBDMV_nameの有効部分の長さを表す。フィールドBDMV_nameは、このファイル「entrylist.data」が置かれるディレクトリBDMVに付けられた名称がテキスト形式で格納されている領域である。フィールドBDMV_nameは、データ長が255バイトの固定長とされる。実際に名称が格納される部分は、フィールドBDMV_nameの先頭からフィールドBDMV_name_lengthで指定されている長さまでとされる。
第51図は、ブロックScenarioEntry()の一例の構造を表すシンタクスを示す。ブロックScenarioEntry()は、シナリオ内の頭出し点が羅列される。シナリオは、上述したようにディレクトリBDMVに対して一つ作られ、ディレクトリBDMVの下に置かれる複数のプレイリストを結び付けて再生順序を定義する。ユーザから見た場合、シナリオは、必ずしも一つの映像・音声単位として見える訳ではなく、複数の「タイトル」から構成されているように見える。
例えば、一枚のディスクに映画が3本収録されている場合、再生順序を定義するシナリオは、ディスクに一つのみ存在するが、ユーザには当該ディスクに3つのタイトルが収録されているように見える。あるいは、その3つのタイトルのリストを表示し、ユーザに選択させるタイトルメニュー画面も含めて、4つのタイトルに分割されているように見える。メニュー画面もユーザにとっては一まとまりの映像、音声単位であるので、この発明の実施の一形態では、タイトルの一種としてみなすことにする。
このように、プレイリストの結びつきを定義するシナリオという単位と、ユーザが一まとまりの映像、音声として認識する単位には違いがあるため、シナリオ内に頭出し点を定義しておく必要がある。このシナリオ内の頭出し点を、タイトルエントリと称する。このブロックScenarioEntry()に、タイトルエントリの情報が記述される。
第51図の説明に戻り、フィールドlengthは、データ長が32ビットの符号無しの整数で、このフィールドlengthの直後からブロックScenarioEntry()の終わりまでの長さをバイトで表したものが格納される。フィールドname_character_setは、後述するフィールドTopMenu_nameとフィールドTitle_nameとを表現する文字セットを表す。
次のブロックTop Menu PL()は、ユーザがリモコンのタイトルメニューキーを押したときに表示されるメニューを構成しているプレイリストあるいはプレイリスト群へのエントリポイントを指定する。トップメニューは、シナリオに一つあり、例えばタイトルをユーザに提示するためのメニューとして利用される。トップメニューに対して、さらにオーディオや字幕を設定するサブメニューを下層メニューとして設けることができる。サブメニューは、ストリーム設定メニューとも称される。
フィールドflagsは、詳細は省略するが、トップメニューに関する属性情報を表す領域である。フィールドTopMenu_ref_to_PlayList_file_nameは、トップメニューを構成するプレイリストあるいはプレイリスト群の入り口となるプレイリストを指定する。フィールドTopMenu_ref_to_PlayItem_idは、フィールドTopMenu_ref_to_PlayList_file_nameで指定したプレイリスト中の特定のプレイアイテムからトップメニューが開始されている場合、そのプレイアイテムの番号を指定する。プレイリストの先頭からの再生であれば、フィールドTopMenu_ref_to_PlayItem_idの値は、「0」となる。フィールドTopMenu_name_lengthは、トップメニューに付された名前の長さを表す。フィールドTopMenu_nameは、トップメニューに付された名前の文字列が格納される。
ブロックTop Menu PL()の次に、タイトルに関する情報が記述される。フィールドnumber_of_Titlesは、その直後のforループ内のタイトル頭出し点(タイトルエントリ)の数を表す。フィールドflagsは、詳細は省略するが、タイトルに関する属性情報を表す領域である。フィールドTitle_ref_to_PlayList_file_nameは、タイトルエントリを含むプレイリストのファイル名を表す。フィールドTitle_ref_to_PlayItem_idは、フィールドTitle_ref_to_PlayList_file_nameで指定したプレイリストの中の特定のプレイアイテムからタイトルが始まる場合に用いる。フィールドTitle_name_lengthは、タイトルに付された名前の長さを表す。フィールドTitle_nameは、タイトルに付された名前の文字列が格納される。
サブメニューに関する情報が記述される。「Stream Setup Menu」以下に、プレイアイテム毎に持つことができるストリーム設定メニュー(すなわちサブメニュー)を構成するプレイリストあるいはプレイリスト群へのエントリポイントが記述されている。ストリーム設定メニューは、オーディオ、字幕、アングルなどの切り替えなど、プレイリスト毎に個別にメニューを用意したい場合に利用することができる。例えば、上述の第25図におけるボタン64、65を押すことで表示される画面がサブメニューである。
フィールドnumber_of_PlayListsは、ストリーム設定メニューに用いられるプレイリストの数を表す。このフィールドnumber_of_PlayListsの値が直後のforループのループ回数として用いられる。フィールドSSMenu_flagsは、詳細は省略するが、ストリーム設定メニューに関連する属性情報を格納する領域である。フィールドSSMenu_ref_to_PlayList_file_nameは、ストリーム設定メニューを構成するプレイリストあるいはプレイリスト群の入り口となるプレイリストを指定する。フィールドSSMenu_ref_to_PlayItem_idは、フィールドSSMenu_ref_to_PlayList_file_nameで指定したプレイリスト中の特定のプレイアイテムからストリーム設定メニューが開始されている場合、そのプレイアイテムの番号を指定する。プレイリストの先頭からの再生であれば、フィールドSSMenu_ref_to_PlayItem_idの値は、「0」となる。
第52図は、ファイル「xxxxx.mpls」の一例の構造を表すシンタクスを示す。第52図において、ファイル「xxxxx.mpls」の内部は、機能別の情報毎にブロックが構成される。フィールドtype_indicatorにこのファイルを示す文字列が格納され、フィールドversion_numberにこのファイルのバージョンが示される。フィールドPlayList_start_addressおよびPlayListMark_start_addressには、それぞれ対応するブロックの先頭アドレスが例えばデータ長が32ビットのアドレス情報として示される。
ブロックPLControlInfo()は、このプレイリストに関する属性情報が格納される。ブロックPlayList()は、このプレイリストを構成するプレイアイテムに関する情報が格納される。ブロックPlayListMark()は、このプレイリストに付されるマークの情報が格納される。
ファイル「xxxxx.mpls」において、ブロックPLControlInfo()、PlayList()およびPlayListMark()の先頭アドレスがこれらのブロックより前に示されるために、各ブロックの前および/または後ろに、任意の長さのパディングデータpadding_wordを挿入することができる。ファイル「xxxxx.mpls」の最初のブロックであるブロックPLControlInfo()の開始位置は、ファイルの先頭から41バイト目に固定される。
第53図は、ブロックPLControlInfo()の一例の構造を表すシンタクスを示す。このブロックPLControlInfo()は、プレイリストの再生において直接的に必要とされない、プレイリストに関する各種の属性情報が格納される。フィールドPlayList_character_setは、プレイリストに関する文字列情報の文字セットが指定される。
フィールドPL_playback_typeは、第54図に一例が示されるような値を取り、このプレイリストがシーケンシャルに再生される通常のプレイリストか、プレイアイテムをランダム再生するプレイリストか、プレイアイテムをシャッフル再生するプレイリストであるかを表す。ランダムシャッフルは、プレイリストの単位で指定する。一つのプレイリストに通常再生のプレイアイテムとランダムシャッフルのプレイアイテムブロックを混在させない。再生専用の記録媒体の場合には、制作者の意図により、ランダム再生やシャッフル再生を指定されることがあるため、このような情報が必要とされる。
フィールドplayback_countは、このプレイリストがランダム再生あるいはシャッフル再生のプレイリストであるとき、プレイアイテムの再生回数を指定する。このフィールドplayback_countにより、ランダム再生あるいはシャッフル再生に用いるプレイアイテムの数を指定できる。
フィールドPL_UOP_mask_table()は、ユーザ操作を制限する情報が格納される。再生、早送り、早戻しなどのユーザ操作を、このプレイリストの再生中に禁止したい場合、この領域で適切な指定をする。例えば、このフィールドPL_UOP_mask_table()内の値を所定に設定することで、警告表示や著作権の表示を早送りなどで飛ばして再生されないようにできる。
フィールドPL_random_access_modeは、第55図に一例が示される値を取り、他プレイリストからこのプレイリスト中の任意の箇所に飛び込み再生をするランダムアクセスが可能か否かを示す。例えば、必ずユーザに見せたいプレイリストがある場合に、フィールドPL_random_access_modeの値を〔0x1〕に設定する。このプレイリストに飛び込んで再生する際には、早送り、早戻し、任意時刻からの再生などが不可能になり、必ずプレイリストの先頭からの再生となる。再生専用の記録媒体においては、制作会社のロゴ表示や注意事項など、ユーザに必ず見せたいシーンが収録されている場合がある。このフィールドPL_random_access_modeは、そのようなシーンを変速再生等で飛ばされないようにするために必要な情報である。フィールドPL_UOP_mask_table()が当該プレイリストの再生中の操作の制限であるのに対し、このPL_random_access_modeは他プレイリストから当該プレイリストに飛び込んで再生を開始する際の制限を定めているという違いがある。
フィールドPlayList_durationは、プレイリストの再生時間を示す。フィールドPlayList_nameは、フィールドPlayList_name_lengthに示される値を有効長としてプレイリスト名が示される。フィールドPlayList_detailは、フィールドPlayList_detail_lengthに示される値を有効長としてプレイリストの詳細情報が示される。
第56図は、ブロックPlayList()の一例の構造を表すシンタクスを示す。フィールドlengthは、フィールドlengthの直後のフィールドからこのブロックPlayList()の終端までのバイト長を示す。フィールドnumber_of_PlayItemsは、このプレイリストを構成するプレイアイテムの数を示す。フィールドnumber_of_SubPlayItemsは、このメインのプレイアイテムと同時に再生される補助的なプレイアイテム(サブプレイアイテム)の数を示す。
ブロックPlayItem()は、プレイアイテムの情報が格納される。ブロックSubPlayItem()は、サブプレイアイテムの情報が格納される。
第57図は、ブロックPlayItem()の一例の構造を表すシンタクスを示す。フィールドClip_Information_file_nameは、このプレイアイテムが参照しているクリップと1対1に対応するクリップ情報ファイル(拡張子が「clpi」であるファイル)のファイル名が文字列で示される。
フィールドClip_codec_identifierは、このプレイアイテムにより参照されるクリップの符号化方式を示す。この実施の一形態では、フィールドClip_codec_Identifierは、値「M2TS」に固定的とされる。すなわち、この実施の一形態では、プレイアイテムにより参照されるクリップの符号化方式が値「M2TS」により示される方式に固定的とされる。
フラグis_multi_angleは、このプレイアイテムがマルチアングル構造であるかどうかを表す。
フィールドconnection_conditionは、このプレイアイテムと次のプレイアイテムとがどのように接続されているかを示す情報である。フィールドconnection_conditionにより、プレイアイテムとプレイアイテムとの間が継ぎ目なくシームレスに再生できるか否かが示される。
フィールドref_to_STC_idは、このプレイアイテムにより参照されるクリップ内のシーケンスSTC_sequenceを指定する。シーケンスSTC_sequenceは、MPEG2 TS(Transport Stream)における時間軸の基準であるPCR(Program Clock Reference)が連続な範囲を表すBlu−ray Disc規格独自の構造である。シーケンスSTC_sequenceには、クリップ内で一意な番号STC_idが割り当てられる。このシーケンスSTC_sequence内では、不連続の無い一貫した時間軸を定義できるので、プレイアイテムの開始時刻および終了時刻を一意に定めることができる。つまり、各プレイアイテムの開始点と終了点は、同一のシーケンスSTC_sequenceに存在していなければならない。フィールドref_to_STC_idでは、番号STC_idによりシーケンスSTC_sequenceが指定される。
フィールドIN_timeおよびOUT_Timeは、このプレイアイテムにおける開始点および終了点の、シーケンスSTC_sequence上でのタイムスタンプpts(presentation_time_stamp)をそれぞれ示す。
フィールドPI_UOP_mask_table()は、ユーザ操作を制限するためのデータが格納される。ここで制限されたユーザ操作は、仮にユーザがその操作を行ったとしても、プレーヤは反応してはならない。例えばメニュー画面で早送りが実行されないようにする場合に、ここで早送りのユーザ操作を無効にするような設定をしておく。
このプレイアイテム毎に設けられるフィールドPI_UOP_mask_table()は、上述したプレイリストの再生に関するブロックPLControlInfo()に設けられるフィールドPL_UOP_mask_table()と同様の目的の情報が格納される。プレイリストとプレイアイテムとの何方かで禁止となっていれば、そのユーザ操作は禁止となる。プレイリストの情報と、プレイアイテムの情報とで和演算がなされ、あるプレイアイテム再生中でのユーザ操作の制限が決まることになる。
フィールドPID_filter()は、詳細は省略するが、このプレイアイテムで再生するストリームの優先順位を決めるテーブルである。
フィールドPI_random_access_modeは、第58図に一例が示されるような値を取り、このプレイアイテム中の任意の箇所に飛び込み再生をするランダムアクセスが可能か否かを示す。例えば、必ずユーザに見せたいプレイリストがある場合に、フィールドPI_random_access_modeの値を〔0x1〕に設定しておく。これにより、このプレイアイテムを再生開始する際に、早送り、早戻し、任意時刻からの再生などを不可能にできる。
フィールドstill_modeは、このプレイアイテム再生後に一時停止を行うかを決めるフィールドである。フィールドstill_modeは、第59図に一例が示されるような値を取り、例えばフィールドstill_modeの値が〔0x1〕のときは一時停止することを表し、次のフィールドstill_timeのフィールドで指定された時間、一時停止を行う。これにより、スライドショーなどのような、静止画像を一定間隔で次々と表示するような再生を実現することができる。この場合には、静止画1枚ずつがそれぞれプレイアイテムとなっている。フィールドstill_timeは、有限の時間だけでなく、ユーザが入力するまで一時停止し続けるという設定(ポーズ設定)も可能となっている。例えばフィールドstill_modeの値を〔0x2〕とすることで、ポーズ設定が可能とされる。
上述したフラグis_multi_angleの値が例えば「1」とされていれば、このプレイアイテムがマルチアングルであるとされ、「Angle」以下に、マルチアングルのための情報が追加される。
フィールドnumber_of_anglesは、アングル数を表す。フィールドis_seamless_angle_changeは、第60図に一例が示されるような値を取り、アングルがシームレスに切り替え可能なように、すなわち、アングル間をなめらかに切り替えることができる状態に各アングルがディスク上配置されているか否かを表す。
次のforループは、アングルを構成するクリップの情報が記述される。forループ中のフィールドClip_Information_file_nameは、このプレイアイテムが参照しているクリップと1対1に対応するクリップ情報ファイル(拡張子が「clpi」であるファイル)のファイル名が文字列で示される。フィールドref_to_STC_idは、このプレイアイテムにより参照されるクリップ内のシーケンスSTC_sequenceを指定する。
値angle_id=0に相当するアングルは、アングルを構成しない通常のプレイアイテムと同じように、このブロックPlayItem()の前半部分で既に定義されている。値angle_id=1以降のアングルがこのforループの中で定義されている。このforループの中には、値angle=0に相当するアングルは、含まれていない。
第61図は、ブロックSubPlayItem()の一例の構造を表すシンタクスを示す。フィールドlengthは、この直後のフィールドからSubPlayItem()の終わりまでの長さをバイトで表したものである。フィールドClip_Information_file_nameは、このサブプレイアイテムが参照しているクリップと1対1に対応するクリップ情報ファイル(拡張子が「clpi」であるファイル)のファイル名が文字列で示される。
フィールドClip_codec_identifierは、このサブプレイアイテムにより参照されるクリップの符号化方式を示す。この実施の一形態では、フィールドClip_codec_Identifierは、値「M2TS」に固定的とされる。
フィールドis_repeat_flagは、第62図に一例が示されるような値を取り、このサブプレイアイテムをメインのプレイアイテム(メインパス)と非同期に繰り返し再生するか否かを表すフラグである。例えば、このフィールドis_repeat_flagの値が「1」の場合は、メインのプレイアイテムの再生が終了するまで、メインのプレイアイテムとは非同期に、このサブプレイアイテムが繰り返し再生される。このフィールドis_repeat_flagの値が「0」の場合は、このサブプレイアイテムは、メインのプレイアイテムと同期して、一度だけ再生される。
例えば、このサブプレイアイテムがオーディオのみのサブプレイアイテムである場合、フィールドis_repeat_flagの値を「1」とすることで、BGM(Back Ground Music)再生を行うことができる。
フィールドSubPlayItem_typeは、このサブプレイアイテムがどのような性質を持ったサブプレイアイテムであるかを表す。例えば、フィールドSubPlayItem_typeの値が「1」であれば、オーディオのみのサブプレイアイテムであることを表す。
フィールドref_to_STC_idは、このプレイアイテムにより参照されるクリップ内のシーケンスSTC_sequenceを指定する。フィールドSubPlayItem_IN_timeおよびSubPlayItem_OUT_Timeは、このサブプレイアイテムにおける開始点および終了点の、シーケンスSTC_sequence上でのタイムスタンプpts(presentation_time_stamp)をそれぞれ示す。
上述のフィールドis_repeat_flagの値が例えば「0」であって、このサブプレイアイテムがメインのプレイアイテムと同期して再生されることを示す場合、フィールドsync_PlayItem_idとフィールドsync_start_PTS_of_PlayItemにより、サブプレイアイテムがメインのプレイアイテムのどの時刻から同期再生されるかが指定される。
第63図に一例が示されるように、フィールドsync_PlayItem_idで、メインパスのプレイアイテムを指定し(PlayItem=1)、フィールドsync_start_PTS_of_PlayItemで、サブプレイアイテムが再生開始されるメインのプレイアイテム上の時刻を表す(t1)。サブプレイアイテムとして、対応するクリップがフィールドSubPlayItem_IN_timeおよびフィールドSubPlayItem_OUT_timeで指定される期間、再生されることが示されている。
第64図は、ファイル「zzzzz.clpi」の一例の構造を表すシンタクスを示す。第53図において、ファイル「zzzzz.clpi」の内部は、機能別の情報毎にブロックが構成される。フィールドtype_indicatorにこのファイルを示す文字列が格納され、フィールドversion_numberにこのファイルのバージョンが示される。フィールドSequenceInfo_start_address、フィールドProgramInfo_start_address、フィールドCPI_start_addressおよびフィールドClipMark_start_addressで、それぞれ対応するブロックの開始位置が示される。
第65図は、ブロックClipInfo()の一例の構造を表すシンタクスを示す。フィールドlengthは、この直後のフィールドからブロックClipInfo()の終わりまでの長さをバイトで表す。
フィールドapplication_typeは、クリップAVストリーム(拡張子が「m2ts」のファイル)がどのような多重化によって作られているかを示す。フィールドapplication_typeは、第66図に一例が示されるような値を取り、このクリップAVストリームが通常のビデオストリームであるか、静止画の表示に適した多重化がなされているストリームであるかを表す。
より具体的には、この例によれば、フィールドapplication_typeの値が「1」で、対応するクリップAVストリームのファイルがこの実施の一形態によるBDMVトランスポートストリームのルールに従っていることを示す。当該クリップAVストリームは、通常の動画が再生される。
フィールドapplication_typeの値が「2」で、対応するクリップAVストリームのファイルがオーディオ再生に同期する静止画用の、BDMVトランスポートストリームのルールに従っていることを示す。当該クリップAVストリームは、例えばMPEG2形式のファイルであって、ビデオデータおよびオーディオデータがマルチプレクスされている。ビデオデータは、例えばMPEG2におけるIピクチャが静止画として並んでいるような構成とされる。これにより、例えばオーディオの時間軸に同期して表示されるスライドショーのような再生が可能とされる。このような再生を、タイムベーススライドショーと称する。
フィールドapplication_typeの値が「3」で、対応するクリップAVストリームのファイルがオーディオとは非同期に再生される静止画用の、BDMVトランスポートストリームのルールに従っていることを示す。オーディオデータとビデオデータとは、別ファイルとされ、例えば、オーディオデータが再生されている間、ビデオデータは、静止画が任意の間隔またはユーザの指定に基づき切り換えられて表示される。ビデオデータは、例えばMPEG2におけるIピクチャが静止画として並んでいるような構成とすることができる。このような再生を、ブラウザブルスライドショーと称する。
フィールドapplication_typeの値が「0」のときは、対応するクリップAVストリームがBDMVトランスポートストリームのルールに従っていない場合である。
静止画の表示に適した多重化とは、主として静止画スライドショーのようなアプリケーションの実現を容易にすることを想定している。このようなアプリケーションにおいては、静止画1枚と、その上に重ねる字幕やグラフィクスデータとをカプセル化して多重化すると、読み込みが容易となる。
通常の動画像と同様の多重化をしてしまうと、ある静止画と同時に表示されるべき字幕が、前の静止画の画像データ付近に多重化されているような状況(いわゆる多重化位相差)が発生し、より広範囲のストリームデータを読みださないと字幕とグラフィクスとが重ねられた静止画像1枚を表示することができない。
この発明の実施の一形態においては、ビデオデータや字幕を表示するためのグラフィクスデータは、MPEG−2システム規格におけるTS(Transport Stream)パケットに格納されて伝送される。1つのTSパケットは、188バイトからなり、上述のビデオデータやグラフィクスデータは、それぞれTSパケットに収まるように分割されてTSパケットに格納される。ある静止画像データ(画像P1とする)に対応した字幕データのパケットが、次以降の静止画像データ(画像P2とする)のパケットの後ろに配置されてしまうと、画像P1に対応した字幕を表示するために、画像P2の後ろまでのデータを読み込んでおかなければならない。
ある静止画一枚とそれに付随する字幕およびグラフィクスだけを対象として多重化を行えば(カプセル化)、他のデータが混入しないストリームを作ることができる。それを静止画ごとに繰り返してストリームをつなげていくと、静止画(および当該静止画に付随する字幕、グラフィクスデータ)毎のデータが直列につながった一本のストリームが出来る。このような多重化を行ったストリームを、静止画用のBDMVストリームとしている。
静止画用のBDMVストリームには、タイムベーススライドショーと、ブラウザブルスライドショーとの2種類がある。この実施の一形態では、この2種類を、フィールドapplication_typeで別の番号を割り当てて、区別している。
静止画とそれに付随する字幕やグラフィクスとをカプセル化して記録することで、静止画を切り替えながら再生する際のアクセス性が向上する。
第65図の説明に戻り、フィールドClip_stream_typeは、クリップAVストリームの種別を表す。再生専用の規格においては、通常のクリップであることを示す値、例えば値「1」に固定的としてよい。フイールドTS_recording_rateは、クリップAVストリームファイルの記録レートをバイト/秒で表したものである。フィールドnum_of_source_packetsは、クリップAVストリームに含まれるパケット数を表す。フィールドBD_system_useおよびブロックTS_type_info_block()は、この発明と関連が低いので説明を省略する。
第67図は、ブロックSequenceInfo()の一例の構造を表すシンタクスを示す。フィールドlengthは、この直後のフィールドからブロックSequenceInfo()の終わりまでの長さをバイトで表したものである。フィールドnum_of_ATC_sequencesは、連続した時間に記録されたことを表すシーケンスATC_sequenceの数を示す。再生専用の媒体の場合、シーケンスATC_sequenceの数は、「1」にすることができるため、詳細は省略する。フィールドSPN_ATC_startは、シーケンスATC_sequenceの開始をパケット番号で表したものであり、シーケンスATC_sequenceが1つの場合には、クリップAVストリームファイルの先頭と一致し、値が「0」となる。
フィールドnum_of_STC_sequencesは、シーケンスATC_sequence上のシーケンスSTC_sequenceの数を表す。再生専用の媒体の場合、シーケンスSTC_sequenceの数は、「1」にすることができるため、詳細は省略する。フィールドoffset_STC_idは、値が「0」に固定的とされる。フィールドPCR_PIDは、MPEG2 TSにおいて、PCR(Program Clock Reference)が含まれるTSパケットのPIDを表す。フィールドSPN_STC_startは、シーケンスSTC_sequenceの開始をパケット番号で表したものであり、シーケンスSTC_sequenceが1つの場合には、クリップAVストリームファイルの先頭と一致し、値が「0」となる。フィールドpresentation_start_timeおよびフィールドpresentation_end_timeは、クリップAVストリーム中の有効な範囲を表す。フィールドpresentation_start_timeおよびフィールドpresentation_end_timeで示される範囲がプレイアイテムから参照できる範囲となる。
第68図は、ブロックProgramInfo()の一例の構造を表すシンタクスを示す。記録再生媒体用のシンタックス構造を再生専用媒体に適用することができ、新規の構造は無いので詳細な説明は省略する。フィールドnum_of_program_sequencesの値が「1」であること、フィールドnum_of_groupsの値が「1」であるなどの制限を加えることができる。
第69図は、ブロックStreamCodingInfo()一例の構造を表すシンタクスを示す。ブロックProgramInfo()と同様、記録再生媒体用のシンタックス構造と略同じ構造を有し、ビデオデータに関しては、ビデオデータのフォーマット、フレームレート、アスペクト比などの属性情報、オーディオデータに関しては、サンプリング周波数などの属性情報が記述される。再生専用媒体に適用する際には、この第69図に示されるように、字幕、オーディオストリームの言語を表すフィールドlanguage_codeを追加する必要がある。この情報は、プレーヤの言語設定に従って最適な音声・字幕の言語を選択する際に有用である。
第70図は、ブロックCPI()の一例の構造を表すシンタクスを示す。一般に、MPEGストリームのような、フレーム間圧縮を行っている符号化ストリームにおいては、デコード開始可能な箇所は、GOP(Group Of Picture)の先頭など一部の箇所に限定されている。CPI(Characteristic Point Information)とは、そのデコード可能な開始点の位置の情報を集めたデータベースで、再生時刻とファイル内アドレスとが対応付けられたテーブルになっている。CPIは、デコード単位の先頭位置を示す情報がテーブル化されている。
このようにデータベースを定めることで、例えば、任意の時刻から再生したい場合、再生時刻を元にCPIを参照することによって再生位置のファイル内アドレスがわかる。このアドレスは、デコード単位の先頭となっているため、プレーヤは、そこからデータを読み出してデコードし、素早く画像を表示することができる。
このCPIに格納される、デコード単位の先頭位置(この例ではGOPの先頭位置)を、EP(Entry Point)エントリと称する。
フィールドCPI_typeは、CPIの種類を表し、第71図に一例が示されるような値を取る。この発明の場合は、再生専用媒体用のCPIであることを示す値となる。具体的には、値が「8」とされ、BDMV用のEPエントリのマップ(EP_map_type_for_BDMV)が格納されることが示される。
第72図は、再生専用媒体用のEPエントリのマップEP_map、すなわち、上述のフィールドCPI_type内のブロックEP_map_for_BDMV()の一例のデータ構造を表すシンタクスを示す。マップEP_mapは、GOPの先頭位置について、再生時刻とファイル内アドレスを対応付けたテーブルである。第72図の例では、GOPの先頭位置について、MPEGのPTS(Presentation Time Stamp)とSPN(Source Packet Number)とが対応付けられたテーブルとしてデータベースが作られている。SPNは、ソースパケット番号を示し、ファイルの先頭からのバイトアドレスに相当する。
記録再生用のマップEP_mapの構造と、この再生専用媒体用のマップEP_mapの構造は、略同一とされている。この実施の一形態では、データ量の削減および検索の高速化のために、各値をcoarseとfineに分割し、大まかな単位での検索(coarse)と、より精密な単位での検索(fine)とを分けて行うことが可能なようにされている。そのため、内部構造がcoarseおよびfineのそれぞれに対応した二つのforループに分かれており、「GOPの最初のIピクチャのPTS対ファイル内アドレス」という単純なテーブルと比べて、多少複雑になっている。
フィールドEP_fine_table_start_addressは、より精密な検索を行うためのテーブルの位置が示される。次のforループは、フィールドPTS_EP_coarseおよびSPN_EP_coarseにより、大まかな単位で検索を行う(coarse)ためのテーブルが格納され、フィールドref_to_EP_fine_idにより、大まかな単位から参照される精密な検索(fine)のためのテーブルの番号が記述される。フィールドPTS_EP_coarseおよびSPN_EP_coarseは、それぞれPTSおよびSPNの上位側のビットが示される。
次に、パディングワードを挟んで、精密な検索を行うためのフィールドPTS_EP_fineおよびSPN_EP_fineが格納されるforループが配される。それと共に、フラグis_angle_change_pointおよびフィールドI_end_position_offsetが格納される。フラグis_angle_change_pointは、クリップAVストリームがマルチアングルを構成している場合に、各EPエントリがアングル切り替え可能点に該当しているか否かを示す。
2−9.デコーダモデル
第73図A、第73図Bおよび第73図Cは、この発明の実施の一形態に適用できるプレーヤデコーダ100の一例の構成を示す機能ブロック図である。このプレーヤデコーダ100は、図示されないドライブ装置に装填されたディスクから再生されたデータを解釈し、AVストリームを出力すると共に、出力されたAVストリームに対するユーザによるインタラクティブな操作を可能とする。
プレーヤデコーダ100は、図示されないCPU(Central Processing Unit)により全体の動作が制御される。例えば、プレーヤデコーダ100の各部におけるストリームやデータの流れは、CPUにより監視され、制御される。
以下の説明では、特に記載がない限り、独自コマンドを用いて記述されたシナリオがプレーヤデコーダ100で実行されるものとする。
図示されないドライブ装置にディスクが装填されると、上述したように、先ずファイル「scenario.hdmv」およびファイル「entrylist.data」が再生され、このファイル「scenario.hdmv」およびファイル「entrylist.data」の記述に基づき、必要な他のファイルが読み出され、ディスクに記録されたコンテンツが再生される。例えば、ファイル「scenario.hdmv」およびファイル「entrylist.data」の記述に基づき、動画プレーン10に表示するための動画データ、字幕プレーン11やグラフィクスプレーン12に表示するための画像データ、プレイリストファイルなどがディスクから読み出される。
以下では、ディスクから読み出されるこれらのデータのうち、動画データ、サブピクチャ(字幕データ)や音声データといった、連続的に処理する必要があるストリームをリアルタイムストリームと称する。そして、シナリオファイル、プレイリストファイルといった、連続的な処理を要求されない非リアルタイムなデータを、ストアオブジェクトと称する。ストアオブジェクトは、メモリ上などに蓄積、展開され、必要に応じて処理される。
プレーヤデコーダ100は、チャンネル(1)および(2)の2系統の入力チャンネルを有し、入力チャンネル(1)の入力端101に、ストアオブジェクトが入力される。入力チャンネル(2)の入力端202に、リアルタイムストリームが入力される。入力端202に、ストアオブジェクトを入力することも可能である。この実施の一形態では、入力端202に入力されるリアルタイムストリームおよび一部のストアオブジェクトは、例えばMPEG2 TSである。
入力端101に入力されるストアオブジェクトは、ディスクから読み出されたデータに限られない。例えば、プレーヤデコーダ100に対してインターネットなどのネットワーク接続機能を持たせ、ネットワークを介して取得されたストアオブジェクトを入力端101に対して入力するようにしてもよい。ボタン画像を表示させるための画像データや新たなシナリオデータなどを、ネットワークを介して取得し、入力端101から入力することが考えられる。これに限らず、字幕データなどリアルタイムストリームとして扱われるデータをネットワークを介して取得し、入力端101から入力することも可能である。
入力端202に入力されるリアルタイムストリームは、MPEG2 TSに限られない。パケット単位で伝送され、ビデオデータ、オーディオデータ、静止画像データなどを多重化可能であれば、他の形式のストリームを入力するようにしてもよい。このときには、後述するPIDフィルタ110は、そのストリーム形式に適合したデマルチプレクサとして用いられ、ビデオデータ、オーディオデータ、静止画像データなどを分離する。
ドライブ装置においてディスクの回転速度を2倍速などの高速回転としてディスクからの読み出し転送レートを上げ、時分割で動作させることにより、ディスクからの、チャンネル(1)および(2)の2系統の読み出しが実現可能である。
入力チャンネル(1)の系統について説明する。入力端101に入力されたストアオブジェクトは、スイッチ回路102に入力される。ストアオブジェクトとしてECMAスクリプトやHTMLファイルなどによるプログラムコードが入力された場合、スイッチ回路102において出力端102Aが選択され、入力されたプログラムコードがコードバッファ104に蓄えられる。
ストアオブジェクトとして画像データが入力された場合、スイッチ回路102において出力端102Bが選択され、入力された画像データがスイッチ回路103に入力される。入力端202に入力されたリアルタイムストリームに、字幕プレーン11やグラフィクスプレーン12に表示するための画像データが含まれていない場合には、スイッチ回路103で入力端103Aが選択され、スイッチ回路102から入力された画像データがコンテンツバッファ105に蓄えられる。
同様にして、入力端202に入力されたリアルタイムストリームに、字幕プレーン11やグラフィクスプレーン12に表示するための画像データが含まれている場合には、スイッチ回路103において入力端103Bが選択され、当該画像データがコンテンツバッファ105に蓄えられる。コードバッファ104およびコンテンツバッファ105に蓄えられたストアオブジェクトは、必要に応じて読み出され、マルチメディアエンジン106に供給される。
コンテンツバッファ105に蓄えられたストアオブジェクトのうち画像データは、スイッチ回路107および108をそれぞれ介して、グラフィクスデコーダA116およびグラフィクスデコーダB117にも供給される。
マルチメディアエンジン106は、XMLパーサ106A、スクリプトインタプリタ106Bおよびグラフィクスレンダラ106Cを含む。マルチメディアエンジン106は、独立的なハードウェアで構成してもよいし、上述した図示されないCPUの、所定のプログラムに基づく処理で実現することも可能である。
XMLパーサ106Aは、XML(Extensible Markup Language)文書を解析する機能を有し、HTML文書の解析も可能である。XMLパーサ106Aで解釈されたHTML文書は、このプレーヤデコーダ100で実行可能な形式に変換される。スクリプトインタプリタ106Bは、ECMAスクリプトを解析し、このプレーヤデコーダ100で実行可能な形式に変換される。グラフィクスレンダラ106Cは、画像データを、字幕プレーン11およびグラフィクスプレーン12に展開可能な形式にデコードする。
マルチメディアエンジン106において、バッファ109をワークメモリとして、これらXMLパーサ106A、スクリプトインタプリタ106Bおよびグラフィクスレンダラ106Cの処理が行われる。例えば、XMLパーサ106Aおよびスクリプトインタプリタ106Bにより、バッファ109のうちコードバッファ109Aが用いられる。グラフィクスレンダラ106Cにより、バッファ109のうちグラフィクスバッファ109Dが用いられる。バッファ109は、上述のコードバッファ109Aおよびグラフィクスバッファ109Dの他に、文字列の表示に用いるフォントデータが格納されるフォントバッファ109B、XMLパーサ106AでHTML文書を解析した結果を階層化された木構造で保持するためのツリーバッファ109Cなどが含まれる。
マルチメディアエンジン106では、例えば、シナリオ記述言語としてHTMLとECMAスクリプトとを組み合わせて用いている場合コードバッファ104に蓄えられたECMAスクリプトを読み出し、読み出されたECMAスクリプトの記述に基づいて用いられる。さらに必要に応じて、マルチメディアエンジン106は、コードバッファ104からの他のECMAスクリプトやHTML文書の読み出し、コンテンツバッファ105からの画像データの読み出しなどを行う。コードバッファ104およびコンテンツバッファ105に格納されたデータは、当該データが不要になるまで、コードバッファ104やコンテンツバッファ105に保持しておくことができる。したがって、これらコードバッファ104やコンテンツバッファ105に格納されたデータは、必要に応じて何度でも読み出して使うことができる。
マルチメディアエンジン106では、上述の他にも、入力された複数種類のデータのデマルチプレクス処理、JavaVM(Java(登録商標)仮想マシン)機能などが行われる。さらに、マルチメディアエンジン106により、ユーザからの、リモートコントロールコマンダやポインティングデバイスなどによる入力が受け取られ、それらの入力に基づく処理が行われる。ユーザ入力は、後述するグラフィクスデコーダA116、グラフィクスデコーダB117、オーディオデコーダ118、MPEGビデオデコーダ120およびシステムデコーダ121にも供給される。
グラフィクスレンダラ106Cで処理された画像データは、スイッチ回路130および131をそれぞれ介して字幕プレーン132およびグラフィクスプレーン133に供給される。この例では、字幕プレーン132およびグラフィクスプレーン133に供給される画像データは、PNG形式であるものとする。これらの各プレーン132、133に画像データが供給されるタイミングは、マルチメディアエンジン106により制御される。
字幕プレーン132およびグラフィクスプレーン133は、それぞれ上述した字幕プレーン11およびグラフィクスプレーン12に対応する。動画像プレーン134は、上述した動画プレーン10に対応する。字幕プレーン132、グラフィクスプレーン133および動画像プレーン134は、例えばフレームメモリからなる。
マルチメディアエンジン106は、後述するプレゼンテーションプロセッサ155に対して、動画像プレーン134、字幕プレーン132、ならびに、グラフィクスプレーン133を切り換える制御信号を供給する。同様に、マルチメディアエンジン106は、後述するプレゼンテーションプロセッサ157に対して、オーディオストリーム出力を制御するような制御信号を供給する。
次に、入力チャンネル(2)の系統について説明する。入力端202にMPEG2 TSで入力されたリアルタイムストリームは、PIDフィルタ110に供給され、MPEG2 TSのトランスポートパケットに格納されるPID(Packet Identification)が抽出され、当該トランスポートパケットに格納されるストリームの属性が検出される。PIDフィルタ110では、このストリーム属性に基づき、入力されたリアルタイムストリームが、トランスポートパケット毎に対応する系統に振り分けられる。
PIDに基づき、トランスポートパケットがストアオブジェクトに属する画像データが格納されているパケットであるとされれば、当該トランスポートパケットは、バッファTBn111Aに一旦溜め込まれ、所定のタイミングで読み出されて入力端103Bが選択されたスイッチ回路103に入力され、スイッチ回路103を介してコンテンツバッファ105に格納される。
PIDフィルタ110において、PIDに基づき、トランスポートパケットがサブピクチャデータが格納されているパケットであるとされれば、当該トランスポートパケットは、バッファTBn111BおよびバッファBn112Bに一旦溜め込まれ、所定のタイミングで読み出されて入力端107Bが選択されたスイッチ回路107に入力され、スイッチ回路107を介してグラフィクスデコーダA116に供給される。
グラフィクスデコーダA116では、供給されたトランスポートパケットのヘッダ情報を除去すると共に、当該トランスポートパケットに格納されたサブピクチャデータがデコードされて字幕等を表示するための画像データとされる。この画像データは、所定のタイミングでスイッチ回路130の入力端130Bに入力され、スイッチ回路130を介して字幕プレーン132に展開される。
ネットワークを介して取得されるなどの方法により、入力端101に字幕データが入力された場合、当該字幕データは、スイッチ回路102およびスイッチ回路103を介してコンテンツバッファ105に蓄えられ、さらに、スイッチ回路107で入力端107Aが選択されることで、コンテンツバッファ105からグラフィクスデコーダA116に供給される。
PIDフィルタ110において、PIDに基づき、トランスポートパケットがグラフィクスデータが格納されているパケットであるとされれば、当該トランスポートパケットは、バッファTBn111CおよびバッファBn112Cに一旦溜め込まれ、所定のタイミングで読み出されて入力端108Bが選択されたスイッチ回路108に入力され、スイッチ回路108を介してグラフィクスデコーダB117に供給される。
グラフィクスデコーダB117では、供給されたトランスポートパケットのヘッダ情報を除去すると共に、当該トランスポートパケットに格納されたグラフィクスデータがデコードされ、グラフィクスデータとされる。この画像データは、所定のタイミングでスイッチ回路131の入力端131Bに入力され、スイッチ回路131を介してグラフィクスプレーン133に展開される。
グラフィクスデコーダA116とグラフィクスデコーダB117には機能的な違いはない。モデル上、独立して動作するグラフィクスデコーダが2系統あることを表している。すなわち、字幕データとグラフィクスデータを独立にデコードできることを想定している。現実の実装においては、高速なグラフィクスデコーダを時分割で使用し、仮想的に2系統のグラフィクスデコーダが存在しているとみなす方法もある。
PIDフィルタ110において、PIDに基づき、トランスポートパケットがオーディオデータが格納されているパケットであるとされれば、当該トランスポートパケットは、バッファTBn111DおよびバッファBn112Dに一旦溜め込まれ、所定のタイミングで読み出されてオーディオデコーダ118に供給される。このトランスポートパケットに格納されるオーディオデータは、例えばMPEGに準拠した方式で圧縮符号化されている。
オーディオデコーダ118は、例えばリニアPCM(Pulse Code Modulation)オーディオデコーダ119も有する。オーディオデコーダ118は、入力されたトランスポートストリームのヘッダ情報を除去すると共に、当該トランスポートパケットに格納された圧縮符号化されたオーディオデータをリニアPCMオーディオデータにデコードする。
オーディオデコーダ118から出力されたリニアPCMオーディオデータは、オーディオ用のプレゼンテーションプロセッサ157に入力され、マルチメディアエンジン106の制御に基づき所定の音響効果などが付加されて、出力端158に導出される。
PIDフィルタ110において、PIDに基づき、トランスポートパケットが動画像データが格納されているパケットであるとされれば、当該トランスポートパケットは、バッファTBn111E、バッファMBn113およびバッファEBn114に一旦溜め込まれ、所定のタイミングで読み出されてMPEGビデオデコーダ120に供給される。このトランスポートパケットに格納される動画像データは、MPEG2方式により圧縮符号化されている。
MPEGビデオデコーダ120では、供給されたトランスポートパケットのヘッダ情報を除去すると共に、当該トランスポートパケットに格納された、MPEG2方式で圧縮符号化された動画像データをベースバンドの動画像データにデコードする。
MPEGデコーダ120から出力された動画像データは、スイッチ回路124の入力端124Aに入力されると共に、バッファ123を介してスイッチ回路124の入力端124Bに入力される。スイッチ回路124において、所定のタイミングで入力端124Aおよび124Bが選択され、出力された動画像データが動画像プレーン134に展開される。
PIDフィルタ110において、PIDに基づき、トランスポートパケットがシステム情報が格納されているパケットであるとされれば、当該トランスポートパケットは、バッファTBn111FおよびBsys115を介してシステムデコーダ121に供給される。システムデコーダ121では、供給されたトランスポートパケットのヘッダ情報が除去され、格納されているシステム情報が取り出される。システム情報は、例えば図示されないCPUに渡される。
字幕プレーン132上の画像データは、上述のパレット22に対応するパレット150に供給され、256色からなるパレットに対してインデックスによる参照がなされ、RGBデータが出力されると共に、透明度データα1が抜き出される。RGBデータは上述のRGB/YCbCr変換回路29に対応するRGB/YCbCr変換回路151によりYCbCrデータに変換され、YCbCrデータおよび透明度データα1は、プレゼンテーションプロセッサ155に供給される。
グラフィクスプレーン133上の画像データは、上述のパレット26に対応するパレット152に供給され、256色からなるパレットに対してインデックスによる参照がなされ、RGBデータが出力されると共に、透明度データα2が抜き出される。RGBデータは上述のRGB/YCbCr変換回路27に対応するRGB/YCbCr変換回路153によりYCbCrデータに変換され、YCbCrデータおよび透明度データα2は、プレゼンテーションプロセッサ155に供給される。
動画像プレーン134の出力は、アップ/ダウンコンバータ154を介してプレゼンテーションプロセッサ155に供給される。
アップ/ダウンコンバータ154は、画像の解像度を変換する回路であって、例えば高解像度のHD(High Definition)画像から通常の解像度を有するSD(Standard Definition)画像への変換を行う。
プレゼンテーションプロセッサ155は、第22図を用いて説明した、字幕プレーン11(字幕プレーン132)の画像データによる透明度α1と、グラフィクスプレーン12(グラフィクスプレーン133)による透明度α2とを用いたアルファブレンディング処理を行う。
プレゼンテーションプロセッサ155では、動画像プレーン134の画像データに対して、字幕プレーン132の画像データに設定された透明度α1に基づき、字幕プレーン132の画像データが合成される。動画像プレーン134および字幕プレーン132が合成された画像データに対して、グラフィクスプレーン133の画像データに設定された透明度α2に基づき、グラフィクスプレーン133の画像データが合成される。この、グラフィクスプレーン133の画像データ、字幕プレーン132の画像データ(字幕データ)、ならびに、動画像プレーン134の画像データが合成された画像データが出力端156に導出される。
プレゼンテーションプロセッサ155は、画像データに対してリアルタイムでエフェクト処理を行うこともできる。
字幕がサブピクチャデータとしてグラフィクスデコーダ116Aでデコードされ、字幕プレーン11に供給されるとして説明したが、字幕の表示は、この例に限定されない。例えば、字幕をテキストデータのような文字コードで供給することもできる。文字コードは、フォントバッファ109Bに記憶されたフォントデータを参照することで、文字列を表示するためのビットマップデータに変換される。
フォントデータは、例えばディスクから再生されてストアオブジェクトとして入力端101に入力され、スイッチ回路102を介してコードバッファ104に溜め込まれ、コードバッファ104からマルチメディアエンジン106を介してフォントバッファ109Bに供給される。
字幕を表示するための文字コードは、例えば、ディスクから再生されてストアオブジェクトとして入力端101から入力され、スイッチ回路102および103を介してコンテンツバッファ105に溜め込まれる。リアルタイムストリームとして入力端202から入力し、PIDフィルタ110およびバッファTBn111Aを介してスイッチ回路103に供給され、コンテンツバッファ105に溜め込まれるようにしてもよい。文字コードは、コンテンツバッファ105から読み出され、マルチメディアエンジン106に供給される。
文字コードの表示タイミングは、プログラムにより制御される。マルチメディアエンジン106は、文字コードの表示タイミングで、表示される文字コードに基づきフォントバッファ109Bを参照し、対応するフォントデータを選択する。例えば、文字コードが〔0x41〕、〔0x42〕、〔0x43〕、・・・(〔0x〕は、続く数値が16進表記されていることを示す)となっている場合、それぞれ対応する文字「A」、「B」、「C」、・・・を表示するためのフォントデータが選択される。そして、フォントデータを基に文字の飾りやグリフ形状を変化させ、プログラムで指定された大きさのビットマップデータを生成する(レンダリングと称する)。
生成されたビットマップデータは、スイッチ回路130を介して字幕プレーン132に供給される。これは、字幕表示は、動画像プレーン134上の動画と同期を取る必要があるためである。
文字コードのレンダリングは、マルチメディアエンジン106やシステムのCPUで行うのに限らず、専用のハードウェアを設けて行ってもよい。文字コードが参照するフォントデータは、ディスクから再生されたものに限らず、例えばネットワークを介して取得するようにしてもよいし、プレーヤのハードウェアが有するROM(Read Only Memory)などに予め記憶させておいてもよい。ユーザによりフォントデータの種類を選択させるようにすることも可能である。
字幕を文字コードで供給することで、予め画像データで供給される字幕データに比べ、字幕表示に要するデータ量が非常に少なくて済むメリットがある。
プレーヤデコーダ100の各部がハードウェアで構成されるように説明したが、これはこの例に限られない。例えば、プレーヤデコーダ100をソフトウェア上の処理として実現することも可能である。この場合、プレーヤデコーダ100をコンピュータ装置上で動作させることができる。プレーヤデコーダ100をハードウェアおよびソフトウェアが混合された構成で実現することもできる。例えば、オーディオデコーダ118やMPEGビデオデコーダ120をハードウェアで構成し、その他をソフトウェアで構成することが考えられる。
プレーヤデコーダ100をソフトウェアのみ、または、ハードウェアおよびソフトウェアの混合により構成し、コンピュータ装置で実行させるためのプログラムは、例えばCD−ROM(Compact Disc−Read Only Memory)といった記録媒体に記録されて提供される。このCD−ROMをコンピュータ装置のCD−ROMドライブに装填し、CD−ROMに記録されたプログラムを所定のコンピュータ装置にインストールすることで、上述の処理をコンピュータ装置上で実行可能な状態とすることができる。コンピュータ装置の構成は、極めて周知であるため、説明は省略する。
2−10.ボタンについて
この発明の実施の一形態によるユーザインターフェイスについて、より詳細に説明する。第74図は、グラフィクスプレーン12上に表示されるボタン表示の一例の状態遷移図である。ボタン表示の状態は、画面にボタンが表示されるボタン表示状態と、画面にボタンが表示されていないボタン非表示状態とに大別される。ボタン非表示状態からボタン表示が開始されボタン表示状態に遷移する。ボタン表示状態からボタン表示が終了され、ボタン非表示状態に遷移する。ボタン表示状態は、さらに、通常状態、選択状態および実行状態の3種類の状態を有する。ボタン表示は、これら3種類の状態間をそれぞれ互いに遷移することができる。遷移方向を一方向に限定することも可能である。
上述の第25図を用いて、より具体的に説明する。先ず、ディスク挿入時や、ユーザがリモコンのメニューキーを押したときに、メニュー画面60が表示される。メニュー画面60の表示に伴い、ボタン62A、62B、62C、63D、64および65が非表示状態から表示状態へと遷移する。ボタン表示開始時は、ボタン62A、62B、62C、63D、64および65のうち一つが予め選択状態にされていることが多い。例えばボタン62Aが予め選択状態とされ、他のボタンが通常状態とされているものとする。
この状態で、ユーザがリモコンの例えば矢印キーを操作すると、通常状態のボタンの一つ(例えばボタン62B)が選択状態に遷移すると共に、選択状態だったボタン62Aが通常状態へと遷移する。このようにして、ユーザ操作によってカーソルが移動していく。ユーザがリモコンの決定キーを操作すると、そのときに選択状態にあったボタン62Bが選択状態から実行状態へと遷移し、当該ボタン62Bに予め割り当てられているプレーヤ動作が実行される。
上述したように、プレーヤ動作は、独自コマンドによるプログラミング言語やECMAスクリプトなどのスクリプト言語により記述され、ディスク上に記録され用意されている。このプレーヤ動作に関する記述は、独立したファイルとしてディスク上に記録してもよいし、後述するグラフィックオブジェクトのように、クリップAVストリームファイルに多重化することも可能である。プレーヤ動作に関する記述をネットワークを介してプレーヤ内部のメモリやストレージ装置にダウンロードすることも考えられる。
このようなメニュー画面を構成するボタンなどの画像データおよび当該画像データに付随する制御情報のデータ構造について説明する。ディスクに収録されるコンテンツ本体をなす動画以外に表示される映像要素として、字幕およびグラフィクス(静止画)を考える。画面に表示される字幕やグラフィクスといった要素をオブジェクトとして考え、オブジェクトの種類を、第75図に示されるように、字幕、同期型グラフィクスおよび非同期型グラフィクスの3種類に分類する。
字幕とは、例えば映画の字幕のように、動画と同期して表示/非表示の切り換えが行われ、リモコンなどによるユーザ入力とは無関係な映像要素を指す。グラフィクスとは、メニュー画面上のボタンなどのように、ユーザ入力を受け付けることができる映像要素とする。グラフィクスは、同期型グラフィクスおよび非同期型グラフィクスの2種類に分類される。同期型グラフィクスとは、例えば本編再生中のあるタイミングに表示される分岐選択画面のように、動画と同期して表示される映像要素とする。非同期型グラフィクスとは、ディスク挿入時に最初に表示されるメニュー画面や、ユーザ入力に応じて表示される画面など、本編の再生とは非同期に表示される映像要素を指す。JavaVM上で動作するJavaアプリケーションにより表示される映像要素や、ブラウザソフトウェア上でHTMLファイルの記述に基づき表示される映像要素は、非同期グラフィクスである。
各映像要素と動画プレーン10に表示される本編映像との関係からいえば、字幕および同期型グラフィクスは、本編映像に同期して表示されるため、共に同期型である。一方、非同期型グラフィクスは、上述のように本編映像と非同期で表示されるので、その名の示す通り、非同期型である。
字幕とグラフィクスとは、表示先のプレーンの違いから分類することができる。字幕は、字幕プレーン11に表示される。同期型および非同期型グラフィクスは、グラフィクスプレーン12に表示される。
字幕および同期型グラフィクスは、本編の動画再生中に表示するという共通の性質を持つことから、共通のデータ構造とすることが好ましい。以下では、これら共通のデータ構造とされる字幕および同期型グラフィクスを、グラフィクスオブジェクトと称する。グラフィクスオブジェクトは、常に動画再生と同期して表示されるため、動画と同一のストリームに多重化しておくと、扱いが容易になる。
第76図A、第76図Bおよび第76図Cは、この発明の実施形態におけるグラフィクスオブジェクト200のデータ構造の例を示す。グラフィクスオブジェクト200は、第76図Aに一例が示されるように、グラフィクスオブジェクトヘッダ201、表示制御命令テーブル202およびPNGデータ領域203、音声データ領域204の4つの領域からなる。
以下の例では、グラフィクスオブジェクト200で扱われる画像データの形式をPNG形式とし、画像データをPNG画像データとしているが、JPEG形式なビットマップデータ、ランレングス圧縮された画像データ、圧縮符号化がなされていないビットマップデータなど、他の形式の画像データをグラフィクスオブジェクト200で扱うことも可能である。便宜上、画像データをPNG画像、PNG画像データなどと表現する。
第76図A、第76図Bおよび第76図Cにおいて、グラフィクスオブジェクトヘッダ201は、当該グラフィクスオブジェクト200の属性を表す情報が格納される。グラフィクスオブジェクト200の属性は、例えば、当該グラフィクスオブジェクト200のデータサイズ、当該グラフィクスオブジェクト200が有するPNG画像数、当該グラフィクスオブジェクト200が有するPNG画像データが共通に使用するパレットデータ、ならびに、当該グラフィクスオブジェクト200を識別する識別情報からなる。識別情報は、例えばグラフィクスオブジェクト200毎に一意に割り当てられた番号である。グラフィクスオブジェクトヘッダ201に、さらに他の情報を格納してもよい。
表示制御命令テーブル202は、当該グラフィクスオブジェクト200が有するPNG画像の表示位置、表示開始時刻および表示終了時刻といった、PNG画像の表示を制御するための情報が格納されるテーブルである。
PNGデータ領域203は、PNG形式で圧縮符号化された画像データ(以下、PNGデータと称する)が格納される。PNGデータ領域203には、複数のPNGデータ203A、203B、・・・、203nを格納することができる。PNGデータ領域203に格納されるPNGデータ203の数は、グラフィクスオブジェクトヘッダ201に記述されている。
PNGデータ領域203に格納される複数のPNGデータ203A、203B、・・・、203nは、アニメーションを構成する複数枚の静止画の組や、上述したボタン表示の3状態を表す画像といった、相互に関連の強い画像であることを想定している。これらを、一つのグラフィクスオブジェクト200に纏めることで、PNG画像の扱いを容易にすることができる。
音声データ領域204については、後述する。
グラフィクスオブジェクト200は、表示が可能になる時刻を示す時刻情報を有する。リアルタイムストリームがMPEG2 TSで伝送されるこの例では、この時刻情報として、MPEG2(Moving Pictures Experts Group 2)により定義された、pts(Presentation Time Stamp)を用いる。ptsは、再生出力の時刻管理情報で、90kHzのクロックで計測した値を33ビット長で表す。MPEGシステムの基準復号器内部のSTC(System Time Clock)がptsに一致したときに、対象となるアクセスユニットを再生出力する。一つのグラフィクスオブジェクト200は、ptsで表される時刻から表示が可能になり、その時刻以降に、表示制御命令により実際に表示のON/OFFが行われる。表示制御命令により表示の管理を行うため、表示を停止した後に再度、同じグラフィクスオブジェクト200を表示させるような制御が可能である。
第76図Bは、字幕を格納するグラフィクスオブジェクト200の例を示す。PNGデータ領域203に、字幕として表示する画像がPNGデータ(1)203A−1として格納される。通常、字幕であれば、一つのグラフィクスオブジェクト200に含まれるデータは、PNGデータ(1)203A−1一つで十分である。表示制御命令テーブル202に対して、PNGデータ(1)A−1の表示属性(透明度、表示色など)を変化させる命令を加えることで、PNGデータ(1)A−1自体を変更せずに、PNGデータ(1)A−1の表示を変化させることができる。
例えば、字幕に対して、フェードイン/フェードアウトのような、画像の内容が変化しない特殊効果を施すときは、表示制御命令テーブル202に対してPNGデータ(1)A−1の透明度を変化させる表示制御命令を加えることで、実現できる。フェードイン/フェードアウトを行う際に、PNGデータ(1)A−1自体を変更する必要が無い。同様に、表示制御命令テーブル202に対して、PNGデータ(1)A−1が参照するパレットデータを変更する表示制御命令を加えることで、PNGデータ(1)A−1自体を変更せずに、表示色だけを変更させることができる。
字幕に対して、アニメーションなどのような、画像そのものが変化するような効果を施す場合には、第76図Bに点線で示されるように、アニメーションの各動作に対応する複数のPNGデータ(2)B−1、PNGデータ(3)C−1、PNGデータ(4)D−1、・・・を、一つのグラフィクスオブジェクト200に格納すればよい。これに限らず、日本語字幕、英語字幕など、言語が異なる字幕を表示するPNGデータをPNGデータ(1)A−1、PNGデータ(2)B−1、・・・として、一つのグラフィクスオブジェクト200に格納することもできる。
第76図Cは、ボタンを構成するグラフィクスオブジェクト200の例を示す。ボタンは、上述したように、通常状態、選択状態および実行状態の3種類の状態を有し、これら3種類の状態のそれぞれでボタン表示を異ならせることができる。3種類の状態でボタン表示を異ならせる場合、3枚のボタン画像データを用意しておく必要がある。これら3枚のボタン画像データを、ひとまとまりのグラフィクスオブジェクト200として扱う。グラフィクスオブジェクト200のPNGデータ領域203に、通常状態、選択状態および実行状態それぞれのボタン表示に用いるPNGデータ203A−2、203B−2および203C−2を格納する。
第76図Bに実線で示される通常の字幕のように、グラフィクスオブジェクト200内に一つだけ字幕表示のPNGデータ203A−1が存在する場合には、当該グラフィクスオブジェクト200内の表示制御命令テーブル202に格納される表示制御命令は、そのPNGデータ203A−1に対するものとなる。第76図Cに一例が示されるような、グラフィクスオブジェクト200内に、複数のPNGデータ203A−2、203B−2および203C−2が存在する場合、表示制御命令テーブル202に格納される表示制御命令が、複数のPNGデータ203A−2、203B−2および203C−2のうちどのデータに対する表示制御命令であるかを特定する必要がある。
例えば、第76図Cに例示される、ボタンのグラフィクスオブジェクト200においては、このボタンの表示開始時の初期状態が選択状態と定められている場合は、最初に表示するボタン画像は、PNGデータ領域203の先頭に配置される、通常状態時のPNGデータ203A−2ではなく、選択状態時のPNGデータ203B−2としなければならない。この発明の実施の第1の形態では、このような表示制御は、グラフィクスオブジェクト200の外で行うようにしている。
例えば、各ボタンの初期状態や、表示開始および表示停止、ボタンが実行状態に遷移された際に実行されるプログラムなどは、グラフィクスオブジェクト200外部のスクリプトプログラム、例えば上述のECMAスクリプトやJavaScriptによって指定する方法が考えられる。また、ボタンの表示中における、ボタン表示を行うPNGデータの変更は、例えばユーザがリモコンの矢印キーを操作し、カーソルを移動させた際に発生する。この場合には、プレーヤがユーザ入力に応じて各ボタンのPNGデータを入れ替えることになる。
この発明の実施の一形態では、グラフィクスオブジェクト200は、MPEG2に規定されるパケットに分割され、クリップAVストリームに多重化され、クリップAVストリームファイルとしてディスクに記録される。第77図に一例が示されるように、グラフィクスオブジェクト200は、分割され、MPEG2に規定されるPES(Packetized Elementary Stream)パケット210、210、・・・に格納される。このとき、グラフィクスオブジェクトヘッダ201および表示制御命令テーブル202、ならびに、各PNGデータ203A、203B、・・・、203nそれぞれの先頭が、PESパケット210、210、・・・のペイロードの先頭に合致するように、データが配置される。こうすることで、再生時に、グラフィクスオブジェクト200内の各データの検索が容易となる。
こうして分割されてPESパケット210、210、・・・に格納されたグラフィクスオブジェクト200は、さらに、データサイズが188バイトに固定されたTSパケットに分割され(図示しない)、クリップAVストリームなどの動画データや音声データによるストリームに多重化される。
第78図は、グラフィクスオブジェクト200のデコードを行うグラフィクスオブジェクトデコーダモデル240の一例の構成を示す機能ブロック図である。このグラフィクスオブジェクトデコーダモデル240は、第73図A、第73図Bおよび第73図Cを用いて説明したプレーヤデコーダ100におけるマルチメディアエンジン106およびグラフィクスデコーダA116を中心に構成される。グラフィクスデコーダB117の機能は、グラフィクスデコーダA116と同一であるので、ここでの説明では、グラフィクスデコーダA116を想定することにする。第78図において、第73図A、第73図Bおよび第73図Cと共通する部分には同一の符号を付して詳細な説明を省略する。この第78図は、より機能面に注目して表現されており、上述の第73図A、第73図Bおよび第73図Cとは異なる表現がなされている場合があるので、必要に応じて第73図A、第73図Bおよび第73図Cの構成と対応付けながら説明する。
端子202からMPEG TSとして入力されたクリップAVストリームがPIDフィルタ110に供給される。PIDフィルタ110は、MPEG2 TS(トランスポートストリーム)に対するデマルチプレクサとして機能し、供給されたMPEG TSのPIDに基づき、動画像データ、オーディオデータおよびグラフィクスオブジェクト200をそれぞれ抜き出す。動画像データは、ビデオバッファとしてのバッファTBn111Eに供給される。オーディオデータは、オーディオバッファとしてのバッファ111Dに供給される。グラフィクスオブジェクト200は、グラフィクスオブジェクト(第78図では「GOBJ」と表記)の入力バッファであるバッファTBn111Bに供給される。
グラフィクスオブジェクト200は、バッファTBn111Bから読み出され、GOBJパーサ224に供給される。GOBJパーサ224は、例えば第73図におけるグラフィクスデコーダA116の機能の一つである。GOBJパーサ224では、供給されたグラフィクスオブジェクト200のグラフィクスオブジェクトヘッダ201を読み取り、パレットデータを抽出すると共に、表示制御命令テーブル202、PNGデータ領域203および音声データ領域204を分離する。パレットデータおよび表示制御命令テーブル202は、コマンドプロセッサ/グラフィックレンダラ225に供給される。PNGデータ領域203のPNGデータ203A、203B、・・・は、PNGデコーダバッファ226に一時的に格納される。PNGデコーダバッファ226は、例えば第73図A、第73図Bおよび第73図CにおけるバッファBn112Bに対応する。
音声データ領域204の音声データ204A、204B、・・・、204nはコマンドプロセッサ/グラフィックレンダラ225に供給され、図示されないバッファにそれぞれ溜め込まれる。
PNGデコーダバッファ226に格納されたPNGデータ203は、グラフィクスデコーダA116の機能の一つであるPNGデコーダ227によりデコードされ、ビットマップデータとされる。このビットマップデータは、オブジェクトバッファ228に蓄積される。オブジェクトバッファ228は、第73図A、第73図Bおよび第73図Cにおいては、デコーダ116が内部で持つバッファメモリに対応する。ソフトウェアによるデコードにおいては、第73図A、第73図Bおよび第73図Cにおけるグラフィクスバッファ109Dに対応する。
コマンドプロセッサ/グラフィックレンダラ225は、GOBJパーサ224から供給された表示制御命令テーブル202に記述される表示制御命令に従い、オブジェクトバッファ228に蓄積されているビットマップデータを読み出して指定された時刻にプレーンバッファ229に転送する。プレーンバッファ229は、例えば第73図A、第73図Bおよび第73図Cにおける字幕プレーン132およびグラフィクスプレーン133に対応させることができる。例えば、字幕と、字幕以外のグラフィクスオブジェクトとに対してそれぞれプレーンバッファ229A、229B(図示しない)を設けることができる。これに限らず、字幕プレーン132およびグラフィクスプレーン133を、プレーンバッファ229上の異なる領域とすることもできる。
コマンドプロセッサ/グラフィックレンダラ225は、GOBJパーサ224から供給されたパレットデータを、第73図A、第73図Bおよび第73図Cのパレット150に対応する共通パレットテーブル230に供給する。コマンドプロセッサ/グラフィックレンダラ225は、第73図A、第73図Bおよび第73図Cのマルチメディアエンジン106の一部の機能およびグラフィクスデコーダA116の一部の機能を併せ持つ。
コマンドプロセッサ/グラフィックレンダラ225は、GOBJパーサ224から供給された表示制御命令テーブル202に記述される表示制御命令に従い、バッファから音声データを読み出し、出力する。グラフィクスオブジェクト200に格納された音声データ204A、204B、・・・、204nが圧縮符号化されている場合には、コマンドプロセッサ/グラフィックレンダラ225において復号化されて出力される。
コマンドプロセッサ/グラフィックレンダラ225から出力された音声データは、オーディオミキサ231に供給され、プレゼンテーションプロセッサ157に対して出力される。オーディオミキサ231に他の音声データも入力されている場合には、これらの音声データが所定の割合で混合されて出力される。
グラフィクスオブジェクト200がボタンを構成するものである場合、ボタンの3種類の状態にそれぞれ対応したPNGデータ203A、203Bおよび203Cがグラフィクスオブジェクト200に格納される。PNGデータ203A、203Bおよび203Cは、PNGデコーダ227でデコードされ、オブジェクトバッファ228にそれぞれ蓄積される。
ユーザのリモコンなどによる入力が、コマンドプロセッサ/グラフィックレンダラ225により受け取られる。コマンドプロセッサ/グラフィックレンダラ225は、このユーザ入力に応じて、オブジェクトバッファ228から該当するビットマップを読み出して、プレーンバッファ229に転送する。例えば、ユーザ入力があるボタンに対して選択状態から実行状態に状態遷移させるものであれば、オブジェクトバッファ228から、実行状態のボタン画像に対応するビットマップデータが選択的に読み出されて、プレーンバッファ229に転送される。
コマンドプロセッサ/グラフィックレンダラ225は、オブジェクトバッファ228から読み出したビットマップデータに対して、表示制御命令に従い部分切り出しなどの特殊効果処理を施すこともできる。
この実施の一形態では、PNGデータは、1画素のサンプリング深さが8ビットとされているため、プレーンバッファ229は、1画素当たり8ビットのデータが並んでいることになる。プレーンバッファ229は、ディスプレイ装置などに実際に画像を表示させる処理を行う表示系の走査周期毎に読み出される。プレーンバッファ229から読み出されたビットマップデータは、例えば第73図A、第73図Bおよび第73図Cのパレット150に対応できる共通パレットテーブル230に供給され、パレットインデックス値から実際のRGB(4:4:4)の色情報に変換されると共に、透明度データα1、α2が抜き出される。RGB(4:4:4)の色情報は、図示されない変換回路でYCbCr(4:4:4)の色情報に変換され、透明度データα1、α2と共に、第73図A、第73図Bおよび第73図Cのプレゼンテーションプロセッサ155に供給される。
例えばフェードイン/フェードアウトなどの、パレットや透明度を変える処理が必要な特殊効果は、コマンドプロセッサ/グラフィックレンダラ225が表示制御命令に従い共通パレットテーブル230のデータを変化させることで実現される。字幕と、字幕以外のグラフィクスオブジェクト200に対して、それぞれ共通パレットテーブル230A、230B(図示しない)を設けてもよい。
第79図A、第79図B、第79図Cおよび第79図Dは、グラフィクスオブジェクト入力バッファ(バッファTBn111B、以下GOBJ入力バッファ)、PNGデコーダ227、オブジェクトバッファ228およびプレーンバッファ229における蓄積データ量の遷移の例を概略的に示す。PNGデコーダ227は、PNGデコーダ227がPNGデータのデコード時に用いるバッファにおける蓄積データ量が示されている。
第79図A、第79図B、第79図Cおよび第79図Dの例では、3つのグラフィクスオブジェクトGOBJ#1、GOBJ#2およびGOBJ#3によるデータ量の遷移が時間の経過に従い示される。グラフィクスオブジェクトのデコード開始時刻は、MPEG2システムにおけるdts(Decoding Time Stamp)で表される。オブジェクトの有効期間は、開始時刻がptsで表され、グラフィクスオブジェクトヘッダ201内に記述される時刻presentation_endで終了される。この有効期間内に、表示制御命令によって画像の表示開始および終了が指示される。
第79図Dを参照し、GOBJ入力バッファにグラフィクスオブジェクトGOBJ#1のPNGデータが入力され、時刻dts of GOBJ#1に、このPNGデータのデコードが開始される。第79図Cを参照し、PNGデータがGOBJ入力バッファからPNGデコーダ227に転送され、PNGデータがビットマップデータにデコードされる。実際には、PNGデータは、GOBJ入力バッファから一旦PNGデコーダバッファ226に溜め込まれ、PNGデコーダ227は、PNGデコーダバッファ226に溜め込まれたデータを用いてデコード処理を行う。
PNGデコーダ227は、デコード速度に上限があるため、GOBJ入力バッファからPNGデコーダバッファ226に対して、PNGデコーダ227のデコード速度を超えないような転送速度でデータが供給される。そのため、PNGデコーダバッファ226に対して、PNGデコーダ227への転送時間を0とした概念モデル上の場合の垂直線に対し、ある傾きAに対応するデータ転送レートで以てPNGデータが入力される。
PNGデータのPNGデコーダ227への入力が完全に終了していなくても、PNGデータのデコードを開始することが可能である。この第79図A、第79図B、第79図Cおよび第79図Dの例では、GOBJ入力バッファに格納されたオブジェクトGOBJ#1が全てPNGデコーダ227に転送された後、次のオブジェクトGOBJ#2のPNGデータの、GOBJバッファへの入力が開始されている。
オブジェクトGOBJ#2およびオブジェクトGOBJ#3についても、ある傾きBおよびCにそれぞれ対応する転送レートで以て、PNGデコーダバッファ226に対してPNGデータが入力される。傾きBは、実際には、複数の区間でそれぞれ異なる傾きとなっている。
時刻pts of GOBJ#1によりオブジェクトGOBJ#1の有効期間が開始されると、デコードされPNGデコーダバッファに蓄積された、オブジェクトGOBJ#1のビットマップデータがオブジェクトバッファ228に転送される(第79図B)。オブジェクトバッファ228に転送されたオブジェクトGOBJ#1は、このオブジェクトGOBJ#1に対して時刻presentation end of GOBJ#1(GOBJ#1の提示終了)で示される時刻まで、有効期間が持続される。
オブジェクトGOBJ#1の有効期間内に、命令Display ON cmd.of GOBJ#1(GOBJ#1の表示開始指示)によりオブジェクトGOBJ#1の表示命令が出されたら、オブジェクトバッファ228に蓄積されたオブジェクトGOBJ#1のビットマップデータがプレーンバッファ229に転送され、表示される(第79図A)。詳細は後述するが、ビットマップデータをプレーンバッファ229へ転送する際の転送レートは、バス幅などの影響により上限を有する。そのため、プレーンバッファ229に対するビットマップデータの書き込みは、例えばある傾きDに対応する転送レートで以て行われる。
他のオブジェクトGOBJ#2やオブジェクトGOBJ#3についても同様に、ある傾きE、F、Gに対応する転送レートで以てビットマップデータが転送され、プレーンバッファ229に書き込まれる。
表示は、オブジェクトGOBJ#1に対して表示停止を命令するコマンドDisplay OFF cmd.of GOBJ#1(GOBJ#1の表示終了指示)が出されるまで、持続される。コマンドDisplay OFF cmd.of GOBJ#1が出されると、プレーンバッファ229に格納された当該オブジェクトGOBJ#1のビットマップデータが破棄され、表示が停止される。
GOBJバッファには、オブジェクトGOBJ#2およびGOBJ#3のPNGデータも、順次、入力される。そして、オブジェクトGOBJ#1の場合と同様に、時刻dts of GOBJ#2、時刻dts of GOBJ#3からそれぞれデコード開始が指示され、PNGデータがPNGデコーダ227に供給され、PNGデコーダバッファを用いてビットマップデータへのデコードが行われる。そして、オブジェクトGOBJ#2に対して時刻pts of GOBJ#2により有効期間開始が指示され、第79図では省略されているが、コマンドDisplay ON cmd.of GOBJ#2によりオブジェクトGOBJ#2の表示命令が出され、オブジェクトバッファ228からプレーンバッファ229にビットマップデータが転送され、コマンドDisplay OFF cmd.of GOBJ#2が出されるまで、オブジェクトGOBJ#2が表示される。
この第79図A、第79図B、第79図Cおよび第79図Dの例では、オブジェクトGOBJ#2は、一旦、図示されないコマンドDisplay OFF cmd.of GOBJ#2により表示が停止された後、再びコマンドDisplay ON cmd.of GOBJ#2による表示が再開されている。オブジェクトバッファ228に格納されたオブジェクトGOBJ#2のビットマップデータは、オブジェクトGOBJ#2に対して有効期間終了時刻presentasion end of GOBJ#1を指定するまで保持されるため、コマンドDisplay ON cmd.of GOBJ#2を与えることにより、繰り返しオブジェクトGOBJ#2を表示させることができる。
オブジェクトGOBJ#3は、オブジェクトGOBJ#2の有効期間中に重複して、有効期間が指定されている。この場合、オブジェクトバッファ228は、空き容量に応じて、複数のビットマップデータを互いに異なる領域に格納する。例えば、オブジェクトバッファ228からオブジェクトGOBJ#2のビットマップデータをプレーンバッファ229に転送して表示中に、オブジェクトバッファ228の異なる領域からオブジェクトGOBJ#3のビットマップデータをプレーンバッファ229に転送することで、2枚のビットマップデータを同時に表示させることができる。
2−11.グラフィクスの転送速度について
このグラフィクスオブジェクトデコーダモデル240(以下、デコーダモデル240と略称する)をプレーヤに実装する場合について考える。同一ディスクを異なるプレーヤで再生した際の、プレーヤ同士の再生互換性を保つためには、デコーダモデル240に対して所定の制限を設けることが必要となる場合がある。例えば、デコーダモデル240のグラフィクス処理能力には上限があり、その能力を超えるグラフィクスデータが入力された場合には、グラフィクスデータのデコードを完全に行うことができなくなり、正常な表示を行うことができなくなる。
プレーヤ側では、プレーヤが最小限備える必要のあるグラフィクス処理能力を規格により定める。一方、ディスク側では、ディスクに記録するコンテンツを制作する側において、規格により定められたプレーヤの能力の範囲内で処理可能なグラフィクスを用意する。このようにしてプレーヤ側とディスク制作側とでグラフィクス処理能力の整合性を図ることで、再生互換性を保つことができる。
この発明の実施の一形態では、上述の第78図における、GOBJパーサ224からPNGデコーダバッファ226へのデータ転送速度R(1)と、コマンドプロセッサ225からプレーンバッファ229へのデータ転送速度R(2)とを規定する。
データ転送速度R(1)は、PNGデコーダバッファ226に入力されるデータの、単位時間当たりのデータ転送量を規定する。すなわち、上述の第79図Cに示される傾きA、BおよびCがデータ転送速度R(1)に対応する。これは、PNGデコーダバッファ226の後に接続されるPNGデコーダ227の、圧縮符号化されたグラフィクスデータを単位時間当たりにデコードできる量を示すデコード能力を規定する。したがって、データ転送速度R(1)を制限することで、入力された圧縮符号化グラフィクスデータに対してデコードが間に合わなくなり、表示などが破綻状態になる状況が防止される。
データ転送速度R(2)は、画像の更新速度を規定する。プレーンバッファ229は、実際に表示装置に表示される画面に対応している。プレーンバッファ229へのデータの書き込み速度によって、ユーザが見るグラフィクスの更新速度が決まる。データ転送速度R(2)の単位は、[バイト/秒]であって、プレーン全体すなわち全画面を更新する際の最小更新時間間隔を規定する。上述の第79図Aに示される傾きD、E、FおよびGがデータ転送速度R(2)に対応する。
プレーンの一部だけを更新する場合には、更新される画像データが少ないためデータ転送速度R(2)で規定される最小更新時間間隔よりも短い周期で更新される。更新間隔は、更新される画像データのデータ量に反比例するとは限らず、当該画像データのプレーン上の配置により大きく影響される。
プレーンの更新速度について、第80図を用いてより具体的に説明する。オブジェクトバッファ228には、2個のグラフィクスオブジェクト460および461が格納されているものとする。これら2個のグラフィクスオブジェクト460および461を、同時にプレーンバッファ229に書き込み表示させることを考える。
グラフィクスオブジェクト460および461は、オブジェクトバッファ228から読み出され、コマンドプロセッサ/グラフィックレンダラ225に供給される。このコマンドプロセッサ/グラフィックレンダラ225からの出力が上述のデータ転送速度R(2)により制限され、画面上の更新速度(更新間隔)が制限されることになる。
しかしながら、書き換えデータ量が同一のオブジェクトであっても、画面上の更新速度は、オブジェクトのプレーン上の位置、さらにオブジェクトの変形や移動などによって変化してしまい、見積もることが難しい。第80図の例では、更新速度は、グラフィクスオブジェクト460および461の合計のデータ量ではなく、グラフィクスオブジェクト460および461を、プレーン上にどのように配置するかによって決まる。
そこで、プレーンバッファへの書き換えデータ量について、ウィンドウと称する矩形の更新領域を定義した。これにより、以下に説明するように、最小更新時間間隔を見積もることが可能となり、実装の実現性と再生互換性を高めることができるようになる。定義される領域が矩形であるため、グラフィクス処理を行う一般的なグラフィクスプロセッサに対して容易に適用可能で実現性が高い考え方である。以下、このウィンドウの定義に基づくモデルをウィンドウモデルと称する。
例えば、第80図においては、プレーン上に配置されるグラフィクスオブジェクト460および461を全て含む矩形領域462で以て、プレーンの更新がなされる。コマンドプロセッサ/グラフィックレンダラ225において、グラフィクスオブジェクト460および461の配置情報に基づき矩形領域462の画像データが形成される。この矩形領域462の画像データが例えば転送バスを介してプレーンバッファ229に供給される。プレーンバッファ229では、例えば表示位置の指定に基づき、矩形領域462に対応する領域のデータが、新たに供給された矩形領域462のデータと置き換えられる。
コマンドプロセッサ/グラフィックレンダラ225から出力される画像データは、ビットマップデータであるので、画像の内容によらず、画像の面積に応じたデータ量を有することになる。第80図の例の場合、2個のグラフィクスオブジェクト460および461を含む矩形領域462の画像データ量は、例えば幅(width)および高さ(Height)をそれぞれ画素数で表すとき〔幅(width)×高さ(Height)〕バイトで表すことができる。この矩形領域462をウィンドウと呼ぶことにする。ウィンドウは、1または複数個のグラフィクスオブジェクトを完全に含むと共に、面積が最小となるようにすると、転送データ量が最小になり好ましい。
プレーンバッファ229へのデータ転送速度が速度R(2)〔バイト/秒〕とされていることから、これら2個のグラフィクスオブジェクト460および461は、{速度R(2)/(幅×高さ)}秒の時間で更新できることが分かる。ある幅および高さのウィンドウがプレーンバッファ229に転送されてから少なくとも{速度R(2)/(幅×高さ)}秒後には、次のグラフィクスオブジェクトの描画が可能となる。ディスク制作側では、次のグラフィクスオブジェクトの描画を、少なくともこの時間以上の間隔を空けて行うようにプログラムすることで、どのプレーヤでも同一のグラフィクス表示がなされ、再生互換性を保つことができる。
以上のように、同時に表示制御される複数オブジェクトを囲む矩形領域をウィンドウと定義し、ウィンドウのデータ量を転送速度R(2)で割ることにより、ウィンドウの最短更新間隔を見積もることができる。
オブジェクトを消去する際にも、プレーンへの書き込みが必要になる。上述したウィンドウモデルにおいては、ウィンドウ全体を透明色で書き換えればよい。そのときの時間も、ウィンドウの最短更新間隔と同じである。
オブジェクトが変形する、あるいはオブジェクトがプレーン上を移動するグラフィクスを制作したい場合でも、上述したウィンドウモデルは、動作速度を見積もることができる。例えば、第81図Aのようにオブジェクトが時間と共に変形する場合は、第81図Bのように、時間により変化するオブジェクトを全て含む矩形領域(xmin,ymin),(xmax,ymax)をウィンドウと定義すればよい。例えば、第82図Aの例のようにオブジェクトが時間と共に移動する場合は、第82図Bのように、オブジェクトが移動する軌跡を全て含む矩形領域(xmin,ymin),(xmax,ymax)をウィンドウと定義すればよい。
ウィンドウは、プレーンに複数個(例えば2個)作ることが許される。このとき、同一プレーン上の複数個のウィンドウは、互いに重なり合わないものとする。
この発明の実施の一形態では、以上のようなウィンドウモデルを定義することによって、表示するオブジェクトの数、形状、大きさ、時間経過による変形、表示位置など、多くのパラメータで決まるために算出が難しかったグラフィクスの表示速度(最小更新間隔)を簡単に導出することができるようになる。そのため、ディスク制作側がグラフィクスの動作速度を予め見積もることができるようになり、プレーヤでの動作の互換性を高めることが可能となる。
後述する動きのある字幕表示についても、上述のようにしてデータ転送速度R(2)を見積もることで、再生互換性を保つようにアニメーション速度を決めることができる。
2−12.グラフィクスオブジェクトについて
グラフィクスオブジェクト200の構造について、より詳細に説明する。第83図は、グラフィクスオブジェクト200の一例の構造を表すシンタクスを示す。第76図Aなどにおけるグラフィクスオブジェクトヘッダ201がブロックGraphicsObjectHeader()、表示命令制御テーブル202がブロックGOBJCommandTable()、PNGデータ領域203がブロックPNGImageRegion()、音声データ領域204がブロックSoundDataRegion()に相当する。
ブロックGraphicsObjectHeader()の先頭にフィールドlengthが配置される。フィールドlengthは、データ長が8ビットの0以上の整数で、フィールドlengthの直後からブロックGraphicsObjectHeader()の終わりまでの長さをバイトで示す。フィールドpresentation_end_time_stampは、データ長が33ビットの0以上の整数で、このグラフィクスオブジェクト200の有効期間終了時刻を表す。グラフィクスオブジェクトの有効期間は、PESパケットヘッダのptsからこのフィールドpresentation_end_time_stampで示される有効期間終了時刻までである。フィールドnumber_of_DispCmdsは、データ長が8ビットの0以上の整数で、ブロックGOBJCommandTable()に格納されている表示制御命令の数を表す。フィールドnumber_of_PNG_imagesは、データ長が8ビットの0以上の整数で、ブロックPNGImageRegion()に格納されているPNG画像の数を表す。フィールドnumber_of_sound_dataが配置され、ブロックSoundDataRegion()に格納されている音声データの数がデータ長が8ビットの0以上の整数で示される。
ブロックGraphicsObjectHeader()内のブロックGlobalPaletteTable()は、このグラフィクスオブジェクト200で共通に使用されるパレットテーブルの情報が格納される。例えばこのブロックGlobalPaletteTable()に記述されるパレットテーブルの情報が、例えば共通パレットテーブル230の内容としてセットされる。フィールドstart_address_of_PNG_image(i)は、データ長が32ビットの0以上の整数で、i番目のPNG画像のデータPNG_image(i)が開始される位置を、このGraphicsObject()の先頭からの相対バイト数で表現する。
フィールドPNG_file_name(i)は、フィールドstart_address_of_PNG_image(i)から始まるPNGデータのファイル名を表す。ブロックPNGImageRegion()内のフィールドであるフィールドPNG_image(i)の内容は、単体のPNGファイルと同一であり、ブロックPNGImageRegion()は、一つ以上のPNGファイルを連結して作られる。例えば、上述の第76図Aでは、PNGデータ203A、203B、・・・、203nが連結されてブロックPNGImageRegion()が作られる。その際にファイル名が失われないよう、フィールドPNG_file_name(i)にファイル名を保持しておくことができる。逆に、ブロックPNGImageRegion()を分解して個別のPNGファイルを復元する際には、各フィールドPNG_image(i)を、iが対応するフィールドPNG_file_name(i)で示されるファイル名の、独立したファイルとすればよい。
フィールドstart_address_of_sound_data(i)は、データ長が32ビットの0以上の整数で、i番目の音声データsound_data(i)が開始される位置を、このブロックGraphicsObject()の先頭からの相対バイト数で表現する。
ブロックGOBJCommandTable()は、実行時刻が同じ表示制御命令を集めた命令グループDispCmds(i)から構成される。命令グループDispCmds(i)は、必ず実行時刻を指定する命令execution_time(time)から開始して、表示制御命令が並べられる。換言すると、命令execution_time(time)から次の命令execution_time(time)の前までが一つの命令グループDispCmds(i)を構成している。
ブロックPNGImageRegion()は、上述したように、PNG方式で圧縮符号化された画像一枚分のデータであるフィールドPNG_image(i)の並びで構成される。
ブロックSoundDataRegion()は、音声データsound_data(i)として実際の音声データが格納される。
ブロックGraphicsObjectHeader()とブロックGOBJCommandTable()との間には、任意の数のpadding_wordを挿入することができる。同様に、ブロックGOBJCommandTable()とブロックPNGImageRegion()の間には任意の数のpadding_wordを挿入することができる。
第84図は、上述したブロックGlobalPaletteTable()の一例の構造を表すシンタクスを示す。フィールドnumber_of_palette_entriesは、次に羅列されているパレットデータの数を表す。データ長が8ビットのインデックス番号で画像を表現する場合、このフィールドnumber_of_palette_entriesの値は、最大で256となり、256色を用いることができる。この256色のうち一部の色だけを使用する場合、必要なパレットデータだけが存在すればよい。このフィールドnumber_of_palette_entriesにより、用いるインデックスの数が示される。
フィールドpalette_index_numberは、次のフィールドred_value、フィールドgreen_value、フィールドblue_valueおよびフィールドalphaでそれぞれ定義される色や透明度に割り当てられたインデックス番号を表す。画像データからは、このインデックス番号によって色や透明度αが参照される。
このブロックGlobalPaletteTable()においてfor文で示されるループの中では、同じ値を持つフィールドpalette_index_numberが二度以上現れてはならない。フィールドred_value、フィールドgreen_valueおよびフィールドblue_valueは、それぞれデータ長が8ビットの0以上の整数であって、それぞれ赤、緑、青の色を指定する。8ビットのデータ長を有するフィールドalphaは、透明度αを表し、値0が完全に透明、値255が完全に不透明な状態を表す。
各PNG画像は、パレット情報PLTEを格納するチャンクを持つことができるが、この実施の一形態では、そのパレット情報PLTEを使用せず、ブロックGlobalPaletteTable()で定義されたパレット情報を使うものとする。これは、同時に複数のPNG画像を表示する場合、各PNG画像が異なるパレットテーブルに基づく色を使っていると、それぞれ正しい色で表示することが困難になるためである。GraphicsObject()に属する、フィールドPNG_image(i)でそれぞれ表される複数のPNG画像は、全て共通のブロックGlobalPaletteTable()を参照し、ブロックGlobalPaletteTable()に示される共通のパレットテーブルを用いるものとする。
命令グループDispCmds(i)について説明する。命令グループDispCmds(i)は、グラフィクスオブジェクト200による表示を制御する表示制御命令が羅列される。命令グループDispCmds(i)において、命令execution_time(start_time)は、次の命令execution_time(start_time)の前までの命令を、指定の時刻start_timeに実行することを指示する。時刻start_timeの原点は、当該グラフィクスオブジェクト200のptsとする。また時刻start_timeの単位は、ptsと同じものが用いられる。
一つの命令グループDispCmds(i)は、命令execution_time(start_time)により時刻start_timeから始まり、その他の複数の命令を置くことができる。命令グループDispCmds(i)に置かれたこれらの命令は、命令execution_time(start_time)で指定される時刻start_timeに同時に、実行されるものとする。命令グループDispCmds(i)による命令の実行完了時刻前に、次の命令グループDispCmds(i+1)の命令exectution_time(start_time)で示される時刻start_timeになった場合は、命令グループDispCmds(i)の実行は中断され、次の命令グループDispCmds(i+1)が実行される。
命令グループDispCmds(i)に置かれる、命令exectution_time(start_time)以外の表示制御命令としては、第85図Aおよび第85図Bに一覧が例示されるように、以下のものが考えられる。各行頭の番号は、第85図の各番号にそれぞれ対応している。(すなわち、番号(1)を、命令exectution_time(start_time)とする)
(2)グラフィクスオブジェクトの表示を開始する命令
(3)グラフィクスオブジェクトの表示を停止する命令
(4)使用中のパレットテーブルの色や透明度を変更する命令
(5)グラフィクスオブジェクトのプレーン上での表示位置やサイズを設定する命令
(6)グラフィクスオブジェクトの中の表示範囲を設定する命令
(7)効果音の再生を行う命令
(8)画像データ(PNGデータ)に効果音を割り当てる命令
これらexectution_time(start_time)の後に置かれる7種類の命令は、一例であって、命令グループDispCmds(i)に置かれる命令は、この7種類に限定されるものではない。表示制御命令をさらに定義し追加することは可能である。
(2)および(3)の、グラフィクスオブジェクト200の表示の開始および終了命令は、所謂フェードイン/フェードアウトを行うための命令であって、それぞれ命令fade_in(fade_in_time)、命令fade_out(fade_out_time)の形で用いられる。
フェードインは、命令fade_in(fade_in_time)で指示され、グラフィクスオブジェクト200が非表示の状態から徐々に表示の状態に変化していく。アルファブレンディングの透明度αの値を、時刻fade_in_timeに基づき徐々に増加させていくことで、フェードインが実現できる。命令execution_time(start_time)の後に命令fade_in(fade_in_time)が置かれていると、命令execution_time(start_time)で指定される時刻start_timeの直後から当該グラフィクスオブジェクト200が徐々に透明から不透明になっていき、引数の時刻fade_in_timeで指定された時間が経過すると、全てのパレットインデックスの透明度αの値が共通パレットテーブルで指定した値に設定される。
命令fade_in(fade_in_time)において、時刻fade_in_timeが0に設定されていると、当該グラフィクスオブジェクト200がパレットテーブルに指定される色および透明度αで即座に表示される。
フェードアウトは、フェードインの逆の処理であって、命令fade_out(fade_out_time)で指示され、グラフィクスオブジェクト200が表示の状態から徐々に非表示の状態に変化していく。アルファブレンディングの透明度αの値を、時刻fade_out_timeに基づき徐々に減少させていくことで、フェードアウトが実現できる。命令execution_time(start_time)の後に命令fade_out(fade_out_time)が置かれていると、命令execution_time(start_time)で指定される時刻start_timeの直後から当該グラフィクスオブジェクト200が徐々に不透明から透明になっていき、引数の時刻fade_out_timeで指定された時間が経過すると、全てのパレットインデックスの透明度αの値が0とされ、当該グラフィクスオブジェクト200が完全に透明になり、見えなくなる。
命令fade_out(fade_out_time)において、時刻fade_out_timeが0に設定されていると、当該グラフィクスオブジェクト200の表示が即座に停止される。
フェードインおよびフェードアウトにおいて、透明度αの値は、時間の経過と共にできるだけ滑らかに変化させると、より自然なフェードインおよびフェードアウトの効果が得られ、好ましい。これは、この例に限られず、例えば、フェードインにおいて、透明度αの値は、時刻fade_in_timeで示される時間が経過した後に、パレットテーブルで指定した値になっていればよく、どの程度の分解能や階調で透明度αを変化させるかについては、命令によって指定していない。実際には、透明度αの変化の分解能や階調は、実装に依存する。
ここでは可読性を上げるために、命令を「fade_in()」、「fade_out()」のようにテキストで表記して説明したが、実際には、これらの命令fade_in()、fade_out()は、その引数と共に所定のバイナリ値に変換されてDispCmds(i)に記述される。これは、以降に説明される他の命令についても同様である。
(4)の、使用中のパレットテーブルの色や透明度αを変更する命令は、パレット情報を変更する。この命令は、命令change_palette(index,newR,newG,newB,newAlpha)の形で用いられる。字幕プレーン11やグラフィクスプレーン12に同時に表示されるPNG画像は、第83図に示したシンタクスで定義される、第24図のような共通のパレットテーブルを参照している。通常は、GlobalPaletteTable()で定義されたパレット情報がそのまま共通パレットテーブルとして使用される。この命令change_palette(index,newR,newG,newB,newAlpha)を用いることで、この共通のパレット情報を変更することができる。
命令change_palette(index,newR,newG,newB,newAlpha)に引数として記述される値index、newR、newG、newBおよびnewAlphaにより、パレット22において、パレット番号indexで示されるカラーインデックス値の三原色の値R、GおよびBが値newR、newGおよびnewBにそれぞれ変更され、透明度αの値が値newAlphaに変更される。
(5)の、グラフィクスオブジェクトのプレーン上での表示位置やサイズを設定する命令は、命令set_display_box(x1,y1,x2,y2)の形で用いられ、プレーン上の座標(x1,y1)および(x2,y2)で定められる矩形領域(x1,y1)(x2,y2)に、当該グラフィクスオブジェクト200を配置する。また、(6)の、グラフィクスオブジェクトの中の表示範囲を設定する命令は、命令set_clipping_box(a1,b1,a2,b2)の形で用いられ、グラフィクスオブジェクト200によるPNG画像上の座標(a1,b1)および(a2,b2)で定められる矩形領域(a1,b1)(a2,b2)を、実際にプレーン上に表示する。
第86図Aおよび第86図Bを用いて、命令set_display_box(x1,y1,x2,y2)および命令set_clipping_box(a1,b1,a2,b2)について、より具体的に説明する。第86図Aおよび第86図Bにおける座標は、第87図に一例が示されるように、表示画面の左上隅を原点とし、水平右方向をx、垂直下方向をyとして、座標(x,y)と表す。
命令set_clipping_box(a1,b1,a2,b2)により、第86図Aに示されるように、グラフィクスオブジェクト200によるPNG画像250内の、実際に表示される矩形領域(a1,b1)(a2,b2)が設定される。この第86図Aの例では、設定される矩形領域(a1,b1)(a2,b2)がPNG画像250に対して小さいものとされている。命令set_display_box(x1,y1,x2,y2)により、この矩形領域(a1,b1)(a2,b2)のプレーン上における実際の表示位置が矩形領域(x1,y1)(x2,y2)に設定される(第86図B参照)。画面上の矩形領域(x1,y1)(x2,y2)に対して、PNG画像250のうち矩形領域(a1,b1)(a2,b2)の部分が表示される。
矩形領域(a1,b1)(a2,b2)が実際に表示される矩形領域(x1,y1)(x2,y2)よりも大きい場合は、矩形領域(a1,b1)(a2,b2)のうち矩形領域(x1,y1)(x2,y2)の範囲のPNG画像だけが表示される。一方、矩形領域(a1,b1)(a2,b2)の大きさが実際に表示される矩形領域(x1,y1)(x2,y2)よりも小さい場合は、矩形領域(x1,y1)(x2,y2)内の矩形領域(a1,b1)(a2,b2)の外側は、透明色として扱うとよい。
上述した表示制御命令を、命令execution_time(start_time)を複数用いて並べることにより、時間経過に従って変化する字幕や同期型グラフィクスを表示することができる。例えば、第83図を用いて説明したグラフィクスオブジェクト200において、ブロックGOBJCommandTable()内に、複数の命令グループDispCmds(i)を記述する。そして、命令グループDispCmds(i)のそれぞれは、命令execution_time(start_time)における時刻start_timeを所望に異ならせて記述し、時刻start_timeで示される時刻に開始する表示制御命令を記述する。
第88図は、命令グループDispCmds(i)の記述とグラフィクスオブジェクト200の表示変化の一例を示す。第88図において、横軸は時間の経過を表し、縦軸はグラフィクスオブジェクト200の透明度を表す。透明度は、第88図で上に向かうほど大きくなる。ptsで示される時刻が原点とされる。
最初の命令グループDispCmds(0)により、プレーン上の表示領域が命令set_display_box(800,800,1300,900)として、グラフィクスオブジェクト200のPNG画像における表示領域が命令set_clipping_box(0,0,500,100)として設定し、命令fade_in(2sec)により、2秒かけてフェードインする処理を、時刻〔0〕から開始することが指示される。次の命令グループDispCmds(1)は、命令change_palette(index,newR,newG,newB,Alpha)がカラーインデックス値〔1〕、〔2〕〔3〕および〔4〕についてそれぞれ記述され、時刻〔800〕から、パレットテーブル22においてカラーインデックス値〔1〕、〔2〕〔3〕および〔4〕で参照される色および透明度αを変更する旨が指示される。そして、次の命令グループDispCmds(2)により、表示されているグラフィクスオブジェクト200を、時刻〔2000〕から2秒かけてフェードアウトすることが指示される。
この第88図に示されるように、命令グループDispCmds(0)、DispCmds(1)およびDispCmds(2)を並べることで、時間経過に従って表示が変化する例えば字幕を実現することができる。命令グループDispCmds(0)、DispCmds(1)およびDispCmds(2)を適当に用いることで、字幕やボタン画像のアニメーション表示が可能とされる。
第89図A、第89図B、第89図Cおよび第89図Dは、字幕表示が徐々に現れるフェードインの例を示す。第89図A〜第89図Dと、徐々に字幕表示が現れるように表示制御される。このような単純なフェードインは、上述した第88図の命令グループDispCmds(0)と同様の命令で実現することができる。
第90図Aおよび第90図Bは、字幕のPNG画像260がプレーン内を移動する例を示す。これは、命令set_display_box(x1,y1,x2,y2)を複数、用いることで実現できる。例えば、最初の命令グループDispCmds(0)において、命令execution_time(start_time)により開始時刻が設定され、命令set_clipping_box(a1,b1,a2,b2)により第90図Aに一例が示されるようにPNG画像260の表示領域を設定すると共に、命令set_display_box(x1,y1,x2,y2)により、PNG画像260のプレーン内での初期の表示領域を設定する。
次の命令グループDispCmds(1)において、命令execution_time(start_time)により命令グループDispCmds(0)から所定時間経過した時刻が開始時刻として指定されると共に、命令set_display_box(x1’,y1’,x2’,y2’)により、プレーン内の移動先の表示領域が設定される。同様にして、次の命令グループDispCmds(2)において、命令execution_time(start_time)により命令グループDispCmds(1)から所定時間経過した時刻が開始時刻として指定されると共に、命令set_display_box(x1”,y1”,x2”,y2”)により、プレーン内の移動先の表示領域が設定される。
このようにすることで、第90図Bに一例が示されるように、字幕のPNG画像260がプレーン上の矩形領域(x1,y1)(x2,y2)、矩形領域(x1’,y1’)(x2’,y2’)、矩形領域(x1”,y1”)(x2”,y2”)と移動するようにできる。
第91図Aおよび第91図Bは、字幕のPNG画像261内の表示領域262が移動し、字幕表示をスクロールさせる例を示す。これは、命令set_clipping_box(a1,b1,a2,b2)を複数、用いることで実現できる。例えば、最初の命令グループDispCmds(0)において、命令execution_time(start_time)により開始時刻が設定され、命令set_clipping_box(a1,b1,a2,b2)により、第91図Aに一例が示されるように、PNG画像260において初期に表示される矩形領域262を設定すると共に、命令set_display_box(x1,y1,x2,y2)により、PNG画像260がプレーン内で表示される矩形領域を設定する。
次の命令グループDispCmds(1)において、命令execution_time(start_time)により命令グループDispCmds(0)から所定時間経過した時刻が開始時刻として指定されると共に、命令set_clipping_box(a1’,b1’,a2’,b2’)により、PNG画像260内の移動先の表示領域が設定される。同様にして、次の命令グループDispCmds(2)において、命令execution_time(start_time)により命令グループDispCmds(1)から所定時間経過した時刻が開始時刻として指定されると共に、命令set_clipping_box(a1”,b1”,a2”,b2”)により、PNG画像260内の移動先の矩形領域が設定される。
このようにすることで、第91図Bに一例が示されるように、プレーン上の矩形領域(x1,y1)(x2,y2)内を、字幕のPNG画像261内の一部の矩形領域が矩形領域(a1,b1)(a2,b2)、矩形領域(a1’,b1’)(a2’,b2’)、矩形領域(a1”,b1”)(a2”,b2”)と移動するようにされ、字幕表示のスクロールを実現できる。
第92図Aおよび第92図Bは、PNG画像265の一部を表示する枠を設定し、PNG画像265上でこの枠を移動させつつ、プレーン上での表示位置も移動させる例を示す。これは、命令set_display_box(x1,y1,x2,y2)と、命令set_clipping_box(a1,b1,a2,b2)とを複数、同時に用いることで実現できる。例えば、最初の命令グループDispCmds(0)において、命令execution_time(start_time)により開始時刻が設定され、命令set_display_box(x1,y1,x2,y2)と命令set_clipping_box(a1,b1,a2,b2)とにより、枠266Aが設定される(第92図A参照)。
例えば、命令set_display_box(x1,y1,x2,y2)によりプレーン上で表示される矩形領域(x1,y1)(x2,y2)が設定されると共に、命令set_clipping_box(a1,b1,a2,b2)によりPNG画像265において表示される矩形領域(a1,b1)(a2,b2)が設定される。これら矩形領域(x1,y1)(x2,y2)および矩形領域(a1,b1)(a2,b2)により、枠266Aが設定される。
そして、次の命令グループDispCmds(1)において、命令execution_time(start_time)により命令グループDispCmds(0)から所定時間経過した時刻が開始時刻として指定され、命令set_display_box(x1’,y1’,x2’,y2’)によるプレーン内の矩形領域(x1’,y1’)(x2’,y2’)と、命令set_clipping_box(a1’,b1’,a2’,b2’)によるPNG画像265上の矩形領域(a1’,b1’)(a2’,b2’)により、枠266Aに対する移動先の枠266Bが設定される。同様に、次の命令グループDispCmds(2)において、命令execution_time(start_time)により命令グループDispCmds(1)から所定時間経過した時刻が開始時刻として指定され、命令set_display_box(x1”,y1”,x2”,y2”)によるプレーン内の矩形領域(x1”,y1”)(x2”,y2”)と、命令set_clipping_box(a1”,b1”,a2”,b2”)によるPNG画像265上の矩形領域(a1”,b1”)(a2”,b2”)により、枠266Bに対する移動先の枠265Bが設定される。
こうすることで、第92図Bに一例が示されるように、字幕のPNG画像265内の一部の矩形領域が移動しつつ、当該矩形領域がプレーン内を領域265A、265B、265Cと移動するような表示が可能となる。
このように、この発明の実施の一形態では、グラフィクスオブジェクト200の表示制御を、命令execution_time(start_time)により各表示制御命令をグループ化した命令グループDispCmds(i)を用いて行っているため、字幕プレーン11およびグラフィクスプレーン12における多彩な表示を、容易に実現することができる。
2−13.効果音について
この発明の実施の一形態では、さらに、グラフィクスオブジェクト200の表示制御に同期して音声を出力することができる。上述した、命令グループDispCmds(i)に置かれる、命令exectution_time(start_time)以外の表示制御命令(2)〜(8)のうち、(7)の効果音の再生を行う命令と、(8)の画像データに効果音を割り当てる命令により、音声出力が定義される。また、音声データには、それぞれ識別子sound_idが付与され、互いが識別される。
(7)の、効果音の再生を行う命令は、命令play_sound(sound_id)の形で用いられ、識別子sound_idで指定された音声データの再生を指示する。この命令を命令グループDispCmds(i)に含めることにより、命令execution_time(start_time)で指定された時刻start_timeに、識別子sound_idで指定された音声データが再生される。
一例として、命令play_sound(sound_id)を命令fade_in(fade_in_time)および命令fade_out(fade_in_time)と同時に使用することで、字幕の表示および/または消去に連動して音声データを再生し、効果音を発生させることが可能となる。第88図は、命令play_sound(sound_id)を使用した例である。第88図の例では、最初の命令グループDispCmds(0)において、開始時刻〔0〕で2秒かけて表示がフェードインすると共に、命令play_sound(1)により識別子sound_idが〔1〕で特定される音声データが再生される。次いで、命令グループDispCmds(1)において、時刻〔800〕で表示色が変更されると共に、命令play_sound(2)により識別子sound_idが〔2〕で特定される音声データが再生される。そして、命令グループDispCmds(2)において、時刻〔2000〕から1秒かけて表示がフェードアウトすると共に、命令play_sound(1)により識別子sound_idが〔1〕で特定される音声データが再生される。
命令play_sound(sound_id)は、必須の命令ではない。
(8)の、PNGデータに効果音を割り当てる命令は、命令set_sound(PNG_image_id,sound_id)の形で用いられ、識別子PNG_image_idで指定されるPNGデータに対して、識別子sound_idで指定される音声データを割り当てる。この命令set_sound(PNG_image_id,sound_id)により、識別子PNG_image_idで指定されるPNGデータが表示される際に、識別子sound_idで指定される音声データが再生される。PNGデータの識別子PNG_image_idは、例えば、上述した第83図における、ブロックPNGImageRegion()中のPNG_image(i)に対して指定されるループカウンタiと同じ値を用いることができる。
この命令set_sound(PNG_image_id,sound_id)は、主に、選択状態および実行状態のボタンのPNGデータに用いることが想定されている。こうすることで、ボタンが通常状態から選択状態へ遷移する際や、選択状態から実行状態に遷移する際に、それぞれの状態を表すPNGデータに割り当てられた音声データを効果音として発生させることが可能となる。この例に限らず、ボタン以外のPNGデータに対してこの命令set_sound(PNG_image_id,sound_id)を用いてもよい。
第93図は、ボタン画像に音声データを割り当てたグラフィクスオブジェクト200の一例のデータ構造を示す。PNGデータ領域203に、通常状態、選択状態および実行状態それぞれにおけるボタンのPNGデータ203A、203Bおよび203Cが格納される。この第93図の例では、表示制御命令ではPNGデータに対する座標指定と、音声データの割り当てのみを行い、PNGデータの表示開始時刻や、表示開始時のボタンの初期状態は、外部のスクリプトプログラムにより制御するようにしている。そのため、表示制御命令は、便宜上、実行時刻〔0〕の命令として記述する。
第93図に例示されるグラフィクスオブジェクト200では、表示制御命令テーブル202において、命令execution_time(0)に基づき時刻〔0〕で実行される、命令グループDispCmds(0)だけが存在している。識別子PNG_image_idは、〔0〕から始まるので、識別子PNG_image_idが〔0〕で通常状態時のPNGデータ203Aを、識別子PNG_image_idが〔1〕で選択状態時のPNGデータ203Bを、識別子PNG_image_idが〔2〕で実行状態時のPNGデータ203Cをそれぞれ表している。
命令set_sound(1,10)に基づき、識別子PNG_image_idが〔1〕である選択状態のボタンを表示するPNGデータ203Bが表示されたときには、識別子sound_idが〔10〕で指定される音声データが効果音として再生される。同様に、命令set_sound(2,11)に基づき、識別子PNG_image_idが〔2〕である実行状態のボタンを表示するPNGデータ203Cが表示されたときには、識別子sound_idが〔11〕で指定される音声データが効果音として再生されることになる。
第73図A、第73図Bおよび第73図Cでは省略されているが、プレーヤは、予め1または複数種類の音声データを、プレーヤ内部のメモリなどに保持することができる。例えば、プレーヤは、プレーヤ内部に設けられた不揮発性メモリなどに、出荷時に予め所定の音声データを記憶しておくようにできる。
これに限らず、グラフィックオブジェクト200や動画データによるコンテンツが記録されたディスクに、効果音として用いるための音声データを記録しておき、当該ディスクの再生時にこの音声データを読み込んでおくようにしてもよい。ディスクへの音声データの格納方法としては、音声データが格納されたファイルを別に用意し、ディスク再生開始時にこのファイルを先に読み込んでおき、プレーヤ内のメモリに置いておく方法がある。
グラフィクスオブジェクト200と同様に音声データを格納したPESパケットを作り、それをTSパケットに分割してクリップAVストリームに多重化する方法も考えられる。
上述の第76図A、第76図Bおよび第76図Cのグラフィクスオブジェクト200中のグラフィクスオブジェクトヘッダ201内(図示は省略する)、或いは、上述したようにPNG画像データ領域203の直後に音声データ領域204を設け、グラフィクスオブジェクト200に含まれるPNG画像に対応する音声データを格納する方法も考えられる。
何れの方法であっても、音声データを予めディスクからプレーヤのメモリに読み込んで蓄積しておくことができるので、PNG画像で作られたボタンが選択状態や実行状態になると同時に効果音を発生させることが可能となる。音声データには、それぞれユニークな識別子sound_idが割り当てられており、音声データを一意に特定することができるようにされている。
この、音声データのディスクへの格納方法について、より詳細に説明する。グラフィクスオブジェクト200に音声データを格納する方法について、第76図A、第76図Bおよび第76図Cを用いて説明する。第76図Aおよび第76図Cは、音声データをグラフィクスオブジェクト200に付加してクリップAVストリームに多重化する例が示されている。
第76図Aは、グラフィクスオブジェクト200中のPNGデータ領域203の後ろに音声データ領域204を設けた例である。音声データ領域204には、複数の音声データ204A、204B、・・・、204nを格納することができる。これら音声データ204A、204B、・・・、204nを、同一のグラフィクスオブジェクト200に格納されるPNGデータ203A、203B、・・・、203nとそれぞれ関連性のあるものとすると、PNG画像および音声データを対応付けての扱いが容易になる。
音声データ204A、204B、・・・、204nは、例えばAIFF(Audio Interchange File Format)形式やWAVEファイルといった、圧縮符号化されていないデータでもよいし、MP3(Moving Pictures Experts Group 1 Audio Layer 3)やAAC(Advanced Audio Coding)、ATRAC(Adaptive Transform Acoustic Coding)といった、圧縮符号化されたデータでもよい。圧縮符号化された音声データを格納する場合には、プレーヤ側が音声データの圧縮符号化方式に対応したオーディオデコーダを持っている必要がある。
第76図Cは、ボタンを構成するグラフィクスオブジェクト200に対して、ボタンのそれぞれの状態に対応した音声データを格納した例である。この例では、例えばボタンの選択状態時に再生する音声データ204A−2と、実行状態時に再生する音声データ204B−2とが、音声データ領域203に格納される。一方、PNGデータ領域203には、通常状態、選択状態および実行状態それぞれのボタン表示に用いるPNGデータ203A−2、203B−2および203C−2が格納される。
この場合、例えば、ボタン画像が格納されるPNGデータ領域203に続く音声データ領域204には、ボタンが選択状態時に遷移したときに再生する音声データ204A−2と、実行状態時に遷移したときに再生する音声データ204B−2とが格納されるように、予め決めておく。そして、ボタン画像のPNGデータが表示されると同時に、当該ボタンの状態に対応した音声データが再生されるようにする。このプレーヤで再生される効果音は、主にボタンクリック音として使われることを想定しているため、このようなルールでも、十分に、主要な目的を達成することができる。
音声データをクリップAVストリームに多重化しない方法について説明する。例えば、第94図に一例が示されるように、ディレクトリBDAVの下に音声データを格納するディレクトリSOUNDを設ける。このディレクトリSOUNDには、音声データであるPCM波形データを格納する、例えばAIFF形式の音声データファイル「sound1.aiff」を置く。ディレクトリSOUNDに格納された音声データファイルは、例えば当該ディスクのプレーヤへの最初のローディング時にまとめて読み込まれ、プレーヤの内部メモリに格納される。
各音声データには、音声データそれぞれを識別可能な識別子sound_idが予め割り当てられ、プログラムやスクリプトなどから識別子sound_idにより、所望の音声データがメモリから呼び出されるモデルが構成される。
この場合、例えば、第95図に一例が示されるように、グラフィクスオブジェクト200に対してサウンドid領域205を設け、このサウンドid領域205に対してサウンドidデータ205A、205Bを格納する。この第95図の例では、PNGデータ領域203にボタンの通常状態時、選択状態時および実行状態時にそれぞれ対応したPNGデータ203A、203Bおよび203Cが格納され、サウンドidデータ205Aおよび205Bは、PNGデータ203Bおよび203Cにそれぞれ対応する識別子sound_idである。PNGデータ203Bの表示の際に、プレーヤ内部のメモリに予め格納された、サウンドidデータ205Aが示す識別子sound_idが対応する音声データを再生するように指示される。
例えば、第93図を用いて既に説明したように、表示制御命令テーブル202の記述によって、PNGデータと音声データとを関連付けるようにしてもよい。
この第95図に一例が示される構成のデータは、ディスクから読み出すだけでなく、インターネットなどのネットワークから取得し、入力端101に入力するようにもできる。
識別子sound_idにより音声データを指定するため、第85図を用いて既に説明した表示制御コマンドなどにより、グラフィクス表示とは関係の無い任意の時刻に、音声データによる効果音などを発生させることができる。
この方法では、識別子sound_idで音声データをメモリから呼び出すため、効果音の種類は、第1に、識別子sound_idの数で制限される。第2に、使える効果音の種類が、上述したように、プレーヤの内部メモリの容量により制限される。
第96図を用いて、より具体的に説明する。ディスク400のローディング時に、プレーヤによりディスクに対してイニシャルアクセスがなされ、ディレクトリBDAVの下に配置されるディレクトリSOUNDから、音声データがまとめて読み込まれる。読み込まれた音声データ(PCMデータ)は、プレーヤの内部メモリ410に格納される。このとき、音声データのそれぞれに対して固有の識別子sound_idが割り当てられる。ディスク400に記録されている音声データに対して予め識別子sound_idを付加しておいてもよい。
この例では、16個の音声データがディスク400から読み込まれ、識別子sound_id=1〜16がそれぞれの音声データに割り当てられる。音声データそれぞれのデータサイズが取得される。この第96図の例では、識別子sound_id=1〜16の音声データがそれぞれd1バイト、d2バイト、・・・、d16バイトのデータサイズを有しているものとする。
例えば、ボタン420A、420Bおよび420Cが表示されるメニュー画面420における、ボタン420Cに対する操作に基づき、ボタン420Cに対して指定された識別子sound_idにより対応する音声データがメモリ410から読み出される。この第96図の例では、ボタン420Cの実行状態に対して識別子sound_id=1で示される音声データが指定されている。メモリ410から読み出されたこの音声データは、所定に処理されてバッファ450Bに一旦溜め込まれる。そして、オーディオミキサ231に供給され、例えば本編の動画像データに付随する音声データと混合されて、音声として出力される。
バッファ450Aには、例えば本編の動画像データに付随する音声データが一旦、溜め込まれる。例えば、バッファ450Aおよび450Bの間で、溜め込まれた音声データを読み出すタイミングを調整することで、バッファ450Bに溜め込まれたボタン420Cの操作に対応した効果音がバッファ450Aに溜め込まれた音声データの適当なタイミングで出力される。この例では、識別子sound_id=0で、音声データの再生無しが指定される。
このようなモデルにおいて、ディスク400から読み込み可能な音声データの合計容量がメモリ410の容量に基づき制限される。それぞれの音声データの容量がバッファ450Bの容量に基づき制限される。メモリ410の容量を容量M(バイト)、バッファ450Bの容量を容量Dmax(バイト)とした場合、次の2つの条件を満たす必要がある。
(1)メモリ410に格納された音声データのそれぞれの容量diがバッファ450Bの容量Dmaxより小さい。
(2)メモリ410に格納された音声データの総容量(d1+d2+・・・+dn)がメモリ410の容量Mより小さい。
換言すれば、この(1)および(2)の条件をプレーヤ側とディスク制作側とに対してルール化し、規格として定めておくことで、効果音などの音声データの再生に関して再生互換性を確保することができる。
音声データをクリップAVストリームに多重化しない場合に、音声データをディスクのプレーヤへの最初のローディング時にまとめて読み込むように説明したが、これはこの例に限定されない。一例として、音声データを複数回に分けて読み出すようにできる。例えば、シナリオの進行に応じてある区切となる箇所で、次の区切りまでに用いるだけの音声データをまとめて読み出し、メモリに記憶させる。このとき、それまでメモリに記憶されていた音声データを消去する。こうすることで、1つのシナリオの再生において、メモリの容量以上の音声データを扱うことが可能とされる。
音声データは、ディスクの所定領域にまとめて記録しておいてもよいし、ディスクの複数領域に分けて記録しておいてもよい。ディスクの複数領域に分けて記録する場合には、例えば、シナリオの進行に応じて、シナリオの区切りに対応したディスク上の位置に、次の区切りまでに用いられる音声データをまとめて記録することが考えられる。ネットワークで結ばれたサーバーから音声データをダウンロードすることも、ファイルが置かれている場所を例えばURL(Uniform Resource Locator)で指定するなどすれば、ディスクからの読み出しと同様の仕組みで実現可能である。
第76図Aおよび第76図Bを用いて説明した、音声データをクリップAVストリームに多重化する方法では、音声データの種類に制約が無く、1画像毎に異なる音声データを指定できる利点がある。音声データは、必要に応じてクリップAVストリームにより供給されるため、その都度異なる音声データを用いることができる。音声データをクリップAVストリームに多重化する方法では、音声データが画像データと同時にクリップAVストリームから読み込まれるため、読み込みモデルが簡単になる、音声データのファイル数の制限やファイルサイズの制限は、ディスク容量以外の制約を受けない、などの利点がある。
音声データをクリップAVストリームに多重化する方法では、異なるグラフィクスオブジェクトで同一の音声データを扱うような場合、それぞれのグラフィックオブジェクトが同一の音声データをそれぞれ持たなければいけないので、データが冗長になってしまう。グラフィクスオブジェクトから音声データを抽出する必要があるため、クリップAVストリームのデマルチプレクス処理の後に、音声データを分離する処理が必要となる。
第73図A、第73図Bおよび第73図Cを用いてグラフィクスオブジェクト200に連動可能な音声データ処理を説明する。
上述の、クリップAVストリームに多重化されない音声データは、例えば入力チャンネル(1)のデータとして入力端101に入力され、スイッチ回路102および103を介してコンテンツバッファ105に供給される。一方、音声データが格納されたグラフィクスオブジェクト200が多重化されたクリップAVストリームは、入力端202に入力される。そして、PIDフィルタ110でグラフィクスオブジェクト200が振り分けられバッファTBn111Aに一旦溜め込まれ、スイッチ回路103を介してコンテンツバッファ105に供給される。
音声データの格納されていないグラフィクスオブジェクト200がクリップAVストリームに多重化されて入力端202から入力される。PIDフィルタ110でグラフィクスオブジェクト200を構成するトランスポートパケットが振り分けられ、バッファTBn111BまたはバッファTBn111Cに一旦溜め込まれる。バッファTBn111Bに溜め込まれたトランスポートパケットは、バッファBn112Bに供給され、PIDヘッダに基づきグラフィクスオブジェクト200がまとめられる。グラフィクスオブジェクト200は、スイッチ回路107を介してグラフィクスデコーダA116に供給される。バッファTBn111Cに溜め込まれたトランスポートパケットも、同様にしてバッファBn112Cを用いてグラフィクスオブジェクト200がまとめられ、スイッチ回路108を介してグラフィクスデコーダB117に供給される。
グラフィクスデコーダA116およびB117では、供給されたトランスポートパケットのヘッダ情報を除去すると共に、当該トランスポートパケットに格納された画像データをデコードして字幕またはグラフィクスを表示するための画像データ、例えばビットマップデータとする。
コンテンツバッファ105に供給された、音声データが格納されたグラフィクスオブジェクト200に格納される画像データは、コンテンツバッファ105から取り出され、スイッチ回路107および108を介してグラフィクスデコーダA116およびB117にもそれぞれ供給される。
この第73図A、第73図Bおよび第73図Cの例では、グラフィクスデコーダA116は、字幕プレーンに展開する画像データをデコードし、グラフィクスデコーダB117は、グラフィクスプレーンに展開する画像データをデコードする。グラフィクスデコーダA116およびB117は、これに限らず、さらに他のデータ形式の画像データをデコードするものであってもよいし、複数の形式の画像データに対応するようにもできる。
グラフィクスデコーダA116の出力は、スイッチ回路130の入力端130Bおよびスイッチ回路131の入力端131Cに供給され、スイッチ回路130および131を介してそれぞれ字幕プレーン132およびグラフィクスプレーン133に供給される。
マルチメディアエンジン106は、サウンドプレーヤ106Dを有する。バッファ109は、サウンドバッファ109Eを有する。サウンドプレーヤ106Dは、サウンドバッファ109Eを用いて、コンテンツバッファ105から読み出した音声データを復号化して、例えばリニアPCMオーディオデータにして出力する。サウンドプレーヤ106Dから出力された音声データは、プレゼンテーションプロセッサ157に供給され、オーディオデコーダ118から出力された音声データと混合されて、出力端158に導出される。
例えばボタン画像をクリックした際に発生されるクリック音など、効果音となる音声データは、サウンドプレーヤ106Dによって再生される。音声データは、サウンドバッファ109Eに蓄積され、サウンドプレーヤ106Dにより再生される。
マルチメディアエンジン106では、例えばシナリオ記述言語としてHTMLとECMAスクリプトとを組み合わせて用いている場合コードバッファ104に蓄えられたECMAスクリプトを読み出して解析し、コードバッファ104からの他のECMAスクリプトやHTML文書の読み出し、コンテンツバッファ105からの画像データや音声データの読み出しなどを行う。コンテンツバッファ105に格納された音声データは、コンテンツバッファ105に格納された他のデータと同様、コンテンツバッファ105に保持しておくことができる。
マルチメディアエンジン106により、ユーザからの、リモートコントロールコマンダやポインティングデバイスなどによる入力が受け取られ、その入力に基づく処理が行われる。マルチメディアエンジン106では、このユーザ入力に基づく処理結果や各スクリプトに応じてコントロール信号を生成する。このコントロール信号は、グラフィクスデコーダA116およびB117、オーディオデコーダ118、MPEGビデオデコーダ120およびシステムデコーダ121にも供給される。
グラフィクスレンダラ106Cで処理された画像データは、スイッチ回路130および131をそれぞれ介して字幕プレーン132およびグラフィクスプレーン133に供給される。字幕プレーン132およびグラフィクスプレーン133は、例えばフレームメモリからなり、第20図を用いて説明した字幕プレーン11およびグラフィクスプレーン12にそれぞれ対応する。
グラフィクスレンダラ106Cから字幕プレーン132およびグラフィクスプレーン133に供給される画像データは、例えばランレングス圧縮形式、PNG形式またはJPEG形式の画像データをグラフィクスレンダラ106Cでデコードした後のビットマップデータであるものとする。
マルチメディアエンジン106は、プレゼンテーションプロセッサ155に対して、字幕プレーン132、グラフィクスプレーン133および動画像プレーン134を切り換える制御信号を供給し、プレゼンテーションプロセッサ141に対して、オーディオストリーム出力を制御するような制御信号を供給する。
字幕プレーン132上の画像データは、第22図におけるパレット22に対応するパレット150に供給され、256色からなるパレットに対してインデックスによる参照がなされ、RGBデータが出力されると共に、透明度データα1が出力される。RGBデータは、第22図におけるRGB/YCbCr変換回路29に対応するRGB/YCbCr変換回路151に供給され、カラーシステムがRGB(4:4:4)からYCbCr(4:4:4)に変換される。RGB/YCbCr変換回路151から出力されたYCbCrデータは、プレゼンテーションプロセッサ155に供給される。
グラフィクスプレーン133上の画像データは、第22図におけるパレット26に対応するパレット152に供給され、256色からなるパレットに対してインデックスによる参照がなされ、RGBデータが出力されると共に、透明度データα2が出力される。RGBデータは、第22図におけるRGB/YCbCr変換回路27に対応するRGB/YCbCr変換回路153に供給され、カラーシステムがRGB(4:4:4)からYCbCr(4:4:4)に変換される。RGB/YCbCr変換回路153から出力されたYCbCrデータは、プレゼンテーションプロセッサ155に供給される。
プレゼンテーションプロセッサ155には、動画像プレーン134上の動画像データがアップ/ダウンコンバータ154を介して供給される。
プレゼンテーションプロセッサ155は、字幕プレーン11(字幕プレーン132)による透明度α1と、グラフィクスプレーン12(グラフィクスプレーン133)による透明度α2とを用いたアルファブレンディング処理を行う。この処理により、動画プレーン10、字幕プレーン11およびグラフィクスプレーン12の画像データが合成される。プレゼンテーションプロセッサ155は、画像データに対してリアルタイムでエフェクト処理を行うこともできる。このように、プレーン間の合成処理やエフェクト処理がなされた画像データが出力端156に導出される。
2−14.その他
以上説明したように、この発明によれば、記録済み大容量ディスクにおいて、動画を表示する動画プレーンと、字幕を表示する字幕プレーンと、メニュー画面などインタラクティブな機能を有する画面を表示するグラフィクスプレーンとがそれぞれ独立して設けられ、これらのプレーンが合成されて表示されるようにしているため、動画プレーンに動画を表示させ、その動画を背景としてグラフィクスプレーンにメニュー画面などを表示させることができるという効果がある。
この発明によれば、グラフィクスプレーンに表示するための画像データを格納するためのバッファが設けられているため、グラフィクスプレーンの表示を同一の画像データを繰り返し用いて表示することができる。これにより、メニュー画面などをより高い自由度で構成することができるという効果がある。
この発明によれば、メニュー画面などに表示するボタンを3状態に分類し、それぞれに対して画像データを用意し、ユーザの入力などに応じて切り替えることにより、従来のDVDビデオでは実現できなかった多彩な見栄えのメニューを実現できるという効果がある。
この発明では、グラフィクスプレーンに表示されるグラフィクスの表示制御を、表示制御命令を用いて記述しているため、インタラクティブな機能をグラフィクスプレーンに表示される画面を用いて実現することができるという効果がある。字幕やボタンのスクロール表示、移動表示といった簡単なアニメーションや、ユーザ入力に応じて画像の内容が変化する表現力のあるボタンを実現することができるという効果がある。
この発明によれば、記録済み大容量ディスクにおいて、動画を表示する動画プレーンと、字幕を表示する字幕プレーンと、メニュー画面などインタラクティブな機能を有する画面を表示するグラフィクスプレーンとがそれぞれ独立して設けられ、これらのプレーンが合成されて表示されるようにしている。そして、字幕プレーンとグラフィクスプレーンに表示するオブジェクトの形式として共通のグラフィクスオブジェクトを定義し、デコーダモデル、表示制御命令と動作モデルを定義した。これにより、動画に同期して字幕やボタンを表示することが可能となる効果がある。
この発明では、グラフィクスオブジェクトのデコーダモデルを定義し、実装のためにはオブジェクトバッファからプレーンバッファへの転送レートを制限する方法を示した。そして、同一のオブジェクトであっても、オブジェクトのプレーン上の位置、さらにオブジェクトの変形・移動などによって変化するプレーンバッファへの書き換えデータ量について、ウィンドウと称する矩形の更新領域を定義した。これにより、最小更新時間間隔を見積もることが可能となり、実装の実現性と再生互換性を高めることができるという効果がある。
この発明では、グラフィクスオブジェクトに音声データを含め、グラフィクスオブジェクトに含まれるボタン画像の表示と同時に音声データを再生するデコーダモデルを定義した。そのため、グラフィクスオブジェクトの表示に同期した音声データの再生を容易に行うことができるという効果がある。
この発明では、グラフィクスオブジェクトの表示制御命令に対して、音声データの再生を指示する命令を定義した。また、グラフィクスオブジェクトの表示制御命令に対して、グラフィクスオブジェクトに含まれる画像データに対して音声データを割り当てることができるようにしたため、任意の時刻での効果音などの音声データの再生や、効果音を伴う字幕やボタンの実現などが可能となる効果がある。
符号の説明
10 動画プレーン
11 字幕プレーン
12 グラフィクスプレーン
22 パレット
30 BD仮想プレーヤ
31 プレーヤコマンド
32 共通パラメータ
40 プレイバックコントロールプログラム
41 メソッド
60 メニュー画面
70,70’ シナリオ
73A〜73M プレイリスト
100 プレーヤデコーダ
104 コードバッファ
105 コンテンツバッファ
106 マルチメディアエンジン
109 バッファ
110 PIDフィルタ
116 グラフィックスデコーダA
117 グラフィックスデコーダB
118 オーディオデコーダ
120 MPEGビデオデコーダ
132 字幕プレーン
133 グラフィクスプレーン
134 動画像プレーン
226 PNGデコーダバッファ
227 PNGデコーダ
228 オブジェクトバッファ
229 プレーンバッファ
231 オーディオミキサ

Claims (87)

  1. コンテンツデータを再生する再生装置において、
    少なくともプログラムコードおよびユーザに対して操作を促す操作画面を構成する画像データを含む非リアルタイムストリームと、少なくとも動画データおよび字幕データを含むリアルタイムストリームとが入力される入力手段と、
    上記入力手段により入力された上記プログラムコードを格納するコード格納手段と、
    上記入力手段により入力された上記画像データを格納する画像データ格納手段と、
    上記入力手段により入力された上記動画データをデコードした復号動画データと、上記入力手段により入力された上記字幕データをデコードした復号字幕データとを合成する第1の合成手段と、
    上記コード格納手段に格納された上記プログラムコードに基づき、上記画像データ格納手段に格納された上記画像データをデコードした復号画像データと、上記第1の合成手段により合成された動画字幕合成データとを合成する第2の合成手段と
    を有することを特徴とする再生装置。
  2. 請求の範囲1に記載の再生装置において、
    上記画像データの上記デコードは、上記プログラムコードに基づきユーザからの入力に応じて行われることを特徴とする再生装置。
  3. 請求の範囲1に記載の再生装置において、
    上記第2の合成手段による上記合成は、上記プログラムコードに基づきユーザからの入力に応じて行われることを特徴とする再生装置。
  4. 請求の範囲1に記載の再生装置において、
    上記プログラムコードは、HTMLまたはXHTMLに基づき記述されていることを特徴とする再生装置。
  5. 請求の範囲1に記載の再生装置において、
    上記プログラムコードは、ECMAスクリプトで記述されていることを特徴とする再生装置。
  6. 請求の範囲1に記載の再生装置において、
    上記復号動画データの解像度を変換する解像度変換手段をさらに有し、上記第1の合成手段は、上記解像度変換手段の出力と上記復号字幕データとを合成するようにしたことを特徴とする再生装置。
  7. 請求の範囲1に記載の再生装置において、
    上記第1の合成手段による上記合成の度合いは、上記復号字幕データに応じて制御されることを特徴とする再生装置。
  8. 請求の範囲1に記載の再生装置において、
    上記第2の合成手段による上記合成の度合いは、上記復号画像データに応じて制御されることを特徴とする再生装置。
  9. 請求の範囲1に記載の再生装置において、
    上記復号字幕データの色情報を上記画像字幕合成データに用いる色としてYCbCr形式の色情報として出力させる第1の色情報変換手段と、
    上記復号画像データの色情報をRGB形式からYCbCr形式に変換する第2の色情報変換手段と
    をさらに有し、
    上記第1の合成手段は、上記第1の色情報変換手段で色情報が変換された上記復号字幕データと、上記復号動画データとを合成し、
    上記第2の合成手段は、上記第2の色情報変換手段で色情報が変換された上記復号画像データと、上記動画字幕合成データとを合成するようにしたことを特徴とする再生装置。
  10. 請求の範囲1に記載の再生装置において、
    上記リアルタイムストリームは、MPEG2 TSのトランスポートパケットに格納されて上記記録媒体から再生されることを特徴とする再生装置。
  11. 請求の範囲1に記載の再生装置において、
    上記リアルタイムストリームに上記画像データがさらに含まれることを特徴とする再生装置。
  12. 請求の範囲1に記載の再生装置において、
    上記入力手段により入力された1または複数の上記字幕データを格納する字幕データ格納手段をさらに有し、
    上記第1の合成手段は、上記字幕データ格納手段に格納された複数の上記字幕データをデコードした複数の上記復号字幕データと、上記復号動画データとを合成できるようにしたことを特徴とする再生装置。
  13. 請求の範囲1に記載の再生装置において、
    上記画像データ格納手段は、1または複数の上記画像データを格納するようにされ、
    上記第2の合成手段は、上記画像データ格納手段に格納された複数の上記画像データを復号した複数の上記復号画像データと、上記動画字幕合成データとを合成できるようにしたことを特徴とする再生装置。
  14. 請求の範囲1に記載の再生装置において、
    上記画像データおよび上記字幕データは、上記動画データに対して同期的に表示制御され、共通のデータ構造に格納されることを特徴とする再生装置。
  15. 請求の範囲14に記載の再生装置において、
    上記データ構造は、少なくとも、表示制御命令と、該表示制御命令により表示制御される1または複数の上記画像データまたは上記字幕データとを有することを特徴とする再生装置。
  16. 請求の範囲15に記載の再生装置において、
    上記表示制御命令は、上記画像データまたは上記字幕データ自体を変更せずに、該画像データまたは該字幕データの表示属性を変更する命令を含むことを特徴とする再生装置。
  17. 請求の範囲16に記載の再生装置において、
    上記表示属性は、透明度であることを特徴とする再生装置。
  18. 請求の範囲16に記載の再生装置において、
    上記表示属性は、表示色であることを特徴とする再生装置。
  19. 請求の範囲15に記載の再生装置において、
    上記データ構造は、同時に実行される複数の上記表示制御命令をひとまとめにして表示制御命令群として格納し、それぞれ異なる時刻に実行される複数の上記表示制御命令群を格納できるようにしたことを特徴とする再生装置。
  20. 請求の範囲14に記載の再生装置において、
    上記データ構造に格納される上記画像データまたは上記字幕データは、上記画像データをデコードする際の時間管理情報または上記字幕データをデコードする際の時間管理情報に基づき有効期間が開始され、該データ構造に定義される有効期間終了時刻で有効期間が終了されることを特徴とする再生装置。
  21. 請求の範囲1に記載の再生装置において、
    上記画像データはボタンを表示するボタン画像データであって、上記ボタンの3種類の状態にそれぞれ対応する第1、第2および第3のボタン画像データをユーザの上記操作に従い差し替えて表示するようにしたことを特徴とする再生装置。
  22. 請求の範囲14に記載の再生装置において、
    上記画像データはボタンを表示するボタン画像データであって、上記ボタンの3種類の状態にそれぞれ対応する第1、第2および第3のボタン画像データを同一の上記データ構造に格納するようにしたことを特徴とする再生装置。
  23. 請求の範囲15に記載の再生装置において、
    上記表示制御命令は、音声データの再生を制御する音声データ再生制御命令をさらに含めるようにしたことを特徴とする再生装置。
  24. 請求の範囲23に記載の再生装置において、
    上記音声データ再生制御命令に基づき上記字幕データの表示に対して同期的に音声データの再生を制御するようにしたことを特徴とする再生装置。
  25. 請求の範囲23に記載の再生装置において、
    上記画像データはボタンを表示するボタン画像データであって、上記音声データ再生制御命令に基づき上記ボタンの3種類の状態にそれぞれ対応する第1、第2および第3のボタン画像データの表示に応じて上記音声データを再生するようにしたことを特徴とする再生装置。
  26. 請求の範囲23に記載の再生装置において、
    上記音声データ再生制御命令により、上記画像データまたは上記字幕データに対して上記音声データを割り当てることができるようにしたことを特徴とする再生装置。
  27. 請求の範囲1に記載の再生装置において、
    上記入力手段に対して、効果音を再生する音声データがさらに入力されることを特徴とする再生装置。
  28. 請求の範囲27に記載の再生装置において、
    上記音声データは、上記リアルタイムストリームに多重化されて入力されることを特徴とする再生装置。
  29. 請求の範囲28に記載の再生装置において、
    上記リアルタイムストリームは画像データがさらに多重化され、該リアルタイムストリームに含まれ多重化される画像データおよび上記音声データは、1のデータ構造にまとめて格納されて入力されることを特徴とする記録媒体。
  30. 請求の範囲29に記載の再生装置において、
    上記データ構造には、上記リアルタイムストリームに多重化される画像データの表示制御および上記音声データの再生制御を行う制御命令がさらに格納されていることを特徴とする再生装置。
  31. 請求の範囲29に記載の再生装置において、
    上記データ構造には、上記リアルタイムストリームに多重化される画像データと対応する上記音声データが一組とされて格納されていることを特徴とする再生装置。
  32. 請求の範囲31に記載の再生装置において、
    上記リアルタイムストリームに多重化される画像データの表示に応じて該画像データと対応する上記音声データが再生されるようにしたことを特徴とする再生装置。
  33. 請求の範囲32に記載の再生装置において、
    上記リアルタイムストリームに多重化される画像データは、ボタンを表示するボタン画像データであって、上記データ構造には、上記ボタンの状態に対応した上記ボタン画像データと上記音声データとが一組とされて格納されていることを特徴とする再生装置。
  34. 請求の範囲33に記載の再生装置において、
    上記ボタンは複数の状態を有し、該複数の状態に複数のボタン画像データがそれぞれ対応付けられると共に、該複数のボタン画像データの少なくとも1つに音声データが対応付けられて一組とされて、該複数のボタン画像データと該音声データとが同一の上記データ構造に格納されていることを特徴とする再生装置。
  35. 請求の範囲34に記載の再生装置において、
    上記ボタンの上記状態の変化に伴う上記ボタン画像データの表示に応じて該ボタン画像データと一組をなす上記音声データを再生するようにしたことを特徴とする再生装置。
  36. 請求の範囲35に記載の再生装置において、
    上記データ構造は、同時に実行される複数の上記制御命令をひとまとめにして制御命令群として格納し、それぞれ異なる時刻に実行される複数の上記制御命令群を格納できるようにされたことを特徴とする再生装置。
  37. 請求の範囲27に記載の再生装置において、
    上記音声データは、ファイルに格納されて上記非リアルタイムストリームとして上記入力手段から入力されることを特徴とする再生装置。
  38. 請求の範囲37に記載の再生装置において、
    上記リアルタイムストリームに多重化される画像データと、上記音声データを示す情報とが、1のデータ構造にまとめて格納されて入力されるようにしたことを特徴とする再生装置。
  39. 請求の範囲38に記載の再生装置において、
    上記データ構造は、上記リアルタイムストリームに多重化される画像データと、該画像データと対応する上記音声データを示す情報とが一組とされて格納され、該画像データの表示に応じて該画像データに対応する上記音声データが再生されるようにしたことを特徴とする再生装置。
  40. 請求の範囲39に記載の再生装置において、
    上記リアルタイムストリームに多重化される画像データは、ボタンを表示するボタン画像データであって、上記データ構造には、上記ボタンの状態に対応した上記ボタン画像データと、該ボタン画像データと対応する上記音声データを示す情報とが一組とされて格納されていることを特徴とする再生装置。
  41. 請求の範囲40に記載の再生装置において、
    上記ボタンは複数の状態を有し、該複数の状態に複数のボタン画像データがそれぞれ対応付けられると共に、該複数のボタン画像データの少なくとも1つに音声データが対応付けられて一組とされ、該複数のボタン画像データと該音声データを示す情報とが同一の上記データ構造に格納されていることを特徴とする再生装置。
  42. 請求の範囲41に記載の再生装置において、
    上記データ構造は、上記ボタン画像データの表示に応じて該ボタン画像データと対になる上記音声データを再生するようにした制御命令がさらに格納され、上記制御命令に基づき上記音声データを再生するようにしたことを特徴とする再生装置。
  43. 請求の範囲42に記載の再生装置において、
    上記データ構造は、同時に実行される複数の上記制御命令をひとまとめにして制御命令群として格納し、それぞれ異なる時刻に実行される複数の上記制御命令群を格納できるようにされていることを特徴とする再生装置。
  44. 請求の範囲1に記載の再生装置において、
    上記画像データをデコードする際のレートの上限を規定するようにしたことを特徴とする再生装置。
  45. 請求の範囲1に記載の再生装置において、
    上記復号画像データをプレーンバッファに転送する際の転送レートの上限を規定するようにしたことを特徴とする再生装置。
  46. 請求の範囲45に記載の再生装置において、
    1または複数の上記復号画像データを完全に含みむ上記プレーンバッファ上の矩形領域を定義し、画像データの描画、更新および消去の際に上記矩形領域を書き換えることで上記転送レートの上限を規定するようにしたことを特徴とする再生装置。
  47. 請求の範囲1に記載の再生装置において、
    上記非リアルタイムストリームは、円盤状記録媒体から再生されて上記入力手段に入力されることを特徴とする再生装置。
  48. 請求の範囲1に記載の再生装置において、
    上記非リアルタイムストリームは、ネットワークから取得されて上記入力手段に入力されることを特徴とする再生装置。
  49. 請求の範囲1に記載の再生装置において、
    上記リアルタイムストリームは、円盤状記録媒体から再生されて上記入力手段に入力されることを特徴とする再生装置。
  50. 請求の範囲1に記載の再生装置において、
    上記リアルタイムストリームは、ネットワークから取得されて上記入力手段に入力されることを特徴とする再生装置。
  51. コンテンツデータを再生する再生方法において、
    少なくともプログラムコードおよびユーザに対して操作を促す操作画面を構成する画像データを含む非リアルタイムストリームと、少なくとも動画データおよび字幕データを含むリアルタイムストリームとを入力する入力のステップと、
    上記入力のステップにより入力された上記プログラムコードをコード格納手段に格納するステップと、
    上記入力のステップにより入力された上記画像データを画像データ格納手段に格納するステップと、
    上記入力のステップにより入力された上記動画データをデコードした復号動画データと、上記入力のステップにより入力された上記字幕データをデコードした復号字幕データとを合成する第1の合成のステップと、
    上記コード格納手段に格納された上記プログラムコードに基づき、上記画像データ格納手段に格納された上記画像データをデコードした復号画像データと、上記第1の合成のステップにより合成された動画字幕合成データとを合成する第2の合成のステップと
    を有することを特徴とする再生方法。
  52. コンテンツデータを再生する再生方法をコンピュータ装置に実行させる再生プログラムにおいて、
    上記再生方法は、
    少なくともプログラムコードおよびユーザに対して操作を促す操作画面を構成する画像データを含む非リアルタイムストリームと、少なくとも動画データおよび字幕データを含むリアルタイムストリームとを入力する入力のステップと、
    上記入力のステップにより入力された上記プログラムコードをコード格納手段に格納するステップと、
    上記入力のステップにより入力された上記画像データを画像データ格納手段に格納するステップと、
    上記入力のステップにより入力された上記動画データをデコードした復号動画データと、上記入力のステップにより入力された上記字幕データをデコードした復号字幕データとを合成する第1の合成のステップと、
    上記コード格納手段に格納された上記プログラムコードに基づき、上記画像データ格納手段に格納された上記画像データをデコードした復号画像データと、上記第1の合成のステップにより合成された動画字幕合成データとを合成する第2の合成のステップと
    を有することを特徴とする再生プログラム。
  53. コンテンツデータを再生する再生方法をコンピュータ装置に実行させる再生プログラムが記録された記録媒体において、
    上記再生方法は、
    少なくともプログラムコードおよびユーザに対して操作を促す操作画面を構成する画像データを含む非リアルタイムストリームと、少なくとも動画データおよび字幕データを含むリアルタイムストリームとを入力する入力のステップと、
    上記入力のステップにより入力された上記プログラムコードをコード格納手段に格納するステップと、
    上記入力のステップにより入力された上記画像データを画像データ格納手段に格納するステップと、
    上記入力のステップにより入力された上記動画データをデコードした復号動画データと、上記入力のステップにより入力された上記字幕データをデコードした復号字幕データとを合成する第1の合成のステップと、
    上記コード格納手段に格納された上記プログラムコードに基づき、上記画像データ格納手段に格納された上記画像データをデコードした復号画像データと、上記第1の合成のステップにより合成された動画字幕合成データとを合成する第2の合成のステップと
    を有することを特徴とする記録媒体。
  54. コンテンツデータが記録された円盤状の形状を有する記録媒体において、
    少なくともプログラムコードおよびユーザに対して操作を促す操作画面を構成する画像データを含む非リアルタイムストリームと、少なくとも動画データおよび字幕データを含むリアルタイムストリームとが記録され、
    上記プログラムコードに基づき、再生後に画像データ格納手段に格納された上記画像データをデコードした復号画像データと、再生された上記動画データをデコードした復号動画データおよび再生された上記字幕データをデコードした復号字幕データが合成された動画字幕合成データとが合成されることを特徴とする記録媒体。
  55. 請求の範囲54に記載の記録媒体において、
    上記画像データおよび上記字幕データは、上記動画データに対して同期的に表示制御され、共通のデータ構造に格納されて記録されることを特徴とする記録媒体。
  56. 請求の範囲55に記載の記録媒体において、
    上記データ構造は、少なくとも、表示制御命令と、該表示制御命令により表示制御される1または複数の上記画像データまたは上記字幕データとを有することを特徴とする記録媒体。
  57. 請求の範囲56に記載の記録媒体において、
    上記表示制御命令は、上記画像データまたは上記字幕データ自体を変更せずに、該画像データまたは該字幕データの表示属性を変更する命令を含むことを特徴とする記録媒体。
  58. 請求の範囲57に記載の記録媒体において、
    上記表示属性は、透明度であることを特徴とする記録媒体。
  59. 請求の範囲57に記載の記録媒体において、
    上記表示属性は、表示色であることを特徴とする記録媒体。
  60. 請求の範囲56に記載の記録媒体において、
    上記データ構造は、同時に実行される複数の上記表示制御命令をひとまとめにして表示制御命令群として格納し、それぞれ異なる時刻に実行される複数の上記表示制御命令群を格納できるようにして記録されることを特徴とする記録媒体。
  61. 請求の範囲55に記載の記録媒体において、
    上記画像データをデコードする際の時間管理情報または上記字幕データをデコードする際の時間管理情報に基づき有効期間が開始され、上記データ構造に定義される有効期間終了時刻で有効期間が終了されるようにした上記画像データまたは上記字幕データが上記データ構造に格納されて記録されることを特徴とする記録媒体。
  62. 請求の範囲54に記載の記録媒体において、
    上記画像データはボタンを表示するボタン画像データであって、上記ボタンの3種類の状態にそれぞれ対応する第1、第2および第3のボタン画像データをユーザの上記操作に従い差し替えて表示するようにしたことを特徴とする記録媒体。
  63. 請求の範囲55に記載の記録媒体において、
    上記画像データはボタンを表示するボタン画像データであって、上記ボタンの3種類の状態にそれぞれ対応する第1、第2および第3のボタン画像データを同一の上記データ構造に格納して記録することを特徴とする記録媒体。
  64. 請求の範囲56に記載の記録媒体において、
    上記表示制御命令は、音声データの再生を制御する音声データ再生制御命令をさらに含めて上記データ構造に格納され記録されることを特徴とする記録媒体。
  65. 請求の範囲64に記載の記録媒体において、
    上記音声データ再生制御命令に基づき上記字幕データの表示に対して同期的に音声データの再生を制御するようにした上記表示制御命令が上記データ構造に格納されて記録されることを特徴とする記録媒体。
  66. 請求の範囲64に記載の記録媒体において、
    上記画像データはボタンを表示するボタン画像データであって、上記音声データ再生制御命令に基づき上記ボタンの3種類の状態にそれぞれ対応する第1、第2および第3のボタン画像データの表示に応じて上記音声データを再生するようにした上記表示制御命令が上記データ構造に格納されて記録されることを特徴とする記録媒体。
  67. 請求の範囲64に記載の記録媒体において、
    上記音声データ再生制御命令により上記画像データまたは上記字幕データに対して上記音声データを割り当てることができるようにした上記表示制御命令が上記データ構造に格納されて記録されることを特徴とする記録媒体。
  68. 請求の範囲54に記載の記録媒体において、
    上記画像データがさらに上記リアルタイムストリームに多重化されて記録されることを特徴とする記録媒体。
  69. 請求の範囲54に記載の記録媒体において、
    効果音を再生する音声データがさらに記録されることを特徴とする記録媒体。
  70. 請求の範囲69に記載の記録媒体において、
    上記音声データは、上記リアルタイムストリームに多重化されて記録されることを特徴とする記録媒体。
  71. 請求の範囲70に記載の記録媒体において、
    上記リアルタイムストリームは画像データがさらに多重化され、該リアルタイムストリームに含まれる画像データおよび上記音声データを、1のデータ構造にまとめて格納して記録するようにしたことを特徴とする記録媒体。
  72. 請求の範囲71に記載の記録媒体において、
    上記データ構造には、上記リアルタイムストリームに多重化される画像データの表示制御および上記音声データの再生制御を行う制御命令がさらに格納されることを特徴とする記録媒体。
  73. 請求の範囲71に記載の記録媒体において、
    上記データ構造には、上記リアルタイムストリームに多重化される画像データに対応する上記音声データが一組とされて格納されることを特徴とする記録媒体。
  74. 請求の範囲73に記載の記録媒体において、
    上記リアルタイムストリームに多重化される画像データは、ボタンを表示するボタン画像データであって、上記データ構造には、上記ボタンの状態に対応した上記ボタン画像データと上記音声データとが一組とされて格納されることを特徴とする記録媒体。
  75. 請求の範囲74に記載の記録媒体において、
    上記ボタンは複数の状態を有し、該複数の状態に複数のボタン画像データがそれぞれ対応付けられると共に、該複数のボタン画像データの少なくとも1つに音声データが対応付けられ一組とされて、該複数のボタン画像データと該音声データとを同一の上記データ構造に格納することを特徴とする記録媒体。
  76. 請求の範囲75に記載の記録媒体において、
    上記ボタンの上記状態の変化に伴う上記ボタン画像データの表示に応じて該ボタン画像データと一組をなす上記音声データを再生するようにされていることを特徴とする記録媒体。
  77. 請求の範囲76に記載の記録媒体において、
    上記データ構造は、同時に実行される複数の上記制御命令をひとまとめにして制御命令群として格納し、それぞれ異なる時刻に実行される複数の上記制御命令群を格納できるようにして記録されることを特徴とする記録媒体。
  78. 請求の範囲69に記載の記録媒体において、
    上記音声データは、ファイルに格納されて記録されることを特徴とする記録媒体。
  79. 請求の範囲78に記載の記録媒体において、
    上記リアルタイムストリームに多重化される画像データと、上記音声データを示す情報とを、1のデータ構造にまとめて格納して記録するようにしたことを特徴とする記録媒体。
  80. 請求の範囲79に記載の記録媒体において、
    上記データ構造には、上記リアルタイムストリームに多重化される画像データと、該画像データと対応する上記音声データを示す情報とが一組とされて格納されることを特徴とする記録媒体。
  81. 請求の範囲80に記載の記録媒体において、
    上記リアルタイムストリームに多重化される画像データは、ボタンを表示するボタン画像データであって、上記データ構造には、上記ボタンの状態に対応した上記ボタン画像データと、該ボタン画像データと対応する上記音声データを示す情報とが一組とされて格納されることを特徴とする記録媒体。
  82. 請求の範囲81に記載の記録媒体において、
    上記ボタンは複数の状態を有し、該複数の状態に複数のボタン画像データがそれぞれ対応付けられると共に、該複数のボタン画像データの少なくとも1つに音声データが対応付けられ一組とされて、該複数のボタン画像データと該音声データを示す情報とが同一の上記データ構造に格納されることを特徴とする記録媒体。
  83. 請求の範囲82に記載の記録媒体において、
    上記ボタン画像データの表示に応じて該ボタン画像データと対になる上記音声データを再生するようにした制御命令が上記データ構造にさらに格納されることを特徴とする記録媒体。
  84. 請求の範囲83に記載の記録媒体において、
    上記データ構造は、同時に実行される複数の上記制御命令をひとまとめにして制御命令群として格納し、それぞれ異なる時刻に実行される複数の上記制御命令群を格納できるようにして記録されることを特徴とする記録媒体。
  85. 請求の範囲54に記載の記録媒体において、
    予め規定された、上記画像データをデコードする際のレートの下限を満足するようにして上記画像データが記録されることを特徴とする記録媒体。
  86. 請求の範囲54に記載の記録媒体において、
    予め規定された、上記復号画像データをプレーンバッファに転送する際の転送レートの下限を満足するようにして上記画像データが記録されることを特徴とする記録媒体。
  87. 請求の範囲86に記載の記録媒体において、
    1または複数の上記復号画像データを完全に含みむ上記プレーンバッファ上の矩形領域を定義し、画像データの描画、更新および消去の際に上記矩形領域を書き換えることで上記転送レートの下限を満足するようにしたことを特徴とする記録媒体。
JP2005510280A 2002-11-28 2003-11-14 再生装置、再生方法、再生プログラムおよび記録媒体 Expired - Fee Related JP4442564B2 (ja)

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
JP2002346133 2002-11-28
JP2002346133 2002-11-28
JP2003022551 2003-01-30
JP2003022551 2003-01-30
JP2003074441 2003-03-18
JP2003074441 2003-03-18
PCT/JP2003/014511 WO2004049710A1 (ja) 2002-11-28 2003-11-14 再生装置、再生方法、再生プログラムおよび記録媒体

Publications (2)

Publication Number Publication Date
JPWO2004049710A1 JPWO2004049710A1 (ja) 2006-03-30
JP4442564B2 true JP4442564B2 (ja) 2010-03-31

Family

ID=32397753

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005510280A Expired - Fee Related JP4442564B2 (ja) 2002-11-28 2003-11-14 再生装置、再生方法、再生プログラムおよび記録媒体

Country Status (4)

Country Link
US (3) US8150237B2 (ja)
JP (1) JP4442564B2 (ja)
CN (1) CN100466713C (ja)
WO (1) WO2004049710A1 (ja)

Families Citing this family (127)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6808709B1 (en) * 1994-12-30 2004-10-26 The Regents Of The University Of California Immunoglobulins containing protection proteins and their use
JP3716920B2 (ja) * 2001-10-16 2005-11-16 ソニー株式会社 記録媒体再生装置および方法、記録媒体、並びにプログラム
AU2003258860B2 (en) * 2002-09-05 2009-11-12 Lg Electronics Inc. Recording medium having data structure for managing reproduction of still images recorded thereon and recording and reproducing methods and apparatuses
JP4520853B2 (ja) * 2002-09-06 2010-08-11 エルジー エレクトロニクス インコーポレイティド 停止映像の再生を管理するためのデータ構造を有する記録媒体、それによる記録及び再生方法及び装置
WO2004023479A1 (en) * 2002-09-07 2004-03-18 Lg Electronics Inc. Recording medium having data structure for managing reproduction of still images from a clip file recorded thereon and recording and reproducing methods and apparatuses
AU2003282414B2 (en) * 2002-11-20 2007-09-13 Lg Electronics Inc. Recording medium having data structure for managing reproduction of still images recorded thereon and recording and reproducing methods and apparatuses
KR100939711B1 (ko) * 2002-12-12 2010-02-01 엘지전자 주식회사 텍스트 기반의 서브타이틀 재생장치 및 방법
JP4165895B2 (ja) * 2003-01-20 2008-10-15 エルジー エレクトロニクス インコーポレーテッド 記録された静止映像の再生を管理するためのデータ構造を有する記録媒体、それによる記録と再生の方法及び装置
ES2335003T3 (es) * 2003-01-20 2010-03-18 Lg Electronics, Inc. Medio de grabacion que tiene una estructura de datos para gestionar la reproduccion de imagenes fijas grabadas en el, y metodos y aparatos de grabacion y reproduccion.
CN101510981B (zh) 2003-01-31 2011-08-10 松下电器产业株式会社 再现装置、记录方法以及再现方法
US8145033B2 (en) * 2003-02-05 2012-03-27 Lg Electronics Inc. Recording medium having data structure for managing reproducton duration of still pictures recorded thereon and recording and reproducing methods and apparatuses
US7734154B2 (en) * 2003-02-14 2010-06-08 Lg Electronics Inc. Recording medium having data structure for managing reproduction duration of still pictures recorded thereon and recording and reproducing methods and apparatuses
US8055117B2 (en) 2003-02-15 2011-11-08 Lg Electronics Inc. Recording medium having data structure for managing reproduction duration of still pictures recorded thereon and recording and reproducing methods and apparatuses
US8041179B2 (en) * 2003-02-24 2011-10-18 Lg Electronics Inc. Methods and apparatuses for reproducing and recording still picture and audio data and recording medium having data structure for managing reproduction of still picture and audio data
KR100903257B1 (ko) 2003-02-28 2009-06-17 파나소닉 주식회사 애니메이션을 수반한 대화화면을 표시하기 위한 시스템 집적회로 및 재생장치
CN101026774B (zh) 2003-06-30 2011-01-05 松下电器产业株式会社 再现装置、记录方法和再现方法
WO2005010882A1 (en) * 2003-07-24 2005-02-03 Lg Electronics Inc. Recording medium having a data structure for managing reproduction of text subtitle data recorded thereon and recording and reproducing methods and apparatuses
KR20050012328A (ko) * 2003-07-25 2005-02-02 엘지전자 주식회사 고밀도 광디스크의 프레젠테이션 그래픽 데이터 관리 및재생방법과 그에 따른 고밀도 광디스크
KR20050035678A (ko) * 2003-10-14 2005-04-19 엘지전자 주식회사 광디스크 장치의 부가 데이터 재생방법 및 장치와, 이를위한 광디스크
KR20050036277A (ko) * 2003-10-15 2005-04-20 엘지전자 주식회사 고밀도 광디스크의 네비게이션 정보 관리방법
JP4649865B2 (ja) * 2003-11-06 2011-03-16 ソニー株式会社 情報処理装置、情報記録媒体、および情報処理方法、並びにコンピュータ・プログラム
JP4106662B2 (ja) * 2003-11-17 2008-06-25 ソニー株式会社 情報記録再生装置および方法、プログラム格納媒体、並びにプログラム
CN103956176B (zh) 2003-11-28 2017-07-07 索尼株式会社 再现设备和再现方法
KR101053575B1 (ko) * 2003-12-09 2011-08-03 엘지전자 주식회사 고밀도 광디스크 및 고밀도 광디스크의 파일 구성방법
KR20050072256A (ko) * 2004-01-06 2005-07-11 엘지전자 주식회사 고밀도 광디스크의 메뉴 사운드 구성방법 및 재생방법과기록재생장치
KR20050072255A (ko) 2004-01-06 2005-07-11 엘지전자 주식회사 고밀도 광디스크의 서브타이틀 구성방법 및 재생방법과기록재생장치
JP2007518205A (ja) * 2004-01-06 2007-07-05 エルジー エレクトロニクス インコーポレーテッド テキスト・サブタイトル・ストリームの再生・記録のための記録媒体、方法及び装置
EP1713269B1 (en) 2004-01-13 2012-08-08 Panasonic Corporation Recording medium, reproduction device, recording method, program, and reproduction method
US8190003B2 (en) * 2004-01-14 2012-05-29 Samsung Electronics Co., Ltd. Storage medium storing interactive graphics stream activated in response to user's command, and reproducing apparatus for reproducing from the same
WO2005074187A1 (ja) * 2004-01-29 2005-08-11 Sony Corporation 情報処理装置及び方法
US20050196146A1 (en) * 2004-02-10 2005-09-08 Yoo Jea Y. Method for reproducing text subtitle and text subtitle decoding system
WO2005076278A1 (en) * 2004-02-10 2005-08-18 Lg Electronic Inc. Recording medium having a data structure for managing data streams associated with different languages and recording and reproducing methods and apparatuses
RU2377669C2 (ru) * 2004-02-10 2009-12-27 ЭлДжи ЭЛЕКТРОНИКС ИНК. Носитель записи, имеющий структуру данных для управления различными данными, и способ и устройство записи и воспроизведения
EP1716701A1 (en) * 2004-02-10 2006-11-02 LG Electronic Inc. Text subtitle decoder and method for decoding text subtitle streams
US7643732B2 (en) * 2004-02-10 2010-01-05 Lg Electronics Inc. Recording medium and method and apparatus for decoding text subtitle streams
BRPI0418524A (pt) * 2004-02-10 2007-05-15 Lg Electronics Inc meio fìsico de gravação, método e aparelho para gravar e reproduzir um estrutura de dados
US7587405B2 (en) * 2004-02-10 2009-09-08 Lg Electronics Inc. Recording medium and method and apparatus for decoding text subtitle streams
KR20050089353A (ko) * 2004-03-04 2005-09-08 엘지전자 주식회사 고밀도 광디스크와 그에 따른 데이터 파일 구성 방법 및재생 방법과 장치
JP4496170B2 (ja) * 2004-02-17 2010-07-07 パナソニック株式会社 記録方法、再生装置、プログラム、再生方法
EP1721453A2 (en) * 2004-02-26 2006-11-15 LG Electronics, Inc. Recording medium and method and apparatus for reproducing and recording text subtitle streams
KR20070007824A (ko) * 2004-03-17 2007-01-16 엘지전자 주식회사 기록매체 및 텍스트 서브타이틀 스트림 재생 방법과 장치
EP1728252B1 (en) 2004-03-18 2009-12-23 LG Electronics Inc. Recording medium and method and apparatus for reproducing text subtitle stream recorded on the recording medium
BRPI0509231A (pt) * 2004-03-26 2007-09-04 Lg Electronics Inc meio de gravação, método e aparelho para reproduzir fluxos de subtìtulo de texto
DE602005017878D1 (de) * 2004-03-26 2010-01-07 Lg Electronics Inc Aufzeichnungsmedium und verfahren und vorrichtung zum wiedergeben eines auf dem aufzeichnungsmedium aufgezeichneten textuntertitelstroms
CN100499780C (zh) * 2004-03-29 2009-06-10 索尼株式会社 数据处理方法和设备
JP4779340B2 (ja) 2004-03-29 2011-09-28 ソニー株式会社 データ処理方法、データ処理装置、および情報記録媒体、並びにコンピュータ・プログラム
US20050234858A1 (en) * 2004-03-30 2005-10-20 Yasuyuki Torii Recording and reproducing apparatus, reproducing apparatus, recording and reproducing method, reproducing method, program and recording medium
KR20060047266A (ko) * 2004-04-26 2006-05-18 엘지전자 주식회사 기록매체, 기록매체의 재생방법과 재생장치
JP4724710B2 (ja) * 2004-05-03 2011-07-13 エルジー エレクトロニクス インコーポレイティド テキストサブタイトルデータを再生管理するためのデータ構造を有する記録媒体及びこれと関連する方法及び装置
JP4692950B2 (ja) * 2004-06-11 2011-06-01 ソニー株式会社 データ処理装置およびデータ処理方法、プログラムおよびプログラム記録媒体、並びにデータ記録媒体
JP4244331B2 (ja) 2004-06-11 2009-03-25 ソニー株式会社 データ処理装置およびデータ処理方法、並びにプログラムおよびプログラム記録媒体
KR100890312B1 (ko) 2004-06-18 2009-03-26 파나소닉 주식회사 재생장치, 기록매체, 재생방법
WO2006004122A1 (ja) * 2004-07-06 2006-01-12 Matsushita Electric Industrial Co., Ltd. 光ディスク、再生装置、プログラム、再生方法
CN101916579A (zh) * 2004-07-22 2010-12-15 松下电器产业株式会社 用于执行应用程序同步重放的重放装置
KR100694123B1 (ko) * 2004-07-30 2007-03-12 삼성전자주식회사 동영상 데이터와 어플리케이션 프로그램이 기록된 저장매체 및 그 재생 장치 및 방법
US7609939B2 (en) * 2004-08-17 2009-10-27 Lg Electronics Inc. Method and apparatus of reproducing data recorded on recording medium and local storage
US7725010B2 (en) * 2004-08-17 2010-05-25 Lg Electronics, Inc. Method and apparatus of reproducing data recorded on recording medium and local storage
US7609945B2 (en) * 2004-08-17 2009-10-27 Lg Electronics Inc. Recording medium, and method and apparatus for reproducing data from the recording medium
US7613384B2 (en) * 2004-08-17 2009-11-03 Lg Electronics Inc. Method for configuring composite file structure for data reproduction, and method and apparatus for reproducing data using the composite file structure
JP4505280B2 (ja) * 2004-08-19 2010-07-21 株式会社ソニー・コンピュータエンタテインメント 映像再生装置および映像再生方法
JP4332089B2 (ja) 2004-08-19 2009-09-16 ソニー株式会社 再生装置、再生方法および再生プログラム、ならびに、記録媒体
KR101228411B1 (ko) * 2004-08-19 2013-02-01 소니 주식회사 영상재생장치 및 방법, 기록매체, 영상재생 프로그램
WO2006018932A1 (ja) 2004-08-19 2006-02-23 Sony Computer Entertainment Inc. 映像再生装置および方法、記録媒体、映像再生プログラム
KR20070056059A (ko) * 2004-08-31 2007-05-31 마쯔시다덴기산교 가부시키가이샤 동화상 부호화 방법 및 장치
KR100677129B1 (ko) * 2004-09-03 2007-02-02 삼성전자주식회사 인터랙티브 그래픽 스트림을 기록한 저장 매체, 그 재생장치 및 재생 방법
US7609947B2 (en) * 2004-09-10 2009-10-27 Panasonic Corporation Method and apparatus for coordinating playback from multiple video sources
US20060056804A1 (en) * 2004-09-13 2006-03-16 Seo Kang S Recording medium, and method and apparatus for reproducing data from the recording medium
US20060056803A1 (en) * 2004-09-13 2006-03-16 Seo Kang S Recording medium, method for searching contents recorded within the recording medium, and method and apparatus for reproducing the recorded contents
US7599611B2 (en) * 2004-09-13 2009-10-06 Lg Electronics Co. Recording medium, and method and apparatus of reproducing data recorded on the same
KR20060031750A (ko) * 2004-10-09 2006-04-13 삼성전자주식회사 동영상 재생 및 프로그래밍 기능을 위한 멀티미디어데이터를 기록한 저장매체, 그 재생장치 및 재생방법
JP2006127367A (ja) * 2004-11-01 2006-05-18 Sony Corp 情報管理方法、情報管理プログラムおよび情報管理装置
JP3925812B2 (ja) * 2004-11-11 2007-06-06 ソニー株式会社 再生装置および方法
US8068107B2 (en) * 2004-11-22 2011-11-29 Mario Pirchio Method to synchronize audio and graphics in a multimedia presentation
CA2564045C (en) * 2004-12-01 2013-02-26 Matsushita Electric Industrial Co., Ltd. Non-transitory recording medium, reproduction device, non-transitory computer readable recording medium storing a management program, reproduction method, and recording method fora click sound playback
WO2006059661A1 (ja) 2004-12-01 2006-06-08 Matsushita Electric Industrial Co., Ltd. 再生装置、画像合成方法、画像合成プログラム及び集積回路
KR100739770B1 (ko) * 2004-12-11 2007-07-13 삼성전자주식회사 멀티 앵글 타이틀에 적용 가능한 메타 데이터를 포함하는저장 매체, 그 재생 장치 및 방법
JP4737991B2 (ja) 2005-01-04 2011-08-03 株式会社東芝 再生装置
JP4519658B2 (ja) * 2005-01-04 2010-08-04 株式会社東芝 再生装置
JP4417854B2 (ja) 2005-01-04 2010-02-17 株式会社東芝 再生装置
JP4568120B2 (ja) * 2005-01-04 2010-10-27 株式会社東芝 再生装置
KR101069858B1 (ko) * 2005-01-31 2011-10-04 엘지전자 주식회사 데이터 기록매체에 기록된 컨텐츠상에 마크를 설정하고,그 마크에 따른 동작을 수행하는 방법 및 장치
US20060218251A1 (en) * 2005-03-14 2006-09-28 Matsushita Electric Industrial Co., Ltd. AV server, AV contents reproducing apparatus, AV contents transmitting method, program and recording medium
JP4715278B2 (ja) 2005-04-11 2011-07-06 ソニー株式会社 情報処理装置および情報処理方法、プログラム格納媒体、プログラム、並びに提供装置
KR100663647B1 (ko) * 2005-06-01 2007-01-03 삼성전자주식회사 디스플레이장치 및 그 제어방법
JP2007004950A (ja) * 2005-06-27 2007-01-11 Sanyo Electric Co Ltd 光ディスク装置およびハイブリッド型光ディスク
CN101026725B (zh) * 2005-07-15 2010-09-29 索尼株式会社 再现设备及再现方法
JP4251298B2 (ja) 2005-07-15 2009-04-08 ソニー株式会社 再生装置および再生方法、プログラム、プログラム格納媒体、データ、記録媒体、記録装置、および、記録媒体の製造方法
KR20070014944A (ko) * 2005-07-29 2007-02-01 엘지전자 주식회사 데이터 재생방법 및 재생장치, 기록매체와 데이터 기록방법및 기록장치
JP5234144B2 (ja) * 2005-08-30 2013-07-10 ソニー株式会社 再生装置、並びに記録媒体及びその製造方法
US8189908B2 (en) * 2005-09-02 2012-05-29 Adobe Systems, Inc. System and method for compressing video data and alpha channel data using a single stream
KR100750141B1 (ko) * 2005-11-30 2007-08-21 삼성전자주식회사 디지털 데이터 방송 수신기의 해상도 제어 방법, 장치 및그 디지털 데이터 방송 수신기
JP4642655B2 (ja) 2005-12-28 2011-03-02 ソニー株式会社 再生装置および再生方法、プログラム、記録媒体、データ構造、記録媒体の製造方法および記録装置、並びに、データ構造の生成方法および生成装置
JP4625781B2 (ja) 2006-03-22 2011-02-02 株式会社東芝 再生装置
JP4765733B2 (ja) * 2006-04-06 2011-09-07 ソニー株式会社 記録装置、記録方法および記録プログラム
JP4765734B2 (ja) * 2006-04-06 2011-09-07 ソニー株式会社 情報処理装置、情報処理方法および情報処理プログラム、ならびに、表示制御装置
JP5001584B2 (ja) * 2006-06-06 2012-08-15 ソニー株式会社 オーサリング装置、オーサリング方法、オーサリングプログラム、記録装置、記録方法および記録プログラム、検証装置、検証方法および検証プログラム、ならびに、記録媒体の製造装置および製造方法
JP4816262B2 (ja) 2006-06-06 2011-11-16 ソニー株式会社 再生装置、再生方法および再生プログラム
JP4780806B2 (ja) * 2006-08-29 2011-09-28 パイオニア株式会社 情報再生装置及び方法、並びにコンピュータプログラム
JP4858059B2 (ja) * 2006-10-02 2012-01-18 ソニー株式会社 再生装置、表示制御方法および表示制御プログラム
KR101323331B1 (ko) * 2006-11-06 2013-10-29 삼성전자주식회사 불연속 동영상 데이터의 재생 방법 및 장치
US7861150B2 (en) * 2006-11-07 2010-12-28 Microsoft Corporation Timing aspects of media content rendering
US8650489B1 (en) * 2007-04-20 2014-02-11 Adobe Systems Incorporated Event processing in a content editor
US20090010533A1 (en) * 2007-07-05 2009-01-08 Mediatek Inc. Method and apparatus for displaying an encoded image
JP2009111932A (ja) * 2007-10-31 2009-05-21 Panasonic Corp 動画像復号化装置
US8639086B2 (en) 2009-01-06 2014-01-28 Adobe Systems Incorporated Rendering of video based on overlaying of bitmapped images
JP2009163866A (ja) * 2009-01-07 2009-07-23 Casio Comput Co Ltd 情報再生装置および情報再生処理のプログラム
JP2010245970A (ja) * 2009-04-08 2010-10-28 Sony Corp 再生装置、再生方法、およびプログラム
US20100329638A1 (en) * 2009-06-29 2010-12-30 Nortel Networks Limited Method and apparatus for independent licensing of audio in distribution of audiovisual assets
US8134795B2 (en) * 2009-08-27 2012-03-13 Hitachi Global Storage Technologies Netherlands B.V. Using an atmospheric pressure sensor in a hard-disk drive (HDD)
US20110227911A1 (en) * 2010-03-22 2011-09-22 Lg Electronics Inc. Image display device and method for operating the same
US9454341B2 (en) * 2010-11-18 2016-09-27 Kodak Alaris Inc. Digital image display device with automatically adjusted image display durations
KR20130094044A (ko) * 2012-02-15 2013-08-23 삼성전자주식회사 영상 표시 장치에서 자막 속성을 변경하기 위한 장치 및 방법
JP5339002B2 (ja) * 2013-05-20 2013-11-13 ソニー株式会社 情報処理装置、再生方法、および記録媒体
CN103354624B (zh) * 2013-06-06 2016-06-29 青岛海信宽带多媒体技术有限公司 机顶盒中ui界面图片的更换方法和装置
US9661074B2 (en) * 2013-08-29 2017-05-23 International Business Machines Corporations Updating de-duplication tracking data for a dispersed storage network
US9323504B1 (en) * 2014-03-19 2016-04-26 Amazon Technologies, Inc. Template-driven data access
US9792957B2 (en) 2014-10-08 2017-10-17 JBF Interlude 2009 LTD Systems and methods for dynamic video bookmarking
US10460765B2 (en) 2015-08-26 2019-10-29 JBF Interlude 2009 LTD Systems and methods for adaptive and responsive video
CN105530532B (zh) * 2016-03-02 2018-09-07 深圳市茁壮网络股份有限公司 一种滚动字幕显示方法、装置和机顶盒
WO2017169499A1 (ja) * 2016-03-31 2017-10-05 ソニー株式会社 制御装置、制御方法及びコンピュータプログラム
US10911832B2 (en) 2016-07-25 2021-02-02 Google Llc Methods, systems, and media for facilitating interaction between viewers of a stream of content
GB2557194A (en) * 2016-11-29 2018-06-20 Sony Corp A decoder, encoder, computer program and method
CN111052222B (zh) * 2017-09-11 2023-07-25 雅马哈株式会社 乐音数据播放装置及乐音数据播放方法
US12096081B2 (en) 2020-02-18 2024-09-17 JBF Interlude 2009 LTD Dynamic adaptation of interactive video players using behavioral analytics
US12047637B2 (en) 2020-07-07 2024-07-23 JBF Interlude 2009 LTD Systems and methods for seamless audio and video endpoint transitions
US11882337B2 (en) 2021-05-28 2024-01-23 JBF Interlude 2009 LTD Automated platform for generating interactive videos
US12155897B2 (en) * 2021-08-31 2024-11-26 JBF Interlude 2009 LTD Shader-based dynamic video manipulation

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08339663A (ja) 1995-04-14 1996-12-24 Toshiba Corp 記録媒体とこの記録媒体へのデータの記録装置とその記録方法、その記録媒体からのデータの再生装置とその再生方法
TW305043B (ja) * 1995-09-29 1997-05-11 Matsushita Electric Ind Co Ltd
US6088507A (en) * 1996-04-05 2000-07-11 Matsushita Electric Industrial Co., Ltd. Multimedia optical disc for storing audio data and sub-picture data in a plurality of channels as well as moving picture data and apparatus and method for reproducing the multimedia optical disc
KR100186409B1 (ko) * 1996-04-23 1999-05-01 구자홍 피씨와 티브이 적응형 피아이피 영상신호 처리회로
US5999698A (en) * 1996-09-30 1999-12-07 Kabushiki Kaisha Toshiba Multiangle block reproduction system
JPH10145722A (ja) 1996-11-07 1998-05-29 Sony Corp 再生制御データ生成装置およびその方法
JPH10308924A (ja) 1997-05-02 1998-11-17 Sony Corp 符号化装置及び方法
JP4416846B2 (ja) 1997-08-22 2010-02-17 ソニー株式会社 メニュー制御用データを記録したコンピュータ読み取り可能な記録媒体ならびにメニュー制御方法および装置
USRE39745E1 (en) * 1997-08-22 2007-07-24 Sony Corporation Recording medium retaining data for menu control, menu control method and apparatus
US6310648B1 (en) * 1997-09-12 2001-10-30 Eastman Kodak Company User interface for electronic image viewing apparatus
US6580870B1 (en) * 1997-11-28 2003-06-17 Kabushiki Kaisha Toshiba Systems and methods for reproducing audiovisual information with external information
US6912350B1 (en) * 1999-12-08 2005-06-28 Intel Corporation DVD subpicture rendering without loss of color resolution
EP1199892A4 (en) * 2000-03-14 2006-08-09 Matsushita Electric Ind Co Ltd Device and method for reproducing image and voice
JP2001275089A (ja) 2000-03-27 2001-10-05 Toshiba Corp ディジタルビデオ記録媒体並びにディジタルビデオディスク再生装置
WO2001082607A1 (fr) * 2000-04-21 2001-11-01 Matsushita Electric Industrial Co., Ltd. Procede de lecture de trucages destine a un support de stockage numerique
JP2001326910A (ja) * 2000-05-17 2001-11-22 Toshiba Corp プレビュー表示システム
KR100865859B1 (ko) * 2000-08-28 2008-10-29 코닌클리케 필립스 일렉트로닉스 엔.브이. 오버뷰 재생 모드를 갖는 재생 장치 및 방법
US6806887B2 (en) * 2001-04-04 2004-10-19 International Business Machines Corporation System for integrating personalized data with visual content
US7481362B2 (en) * 2002-08-21 2009-01-27 Networks Plus, Inc. Communication card system, communication system, and web information transmission and processing device
ES2335003T3 (es) * 2003-01-20 2010-03-18 Lg Electronics, Inc. Medio de grabacion que tiene una estructura de datos para gestionar la reproduccion de imagenes fijas grabadas en el, y metodos y aparatos de grabacion y reproduccion.
KR101089974B1 (ko) 2004-01-29 2011-12-05 소니 주식회사 재생 장치, 재생 방법, 및 기록 매체

Also Published As

Publication number Publication date
US8606080B2 (en) 2013-12-10
US8150237B2 (en) 2012-04-03
CN1685721A (zh) 2005-10-19
WO2004049710A1 (ja) 2004-06-10
JPWO2004049710A1 (ja) 2006-03-30
US8818170B2 (en) 2014-08-26
CN100466713C (zh) 2009-03-04
US20050105888A1 (en) 2005-05-19
US20120114298A1 (en) 2012-05-10
US20120189275A1 (en) 2012-07-26

Similar Documents

Publication Publication Date Title
JP4442564B2 (ja) 再生装置、再生方法、再生プログラムおよび記録媒体
JP4715094B2 (ja) 再生装置、再生方法、再生プログラムおよび記録媒体
JP4228767B2 (ja) 再生装置、再生方法、再生プログラムおよび記録媒体
KR101089974B1 (ko) 재생 장치, 재생 방법, 및 기록 매체
JP2006230001A (ja) 再生装置、再生方法、再生プログラムおよび記録媒体
JP5209515B2 (ja) 記録媒体
JP4277863B2 (ja) 再生装置、再生方法、再生プログラムおよび記録媒体
JP5209516B2 (ja) 記録媒体
JP5209513B2 (ja) 記録媒体
JP2011097614A (ja) 再生装置、再生方法、記録装置、記録方法および記録媒体
JP4277862B2 (ja) 再生装置、再生方法、再生プログラムおよび記録媒体
JP4277865B2 (ja) 再生装置、再生方法、再生プログラムおよび記録媒体
JP4277864B2 (ja) 再生装置、再生方法、再生プログラムおよび記録媒体
JP5494779B2 (ja) データ構造
JP5494780B2 (ja) データ構造
JP5187452B2 (ja) データ格納方法
JP5187451B2 (ja) データ格納方法
JP5494781B2 (ja) データ構造
JP5187453B2 (ja) データ格納方法
JP5187454B2 (ja) データ格納方法
JP5494782B2 (ja) データ構造
JP5209514B2 (ja) 記録媒体

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20061107

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

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

R151 Written notification of patent or utility model registration

Ref document number: 4442564

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

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

Free format text: PAYMENT UNTIL: 20130122

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20140122

Year of fee payment: 4

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees