WO2005122570A1 - データ処理装置およびデータ処理方法、プログラムおよびプログラム記録媒体、データ記録媒体並びにデータ構造 - Google Patents

データ処理装置およびデータ処理方法、プログラムおよびプログラム記録媒体、データ記録媒体並びにデータ構造 Download PDF

Info

Publication number
WO2005122570A1
WO2005122570A1 PCT/JP2005/009435 JP2005009435W WO2005122570A1 WO 2005122570 A1 WO2005122570 A1 WO 2005122570A1 JP 2005009435 W JP2005009435 W JP 2005009435W WO 2005122570 A1 WO2005122570 A1 WO 2005122570A1
Authority
WO
WIPO (PCT)
Prior art keywords
stream
data
video
control module
audio
Prior art date
Application number
PCT/JP2005/009435
Other languages
English (en)
French (fr)
Inventor
Yasushi Fujinami
Tetsuya Hirano
Original Assignee
Sony Corporation
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 Corporation filed Critical Sony Corporation
Priority to KR1020077000625A priority Critical patent/KR101169488B1/ko
Priority to CN2005800272857A priority patent/CN101002467B/zh
Priority to EP05743603A priority patent/EP1768403A4/en
Priority to HK08107869.5A priority patent/HK1112778A1/xx
Priority to BRPI0511918-9A priority patent/BRPI0511918A/pt
Priority to US11/629,078 priority patent/US8213781B2/en
Publication of WO2005122570A1 publication Critical patent/WO2005122570A1/ja
Priority to HK07109878.1A priority patent/HK1101950A1/xx

Links

Classifications

    • 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
    • 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]
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/20Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterised by details of the game platform
    • A63F2300/206Game information storage, e.g. cartridges, CD ROM's, DVD's, smart cards
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/20Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterised by details of the game platform
    • A63F2300/206Game information storage, e.g. cartridges, CD ROM's, DVD's, smart cards
    • A63F2300/207Game information storage, e.g. cartridges, CD ROM's, DVD's, smart cards for accessing game resources from local storage, e.g. streaming content from DVD
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • GPHYSICS
    • 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

Definitions

  • the present invention relates to a data processing device and a data processing method, a program, a program recording medium, a data recording medium, and a data structure, and in particular, for example, a data processing device and a data that enable highly convenient data processing.
  • the present invention relates to a processing method, a program, a program recording medium, a data recording medium, and a data structure.
  • a DVD Digital Versatile Disc
  • a DVD apparatus that performs various kinds of processing using a DVD has also become widespread. ing.
  • Examples of the DVD device include a DVD recorder that records and reproduces data of a television broadcast program and the like on a DVD, and a car navigation system that records map information and the like on a DVD and displays the map information.
  • a DVD recorder that records and reproduces data of a television broadcast program and the like on a DVD
  • a car navigation system that records map information and the like on a DVD and displays the map information.
  • game systems that record game programs and the like on DVDs and execute the programs.
  • Non-Patent Document 1 DVD Specifications for Read-Only Disc Part 3; Version 1.1 Dcecmber
  • a recording medium such as a DVD capable of recording a large amount of data, and a DVD device that performs various processes using the medium are highly convenient for such a large amount of data. It is requested to perform data processing.
  • the present invention has been made in view of such a situation, and is intended to perform data processing with high convenience and the like.
  • the data processing device of the present invention is arranged immediately before each of the encoded data in the access unit and one or more decoding startable points in the encoded video data in the access unit.
  • video decoder control means for controlling a video decoder for decoding encoded video data.
  • a supply unit for reading out the encoded video data in units of access units based on the size information included in the usage information and supplying the video data to the video decoder.
  • the coded video data in access unit units and the one or more decoding start possible points in the coded video data in access unit units are arranged immediately before each, A search step of searching for usage information from encoded data including usage information used for decoding encoded video data; and a request from video decoder control means for controlling a video decoder for decoding the encoded video data.
  • the encoding step includes a step of reading the encoding video data on an access unit basis and supplying the video data to a video decoder.
  • the program of the present invention is characterized in that the encoded video data in access unit units and the encoded video data arranged immediately before each of one or more decoding start points in the encoded data in access units are respectively arranged.
  • the method further comprises a step of reading encoded video data in units of access units based on the size information included in the information, and supplying the encoded video data to a video decoder.
  • the program recorded on the program recording medium of the present invention is arranged immediately before each of encoded video data in access unit units and one or more decoding startable points in encoded video data in access unit units.
  • the video decoder control means for controlling the video decoder that decodes the coded video data.
  • the coded data power is coded on an access unit basis. And supplying the video data to a video decoder.
  • the data recording medium and the data structure of the present invention are characterized in that encoded data is obtained by encoding video data in a predetermined unit, and encoded video data in an access unit, and encoded data in an access unit. And utilization information used for decoding the encoded video data, which is arranged immediately before each one or more decoding start possible points in the video data. And size information indicating the size of each of one or more access units arranged between the access units.
  • encoded data is searched for usage information. Then, based on the size information included in the usage information, the coding data is also converted in units of access units according to the request of the video decoder control means for controlling the video decoder that decodes the coded video data. Is read and supplied to the video decoder.
  • an access obtained by encoding video data in a predetermined unit includes encoded video data in units of units and usage information used for decoding encoded video data, which is arranged immediately before each of one or more decoding start possible points in the encoded video data in units of access units.
  • the use information is arranged between the next use information and includes size information indicating the size of each of one or more access units.
  • data processing can be performed with high convenience and the like.
  • FIG. 1 is a block diagram showing a hardware configuration example of an embodiment of a disk device to which the present invention is applied.
  • FIG. 2 is a block diagram illustrating a configuration example of a software module group executed by the CPU 112.
  • FIG. 3 is a block diagram illustrating a configuration example of a buffer control module 215.
  • FIG. 4 is a diagram showing an example of a directory configuration on a disk 101.
  • FIG. 5 is a diagram showing the syntax of the “PLAYLIST.DAT” file.
  • FIG. 6 is a diagram showing the syntax of PlayItemO.
  • FIG. 7 is a diagram showing the syntax of PlayListMarkO.
  • FIG. 8 is a diagram showing the relationship between the value of mark_type and the type of MarkO.
  • FIG. 9 is a diagram showing the relationship between PlayListO, PlayItemO, clips, and program streams stored in clip stream files.
  • FIG. 10 is a diagram showing the syntax of a clip information file ClipO.
  • FIG. 11 is a diagram showing a relationship between streamjd and private_stream_id for identifying an elementary stream, and an elementary stream.
  • FIG. 12 is a diagram showing the syntax of StaticInfoO.
  • FIG. 13 is a diagram showing the syntax of DynamicInfo ().
  • FIG. 14 is a diagram showing the syntax of EP_mapO.
  • FIG. 15 is a diagram illustrating the syntax of an MPEG-2 System program stream, a program stream pack, and a program stream pack header.
  • FIG. 16 is a diagram illustrating the syntax of the MPEG-2 System PES packet.
  • FIG. 17 is a diagram illustrating the syntax of a PES packet of the MPEG-2 System.
  • FIG. 18 is a diagram showing the syntax of the MPEG-2 System PES packet.
  • FIG. 19 is a diagram showing the relationship between values described in streamjd of PES_packet () in the MPEG-2 System and attributes (types) of elementary streams.
  • FIG. 20 is a diagram showing streamjd adopted by the disk device.
  • FIG. 21 is a diagram illustrating the syntax of private_streaml_PES_payloadO.
  • Figure 22 Private_stream_id value and elementary stream stored in private_payloadO It is a figure showing the relation with an attribute.
  • FIG. 23 is a diagram illustrating the syntax of private_stream2_PES_payloadO.
  • FIG. 24 is a diagram showing the syntax of aujnformation0.
  • FIG. 25 is a diagram showing a specific example of a “PLAYLIST.DAT ⁇ file.
  • FIG. 26 is a diagram showing a specific example of clip information files “00001.CLP”, “00002.CLP”, and “00003.CLP”.
  • FIG. 27 is a diagram showing a specific example of EPjnapO in the clip information file “00001.CLP”.
  • FIG. 28 is a diagram showing a specific example of PlayListMarkO in PlayList # 0 and PlayList # 1.
  • FIG. 29 is a flowchart illustrating a pre-playback process.
  • FIG. 30 is a flowchart illustrating a reproduction process.
  • FIG. 31 is a flowchart illustrating a PlayItem transfer process.
  • FIG. 32 is a flowchart illustrating a time code display process.
  • FIG. 33 is a flowchart illustrating a stream switching process.
  • FIG. 34 is a flowchart illustrating a process of a buffer control module 215.
  • FIG. 35 is a flowchart illustrating a process of a buffer control module 215.
  • FIG. 36 is a flowchart illustrating a process of reading a video stream.
  • FIG. 37 is a flowchart illustrating a process of reading an audio stream.
  • FIG. 38 is a flowchart illustrating a process of reading a subtitle stream.
  • FIG. 39 is a flowchart illustrating a resynchronization process.
  • FIG. 40 is a flowchart illustrating a mark process.
  • FIG. 41 is a flowchart illustrating a control process of an output attribute.
  • FIG. 42 is a diagram showing a specific example of a set of pts_change_point and Dynami clnfoO described in the clip information file “00003.CLP”.
  • FIG. 43 is a flowchart illustrating caption display control processing.
  • FIG. 44 is a flowchart illustrating a capture control process and a background Z screen saver process.
  • FIG. 45 is a diagram illustrating another syntax of private_stream2_PES_payloadO.
  • FIG. 46 is a diagram illustrating another syntax of aujnformation0. Explanation of reference numerals
  • FIG. 1 is a block diagram illustrating a hardware configuration example of an embodiment of a disk device to which the present invention is applied.
  • the disc device of FIG. 1 can be applied to, for example, a disc player, a game device, a car navigation system, and the like.
  • the disk 101 is, for example, an optical disk such as a DVD, or a magneto-optical disk, a magnetic disk, or the like.
  • Content data such as subtitle data and data necessary for reproducing the content data are recorded.
  • the data (recorded data) recorded on the disk 101 includes a program that can be executed by a computer as necessary.
  • the disk 101 which is a disk-shaped recording medium is adopted as the recording medium, but other recording media may be, for example, a semiconductor memory or a tape-shaped recording medium.
  • data read and transmitted from a distant disk 101 can be input to the disk device of FIG. That is, the reading of data from the disk 101 is performed by another device connected to the disk device, and the data read by the other device can be received and processed by the disk device.
  • the same data as the data recorded on the disk 101 can be stored in the storage, and the data can be received and processed from a server or the like via a network such as the Internet. It is. Further, in the disk device, it is also possible to receive data from a server or other device, record the data on the disk 101, and then process the data recorded on the disk 101.
  • the disk 101 is detachable from the disk drive 102.
  • the disk drive 102 has a built-in interface (not shown), and is connected to the drive interface 114 through the interface.
  • the disk drive 102 drives the disk 101 mounted thereon, and performs processing such as reading data from the disk 101 and supplying the data to the drive interface 114 according to a command such as reading from the drive interface 114. .
  • a CPU Central Processing Unit
  • a memory 113 a drive interface 114, an input interface 115, a video decoder 116, an audio decoder 117, a video output interface 118, and an audio output interface 119 are connected. ing.
  • a CPU Central Processing Unit
  • the CPU 112 and the memory 113 form a computer system. That is, the CPU 112 executes a software module group, which will be described later, which is a program stored in the memory 113, controls the entire disk device, and performs various processes described later.
  • the memory 113 stores a group of software modules executed by the CPU 112. Also, memory 113 And temporarily store data necessary for the operation of the CPU 112.
  • the memory 113 can be configured using only a nonvolatile memory or a combination of a volatile memory and a nonvolatile memory. In the case where a hard disk is provided in the disk device of FIG. 1 and the software modules to be executed by the CPU 112 are recorded (installed) on the hard disk, the memory 113 may be composed of only volatile memory. It is possible.
  • the program (software module group) executed by the CPU 112 can be recorded (stored) in advance in the memory 113 as a recording medium built in the disk device.
  • the program may be a removable disk such as a disk 101, or a flexible disk other than the disk 101, a compact disk read only memory (CD-ROM), a magnetic disk (MO) disk, a magnetic disk, a memory card, or the like. It can be stored (recorded) temporarily or permanently on a recording medium. Such a removable recording medium can be provided as so-called package software.
  • a removable recording medium can be provided as so-called package software.
  • the program can be stored in the memory 113 as it is, or the above-described removable recording medium can be installed in the disk device. Also, the program can be transferred wirelessly from the download site to the disk device via a satellite for digital satellite broadcasting, or by wire to the disk device via a network such as LAN (Local Area Network) or the Internet. In the disk device, the program transferred in this manner can be received by the input interface 115 and installed in the built-in memory 113.
  • LAN Local Area Network
  • the program may be processed by one CPU, or may be processed in a distributed manner by a plurality of CPUs.
  • the drive interface 114 controls the disk drive 102 under the control of the CPU 112, whereby the data read from the disk 101 by the disk drive 102 is transferred to the CPU 112, the memory 113, and the video via the node 111. Decoder 116 and audio decoder 117 are supplied.
  • the input interface 115 receives a key (button) (not shown) or a signal supplied by a user operating a remote controller (remote controller), and receives the signal via the bus 111. To the CPU 112.
  • the input interface 115 also functions as a communication interface such as a modem (including an ADSL (Asymmetric Digital Subscriber Line) modem) and a NIC (Network Interface Card).
  • a modem including an ADSL (Asymmetric Digital Subscriber Line) modem
  • NIC Network Interface Card
  • the video decoder 116 decodes encoded data (encoded audio data) of video data read from the disk 101 by the disk drive 102 and supplied via the drive interface 114 and the bus 111. The resulting video data is supplied to the CPU 112 and the video output interface 118 via the bus 111.
  • the audio decoder 117 decodes encoded data of audio data (encoded audio data) read from the disk 101 by the disk drive 102 and supplied via the drive interface 114 and the bus 111, The resulting audio data is supplied to the CPU 112 and the audio output interface 119 via the bus 111.
  • the video output interface 118 performs necessary processing on video data supplied via the bus 111 and outputs the processed data from the video output terminal 120.
  • the audio output interface 119 performs necessary processing on audio data supplied via the bus 111 and outputs the processed audio data from the audio output terminal 121.
  • the video output terminal 120 is connected to a video output device such as a CRT (Cathode Ray Tube) or a liquid crystal panel (not shown). It is supplied to the output device and displayed.
  • the audio output terminal 121 is connected to an audio output device such as a speaker or an amplifier (not shown). Therefore, audio data output from the audio output terminal 121 is supplied to the audio output device and output.
  • the supply of video data and audio data from the disk device to the video output device and the audio output device can be performed by a wired or wireless shift.
  • FIG. 2 shows a configuration example of a software module group executed by the CPU 112 of FIG.
  • the software modules executed by the CPU 112 are roughly classified into an operating system (OS) 201 and a video content playback program 210 as an application program.
  • OS operating system
  • video content playback program 210 video content playback program
  • the operating system 201 starts first when the power of the disk device is turned on (the CPU 112 executes the operating system 201), performs necessary processing such as initialization, and starts the video content reproduction program 210, which is an application program. Call out.
  • the operating system 201 provides the video content reproduction program 210 with an infrastructure (infrastructure) -like service such as reading of a file. That is, for example, regarding the file reading, the operating system 201 operates the disk drive 102 via the drive interface 114 in response to the file reading request from the video content reproducing program 210, and A service is provided that reads out the data of 101 and passes it to the video content reproduction program 210.
  • the operating system 201 also performs interpretation of a file system and the like.
  • the operating system 201 has a multi-task processing function, and can operate a plurality of software modules simultaneously (apparently) in a time-division manner. That is, the video content reproduction program 210 is composed of several software modules. Each software module can operate in parallel.
  • Video content playback program 210
  • the video content reproduction program 210 includes a script control module 211, a player control module 212, a content data supply module 213, a decode control module 214, a buffer control module 215, a video decoder control module 216, an audio decoder control module 217, and a subtitle decoder control module. 218, a graphics processing module 219, a video output module 220, and an audio output module 221.
  • the video content playback program 210 is software that plays a central role in playing the disc 101, and the disc 101 is loaded (inserted) into the disc drive 102. Then, it is confirmed whether the disc 101 is a disc of a format described later in which the content is recorded. Further, the video content reproduction program 210 reads and executes a script file (described later) from the disc 101, and generates metadata (database information) necessary for reproducing the content recorded on the disc 101 from the disc 101. ) Is read, and the reproduction of the content is controlled based on the metadata.
  • FIG. 2 in principle, a solid arrow indicates content data, and a dotted arrow indicates control data.
  • the script control module 211 interprets and executes a script program (script) described in the script file recorded on the disk 101.
  • a script program for example, “manipulate the graphics processing module 219 to create and display an image such as a menu”, or change the display of the menu according to a signal from a “UK User Interface such as a remote controller” (for example, Movement of a cursor on a menu, etc.) "and" controlling the player control module 212 "can be described.
  • the player control module 212 refers to the metadata (database information) and the like recorded on the disc 101 and controls the playback of the content. That is, the player control module 212 analyzes, for example, PlayListO and Clip (), which will be described later, recorded on the disc 101, and according to the analysis result, the content data supply module 213, the decode control module 214, the buffer control Controls module 215. Further, the player control module 212 performs control such as switching of streams to be played back, switching of streams to be reproduced, and the like, which will be described later, etc. Further, the player control module 214 acquires the time from the decode control module 214, and performs time display, processing of a mark (MarkO) described later, and the like.
  • MarkO mark
  • the content data supply module 213 is controlled by the player control module 212 or based on the amount of data stored in the buffer control module 215. It requests the operating system 201 to read content data, metadata, and the like from the disc 101.
  • Metadata and the like read from the disk 101 by the operating system 201 in response to a request from the content data supply module 213 are supplied to necessary modules.
  • the content data read from the disk 101 by the operating system 201 in response to a request from the content data supply module 213 is supplied to the buffer control module 215.
  • the decode control module 214 controls the operations of the video decoder control module 216, the audio decoder control module 217, and the subtitle decoder control module 218 according to the control from the player control module 212. Also, the decode control module 214 has a built-in clock section 214A for measuring the time, and the video data output under the control of the video decoder control module 216 and the video data should be output in synchronization with the video data. Output of data (output data), that is, synchronization with output of audio data output under the control of the audio decoder control module 217 is managed here.
  • the buffer control module 215 has a built-in buffer 215A which is a part of the storage area of the memory 113 in FIG. 1, and the content data supply module 213 makes a request to the operating system 201 from the disk 101 by sending a request to the buffer 215A.
  • the data of the read content is temporarily stored.
  • the buffer control module 215 converts the data stored in the notifier 215A into the video decoder control module according to the request of the video decoder control module 216, the audio decoder control module 217, or the subtitle decoder control module 218. 216, audio decoder control module 217, or subtitle decoder control module 218.
  • the buffer control module 215 includes a video reading function unit 233, an audio reading function unit 234, and a subtitle reading function unit 235 described later with reference to Fig. 3. are doing. Then, the buffer control module 215 processes the data request from the video decoder control module 216 by the video read function unit 233, and transfers the data stored in the buffer 215A to the video decoder control module 216. Supply. Similarly, the buffer control module 215 processes the data request from the audio decoder control module 217 in the audio read function section 234, and thereby, the data stored in the buffer 215A is processed by the audio decoder control module 217. In addition, the data request from the subtitle decoder control module 218 is processed by the subtitle reading function unit 235, so that the data stored in the buffer 215A is supplied to the subtitle decoder control module 218.
  • Video decoder control module 216
  • the video decoder control module 216 operates the video reading function unit 233 (FIG. 3) in the buffer control module 215 to convert the video data encoded data (video encoded data) into video access units.
  • the data is read from the buffer 215A of the buffer control module 215 and supplied to the video decoder 116 of FIG. Further, the video decoder control module 216 controls the video decoder 116 to decode data in video access unit units. Further, the video decoder control module 216 supplies the video data obtained as a result of decoding by the video decoder 116 to the graphics processing module 219.
  • the video access unit is, for example, one picture (one frame or one field) of video data.
  • the audio decoder control module 217 operates the audio read function unit 234 (FIG. 3) in the buffer control module 215 to convert the encoded audio data (audio encoded data) in units of audio access units.
  • the data is read from the buffer 215A of the buffer control module 215 and supplied to the audio decoder 117 shown in FIG. Further, the audio decoder control module 217 controls the audio decoder 117 to decode data in units of an audio access unit. Further, the audio decoder control module 217 obtains the decoding result of the audio decoder 117.
  • the supplied audio data is supplied to an audio output module 221.
  • the audio access unit is a predetermined data amount of audio data (for example, an amount output in synchronization with one picture). In the present embodiment, it is assumed that the audio access unit has a known fixed length, for example.
  • the caption decoder control module 218 operates the caption reading function unit 235 (FIG. 3) in the buffer control module 215 to convert the data obtained by coding the caption data (caption coded data) in units of subtitle access units. , Read from the buffer 215A of the buffer control module 215. Also, the subtitle decoder control module 218 includes therein subtitle decoding software (not shown), and decodes data read from the notifier 215A. Further, the caption decoder control module 218 supplies the caption data (caption image data) obtained as a result of the decoding to the graphics processing module 219.
  • the subtitle access unit is a predetermined amount of subtitle data (for example, an amount output in synchronization with one picture).
  • the size of the subtitle access unit is described, for example, at the head of the subtitle access unit.
  • the graphics processing module 219 controls (instructs) the player control module 212. However, the graphics processing module 219 enlarges or reduces the caption data from the caption decoder control module 218, and adds the caption data to the video data from the video decoder control module 216 (overlay). In addition, the graphics processing module 219 enlarges the size (frame) of the video data after addition with the subtitle data to fit the display screen of the video output device connected to the video output terminal 120 in FIG. Alternatively, reduction or the like is performed, and the resulting video data is output to the video output module 220.
  • the graphics processing module 219 generates a menu, a message, and the like according to an instruction (control) of the script control module 211 or the player control module 212, and overlays the menu or the message on the output video data.
  • the graphics processing module 219 is connected to the video output terminal 120 of FIG.
  • the aspect ratio of the video data to be output to the video output module 220 is converted based on the aspect ratio of the video output device and information indicating the aspect ratio of the video data recorded on the disk 101.
  • the Dallax processing module 219 The video data output to the video output module 220 is squeezed (reduced) in the horizontal direction (horizontal direction), and output with blackness on the left and right.
  • the graphics processing module 219 outputs the video data.
  • the video data to be output to the output module 220 is squeezed (reduced) in the vertical direction (vertical direction), and is output with blackness at the top and bottom.
  • the graphics processing module 219 outputs the video data to be output to the video output module 220 without any squeezing processing.
  • the graphics processing module 219 captures video data currently being processed, for example, in response to a request from the player control module 212. Further, the graphics processing module 219 stores the captured video data or supplies the captured video data to the player control module 212.
  • the video output module 220 occupies a part of the memory 113 of FIG. 1 exclusively and uses it as a FIFO (First In First Out) 220A (buffer), and temporarily stores the video data from the graphics processing module 219. Then, the video data stored in the FIFO 220A is read out and output to the video output terminal 120 (FIG. 1).
  • FIFO First In First Out
  • the audio output module 221 exclusively occupies a part of the memory 113 in FIG. 1 and uses it as a FIF 0221A (buffer), and temporarily stores audio data of the audio decoder control module 217 (audio decoder 117). , Also its FIF0221A The audio data stored in the audio output terminal 121 is read out as appropriate and output to the audio output terminal 121 (FIG. 1).
  • the audio output module 221 has a dual channel configuration in which the audio data from the audio decoder control module 217 is audio data of "main audio" on the left channel and audio data of "sub audio” on the right channel. If the audio data is in the Dual) (Nike language) mode, the audio data from the audio decoder control module 217 is output to the audio output terminal 121 according to the audio output mode specified in advance.
  • the audio output module 221 transmits the left channel audio data of the audio data from the audio decoder control module 217 to the audio output mode.
  • the audio data is copied as right channel audio data, and the left channel and right channel audio data (audio data of “main audio”) are output to the audio output terminal 121.
  • “sub-audio” is specified as the audio output mode
  • the audio output module 221 converts audio data of the right channel of the audio data from the audio decoder control module 217 into audio data of the left channel.
  • the audio data of the left channel and the right channel (“sub-audio” audio data) are output to the audio output terminal 121.
  • the audio output module 221 outputs the audio data from the audio decoder control module 217 to the audio output terminal 121 as it is.
  • the audio output module 221 sends the audio data from the audio decoder control module 217 regardless of the designation of the audio output mode. Is output to the audio output terminal 121 as it is.
  • the audio output mode can be specified interactively, for example, by a user operating a remote controller or the like on a screen or the like on which a menu generated by the video content reproduction program 210 is displayed. it can.
  • FIG. 3 shows a configuration example of the buffer control module 215 of FIG.
  • the buffer control module 215 exclusively uses a part of the memory 113 of FIG. 1 as the buffer 215A, and temporarily stores the data read from the disk 101 in the buffer 215A. Also, the buffer control module 215 reads the data stored in the buffer 215A and supplies the data to the video decoder control module 216, the audio decoder control module 217, or the subtitle decoder control module 218 in FIG.
  • the buffer control module 215 has a data head pointer storage unit 231 and a data write pointer storage unit 232 which are a part of the memory 113, in addition to the buffer 215A, and has a video read function unit 233 as an internal module. , An audio reading function unit 234 and a subtitle reading function unit 235.
  • the knocker 215A is, for example, a ring buffer, sequentially stores data read from the disk 101, and after storing data of the storage capacity, overwrites the oldest data. The latest data is stored in an infinite loop.
  • the data head pointer storage unit 231 is still read from the buffer 215A, and is the oldest! Is stored.
  • the data write pointer storage unit 232 stores a write pointer indicating the position (address) of the buffer 215A where the latest data read from the disk 101 is written.
  • the position pointed to by the data write pointer is updated clockwise (clockwise) in the figure each time data read from the disk 101 is stored in the buffer 215A.
  • the position pointed by the pointer is updated clockwise in the figure according to the reading of data from the buffer 215A. Therefore, of the data stored in the buffer 215A, the effective data is data stored from the position indicated by the data head pointer to the position indicated by the data write pointer clockwise.
  • the video read function unit 233 reads a video stream (elementary stream related to video data) from the buffer 215A and supplies the video stream to the video decoder control module 216.
  • audio In response to a request from the audio decoder control module 217 in FIG. 2, the read function unit 234 also reads the audio stream (elementary stream related to audio data) and supplies it to the audio decoder control module 217.
  • the caption reading function unit 235 also reads a caption stream (elementary stream related to caption data) from the notifier 215A in response to a request from the caption decoder control module 218 in FIG.
  • a program stream (MPEG2-System Program Stream) conforming to the standard of the Moving Picture Experts Group (MPEG) 2 is recorded on the optical disc 101, and the optical disc 101 reads out the optical disc 101 from the optical disc 101.
  • the stored program stream is stored.
  • one or more elementary streams such as a video stream, an audio stream, and a subtitle stream are time-division multiplexed.
  • the video reading function unit 233 has a function of demultiplexing a program stream, and separates and reads a video stream from the program stream stored in the buffer 215A.
  • the audio reading function unit 234 also has a function of demultiplexing the program stream, and separates and reads the audio stream from the program stream stored in the buffer 215A.
  • the subtitle reading function unit 235 also has a function of demultiplexing the program stream, and separates and reads the subtitle stream from the program stream stored in the buffer 215A.
  • the video reading function unit 233 has a video reading pointer storage unit 241, a streamjd register 242, and an aujnformationO register 243 that are part of the memory 113 in FIG.
  • the video read pointer storage unit 241 stores a video read pointer pointing to the position (address) of the buffer 215A where the video stream is stored, and the video read function unit 233 stores the video read pointer of the buffer 215A.
  • the data stored at the pointed position is read as a video stream.
  • the streamjd register 242 analyzes the program stream stored in the buffer 215A, and stores a streamjd described later for identifying (identifying) a video stream from which the program stream is also read.
  • the aujnformationO register 243 is used to read the video stream from the buffer 215A ( AujnformationO, which will be described later, is stored as data (used for reading the video stream).
  • the audio read function unit 234 has an audio read pointer storage unit 251, a streamjd register 252, and a private_stream_id register 253 that are part of the memory 113 in FIG.
  • the audio read pointer storage unit 251 stores an audio read pointer indicating the position (address) of the buffer 215A where the audio stream is stored, and the audio read function unit 234 stores the audio read pointer of the buffer 215A.
  • the data stored at the location indicated by is read as an audio stream.
  • the streamjd register 252 and the private_stream_id register 253 analyze a program stream stored in the buffer 215A, and store a later-described streamjd and a private_stream_id for identifying an audio stream to be read from the program stream.
  • the subtitle reading function unit 235 includes a subtitle reading function flag storage unit 261, a subtitle reading pointer storage unit 262, a streamjd register 263, and a private_stream jd register 264, which are part of the memory 113 in FIG. ! /
  • the subtitle read function flag storage unit 261 stores a subtitle read function flag. If the subtitle read function flag stored in the subtitle read function flag storage unit 261 is, for example, 0, the subtitle read function unit 235 does not operate and the subtitle read function flag stored in the subtitle read function flag storage unit 261 is For example, if it is 1, the subtitle reading function unit 235 functions.
  • the subtitle read pointer storage unit 262 stores a subtitle read pointer indicating the position (address) of the buffer 215A where the subtitle stream is stored, and the subtitle read function unit 235 stores the subtitle read pointer of the buffer 215A.
  • the data stored at the position indicated by is read out as a subtitle stream.
  • the streamjd register 263 and the private_stream_id register 264 analyze the program stream stored in the buffer 215A and store a streamjd and a private_stream amjd described later for identifying a subtitle stream to be read out of the program stream.
  • FIG. 4 schematically shows the directory structure of the disk 101.
  • the file system of the disc 101 for example, a file system defined by ISOdnternational Organization for Standardization (9660) -9, UDF (Universai DISK Format: http://www.osta.org/specs/), etc. Data files recorded on the disk 101 are hierarchically managed by a directory structure.
  • the file system is not limited to the file system described above! /.
  • the "VIDEO" directory is located in the root directory indicating the base of the file system, and the "VIDEO" directory has two directories, the "CLIP” directory and the "STREAM” directory. There are two directories.
  • the "SCRIPT.DAT ⁇ file is a script file in which a script program is described. That is, the" SCRIPT.DAT "file contains a script used to make the playback mode of the disc 101 interactive.
  • the script program described in the “SCRIPT.DAT” file is interpreted and executed by the script control module 211 in FIG.
  • the “PLAYLIST.DAT” file stores one or more playlists (PlayListO in FIG. 5 described later) in which a procedure for reproducing content such as video data recorded on the disc 101 is described.
  • One or more clip information files are stored in the "CLIP” directory, and one or more clip stream files are stored in the "STREAM” directory. That is, in FIG. 4, three clip information files “00001. CLP”, “00002.CLP”, and “00003.CLP” are placed in the “CLIP” directory, and “3” is stored in the “STREAM” directory. Clip stream files "0000 LPS", "00002.PS”, and "00003.PS”.
  • the clip stream file includes one or more elementary lists obtained by compressing and encoding one or more data (streams) such as video data, audio data, and subtitle data.
  • a time-division multiplexed program stream is stored.
  • the clip stream file and the clip information file have a one-to-one correspondence.
  • the clip stream file is given a file name in accordance with the naming rule of 5 characters + period + "PS", and the clip information file has the same name as the corresponding clip stream file.
  • the file name is given according to the naming convention of 5 characters + period + "CLP”.
  • a file is a clip stream file or a clip information file can be identified by the file name extension (the part on the right side of the period), and furthermore, the corresponding clip stream file can be identified.
  • a file and a clip information file can be identified by whether or not a part other than the file name extension (the part to the left of the period) matches.
  • FIG. 5 shows the internal structure (syntax) of the “PLAYLIST.DAT” file under the “VIDEO” directory in FIG.
  • the description in the "Syntax” column indicates the data structure
  • the description in the "No. of bits” column indicates the bit length of the data in the "Syntax” column of the corresponding row.
  • “ ⁇ bslb bit string left bit first) in the description of the“ Mnemonic ”column means that the data of the“ Syntax ”column of the corresponding line is sent from the left bit
  • the most significant bit first) is the unsigned integer value of the data in the "Syntax” column of the corresponding line, meaning that it is sent out from the most significant bit. Even if it is, it is the same.
  • namejength represents the size of the name_string that is placed after that in bytes.
  • name_string represents the name (file name) of the “PLAYLIST.DAT” file.
  • name_string up to the number of bytes represented by namejength from the top is used as a valid name. For example, if namejength has the value 10, the first 10 bytes of name_string are interpreted as a valid name.
  • Number.of PlayLists (16 bits) is arranged after name_string. number_of_Play Lists represents the number of subsequent PlayListOs. After number_of_PlayLists, PlayListOs equal to the number_of_PlayLists are arranged.
  • PlayListO is a playlist in which the playback procedure of the clip stream file recorded on the disc 101 is described, and has the following internal structure.
  • PlayList_data_length 32 bits
  • PlayList_datajength represents the size of the PlayListO.
  • reserved-for-word-alignment (15 bits) and capture-enable_flag_PlayList (1 bit) are sequentially arranged.
  • the 15-bit reserved_for_word_alignment is arranged at the position of the 1-bit capture_enable_flag_PlayList that is arranged after that, so as to take a so-called word alignment (to align with the 16-bit position).
  • capture_enable_flag_PlayList indicates whether or not the secondary use of the video data (video data belonging to PlayListO) corresponding to the video stream played by PlayListO in the disk device of FIG. Represents a 1-bit flag.
  • capture_enable_flag_PlayList is 0 or 1, for example, 1, it indicates that secondary use of video data belonging to PlayListO is permitted, and capture_enable_flag_PlayList is 0 or 1, for example, 0. Indicates that the secondary use of the video data belonging to PlayListO is permitted and is prohibited (prohibited).
  • capture_enable_flag_PlayList is 1 bit.
  • capture_enable_flag_PlayList is composed of a plurality of bits, and secondary use of video data belonging to PlayListO is allowed stepwise. It is possible. That is, capture_enable_flag_PlayList can be composed of, for example, 2 bits. If the value of capture_enable_flag_PlayList is 00B (B indicates that the number before it is a binary number), Secondary use of video data is prohibited, and if the value of capture_enable_flag_PlayList is 1 ⁇ , only secondary use of video data reduced to a size of 64 x 64 pixels or less can be permitted. If the value of capture_enable_flag_PlayList is 10B, secondary use of video data can be permitted without any size restriction.
  • capture_enable_flag_PlayList is 2 bits as described above, reserved_for_word_alignment placed before it is 14 bits to take a word line.
  • the video data is, for example, detachable to a recording medium removable to the disk device or another device connectable to the disk device. It is recorded on a recording medium or transmitted (distributed) to another device via a network such as the Internet. In this case, information limiting the number of times the video data is recorded on the recording medium and the number of times the video data is distributed can be added to the video data.
  • PlayList_name_length 8 bits
  • PlayList-name_string 255 bytes
  • PlayList_name_length represents the size of the PlayList_name_string placed after that in bytes
  • PlayList_name_string represents the name of PlayListO.
  • PlayList_name_string After PlayList_name_string, number_of_PlavItems (16 bits) is arranged. numbe r_of_PlayItems represents the number of subsequent PlayltemOs.
  • PlayltemO structures corresponding to the number_of_PlayItems are described.
  • PlayListO a content reproduction procedure can be described in units of PlayltemO.
  • a unique ID (Identification) in the PlayListO is assigned to each of the PlayltemOs of the number_of_PlayItems in the PlayListO. That is, the first PlayltemO in the PlayListO is numbered 0 as an ID, and the subsequent PlayltemOs are sequentially numbered 1, 2, and so on in the order of appearance.
  • PlayListMarkO is arranged after PlayltemO for the number of number_of_PlayItems.
  • PlayListMarkO is a set of MarkOs, which will be described later, serving as marks on the time axis of reproduction performed according to the PlayListOs, and the details thereof will be described later with reference to FIG.
  • FIG. 6 shows an internal structure of PlayltemO included in PlayListO of FIG.
  • PlayltemO At the beginning of PlayltemO, a length (16 bits) is arranged, and length represents the size of Playltem () including the length.
  • Clipjnformationjilejiamejength indicates the size of Clip_Information_file_name that is placed after that, in bytes.
  • Clip_Information_file-name indicates the file name of the clip information file (the file with the extension CLP in Fig. 4) corresponding to the clip stream file (the file with the extension PS in Fig. 4) played by PlayltemO.
  • the file names of the clip stream file and the clip information file can be recognized from the Clip_Information_file_name based on the naming rule described above, and the clip stream file to be played back by PlayltemO can be identified and the clip stream file can be specified.
  • IN_time and OUT_time are clips specified by ClipJnformation_file_name, respectively. This is time information for specifying a playback start position and a playback end position of the stream file.
  • a position in the middle of the clip stream file (including the beginning) can be specified as the playback start position.
  • a position in the middle of the clip stream file (including the end) can be specified. It can be specified as the playback end position.
  • PlayltemO the content of the clip stream file specified by Clip_Information_file_name from IN_time to OUT_time is reproduced.
  • the content reproduced by the Playlt emO is appropriately referred to as a clip.
  • FIG. 7 shows an internal structure of PlayListMarkO included in PlayListO of FIG.
  • PlayListMarkO is a set of 0 or more MarkOs that serve as marks on the time axis of reproduction performed according to PlayListO (Fig. 5) including PlayListMarkO.
  • One MarkO represents time information that represents one time (position) on the time axis of playback performed according to PlayListO, type information that represents the type of MarkO, and type information. It represents the type that generates an S event. At least, it has argument information that becomes the argument of the event when it exists.
  • length (32 bits) is placed at the head of PlayListMarkO.
  • length indicates the size of PlayListMarkO including it.
  • number-of-PlayList-marks (16 bits) is arranged, and number-of-PlayListstjnarks represents the number of MarkOs arranged subsequently.
  • number_of_PlayList_marks the structure of MarkO is described by the number_of_PlayList_marks.
  • mark_type 8 bits is arranged.
  • mark_type is the above-mentioned type information, and represents the type of MarkO including it.
  • MarkO of type "chapter” is a mark of the head position of the chapter, which is a unit for cueing out PlayListO.
  • MarkO of type indexes (hereinafter, appropriately referred to as an index mark) is a mark of the head position of the index, which is a unit obtained by subdividing the chapter.
  • MarkO of the event type (hereinafter referred to as the event ) Is a mark of a position where an event is generated during reproduction of the content according to PlayListO. The occurrence of the event by the event mark is notified to the script control module 211 as described later.
  • mark_type the relationship between the value of mark_type and the type of MarkO is shown in FIG. According to FIG. 8, one force is set in the mark mark of the chapter mark. Also, 2 is set to mark_type of the index mark, and 3 is set to markjpe of the event mark. In FIG. 8, 0 and 4 to 255 of the 8-bit value represented by mark_type are reserved for future expansion.
  • mark_type is followed by mark_name_length (8 bits).
  • mark—name—string (24 knots) is placed.
  • mark—name—length and mark—name_string are used to describe the name of MarkO, mark_name_length represents the effective size of mark_name_string, and mark_name_string represents the name of MarkO. Accordingly, mark-name-lengths to the number of knots represented by mark-name-lengths; ⁇ , represents the effective name of MarkO.
  • the o_PlayItem_id describes the ID assigned to the PlayltemO to which MarkO belongs by a serial number.
  • the o_PlayItemjd specifies PlayltemO (FIG. 6) to which MarkO belongs, and, as described with reference to FIG. 6, specifies a clip information file and a clip stream file.
  • mark_time_stamp represents the position (time) represented by MarkO in the clip stream file specified by ref_to_PlayItemjd.
  • Fig. 9 shows the relationship among PlayListO, PlayItemO, clips, and program streams stored in clip stream files.
  • PlayListO is composed of three PlayltemOs, and each of the three PlayltemOs is assigned ID # 0, # 1, # 2 assigned with a serial number.
  • PlayltemO with IDffi is described as Playltem # i.
  • clip powers which are contents reproduced by Playltem # 0, Playltem #l, and Playltem # 2, are shown as clip A, clip B, and clip C, respectively.
  • the substance of the clip is the program stream from IN_time to OUT_time of the program stream stored in the clip stream file specified from the Clip_Information_file_name in PlayltemO in Fig. 6 (further specified from the clip information file). is there.
  • program streams as entities of clip A, clip B, and clip C are shown as program stream A, program stream B, and program stream C, respectively.
  • entry_ES_stream_id and entry_ES_private_stream_id are used to specify the elementary stream when MarkO is associated with a specific elementary stream. That is, the entry_ES_stream_id is the stream-id described later of the elementary stream (PES_packet0 shown in FIGS. 16 to 18 described later in which MarkO is associated).
  • the elementary stream that associates J, L, and Mar k0 as needed is placed in the entry—ES—private—stream—id, and the private_st reaml—PE3 ⁇ 4—private in the payloadO shown in Fig. 21 described later. — PrivateO stream- id described later in headerO).
  • entry_ES_streamjd and entry_ES_private_stream_id of MarkO that is not associated with a specific elementary stream.
  • mark.data (32 bits) is arranged after entry_ES_private_stream_id.
  • mark_data is argument information that becomes an argument of an event generated by the event mark when MarkO is an event mark.
  • mark_data can be used as the number of the chapter or index indicated by the chapter mark or index mark.
  • FIG. 10 shows the internal structure of such a clip information file ClipO.
  • presentation_start_time and presentation_end_time are placed next to each other.
  • presentation—start—time and presentation—end_time represent the start and end times of (the program stream stored in) the clip stream file corresponding to the clip information file ClipO.
  • the time of the clip stream file is used as the time of MPEG2-System and is described in multiples of 90 kHz.
  • reserved-for-word-alignment (7 hits) and capture-enable_flag_Clip (1 bit) are sequentially arranged.
  • 7-bit reserved_for_word_alignment is for taking a word line
  • capture_enable_flag_Clip is a flag indicating whether or not secondary use of video data is permitted, as in the case of capture_enable_flag_PlayList in FIG. 5 described above. It is a lag.
  • capture_enable_flag_PlayList in Fig. 5 indicates whether the secondary use of video data (video data belonging to PlayListO) corresponding to the video stream reproduced by PlayListO is permitted or not, as shown in Fig. 10.
  • “Capture_enable_flag_Clip” indicates whether the secondary use of video data corresponding to the video stream (video elementary stream) stored in the clip stream file corresponding to the clip information file ClipO is permitted or not. Therefore, the unit (range) of video data permitted for secondary use differs between capture-enable-flag-PlayList in Fig. 5 and capture-enable-flag-Clip in Fig. 10.
  • capture_enable_flag_Clip in Fig. 10 can also be a plurality of bits instead of 1 bit, as described in capture_enable_flag_PlayList in Fig. 5.
  • Number_of_streams (8 bits) is arranged after capture_enable_flag_Clip, and the number_of_streams describes the number of StreamlnfoO structures following it. Therefore, following number_of_streams, the structure of StreamlnfoO is described by the number_of_Streams.
  • a length (16 bits) is arranged at the head of the StreamlnfoO, and the length represents the size of the StreamlnfoO including the length. Following the length, stream_id (8 bits) and private_stream_id (8 bits) are assigned. The streamjd and private_stream_id specify (identify) the elementary stream to be associated with StreamlnfoO.
  • Fig. 11 shows a relationship between streamjd and private_stream_id for identifying an elementary stream, and the elementary stream.
  • the streamjd is the same as that specified in the MPEG2-System standard, and its value is determined in advance for each attribute (type) of elementary stream (data) in the MPEG2-System standard. Has been. Therefore, an elementary stream having the attribute defined by the MPEG2-System standard can be specified only by streamjd.
  • Fig. 11 an elementary stream of video encoded by the encoding (decoding) method specified by MPEG and an elementary stream of audio encoded by ATRAC (Adaptive TRansform Acoustic Coding) (hereinafter referred to as "elementary stream”) are shown. Audio stream), audio elementary stream encoded by LPCM (Linear Pulse Code Modulation) method (hereinafter referred to as LPCM audio stream), and subtitle elementary stream (hereinafter referred to as appropriate). , Called a subtitle stream), showing the relationship between streamjd and private_stream_id.
  • LPCM Linear Pulse Code Modulation
  • an elementary stream of a video encoded by an encoding method specified by MPEG has a value in the range of OxEO to OxEF (Ox is a character string following the hexadecimal number). Multiplexing using streamjd to identify elementary streams. Therefore, for an elementary stream of a video encoded by the encoding method specified by MPEG, an elementary stream of 16 videos that can be identified by stream jd having a value in the range of OxEO to OxEF Can be multiplexed into the program stream.
  • streamjd is not defined for ATRAC audio streams, LPCM audio streams, and subtitle streams.
  • streamjd is defined in the MPEG2-System!
  • attribute private_stream_l in the MPEG2-System is added to the streamjd.
  • OxBD which is a value to represent is adopted, and further, as shown in FIG. 11, identification (specification) is performed using private_stream amjd.
  • private_streamjd having a value in the range of 0x00 to OxOF is used for identification of an ATRAC audio stream. Therefore, 16 ATRAC audio streams can be multiplexed in the program stream.
  • a value private_stream_id in the range from 0x10 to OxlF is used for identification of the LPCM audio stream. Therefore, 16 LPCM audio streams can be multiplexed in the program stream.
  • subtitles Private_stream_id having a value in the range of 0x80 to 0x9F is used for stream identification. Therefore, 32 subtitle streams can be multiplexed in the program stream.
  • StaticInfoO reserved-for-word-alignment (8 bits).
  • StaticInfoO information that does not change during playback of the elementary stream specified by streamjd and private_stream_id (described in StreamlnfoO including StaticInfoO) is described. The details of StaticInfoO will be described later with reference to FIG.
  • reserved_for_word_alignment is used for taking a word line.
  • the pts_change_point represents a time when information of DynamicInfoO becomes effective as a set with it.
  • pts_change_point representing the time at the beginning of the elementary stream is equal to presentation_start_time described at the beginning of the clip information file ClipO corresponding to the clip stream file in which the elementary stream is stored.
  • DynamicInfoO describes so-called dynamic information that changes during the playback of the elementary stream specified by the streamjd and the private_stream_id.
  • the information described in DynamicInfoO becomes effective when paired with! /, The playback time indicated by pts_change_point.
  • the details of DynamicInfoO will be described later with reference to FIG.
  • EP_map0 is placed after pts_change_point and DynamicInfoO of the set of number_of_DynamicInfo. Note that EP_map0 will be described later with reference to FIG.
  • Fig. 12 shows the syntax of StaticInfoO.
  • StaticInfoO has different contents depending on the attribute (type) of the corresponding elementary stream. The attribute of the elementary stream corresponding to StaticInfoO is determined by streamjd and private_stream_id included in StreamlnfoO of FIG. 10 including the StaticInfoO.
  • picture_size represents the size of (the image displayed by) the video data corresponding to the video stream.
  • frame_rate represents the frame frequency of video data corresponding to the video stream.
  • cc_flag indicates whether or not the video stream includes closed caption data. That is, for example, if the video stream includes closed caption data, cc_flag is set to 1, and if the video stream includes closed caption data, otherwise, ccjkg is set to 0. .
  • audio_language_code a code representing the language of audio data included in the audio stream is described.
  • channeLconfiguration represents the attributes of audio data included in the audio stream, such as mono / mono / stereo / multi-channel.
  • lfe_existence represents the power of the audio stream including the low-frequency emphasis channel, and is 1 if it is included and 0 if it is not.
  • the sampling frequency is information indicating the sampling frequency of audio data included in the audio stream.
  • subtitle_language_code a code representing the language of the subtitle data included in the subtitle stream is described.
  • con figurable_flag is the subtitle data included in the subtitle stream.
  • the display method of the caption data includes a display size of the caption data, a display position, a display color, a display pattern (for example, blinking display), a display direction (for example, a vertical direction and a horizontal direction).
  • Fig. 13 illustrates the syntax of DynamidnfoO.
  • DynamidnfoO describes dynamic information that changes during playback of the elementary stream, as described with reference to FIG. Although this dynamic information is not particularly limited, in the embodiment of FIG. 13, the data corresponding to the elementary stream corresponding to DynamidnfoO, that is, the dynamic information is output by processing the elementary stream. Data output attribute (elementary stream power obtained data output attribute) power Described in DynamidnfoO.
  • DynamidnfoO uses display-aspect-ratio (4 bits) and the 7th reserved wordword.
  • the play-aspect-ratio describes, for example, the aspect ratio of the video data as an output attribute (display method) of the video data corresponding to the video stream. That is, in the diplay_aspect_ratio, for example, information indicating whether the aspect ratio is 16: 9 or 4: 3 is described.
  • the DynamidnfoO of the video stream in addition to the aspect ratio, for example, the size of an image displayed by the video data (X pixels and XY pixels) can be described.
  • DynamicInfoO includes reserved_for_word_alingitem for taking a word line. That is, in the embodiment of FIG. 13, the output attribute as dynamic information is defined for the subtitle stream.
  • Fig. 14 shows the syntax of EPjnapO.
  • EPjnapO decoding of each elementary stream is performed for each elementary stream multiplexed with the program stream stored in the clip stream file corresponding to the clip information file ClipO in Fig. 10 including EPjnapO.
  • the information of the decoding start point (entry point) that can be started is described.
  • a decoding start possible point can be obtained by calculation.
  • a video access access point such as a variable-rate stream or a video stream encoded according to the MPEG standard is used.
  • a decoding start possible point cannot be obtained by calculation, and cannot be found unless the stream is actually analyzed.
  • Quickly recognizing the decoding start possible point is important for random access. According to EPjnapO, the decoding start possible point can be quickly recognized.
  • the starting point of intra-working including Sequence-headerO is a point where decoding can be started.
  • number_of_stream_id_entries information for identifying an elementary stream, information on a decoding start point of the elementary stream, and a number represented by number_of_stream_id_entries are repeatedly arranged.
  • stream_id (8 bits) and private_stream_id (8 bits) as information for identifying an elementary stream are arranged, followed by number_of_EP_entries (32 bits).
  • number_of_EP_entries indicates the number of points at which decoding of the elementary stream identified (specified) by the previous streamjd and private_stream_id is possible.
  • the set of PTS_EP_start (32 bits) and RPN_EP_start (32 bits) as information of the decoding start point of the elementary stream specified by the immediately preceding streamjd and private_stream_id is the number represented by number_of_EP_entries. Are repeatedly arranged.
  • PTS_EP_start which is one of the information about the decoding start possible point, is included in the clip stream file storing the program stream in which the elementary streams specified by the stream_j and the private_stream_id are multiplexed as described above. This indicates the time (playback time) at which decoding can be started.
  • RPN_EP_start which is another piece of information on the decoding start possible point, includes a clip stream in which a program stream in which the elementary streams specified by the stream_id and the private_stream_id are multiplexed as described above is stored.
  • the value when the position of the decoding start possible point in the file is counted in packO units of the program stream is described.
  • the size of packO is fixed at 2048 bytes.
  • one sector capacity of the disk 101 (FIG. 1) is 2048 bytes.
  • the video stream immediately before the decode startable point (entry point), which is (PES_packet () of the attribute of private_stream_2) force s arrangement described below private_stream_2 packets.
  • private_stream_2 packet is The information used to decode the video stream located between the private_stream_2 packet and the private_stream_2 packet is stored. For this reason, for the video stream, RPN_EP_start as information on the decoding start possible point is not the actual decoding start possible point itself, but is placed immediately before the actual decoding start possible point! Private_stream_2 packet Is described.
  • the set of PTS_EP_start and RPN_E P_start as information of decoding start possible points is sorted in ascending order for each elementary stream specified by streamjd and private_stream_id. ing.
  • the set of PTS_EP_start and RPN_EP_start as the information on the decoding startable point can be subjected to a binary search.
  • a clip stream file is an MP-2 file defined by the MPEG-2 System (ISO / IEC 13818-1).
  • FIG. 15 shows Table 2-31, Table 2-32, and Table 2-33 described in the MPEG-2 System (ISO / IEC 13818-1: 2000) standard.
  • the program stream stored in the clip stream file is MPEG2_Program_Stream () defined in Table 2-31 of the MPEG-2 System standard, and is composed of one or more packOs and one MPEG_program_end_code. You. The description of MPEG2_Program_Stream () is also described in Japanese Patent No. 2785220 or the like.
  • One packO consists of one packO as defined in Table 2-32 of the MPEG-2 System standard.
  • Pack_header0 It consists of Pack_header0 and any number of PES_packet (). For more information on Pack_header0,
  • the size of packO is defined as a variable length.
  • the power is fixed at 2048 bytes.
  • the number of PES_packetO of one packO is one, two, or three.
  • PackO power Starts with private_stream_2 packet! /
  • PES_packetO in which content data such as video, audio and subtitles is stored is placed at the beginning of PackO.
  • padding_packet (padding packet) can be placed as the second PES_packetO.
  • Figs. 16 to 18 show PES_packet 0 defined in Table 2-17 of the MPEG-2 System standard.
  • PTS Presentation Time Stamp
  • DTS Decoding Time Stamp
  • Information indicating the decode timing can be arranged.
  • a PTS is added to all access units (decoding units that constitute an elementary stream defined in MPEG2-System), and a DTS is added when defined in MPEG2-System.
  • the elementary stream multiplexed with the program stream is stored in PES_packet_data_byte (Fig. 18) of PES_packet0. Then, in streamjd of PES_packet0, a value corresponding to the attribute of the elementary stream is described in order to identify the elementary stream stored in the PES_packet_data_byte.
  • the stream_name of the PES_packetO of the elementary stream having the attribute called private_stream_l is set to 10111101B according to Fig. 20.
  • the streamjd of the PES_packet () of the padding_packet is the force ⁇ , 10111110B shown in FIG.
  • the streamjd of the PES_packetO of the elementary stream having the attribute called private_stream_2 is set to 10111111B according to FIG.
  • the streamjd of PES_packet () of a video stream (video elementary stream) defined by MPEG is set to ⁇ .
  • Video streams (video streams defined by MPEG) can be multiplexed.
  • PES_packetO whose streamjd is ⁇ is used to store a video stream defined by MPEG
  • PES_packet () whose streamjd is llOxxxxxB is used to store an audio stream defined by MPEG.
  • the streamjd of PES_packetO used to store an elementary stream of an encoding system (for example, ATRAC system), which is not defined in MPEG, is not defined in MPEG, and therefore, The elementary stream of the encoding system defined by G !, na! /, Is stored in PES_packetO simply by specifying streamjd, like the video stream and audio stream defined by MPEG. I can't.
  • PES_packet_data_byte of PES_packetO of private_stream_l is extended to store an elementary stream of the coded format defined by MPEG.
  • the extended PES_packet_data_byte of the PES_packetO of the private_stream_l is used as private-streaml- PES-payloadO.
  • FIG. 21 shows the syntax of private_streaml_PES_payloadO.
  • private—streaml—PES—payloadO is composed of private—headerO and private—payloadO.
  • private—PayloadO stores an elementary stream of the encoding system not defined by MPEG, such as an ATRAC audio stream, an LPCM audio stream, and a subtitle stream.
  • Private_stream_id (8 bits) is placed at the head of private_header ().
  • private_stream_id is identification information for identifying an elementary stream stored in private_payload0, and has, for example, the following values according to its attribute (type).
  • FIG. 22 shows the relationship between the value of private_stream_id and the attribute of the elementary stream stored in private_payload0.
  • the private-stream-id of the private-streaml- PES-payloadO in which the ATRAC audio stream is stored in private_payload () is OOOOxxxxB.
  • the lower 4 bits xxxx of OOOOxxxx B are the audio stream number that distinguishes the ATRAC audio stream, and the program stream (MPEG2_Program_Stream ()) is a number that can be distinguished by this audio stream number.
  • MPEG2_Program_Stream () is a number that can be distinguished by this audio stream number.
  • the private_streaml_id of the private_streaml_PES_payloadO stored in the LPCM audio stream power ⁇ private_payloadO is 000 ⁇ xxxxB.
  • the private_stream_id of private_stream l_PES_payload () in which the subtitle stream is stored in private_payloadO is lOOxxxxxB.
  • private-streaml-PES-payloadO in private-streaml-PES-payloadO, the element following private-stream-id has a different content depending on the attribute of the elementary stream stored in private_payload0.
  • the attribute of the elementary stream stored in private_payload0 is determined by private_stream_id at the head of private_header ().
  • AU_locator indicates the head position of the audio access unit (ATRAC audio access unit) (audio frame) of the ATRAC audio stream stored in private_payload0 with reference to the position immediately after the AUJocator. If there is no audio access unit in private_payload0, for example, OxFFFF is described in AlUocator.
  • fs_flag indicates the sampling frequency of the LPCM audio stream stored in private_payload0. That is, for example, if the sampling frequency is 48KHz, fsjkg is set to 0. If the sampling frequency is 44. ⁇ , fsjlag is set to 1.
  • ch_flag indicates the number of channels of the LPCM audio stream stored in private_payload (). For example, if the LPCM audio stream is monaural, ch_flag is set to 1 and LPC
  • chjlag is set to 2.
  • the AUJocator indicates the head position of the audio access unit (LPCM audio access unit) (audio frame) of the LPCM audio stream stored in private_payload () with reference to the position immediately after the AU_locator. If no audio access unit exists in private_payloadO, for example, OxFFFF is described in AU_locator.
  • AU_locator indicates the head position of the subtitle access unit of the subtitle stream stored in private_payload0 with reference to the position immediately after the AU_locator.
  • AU_locator indicates the head position of the subtitle access unit of the subtitle stream stored in private_payload0 with reference to the position immediately after the AU_locator.
  • FIG. 23 shows the syntax of private_stream2_PES_payload ().
  • PES_packet0 of private_stream_2 is arranged immediately before a decoding start possible point in the video stream. Therefore, in the present embodiment, if PES_packet () of private_stream_2 is found from the program stream, the video stream decoding immediately after that can be started.
  • RPN_EP_start of EP_map0 in Fig. 14 indicates the start position of PES_packet0 of private_stream_2 for the video stream.
  • private_stream2_PES_pavloadO starts with reserved_for JUture_use for future expansion. (8 bits), followed by video_stream_id (8 bits), lstRef_picture (16 bits), 2n dRef—picture (16h, 3dRef—picture (16 hits), 4thRef—picture (16t, /), au — infor mationO, and VBlO are arranged sequentially.
  • the streamjd of the PES_packetO of the video stream arranged immediately after the PES_packet () of the private_stream_2 is described.
  • the private-stream-2 PE3 ⁇ 4-packetO private-stream2-PE3 ⁇ 4-payload ()] [video stream that is decoded using the information contained in this thread is stored. PES_packetO) is specified.
  • IstRef— picture, 2ndRef— picture, jrdRef— picture, 4tnRef— picture is from PES_packet () of private_stream_2 to PES_packet () of next private_stream_2 of the video stream identified by video— stream— id.
  • the relative position of the last pac k0 including the first, second, third, and fourth reference images.
  • the details of lstRef_picture, 2ndRef_picture, 3rdRef_picture, and 4thRef_picture are disclosed in, for example, Japanese Unexamined Patent Application Publication No. 09-46712 (Japanese Patent Application No. 07-212420) as bytes_to_first_P_pic bytes_to_second_P_pic.
  • au-informationO information on the video access unit in the video stream from PES-packet0 of private-stream-2 to PES_packet0 of the next private-stream-2 is described. Details of aujnformationO will be described later with reference to FIG.
  • VBI0 is used to describe Closed Caption information.
  • FIG. 24 shows the syntax of aujnformationO in FIG.
  • Length (16 bits) is placed at the beginning of aujnformationO.
  • length represents the au-informationO service that includes it.
  • length [reserved] reserved—for—word—alignment (8 bits), and number—of—access—unit (8 bits). reserved—for—word— The alignment is used to take word lines.
  • number_of_access_unit is the number of video access units (pictures) included from PES_packet0 of private_stream_2 containing it to PES_packet () of the next private_stream_2. Represents a number.
  • the private-stream2-PES-payloadO of FIG. The access unit (picture) included in the video stream indicated by video_s treamjd from the informatnioO force to the time immediately before the next aujnformationO (or to the end of the clip stream file if this aujnfromationO is the last aujnformationO in the clip stream file) Indicates the number of
  • the number of the number-of-access-unit is seven.
  • the information (information about the video access unit) arranged in the for loop is as follows.
  • pic_struct_copy when the video stream is MPEG4-AVC (ISO / IEC 14496-10), defined in ISO / IEC 14496-10, D.2.2 set for the corresponding video access unit A copy of pic_struct () is described.
  • pic_struct () is information indicating, for example, displaying a picture as a frame, or displaying a top field of a picture, and then displaying a bottom field.
  • au_ref_flag represents whether or not the corresponding access unit power is a reference image which is referred to when decoding another access unit (picture of), and is set to 1 if the reference image is used, and is set to 1 if the reference image is used. Otherwise, it is set to 0.
  • AUJength represents the size of the corresponding access unit in bytes.
  • FIGS. 25 to 28 show specific examples of the above-described format data recorded on the disk 101 of FIG.
  • MPEG2_Video is adopted as the video stream
  • the ATRAC audio stream is used as one stream.
  • the video stream and the audio stream are not limited to these. That is, for example, MPEG4-Visual or MPEG4-AVC can be adopted as the video stream.
  • MPEG4-Visual or MPEG4-AVC can be adopted as the video stream.
  • MPEG1 / 2/4 audio, LPCM audio stream, or the like can be adopted as the audio stream.
  • a subtitle stream is not always subjected to continuous decoding (display) at the same interval. That is, the subtitle stream is sometimes supplied from the buffer control module 215 of FIG. 2 to the subtitle decoder control module 218 and decoded.
  • FIG. 25 to FIG. 28 show three clip information files “00001. CLP”, “00002.CLP”, and “00003.CLP” in the “CLIP” directory on the disc 101 as shown in FIG. Are recorded in the "STREAM” directory, and the three clip stream files "00001.PS” and "00001.PS” corresponding to the three clip information files "00001. CLP”, “00002. CLP”, and “00003.CLP”, respectively.
  • 00002.PS "and” 00003.PS are recorded, such as” PLAYLIST.DAT ⁇ file, TIP information file "00001. CLP”, “00002.CLP”, and "00003.CLP” A specific example is shown.
  • FIG. 25 shows a specific example of the “PLAYLIST.DAT ⁇ file described with reference to FIG.
  • number_of_PlayLists is 2, and therefore, the number of PlayListOs included in the “PLAYLIST.DAT” file is 2.
  • the first of the two PlayListOs is described as PlayList # 0, and the second as PlayList # 1.
  • PlayList # 0 which is the first PlayListO
  • capture_enable_flag_PlayList is 1, and therefore secondary use of video data reproduced according to PlayList # 0 is permitted.
  • number_of_PlayItems is 2, and therefore, the number of PlayltemOs included in PlayList # 0 is 2.
  • FIG. 25 specific examples of PlayItem # 0 and Playltem # l, which are the two Playltems O, are described below the column “PlayList # 0”.
  • Playltem # l which is the second PlayltemO included in PlayList # 0
  • Clip_Information_file_name described in FIG. 6 becomes "00002.CLP”
  • In_time becomes 90,000
  • OUT_time becomes 27,090,00 00, respectively.
  • the clip played by Playltem # l of PlayList # 0 is a clip stream file "0000" corresponding to the clip information file "00002. CLP".
  • PlayList # 1 which is the second PlayListO! /
  • the capture.enable_flag_PlayList is 0, and therefore, playback according to PlayList # 1 Secondary use of video data is not permitted (prohibited).
  • number_of_PlayItems is 1, and therefore, the number of PlayltemOs included in PlayList # 1 is 1.
  • FIG. 25 a specific example of PlayItem # 0, which is one PlayltemO, is described below the column of “PlayList # l”.
  • PlayItem # 0 which is one PlayltemO included in PlayList # 1
  • the ClipJ nformation— file—name described in FIG. 6 is “00003.CLP”
  • the In—time is 90,000
  • the OUT—time is 81 , 090,000, respectively. Therefore, the clip reproduced by PlayItem # 0 of PlayList # 1 is from time 90,000 to time 81,090,000 of the clip stream file "00003.PS #" corresponding to the clip information file "00003.CLP”.
  • FIG. 26 shows a specific example of the clip information file ClipO described in FIG.
  • FIG. 26 shows a specific example of the clip information files “00001. CLP”, “00002. CLP”, and “00003.CLP” in FIG.
  • the presentation_start_time is 90,000 and the presentation_end_time is 27,990,000. Therefore, according to the program stream stored in the clip stream file “00001.PS” corresponding to the clip information file “00001.CLP”, the content of 310 seconds ((27,990,000-90,000) / 90 kHz) is used. Is available.
  • capture_enable_flag_Clip is set to 1, and therefore, a clip stream file "00001.PS" corresponding to the clip information file "00001.CLP".
  • the secondary use of the video stream (video data corresponding to) multiplexed with the program stream stored in "" is permitted.
  • the number_of_streams of the clip information file "00001.CLP" is 4, and accordingly, the program stream stored in the corresponding clip stream file "00001.PS” includes four streams.
  • Elementary streams are multiplexed! /
  • the streamjd is OxEO, and therefore, this elementary stream stream # 0 is shown in Figs. As described in (or FIG. 11), it is a video stream.
  • the private_stream_id is irrelevant for the video stream as described above, but is 0x00 in FIG.
  • the picture_size of the StaticInfoO (Fig. 12) included in the StreamlnfoO is "720X480".
  • the frame_rate is set to '29 .97Hz 'and the cc_flag is set to' Yes'. Therefore, this video stream stream # 0 is 720 ⁇ 480 pixel video data having a frame cycle of 29.97 Hz, and further includes closed caption data.
  • this elementary stream stream # l is an ATRAC audio stream as described with reference to FIGS. 20 and 22.
  • this elementary stream stream # 2 is a caption stream as described with reference to FIGS.
  • this subtitle stream stream # 2 is Japanese subtitle data, and it is permitted to change the display method, and it is prohibited (prohibited).
  • Private_stream_id is 0x80 and 0x81.
  • this subtitle stream stream # 3 is Japanese subtitle data, and its display method is permitted to be changed.
  • capture_enable_flag_Clip is 0, and accordingly, the capture_enable_flag_Clip is stored in the clip stream file "00002.PS" corresponding to the clip information file "00002.CLP". Secondary use of video streams (video data corresponding to) multiplexed with the program stream is not permitted (prohibited).
  • the number_of_streams of the clip information file "00002.CLP" is 4, and therefore, the program stream stored in the corresponding clip stream file "00002.PS" As in the case of the clip stream file “00001.PS”, four elementary streams are multiplexed.
  • the contents of the StreamlnfoO of the first to fourth elementary streams stream # 0 to # 3 of the clip stream file "00002.PS" are the clip stream file "00001.PS”.
  • the first elementary stream stream # 0 of the clip stream file “00002.PS” is the same as the contents of the first to fourth elementary streams stream # 0 to stream # 3 of the respective streams.
  • the second elementary stream, stream # l is an ATRAC audio stream.
  • the third elementary stream stream # 2 and the fourth elementary stream stream # 3 are both subtitle streams.
  • the presentation start_time power is set to ⁇ 0,000 and the presentation_end_time is set to 81,090,000. Therefore, according to the program stream stored in the clip stream file "00003.PS" corresponding to the clip information file "00003.CLP", the content of 900 seconds ((81,090,000-90,000) / 90 kHz) is available. It is.
  • capture_enable_flag_Clip is set to 1 in the clip information file "00003.CLP", and therefore, the clip stream file "00003.PS” corresponding to the clip information file "00003.CLP".
  • the secondary use of the video stream multiplexed with the program stream stored in "" is permitted.
  • the streamjd is OxEO, and therefore, this elementary stream stream # 0 is shown in Figs. As described in (or FIG. 11), it is a video stream. As in the case of the first elementary stream stream # 0 of the clip stream file “00001.PS”, the stream becomes private-stream- ⁇ [0x00].
  • the picture_size of the StaticInfoO (Fig. 12) included in the StreamlnfoO is "720X480".
  • frame_rate is set to '29 .97Hz 'and cc_flag is set to' No '. Therefore, this video stream stream # 0 is 720 ⁇ 480 pixel video data having a frame period of 29.97 Hz, and does not include closed caption data.
  • the number_of_Dynamidnfo of StreamlnfoO (FIG. 10) is 2, and StreamlnfoO describes two sets of pts_change_point and DynamicInfoO!
  • the streamjd is OxEl, and therefore, this elementary stream stream # 1 is shown in Figs. As described in 22 (or FIG. 11), it is a video stream. Note that, in order to distinguish the video stream stream # 0 as the first elementary stream of the clip stream file “00003.PS” from the video stream strea m # l as the second elementary stream, Streamjd is OxEO and OxEl. Also, like the first elementary stream stream # 0 of the clip stream file "00001.PS", the stream becomes private-stream- ⁇ [0x00].
  • the video stream stream # l which is the second elementary stream of the clip stream file “00003.PS”
  • picture_size, frame.rate, cc_flag of StaticInfoO (Fig. 12) included in the StreamlnfoO Are the same as those for the video stream stream # 0, which is the first elementary stream. Therefore, clip stream fire
  • the video stream stream # l which is the second elementary stream of the file “00003.PS”, is video data of 720 ⁇ 480 pixels with a frame period of 29.97 Hz, and further includes closed caption data.
  • this elementary stream stream # 2 is an ATRAC audio stream as described with reference to FIGS.
  • the audio-language of the StaticlnfoO (Fig. 12) included in the StreamlnfoO — Code, channel—configuration, lfe—existence, sampling—frequency are the same as those of the ATRAC audio stream stream # 1, which is the second elementary stream of the clip stream file “00001.PS”. Therefore, the ATRAC audio stream stream # 2 which is the third elementary stream of the clip stream file "00003.PS" is Japanese and stereo audio data.
  • a low-frequency emphasis channel is not included, and the sampling frequency is 48 kHz.
  • the ATRAC audio stream stream # 2 which is the third elementary stream of the clip stream file "00003.PS" is referred to as number-of-DynamicInfo ⁇ of StreamlnfoO (FIG. 10).
  • StreamlnfoO three sets of pts-cnange-point and DynamicInfoO are described.
  • FIG. 27 shows a specific example of EP_map () in the clip information file ClipO described in FIG. That is, FIG. 27 shows a specific example of EPjnapO of FIG. 14 in the clip information file “00001.CLP” of FIG.
  • EP_mapO in Fig. 27, streamjd is OxEO. Therefore, as described in FIGS. 20 and 22, EP_map () contains information on decoding start possible points (PTS_EP_start and RPN_EP_start art (FIG. 14) for the video stream specified by streamjd of OxEO. )) Is described. That is, FIG. 27 shows EP_map0 of the clip information file “00001.CLP”.
  • the elementary stream whose streamxd is OxEO is As described with reference to FIG. 26, the first video stream stream # 0 of the clip stream file “00001. CLP”, the information described in EPjnapO in FIG. PTS_EP_start and RPN_EP_start, which are the decoding start possible points.
  • private_stream_id is 0x00. If streamjd represents a video stream, private_stream_id is irrelevant (ignored) as described above.
  • Fig. 28 shows a specific example of PlayListMarkO in PlayList # 0 and PlayList # 1 (PlayListO in Fig. 5) described in Fig. 25.
  • Fig. 28 shows PlayListMarkO (Fig. 7) of PlayList # 0!
  • Mark # 0 which is the first MarkO of the seven MarkOs included in PlayList # 0 has a mark Chapter (Fig. 7) of "Chapter". It is a chapter mark. Further, since Mark_0 has o_PlayItem_id (FIG. 7) of 0, it belongs to PlayItem # 0 of the two PlayItems # 0 and # 1 of FIG. 25 included in PlayList # 0. Mark # 0 is a mark on the time (reproduction time) 180,090 of the clip stream file reproduced by PlayItem # 0 included in PlayList # 0 since mark_time_stamp is 180,090. In addition, Mark # 0 is entry-ES-stream-id and entry-ES-private-stream-id Is also 0, and is not associated with any elementary stream. Mark_0 represents a chapter with a number of 1 because mark_data is 1.
  • the clip stream file reproduced by PlayItem # 0 included in PlayList # 0 is identified from "00001. CLP" described in Clip_Infomation_file_name of PlayItem # 0 described in FIG. Therefore, the above-mentioned time 180,090 represented by the mark_time_stamp of Mark # 0 is the time of the clip stream file “00001.PS”.
  • Mark # 4 which is the fifth MarkO among the seven MarkOs included in PlayList # 0 is a chapter mark similar to the first Mark # 0.
  • Mark # 4 which is the fifth MarkO, is a chapter mark because markjpe (Fig. 7) is "Chapter". Further, Mark # 4 is a replay o_PlayItem_id (FIG. 7), and therefore belongs to Playltem # l of the two PlayItems # 0 and # 1 of FIG. 25 included in PlayList # 0. Also, since Mark_time_stamp is 90,000 for Mark # 4, it is indicated by a mark on time 90,000 of the clip stream file reproduced by Playltem # l included in PlayList # 0. In addition, Mark # 4 is also associated with entry-ES-stream-id and entry-ES-private-stream-id, and the deviation is also 0! /, So V is also associated with the deviation elementary stream. !/,Absent. Mark # 4 has a mark_data of 2, and thus represents a chapter with a number of 2.
  • the clip stream file reproduced by Playltem # l included in PlayList # 0 is specified from "00002.CLP" described in Clip_Infomation_file_name of Playltem # l described in FIG. Therefore, the time 90,000 described above, which is represented by the mark_time_stamp of Mark # 4, is the time of the clip stream file "00002.PS".
  • Mark # l which is the second MarkO of the seven MarkOs included in PlayList # 0 has "Index" in markj pe (Fig. 7). It is an index mark. Further, since Mark_l has o_PlayItem_id (FIG. 7) of 0, it belongs to PlayItem # 0 among the two PlayItems # 0 and # 1 of FIG. 25 included in PlayList # 0. Mark_l is mark on time 5,580,090 of the clip stream file reproduced by Playltem # 0 included in PlayList # 0 because mark_time_stamp is 5,580,090. Further , Mark # l [entry-ES-stream-id and entry-ES-private-stream-id], and the deviation is also 0, so it is not associated with any elementary stream. Mark_l has an index of 1 because mark_data is 1.
  • the clip stream file reproduced by PlayItem # 0 included in PlayList # 0 is the clip stream file "00001.PS" as described above, and therefore, the mark_time_stamp of Mark #l is The above described times 5, 580, 090 are times of the clip stream file “00001.PS”.
  • Mark # 3 which is the fourth MarkO of the seven MarkOs included in PlayList # 0 is markj pe (FIG. 7) because the force is S'Event '. , An event mark. Further, since Mark # 3 has a power o_PlayItem_id (FIG. 7), it belongs to PlayItem # 0 of the two PlayItems # 0 and # 1 of FIG. 25 included in PlayList # 0. Mark_3 is a mark on time 16,380,090 of the clip stream file reproduced by Playltem # 0 included in PlayList # 0 because mark_time_stamp is 16,380,090.
  • Markftji and entry-ES-stream-id and entry-ES-private-stream-id3 ⁇ 4 and CH are different, they are not associated with any elementary stream.
  • Mark # 3 since mark_data is 0, an event with 0 as an argument is generated.
  • the clip stream file reproduced by PlayItem # 0 included in PlayList # 0 is the clip stream file "00001.PS" as described above, and therefore, the mark_time_stamp of Mark # 3 is The times 16,380,090 described above are the times of the clip stream file “00001.PS”.
  • FIG. 28 shows PlayListMarkO (FIG. 7) of PlayList # l.
  • Mark # 0 which is the first MarkO of the three MarkOs included in PlayList # l, has a mark Chapter (Fig. 7) of "Chapter", , The chapter mark. Further, Mark_0 belongs to one PlayItem # 0 in FIG. 25 included in PlayList # l because o_PlayItem_id (FIG. 7) is 0. Mark # 0 is a mark on time 90,000 of the clip stream file reproduced by PlayItem # 0 included in PlayList # l because mark_time_stamp is 90,000. In addition, since Mark_0 has entry_ES_stream_id and entry_ES_private_stream_id with a deviation of 0, V is not associated with the elementary stream of V or deviation. Mark_0 represents a chapter with a number of 0 because mark_data is 0.
  • the clip stream file reproduced by PlayItem # 0 included in PlayList # l is "00003.CLP" described in Clip_Infomation_file_name of PlayItem # 0 described in FIG.
  • the above-mentioned time 90,000 represented by the mark_time_stamp of Mark # 0 is the time of the clip stream file “00003.PS”.
  • Mark # l which is the second MarkO among the three MarkOs included in PlayList # l is markj pe (Fig. 7). It is. Further, Mark_l belongs to one PlayItem # 0 in FIG. 25 included in PlayList # l because o_PlayItem_id (FIG. 7) is 0. Mark_l is a mark on time 27,090,000 of the clip stream file reproduced by PlayItem # 0 included in PlayList # l because mark_time_stamp is 27,090,000.
  • streamjd is an elementary stream identified (identified) by OxEO, that is, as described in FIGS. Associated with the stream. Mark_l generates an event with 1 as an argument because mark_data is 1.
  • the clip stream file reproduced by PlayItem # 0 included in PlayList # l is the clip stream file "00003.PS" as described above.
  • the above-mentioned time 27,090,000 represented by mark_time_stamp of ark # l is the time of the clip stream file ⁇ 00003.PS ⁇ .
  • a video stream with a streamjd of OxEO associated with Mark # l is associated with the Mark # 1 and a Clip Jnfomation of PlayItem # 0 included in PlayList # 1 of Fig. 25 to which the Mark # 1 belongs.
  • “00003.CLP” described in the name
  • the video stream whose stream_id is 0xE0, that is, the clip stream file "00003.PS" specified from the clip information file "00003.CLP" in FIG. Is the first elementary stream (video stream) stream # 0 of the three elementary streams stream # 0 to # 2 multiplexed into the stream.
  • Mark # 2 which is the third Mark 0 of the three MarkOs included in PlayList # l becomes markj pe (Fig. 7) as a force S'Event '. This is an event mark.
  • Mark # 2 has a ref_to_PlayItem_id (FIG. 7), it belongs to one PlayItem # 0 in FIG. 25 included in PlayList # 1.
  • Mark # l is 111 10: ⁇ 6_3 &] 1 ⁇ is 27,54,000, so the mark on time 27,540,000 of the clip stream file played by PlayItem # 0 included in PlayList # l is there.
  • streamjd is an elementary stream identified (identified) by OxEl, that is, as described in FIGS. 20 and 22, Associated with the video stream.
  • mark_data is 2, an event with 2 as an argument is generated.
  • the clip stream file reproduced by PlayItem # 0 included in PlayList # l is the clip stream file "00003.PS" as described above.
  • the time 27,540,000 described above is the time of the clip stream file “00003.PS”.
  • a video stream having stream # d of OxEl associated with Mark # 2 is a ClipJnfomation-file of PlayItem # 0 included in PlayList # 1 of Fig. 25 to which the Mark # 2 belongs.
  • Streamjd described in “00003.CLP” described in name is an OxEl video stream, that is, a clip stream file “00003.PS” recognized from the clip information file “00003.CLP” in FIG. Is the second elementary stream (video stream) stream # l among the three elementary streams stream # 0 to # 2 multiplexed into the stream.
  • the time from the beginning of PlayltemO to which Mark () belongs is shown on the right side outside the column of the PlayListMarkO list of PlayList # l.
  • the number of the chapter index indicated by the chapter mark or the index mark is different from the number of the chapter index indicated by the mark mark_data in the mark_data. For example, it can be recognized by counting the number of chapter marks and index marks in PlayList MarkO.
  • FIG. 29 is a flowchart illustrating the pre-reproduction processing performed by the video content reproduction program 210.
  • the operation or processing of the disk device described with reference to the flowchart is not necessarily required to be performed in chronological order in the order described in the flowchart, but may be performed in parallel or individually. However, in this specification, for convenience, the operation or processing of the disk device will be described along a flowchart.
  • step S101 the video content playback program 210 checks the disc 101 using the file system function of the operating system 201, and checks whether the disc 101 has a normal Determine whether the disc is a disc.
  • step S101 when it is determined that the disk 101 is not a normal disk, that is, for example, the file system power used for the disk 101 corresponds to the! /, Na! /, Type of the operating system 201. If it is found, or if the 'VIDEO' directory is placed in the root directory, and if not, the video content playback program 210 determines that the disc 101 is not supported, the process proceeds to step S102, and the graphics processing module 219 , Perform error processing, and end the pre-playback processing.
  • the graphics processing module 219 generates an error message (video data of) that the disk 101 is not normal and outputs the output of the video output module 220 as an error processing, thereby displaying the error message.
  • the error processing for example, it is possible to output a warning sound from the audio output module 221 or discharge the disc 101 from the disc drive 102.
  • step S101 determines whether the disc 101 is a normal disc. If it is determined in step S101 that the disc 101 is a normal disc, the process proceeds to step S103, where the video content playback program 210 sends the operating system 201
  • the two data files, the "SCRIPT.DAT” file and the "PLAYLIST.DAT” file, are requested and read in the "VIDEO" directory of the disk 101 (FIG. 4), and the process proceeds to step S104.
  • step S104 the "SCRIPT.DAT” file power is supplied to the script control module 211, and the "PLAYLIST.DAT” file power is supplied to the player control module 212.
  • step S104 proceeds from step S104 to steps S105 to S107, and the player control module 212 performs an initialization process.
  • the script control module 211 waits until the initialization processing of the player control module 212 ends.
  • step S105 the player control module 212 power "PLA
  • the "PLAYLIST.DAT" file is as shown in FIG. Since the number_of_PlayLists is 2 in the “PLAYLIST.DAT” file of FIG. 25, the player control module 212 has two PlayListOs, the first PlayList # 0 and the second PlayList # l. Recognize that there is. Furthermore, since the number_of_Playltems of the first PlayList # 0 in the “PLAYLIST.DAT” file in FIG. 25 is 2, the player control module 212 includes the first PlayItem # 0 in the PlayList # 0. It recognizes that there are two PlayltemOs, and a second Playltem # l.
  • the player control module 212 refers to the Clip_Information_file_name of each of the first PlayItem # 0 and the second Playltem # l included in PlayList # 0 in the “PLAYLIST.DAT” file of FIG. It recognizes that the clip information file (file name) of the first PlayItem # 0 included in 0 is “00001. CLP” and the clip information file power of the second PlayItem # 1 is 00002.CLP ”.
  • the player control module 212 also performs the same for the second PlayList # l, since its number_of_PlayItems is 1, there is one PlayltemO (PlayItem # 0), and further, It recognizes from the Clip_Information_file_name in that the clip information file of that PlayItem # 0 is “00003.CLP”.
  • step S105 the player control module 212 executes the clip information file recognized in step S105, that is, the "CLIP” directory in the "VID EO” directory of the disc 101. Loads three clip information files "00001.CLP”, "00002. CLP”, and "00003. CLP".
  • step S106 the reading of the clip information file in step S106 is performed only with the clip information file of the Playltem of the P1 ayListO that is played first.
  • the clip information file of PlayltemO of PlayListO is pre-read.
  • step S107 the player control module 212 determines whether or not the force has succeeded in reading the clip information file recognized in step S105. It is determined (checked) whether or not the corresponding clip stream filler disk 101 exists. That is, in step S107, the clip information files "00001. CLP”, “00002. CLP”, and “00003. CLP” are read. The clip information files "00001.CLP”, “00002.CLP”, “00003.CLP”, and the clip stream files "00001.PS”, "00” It is determined whether “002.PS” and “00003.PS” exist in the “STREAM” directory under the “VIDEO” directory on the disk 101.
  • step S107 it is determined that the reading of the clip information file recognized in step S105 has failed, or that the clip stream file corresponding to the clip information file does not exist in the disc 101. In other words, if the clip information file or clip stream file required for playback according to the “PLAY LIST.DAT” file is not recorded on the disc 101, the video content playback program 210 If it is determined that they do not correspond, the process proceeds to step S102, the above-described error process is performed, and the pre-playback process ends.
  • step S107 if it is determined in step S107 that the clip information file recognized in step S105 has been successfully read and that a clip stream file corresponding to the clip information file exists on the disc 101, the player The control module 212 ends the initialization processing, and proceeds to step S108.
  • step S108 the script control module 211 starts interpreting and executing the "SCRIPT.DAT" file.
  • FIG. 30 is a flowchart illustrating the reproduction processing performed by the video content reproduction program 210.
  • the player control module 212 performs playback preparation processing of PlayList () instructed to be played back from the script control module 211, that is, the first PlayListO (PlayList # 0). .
  • the player control module 212 determines in step S121 that the first PlayList # Check the IN_time of the first PlayItem # 0 included in the first PlayItem # 0 (Fig. 6) and proceed to step S122 to proceed to the clip stream file played by the first PlayItem # 0 included in the first PlayList # 0
  • the playback start position corresponding to the IN_time of the PlayItem # 0 on “00001.PS” is checked to start playback.
  • the program stream may be read from the beginning of the clip stream file. If it points to something other than the beginning, it is necessary to find (investigate) the position corresponding to IN_time and read the program stream accordingly.
  • the IN_time of the first Playltem # 0 included in the first PlayList # 0 is 180,090.
  • the player control module 212 Find a playback start position suitable for IN_time of 180,090.
  • the player control module 212 performs, for example, a binary search (binary search) or the like of the maximum PTS_EP_start that satisfies the expression PTS_EP_start ⁇ IN_time among the PTS_EP_starts described in EPjnapO and indicating the decoding startable points.
  • a binary search binary search
  • the search for PTS_EP_start that is equal to or shorter than IN_time is because the position decoding start point represented by IN_time is not always a possible point.
  • IN_time is 180,090 as described above.
  • the maximum PTS_EP_start that satisfies the expression PTS_EP_start ⁇ IN_time 180,090 is described. Therefore, in the player control module 212, the PTS_EP_start which is 180,090 of the EPjnapO power shown in FIG. 27 is searched.
  • 305 which is the RPN_EP_start corresponding to the searched PTS_EP_start, is read out, and a clip stream file represented by the 305, RPN_EP_start "00001. Position on PS "Determined as playback start position Determined.
  • the player control module 212 proceeds to step S122 to step S123, and controls the graphics processing module 219 to display the time code.
  • the graphics processing module 219 generates (the video data of) the time and the time code controlled by the player control module 212, and outputs the generated video data to the video output module 220. Thus, the display of the time code is started.
  • the time code to be displayed in step S123 is, for example, a value obtained by converting the beginning of PlayListO into 00:00:00 (hour: minute: second). Note that the number of the chapter / index may be displayed together with the time code or instead of the time code.
  • step S123 After the display of the time code is started in step S123, the process proceeds to step S124, in which the player control module 212 receives the P1 ayListO instructed to play from the script control module 211, that is, the first PlayListO (PlayList # 0). Performs analysis processing to analyze PlayListMarkO (FIG. 7) described in.
  • the player control module 212 sets number_of_PlayList_marks to 7 in the PlayListMarkO shown in the upper part of Fig. 28 of the first PlayList # 0 in the "PLAYLIST.DATA" file already read. Therefore, it is recognized that the number of Mark () included in PlayList # 0 is 7.
  • the player control module 212 analyzes the seven MarkOs shown in the upper part of Fig. 28 included in PlayList # 0, and from the re-recorded o_PlayItem_id, the four MarkOs from the first to the fourth of the seven MarkOs. One MarkO recognizes that it belongs to the first PlayltemO (PlayItem # 0) of PlayList # 0.
  • the player control module 212 extracts the mark_time_stamp of the four MarkOs belonging to the first PlayItem # 0 of PlayList # 0, and passes the mark_time_stamp to the decode control module 214 as an array of the number of elements. That is, by this, the mark_time_stamp of each of the four MarkOs from the first to the fourth of the seven MarkOs in the upper part of FIG. 28 is ⁇ 180,090 ⁇ , ⁇ 5,580,090 ⁇ , ⁇ 10,980,090 ⁇ , ⁇ 16,380,090 ⁇ . The time is transferred from the player control module 212 to the decode control module 214.
  • the attribute of these times is "mark processing” Is also transmitted from the player control module 212 to the decode control module 214.
  • the decode control module 214 when the time measured by the timer 214A matches the time of the attribute of “mark processing”, a message indicating the fact, and the time of matching the time of the attribute of “mark processing”. , And the attribute of “mark processing” are transmitted to the player control module 212.
  • step S125 the process proceeds to step S125 from step S124, and the player control module 212 determines an elementary stream to be reproduced.
  • the player control module 212 sends the first PlayList # 0 in the first PlayList # 0, which is the PlayListO instructed to be played back from the script control module 211 (Fig. 25) (the file name is described in DC Since number_of_streams is 4 in the clip information file “00001.CLP” in FIG. 26, four elementary streams are included in the corresponding lip stream file “00001.PS”. Further, the player control module 212 recognizes, in order, the streamjd and the necessary private_stream_id of the StaticInfoO of the clip information file “00001.CLP” in FIG. 26 for the four elementary streams. Investigating, the four elementary streams were converted into one video stream, one ATRAC audio stream, and two subtitle streams. That is, the number of elementary streams of each attribute multiplexed in the clip stream file “00001.PS” is recognized.
  • the player control module 212 selects and determines the elementary stream to be reproduced based on the result of the StaticInfoO investigation described above.
  • the elementary stream is multiplexed with the clip stream file "00001.PS”.
  • Te! /, Ru In the four elementary streams, "Video Since there is only one elementary stream with the attributes “stream” and “audio stream”, the elementary stream with the attributes “video stream” and “audio stream” has only one elementary stream.
  • Video stream and audio stream (ATRAC audio stream) are determined as elementary streams to be played.
  • each of the four elementary streams is identified.
  • the player control module 212 needs to specify the four elementary streams that are multiplexed in the clip stream file "00001.PS", the stream-id and the required private-stream-id. T.
  • the player control module 212 generates a video stream that is an elementary stream having the attribute of "video stream” among the four elementary streams multiplexed in the clip stream file "00001.PS". As described for the clip information file “00001.CLP” in FIG. 26, OxEO! /
  • the player control module 212 is an elementary stream having an attribute of "audio stream” among the four elementary streams multiplexed into the clip stream file "00001.PS". As described for the clip information file “00001.CLP” in FIG. 26, the ATRAC audio stream is provided with a stream_id of OxBD and a private—stream—id “0x00”.
  • the player control module 212 multiplexes the clip stream file "00001.PS" into the two elementary streams having the attribute of "subtitle stream” in the four elementary streams.
  • each of the subtitle streams is a stream_id of OxBD and 0x80. , Private_stream_id, OxBD, stream_id, and 0x81, and private_stream_id.
  • the elementary stream multiplexed in the clip stream file is specified. be able to.
  • the combination of streamjd and private_streamjd is a mechanism provided to extend the multiplexing of the MPEG2-System.
  • metadata database
  • the meaning of private_stream_id is extended and the number and types (attributes) of the corresponding elementary streams are increased, the current mechanism can be used as it is.
  • the sub_stream_id that defines a sub_stream_id similar to the private_stream_id is not allowed to be described on the database to specify the stream. Alternatively, it can only be described in a fixed area describing 32 stream information (for example, VI4-49, Table 4.2.1-2 (VTS-AST—ATRT), VI4-52, Table 4.2 .1-3 (VTS-SPST-ATRT) etc.), poor expandability.
  • the number of combinations of streamjd and private_streamjd can be described as many as the number that can be represented by number_of_streams in the clip information file ClipO in Fig. 10, for example.
  • the stream elementary streams described in the clip information file ClipO as stre amjd It can be specified from the combination of private_stream_id.
  • the combination of streamjd and private_stream_id is multiplexed with the corresponding clip stream file in the clip information file in FIG. Besides being used to specify an elementary stream, for example, it is also used to specify an elementary stream to be associated with PlayListMarkO in FIG. Furthermore, the combination of streamjd and private_streammd is also used to specify an elementary stream that describes the information of the decodable start point, for example, in EPjnapO in FIG.
  • step S125 the process proceeds to step S126, in which the player control module 212 performs control processing of the output attribute of the elementary stream to be reproduced, that is, the elementary stream determined to be reproduced in step S125.
  • the player control module 212 first sets the output attribute of each of the elementary stream to be played, that is, the video stream, ATRAC audio stream, and subtitle stream determined to be played back in step S125.
  • Investigate number_of_DynamicInfo ( Figure 10), which represents the number of DynamicInfoOs ( Figure 13) to be described.
  • the video stream, ATRAC audio stream, and subtitle stream to be played back are elementary streams multiplexed in the clip stream file "00001.PS", and their number_of_Dynamidnfo is As described for “00001. CLP” in FIG. 26, all are 0.
  • the player control module 212 does not perform any particular processing for controlling the output attribute of the elementary stream to be played. .
  • step S126 After the processing of step S126, the process proceeds to step S127, where the player control module 212
  • the player control module 212 multiplexes the elementary stream to be played back with the content data supply module 213 to create a clip stream file "0". 0001.
  • the player control module 212 starts supplying the program stream stored in the clip stream file "00001.PS" in which the elementary stream to be reproduced is multiplexed to the buffer control module 215. Before starting, the buffer control module 215 is initialized.
  • the data head pointer stored in the data head pointer storage unit 231, the data write pointer stored in the data write pointer storage unit 232, and the video read pointer storage are stored.
  • the same value is assigned to the video read pointer stored in the unit 241, the audio read pointer stored in the audio read pointer storage unit 251, and the subtitle read pointer stored in the subtitle read pointer storage unit 262.
  • the data head pointer stored in the data head pointer storage unit 231 and the data write pointer stored in the data write pointer 232 are located at the same position in the buffer 215A of the knocker control module 215. Point. This indicates that valid data has been accumulated in the buffer 215A, and that the state has not yet been reached.
  • the player control module 212 supplies the buffer control module 215 with a stream_id as identification information for identifying (identifying) the elementary stream to be reproduced, and further, as necessary, a private_strea mjd. .
  • the video stream having the attribute of "video stream” is specified by the streamjd of OxEO, and the attribute of "audio stream” is specified.
  • ATRAC audio stream is identified by OxBD! /, Streamjd, and private_streamjd of 0x00, and the subtitle stream of the attribute of “subtitle stream” is stream jd of OxBD, and Specified by private_s treamjd which is 0x80.
  • the player control module 212 supplies these streamjd and private_streamjd to the buffer control module 215.
  • the video read function unit 233 outputs the streamjd from the player control module 212 as OxEO for the video stream. Is stored in the streamjd register 242. Also, the audio reading function unit 234 stores the streamjd of OxBD and the private_stream_id of 0x00 from the player control module 212 in the streamjd register 252 and the private_stream_id register 253, respectively. Further, the subtitle reading function unit 235 stores the stream-id of OxBD, the private-stream-id of 0x80, the streamjd register 263 and the private_stream_id register 264 from the player control module 212, respectively.
  • the audio reading function unit 234 stores the streamjd of OxBD and the private_stream_id of 0x00 from the player control module 212 in the streamjd register 252 and the private_stream_id register 253, respectively.
  • the subtitle reading function unit 235 stores the stream-id of OxBD, the private-stream-id of 0x80, the streamjd register 263
  • the player control module 212 stores the streamjd and private_stream_id of the elementary stream to be played back supplied to the buffer control module 215 for future processing.
  • the player control module 212 uses these streamjd and private_stream_id when a message requesting a stream switching described later occurs, and for specifying a stream that is currently being reproduced in mark processing described later.
  • the player control module 212 initializes the buffer control module 215 (Fig. 3) and further sets a subtitle read function flag of a value corresponding to the clip stream file in which the elementary stream to be reproduced is multiplexed. Is set in the subtitle reading function flag storage unit 261.
  • the subtitle reading function unit 235 functions. Therefore, a subtitle reading function flag having a value of 1 is set in the subtitle reading function flag storage unit 261. If the elementary stream to be played back is multiplexed and the subtitle stream is included in the clip stream file, the subtitle read function flag storage unit 261 stores a subtitle read function with a value of 0. The flag is set. In this case, the caption reading function unit 235 does not function (in particular, no processing is performed).
  • the player control module 212 has IN_time of 180,090 which is the IN_time of the first Playltem # 0 (FIG. 25) included in the first PlayList # 0 instructed to be reproduced by the script control module 211, Ding_1: ⁇ 6, 27,180,090 is given to the decoding control module 214.
  • IN_time is used to control the start of decoding of a clip reproduced by PlayltemO
  • OUT_time is used to control the end of decoding of the clip and control of Playltem switching, which will be described later.
  • the player control module 212 initializes a subtitle stream display method instruction to the graphics processing module 219. That is, the player control module 212 controls the graphics processing module 219 so that the display method of the subtitle stream is, for example, the default display method.
  • step S127 the process proceeds to step S128, in which the player control module 212 controls the content data supply module 213, whereby the content data supply module 213 uses the function of the operating system 201 to perform the elementary playback.
  • the content data supply module 213 specifies the clip stream file “00001.PS” in the “STREAM” directory under the “VIDEO” directory on the disk 101 (FIG. 4), and further determines the content in the clip stream file determined in step S122.
  • a file read request is issued to the operating system 201 by designating the 305 sector which is the playback start position, and the content data supply module 213 supplies the data read from the disc 101 to the buffer control module 215. To be specified.
  • the buffer control module 215 (Fig. 3) writes the program stream read from the disk 101 and supplied to the data write pointer storage unit 232 of the buffer 215A at the position indicated by the data write pointer, and writes the written data.
  • the data write pointer is incremented by the size of.
  • the content data supply module 213 reads data from the disk 101 if there is free space in the buffer 215A of the knocker control module 215, and stores the data in the buffer 215A of the knocker control module 215. It will be supplied and memorized. Therefore, it is assumed that sufficient data is always stored in the buffer 215A.
  • the reading of the data from the disk 101 is started, and the data is read.
  • the process proceeds from step S128 to S129, where the decode control module 214 controls the video decoder control module 216, the audio decoder control module 217, and the subtitle decoder control module 218, As a stage prior to the decoding operation, data reading from the buffer 215A is started.
  • the video decoder control module 216 requests data from the video reading function unit 233 of the buffer control module 215 (Fig. 3), and the buffer transferred from the buffer control module 215 in response to the request.
  • One video access unit stored in the 215A, PTS and DTS added to the video access unit (hereinafter referred to as time stamp as appropriate), and PES_packet () of private_stream_2 placed immediately before the point where decoding can be started ) (Hereinafter referred to as additional information as appropriate), au_ref_flag, AUJength, and the like.
  • the time stamp is passed from the video decoder control module 216 to the decode control module 214 each time the video decoder control module 216 obtains a video access unit.
  • the audio decoder control module 217 also requests data from the audio reading function unit 234 of the buffer control module 215 (Fig. 3), and stores the data in the buffer 215A passed from the buffer control module 215 in response to the request.
  • the other (ATRAC) audio access unit and the time stamp (PTS, DTS) added to the audio access unit are obtained.
  • the time stamp is passed from the audio decoder control module 217 to the decode control module 214 each time the audio decoder control module 217 obtains an audio access unit.
  • the caption decoder control module 218 requests data from the caption reading function unit 235 of the buffer control module 215 (Fig. 3), and sends the data to the buffer 215A passed from the buffer control module 215 in response to the request.
  • One stored subtitle access unit and the time stamp added to the subtitle access unit are obtained.
  • the time stamp is passed from the subtitle decoder control module 218 to the decode control module 214 each time the subtitle decoder control module 218 obtains a subtitle access unit.
  • no data is passed from the buffer control module 215 to the caption decoder control module 218.
  • step S129 where the data is transmitted. Is started.
  • the decoding control module 214 provides the IN_time of the first PlayItem # 0 included in PlayList # 0, which is given from the player control module 2 12 in step S127, 180,090, Based on the time stamps passed from the video decoder control module 216, the audio decoder control module 217, and the subtitle decoder control module 218 as described in step S129, the timing is shifted if necessary to ensure synchronization, and decoding is performed. The start is commanded to the video decoder control module 216, the audio decoder control module 217, and the subtitle decoder control module 218.
  • the video decoder control module 216 receives the instruction to start decoding from the decode control module 214, and receives the instruction from the video read function unit 233 of the buffer control module 215 (Fig. 3) in response to the instruction.
  • One video access unit is passed to a video decoder 116 (FIG. 1) for decoding. Further, the video decoder control module 216 supplies the video data obtained as a result of the decoding by the video decoder 116 to the graphics processing module 219.
  • the video decoder control module 216 sequentially decodes one video access unit obtained from the video read function unit 233 of the buffer control module 215 by the video decoder 116, and obtains a video obtained as a result of the decoding.
  • the data is supplied to the graphics processing module 219!
  • the audio decoder control module 217 also receives the instruction to start decoding from the decode control module 214, and in response to the instruction, also obtains the audio readout function 234 of the knocker control module 215 (Fig. 3).
  • One audio access unit is passed to the audio decoder 117 (FIG. 1) for decoding. Further, the audio decoder control module 217 supplies the audio data obtained as a result of the decoding by the audio decoder 117 to the audio output module 221.
  • the audio decoder control module 217 sequentially decodes one audio access unit obtained from the audio read function unit 234 of the buffer control module 215 by the audio decoder 117, and outputs audio data obtained as a result of the decoding. Then, supply it to the audio output module 221.
  • the subtitle decoder control module 218 receives the instruction to start decoding from the decode control module 214, and obtains from the subtitle reading function unit 235 of the buffer control module 215 (Fig. 3) in response to the instruction.
  • One subtitle access unit is decoded by subtitle decoding software contained therein, and subtitle data (subtitle image data) obtained as a result of the decoding is supplied to the graphics processing module 219.
  • the subtitle decoder control module 218 has a subtitle access unit obtained from the subtitle reading function unit 235 of the buffer control module 215, and has a subtitle access unit inside. Decode sequentially with the code software, and supply the subtitle data obtained as a result of the decoding to the Dallafix processing module 219!
  • step S130 the graphics processing module 219 transmits the video data supplied from the video decoder control module 216 and, if necessary, the subtitle decoder control module 218 as described above. Graphics processing is performed on the supplied subtitle data.
  • the graphics processing module 219 first performs subtitle processing for enlarging or reducing subtitle data from the subtitle decoder control module 218 in accordance with a display mode instruction from the player control module 212.
  • the graphics processing module 219 stores the caption data from the caption decoder control module 218 as it is.
  • the graphics processing module 219 adds the video data from the video decoder control module 216 to the subtitle data from the subtitle decoder control module 218 or the subtitle data after the subtitle processing, and The output video data in which the subtitle data is overlaid on the video data from 216 is obtained and supplied to the video output module 220.
  • the graphics processing module 219 receives an instruction to display information such as a menu, a message, a time code, a chapter, or an index number, for example, from the script control module 211 or the player control module 212. If so, the information is generated, overlaid on the output video data, and provided to the video output module 220.
  • step S132 the video output module 220 sequentially stores the output video data supplied from the graphics processing module 219 in the FIFO 220A as described in step S131, and stores the output video data in the FIFO 220A.
  • the output video data is sequentially output at a predetermined output rate.
  • the video output module 220 If there is not enough capacity to receive the output video data from the graphics processing module 219, a request is made to the graphics processing module 219 to stop accepting the output video data. Accordingly, the graphics processing module 219 stops the processing and requests the video decoder control module 216 and the subtitle decoder control module 218 to stop the processing. As a result, the video decoder control module 216 and the subtitle decoder control module 218 stop processing.
  • the video output module 220 requests the graphics processing module 219 to stop accepting the output video data
  • the output video data output from the FIFO 220A advances, and when the FIFO 220A has room, the output video data is output.
  • This request is transmitted from the graphics processing module 219 to the video decoder control module 216 and the subtitle decoder control module 218, similarly to the request to stop accepting the output video data.
  • the graphics processing module 219, and further, the video decoder control module 216 and the subtitle decoder control module 218 stop and restart the processing.
  • the audio output module 221 also sequentially stores the audio data supplied from the audio decoder control module 217 in the FIF0221A as described in step S130, and stores the audio data stored in the FIF0221A in advance. Outputs sequentially at the determined output rate (sampling frequency).
  • the audio output module 221 accepts audio data from the audio decoder control module 217 as long as the storage capacity (remaining capacity) of the FIF0221A has room, but stops accepting audio data if there is no room. To the audio decoder control module 217. As a result, the audio decoder control module 217 stops the processing.
  • the audio output module 221 After requesting the audio decoder control module 217 to stop accepting audio data, the audio output module 221 proceeds to output audio data from the FIF0221A, and when the FIF0221A has room, Is requested to the audio decoder control module 217. As a result, the audio decoder control module 217 stops and restarts the process. [0434] As described above, as data is output from the video output module 220 and the audio output module 221, the elementary stream is decoded.
  • the reproduction of the first PlayItem # 0 of the first PlayList # 0 in FIG. 25 starts, but according to PlayList # 0, the reproduction of the first PlayItem # 0 starts.
  • the playback of the second Playltem # l starts. That is, a Playltem transfer is performed in which the Playltem is transferred from PlayItem # 0 to PlayItem # l.
  • the decoding control module 214 (Fig. 2) During the playback of the first PlayItem # 0, the built-in clock unit 214A keeps checking the time when the playback is performed.
  • step S151 decoding interruption control is performed, and the reproduction of PlayItem # 0 ends.
  • the decode control module 214 operates the video decoder control module 216, the audio decoder control module 217, and the subtitle decoder control module 218 to stop the decoding operation. Further, the decode control module 214 controls the video output module 220 to continue outputting the output video data currently being output.
  • the decode control module 214 transmits a message to the effect that the reproduction of the first PlayItem # 0 has been completed to the player control module 212. [0442] "Start playback of PlayItem # l"
  • the player control module 212 recognizes that the first PlayList # 0 includes the first PlayItem # 0 and the second Playltem #l in step S105 in FIG.
  • the process proceeds to step S151 and step S152, and the reproduction of the second PlayItem # 1 is performed by the above-described first PlayItem # 1. Start as in 0.
  • the player control module 212 performs the EP_map for the second Playltem # l in the same manner as in step S122 of FIG.
  • One of RPN_EP_start described in () is determined as the playback start position.
  • the player control module 212 recognizes the MarkO belonging to the second Playltem # l as described in step S124 in FIG. 30 and performs processing as described in step S125 in FIG. Recognition of the number of elementary streams of each attribute multiplexed in the clip stream file “00002.PS” reproduced by Playltem # l, determination of the elementary stream to be reproduced (to be reproduced), and the like. Done.
  • the player control module 212 performs the same processing as in step S127 of FIG.
  • the player control module 212 determines the RPN_EP_start of EPjnapO determined as the reproduction start position and the file name of the clip stream file in which the elementary stream to be reproduced is multiplexed, that is, in this case, the second The file name of the clip stream file “00002.PS” corresponding to “00002. CLP” described in Clipjnformation_file_name of Playltem # 1 (FIG. 25) of the content data supply module 213 is provided.
  • the player control module 212 starts supplying the program stream stored in the clip stream file "00002.PS" in which the elementary stream to be reproduced is multiplexed to the buffer control module 215. Before starting, the buffer control module 215 is initialized.
  • the player control module 212 supplies the buffer control module 215 with a stream_id as identification information for identifying an elementary stream to be reproduced, and further, as necessary, a private_stream_id.
  • the video read function unit 233 stores, in the streamjd register 242, the stream jd from the player control module 212 for the video stream among the elementary streams to be reproduced. Let it. Also, the stream-id, private-stream-id, and stream-id registers 252 and private_stream_id registers 253 of the genius streams of the elementary streams to be reproduced from the audio reading function unit 234 , Respectively.
  • the subtitle reading function unit 235 Is supplied with the streamjd and private_stream_id of the subtitle stream of the elementary stream to be reproduced, and the subtitle reading function unit 235 outputs the stream— ⁇ and private—stream—id, and the stream— ⁇ lens star 2o3 and private.
  • the player control module 212 initializes the buffer control module 215 (Fig. 3), and further sets a subtitle read function flag of a value corresponding to the clip stream file in which the elementary stream to be reproduced is multiplexed. Is set in the subtitle reading function flag storage unit 261.
  • the subtitle read function unit 235 functions. Therefore, a subtitle reading function flag having a value of 1 is set in the subtitle reading function flag storage unit 261.
  • the player control module 212 transmits the second Playltem # l (see FIG. The IN_time of 25) and the OUT_time of 27,090,000 are given to the decode control module 214.
  • the player control module 212 initializes a subtitle stream display method instruction to the graphics processing module 219. That is, the player control module 212 controls the graphics processing module 219 so that the display method of the subtitle stream is the default display method.
  • the reproduction of the second Playltem # l is performed in the same manner as the reproduction of the first PlayItem # 0. Then, while the playback of the second Playltem # l is being performed, the decode control module 214 continues to check the time being counted by the built-in timer 214A. If the time becomes equal to 27,090,000 (FIG. 25), which is the OUT_time of the second Playltem # 1 given by the player control module 212 in step S152 (FIG. 31), decoding similar to that in step S151 is performed. The interruption control is performed, and the reproduction of Playltem # l ends.
  • the decode control module 214 (Fig. 2) measures the time by the timer unit 214A together with a message indicating that one second has elapsed in step S171.
  • the current time is supplied to the player control module 212, and the process proceeds to step S172.
  • the player control module 212 receives the message from the decode control module 214 and the current time, converts the current time into a time code, and proceeds to step S173.
  • the player control module 212 controls the graphics processing module 219 to display the time code obtained in step S172, and returns to step S171.
  • the time code is updated every second.
  • the time code update interval is not limited to one second.
  • the elementary stream to be reproduced is converted into a plurality of elementary streams having the same attribute.
  • Stream switching can be performed to switch from one of the elementary streams to the other.
  • the stream switching request is issued, for example, when the stream switching instruction is described as a script program in the "SCRIPT.DAT" file (Fig. 4), the script control module 211 executes the script program. Is given to the player control module 212 by operating the remote controller.
  • the script control module 211 executes a script program in which a stream switching instruction is described, the script control module 211 supplies a stream switching request message to the player control module 212.
  • the input interface 115 supplies a stream switching request message to the player control module 212.
  • step S191 the player control module 212 checks the number of subtitle streams recognized when the playback target elementary stream is determined in step S125 in FIG.
  • the process proceeds to steps S192 to S194, and the subtitle stream to be reproduced is switched from the currently reproduced subtitle stream to another subtitle stream.
  • step S192 the player control module 212 specifies the currently reproduced subtitle stream on the clip information file. Specifically, for example, the stream jd multiplexed with the clip stream file “00002.PS” by the second Playltem # l constituting the first PlayList # 0 described in FIG. Assuming that a subtitle stream with a private_stream_id of 0x80 is being played back in OxBD, in step S192, the currently playing subtitle stream is divided into two subtitle streams multiplexed into a clip stream file "00002.PS". Among them, stream # 2, which is the third subtitle stream, is specified in the clip information file “00002.CLP” in FIG.
  • step S193 the player control module 212 recognizes (specifies) the next subtitle stream in the clip information file of the subtitle stream specified in step S192 as the subtitle stream to be reproduced next.
  • the next subtitle stream after the third subtitle stream stream # 2 is the fourth subtitle stream stream # 3.
  • First subtitle stream stream # 3 Power Recognized as the next subtitle stream to be played.
  • the currently reproduced subtitle stream is the fourth of the two subtitle streams multiplexed to the clip stream file "00002.PS" on the clip information file "00002. CLP" in FIG. If it is specified that the stream is a stream # 3 which is a subtitle stream of, for example, the third subtitle stream stream # 2 is recognized as a subtitle stream to be reproduced next.
  • step S194 the player control module 212 proceeds to step S193.
  • the streamjd and private_streamjd of the recognized subtitle stream to be reproduced next are provided to the subtitle reading function unit 235 of the buffer control module 215 (FIG. 3), and the streamjd and private_stream_id are supplied to the buffer 215A of the subtitle access unit from the next time. Instruct to use.
  • the streamjd and private_stream_id provided from the player control module 212 in step S194 are newly set in the stream_id register 263 and private_stream_id register 264, respectively.
  • subsequent reading from the buffer 215A is performed for the subtitle access unit specified by the streamjd newly set in the streamjd register 263 and the private_stream_id register 264, respectively.
  • the subtitle stream to be reproduced is switched from the currently reproduced subtitle stream to another subtitle stream.
  • the buffer control module 215 has five pointers for reading and writing data from / to the buffer 215A.
  • the buffer control module 215 includes a data head pointer stored in the data head pointer storage unit 231, a data write pointer stored in the data write pointer storage unit 232, and a video write pointer. It has a video read pointer stored in the read pointer storage unit 241, an audio read pointer stored in the audio read pointer storage unit 251, and a subtitle read pointer stored in the subtitle read pointer storage unit 262.
  • the data head pointer stored in the data head pointer storage unit 231 is the oldest data remaining in the buffer 215A (the data that needs to be read and has not been read yet! , Data).
  • the data write pointer stored in the data write pointer storage unit 232 indicates the position of writing data to the buffer 215A, and this position is the position where the newest data is written in the buffer 215A.
  • the video read pointer stored in the video read pointer storage unit 241 indicates the position of the video stream from which the buffer 215A is also read.
  • the audio read pointer stored in the audio read pointer storage unit 251 indicates the position of the audio stream from which the buffer 215A also reads
  • the subtitle read pointer stored in the subtitle read pointer storage unit 262 is read from the knocker 215A. Indicates the position of the subtitle stream.
  • the data head pointer, the data write pointer, the video read pointer, the audio read pointer, and the subtitle read pointer all move clockwise in the buffer 215A.
  • the data head pointer points to the position of the oldest data among the video read pointer, the audio read pointer, and the subtitle read pointer. It shall always be updated to point to the same location as the one.
  • the audio read pointer points to the position of the oldest data
  • the data start pointer indicates the audio read pointer. Matches.
  • the data write pointer reads new data from the disk 101.
  • the data is updated clockwise so as to point to a position immediately after the new data written.
  • the video read pointer, the audio read pointer, or the subtitle read pointer is respectively increased by an amount corresponding to the read amount. Is updated clockwise.
  • the amount corresponding to the read amount is included between the portion corresponding to the actually read video, audio, and subtitle data and the read data, and the skip is included in the read. Done, combined with the data part of the other stream
  • the data head pointer is the oldest of the video read pointer, audio read pointer, or subtitle read pointer. It is updated to point to the same location that points to the data location.
  • the buffer control module 215 controls writing of data to the buffer 215A so that the data write pointer does not overtake the data head pointer.
  • the buffer control module 215 determines the position of the buffer 215A indicated by the data force data write pointer read from the disk 101. And the data write pointer is updated. On the other hand, when the data write pointer is about to overtake the data head pointer, the buffer control module 215 requests the content data supply module 213 to stop (interrupt) the reading of data from the disk 101, and furthermore, Then, the writing of data to the buffer 215A is stopped. As a result, overflow of the buffer 215A can be prevented.
  • writing of data read from the disk 101 to the buffer 215A is controlled only by the positional relationship between the two pointers, the data head pointer and the data write pointer.
  • the buffer control module 215 when reading data from the buffer 215A, the buffer control module 215 does not overtake the video read pointer, the audio read pointer, and the subtitle read pointer, and thus the data head pointer data write pointer. Thus, the reading of data from the buffer 215A is controlled.
  • the buffer control module 215 causes the video decoder control module 216, the audio decoder control module 217, or the subtitle decoder.
  • the required power from the control module 218 is, for example, frozen and waited until sufficient data is prepared. Thus, underflow of the buffer 215A can be prevented.
  • the range from the position indicated by the data head pointer to the position indicated by the data write pointer in the clockwise direction is indicated by the buffer 215A (the shaded portions in Figs. 34 and 35).
  • the data to be supplied to the video decoder control module 216, the audio decoder control module 217, and the subtitle decoder control module 218 are stored therein, and the video read pointer, the audio read pointer, and the A subtitle read pointer exists.
  • the data head pointer is updated so as to point to the position of the oldest data among the positions indicated by the video read pointer, the audio read pointer, or the subtitle read pointer.
  • the data head pointer can be updated, for example, to point to the position of data that is a predetermined time (for example, 1 second) from the position of the oldest data. is there.
  • the video read pointer, the audio read pointer, and the subtitle read pointer among the video read pointer, the audio read pointer, and the subtitle read pointer often indicate the oldest data position.
  • the data head pointer is updated from the oldest data position pointed to by the video read pointer or audio read pointer to, for example, one second worth of past data position, as shown in FIG.
  • the position of the oldest data pointed to by the video read pointer or the audio read pointer can be left in the buffer 215A for the past one second.
  • the audio read pointer points to the position of the oldest data
  • the data head pointer points to the position of the data one second past the position.
  • the responsiveness of the disk device can be improved by updating the data head pointer to point to the position of the data one second in the past.
  • the data start pointer is updated so as to point to the position of the data one second earlier than the position of the oldest data pointed by the audio read pointer.
  • step S127 of FIG. 30 playback of the clip stream file starts.
  • the data start pointer, the data write pointer, the video read pointer, the audio read pointer, and the subtitle read pointer are all initialized to point to the same position on the buffer 215A. Be converted to
  • the video read function unit 233 analyzes the program stream stored in the buffer 215A, and responds to a request from the video decoder control module 216. , from the stored program string over arm in buffer 215 a, it extracts the video stream (video access unit) (separation) and reads and supplies the bi Dodekoda control module 2 16.
  • the audio reading function unit 234 also performs syntax analysis of the program stream stored in the buffer 215A, and responds to a request from the audio decoder control module 217 from the program stream stored in the buffer 215A.
  • the audio stream (audio access unit) is extracted and read, and supplied to the audio decoder control module 217.
  • the caption reading function unit 235 also analyzes the syntax of the program stream stored in the buffer 215A, and, in response to a request from the caption decoder control module 218, converts the program stream stored in the Access unit) is extracted and read out and supplied to the subtitle decoder control module 218.
  • the elementary stream multiplexed with the program stream stored in the clip stream file "00001.PS" is an elementary stream to be played back
  • the decoding start described in the EP_map () (FIG. 27) of the clip stream file “00001.PS” can be started in step S122 in FIG. From the point information, 305 sectors are determined as the playback start position. Further, in step S128 in FIG. 30, 305 sectors as the playback start position are designated, and the clip stream file “00001. Reading of the program stream stored in PS "is required.
  • the information on the decoding start possible point described in EPjnapO indicates the position of the PES_packetO of private_stream_2 arranged immediately before the actual decoding start possible point.
  • step S211 when the PES_packetO of private_stream_2 is found in step S211, the video reading function unit 233 proceeds to step S212, where the PE_packetO of the PES_packetO of the private_stream_2 is a private_stream2_PE3 ⁇ 4—payloadO (
  • the video_stream_id is extracted according to FIG. 23, and it is determined whether or not the video_stream_id matches the streamjd of the video stream to be reproduced stored in the streamjd register 242 (FIG. 3) in step S127 of FIG. 30. judge.
  • step S212 when it is determined that the video_stream amjd described in private_stream2_PES_payloadO does not match the streamjd stored in the streamjd register 242, that is, the private_stream_2 found in the immediately previous step S211 If the PES_packet () of the program stream is not located at the decoding start point of the video stream to be played back, the process returns to step S211 and returns to another private_str in the program stream stored in the buffer 215A. The search for PES_packetO of eam_2 is performed, and the same processing is repeated thereafter.
  • step S212 when it is determined that the value matches the streamjd described in private_stream2_PES_payload () and stored in the video_streamjd force stream jd register 242, that is, the stream If the PES_packet () power of the private_stream_2 is set at the decoding start point of the video stream to be reproduced, the process proceeds to step S213, and the video reading function unit 233 sets the private_stream2—PES of the PES_packetO of the private_stream_2. — Au— informationO described in payloadO is read from the buffer 215A, stored in the aujnformationO register 243 (FIG. 3), and the process proceeds to step S214.
  • step S214 the video read function unit 233 checks the PES-packetO (video-stream-id (Fig. 23)) of the private-stream-2 found in the immediately preceding step S211.
  • the video read pointer stored in the video read pointer storage unit 231 is updated by the size of PES_packet0 of private_stream_2 that matches the streamjd stored in (FIG. 3).
  • step S214 the video read pointer is set to the video read pointer. It is updated to point to the actual decoding start point of the stream.
  • step S215 the video readout function unit 233 determines whether or not a request for data has been received from the video decoder control module 216. The same processing is repeated.
  • step S215 If it is determined in step S215 that the data request has been received from the video decoder control module 216, the process proceeds to step S216, where the video reading function unit 233 determines the position of the buffer 215A indicated by the video reading pointer. While parsing the powerful program stream, the data of the number of bytes described in the AUJength of aujnformation () stored in the aujnformationO register 243, that is, one video access unit, is read from the Nofa 215A, and the video is read. One video access that feeds the decoder readout module to the decoder control module 216 and also reads out the video read pointer Update by the size of the unit.
  • aujnformationO describes number_of_access_unit indicating the number of video access units (pictures) included from PES_packetO of private_stream_2 including it to PES_packetO of the next private_stream_2. Te ru.
  • aujnformationO has 7 numbers of of access-units, ti; ⁇ , AU-length, as described in Fig. 24, from PES_packet0 of private_stream_2 containing Since the size of each video access unit of number_of_access_unit included between private_stream_2 and PES_packet0 is shown, the video reading function unit 233 uses the AUJength to access the video stream without parsing the video stream. Knitting can be cut out.
  • the program stream stored in the clip stream file is a PES_packet of private_stream_2 in which AUJ ength indicating the size of the video access unit is described immediately before each of one or more actual decoding start points in the video stream of the video access unit.
  • the video read function 233 is based on the AU_length described in PES_packet0 of the private_stream_2, and the video access cut (from the buffer 215A that does not perform the parsing of the video stream). Read out the video stream of each unit) and the video decoder control module 21 6 can be supplied.
  • step S216 when supplying the video access unit to the video decoder control module 216 in step S216, the video reading function unit 233 is described in aujnformationO as information on the video access unit.
  • the pic_struct_copy, au_ref_flag, AUJength, and the time stamp (PTS, DTS) attached to each video access unit are also supplied to the video decoder control module 216.
  • step S216 after one video access unit is read from the buffer 215A and supplied to the video decoder control module 216, the process proceeds to step S217, where the video read function unit 233 stores the video access unit in the aujnformationO register 243. It is determined whether or not the number of access units represented by number_of_access_unit of aujnformationO (Fig. 24) has been processed.
  • step S217 if the number of access units represented by number_of_access_unit is still processed, and it is determined that the access unit is not available, that is, the number of access units represented by number_of_access_unit is still buffered. If it is not read from 215A and not supplied to the video decoder control module 216, the process returns to step S215, and the same processing is repeated thereafter.
  • step S217 if it is determined that the number of access units represented by number_of_access_unit has been processed, that is, the number of access units represented by number_of_access_unit is read from the buffer 215A. If the PES-packetO is supplied to the video decoder control module 216, the process returns to step S211 to search for the next private-stream-2 PES-packetO, and thereafter the same processing is repeated.
  • step S230 the audio reading function unit 234 outputs the PES_packet () of the stream_d private_stream_l of the audio stream to be reproduced, which is stored in the streamjd register 252 (FIG. 3) in step S127 of FIG. It is determined whether or not it is represented.
  • step S230 when it is determined that the PES_packet0 of the streamjd force private.stream_l stored in the streamjd register 252 is not represented, that is, the streamjd stored in the streamjd register 252 is, as described with reference to FIG.
  • the audio stream is assigned to an audio stream encoded according to the MPEG standard
  • the process proceeds to step S231, and the audio reading function unit 234 causes the program stream stored in the Search for the synchronization code that indicates the beginning of the audio frame specified by MPEG Audio. Since the position of the synchronization code is at the head of the audio frame, the audio read function unit 234 updates the audio read pointer to indicate the position of the head of the audio frame, and proceeds to step S231.
  • step S232 the audio reading function unit 234 determines, in the program stream stored in the buffer 215A, the PES_packet () that matches the streamjd stored in the stream jd register 252, and the position indicated by the audio reading pointer. Search and find out, and proceed to step S233.
  • step S233 the audio read function unit 234 determines the audio read pointer stored in the audio read pointer storage unit 251 in the PES_packet_data_byte (Figs. 16 to 18) of the PES_packet () found in the immediately preceding step S232. Point to the beginning. [Change ff and go to step S237.
  • step S237 the audio read function unit 234 determines whether or not a data request has been received from the audio decoder control module 217. If it is determined that there is no data request, the process returns to step S237 and repeats the same processing.
  • step S237 If it is determined in step S237 that the data request has been received from the audio decoder control module 217, the process proceeds to step S238, where the audio reading function unit 234 causes the buffer 215A to which the audio reading pointer points. While parsing the program stream from the position, one audio access unit of known fixed length is read from the buffer 215A, and the time stamp (PTS, DTS) attached to the audio access unit is read out. Supply to audio decoder control module 217.
  • the audio read function unit 234 updates the audio read pointer by the size of one audio access unit read from the buffer 215A, and returns to step S237. Repeated.
  • the read function unit 234 searches for and finds PES_packetO of private_stream_l in the program stream stored in the buffer 215A. That is, the audio reading function unit 234 searches for and finds 1 ⁇ 3_ & 011 ⁇ 21: 0 where streamjd is 101111018.
  • step S234 if the PE_packet0 of private_stream_l is found, the audio reading function unit 234 proceeds to step S235. withdrawn ⁇ Ru private_stream_id, its private_streamjd is stored in the pri Vate_stream_id register 2 53 at step S 127 of FIG. 30 (FIG. 3), or a semi-IJ constant if it matches the p Rivate_stream_id the playback target audio stream.
  • step S235 it is determined that the private_stream_id described in private_streaml_PES_payloadO and the private-stream-id that the private-stream-id considered by the register 25d do not match the private-stream-id.
  • the process returns to step S234, and the PES_packetO of another private_stream_l in the program stream stored in the buffer 215A. , And the same processing is repeated thereafter.
  • step S235 it is determined that the private_streaml_PES_payload () describes a private_stream-id that is considered in the private_stream-id »and private-stream-id lender 25d described in private_streaml_PES_payload (). If it is performed, that is, if the PES_packet () power of the private_stream_1 found in the previous step S234 is the audio stream to be reproduced, the process proceeds to step S236, and the audio reading function unit 234 outputs the private_streaml_PES_payloadO of the PES_packetO of the private_stream_l.
  • the AU_locator described in (FIG. 21) is read from the knowler 215A, and the position immediately after the AU_locator and the value represented by the AU_locator are added to determine the head position of the audio access unit.
  • the AU_locator is based on the position immediately after the AU_locator as a reference, and the audio access unit stored in private-payloadO of private-streaml- PES-payloadO Access unit), the audio access unit is added by adding the value indicated by the AlUocator to the position immediately after AU_locator.
  • the (absolute) starting position of the knit can be determined.
  • step S236 the audio read function unit 234 further updates the audio read pointer stored in the audio read pointer storage unit 251 so as to indicate the head position of the audio access unit obtained as described above. Then, the process proceeds to step S237.
  • step S237 the audio reading function unit 234 determines whether or not a data request has been received from the audio decoder control module 217, and if not, returns to step S237 and repeats the same processing.
  • step S237 If it is determined in step S237 that the data has been requested by the audio decoder control module 217, the process proceeds to step S238, where the audio read function unit 234 sets the buffer pointed to by the audio read pointer. While parsing the program stream from the position of 215A, one audio access unit of known fixed length is read from buffer 215A and the audio decoder control module is read, along with the time stamp attached to the audio access unit. Supply 217.
  • the audio read function unit 234 updates the audio read pointer by the size of one audio access unit read from the buffer 215A, and returns to step S237. Repeated.
  • step S251 the subtitle reading function unit 235 determines the subtitle reading function flag stored in the subtitle reading function flag storage unit 261 in step S127 of FIG.
  • step S251 when it is determined that the subtitle read function flag is ⁇ , that is, for example, the subtitle stream is not included in the clip stream file in which the elementary stream to be reproduced is multiplexed, and When 0 is set in the subtitle read function flag storage unit 261 in step S127 of 30, the subtitle read function unit 235 does not perform any processing.
  • the subtitle read function flag is 1, that is, for example, the subtitle stream is included in the clip stream file in which the elementary stream to be reproduced is multiplexed.
  • step S252 the subtitle reading function unit 235 stores the subtitle in the streamjd register 263 (FIG. 3).
  • the PES_packetO matching the streamjd of the subtitle stream to be reproduced is searched for the program stream power stored in the buffer 215A.
  • the streamjd register 263 (Fig. 3) stores the streamjd of the subtitle stream to be reproduced.
  • the streamjd of the subtitle stream is described in Fig. 20.
  • step S252 PES_packetO of private_stream_l in the program stream stored in the buffer 215A is searched.
  • step S252 a search for the PES_packetO of the private_stream_l is performed, and if PES_packet () of the private_stream_l is found, the process proceeds to step S253, where the subtitle reading function unit 235 sets the PE3 ⁇ 4 of the private_stream-1 to —PES of packetO—packet—data—byte private—stream_ml_PES_payloadO (FIG. 21) is extracted and the private_stream_id is stored in private_stream_id register 264 (FIG. 3) in step S127 of FIG. The subtitle stream to be reproduced matches the private_stream_id.
  • step S253 if it is determined that the private_st_reamjd and private_stream_id described in private_streaml_PES_payloadO do not match the private_stream_id considered by the register 264, that is, it is found in the previous step S252. If the PES_packetO of private_stream_l is not the subtitle stream to be played back, return to step S252 to search for the PES_packetO of another private_stream_l in the program stream stored in the buffer 215A, and thereafter, the same processing is repeated. .
  • step S253 if the private_streaml_id and private_streaml_id described in private_streaml_PES_payload () match the private_stream-id If it is determined, that is, the private_stream_l If PES_packetO is the subtitle stream to be played, the process proceeds to step S254, and the subtitle read function unit 235 reads the AU_locator described in private_streaml_PES_payloadO (FIG. 21) of PES_packetO of the private_stream_l from the buffer 215A, and reads the AUJocator.
  • the head position of the subtitle access unit is obtained by calculating the position immediately after the subtitle and the value represented by the AU_locator.
  • the AU_locator indicates the head position of the subtitle access unit (or audio access unit) stored in private_payload0 of private_streaml_PES_payloadO with reference to the position immediately after the AU_locator.
  • the AlUocator By adding the value indicated by the AlUocator to the position immediately after the, the (absolute) head position of the subtitle access unit can be obtained.
  • step S254 the subtitle read function unit 235 further stores the subtitle read pointer stored in the subtitle read pointer storage unit 262 so as to point to the head position of the subtitle access unit obtained as described above. Update and proceed to step S255.
  • step S255 the subtitle reading function unit 235 determines whether or not there is a request for data from the subtitle decoder control module 218. If not, the process returns to step S255 and the same processing is performed. repeat.
  • step S255 when it is determined from the subtitle decoder control module 218 that the request for data has been made, the process proceeds to step S256, where the subtitle reading function unit 235 sets the buffer pointed to by the subtitle reading pointer.
  • the subtitle access unit of the size described at the head of the subtitle access unit is read from the buffer 215A, and the time stamp added to the subtitle access unit is read.
  • the data is supplied to the subtitle decoder control module 218. That is, the size of the subtitle access unit is described at the beginning of the subtitle access unit, as described in FIG. 2, and the subtitle read function unit 235 points data of the size to the subtitle read pointer.
  • the subtitle access unit, which is the read data is also supplied to the subtitle decoder control module 218 together with the time stamp attached to the subtitle access unit.
  • the subtitle reading function unit 235 reads one subtitle file read from the Knofer 215A.
  • the subtitle read pointer is updated by the size of the access unit, the process returns to step S255, and the same processing is repeated thereafter.
  • the decode control module 214 starts the decoding by shifting the timing if necessary to ensure synchronization, and starts the decoding of the video decoder control module 216 and the audio decoder control module 217. For example, depending on the progress of the decoding process of the video decoder 116 and the audio decoder 117, the video data output and the video data are output in synchronization with the subtitle decoder control module 218. The output of audio data as power data to be output may be shifted.
  • the decode control module 214 corrects the difference between the output of the video data and the output of the audio data to be output in synchronization with the video data, and synchronizes the video data with the audio data. A resynchronization process is performed to output the data.
  • step S271 the decode control module 214 checks the time stamp of the video access unit from the video decoder control module 216 and the time stamp of the audio access unit from the audio control module 217. It is determined whether or not the deviation from is large.
  • Supply module 214 each time the audio control module 217 obtains an audio access unit from the buffer control module 215, it supplies the time stamp of the audio access unit to the decode control module 214.
  • step S271 the decode control module 214 sends the video decoder control module
  • the time stamps supplied from each of the audio control module 217 and the audio control module 217 at the same timing are compared, and the time stamps are greatly shifted. Is determined.
  • step S271 it is determined that the difference between the time stamp of the video access unit from the video decoder control module 216 and the time stamp of the audio access unit from the audio control module 217 is not large. That is, the difference between the time stamp of the video access unit and the time stamp of the audio access unit is within a range in which it can be considered that a predetermined synchronization is obtained.For example, 2 video frames ( If it is about 66 milliseconds), the process returns to step S271, and the determination (monitoring) of the deviation between the time stamps is continued.
  • step S271 it is determined that the difference between the time stamp of the video access unit from the video decoder control module 216 and the time stamp of the audio access unit from the audio control module 217 is large. In other words, if the difference between the time stamp of the video access unit and the time stamp of the audio access unit is out of the range in which it can be considered that a predetermined synchronization is obtained, step S272
  • the decode control module 214 compares the time stamp of the video access unit from the video decoder control module 216 with the time stamp of the audio access unit from the audio control module 217 to output the video data. (Decode) Determines which has been delayed out of the output of Iodeta.
  • step S272 If it is determined in step S272 that the output of the video data is later than the output of the audio data, the process proceeds to step S273, and the decoding control module 214 determines that one video access unit is In order to proceed with the processing, an instruction to the video decoder control module 216 not to decode and output (display) the video access unit, that is, an instruction to skip the processing of the video access unit, is output. Proceed to step S274.
  • step S274 the video decoder control module 216 receives the skip instruction from the decode control module 214, and responds to the skip instruction by using the buffer control module.
  • aujnformationO (Fig. 24) allocated to private-stream2- PES-payloadO of private-stream-2 PES-packetO (Fig. 23) includes au_ref_flag as information on an access unit.
  • the buffer control module 215 supplies the video access unit and the au ref flag of the video access unit to the video decoder control module 216. .
  • step S274 the au ref flag of the access unit supplied together with the access unit is checked in this way.
  • step S275 the video decoder control module 216 determines, based on the result of the detection of the au_ref_flag of the video access unit supplied from the buffer control module 215, that video access unit has another picture access unit. It is determined whether or not the image is a non-reference image that is not referred to when decoding.
  • au_ref_flag of the video access unit indicates whether or not the access unit is a reference image, and is 1 when the access unit is a reference image, and is not a reference image. In this case, that is, if the image is a non-reference image, it is set to 0.
  • step S275 when it is determined that the video access unit supplied from the buffer control module 215 is not a (non-reference image) video access unit, that is, the video access unit supplied from the buffer control module 215 If the unit is a reference image, the process proceeds to step S276, where the video decoder control module 216 causes the video access unit to process the video access unit as usual, and the next video access unit sets the buffer control module 215 Then, the process returns to step S274.
  • step S275 If it is determined in step S275 that the video access unit supplied from the buffer control module 215 is a non-reference image, the process proceeds to step S277, and the video decoder control module 216 The process by the video decoder 116 is skipped, and the process returns to step S271 after waiting for the next video access unit to be supplied from the buffer control module 215.
  • step S277 By skipping the processing of the video access unit, the processing power of the video access unit is advanced by almost one video access unit (processing time is shortened). As a result, the output of the video data which has been delayed from the output of the audio data is hastened.
  • step S272 when it is determined in step S272 that the output of the video data is not behind the output of the audio data, that is, the output of the audio data is behind the output of the video data Proceeding to step S278, the decode control module 214 instructs the video decoder control module 216 to wait for the video access unit to process the video data corresponding to the V or V! An instruction to output the data repeatedly is output, and the process proceeds to step S279.
  • step S279 the video decoder control module 216 receives the instruction for repeated output from the decode control module 214, and in accordance with the instruction for repeated output, is now decoded by the video decoder 116!
  • the video data corresponding to the video access unit is repeatedly output to the graphics processing module 219, and the process returns to step S271 after waiting for the next video access unit to be supplied from the buffer control module 215.
  • the decode control module 214 determines whether or not the output of the video data is behind the output of the audio data, and determines whether or not the output of the video data is behind the output of the audio data. In this case, the video decoder control module 216 is instructed to skip the processing of one access unit. Then, the video decoder control module 216 determines whether the access unit is a reference image or a non-reference image based on the au_ref_flag of the access unit specified to be skipped. Then, it causes the video decoder 116 to skip the processing of the access unit instructed to be skipped. Therefore, it is possible to easily synchronize the output of the video data with the output of the audio data.
  • a video access unit is provided separately from PES_packet () (Figs. 16 to 18) arranged in PES_packet_data_byte.
  • Au_ref_flag that indicates whether the image is a force or a non-reference image is described. Then, the au_ref_flag is supplied from the buffer control module 215 to the video decoder control module 216 together with the corresponding video access unit.
  • the video decoder control module 216 can, at little cost, determine whether the video access unit is a reference image or a non-reference image. Can be recognized.
  • the decode control module 214 constantly checks the current time measured by the built-in clock unit 214A. In step S301, the current time is described in the PlayListMarkO (Fig. 7)! Judge whether or not it matches the mark_time_stamp of any MarkO The
  • step S124 of FIG. 30 when trying to reproduce the first PlayItem # 0 of the first PlayList # 0 shown in FIG. Recognizes that the first to fourth of the seven MarkOs included in the PlayListMarkO shown above belong to the first PlayItem # 0 of PlayList # 0, and recognizes the four MarkOs.
  • the mark_time_stamp of ⁇ 180,090 ⁇ , ⁇ 5,580,090 ⁇ , ⁇ 10,980,090 ⁇ , ⁇ 16,380,090 ⁇ is passed to the decode control module 214 along with the fact that the attribute of the time represented by the mark_time_stamp is “mark processing”. I have.
  • step S301 in the decode control module 214, the current time matches any one of the times (mark_time_stamp) of the attribute of the "mark processing" supplied from the player control module 212 as described above. Is determined.
  • step S301 if it is determined that the current time does not match any of the times of the “mark processing” attribute, the process returns to step S301, and the same processing is repeated.
  • step S301 when it is determined that the current time matches any one of the times of the attribute of "mark processing", the decode control module 214 determines that the current time is of the attribute of "mark processing". The message indicating that the time has come and the time of the attribute of “mark processing” that matches the current time are supplied to the player control module 212, and the process proceeds to step S302.
  • step S302 the player control module 212 generates a message indicating that the current time has become the time of the attribute of "mark processing", and the time (mark_time_stamp) of the attribute of "mark processing” that matches the current time. Is received from the decode control module 214, and MarkO whose mark_time_stamp matches the current time is recognized as MarkO to be subjected to mark processing (hereinafter, appropriately referred to as mark to be processed).
  • the player control module 212 recognizes the PlayltemO of the PlayListO currently being played, and the PlayListO and the PlayltemO and the attribute of the "mark processing" from the decode control module 214 that match the current time.
  • Time hereafter, mark time, etc., as appropriate
  • power hereafter, mark time, etc., as appropriate
  • PlayListMarkO Fig. 7
  • the mark to be processed is recognized by referring to the mark.
  • the player control module 212 thereby determines the mark time It is recognized that the mark_time_stamp is one of the four MarkOs of the first to fourth of the seven MarkOs included in the PlayListMarkO shown in the upper part of FIG. 28.
  • the player control module 212 determines whether the mark time is from the first to the fourth included in the PlayListMarkO shown in the upper part of FIG. Of the four Marks (), the fourth Mark0 whose mark_time_stamp matches the mark time of 16,380,090 is recognized as the processing target mark.
  • the player control module 212 Upon recognizing the processing target mark as described above, the player control module 212 proceeds from step S302 to step S303, and in the processing target mark, entry_ES_stream_id and entry_ES_private_stream_id (Fig. 7) for specifying an elementary stream are changed. The written power is determined.
  • step S303 when it is determined that entry_ES_stream_id and entry_ES_private_stream_id (Fig. 7) for specifying an elementary stream are described in the mark to be processed, that is, the entry_ES_stream_id and entry_ES_private_stream_id are both 0x00.
  • step S304 is skipped and the process proceeds to step S305, and thereafter, processing corresponding to the processing target mark is performed.
  • step S303 when it is determined that entry_ES_stream_id and entry_ES_private_stream_id (Fig. 7) for specifying an elementary stream are described in the processing target mark, the process proceeds to step S304, and the player control module 212 The elementary stream being played back, its entry_ES_stream_id, and further, if necessary, determine whether or not the elementary stream specified by entry_ES_private_streammjd is included.
  • step S304 when it is determined that the elementary stream being reproduced does not include the elementary stream specified by the entry_ES_stream_id and entry_ES_private_stream_id of the processing target mark, the process returns to step S301. That is, entry_E of the mark to be processed If the elementary stream specified by S_stream_id and entry_ES_private_stream_id has not been played, the processing target mark is ignored.
  • step S304 when it is determined in step S304 that the elementary stream being played back includes the elementary list stream specified by the entry_ES_stream_id and entry_ES_private_stream_id of the processing target mark, that is, the entry_ES_stream_id of the processing target mark If the elementary stream specified by the entry_ES_private_stream_id is being played, the processing target mark is determined to be valid, and the process proceeds to step S305. Thereafter, processing according to the processing target mark is performed.
  • step S305 the player control module 212 determines the mark to be processed by referring to the mark_type of the mark to be processed (FIG. 7).
  • step S305 when it is determined that the mark to be processed is a chapter mark or an index mark, that is, when the mark_type of the mark to be processed is 'Chapter' or 'Inde x', the process proceeds to step S306.
  • the player control module 212 instructs the graphics processing module 219 to update the display of the number of the chapter or index to the number of the chapter or index indicated by the chapter mark or index mark that is the processing target mark, and proceeds to step S301.
  • step S305 when it is determined that the processing target mark is an event mark, that is, when the markjpe of the processing target mark is "Event”, the process proceeds to step S307, and the player control module 212 notifies (supplies) the event message indicating the occurrence of the event and the mark_data of the mark to be processed to the script control module 211, and proceeds to step S308.
  • step S308 the script control module 211 receives the event message and the mark_data from the player control module 212, sets the event message as an interrupt request, and executes a series of operations described in the "SCRIPT.DATD file in advance. The process is performed using mark_data as an argument, and the process returns to step S301.
  • the script control module 211 performs a process corresponding to mark_data.
  • the script control module 211 receives the event message corresponding to the second MarkO and the event message corresponding to the third MarkO, and in any case, receives the event message.
  • the same event handler interrupt processing routine
  • the script control module 211 controls the graphics processing module 219 to display the first type of icon. Also, for example, when mark_data is 2, the script processing module 211 controls the Dallax processing module 219 to display the second type of icon.
  • mark_data is not limited to 1 or 2
  • the processing performed in response to mark_data is not limited to the display of simple icons as described above.
  • the script control module 211 controls the graphics processing module 219 to change the display of the first type of icon from mark_data to 2 Is performed at a brightness corresponding to the value obtained by subtracting (a numerical value from 1 to 16). Also, for example, if mark_data is a value in the range of 19 to 34, the script control module 211 controls the graphics processing module 219 to change the display of the second type of icon to 18 from mark_data. The brightness is adjusted according to the subtracted value (1 to 16).
  • a controller operated by a user is connected to the input interface 115 (Fig. 1), and the controller power is a DC (Direct Current) motor with an eccentric weight attached to its axis.
  • the vibration motor When a built-in vibration motor that generates vibration when the motor is operated is used, when mark_data is a value in the range of 35 to 42, the vibration motor is replaced by a value obtained by subtracting 34 from mark_data (1 to 8). Can be operated only for the operation time according to
  • mark_data is a numerical value, and its usage and algorithm can be described by a script program executed by the script control module 211. Therefore, mark_data is used by the disc 101 manufacturer or disc It can be used by rules set independently by a content pronoider or the like that provides the data recorded in step 101.
  • the mark to be processed is recognized from the mark time that is the time of the attribute of “mark processing”. Is done. Furthermore, entry_ES_streamamd and entry_ES_private_stream_id that specify an elementary stream are described in the processing target mark. In other cases, processing according to the mark_type of the processing target mark is performed.
  • entry_ES_stream_id and entry_ES_private_stream_id for specifying the elementary stream are described in the mark to be processed, even if te, “Ir entry—ES—stream—id and entry—E3 ⁇ 4—private—stream—id If the elementary stream specified by this is being played, processing is performed according to the mark_type of the processing target mark.
  • the first MarkO (Mark # 0) and the first MarkO (Mark # 0) in which the mark_time_stamp is specified are 90,000, 27,090,000, 27,540,000, respectively.
  • the third MarkO (Mark # l) and the third MarkO (Mark # 2) are described.
  • the player control module 212 performs the processing shown in the lower part of Fig. 28. Recognize that the three MarkOs included in the PlayListMarkO belong to PlayItem # 0 of PlayList # l! /, And change the mark_time_stamp of the three MarkOs, ⁇ 90,000 ⁇ , ⁇ 27,090,000 ⁇ , ⁇ 27,540,000 ⁇ .
  • the attribute of the time represented by the mark_time_stamp is “mark processing”, and is passed to the decode control module 214.
  • the decode control module 214 determines that the current time force attributed by the timer 214A is "mark processing" at the time ⁇ 90,000 ⁇ , ⁇ 27,090,000k ⁇ 27,540,000 ⁇ is always checked to see if it matches (Step S301), and if the current time attribute matches the time of “Mark processing”, the “Mark” that matches the current time A mark time that is a time of the attribute of “processing” and a message indicating that the current time has become a time of the attribute of “mark processing” are supplied to the player control module 212.
  • the decoding control module 2 14 indicates to the player control module 212 the mark time 27,090,000, which is the time of the “mark processing” attribute that matches the current time, and a message indicating that the current time has become the time of the “mark processing” attribute. Supply.
  • the player control module 212 recognizes that PlayItem # 0 of PlayList # l is currently being played back, and Mark () described in PlayListMarkO of PlayList # l shown in the lower part of Fig. 28 of Fig. 28. 90,000, 27,0 90,000, 27,540,000, which are the mark_time_stamps of the three MarkOs belonging to PlayItem # 0, and the mark time from the decode control module 214. At the mark time 27,090,000, Mark0 where mark_time_stamp matches, that is, the second MarkO (Mark # l) described in the PlayListMarkO in the lower part of FIG. 28 is set as the processing target mark. Recognize (step S302).
  • OxEO is specified as entry_ES_stream_id in the second MarkO described in PlayListMarkO on the lower side of Fig. 28, which is the processing target mark.
  • the entry_ES_stream_id of OxEO is multiplexed into the clip stream file “00003.PS”, and the streamjd becomes OxEO! /, The video stream stream # 0 (FIG. 26). ), And the player control module 212 determines whether or not the video stream stream # 0 is included in the elementary stream being reproduced (steps S303 and S304).
  • step S305 when the video stream stream # 0 is included in the elementary stream being reproduced, the processing target mark is determined to be valid, and processing according to the processing target mark is performed (step S305). To S308).
  • the second MarkO described in the PlayListMarkO on the lower side of Fig. 28, which is the processing target mark is an event mark because its mark_type is "Event".
  • the player control module 212 supplies an event message indicating the occurrence of the event and mark_data of the processing target mark to the script control module 211 (steps S305 and S307).
  • the script control module 211 performs a series of processing described in advance in the “SCRIPT.DAT” file with the mark_data supplied together with the event message as an argument, with the event message of the player control module 212 as an interrupt request. (Step S308).
  • mark_time_stamp representing one playback time on the time axis of PlayListO
  • mark_type representing the type of MarkO
  • the mark_type of the processing target mark indicates a type that generates an event, that is, when the processing target mark is an event mark, the mark_data and the event message of the processing target mark are notified, Processing corresponding to the mark_data is executed. Therefore, it is possible to execute processing corresponding to mark_data in accordance with the playback time of the clip stream file.
  • the player control module 212 first starts at least one elementary stream to be played, that is, one or more elements determined to be reproduced in step S125 in Fig. 30. For each mental stream, investigate number_of_Dynamidnfo (Fig. 10), which indicates the number of DynamicInfoO (Fig. 13) in which the output attribute is described.
  • the player control module 212 performs output attribute control processing according to the flowchart in FIG.
  • step S320 the player control module 212 sets the pts_change_point described in the clip information file ClipO (FIG. 10) corresponding to the clip stream file to be played back. And the time of the attribute of "DynamicInfoO processing", and also passes to the decode control module 214, and the decode control module 214 receives the pts_change_point which is the time of the attribute of "DynamidnfoO processing" from the player control module 212. To step S321.
  • step S321 it is determined whether or not the current time measured by the decode control module 214 force timer 214A matches the pts_change_point (one of the times) of the attribute of the "DynamicInfo () process". If it is determined that they do not match, the process returns to step S321.c
  • step S321 if it is determined that the current time matches the time (any of) of the attribute of the "DynamicInfoO process", the decode control module 214 sets the current time to To the player control module 212, a message indicating that the time of the attribute of “DynamicInfoO processing” has been reached, and the time of the attribute of “DynamicInfo () processing” that matches the current time (hereinafter, appropriately referred to as Dynamiclnfo time). Then, the process proceeds to step S322.
  • step S332 the player control module 212 decodes the message indicating that the current time has become the time of the attribute of "DynamidnfoO processing" and the Dynamiclnfo time,
  • the DynamicInfoO received from the module 214 and set with the pts_change_point (FIG. 10) that matches the Dynamiclnfo time is recognized as the DynamicInfoO to be processed, which is the DynamicInfoO to be processed, and the process proceeds to step S323.
  • step S323 the player control module 212 supplies the output attribute described in the DynamicInfoO (Fig. 13) serving as the processing target DynamicInfoO to the graphics processing module 219 or the audio output module 221. Proceed to 324.
  • step S324 the control of the output of the video data or the audio data is performed according to the output attribute supplied from the player control module 212 in the immediately preceding step S323 in the graphics processing module 219 or the audio output module 221. Start each and return to step S321.
  • the video data is described as an output attribute (display method), for example, is output according to an aspect ratio, or the audio data is described as an output attribute (output method). For example, it is output according to stereo or dual (Nike language).
  • FIG. 42 shows a set of pts_channel_point and DynamicInfoO described in the clip information file "00003.CLP" of FIG. 26 (FIG. 10).
  • the first elementary stream is the first elementary stream.
  • number_of_Dynamidnfo is 2 and 3, respectively, in the clip information file “00003. CLP” in FIG. Therefore, in the clip information file “00003.CLP”, two sets of pts_change_point and DynamicInfoO are described for the first video stream stream # 0 of the clip stream file “00003.PS”, and the third audio stream For stream stream # 2, three sets of pts_change_point and DynamicInfoO are described.
  • FIG. 42 shows two sets of pts_change_point and DynamicInfoO described with respect to the first video stream stream # 0 of the clip stream file "00003.PS". Is the third audio stream in the clip stream file "00003.PS”. It shows three sets of pts_change_point and DynamicInfoO described for stream # 2.
  • the first video stream stream # 0 is described as! /
  • the video stream stream # 0 is also described.
  • step S125 of Fig. 30 the first video stream stream # 0 specified by the streamjd of OxEO of the clip stream file "00003.PS" and the OxBD
  • the third audio stream streams identified by streamjd and private_stream_id of 0x00 are determined as the streams to be played.
  • the player control module 212 is identified by the streamjd of OxEO.
  • the following three sets of pts_change_point and DynamicInfoO pts_change_point are checked and the initial value is recognized.
  • pts-change-point is 90,00.
  • the time of 90,000 corresponds to the clip stream file “00003.CLP” in FIG. 26 corresponding to the clip stream file “00003.PS” in which the audio stream stream # 2 is multiplexed. This matches the time 90,000 described in presentation_start_time, which indicates the time at the beginning of "PS".
  • the player control module 212 recognizes, as an initial value, a pts_change_point that matches the time 90,000 described in the presentation_start_time representing the start time of the clip stream file "00003.PS". Therefore, the pts_change_point of the first two sets of pts_change_point and DynamicInfoO in Fig. 42 and the pts_change_point of the first three sets of pts_change_point and DynamicInfoO in the lower part of Fig. 42 are recognized as the initial values. Is done.
  • the player control module 212 sets the pts_change_point recognized as the initial value and sets it. According to DynamicInfoO, the corresponding elementary stream Specify output attributes.
  • the video stream stream # 0 specified by streamjd becomes OxEO! /
  • the initial value becomes 90,000 at the upper side of FIG. 42! /
  • And pts_change_point and Display_aspect_ratio is '4: 3' in DynamicInfoO as a set!
  • the player control module 212 outputs output attribute information indicating that the display_aspect_ratio is “4: 3”, that is, that the video stream stream # 0 is video data having an aspect ratio of 4: 3. Control the graphics processing module 219.
  • DynamicInfoO has channel-assistment set to 'Dual'.
  • the player control module 212 sends the information of the output attribute indicating that the channel.as signment is “Dual”, that is, the audio stream stream # 2 is the audio data of the duanore, to the audio output module 221. To supply.
  • step S126 of Fig. 30 the output attribute control processing for pts_change_point as the initial value as described above is performed.
  • the player control module 212 uses the two pts_change_points of 90,000 and 54,090,000 on the upper side in FIG. 42 for the video stream stream # 0 and the three pts_change_points on the lower side in FIG. 42 for the audio stream stream # 2.
  • the decode control module 214 receives the time ⁇ 27,090,000 ⁇ , ⁇ 32,490,000 ⁇ , ⁇ 54,090,000 ⁇ of the attribute of "DynamicInfo () processing" from the player control module 212, and furthermore, the video stream stream # After the start of playback of the audio stream stream # 2 (playback of PlayItem # 0 of the second PlayList # 1 that plays back the clip stream file "00003.PS"), monitoring of the current time being measured by the timer 214A To start.
  • the decoding control module 214 determines that the current time is an attribute of "DynamicInfo0 processing". Of the times ⁇ 27,090,000 ⁇ , ⁇ 32,490,000 ⁇ , and ⁇ 54,090,000 ⁇ , if they match, the Dynamiclnfo time, which is the time of the attribute of “DynamicInfoO processing” that matches the current time, is added to the player control module 212. (Step S321).
  • the decode control module 214 sets 27,090,000, which is the same as the current time, of the attribute of the "DynamicInfoO process" as the Dynamiclnfo time, Supply to player control module 212
  • the player control module 212 receives the Dynamiclnfo time of 27,090,000 from the decode control module 214, and the two pts_change_points and the audio streams stream # 2 on the upper side in FIG. From the three lower pts_change_points in Figure 42, the pts_change_point that matches the Dynamiclnfo time of 27,090,000 is investigated, and Dyna miclnfo0, which is set with the pts_change_point that matches the 27,090,000, that is, the audio stream stream.
  • the second Dyna midnfoO on the lower side of FIG. 42 for # 2 is recognized as the DynamidnfoO to be processed (step S322).
  • the player control module 212 supplies the output attribute described in the processing target DynamidnfoO to the graphics processing module 219 (step S323). If the processing target DynamicInfoO is the DynamidnfoO for the audio stream, the player control module 212 supplies the output attribute described in the processing target DynamidnfoO to the audio output module 221 (step S323).
  • the graphics processing module 219 Upon receiving the output attribute from the player control module 212, the graphics processing module 219 starts controlling the output of the video data according to the output attribute (step S324).
  • the graphics processing module 219 connects to the video data aspect ratio instruction (display_aspect_ratio (Fig. 13)) indicated by the output attribute from the player control module 212 and the video output terminal 120 of Fig. 1, for example.
  • the aspect ratio of the video data output to the video output module 220 is converted based on the aspect ratio of the video output device.
  • the graphics processing module 219 squeezes the video data to be output to the video output module 220 in the horizontal direction, and Is output with a black tint.
  • the graphics processing module 219 The video data to be output to the video output module 220 is squeezed in the vertical direction, and output with blackness at the top and bottom.
  • the graphics processing module 219 outputs the video data output to the video output module 220 without performing squeezing processing.
  • the graphics processing module 219 outputs the time immediately before the time 54,090,000 from the time 90,000.
  • the video data of 4: 3 aspect ratio obtained from the video stream stream # 0 is supplied to the video output device of 4: 3 aspect ratio and displayed.
  • the video data having an aspect ratio of 16: 9 obtained from the video stream stream # 0 is squeezed in the vertical direction, and furthermore, blackness is added to the top and bottom.
  • the video signal is converted to a video signal with an aspect ratio of 3: 3 and supplied to a video output device with an aspect ratio of 4: 3 for display.
  • the audio output module 221 starts controlling the output of the audio data according to the output attribute. Start (step S324).
  • the audio output module 221 receives an instruction for channel assignment of audio data (channeLassignment (Fig. 13)) indicated by an output attribute from the player control module 212, and the user operates the remote controller.
  • the audio data from the audio decoder control module 217 is processed based on the audio output mode supplied from the player control module 212 via the input interface 115 (FIG. 1), and the audio output terminal 121 (FIG. 1) Output to
  • the indication of the channel assignment of the audio data represented by the output attribute is such that the left channel is the audio data of "main audio” and the right channel is the audio data of "sub audio”.
  • the audio output module 221 represents the (Dual) (Nike language) mode
  • the audio output module 221 processes the audio data from the audio decoder control module 217 according to the audio output mode supplied from the player control module 212, Output to audio output terminal 121.
  • the audio output module 221 transmits the left channel audio data of the audio data from the audio decoder control module 217 to the audio output mode.
  • the audio data is copied as right channel audio data, and the left channel and right channel audio data (audio data of “main audio”) are output to the audio output terminal 121.
  • “sub-audio” is specified as the audio output mode
  • the audio output module 221 converts audio data of the right channel of the audio data from the audio decoder control module 217 into audio data of the left channel.
  • the audio data of the left channel and the right channel (“sub-audio” audio data) are output to the audio output terminal 121.
  • the audio output module 221 outputs the audio data from the audio decoder control module 217 to the audio output terminal 121 as it is.
  • the audio output module 221 switches to the audio output mode supplied from the player control module 212. Regardless, audio decoding The audio data from the audio control module 217 is output to the audio output terminal 121 as it is.
  • the audio output output module 221 starts from time 90,000 and ends immediately before time 27,090,000 from audio stream stream # 2.
  • the audio data of the left channel of the obtained dual audio data is copied as the audio data of the right channel, and the audio data of the left and right channels is output to the audio output terminal 121.
  • the left channel audio data of the dual audio data obtained from audio stream stream # 2 is copied as right channel audio data, and the left channel and right channel audio data are copied.
  • the audio data is output to the audio output terminal 121.
  • the output attribute control process for each elementary stream multiplexed in the clip stream file, the pts_change_point indicating the playback time of the elementary stream, and the output of the elementary stream Based on the description of the clip information file ClipO (Fig. 10) containing 0 or more sets with DynamicInfoO including the attribute, it is determined whether or not the playback time of the elementary stream being played matches the pts_change_point. So Then, if the playback time of the elementary stream being played matches the pts_change_point, the DynamicInfoO that is set with the pts_change_point is recognized, and according to the output attributes included in the recognized DynamicInfoO, The output of the elementary stream is controlled. Therefore, it is possible to control the output of the elementary stream according to the reproduction time and the output attribute of the elementary stream.
  • the player control module 212 When playback of PlayListO (Fig. 5) (PlayltemO) is started, the player control module 212 initializes a subtitle data display method instruction to the graphics processing module 219 in step S341. That is, the player control module 212 controls the graphics processing module 219 so that the subtitle data display mode is set to the default display mode. Note that the initialization of the display method instruction performed in step S341 corresponds to the initialization of the display method instruction described in 127 of FIG.
  • step S342 the player operates the remote controller to operate the remote controller to input a new display method for the display of subtitle data from the input interface 115. Determine whether
  • step S342 when it is determined that a new display method has been instructed, the process proceeds to step S343, and the player control module 212 transmits the subtitle stream (subtitle data corresponding to) to the current subtitle stream. Determine if it is playing.
  • step S343 If it is determined in step S343 that the subtitle stream is not being reproduced, the process returns to step S342.
  • step S343 when it is determined that the subtitle stream is being reproduced, the process proceeds to step S345, and the player control module 212 determines whether the instruction of the new display method is the instruction of the default display method. Determine whether If it is determined in step S343 that the new display method instruction is the default display method instruction, the process returns to step S341, and the player control module 212 displays the subtitle data as described above. Controls graphics processing module 219 to make the default display method To do.
  • step S345 when it is determined that the instruction of the new display method is not the instruction of the default display method, that is, the instruction of the new display method is, for example, to enlarge or reduce the subtitle data. If the instruction is for a non-default display method, such as displaying the subtitle stream by changing the brightness or making it easier to see, the process proceeds to step S346, and the player control module 212 proceeds to step S346. From the StaticInfoO (FIG. 12) of the clip information file ClipO (FIG. 10) corresponding to the file, the StaticInfoO for the currently reproduced subtitle stream is obtained, and the process proceeds to step S347.
  • the StaticInfoO (FIG. 12) of the clip information file ClipO (FIG. 10) corresponding to the file
  • step S347 the player control module 212 determines the configurable_flag of the Sta_tidnfoO acquired in step S346.
  • step S347 when it is determined that configurable_flag is 0 indicating that the change of the display method of the subtitle data is not permitted, the process proceeds to step S348, and the player control module 212 sets the graphics processing module 219 to By controlling, the output video data is overlaid with an error message indicating that the display method of the subtitle data cannot be changed, and the process returns to step S342. Error message is displayed
  • step S347 if it is determined that the value is set to 1 to permit the change of the display method of the configurable jlag caption data, the process proceeds to step S349, and the player control module 212 Then, the user operates the remote controller to supply the new display mode instruction supplied from the input interface 115 to the graphics processing module 219, and the process proceeds to step S350.
  • step S350 the graphics processing module 219 enlarges the subtitle data supplied from the subtitle decoder control module 218 in accordance with the display mode instruction supplied from the player control module 212 in the immediately preceding step S349. Alternatively, processing such as reduction or change in brightness is started, and the flow returns to step S342. As a result, the caption data can be displayed in a display size or in accordance with the display method specified by the user operating the remote controller.
  • step S342 determines whether or not the transfer of Playitem m0 described in FIG. 31 has been performed. If it is determined that the transfer has not been performed, the process returns to step S342.
  • step S351 if it is determined that the transfer of PlayltemO has been performed, the process returns to step S341, and as described above, the player control module 212 sets the display method of the subtitle data to the default.
  • the graphics processing module 219 is controlled so that the display method is set. That is, in this case, when the transfer of PlayltemO is performed, the display method of the subtitle data is returned to the default display method.
  • the subtitle display control processing only when the configurable_flag of the subtitle stream is set to 1 indicating that the display method can be changed, the subtitle stream is supported.
  • the display method of the subtitle data is changed according to, for example, a display method instruction input by the user operating the remote controller.
  • the configurable _flag of the subtitle stream stream # 3 which is the fourth elementary stream of the four elementary streams multiplexed in the clip stream file "00001.PS" Becomes 1 indicating that the display method can be changed! /, So if the user operates the remote controller to change the display of the subtitles while the subtitle stream stream # 3 is displayed, The subtitle display size and the like are changed according to the operation.
  • the display mode instruction is also supplied to the input interface 115 (Fig. 1) to the player control module 212. Is done.
  • the player control module 212 also searches for the StatidnfoO (FIG. 10) corresponding to the subtitle stream being played back in the clip information file (step S346).
  • the subtitle stream being reproduced is the third subtitle stream stream # 2 multiplexed in the clip stream file "00001.PS”, and the player control module 212 From the clip information file "00001. CLP", find the StatidnfoO for the third subtitle stream stream # 2!
  • the player control module 212 determines the configurable_flag described in the third subtitle stream strea m # 2 in FIG. (Step S347) With this, it is recognized that the change of the display method is permitted for the third subtitle stream stream # 2.
  • the player control module 212 determines that (the subtitle data corresponding to) the subtitle stream being reproduced does not correspond to enlargement / reduction, etc., and controls the graphics processing module 219 to control the Is generated (step S348), and is overlaid on the video data and output.
  • the player control module 212 determines the configurable_flag described in StatidnfoO for the fourth subtitle stream strea m # 3 in FIG. Then (step S347), it is recognized that the change of the display method is permitted for the fourth subtitle stream stream # 3.
  • the player control module 212 determines that the subtitle stream being reproduced (caption data corresponding to) corresponds to enlargement / reduction, etc., and is supplied by the user operating the remote controller.
  • the instruction of the display method is supplied to the graphics processing module 219 (step S349).
  • the graphics processing control module 219 then enlarges or reduces the force indicated by the display method from the player control module 212, the caption data from the caption decoder control module 218, and the like.
  • the video data from the video decoder control module 216 is overlaid and output.
  • the player control module 212 initializes a subtitle data display method instruction to the graphics processing module 219 at the start of playback of the first PlayltemO of PlayListO (step S341). That is, the player control module 212 controls the graphics processing module 219 such that the display method of the subtitle data is the default display method.
  • the player control module 212 also initializes the subtitle data display method instruction to the graphics processing module 219 when the PlayltemO is changed (steps S341 and S351).
  • the configurable_flag of a new subtitle stream to be reproduced according to PlayltemO newly reproduced thereafter is checked. If the configurable_flag is 0, the graphics Initializes the subtitle data display method instruction to the processing module 219, and if the configurable_flag is 1, the display method instruction to the graphics processing module 219 can be maintained as it was before the transfer of PlayltemO It is.
  • the new display method instruction is sent to the graphics processing module 219.
  • the instruction of the display method is stored in, for example, a non-volatile memory constituting the memory 113 (FIG. 1).
  • the stored indication of the display mode can be supplied to the graphics processing module 219.
  • an instruction of a display method set by a user is stored in a non-volatile memory, and a new display method is operated by a user operating a remote controller.
  • the instruction of the display method is input, the instruction of the display method stored in the nonvolatile memory is updated to the instruction of the new display method, and the instruction of the display method stored in the nonvolatile memory is updated by the graphics processing. It is possible to feed module 219.
  • the user since the instruction of the display method at the end of the previous reproduction is held in the non-volatile memory, the user operates the remote controller at the next reproduction of the PlayListO to operate the display method at the end of the previous reproduction. Even if the user does not input the instruction, the display of subtitle data is started in the display method.
  • the indication of the display method to be stored in the nonvolatile memory includes, for example, an enlargement ratio or a reduction ratio when enlarging or reducing subtitle data.
  • the V ⁇ StaticInfoO that does not change during the reproduction of the elementary stream is included.
  • the subtitle data StaticInfoO of the subtitle data is acquired, and the display of the subtitle data being played back is performed based on the configurable_flag included in the StaticInfoO, which indicates whether the display of subtitle data is allowed to be changed from the default display method. It is determined whether changing the default display method is also permitted. Then, the display of the subtitle data being reproduced is also allowed to be changed by the default display method.
  • the display processing of the subtitle data is performed according to the instruction to change the display method of the subtitle data. That is, for example, processing for displaying the caption data by enlarging or reducing it, or changing the display color is performed. Therefore, it is possible to control the change of the subtitle data display method.
  • FIG. 44 shows a flowchart describing the capture control process, and a background Z scan as an example of the process of secondary use of the video data captured by the capture control process.
  • a flowchart describing the clean saver process is also illustrated.
  • the video data is supplied to the player control module 212 via the capture instruction input interface 115 (Fig. 1) for instructing the capture of video data. Be started.
  • step S371 the player control module 212 determines whether or not the video stream is being played back. The control process ends.
  • step S371 when it is determined in step S371 that the video stream is being reproduced, the process proceeds to step S372, and the player control module 212 sets capture_enable_flag_PlayList from PlayListO (Fig. 5) corresponding to the video stream being reproduced. At the same time, capture.enable_flag_Clip is obtained from the clip information file ClipO (Fig. 10) corresponding to the video stream being played.
  • capture_enable_flag_PlayList in PlayListO indicates whether secondary use of video data (video data belonging to PlayListO) corresponding to the video stream reproduced by PlayListO is permitted, as described in FIG.
  • capture_enable_flag_Clip in the clip information file ClipO is, as described in FIG. 10, the secondary use of video data corresponding to the video stream stored in the clip stream file corresponding to the clip information file ClipO. Represents the power to allow.
  • step S372 After the process in step S372, the process proceeds to step S373, in which the player control module 212 receives a capture instruction based on the capture_enable_flag_PlayList and the capture_enable_flag_Clip acquired in the previous step S373, and the input interface 115 (Fig. 1). It is determined whether or not the picture of the video data being reproduced at that time can be captured.
  • step S373 when it is determined that the capture of the picture of the video data being reproduced when the capture instruction is input from the input interface 115 is not possible, that is, when the capture is performed in the immediately preceding step S373. If at least one of capture_enable_flag_PlayList or capture_enable_flag_Clip is set to 0 indicating that secondary use of video data is not permitted, the process proceeds to step S374, and the player control module 212 controls the graphics processing module 219 to control Data capture Is overlaid with an error message indicating that is impossible, and the capture control process ends. As a result, an error message is displayed.
  • step S373 when it is determined that it is possible to capture the picture of the video data that was being reproduced when the capture instruction was input from the input interface 115, that is, in step S373, it was obtained in the immediately preceding step S373. If the captured capture_enable_flag_PlayList and capture_enable_flag_Clip are both set to 1 indicating that the secondary use of video data is permitted, the process proceeds to step S375, and the player control module 212 executes the process when the capture instruction is input from the input interface 115. The instruction of the capture of the picture of the video data that has been reproduced in the above is supplied to the graphics processing module 219, and the process proceeds to step S376.
  • step S376 the graphics processing module 219 captures the force ⁇ instructed by the capture from the player control module 212 and the picture of the video data from the video decoder control module 216, and stores it in the memory 113 (Fig. 1). And the capture control process ends.
  • capture_enable_flag has a multi-bit configuration, and the use conditions are restricted. That is, if there is a limit on the size of the captured image, the reduced image is captured at this point.
  • the video stream is reproduced, that is, multiplexed into the clip stream file "00001.PS".
  • a capture instruction from the user is issued. If there is, the capture_enable_flag_PlayList in the first PlayList # 0 is 1, and the clip information file “00001.CLP” in FIG.
  • the reproduction of the video stream that is, the reproduction of the video stream multiplexed into the clip stream file "00002.PS"
  • the capture_enable_flag_PlayList in the first PlayList # 0 is 1
  • the clip stream file played by the second Playltem # l "00002.” Since the capture_enable_flag_Clip in the clip information file “00002.CLP” in FIG. 26 corresponding to “PS” is 0, the video data being reproduced (corresponding to the video stream multiplexed to the clip stream file “00002.PS”) It was determined that secondary use of video data) was not possible, and no caption was taken.
  • the picture captured by the capture control process and stored in the memory 113 can be used secondarily in the background Z screen saver process.
  • the background Z screen saver process is performed, for example, when the player control module 212 is operating and the elementary stream is not being played back, that is, when the disk 101 is inserted into the disk drive 102 (Fig. 1). This is performed when no playback has been performed or when playback of the elementary stream has ended.
  • step S381 the player control module 212 controls the graphics processing module 219 so as to display the picture stored in the memory 113 by the capture control process.
  • the graphics processing module 219 displays the force controlled by the player control module 212 and the picture stored in the memory 113 by the capture control processing.
  • step S376 the force S instructed by the capture from the graphics processing module 219, the player control module 212, the picture of the video data from the video decoder control module 216, that is,
  • the ability to capture only one picture is possible, and it is also possible to capture multiple pictures. That is, it is possible to capture a plurality of time-series pictures (a sequence of a plurality of pictures as a moving image) output from the video decoder control module 216.
  • the number of pictures captured at a time can be predetermined, for example.
  • use permission information indicating whether or not the power to permit the secondary use of the video data
  • capture—enable—flag—PlayList capture—enable—flag—Clip
  • PlayListO clip ⁇ Described in the blue information file ClipO
  • the use permission information describes the video data in any other unit
  • the use permission information describes whether the secondary use of the video data in any unit is possible. Can be determined.
  • FIG. 45 shows the syntax of private_stream2_PES_payloadO in which the use permission information is arranged
  • FIG. 46 shows the syntax of aujnformationO in which the use permission information is arranged.
  • Private_stream2_PES_payloadO in Fig. 45 has the same configuration as that in Fig. 23 except that capture_enable_flag_ps2 as usage permission information is arranged immediately before video_stream_id!
  • the aujnformationO in FIG. 46 is configured similarly to the case in FIG. 24 except that capture_enable_flag_AU as usage permission information is placed immediately before pic_struct_copy!
  • the capture_enable_flag_ps2 located in private_stream2_PES_payloadO in Fig. 45 is the private-stream2- PES- payloadO. Indicates whether secondary use of video data corresponding to the stream is permitted. Therefore, according to capture_enable_flag_ps2 allocated to private_stream2_PES_payloadO in Fig. 45, whether or not to allow secondary use of video data between a certain decoding start possible point and the next decoding start possible point Can be determined.
  • capture_enable_flag_AU arranged in aujnformationO in Fig. 46 indicates whether or not the secondary use of the video data of the video access unit corresponding to capture_enable_flag_AU is permitted. Therefore, according to capture_enable_flag_AU arranged in aujnformationO in FIG. 46, it is possible to determine whether or not to permit the secondary use of video data in units of video access units, that is, in units of pictures.
  • capture_enable_flag_PlayList as use permission information in PlayListO (Fig. 5)
  • capture_enable_flag_Clip as use permission information in clip information file ClipO (Fig. 10)
  • capture_enable_flag_ps2 as use permission information in private_stream2_PES_payloadO (Fig. 45)
  • the capture_enable_flag_AU as the permission information for ⁇ lj in aujnformationO (Fig. 46) can use two or more of them, and in this case, the secondary use of a picture
  • the determination can be made on the basis of the logical product of two or more use permission information that are adopted in duplicate.
  • private_stream2_PES in FIG. 23 or FIG. 45 where aujnformationO in FIG. 46 is placed As described in step S211 of FIG. 36, the PES_packetO of private_stream_2 including _payload0 also causes the video read function unit 233 of the buffer control module 215 (FIG. 3) to search for a program stream stored in the buffer 215A. Therefore, when the private_stream2—PES—payloadO in FIG. 45 in which capture_enable_flag—ps2 is arranged and the aujnformationO in FIG.
  • the player control module 212 In determining whether or not secondary use of video data is possible, it is necessary to query capture_enable_flag_ps2 and capture_enable_flag_AU to the video reading function unit 233 and match them.
  • the above-described series of processing is performed by software.
  • the above-described series of processing may be performed by dedicated hardware.
  • a hardware decoder is used as video decoder 116 (FIG. 1).
  • a software decoder can be used as video decoder 116. The same applies to the audio decoder 117 (FIG. 1).
  • a software decoder is employed as the subtitle decoder, but a hardware decoder may be employed as the subtitle decoder.

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)
  • Television Signal Processing For Recording (AREA)
  • Management Or Editing Of Information On Record Carriers (AREA)

Abstract

 本発明は、符号化ビデオデータを解析しなくても、アクセスユニット単位での符号化ビデオデータの読み出しを可能とするデータ処理装置およびデータ処理方法、プログラムおよびプログラム記録媒体、データ記録媒体並びにデータ構造に関する。ステップS211において、アクセスユニット単位の符号化ビデオデータにおける1以上のデコード開始可能点それぞれの直前に配置されている、符号化ビデオデータのデコードに利用されるprivate_stream_2のパケットが探索される。そして、ステップS216において、private_stream_2のパケットに含まれる、そのprivate_stream_2のパケットから次のprivate_stream_2のパケットまでの間に配置されているアクセスユニットそれぞれのサイズを表すAU_lengthに基づき、アクセスユニット単位で符号化ビデオデータが読み出される。本発明は、例えば、DVDを利用したゲーム装置などに適用できる。

Description

データ処理装置およびデータ処理方法、プログラムおよびプログラム記録 媒体、データ記録媒体並びにデータ構造
技術分野
[0001] 本発明は、データ処理装置およびデータ処理方法、プログラムおよびプログラム記 録媒体、データ記録媒体並びにデータ構造に関し、特に、例えば、利便性等の高い データ処理を可能とするデータ処理装置およびデータ処理方法、プログラムおよび プログラム記録媒体、データ記録媒体並びにデータ構造に関する。 背景技術
[0002] 近年、大容量で、ランダムアクセスが可能な記録メディアとして、例えば、 DVD(Digit al Versatile Disc)が普及し、さらに、 DVDを利用して各種の処理を行う DVD装置も広 く普及している。
[0003] DVD装置としては、例えば、 DVDに対して、テレビジョン放送番組のデータ等の記 録再生を行う DVDレコーダや、 DVDに地図情報等を記録し、その地図情報の表示を 行うカーナビゲーシヨンシステム、 DVDにゲームのプログラム等を記録し、そのプログ ラムを実行するゲーム装置などがある。
[0004] なお、 DVDにつ 、ては、例えば、非特許文献 1に、その詳細が記載されて 、る。
[0005] 非特許文献 1 : DVD Specifications for Read- Only Disc Part 3; Version 1.1 Dcecmber
1997
発明の開示
発明が解決しょうとする課題
[0006] DVDのように、大量のデータを記録することができる記録メディアや、それを利用し て各種の処理を行う DVD装置などには、そのような大量のデータについて、利便性 等の高 、データ処理を行うことが要請される。
[0007] 本発明は、このような状況に鑑みてなされたものであり、利便性等の高いデータ処 理を行うことができるようにするものである。
課題を解決するための手段 [0008] 本発明のデータ処理装置は、アクセスユニット単位の符号ィ匕ビデオデータと、ァク セスユニット単位の符号ィ匕ビデオデータにおける 1以上のデコード開始可能点それ ぞれの直前に配置される、符号ィ匕ビデオデータのデコードに利用される利用情報と を含む符号化データから、利用情報を探索する探索手段と、符号化ビデオデータを デコードするビデオデコーダを制御するビデオデコーダ制御手段からの要求に応じ て、利用情報に含まれるサイズ情報に基づき、符号ィ匕データ力もアクセスユニット単 位で符号ィ匕ビデオデータを読み出し、ビデオデコーダに供給する供給手段とを備え ることを特徴とする。
[0009] 本発明のデータ処理方法は、アクセスユニット単位の符号化ビデオデータと、ァク セスユニット単位の符号ィ匕ビデオデータにおける 1以上のデコード開始可能点それ ぞれの直前に配置される、符号ィ匕ビデオデータのデコードに利用される利用情報と を含む符号化データから、利用情報を探索する探索ステップと、符号化ビデオデー タをデコードするビデオデコーダを制御するビデオデコーダ制御手段からの要求に 応じて、利用情報に含まれるサイズ情報に基づき、符号ィ匕データ力もアクセスュ-ッ ト単位で符号ィ匕ビデオデータを読み出し、ビデオデコーダに供給する供給ステップと を含むことを特徴とする。
[0010] 本発明のプログラムは、アクセスユニット単位の符号化ビデオデータと、アクセスュ ニット単位の符号ィ匕ビデオデータにおける 1以上のデコード開始可能点それぞれの 直前に配置される、符号ィ匕ビデオデータのデコードに利用される利用情報とを含む 符号化データから、利用情報を探索する探索ステップと、符号化ビデオデータをデコ ードするビデオデコーダを制御するビデオデコーダ制御手段からの要求に応じて、 利用情報に含まれるサイズ情報に基づき、符号ィ匕データ力もアクセスユニット単位で 符号化ビデオデータを読み出し、ビデオデコーダに供給する供給ステップとを含むこ とを特徴とする。
[0011] 本発明のプログラム記録媒体に記録されているプログラムは、アクセスユニット単位 の符号化ビデオデータと、アクセスユニット単位の符号ィ匕ビデオデータにおける 1以 上のデコード開始可能点それぞれの直前に配置される、符号ィヒビデオデータのデコ ードに利用される利用情報とを含む符号ィ匕データから、利用情報を探索する探索ス テツプと、符号化ビデオデータをデコードするビデオデコーダを制御するビデオデコ ーダ制御手段力もの要求に応じて、利用情報に含まれるサイズ情報に基づき、符号 化データ力 アクセスユニット単位で符号ィ匕ビデオデータを読み出し、ビデオデコー ダに供給する供給ステップとを含むことを特徴とする。
[0012] 本発明のデータ記録媒体およびデータ構造は、符号化データが、所定の単位のビ デォデータを符号化して得られる、アクセスユニット単位の符号ィ匕ビデオデータと、ァ クセスユニット単位の符号ィ匕ビデオデータにおける 1以上のデコード開始可能点それ ぞれの直前に配置される、符号ィ匕ビデオデータのデコードに利用される利用情報と を含み、利用情報が、その利用情報から次の利用情報までの間に配置されている 1 以上のアクセスユニットそれぞれのサイズを表すサイズ情報を含むことを特徴とする。
[0013] 本発明のデータ処理装置およびデータ処理方法、並びにプログラムおよびプログ ラム記録媒体に記録されているプログラムにおいては、符号化データから、利用情報 が探索される。そして、符号化ビデオデータをデコードするビデオデコーダを制御す るビデオデコーダ制御手段力 の要求に応じて、利用情報に含まれるサイズ情報に 基づき、符号ィ匕データ力もアクセスユニット単位で符号ィ匕ビデオデータが読み出され 、ビデオデコーダに供給される。
[0014] また、本発明のデータ記録媒体に記録されている符号ィ匕データ、および符号化デー タのデータ構造においては、所定の単位のビデオデータを符号ィ匕して得られる、ァク セスユニット単位の符号化ビデオデータと、アクセスユニット単位の符号化ビデオデ ータにおける 1以上のデコード開始可能点それぞれの直前に配置される、符号ィ匕ビ デォデータのデコードに利用される利用情報とを含んでおり、その利用情報力 次の 利用情報までの間に配置されて 、る 1以上のアクセスユニットそれぞれのサイズを表 すサイズ情報を含んでいる。
発明の効果
[0015] 本発明によれば、利便性等の高 、データ処理が可能となる。特に、符号化ビデオ データを解析しなくても、アクセスユニット単位での符号ィ匕ビデオデータの読み出し が可能となる。
図面の簡単な説明 図 1]本発明を適用したディスク装置の一実施の形態のハードウェア構成例を示すブ ロック図である。
図 2]CPU112が実行するソフトウェアモジュール群の構成例を示すブロック図である 図 3]バッファ制御モジュール 215の構成例を示すブロック図である。
図 4]ディスク 101におけるディレクトリ構成例を示す図である。
図 5]"PLAYLIST.DAT"ファイルのシンタクスを示す図である。
図 6]PlayItemOのシンタクスを示す図である。
図 7]PlayListMarkOのシンタクスを示す図である。
図 8]mark_typeの値と、 MarkOのタイプとの関係を示す図である。
図 9]PlayListO, PlayItemO、クリップ、およびクリップストリームファイルに格納されたプ ログラムストリームの関係を示す図である。
図 10]クリップ情報ファイル ClipOのシンタクスを示す図である。
図 11]エレメンタリストリームを識別する streamjdおよび private_stream_idと、エレメンタ リストリームとの関係を示す図である。
図 12]StaticInfoOのシンタクスを示す図である。
図 13]DynamicInfo()のシンタクスを示す図である。
図 14]EP_mapOのシンタクスを示す図である。
図 15]MPEG-2 Systemのプログラムストリーム、プログラムストリームパック、およびプ ログラムストリームパックヘッダのシンタクスを示す図である。
図 16]MPEG- 2 Systemの PESパケットのシンタクスを示す図である。
図 17]MPEG- 2 Systemの PESパケットのシンタクスを示す図である。
図 18]MPEG- 2 Systemの PESパケットのシンタクスを示す図である。
図 19]MPEG- 2 Systemにおける PES_packet()の streamjdに記述される値と、エレメン タリストリームの属性 (種類)との関係を示す図である。
図 20]ディスク装置が採用する streamjdを示す図である。
図 21]private_streaml_PES_payloadOのシンタクスを示す図である。
図 22]private_stream_idの値と、 private_payloadOに格納されるエレメンタリストリームの 属性との関係を示す図である。
[図 23]private_stream2_PES_payloadOのシンタクスを示す図である。
[図 24]aujnformation0のシンタクスを示す図である。
[図 25]"PLAYLIST.DAT〃ファイルの具体例を示す図である。
[図 26]クリップ情報ファイル" 00001. CLP", "00002.CLP", "00003.CLP"の具体例を示 す図である。
[図 27]クリップ情報ファイル" 00001.CLP"の中の EPjnapOの具体例を示す図である。
[図 28]PlayList #0と PlayList #1の中の PlayListMarkOの具体例を示す図である。
[図 29]再生前処理を説明するフローチャートである。
[図 30]再生処理を説明するフローチャートである。
[図 31]PlayItem乗り換え処理を説明するフローチャートである。
[図 32]タイムコード表示処理を説明するフローチャートである。
[図 33]ストリーム切り替え処理を説明するフローチャートである。
[図 34]バッファ制御モジュール 215の処理を説明するフローチャートである。
[図 35]バッファ制御モジュール 215の処理を説明するフローチャートである。
[図 36]ビデオストリームの読み出しの処理を説明するフローチャートである。
[図 37]オーディオストリームの読み出しの処理を説明するフローチャートである。
[図 38]字幕ストリームの読み出しの処理を説明するフローチャートである。
[図 39]再同期処理を説明するフローチャートである。
[図 40]マーク処理を説明するフローチャートである。
[図 41]出力属性の制御処理を説明するフローチャートである。
[図 42]クリップ情報ファイル" 00003.CLP"に記述されている pts_change_pointと Dynami clnfoOとのセットの具体例を示す図である。
[図 43]字幕表示制御処理を説明するフローチャートである。
[図 44]キヤプチャ制御処理とバックグラウンド Zスクリーンセーバ処理を説明するフロ 一チャートである。
[図 45]private_stream2_PES_payloadOの他のシンタクスを示す図である。
[図 46]aujnformation0の他のシンタクスを示す図である。 符号の説明
[0017] 101 ディスク, 102 ディスクドライブ, 111 バス, 112 CPU, 113 メモリ,
114 ドライブインターフェース, 115 入力インターフェース, 116 ビデオデコ ーダ, 117 オーディオデコーダ, 118 ビデオ出力インターフェース, 119 ォ 一ディォ出力インターフェース, 120 ビデオ出力端子, 121 オーディオ出力端 子, 201 オペレーティングシステム, 210 ビデオコンテンツ再生プログラム, 2 11 スクリプト制御モジュール, 212 プレイヤ制御モジュール, 213 コンテンツ データ供給モジュール, 214 デコード制御モジュール, 214A 計時部, 215 バッファ制御モジュール, 215A バッファ, 216 ビデオデコーダ制御モジュール , 217 オーディオデコーダ制御モジュール, 218 字幕デコーダ制御モジュール , 219 グラフィクス処理モジュール, 220 ビデオ出力モジュール, 220A FIF 0, 221 オーディオ出力モジュール, 221A FIFO, 231 データ先頭ポインタ 記憶部, 232 データ書き込みポインタ記憶部, 233 ビデオ読み出し機能部, 234 オーディオ読み出し機能部, 235 字幕読み出し機能部, 241 ビデオ読 み出しポインタ記憶部, 242 streamjdレジスタ, 243 aujnformationOレジスタ 2 43, 251 オーディオ読み出しポインタ記憶部, 252 streamjdレジスタ, 253 private_stream_idレジスタ, 261 字幕読み出し機能フラグ記憶部 261, 262 字 幕読み出しポインタ記憶部, 263 streamjdレジスタ, 264 private_stream_idレジ スタ
発明を実施するための最良の形態
[0018] 以下、図面を参照して、本発明の実施の形態について説明する。
[0019] [ハードウェア構成]
図 1は、本発明を適用したディスク装置の一実施の形態のハードウェアの構成例を 示すブロック図である。
[0020] 図 1のディスク装置は、例えば、ディスクプレーヤや、ゲーム装置、カーナビゲーショ ンシステムその他に適用することができる。
[0021] 図 1のディスク装置において、ディスク 101は、例えば、 DVDなどの光ディスク、ある いは光磁気ディスク、磁気ディスクなどであり、ビデオデータや、オーディオデータ、 字幕データなどのコンテンツデータ、さらには、コンテンツデータを再生するのに必要 なデータが記録されて 、る。
[0022] なお、ディスク 101に記録されるデータ(記録データ)には、必要に応じて、コンビュ ータが実行可能なプログラムも含まれる。また、本実施の形態では、記録媒体として、 ディスク状の記録媒体であるディスク 101を採用するが、その他、記録媒体としては、 例えば、半導体メモリや、テープ状の記録媒体であってもよい。さらに、図 1のディスク 装置には、遠方にあるディスク 101から読み出されて送信されてくるデータを入力す ることができる。即ち、ディスク 101からのデータの読み出しは、ディスク装置に接続し た別の装置で行い、その別の装置で読み出されたデータを、ディスク装置で受信し て処理することができる。また、ディスク装置では、ディスク 101に記録されたデータと 同様のデータをストレージに記憶して 、るサーバ等から、インターネット等のネットヮ ークを介して、データの配信を受けて処理することも可能である。さら〖こ、ディスク装 置では、サーバその他の装置からのデータを受信し、ー且、ディスク 101に記録して から、そのディスク 101に記録されたデータを処理することも可能である。
[0023] ディスクドライブ 102には、ディスク 101が着脱可能になっている。ディスクドライブ 1 02は、図示せぬインターフェースを内蔵し、そのインターフェースを通じて、ドライブ インターフェース 114に接続されている。ディスクドライブ 102は、そこに装着されたデ イスク 101を駆動し、ドライブインターフェース 114からの読み出し等の命令にしたが つて、ディスク 101からデータを読み出して、ドライブインターフェース 114に供給する 等の処理を行う。
[0024] バス 111には、 CPU(Central Processing Unit) 112,メモリ 113、ドライブインターフェ ース 114、入力インターフェース 115、ビデオデコーダ 116、オーディオデコーダ 117 、ビデオ出力インターフェース 118、オーディオ出力インターフェース 119が接続され ている。
[0025] CPU112およびメモリ 113は、コンピュータシステムを形成している。即ち、 CPU112 は、メモリ 113に記憶されたプログラムである、後述するソフトウェアモジュール群を実 行し、ディスク装置全体を制御するとともに、後述する各種の処理を行う。メモリ 113 は、 CPU112が実行するソフトウェアモジュール群を記憶している。また、メモリ 113は 、 CPU112の動作上必要なデータを一時記憶する。なお、メモリ 113は、不揮発性メ モリのみ、または揮発性メモリと不揮発性メモリとの組み合わせで構成することが可能 である。また、図 1のディスク装置に、ハードディスクを設け、そのハードディスクに、 C PU112が実行するソフトウェアモジュール群を記録 (インストール)しておく場合には、 メモリ 113は、揮発性メモリのみで構成することが可能である。
[0026] ここで、 CPU112が実行するプログラム(ソフトウェアモジュール群)は、ディスク装置 に内蔵されて 、る記録媒体としてのメモリ 113に予め記録しておく(記憶させておく) ことができる。
[0027] あるいはまた、プログラムは、ディスク 101、さらには、ディスク 101以外のフレキシブ ノレディスク、 CD— ROM(Compact Disc Read Only Memory), MO(Magneto Optical)ディ スク、磁気ディスク、メモリカードなどのリムーバブル記録媒体に、一時的あるいは永 続的に格納 (記録)しておくことができる。このようなリムーバブル記録媒体は、いわゆ るパッケージソフトウェアとして提供することができる。
[0028] なお、プログラムは、メモリ 113にあら力じめ記憶させておくこと、あるいは、上述した ようなリムーバブル記録媒体力もディスク装置にインストールすることができる。また、 プログラムは、ダウンロードサイトから、ディジタル衛星放送用の人工衛星を介して、 ディスク装置に無線で転送したり、 LAN(Local Area Network),インターネットといった ネットワークを介して、ディスク装置に有線で転送し、ディスク装置では、そのようにし て転送されてくるプログラムを、入力インターフェース 115で受信し、内蔵するメモリ 1 13にインストールすることができる。
[0029] さらに、プログラムは、 1の CPUにより処理されるものであっても良いし、複数の CPU によって分散処理されるものであっても良い。
[0030] ドライブインターフェース 114は、 CPU112の制御の下、ディスクドライブ 102を制御 し、これにより、ディスクドライブ 102がディスク 101から読み出したデータを、ノ ス 111 を介して、 CPU112や、メモリ 113、ビデオデコーダ 116、オーディオデコーダ 117な どに供給する。
[0031] 入力インターフェース 115は、図示せぬキー(ボタン)や、リモコン(リモートコント口 ーラ)がユーザに操作されることによって供給される信号を受信し、バス 111を介して 、 CPU112に供給する。なお、入力インターフェース 115は、その他、例えば、モデム (ADSL(Asymmetric Digital Subscriber Line)モデムを含む)や、 NIC(Network Interfac e Card)などの通信インターフェースとしても機能する。
[0032] ビデオデコーダ 116は、ディスクドライブ 102によってディスク 101から読み出され、 ドライブインターフェース 114およびバス 111を介して供給される、ビデオデータの符 号化データ (符号ィ匕オーディオデータ)をデコードし、その結果得られるビデオデータ を、バス 111を介して、 CPU112やビデオ出力インターフェース 118に供給する。
[0033] オーディオデコーダ 117は、ディスクドライブ 102によってディスク 101から読み出さ れ、ドライブインターフェース 114およびバス 111を介して供給される、オーディオデ ータの符号化データ (符号ィ匕オーディオデータ)をデコードし、その結果得られるォ 一ディォデータを、バス 111を介して、 CPU112やオーディオ出力インターフェース 1 19に供給する。
[0034] ビデオ出力インターフェース 118は、バス 111を介して供給されるビデオデータに 必要な処理を施し、ビデオ出力端子 120から出力する。オーディオ出力インターフエ ース 119は、バス 111を介して供給されるオーディオデータに必要な処理を施し、ォ 一ディォ出力端子 121から出力する。
[0035] ビデオ出力端子 120は、図示せぬ CRT(Cathode Ray Tube)や、液晶パネル等のビ デォ出力装置に接続されており、従って、ビデオ出力端子 120から出力されるビデオ データは、ビデオ出力装置に供給されて表示される。オーディオ出力端子 121は、 図示せぬスピーカやアンプなどのオーディオ出力装置に接続されており、従って、ォ 一ディォ出力端子 121から出力されるオーディオデータは、オーディオ出力装置に 供給されて出力される。
[0036] なお、ディスク装置から、ビデオ出力装置とオーディオ出力装置へのビデオデータ とオーディオデータの供給は、有線または無線の 、ずれによって行うことも可能であ る。
[0037] [ソフトウェアモジュール群の構成]
次に、図 2は、図 1の CPU112が実行するソフトウェアモジュール群の構成例を示し ている。 [0038] CPU112が実行するソフトウェアモジュール群は、オペレーティングシステム(OS) 2 01と、アプリケーションプログラムとしてのビデオコンテンッ再生プログラム 210に大 別される。
[0039] 「オペレーティングシステム 201」
オペレーティングシステム 201は、ディスク装置の電源が投入されると最初に起動し (CPU112がオペレーティングシステム 201を実行し)、初期設定等の必要な処理を 行 、、アプリケーションプログラムであるビデオコンテンツ再生プログラム 210を呼び 出す。
[0040] オペレーティングシステム 201は、ビデオコンテンツ再生プログラム 210に対して、 フアイノレの読み出し等のインフラ(インフラストラクチャ (infrastructure))的なサービスを 提供する。即ち、オペレーティングシステム 201は、例えば、ファイルの読み出しに関 しては、ビデオコンテンツ再生プログラム 210からのファイルの読み出しのリクエストに 対して、ドライブインターフェース 114を介してディスクドライブ 102を操作して、デイス ク 101のデータを読み出し、ビデオコンテンツ再生プログラム 210に渡すサービスを 提供する。また、オペレーティングシステム 201は、ファイルシステムの解釈等も行う。
[0041] なお、オペレーティングシステム 201は、マルチタスク処理の機能を備えており、複 数のソフトウェアモジュールを、時分割で (見かけ上)同時に動作させることができる。 即ち、ビデオコンテンツ再生プログラム 210は、幾つかのソフトウェアモジュールで構 成される力 各ソフトウェアモジュールは、並列で動作することができる。
[0042] 「ビデオコンテンッ再生プログラム 210」
ビデオコンテンツ再生プログラム 210は、スクリプト制御モジュール 211、プレイヤ制 御モジュール 212、コンテンツデータ供給モジュール 213、デコード制御モジュール 214、バッファ制御モジュール 215、ビデオデコーダ制御モジュール 216、オーディ ォデコーダ制御モジュール 217、字幕デコーダ制御モジュール 218、グラフィックス 処理モジュール 219、ビデオ出力モジュール 220、およびオーディオ出力モジユー ル 221で構成されている。
[0043] ビデオコンテンツ再生プログラム 210は、ディスク 101の再生にあたって中心的な役 割を果たすソフトウェアであり、ディスク 101がディスクドライブ 102に装着 (挿入)され ると、そのディスク 101が、コンテンツが記録された後述するフォーマットのディスクで あるかを確認する。さらに、ビデオコンテンツ再生プログラム 210は、ディスク 101から 、後述するスクリプトファイルを読み出して実行し、また、ディスク 101から、そのディス ク 101に記録されたコンテンツを再生するのに必要なメタデータ (データベース情報) のファイルを読み出し、そのメタデータに基づいて、コンテンツの再生を制御する。
[0044] 以下、図 2のビデオコンテンツ再生プログラム 210を構成するソフトウェアモジユー ルについて説明する。なお、図 2においては、原則として、実線の矢印は、コンテンツ のデータを表し、点線の矢印は、制御のデータを表す。
[0045] 「スクリプト制御モジュール 211」
スクリプト制御モジュール 211は、ディスク 101に記録されたスクリプトファイルに記 述されて!/、るスクリプトプログラム (スクリプト)を解釈して実行する。スクリプトプロダラ ムでは、例えば、「グラフィクス処理モジュール 219を操作し、メニュー等の画像を作 成して表示する」、「リモコン等の UKUser Interface)からの信号に従いメニューの表示 を変更する(例えば、メニュー上のカーソルを移動する等)」、「プレイヤ制御モジユー ル 212を制御する」等の動作を記述することができる。
[0046] 「プレイヤ制御モジュール 212」
プレイヤ制御モジュール 212は、ディスク 101に記録されて!、るメタデータ(データ ベース情報)等を参照し、コンテンツの再生に関する制御を行う。即ち、プレイヤ制御 モジュール 212は、例えば、ディスク 101に記録されている、後述する PlayListOや Cli p()を解析し、その解析結果にしたがって、コンテンツデータ供給モジュール 213や、 デコード制御モジュール 214、バッファ制御モジュール 215を制御する。また、プレイ ャ制御モジュール 212は、スクリプト制御モジュール 211や入力インターフェース 11 5からの指示にした力^、、再生対象のストリームを切り替える、後述するストリーム切り 替え等の制御を行う。さらに、プレイヤ制御モジュール 214は、デコード制御モジユー ル 214から時刻を取得し、時刻表示や、後述するマーク (MarkO)の処理等を行う。
[0047] 「コンテンツデータ供給モジュール 213」
コンテンツデータ供給モジュール 213は、プレイヤ制御モジュール 212の制御にし たがい、あるいは、バッファ制御モジュール 215に蓄積されたデータの量に基づき、 ディスク 101からのコンテンツのデータやメタデータ等の読み出しを、オペレーティン グシステム 201に要求する。
[0048] なお、オペレーティングシステム 201が、コンテンツデータ供給モジュール 213から の要求に応じてディスク 101から読み出したメタデータ等は、必要なモジュールに供 給される。また、オペレーティングシステム 201が、コンテンツデータ供給モジュール 2 13からの要求に応じてディスク 101から読み出したコンテンツのデータは、バッファ制 御モジュール 215に供給される。
[0049] 「デコード制御モジュール 214」
デコード制御モジュール 214は、プレイヤ制御モジュール 212からの制御にしたが い、ビデオデコーダ制御モジュール 216、オーディオデコーダ制御モジュール 217、 および字幕デコーダ制御モジュール 218の動作を制御する。また、デコード制御モ ジュール 214は、時刻を計時する計時部 214Aを内蔵し、ビデオデコーダ制御モジュ ール 216の制御によって出力されるビデオデータの出力と、そのビデオデータと同期 して出力されるべきデータ(出力データ)の出力、即ち、ここでは、オーディオデコー ダ制御モジュール 217の制御によって出力されるオーディオデータの出力との同期 を管理する。
[0050] 「バッファ制御モジュール 215」
バッファ制御モジュール 215は、図 1のメモリ 113の記憶領域の一部であるバッファ 215Aを内蔵しており、そのバッファ 215Aに、コンテンツデータ供給モジュール 213 がオペレーティングシステム 201に要求を行うことによってディスク 101から読み出さ れたコンテンツのデータを一時記憶する。
[0051] また、バッファ制御モジュール 215は、ビデオデコーダ制御モジュール 216、ォー ディォデコーダ制御モジュール 217、または字幕デコーダ制御モジュール 218の要 求にしたがって、ノッファ 215Aに記憶されたデータを、ビデオデコーダ制御モジュ ール 216、オーディオデコーダ制御モジュール 217、または字幕デコーダ制御モジュ ール 218に供給する。
[0052] 即ち、バッファ制御モジュール 215は、後述する図 3で説明するビデオ読み出し機 能部 233、オーディオ読み出し機能部 234、および字幕読み出し機能部 235を内蔵 している。そして、バッファ制御モジュール 215は、ビデオデコーダ制御モジュール 2 16からのデータの要求を、ビデオ読み出し機能部 233で処理することにより、ノ ッフ ァ 215Aに記憶されたデータを、ビデオデコーダ制御モジュール 216に供給する。同 様に、バッファ制御モジュール 215は、オーディオデコーダ制御モジュール 217から のデータの要求を、オーディオ読み出し機能部 234で処理することにより、ノ ッファ 2 15 Aに記憶されたデータを、オーディオデコーダ制御モジュール 217に供給するとと もに、字幕デコーダ制御モジュール 218からのデータの要求を、字幕読み出し機能 部 235で処理することにより、ノ ッファ 215Aに記憶されたデータを、字幕デコーダ制 御モジュール 218に供給する。
[0053] 「ビデオデコーダ制御モジュール 216」
ビデオデコーダ制御モジュール 216は、バッファ制御モジュール 215内のビデオ読 み出し機能部 233 (図 3)を操作して、ビデオデータを符号化したデータ (ビデオ符号 化データ)を、ビデオアクセスユニット単位で、バッファ制御モジュール 215のバッファ 215Aから読み出し、図 1のビデオデコーダ 116に供給する。また、ビデオデコーダ 制御モジュール 216は、ビデオデコーダ 116を制御し、ビデオアクセスユニット単位 のデータをデコードさせる。さらに、ビデオデコーダ制御モジュール 216は、ビデオデ コーダ 116でのデコードの結果得られるビデオデータを、グラフィクス処理モジュール 219に供給する。
[0054] ここで、ビデオアクセスユニットとは、例えば、ビデオデータの 1ピクチャ(1フレーム または 1フィールド)分である。
[0055] 「オーディオデコーダ制御モジュール 217」
オーディオデコーダ制御モジュール 217は、バッファ制御モジュール 215内のォー ディォ読み出し機能部 234 (図 3)を操作して、オーディオデータを符号化したデータ (オーディオ符号ィ匕データ)を、オーディオアクセスユニット単位で、ノ ッファ制御モジ ユール 215のバッファ 215Aから読み出し、図 1のオーディオデコーダ 117に供給す る。また、オーディオデコーダ制御モジュール 217は、オーディオデコーダ 117を制 御し、オーディオアクセスユニット単位のデータをデコードさせる。さらに、オーディオ デコーダ制御モジュール 217は、オーディオデコーダ 117でのデコードの結果得ら れるオーディオデータを、オーディオ出力モジュール 221に供給する。
[0056] ここで、オーディオアクセスユニットとは、オーディオデータの所定のデータ量分 (例 えば、 1ピクチャに同期して出力される分)である。本実施の形態では、オーディオア クセスユニットは、例えば、既知の固定長であるとする。
[0057] 「字幕デコーダ制御モジュール 218」
字幕デコーダ制御モジュール 218は、バッファ制御モジュール 215内の字幕読み 出し機能部 235 (図 3)を操作して、字幕データを符号化したデータ (字幕符号化デ ータ)を、字幕アクセスユニット単位で、バッファ制御モジュール 215のバッファ 215A から読み出す。また、字幕デコーダ制御モジュール 218は、内部に、図示せぬ字幕 デコードソフトウェアを備えており、ノッファ 215Aから読み出したデータをデコードす る。さらに、字幕デコーダ制御モジュール 218は、そのデコードの結果得られる字幕 データ(字幕の画像データ)を、グラフィクス処理モジュール 219に供給する。
[0058] ここで、字幕アクセスユニットとは、字幕データの所定のデータ量分 (例えば、 1ピク チヤに同期して出力される分)である。本実施の形態では、字幕アクセスユニットのサ ィズは、例えば、その字幕アクセスユニットの先頭に記述されていることとする。
[0059] 「グラフィクス処理モジュール 219」
グラフィクス処理モジュール 219は、プレイヤ制御モジュール 212の制御(指示)に したが 、、字幕デコーダ制御モジュール 218からの字幕データの拡大や縮小を行 ヽ 、ビデオデコーダ制御モジュール 216からのビデオデータと加算(オーバーレイ)する さらに、グラフィクス処理モジュール 219は、字幕データとの加算後のビデオデータの サイズ (画枠)を、図 1のビデオ出力端子 120に接続されたビデオ出力装置の表示画 面にあわせるための拡大または縮小等を行い、その結果得られるビデオデータを、ビ デォ出力モジュール 220に出力する。
[0060] また、グラフィクス処理モジュール 219は、スクリプト制御モジュール 211やプレイヤ 制御モジュール 212の指示 (制御)に従い、メニューやメッセージ等を生成し、出力ビ デォデータにオーバーレイする。
[0061] さらに、グラフィクス処理モジュール 219は、図 1のビデオ出力端子 120に接続され たビデオ出力装置のアスペクト比と、ディスク 101に記録されたビデオデータのァス ぺクト比を指示する情報等とに基づいて、ビデオ出力モジュール 220に出力するビ デォデータのアスペクト比の変換を行う。
[0062] 即ち、例えば、ビデオ出力装置のアスペクト比が 16:9である場合において、ビデオ データのアスペクト比を指示する情報力 :3のアスペクト比を表しているときには、ダラ フィクス処理モジュール 219は、ビデオ出力モジュール 220に出力するビデオデータ を、横方向(水平方向)にスクイーズ (縮小)処理し、左右に黒味を入れて出力する。 また、例えば、ビデオ出力装置のアスペクト比が 4:3である場合において、ビデオデー タのアスペクト比を指示する情報が 16:9のアスペクト比を表しているときには、グラフィ タス処理モジュール 219は、ビデオ出力モジュール 220に出力するビデオデータを、 縦方向(垂直方向)にスクイーズ (縮小)処理し、上下に黒味を入れて出力する。
[0063] なお、ビデオ出力装置のアスペクト比と、ビデオデータのアスペクト比を指示する情 報が表すアスペクト比と力 いずれも、 4:3や 16:9で、同一である場合、グラフィクス処 理モジュール 219は、ビデオ出力モジュール 220に出力するビデオデータを、スクイ ーズ処理することなぐそのまま出力する。
[0064] その他、グラフィクス処理モジュール 219は、例えば、プレイヤ制御モジュール 212 力 の要求に応じて、現在処理中のビデオデータをキヤプチャする。さらに、グラフィ タス処理モジュール 219は、そのキヤプチヤしたビデオデータを記憶し、あるいは、プ レイヤ制御モジュール 212に供給する。
[0065] 「ビデオ出力モジュール 220」
ビデオ出力モジュール 220は、図 1のメモリ 113の一部を排他的に占有して FIFO(F irst In First Out)220A (バッファ)として使用し、グラフィクス処理モジュール 219から のビデオデータを一時的に記憶し、また、その FIFO220Aに記憶されたビデオデー タを適宜読み出して、ビデオ出力端子 120 (図 1)に出力する。
[0066] 「オーディオ出力モジュール 221」
オーディオ出力モジュール 221は、図 1のメモリ 113の一部を排他的に占有して FIF 0221A (バッファ)として使用し、オーディオデコーダ制御モジュール 217 (オーディ ォデコーダ 117)力ものオーディオデータを一時的に記憶し、また、その FIF0221A に記憶されたオーディオデータを適宜読み出して、オーディオ出力端子 121 (図 1) に出力する。
[0067] さらに、オーディオ出力モジュール 221は、オーディオデコーダ制御モジュール 21 7からのオーディオデータが、左チャネルが「主音声」のオーディオデータで、右チヤ ネルの「副音声」のオーディオデータであるデュアル (Dual) (ニケ国語)モードのォー ディォデータである場合、あら力じめ指定された音声出力モードに従って、オーディ ォデコーダ制御モジュール 217からのオーディオデータを、オーディオ出力端子 12 1に出力する。
[0068] 即ち、音声出力モードとして、例えば、「主音声」が指定されているときには、オーデ ィォ出力モジュール 221は、オーディオデコーダ制御モジュール 217からのオーディ ォデータのうちの左チャネルのオーディオデータを、右チャネルのオーディオデータ としてコピーし、その左チャネルと右チャネルのオーディオデータ(「主音声」のォー ディォデータ)を、オーディオ出力端子 121に出力する。また、音声出力モードとして 、「副音声」が指定されているときには、オーディオ出力モジュール 221は、オーディ ォデコーダ制御モジュール 217からのオーディオデータのうちの右チャネルのォー ディォデータを、左チャネルのオーディオデータとしてコピーし、その左チャネルと右 チャネルのオーディオデータ(「副音声」のオーディオデータ)を、オーディオ出力端 子 121に出力する。さらに、音声出力モードとして、「主 ·副」が指定されているときに は、オーディオ出力モジュール 221は、オーディオデコーダ制御モジュール 217から のオーディオデータを、そのまま、オーディオ出力端子 121に出力する。
[0069] なお、オーディオデコーダ制御モジュール 217からのオーディオデータが、ステレ ォ (Stereo)モードのオーディオデータである場合、オーディオ出力モジュール 221は 、音声出力モードの指定にかかわらず、オーディオデコーダ制御モジュール 217から のオーディオデータを、そのまま、オーディオ出力端子 121に出力する。
[0070] ここで、音声出力モードの指定は、例えば、ビデオコンテンツ再生プログラム 210が 生成するメニューが表示された画面等にぉ 、て、ユーザがリモコン等を操作すること により対話的に行うことができる。
[0071] [バッファ制御モジュール 215の構成] 次に、図 3は、図 2のバッファ制御モジュール 215の構成例を示している。
[0072] バッファ制御モジュール 215は、図 1のメモリ 113の一部を、バッファ 215Aとして排 他的に使用し、そのバッファ 215Aに、ディスク 101から読み出されたデータを一時記 憶させる。また、ノ ッファ制御モジュール 215は、ノッファ 215Aに記憶されたデータ を読み出して、図 2のビデオデコーダ制御モジュール 216、オーディオデコーダ制御 モジュール 217、または字幕デコーダ制御モジュール 218に供給する。
[0073] 即ち、バッファ制御モジュール 215は、バッファ 215Aの他、メモリ 113の一部である データ先頭ポインタ記憶部 231、およびデータ書き込みポインタ記憶部 232を有する とともに、内部モジュールとして、ビデオ読み出し機能部 233、オーディオ読み出し機 能部 234、字幕読み出し機能部 235を有する。
[0074] ノッファ 215Aは、例えば、リングバッファであり、ディスク 101から読み出されたデ ータを順次記憶し、その記憶容量分のデータを記憶した後は、最も古いデータに上 書きする形で、最新のデータを、いわば無限ループ状に記憶していく。
[0075] データ先頭ポインタ記憶部 231は、ノ ッファ 215Aに記憶されたデータのうち、まだ 、ノッファ 215Aから読み出されて 、な 、最も古!、データが記憶されて 、る位置(アド レス)を指すデータ先頭ポインタを記憶する。
[0076] データ書き込みポインタ記憶部 232は、ディスク 101から読み出された最新のデー タが書き込まれるバッファ 215Aの位置 (アドレス)を指す書き込みポインタを記憶する
[0077] ここで、データ書き込みポインタが指す位置は、バッファ 215Aに、ディスク 101から 読み出されたデータが記憶されるごとに、図中、右回り(時計回り)に更新されていき 、データ先頭ポインタが指す位置は、ノ ッファ 215Aからのデータの読み出しに応じ て、図中、右回りに更新されていく。したがって、ノ ッファ 215Aに記憶されたデータ のうち、いわば有効なデータは、データ先頭ポインタが指す位置から、右回りに、デ ータ書き込みポインタが指す位置までに記憶されているデータである。
[0078] ビデオ読み出し機能部 233は、図 2のビデオデコーダ制御モジュール 216からの要 求に応じて、バッファ 215A力 ビデオストリーム(ビデオデータに関するエレメンタリ ストリーム)を読み出し、ビデオデコーダ制御モジュール 216に供給する。オーディオ 読み出し機能部 234も、図 2のオーディオデコーダ制御モジュール 217からの要求 に応じて、ノ ッファ 215A力もオーディオストリーム (オーディオデータに関するエレメ ンタリストリーム)を読み出し、オーディオデコーダ制御モジュール 217に供給する。 字幕読み出し機能部 235も、図 2の字幕デコーダ制御モジュール 218からの要求に 応じて、ノッファ 215Aから字幕ストリーム (字幕データに関するエレメンタリストリーム )を読み出し、字幕デコーダ制御モジュール 218に供給する。
[0079] 即ち、光ディスク 101には、例えば、 MPEG(Moving Picture Experts Group)2の規格 に準拠したプログラムストリーム(MPEG2- System Program Stream)が記録されており 、ノッファ 215Aには、光ディスク 101から読み出されたプログラムストリームが記憶さ れる。このプログラムストリームは、ビデオストリームや、オーディオストリーム、字幕スト リーム等の 1以上のエレメンタリストリームが時分割多重されている。ビデオ読み出し 機能部 233は、プログラムストリームのデマルチプレタスの機能を有し、ノ ッファ 215 Aに記憶されたプログラムストリームから、ビデオストリームを分離して読み出す。
[0080] 同様に、オーディオ読み出し機能部 234も、プログラムストリームのデマルチプレク スの機能を有し、ノ ッファ 215Aに記憶されたプログラムストリームから、オーディオス トリームを分離して読み出す。字幕読み出し機能部 235も、プログラムストリームのデ マルチプレタスの機能を有し、バッファ 215Aに記憶されたプログラムストリームから、 字幕ストリームを分離して読み出す。
[0081] ここで、ビデオ読み出し機能部 233は、図 1のメモリ 113の一部であるビデオ読み出 しポインタ記憶部 241、 streamjdレジスタ 242、および aujnformationOレジスタ 243を 有している。
[0082] ビデオ読み出しポインタ記憶部 241は、バッファ 215Aの、ビデオストリームが記憶 された位置 (アドレス)を指すビデオ読み出しポインタを記憶し、ビデオ読み出し機能 部 233は、ノ ッファ 215Aの、ビデオ読み出しポインタが指す位置に記憶されている データを、ビデオストリームとして読み出す。 streamjdレジスタ 242は、バッファ 215A に記憶されたプログラムストリームを解析し、そのプログラムストリームの中力も読み出 すビデオストリームを識別(特定)するための後述する streamjdを記憶する。 aujnform ationOレジスタ 243は、バッファ 215Aからビデオストリームを読み出すために必要な( ビデオストリームの読み出しに利用される)データである後述する aujnformationOを記 憶する。
[0083] オーディオ読み出し機能部 234は、図 1のメモリ 113の一部であるオーディオ読み 出しポインタ記憶部 251、 streamjdレジスタ 252、および private_stream_idレジスタ 25 3を有している。
[0084] オーディオ読み出しポインタ記憶部 251は、バッファ 215Aの、オーディオストリーム が記憶された位置 (アドレス)を指すオーディオ読み出しポインタを記憶し、オーディ ォ読み出し機能部 234は、ノ ッファ 215Aの、オーディオ読み出しポインタが指す位 置に記憶されているデータを、オーディオストリームとして読み出す。 streamjdレジス タ 252と private_stream_idレジスタ 253は、バッファ 215Aに記憶されたプログラムスト リームを解析し、そのプログラムストリームの中力 読み出すオーディオストリームを識 別するための後述する streamjdと private_stream_idを、それぞれ記憶する。
[0085] 字幕読み出し機能部 235は、図 1のメモリ 113の一部である字幕読み出し機能フラ グ記憶部 261、字幕読み出しポインタ記憶部 262、 streamjdレジスタ 263、および pri vate_stream jdレジスタ 264を有して!/、る。
[0086] 字幕読み出し機能フラグ記憶部 261は、字幕読み出し機能フラグを記憶する。字 幕読み出し機能フラグ記憶部 261に記憶された字幕読み出し機能フラグ力 例えば 0である場合、字幕読み出し機能部 235は機能動作せず、字幕読み出し機能フラグ 記憶部 261に記憶された字幕読み出し機能フラグが、例えば 1である場合、字幕読 み出し機能部 235は機能する。
[0087] 字幕読み出しポインタ記憶部 262は、ノ ッファ 215Aの、字幕ストリームが記憶され た位置 (アドレス)を指す字幕読み出しポインタを記憶し、字幕読み出し機能部 235 は、ノ ッファ 215Aの、字幕読み出しポインタが指す位置に記憶されているデータを、 字幕ストリームとして読み出す。 streamjdレジスタ 263と private_stream_idレジスタ 264 は、ノ ッファ 215Aに記憶されたプログラムストリームを解析し、そのプログラムストリー ムの中力 読み出す字幕ストリームを識別するための後述する streamjdと private_stre amjdを、それぞれ記憶する。
[0088] [ディスク 101に記録されたデータのデータフォーマットの説明] 次に、ディスク 101に記録されたデータのデータフォーマットについて説明する。
[0089] 図 4は、ディスク 101のディレクトリ構造を模式的に示している。
[0090] ディスク 101のファイルシステムとしては、例えば、 ISOdnternational Organization fo r Standardization)— 9660や、 UDF(Universai DISK Format:http://www.osta.org/specs /)などで規定されたファイルシステムが用いられており、ディスク 101に記録されたデ ータのファイルはディレクトリ構造により階層的に管理されている。ここで、ファイルシ ステムは、上述したファイルシステムに限定されるものではな!/、。
[0091] 図 4では、ファイルシステムの基点を示すルート (root)ディレクトリに、 "VIDEO"ディレ クトリが置かれ、 "VIDEO"ディレクトリには、 "CLIP"ディレクトリと、 "STREAM"ディレクト リとの 2つのディレクトリが置かれている。
[0092] "VIDEO"ディレクトリには、 "CLIP"ディレクトリと" STREAM"ディレクトリとの 2つのディ レクトリの他に、 "SCRIPT.DAT"ファイルと、 "PLAYLIST.DAT"ファイルの 2つのデータ ファイルが置かれている。
[0093] "SCRIPT.DAT〃ファイルは、スクリプトプログラムが記述されたスクリプトファイルであ る。即ち、 "SCRIPT.DAT"ファイルには、ディスク 101の再生形態をインタラクティブな ものとするために使用するスクリプトプログラムが記述されている。この" SCRIPT.DAT" ファイルに記述されたスクリプトプログラムは、図 2のスクリプト制御モジュール 211に よって解釈、実行される。
[0094] "PLAYLIST.DAT"ファイルには、ディスク 101に記録されたビデオデータ等のコン テンッの再生手順が記述されたプレイリスト(後述する図 5の PlayListO)が 1以上格納 されている。
[0095] "CLIP"ディレクトリには、 1以上のクリップ情報ファイルが置かれ、 "STREAM"ディレ クトリには、 1以上のクリップストリームファイルが置かれる。即ち、図 4では、 "CLIP"デ ィレクトリには、 3つのクリップ情報ファイル" 00001. CLP", "00002.CLP", "00003.CLP "が置かれており、 "STREAM"ディレクトリには、 3つのクリップストリームファイル" 0000 LPS", "00002.PS", "00003.PS"が置かれている。
[0096] クリップストリームファイルには、ビデオデータ、オーディオデータ、字幕データなど の 1以上のデータ (ストリーム)を圧縮、符号ィ匕して得られる 1以上のエレメンタリストリ ームを時分割多重化したプログラムストリームが格納されている。
[0097] クリップ情報ファイルには、対応するクリップストリームファイルの性質等の、クリップ ストリームに関する(ファイル)メタデータが記述されている。
[0098] 即ち、クリップストリームファイルとクリップ情報ファイルとは、 1対 1に対応している。
図 4では、クリップストリームファイルには、 5文字の数字 +ピリオド +"PS"という命名規 則にしたがって、ファイル名が付されており、クリップ情報ファイルには、対応するタリ ップストリームファイルと同一の 5文字の数字 +ピリオド +"CLP"という命名規則にした がって、ファイル名が付されている。
[0099] 従って、ファイルが、クリップストリームファイルまたはクリップ情報ファイルのうちのい ずれであるかは、ファイル名の拡張子 (ピリオドより右側の部分)によって識別すること ができ、さらに、対応するクリップストリームファイルとクリップ情報ファイルとは、フアイ ル名の拡張子以外の部分 (ピリオドより左側の部分)がー致するかどうかによって識別 することができる。
[0100] 以下、ディスク 101に記録された各ファイルの詳細について説明する。
[0101] 「PLAYLIST.DAT」
図 5は、図 4の' VIDEO"ディレクトリ下の" PLAYLIST.DAT"ファイルの内部構造(シ ンタクス (syntax))を示して 、る。
[0102] ここで、図 5において、 "Syntax〃の欄の記載がデータ構造を表し、 "No. of bits"の欄 の記載は、対応する行の" Syntax〃の欄のデータのビット長を表す。さらに、 "Mnemoni c"の欄の記載のうちの〃 bslb bit string left bit first)は、対応する行の" Syntax〃の欄 のデータが左のビットから送り出されることを意味し、 "uimsb unsigned integer most significant bit first)は、対応する行の" Syntax〃の欄のデータ力 符号なし整数値であ り、最上位ビットから送り出されることを意味する。以下説明する、図 5と同様の図につ いても、同様である。
[0103] "PLAYLIST.DAT"ファイルにおいては、その先頭から、その名称(ファイル名)等の 情報を記述するための namejength (8ビット)と name_string (255バイト)が順次配置さ れる。
[0104] 即ち、 namejengthは、その後に配置される name_stringのサイズを、バイト数で表す name_stringは、 "PLAYLIST.DAT"ファイルの名称(ファイル名 )を表す。
[0105] なお、 name_stringについては、その先頭から、 namejengthで表されるバイト数まで が有効な名称として使用される。たとえば namejengthが値 10である場合には、 name_s tringの先頭から 10バイト分が有効な名称として解釈される。
[0106] name_stringの後には、 number.of PlayLists (16ビット)が配置される。 number_of_Play Listsは、続く PlayListOの個数を表す。 number_of_PlayListsの後に、その number_of_Pla yListsの数だけの PlayListOが配置される。
[0107] PlayListOは、ディスク 101に記録されたクリップストリームファイルの再生手順が記 述されたプレイリストであり、以下のような内部構造を有する。
[0108] 即ち、 PlayListOの先頭には、 PlayList_data_length (32ビット)が配置される。 PlayList_ datajengthは、その PlayListOのサイズを表す。
[0109] PlayList— data— lengthの後には、 reserved— for— word— alignment (15ビット)と capture— ena ble_flag_PlayList (1ビット)力順次配置される。 15ビットの reserved_for_word_alignmentは 、その後に配置される 1ビットの capture_enable_flag_PlayListの位置で、いわゆるワード ァライン (word alignment)をとるため(16ビットの位置に揃えるため)に配置される。 cap ture_enable_flag_PlayListは、 PlayListOによって再生されるビデオストリームに対応す るビデオデータ(PlayListOに属するビデオデータ)の、光ディスク 101が再生される図 1のディスク装置内での 2次利用を許可するか否かを表す 1ビットのフラグである。 cap ture_enable_flag_PlayListが、 0または 1のうちの、例えば 1である場合、 PlayListOに属 するビデオデータの 2次利用が許可されて 、ることを表し、 capture_enable_flag_PlayLi stが、 0または 1のうちの、例えば 0である場合、 PlayListOに属するビデオデータの 2 次利用が許可されて 、な ヽ (禁止されて 、る)ことを表す。
[0110] なお、図 5では、 capture_enable_flag_PlayListを 1ビットとしたが、その他、 capture_ena ble _flag_PlayListは、複数ビットで構成し、 PlayListOに属するビデオデータの 2次利用 を、いわば段階的に許可するようにすることが可能である。即ち、 capture_enable_flag_ PlayListは、例えば、 2ビットで構成することができる。そして、 capture_enable_flag_Play Listの値が 00B (Bは、その前の数字が 2進数であることを表す)である場合には、ビデ ォデータの 2次利用を禁止し、 capture_enable_flag_PlayListの値力 1Βである場合に は、ビデオデータを、 64 X 64ピクセル以下のサイズに縮小して利用する 2次利用のみ を許可することができる。また、 capture_enable_flag_PlayListの値が 10Bである場合に は、サイズの制限なしで、ビデオデータの 2次利用を許可することができる。
[0111] さらに、上述のように、ビデオデータの 2次利用にあたって、サイズに制限を設ける のではなぐ用途に制限を設けるようにすることも可能である。即ち、 capture_enable_fl ag_PlayListの値が 01Bである場合には、ビデオコンテンツ再生アプリケーション 210 ( 図 2)のみでの 2次利用を許可し、 capture_enable_flag_PlayListの値が 10Bである場合 には、図 1のディスク装置内の、ビデオコンテンツ再生アプリケーション 210を含む任 意のアプリケーションによる 2次利用を許可することができる。ここで、図 1のディスク装 置内のビデオコンテンツ再生アプリケーション 210以外のアプリケーションとしては、 例えば、壁紙 (バックグラウンド)やスクリーンセーバーの表示の処理を行うアプリケー シヨンなどがある。
[0112] なお、 capture_enable_flag_PlayListを、上述のように、 2ビットとした場合、その前に配 置される reserved_for_word_alignmentは、ワードァラインをとるために、 14ビットとなる。
[0113] また、 capture_enable_flag_PlayListにより、ビデオデータのディスク装置内での 2次利 用を許可する他、ディスク装置外での 2次利用を許可するようにすることも可能である 。ここで、ビデオデータの、ディスク装置外での 2次利用を許可する場合には、ビデオ データは、例えば、ディスク装置に着脱可能な記録媒体やディスク装置に接続可能 な他の装置に着脱可能な記録媒体に記録され、あるいはインターネット等のネットヮ ークを介して、他の装置に送信 (配信)される。この場合、ビデオデータには、そのビ デォデータを記録媒体に記録する回数や配信する回数を制限する情報を付加する ようにすることができる。
[0114] capture— enable—flag— PlayListに続!、ては、 PlayList— name—length (8ビット)と PlayList— n ame_string (255バイト)とが順次配置される。 PlayList_name_lengthは、その後に配置さ れる PlayList_name_stringのサイズを、バイト数で表し、 PlayList_name_stringは、 PlayLi stOの名称を表す。
[0115] PlayList_name_stringの後には、 number_of_PlavItems (16ビット)が配置される。 numbe r_of_PlayItemsは、続く PlayltemOの個数を表す。
[0116] number_of_PlayItemsの後には、その number_of_PlayItemsの数だけの PlayltemOの構 造が記述される。
[0117] ここで、 1つの PlayListOでは、 PlayltemO単位で、コンテンツの再生手順を記述する ことができる。
[0118] また、 PlayListOの中の、 number_of_PlayItemsの数だけの PlayltemOそれぞれに対し ては、その PlayListOの中でユニークな ID(Identification)が付される。即ち、 PlayListO 中の最初の PlayltemOには、 IDとして 0番が付され、以下、続く PlayltemOに対して、そ の出現順に、 1番、 2番、 · · ·と通し番号の IDが付される。
[0119] number_of_PlayItemsの数だけの PlayltemOの後には、 1つの PlayListMarkOが配置さ れる。 PlayListMarkOは、 PlayListOにしたがって行われる再生の時間軸上の印となる 後述する MarkOの集合で、その詳細については、図 7を参照して後述する。
[0120] 「PlayItem0の説明」
次に、図 6は、図 5の PlayListOに含まれる PlayltemOの内部構造を示している。
[0121] PlayltemOの先頭には、 length (16ビット)が配置され、 lengthは、それを含む Playltem ()のサイズを表す。
[0122] lengthに fee ヽては、し lip— Information— file— name— length (16ヒット)とし lip— Information— fil e_name (可変長)が順次配置される。 Clipjnformationjilejiamejengthは、その後に配 置される Clip_Information_file_nameのサイズを、バイト数で表す。 Clip_Information_file— nameは、 PlayltemOによって再生するクリップストリームファイル(図 4の拡張子が PSの ファイル)に対応するクリップ情報ファイル(図 4の拡張子が CLPのファイル)のファイル 名を表す。なお、クリップストリームファイルおよびクリップ情報ファイルのファイル名の 、上述した命名規則により、 Clip_Information_file_nameから、 PlayltemOによって再生 するクリップ情報ファイルのファイル名を認識し、そのクリップストリームファイルを特定 することができる。
[0123] Clip_Information_file_nameに続 、ては、 IN.time (32ビット)と OUT_time (32ビット)が順 次配置される。
[0124] IN_timeと OUT_timeは、それぞれ、 ClipJnformation_file_nameから特定されるクリップ ストリームファイルの再生開始位置と再生終了位置を指定する時刻情報である。
[0125] IN_timeによれば、クリップストリームファイルの(先頭を含む)途中の位置を再生開始 位置として指定することができ、 OUT_timeによれば、クリップストリームファイルの(最 後を含む)途中の位置を再生終了位置として指定することができる。
[0126] ここで、 PlayltemOによれば、 Clip_Information_file_nameから特定されるクリップストリ ームファイルの、 IN_timeから OUT_timeまでの間のコンテンツが再生される。この Playlt emOによって再生されるコンテンツを、以下、適宜、クリップという。
[0127] 「PlayListMarkOの説明」
次に、図 7は、図 5の PlayListOに含まれる PlayListMarkOの内部構造を示している。
[0128] PlayListMarkOは、上述したように、その PlayListMarkOを含む PlayListO (図 5)にし たがって行われる再生の時間軸上の印となる、 0以上の MarkOの集合である。 1つの MarkOは、 PlayListOにしたがって行われる再生の時間軸上の 1つの時刻(位置)を表 す時刻情報、 MarkOのタイプを表すタイプ情報、およびタイプ情報力 Sイベントを発生さ せるタイプを表しているときの、そのイベントの引数となる引数情報を、少なくとも有す る。
[0129] 即ち、 PlayListMarkOの先頭には、 length (32ビット)が配置される。 lengthは、それを 含む PlayListMarkOのサイズを表す。
[0130] lengthの後には、 number— of— PlayList— marks (16ビット)が配置され、 number— of— PlayLi stjnarksは、それに続いて配置される MarkOの個数を表す。 number_of_PlayList_mark sの後には、その number_of_PlayList_marksの数だけ MarkOの構造が記述される。
[0131] MarkOの先頭には、 mark_type (8ビット)が配置される。 mark_typeは、上述のタイプ 情報であり、それを含む MarkOのタイプを表す。
[0132] 本実施の形態では、 MarkOのタイプとして、例えば、チヤプタ (Chapter)、インデクス (I ndex)、イベント (Event)の 3種類が用意されて!、る。
[0133] タイプがチヤプタの MarkO (以下、適宜、チヤプタマークと 、う)は、 PlayListOを分割 する頭出しの単位であるチヤプタの先頭位置の印である。また、タイプがインデタスの MarkO (以下、適宜、インデクスマークという)は、チヤプタを細分ィ匕した単位であるィ ンデタスの先頭位置の印である。タイプがイベントの MarkO (以下、適宜、イベントマー クという)は、 PlayListOにしたがったコンテンツの再生中においてイベントを発生させ る位置の印である。イベントマークによるイベントの発生は、後述するように、スクリプト 制御モジュール 211に通知される。
[0134] ここで、 mark_typeの値と、 MarkOのタイプとの関係を、図 8に示す。図 8によれば、チ ャプタマークの markj peには、 1力セットされる。また、インデクスマークの mark_type には、 2がセットされ、イベントマークの markj peには、 3がセットされる。なお、図 8で は、 mark_typeで表される 8ビットの値のうちの、 0と、 4乃至 255は、将来の拡張のため の予約 (reserved)とされて 、る。
[0135] 図 7に戻り、 mark_typeの後には、 mark_name_length (8ビット)が配置される。また、 Ma rk()の最後には、 mark— name— string (24ノイト)が酉己置される。 mark— name—lengthと mark— name_stringは、 MarkOの名称を記述するためのものであり、 mark_name_lengthは、 mar k_name_stringの有効なサイズを、 mark_name_stringは、 MarkOの名称を、それぞれ表 す。従って、 mark— name— stringの先頭力ら mark— name—lengths表すノイト数まで;^、 M arkOの有効な名称を表す。
[0136] mark_name_lengthに続 、ては、 PlayListO上で定義される MarkOをクリップストリーム ファイルと対応付ける 4つの要素 ref_to_PlayItemjd (16ビット)、 mark_time_stamp (32ビ ット)、 entry_ES_stream_id (8ビット)、 entry_ES_private_stream_id (8ビット)力順次配置さ れる。
[0137] reむ o_PlayItem_idには、 MarkOが属する PlayltemOに対して通し番号で付された IDが 記述される。 reむ o_PlayItemjdによって、 MarkOが属する PlayltemO (図 6)が特定され 、ひいては、図 6で説明したように、クリップ情報ファイルとクリップストリームファイルが 特定される。
[0138] mark_time_stampは、 ref_to_PlayItemjdによって特定されるクリップストリームファイル 内での MarkOが表す位置(時刻)を表す。
[0139] ここで、図 9は、 PlayListO, PlayItemO、クリップ、およびクリップストリームファイルに 格納されたプログラムストリームの関係を示している。
[0140] 図 9では、 PlayListOは、 3つの PlayltemOから構成されており、その 3つの PlayltemO それぞれには、通し番号で付される ID#0, #1, #2が付されている。ここで、以下、適宜 、 IDffiが付された PlayltemOを、 Playltem#iと記述する。
[0141] また、図 9では、 Playltem#0, Playltem#l, Playltem#2によって再生されるコンテンツ であるクリップ力 それぞれ、クリップ A、クリップ B、クリップ Cとして示されている。
[0142] クリップの実体は、図 6の PlayltemOにおける Clip_Information_file_nameから特定され る(クリップ情報ファイルから、さらに特定される)クリップストリームファイルに格納され たプログラムストリームのうちの、 IN_timeから OUT_timeまでのプログラムストリームであ る。図 9では、クリップ A、クリップ B、クリップ Cの実体としてのプログラムストリームが、 プログラムストリーム A、プログラムストリーム B、プログラムストリーム Cとして、それぞれ 示されている。
[0143] 例えば、図 9において、 PlayListOにしたがって行われる再生の時間軸上の位置(時 刻) tOの印となる MarkOにおいては、その ref_to_PlayItem_idと mark_time_stampは、次 のように記述される。
[0144] 即ち、時刻 t0は、 Playltem#lの再生が行われる時刻であるため、 ref_to_PlayItemjd には、その Playltem#lの IDである 1が記述される。さらに、時刻 t0では、 Playltem#lに よって、クリップ Bの実体であるプログラムストリーム Bが再生されるため、 mark_time_st ampには、プログラムストリーム Bが格納されたクリップストリームファイルにおける時刻 t 0に相当する時刻が記述される。
[0145] 再び、図 7〖こ戻り、 entry_ES_stream_idと、 entry_ES_private_stream_idは、 MarkOを、 特定のエレメンタリストリームに関連付ける場合に、そのエレメンタリストリームを特定 するために使用される。即ち、 entry_ES_stream_idには、 MarkOを関連付けるエレメン タリストリーム(が配置される、後述する図 16乃至図 18に示す PES_packet0)の後述す る stream— id 己 される。ま 7こ、 entry— ES— private— stream— idには、必要に J し L、 Mar k0を関連付けるエレメンタリストリーム(が配置される、後述する図 21に示す private_st reaml— PE¾— payloadOにおけ private— headerO)の後述する private— stream— id力 己 さ れる。
[0146] 例えば、ビデオストリーム # 1とビデオストリーム # 2が多重化されているクリップにお いて、ビデオストリーム # 1を再生している場合と、ビデオストリーム # 2を再生してい る場合でチヤプタの発生時刻を変更したいときには、ビデオストリーム # 1再生時のチ ャプタマーク発生時刻の MarkOの entry_ES_stream_idと entry_ES_private_stream_idに、 ビデオストリーム # 1の streamjdと private_stream_idが記述され、また、ビデオストリー ム # 2再生時のチヤプタマーク発生時刻の Mark ()の entry_ES_stream_idと entry_ES_pr ivate_stream_idに、ヒァォストリーム #
Figure imgf000030_0001
[0147] なお、特定のエレメンタリストリームに関連付けない MarkOの entry_ES_streamjdと、 e ntry_ES_private_stream_idには、例えば、いずれも 0が記述される。
[0148] entry_ES_private_stream_idの後には、 mark.data (32ビット)が配置される。 mark_data は、 MarkOがイベントマークである場合に、そのイベントマークによって発生されるィ ベントの引数となる引数情報である。なお、 mark_dataは、 MarkOがチヤプタマークゃィ ンデタスマークである場合に、そのチヤプタマークやインデクスマークが表すチヤプタ やインデタスの番号として使用することも可能である。
[0149] 「ClipOの説明」
次に、図 4の" CLIP"ディレクトリに置かれる、拡張子が CLPのクリップ情報ファイルの 内部構造について説明する。
[0150] 図 4では、 "CLIP"ディレクトリに、 3つのクリップ情報ファイル" 00001. CLP", "00002.
CLP", "00003.CLP"が置かれており、それぞれには、 "STREAM〃ディレクトリに置か れたクリップストリームファイル" 00001.PS", "00002.PS", "00003.PS"の性質等を示す メタデータが格納されて 、る。
[0151] 図 10は、そのようなクリップ情報ファイル ClipOの内部構造を示している。
[0152] クリップ情報ファイル ClipOの先頭には、 presentation_start_timeと presentation_end_ti me (いずれも 32ビット)力 川頁次配置される。 presentation— start— timeと presentation— en d_timeは、クリップ情報ファイル ClipOに対応するクリップストリームファイル(に格納さ れているプログラムストリーム)の先頭と最後の時刻を表す。なお、クリップストリームフ アイルの時刻は、 MPEG2-Systemの時刻で使われて!/、る 90kHzの倍数で記述される。
[0153] presentation— end— timeに続 、て【ま、 reserved— for— word— alignment (7ヒット)と capture— e nable_flag_Clip (1ビット)が順次配置される。 7ビットの reserved_for_word_alignmentは、 ワードァラインをとるためのもので、 capture_enable_flag_Clipは、上述した図 5の captur e_enable_flag_PlayListと同様に、ビデオデータの 2次利用を許可するか否かを表すフ ラグである。
[0154] 但し、図 5の capture_enable_flag_PlayListは、 PlayListOによって再生されるビデオスト リームに対応するビデオデータ (PlayListOに属するビデオデータ)の 2次利用を許可 するか否かを表すのに対して、図 10の capture_enable_flag_Clipは、クリップ情報フアイ ル ClipOに対応するクリップストリームファイルに格納されて ヽるビデオストリーム(ビデ ォのエレメンタリストリーム)に対応するビデオデータの 2次利用を許可するか否かを 表す。従って、図 5の capture— enable—flag— PlayListと、図 10の capture— enable—flag— Clip とでは、 2次利用を許可するビデオデータの単位 (範囲)が異なる。
[0155] なお、図 10の capture_enable_flag_Clipも、図 5の capture_enable_flag_PlayListで説明 したように、 1ビットではなぐ複数ビットとすることが可能である。
[0156] capture_enable _flag_Clipの後には、 number_of_streams (8ビット)が配置され、この nu mber_of_streamsには、それに続く StreamlnfoO構造の個数が記述される。従って、 num ber_of_streamsに続 、ては、その number_of_Streamsの数だけ、 StreamlnfoOの構造が 記述される。
[0157] StreamlnfoOの先頭には、 length (16ビット)が配置され、この lengthは、それを含む St reamlnfoOのサイズを表す。 lengthに続いては、 stream_id (8ビット)と private_stream_id ( 8ビット)力 S酉己置されており、この streamjdと private_stream_idによって、 StreamlnfoOに 関連付けるエレメンタリストリームが特定 (識別)される。
[0158] ここで、図 11は、エレメンタリストリームを識別する streamjdおよび private_stream_id と、エレメンタリストリームとの関係を示している。
[0159] streamjdは、 MPEG2- System規格において規定されているのと同一のものであり、 その値は、 MPEG2- System規格において、エレメンタリストリーム(データ)の属性(種 類)ごとに、あらかじめ決められている。従って、 MPEG2-System規格で定義されてい る属性のエレメンタリストリームは、 streamjdだけで特定することができる。
[0160] 本実施の形態では、 MPEG2-System規格にお!、て規定されて!ヽな 、属性のエレメ ンタリストリームも扱うことが可能になっており、 private_stream_idは、 MPEG2- System 規格にぉ 、て規定されて 、な 、属性のエレメンタリストリームを識別するための情報 である。 [0161] 図 11では、 MPEGで規定されている符号化 (復号)方式でエンコードされたビデオ のエレメンタリストリーム、 ATRAC(Adaptive TRansform Acoustic Coding)方式でェン コードされたオーディオのエレメンタリストリーム(以下、適宜、 ATRACオーディオストリ ームという)、 LPCM(Linear Pulse Code Modulation)方式でエンコードされたオーディ ォのエレメンタリストリーム(以下、適宜、 LPCMオーディオストリームという)、字幕のェ レメンタリストリーム(以下、適宜、字幕ストリームという)の 4つの属性のエレメンタリスト リームにっ 、て、 streamjdおよび private_stream_idとの関係を示して 、る。
[0162] MPEG2-System規格では、 MPEGで規定されている符号化方式でエンコードされた ビデオのエレメンタリストリームは、 OxEO乃至 OxEFの範囲の値を(Oxは、その後に続く 文字列が 16進数であることを表す)、エレメンタリストリームを識別する streamjdとして 用いて多重化することが規定されている。従って、 MPEGで規定されている符号ィ匕方 式でエンコードされたビデオのエレメンタリストリームについては、 OxEO乃至 OxEFの範 囲の値の stream jdで識別することができる 16本のビデオのエレメンタリストリームを、 プログラムストリームに多重化することができる。
[0163] なお、 MPEGで規定されている符号化方式でエンコードされたビデオのエレメンタリ ストリームの識別は、 OxEO乃至 OxEFの範囲の値の streamjdで行うことができるので、 p rivate_stream_idは不要である(無視することができる)。
[0164] 一方、 MPEG2— Systemでは、 ATRACオーディオストリーム、 LPCMオーディオストリ ーム、字幕ストリームについては、 streamjdは定義されていない。
[0165] そこで、本実施の形態では、 MPEG2-Systemで streamjdが定義されて!ヽな 、エレメ ンタリストリームにっ ヽては、その streamjdに、 MPEG2-Systemにお ヽて private_strea m_lという属性を表す値である OxBDを採用し、さらに、図 11に示すように、 private_stre amjdを用いて識別(特定)を行うこととして 、る。
[0166] 即ち、 ATRACオーディオストリームの識別には、 0x00乃至 OxOFの範囲の値の privat e_streamjdが使用される。従って、プログラムストリームには、 16本の ATRACオーディ ォストリームを多重化することができる。また、 LPCMオーディオストリームの識別には 、 0x10乃至 OxlFの範囲の値 private_stream_idが使用される。従って、プログラムストリ ームには、 16本の LPCMオーディオストリームを多重化することができる。さらに、字幕 ストリームの識別には、 0x80乃至 0x9Fの範囲の値の private_stream_idが使用される。 従って、プログラムストリームには、 32本の字幕ストリームを多重化することができる。
[0167] なお、 streamjdおよび private_stream_idについては、さらに後述する。
[0168] 図 ΙΟίこ决り、 private— stream— idの後【こ ί 、 StaticInfoO, reserved— for— word— alignment ( 8ビット)が順次配置される。 StaticInfoOには、(その StaticInfoOを含む StreamlnfoOに 記述された) streamjdおよび private_stream_idによって特定されるエレメンタリストリー ムの再生中に変化しない情報が記述される。 StaticInfoOの詳細については、図 12を 参照して後述する。
[0169] reserved_for_word_alignmentは、ワードァラインをとるために使用される。
[0170] reserved— for— word— alignmentに ヽ飞 、 number— of— Dynamiclnfo (8ヒットノ力 S目置 れ、 number_of_DynamicInfoは、その後に続 、て配置される pts_change_point (32ビット) と DynamicInfoOのセットの数を表す。
[0171] 従って、 number_of_DynamicInfoに続いては、その number_of_Dynamidnfoの数だけ のセット数の pts_change_pointと DynamicInfoOの構造が記述される。
[0172] pts_change_pointは、それとセットになって!/、る DynamicInfoOの情報が有効になる時 刻を表す。ここで、エレメンタリストリームの先頭の時刻を表す pts_change_pointは、そ のエレメンタリストリームが格納されたクリップストリームファイルに対応するクリップ情 報ファイル ClipOの最初に記述される presentation_start_timeに等しい。
[0173] DynamicInfoOには、 streamjdおよび private_stream_idによって特定されるエレメンタ リストリームの再生中に変化する、いわば動的な情報が記述される。 DynamicInfoOに 記述された情報は、それとセットになって!/、る pts_change_pointが表す再生時刻となつ たときに有効になる。なお、 DynamicInfoOの詳細については、図 13を参照して後述 する。
[0174] number_of_DynamicInfoの数だけのセットの pts_change_pointと DynamicInfoOの後に は、 EP_map0が配置される。なお、 EP_map0については、図 14を参照して後述する。
[0175] 「StaticInfoOの説明」
次に、図 12を参照して、図 10の StaticInfoOの詳細について説明する。
[0176] 図 12は、 StaticInfoOのシンタクスを示している。 [0177] StaticInfoOは、対応するエレメンタリストリームの属性 (種類)により内容が異なって いる。 StaticInfoOに対応するエレメンタリストリームの属性は、その StaticInfoOを含む 図 10の StreamlnfoOに含まれる streamjdと private_stream_idにより判断される。
[0178] StaticInfoOに対応するエレメンタリストリームがビデオストリームである場合 (stream== VIDEO), StaticInfoOは、 picture— size (4ビット), frame— rate (4ビット),および cc— flag ( 1 ビット)と、ワードァラインをとるための reserved_for_word_alingmentとで構成される。
[0179] picture_sizeは、ビデオストリームに対応するビデオデータ(によって表示される画像 )の大きさを表す。 frame_rateは、ビデオストリームに対応するビデオデータのフレーム 周波数を表す。 cc_flagは、ビデオストリームにクローズドキャプション (Closed Caption) データが含まれているか否かを表す。即ち、例えば、ビデオストリームにクローズドキ ャプシヨンデータが含まれている場合には、 cc_flagは 1とされ、ビデオストリームにクロ ーズドキャプションデータが含まれて 、な 、場合には、 ccjkgは 0とされる。
[0180] StaticInfoOに対応するエレメンタリストリームがオーディオストリームである場合 (strea m==AUDIO)、 StaticInfoOは、 audio— language— code ( 16ビット) , channel—connguration (8 ビット), lfe— existence ( 1ビット)、および sampling— frequency (4ビット)と、ワードァライン をとるための reserved_for_word_alingmentとで構成される。
[0181] audio_language_codeには、オーディオストリームに含まれて 、るオーディオデータの 言語を表すコードが記述される。 channeLconfigurationは、モノラノレ (mono)/ステレオ (s tereo)/マルチチャネル等の、オーディオストリームに含まれて!/、るオーディオデータ の属性を表す。 lfe_existenceは、オーディオストリームに低域強調チャネルが含まれて いる力どう力を表し、含まれていれば 1となり、含まれていなければ 0となる。 samplingj requencyは、オーディオストリームに含まれて!/、るオーディオデータのサンプリング周 波数を示す情報である。
[0182] StaticInfoOに対応するエレメンタリストリームが字幕ストリームである場合 (stream==S UBTITLEA StaticInfoO ί 、 subtitle— language— code (lb cット)および configurable— flag ( 1ビット)と、ワードァラインをとるための reserved_for_word_alingmentとで構成される。
[0183] subtitle_language_codeには、字幕ストリームに含まれて 、る字幕データの言語を表 すコードが記述される。 configurable_flagは、字幕ストリームに含まれている字幕デー タの表示をデフォルトの表示方式力 変更することを許可する力否かを表す情報で、 例えば、表示方式の変更が許可されている場合には 1が記述され、許可されていな い場合には 0が記述される。なお、字幕データの表示方式としては、字幕データの表 示サイズや、表示位置、表示色、表示パターン (例えば、点滅表示など)、表示方向( 例えば、垂直方向や水平方向)などがある。
[0184] 「DynamicInfo()の説明」
次に、図 13を参照して、図 10の DynamidnfoOの詳細について説明する。
[0185] 図 13は、 DynamidnfoOのシンタクスを示している。
[0186] DynamidnfoOの先頭には、ワードァラインのための reserved_for_word_alignment (8ビ ット)が配置されており、その後に続く要素は、 DynamidnfoOに対応するエレメンタリス トリームの属性により内容が異なって 、る。 DynamidnfoOに対応するエレメンタリストリ ームの属性は、図 12で説明した StaticInfoOにおける場合と同様に、 DynamidnfoOを 含む図 10の StreamlnfoOに含まれる streamjdと private_stream_idにより判断される。
[0187] DynamidnfoOには、図 10で説明したように、エレメンタリストリームの再生中に変化 する動的な情報が記述される。この動的な情報は、特に限定されるものではないが、 図 13の実施の形態では、 DynamidnfoOに対応するエレメンタリストリームに対応する データ、即ち、エレメンタリストリームが処理されることによって出力されるデータの出 力属性 (エレメンタリストリーム力 得られるデータの出力属性)力 DynamidnfoOに記 述される。
[0188] 具体的には、 DynamidnfoOに対応するエレメンタリストリームがビデオストリームであ る場合 (stream==VIDEO)、 DynamidnfoOは、 display— aspect— ratio (4ビット)と、ワードァ フィンの 7こめの reserved— for— word— alingmentとで構成される。 diplay— aspect— ratioには、 ビデオストリームに対応するビデオデータの出力属性 (表示方式)としての、例えば、 そのビデオデータのアスペクト比が記述される。即ち、 diplay_aspect_ratioには、例え ば、アスペクト比が、 16:9または 4:3のうちのいずれであるかを表す情報が記述される 。なお、ビデオストリームの DynamidnfoOには、アスペクト比の他、例えば、ビデオデ ータによって表示される画像のサイズ (X画素 X Y画素)などを記述することが可能で ある。 [0189] DynamicInfoOに対応するエレメンタリストリームがオーディオストリームである場合 (st ream==AUDIO) DynamicInfoOは、 channel—assignment (4ビット)と、ワードァラインをと るための reserved— for— word— aiingmentとで構成 れる。 channel— assignmentには、才 ~~ ディォストリームに 2チャネルのオーディオデータが含まれている場合に、その 2チヤ ネルの出力属性(出力方式)が記述される。即ち、 channeLassignmentには、オーディ ォデータが、ステレオまたはデュアル(ニケ国語)のうちのいずれのチャネル割り当て 力 Sされているものであるかを表す情報が記述される。
[0190] DynamicInfoOに対応するエレメンタリストリームが字幕ストリームである場合 (stream= =SUBTITLE)、 DynamicInfoOは、ワードァラインをとるための reserved_for_word_alingme ntで構成される。即ち、図 13の実施の形態では、字幕ストリームに関しては、動的な 情報としての出力属性は定義されて ヽな ヽ。
[0191] 「EP_map0の説明」
次に、図 14を参照して、図 10の EPjnapOの詳細について説明する。
[0192] 図 14は、 EPjnapOのシンタクスを示している。
[0193] EPjnapOには、その EPjnapOを含む図 10のクリップ情報ファイル ClipOに対応するク リップストリームファイルに格納されたプログラムストリームに多重化されているエレメン タリストリーム毎に、各エレメンタリストリームの、デコードを開始することができるデコー ド開始可能点 (エントリポイント)の情報が記述される。
[0194] ここで、固定レートのストリームについては、デコード開始可能点は、計算によって 求めることができるが、可変レートのストリーム、あるいは MPEG規格にしたがって符号 化されたビデオストリームのように、ビデオアクセスアクセスユニットごとにサイズが異 なるストリームについては、デコード開始可能点は、計算によって求めることができず 、実際にストリームを解析しないと見つけることができない。デコード開始可能点を迅 速に認識することは、ランダムアクセスを行うために重要であり、 EPjnapOによれば、 デコード開始可能点を迅速に認識することができる。
[0195] なお、 MPEG2- Videoでは、 Sequence— headerO (シーケンスヘッダ)等を含めたイント ラビクチャの先頭力 デコード開始可能点である。
[0196] EPjnapOの先頭には、ワードァラインのための reserved_for_word_alignment (8ビット) が配置されており、続いて number_of_streamjd_entries (8ビット)が配置されている。 nu mber_of_stream_id_entriesは、 EP_mapOにデコード開始可能点の情報が記述されてい るエレメンタリストリームの本数を表す。
[0197] number_of_stream_id_entriesの後には、エレメンタリストリームを識別するための情報 と、そのエレメンタリストリームのデコード開始可能点の情報と力 number_of_stream_id _entriesが表す数だけ繰り返し配置される。
[0198] 即ち、 number_of_streamjd_entriesの直後には、エレメンタリストリームを識別する情 報としての stream_id (8ビット)と private_stream_id (8ビット)が配置され、それに続けて、 number_of_EP_entries (32ビット)が配置される。 number_of_EP_entriesは、その直前の st reamjdと private_stream_idで識別(特定)されるエレメンタリストリームのデコード開始 可能点の数を表す。
[0199] number_of_EP_entriesの後には、その直前の streamjdと private_stream_idで特定され るエレメンタリストリームのデコード開始可能点の情報としての PTS_EP_start (32ビット) と RPN_EP_start (32ビット)とのセットが、 number_of_EP_entriesが表す数だけ繰り返し配 置される。
[0200] デコード開始可能点の情報の 1つである PTS_EP_startは、上述のよう〖こ streamjdと p rivate_stream_idで特定されるエレメンタリストリームが多重化されているプログラムスト リームが格納されたクリップストリームファイル内での、デコード開始可能点の時刻(再 生時刻)を表す。
[0201] デコード開始可能点の情報の他の 1つである RPN_EP_startには、上述のように strea m_idと private_stream_idで特定されるエレメンタリストリームが多重化されているプログ ラムストリームが格納されたクリップストリームファイル内での、デコード開始可能点の 位置を、プログラムストリームの packO単位で数えたときの値が記述される。なお、本 実施の形態では、 packOのサイズは 2048バイトで固定であるとする。また、本実施の 形態では、ディスク 101 (図 1)の 1セクタ力 2048バイトであるとする。
[0202] ここで、ビデオストリームについては、そのデコード開始可能点(エントリポイント)の 直前に、後述する private_stream_2パケット(private_stream_2の属性の PES_packet()) 力 s配置されている。 private_stream_2パケットは、その private_stream_2パケットから、次 の private_stream_2パケットまでの間に配置されているビデオストリームをデコードする のに利用される情報が格納されている。このため、ビデオストリームについては、デコ ード開始可能点の情報としての RPN_EP_startには、実際のデコード開始可能点その ものではなく、実際のデコード開始可能点の直前に配置されて!、る private_stream_2 パケットの先頭の位置が記述される。
[0203] また、 EP_map()において、デコード開始可能点の情報としての PTS_EP_startと RPN_E P_startとのセットは、 streamjdと private_stream_idで特定されるエレメンタリストリームご とに、あら力じめ、昇順にソートされている。これにより、デコード開始可能点の情報と しての PTS_EP_startと RPN_EP_startとのセットは、二分探索が可能となって 、る。
[0204] なお、可変レートのストリームや、ビデオアクセスアクセスユニットごとにサイズが異な るストリームを対象としたランダムアクセスの方法は、例えば、特開 2000-341640号公 報 (特願平 11- 317738号)などに記載されて!、る。
[0205] 「クリップストリームファイルの説明」
次に、図 4の" STREAM"ディレクトリに置かれる、拡張子が PSのクリップストリームファ ィル(図 4では、 "00001.PS", "00002.PS", "00003.PS")の内部構造について説明す る。
[0206] クリップストリームファイルは、 MPEG- 2 System (ISO/IEC 13818- 1)に定義された MP
EG2_Program_StreamOをベースに構成されている。
[0207] 即ち、図 15は、 MPEG-2 System(ISO/IEC 13818-1:2000)規格に記述されている Ta ble2-31, Table2-32, Table2- 33を示している。
[0208] クリップストリームファイルに格納されたプログラムストリームは、 MPEG- 2 System規 格の Table2- 31に定義されて!、る MPEG2_Program_Stream()であり、 1つ以上の packO と、 1つの MPEG_program_end_codeで構成される。なお、 MPEG2_Program_Stream()の 説明は、特許第 2785220号などにも記載されている。
[0209] 1つの packOは、 MPEG- 2 System規格の Table2- 32に定義されているように、 1つの
Pack_header0と、任意の数の PES_packet()とで構成される。 Pack_header0の詳細は、
MPEG- 2 System規格の Table2- 33に定義されて!ヽる。
[0210] ここで、 MPEG- 2 System規格では、 packOのサイズは、可変長として定義されて 、る 力 ここでは、図 14で説明したように、 2048バイトで固定であるとする。さらに、ここで は、 1つの packOの PES_packetOの数は、 1つ、 2つ、または 3つとする。 PackOが後述 する private_stream_2パケットで始まる場合、その直後(同じ PackO内)に対応するビデ ォストリームの PES_packet()が必ず存在する。またこれに加えて 3つ目の PES_packetO として padding_packet (パディングパケット)を置くことができる。なお private_stream_2 ケットは必ず PackOの先頭におかれる。
[0211] PackO力 ¾rivate_stream_2パケットで始まらな!/、場合には、 PackOの先頭にはビデオ、 オーディオ、字幕などのコンテンツデータの格納された PES_packetOが置かれる。これ に加えて 2つ目の PES_packetOとして padding_packet (パディングパケット)を置くことが できる。
[0212] 図 16乃至図 18は、 MPEG- 2 System規格の Table2- 17で定義されている PES_packet 0を示している。
[0213] PES— packetOは、 packet— start— code— prefix, stream— id、および PE¾— packet— length (図 16)と、 streamjd等により構造の変化するヘッダ部分(stuffing_byteを含む)(図 16乃 至図 18)と、 PES_packet_data_byte (図 18)とに大別することができる。なお、 PES_pack etO力 padding— packetで ¾>る場合 (stream— id==padding— stream)、 PE¾— packet— data— Dyt eに代えて、 padding_byte(0xFF) (図 18)が必要な数だけ繰り返し配置される。
[0214] ここで、 PES_packet()のヘッダ部分には、図 16および図 17に示すように、 PTS(Prese ntation Time Stamp)と呼ばれる表示タイミングを示す情報と、 DTS(Decoding Time Sta mp)と呼ばれるデコードタイミングを示す情報とを配置することができる。本実施の形 態では、すべてのアクセスユニット(MPEG2- Systemで定義された、エレメンタリストリ ームを構成するデコード単位)に対して PTSが付加され、 MPEG2- Systemに定める場 合に DTSが付加されるとする。
[0215] プログラムストリームに多重化されるエレメンタリストリームは、 PES_packet0の PES_pa cket_data_byte (図 18)に格納される。そして、 PES_packet0の streamjdには、その PES _packet_data_byteに格納されたエレメンタリストリームを識別するために、そのエレメン タリストリームの属性に応じた値が記述される。
[0216] PES_packet0の streamjdに記述される値と、エレメンタリストリームの属性(種類)との 関係は、 MPEG- 2 System規格の Table 2-18に定義されている。ここで、図 19に、 MP
EG- 2 System規格の Table 2- 18を示す。
[0217] 本実施の形態では、図 19に示した MPEG-2 System規格で定義されている streamj dのうちの、例えば、図 20に示す値を採用する。
[0218] 即ち、本実施の形態では、 10111101B, 10111110B, 10111111B, llOxxxxxB, 1110 xxxxBの 5パターンを、 streamjdの値として採用する。なお、 "x"は、 0または 1のうちの 任意の値を表す。
[0219] そして、 private_stream_lと呼ばれる属性のエレメンタリストリームの PES_packetOの st reamjdは、図 20にしたがい、 10111101Bとされる。また、 padding_packetの PES_packet ()の streamjdは、図 20にした力^、、 10111110Bとされる。さらに、 private_stream_2と呼 ばれる属性のエレメンタリストリームの PES_packetOの streamjdは、図 20にしたがい、 1 0111111Bとされる。
[0220] また、 MPEGで定義されたオーディオストリーム(オーディオのエレメンタリストリーム) の PES_packetOの streamjdは、 llOxxxxxBとされる。なお、 llOxxxxxBのうちの下位 5ビ ット xxxxxは、オーディオストリームを区別するオーディオストリームナンパであり、プロ グラムストリーム(MPEG2_Program_StreamO)には、このオーディオストリームナンパで 区別することのできる数である 32 ( = 25)本のオーディオストリーム (MPEGで定義され たオーディオストリーム)を多重化することができる。
[0221] さらに、 MPEGで定義されたビデオストリーム(ビデオのエレメンタリストリーム)の PES _packet()の streamjdは、 ΙΙΙΟχχχχΒとされる。なお、 ΙΙΙΟχχχχΒのうちの下位 4ビット xx XXは、ビデオストリームを区別するビデオストリームナンパであり、プログラムストリーム には、このビデオストリームナンパで区別することのできる数である 16 ( = 24)本のビ デォストリーム (MPEGで定義されたビデオストリーム)を多重化することができる。
[0222] ところで、 streamjdが ΙΙΙΟχχχχΒの PES_packetOは、 MPEGで定義されたビデオストリ ームを格納するために使用され、 streamjdが llOxxxxxBの PES_packet()は、 MPEGで 定義されたオーディオストリームを格納するために使用される。一方、 MPEGで定義さ れて ヽな 、符号化方式 (たとえば ATRAC方式)のエレメンタリストリームを格納するの に使用する PES_packetOの streamjdは、 MPEGでは規定されておらず、従って、 MPE Gで定義されて!、な!/、符号化方式のエレメンタリストリームは、 MPEGで定義されたビ デォストリームやオーディオストリームと同様に、単純に、 streamjdを指定して、 PES_p acketOに格納することはできな 、。
[0223] そこで、本実施の形態では、 private_stream_lの PES_packetOの PES_packet_data_byt eを拡張し、 MPEGで定義されて 、な 、符号ィ匕方式のエレメンタリストリームを格納す る。
[0224] ここで、 private_stream_lの PES_packetOの、拡張した PES_packet_data_byteを、 privat e—streaml— PES— payloadOと S己 する。
[0225] 「private—streaml— PES— payloadOの説明」
図 21は、 private_streaml_PES_payloadOのシンタクスを示して 、る。
[0226] private— streaml— PES— payloadOは、 private— headerOと private— payloadOとで構成 れ る。 private— payloadOには、 ATRACオーディオストリームや、 LPCMオーディオストリー ム、字幕ストリームなどの、 MPEGで定義されていない符号ィ匕方式のエレメンタリストリ ームが格納される。
[0227] private_header()の先頭には、 private_stream_id (8ビット)が配置される。
private_stream_idは、 private_payload0に格納されるエレメンタリストリームを識別する 識別情報で、その属性 (種類)に応じて、例えば、以下のような値とされる。
[0228] 即ち、図 22は、 private_stream_idの値と、 private_payload0に格納されるエレメンタリ ストリームの属性との関係を示している。
[0229] 図 22では、 OOOOxxxxB, OOOlxxxxB, ΙΟΟχχχχχΒの 3パターン力 private_stream_id の値として採用されている。なお、 "X "は、図 20における場合と同様に、 0または 1のう ちの任意の値を表す。
[0230] 図 22によれば、 ATRACオーディオストリームが private_payload()に格納される privat e—streaml— PES— payloadOの private— stream— idは、 OOOOxxxxBとされる。なお、 OOOOxxxx Bのうちの下位 4ビット xxxxは、 ATRACオーディオストリームを区別するオーディオスト リームナンパであり、プログラムストリーム(MPEG2_Program_Stream())には、このォー ディォストリームナンパで区別することのできる数である 16 ( = 24)本の ATRACオーデ ィォストリームを多重化することができる。 [0231] さらに、図 22によれば、 LPCMオーディオストリーム力 ¾rivate_payloadOに格納される private— streaml— PES— payloadOの private— stream— idは、 000丄 xxxxBとされる。なお、 0001 xxxxBのうちの下位 4ビット xxxxは、 LPCMオーディオストリームを区別するオーディオ ストリームナンパであり、プログラムストリームには、このオーディオストリームナンパで 区別することのできる数である 16 ( = 24)本の LPCMオーディオストリームを多重化す ることがでさる。
[0232] また、図 22によれば、字幕ストリームが private_payloadOに格納される private_stream l_PES_payload()の private_stream_idは、 lOOxxxxxBとされる。なお、 lOOxxxxxBのうちの 下位 5ビット xxxxxは、字幕ストリームを区別する字幕ストリームナンパであり、プロダラ ムストリームには、この字幕ストリームナンパで区別することのできる数である 32 ( = 25 )本の字幕ストリームを多重化することができる。
[0233] ここで、図 20と図 22の関係をまとめたもの力 上述した図 11である。
[0234] 図 21に戻り、 private— streaml— PES— payloadOにお 、て、 private— stream— idに続く要素 は、 private_payload0に格納されるエレメンタリストリームの属性により内容が異なって V、る。 private_payload0に格納されるエレメンタリストリームの属性は、 private_header() の先頭の private_stream_idにより判断される。
[0235] private_payload()に格納されるエレメンタリストリームが ATRACオーディオストリーム である場合 (private_stream_id==ATRAC)、将来の拡張用の reserved_for _foture_use (8 ビット)が配置され、その後、 AU_locator (16ビット)が配置される。 AU_locatorは、その AUJocatorの直後の位置を基準として、 private_payload0に格納された ATRACォー ディォストリームのオーディオアクセスユニット(ATRACオーディオアクセスユニット) ( オーディオフレーム)の先頭位置を表す。 private_payload0にオーディオアクセスュ- ットが存在しない場合、 AlUocatorには、例えば OxFFFFが記述される。
[0236] private_payload()に格納されるエレメンタリストリームが LPCMオーディオストリームで め 0 合 (private— stream— id==LPCM) fs— flag (lヒットノ , reserved— for— IUture— use (3ヒット ) , ch_flag (4ビット)、および AU_locator (16ビット)が順次配置される。
[0237] fs_flagは、 private_payload0に格納される LPCMオーディオストリームのサンプリング 周波数を示す。即ち、例えば、サンプリング周波数が 48KHzの場合、 fsjkgは 0とされ 、サンプリング周波数が 44. ΙΚΗζの場合、 fsjlagは 1とされる。
[0238] ch_flagは、 private_payload()に格納される LPCMオーディオストリームのチャネル数を 示す。例えば、 LPCMオーディオストリームがモノラルの場合、 ch_flagは 1とされ、 LPC
Mオーディオストリームがステレオの場合、 chjlagは 2とされる。
[0239] AUJocatorは、その AU_locatorの直後の位置を基準として、 private_payload()に格納 される LPCMオーディオストリームのオーディオアクセスユニット(LPCMオーディオア クセスユニット)(オーディオフレーム)の先頭位置を示す。 private_payloadOにオーデ ィォアクセスユニットが存在しない場合、 AU_locatorには、例えば OxFFFFが記述され る。
[0240] private_payload()に格納されるエレメンタリストリームが字幕ストリームである場合 (priv ate_stream_id==SUBTITLE)、将来の拡張のための reserved_for _foture_use (8ビット)が 配置され、その後に、 AU_locator (16ビット)が配置される。 AU_locatorは、その AU_loc atorの直後の位置を基準として、 private_payload0に格納される字幕ストリームの字幕 アクセスユニットの先頭位置を示す。 Private_payloadOに字幕アクセスユニットが存在 しない場合、 AU_locatorには、例えば OxFFFFが記述される。
[0241] 「private—stream2— PES— payloadOの説明」
次に、図 23は、 private_stream2_PES_payload()のシンタクスを示している。
[0242] private— stream2— PES— payloadO ί¾、 private— stream— 2の PE¾—packet()の PE¾— packet— da ta_byte (図 18)を拡張したもの、即ち、 private_stream_2の PES_packet0の、拡張した P ES_packet_data_byteであり、ビデオストリームのデコードに利用される情報が記述され る。
[0243] 本実施の形態では、 private_stream_2の PES_packet0は、ビデオストリームにおける デコード開始可能点の直前に配置される。従って、本実施の形態では、プログラムス トリームから private_stream_2の PES_packet()を見つければ、その直後のビデオストリー ム力 デコードを開始することができる。
[0244] ここで、上述した図 14の EP_map0の RPN_EP_startは、ビデオストリームについては、 private_stream_2の PES_packet0の先頭の位置を示す。
[0245] private_stream2_PES_pavloadOの先頭には、将来の拡張用の reserved_for JUture_use (8ビット)が配置され、続けて、 video_stream_id (8ビット), lstRef_picture (16ビット), 2n dRef— picture (16ヒ、、ツト 3rdRef— picture (16ヒット) , 4thRef—picture (16t、 / ) , au— infor mationO,および VBlOが、順次配置される。
[0246] video_stream_idには、 private_stream_2の PES_packet()の直後に配置されるビデオス トリームの PES_packetOの streamjd (と同一の値)が記述される。この video_streamjdに よつ飞、 private— stream— 2の PE¾—packetO (の private— stream2—PE¾—payload())【こ格糸内 れた情報を利用してデコードされるビデオストリーム(が格納された PES_packetO)が 特定される。
[0247] IstRef— picture, 2ndRef— picture, jrdRef— picture, 4tnRef— pictureは、 video— stream— id によって特定されるビデオストリームの、 private_stream_2の PES_packet()から次の priv ate_stream_2の PES_packet()までの中の 1, 2, 3, 4番目の参照画像を含む最後の pac k0の位置を相対値で、それぞれ表す。なお、 lstRef_picture, 2ndRef_picture, 3rdRef_ picture, 4thRef_pictureについては、例えば、特開平 09- 46712号公報(特願平 07- 211 420号)に、 bytes_to_first_P_pic bytes_to_second_P_picとして、その詳細が開示されてい る。
[0248] au— informationOには、 private— stream— 2の PES— packet0 ら、次の private— stream— 2の PES_packet0までのビデオストリームの中のビデオアクセスユニットに関する情報が記 述される。 aujnformationOの詳細については、図 24を参照して後述する。
[0249] VBI0は、 Closed Captionの情報を記述するために使用される。
[0250] 以上のような private— stream2— PES— payloadOを有する private— stream— 2の PES— packet(
)は、ビデオストリームごとの、デコード開始可能点ごとに配置される。
[0251] 次に、図 24は、図 23の aujnformationOのシンタクスを示している。
[0252] aujnformationOの先頭には、 length (16ビット)が配置される。 lengthは、それを含む a u— informationOのサ ス 表す。 length【こ ¾ ヽて ί¾、 reserved— for— word— alignment (8ピ ット)、および number— of— access— unit (8ビット)力川頁次酉己置される。 reserved— for— word— ali gnmentは、ワードァラインをとるために使用される。
[0253] number_of_access_unitは、それを含む private_stream_2の PES_packet0から、次の priv ate_stream_2の PES_packet()までの間に含まれるビデオアクセスユニット(ピクチャ)の 数を表す。
[0254] 即ち、 number— of— access— unitは、図 23の private— stream2— PES— payloadOが同一の vid eo— stream— idを有する private— stream— 2の PES— packetOの中で、この au— informatnioO力 ら次の aujnformationOの直前までに(この aujnfromationOがクリップストリームファイル で最後の aujnformationOであれば、クリップストリームファイルの最後までに)、 video_s treamjdで示されるビデオストリームに含まれるアクセスユニット(ピクチャ)の数を示す
[025¾」 number— of— access— unitの後には、ての number— of— access— unitの数 7 け forノレープの内 容カ ¾置 れる。良卩 、 number— of— access— unitを含む private— stream— 2の PES— packetO から、次の private_stream_2の PES_packetOまでの間に含まれる 1以上のビデオァクセ スユニットそれぞれに関する情報が配置される。
[0256] forループ内に配置される情報 (ビデオアクセスユニットに関する情報)は、以下のよ うになつている。
[0257] 即ち、 forループ内には、 pic_struct_copy (4ビット) , au_ref_flag (1ビット) , AUJength ( 21ビット), reservedが配置される。
[0258] pic_struct_copyには、ビデオストリームが MPEG4-AVC (ISO/IEC 14496-10)の場合 に、対応するビデオアクセスユニットに対して設定されている、 ISO/IEC 14496-10, D .2.2に定義されている pic_struct ()のコピーが記述される。なお、 pic_struct ()は、例え ば、ピクチャをフレームとして表示する、あるいは、ピクチャのトップフィールドを表示し て、その後、ボトムフィールドを表示する、などといった情報である。
[0259] au_ref_flagは、対応するアクセスユニット力 他のアクセスユニット(のピクチャ)のデコ ードにあたって参照される参照画像である力否かを表し、参照画像である場合には 1 とされ、参照画像でない場合には 0とされる。
[0260] AUJengthは、対応するアクセスユニットのサイズをバイト単位で表す。
[0261] [ディスク 101に記録されたデータの具体例]
次に、図 25乃至図 28は、図 1のディスク 101に記録された、上述したようなフォーマ ットのデータの具体例を示して 、る。
[0262] ここで、図 25乃至図 28では、ビデオストリームとしては、 MPEG2_Videoを採用し、ォ 一ディォストリームとしては、 ATRACオーディオストリームを採用している。但し、ビデ ォストリームやオーディオストリームは、これに限定されるものではない。即ち、ビデオ ストリームとしては、例えば、 MPEG4-Visualや MPEG4-AVCなどを採用することができ る。さらに、オーディオストリームとしては、例えば、 MPEG1/2/4オーディオや LPCMォ 一ディォストリームなどを採用することができる。
[0263] なお、字幕ストリームは、ビデオストリームやオーディオストリームと異なり、同じ間隔 で連続的なデコード '表示(出力)が行われるとは限らない。すなわち、字幕ストリーム は、時折、図 2のバッファ制御モジュール 215から字幕デコーダ制御モジュール 218 に供給されてデコードされる。
[0264] 図 25乃至図 28は、ディスク 101において、図 4に示したように、 "CLIP"ディレクトリ に、 3つのクリップ情報ファイル" 00001. CLP", "00002.CLP", "00003.CLP"が記録さ れ、 "STREAM"ディレクトリに、その 3つのクリップ情報ファイル" 00001. CLP", "00002. CLP", "00003.CLP"それぞれに対応する 3つのクリップストリームファイル" 00001.PS" , "00002.PS", "00003.PS"が記録されている場合の、 "PLAYLIST.DAT〃ファイル、タリ ップ情報ファイル" 00001. CLP", "00002.CLP",および" 00003.CLP"等の具体的な例 を示している。
但し、図 25乃至図 28では、 "PLAYLIST.DAT"ファイル等のデータの一部を省略して ある。
[0265] 即ち、図 25は、図 5で説明した" PLAYLIST.DAT〃ファイルの具体例を示している。
[0266] 図 25では、 number_of_PlayListsは 2となっており、従って、 "PLAYLIST.DAT"フアイ ルに含まれる PlayListOの数は 2である。図 25では、その 2つの PlayListOのうちの 1番 目が PlayList #0と、 2番目が PlayList #1と、それぞれ記載されている。
[0267] 1番目の PlayListOである PlayList #0については、 capture_enable_flag_PlayListが 1と なっており、従って、 PlayList #0にしたがって再生されるビデオデータの 2次利用が 許可されている。また、 PlayList #0については、 number_of_PlayItemsが 2となっており 、従って、 PlayList #0に含まれる PlayltemOの数は 2である。図 25では、その 2つの Pla yltemOである PlayItem#0と Playltem#lの具体例が、「PlayList#0」の欄の下方に記載さ れている。 [0268] PlayList #0に含まれる 1番目の PlayltemOである PlayItem#0では、図 6で説明した Cli p_Information_file_nameが" 00001.CLP"に、 In_timeが 180,090に、 OUT_time^27,180, 090に、それぞれなっている。従って、 PlayList #0の PlayItem#0によって再生されるタリ ップは、クリップ情報ファイル" 00001. CLP"に対応するクリップストリームファイル" 0000
1. PS"の、時刻 180,090から 27, 180,090までである。
[0269] PlayList #0に含まれる 2番目の PlayltemOである Playltem#lでは、図 6で説明した Cli p_Information_file_nameが" 00002.CLP"に、 In_timeが 90,000に、 OUT_timeが 27,090,0 00に、それぞれなっている。従って、 PlayList #0の Playltem#lによって再生されるタリ ップは、クリップ情報ファイル" 00002. CLP"に対応するクリップストリームファイル" 0000
2. PS〃の、時刻 90,000から 27,090,000までである。
[0270] 一方、図 25にお!/、て、 2番目の PlayListOである PlayList #1につ!/、ては、 capture.en able_flag_PlayListが 0となっており、従って、 PlayList #1にしたがって再生されるビデオ データの 2次利用が許可されていない(禁止されている)。また、 PlayList #1について は、 number_of_PlayItemsが 1となっており、従って、 PlayList #1に含まれる PlayltemOの 数は 1である。図 25では、その 1つの PlayltemOである PlayItem#0の具体例が、「PlayL ist#l」の欄の下方に記載されている。
[0271] PlayList #1に含まれる 1つの PlayltemOである PlayItem#0では、図 6で説明した ClipJ nformation— file— nameが" 00003.CLP"に、 In— timeが 90,000に、 OUT— timeが 81, 090,000 に、それぞれなっている。従って、 PlayList #1の PlayItem#0によって再生されるクリツ プは、クリップ情報ファイル" 00003.CLP"に対応するクリップストリームファイル" 00003. PS〃の、時刻 90,000から 81, 090,000までである。
[0272] 次に、図 26は、図 10で説明したクリップ情報ファイル ClipOの具体例を示している。
即ち、図 26は、図 4のクリップ情報ファイル" 00001. CLP", "00002. CLP", "00003.CL P〃の具体例を示して ヽる。
[0273] クリップ情報ファイル" 00001. CLP"にお 、ては、 presentation_start_timeが 90,000に、 presentation_end_timeが 27,990,000に、それぞれなっている。従って、クリップ情報フ アイル" 00001. CLP"に対応するクリップストリームファイル" 00001.PS"に格納されたプ ログラムストリームによれば、 310秒分((27,990,000-90,000)/90kHz)のコンテンツが利 用可能である。
[0274] また、クリップ情報ファイル" 00001. CLP "にお!/、ては、 capture_enable_flag_Clipが 1に なっており、従って、クリップ情報ファイル" 00001.CLP"に対応するクリップストリームフ アイル" 00001.PS"に格納されたプログラムストリームに多重化されたビデオストリーム( に対応するビデオデータ)については、その 2次利用が許可されている。
[0275] さらに、図 26において、クリップ情報ファイル" 00001.CLP"の number_of_streamsは 4 となっており、従って、対応するクリップストリームファイル" 00001.PS"に格納されたプ ログラムストリームには、 4本のエレメンタリストリームが多重化されて!/、る。
[0276] いま、その 4本のエレメンタリストリームを、 stream#0, stream#l, stream#2, stream#3 とすると、図 26では、その 4本のエレメンタリストリーム stream#0, stream#l, stream#2 , stream#3それぞれの StreamlnfoO (図 10)の具体例が、「"00001.CLP"」の欄の下方 に記載されている。
[0277] クリップストリームファイル" 00001.PS"の 1本目のエレメンタリストリーム stream#0につ いては、 streamjdが OxEOとなっており、従って、このエレメンタリストリーム stream#0は 、図 20および図 22 (あるいは図 11)で説明したように、ビデオストリームである。なお、 本実施の形態では、ビデオストリームについては、上述したように、 private_stream_id は無関係であるが、図 26では、 0x00になっている。
[0278] また、クリップストリームファイル" 00001.PS"の 1本目のエレメンタリストリームであるビ デォストリーム stream#0については、その StreamlnfoOに含まれる StaticInfoO (図 12) の picture_sizeが' 720 X 480'に、 frame_rateが' 29.97Hz'に、 cc_flagが' Yes'に、それぞれ なっている。従って、このビデオストリーム stream#0は、 720 X 480ピクセルの、フレーム 周期が 29.97Hzのビデオデータであり、さらに、クローズドキャプションデータを含んで いる。
[0279] さらに、クリップストリームファイル" 00001.PS"の 1本目のエレメンタリストリームである ビデオストリーム stream#0につ 、ては、 StreamlnfoO (図 10)の number_of_Dynamidnfo が 0になっており、 pts_change_pointと DynamicInfoOとのセットは存在しな ヽ。
[0280] 次に、クリップストリームファイル" 00001.PS"の 2本目のエレメンタリストリーム stream# 1につ ヽては、 streamjdが OxBDとなっており、 private_stream_idが 0x00となって ヽる。 従って、このエレメンタリストリーム stream#lは、図 20および図 22で説明したように、 A TRACオーディオストリームである。
[0281] また、クリップストリームファイル" 00001.PS"の 2本目のエレメンタリストリームである A TRACオーディオストリーム stream#lにつ 、ては、その StreamlnfoOに含まれる Staticln foO (図 12)の audio— language— code力 γ日本語に、 channel—configuration力 S 'STEREO' に、
Figure imgf000049_0001
それぞれなつている。 従って、この ATRACオーディオストリーム stream#lは、 日本語で、かつステレオのォ 一ディォデータである。また、低域強調チャネルは含まれておらず、サンプリング周波 数は、 48kHzである。
[0282] さらに、クリップストリームファイル" 00001.PS"の 2本目のエレメンタリストリームである ATRACオーディオストリーム stream#lにつ 、ては、 StreamlnfoO (図 10)の number— of— Dynamiclnfoが 0になっており、 pts_change_pointと DynamicInfoOとのセットは存在しな い。
[0283] 次に、クリップストリームファイル" 00001.PS"の 3本目のエレメンタリストリーム stream# 2につ 、ては、 streamjdが OxBDとなっており、 private_stream_idが 0x80となって ヽる。 従って、このエレメンタリストリーム stream#2は、図 20および図 22で説明したように、 字幕ストリームである。
[0284] また、クリップストリームファイル" 00001.PS"の 3本目のエレメンタリストリームである字 幕ストリーム stream#2については、その StreamlnfoOに含まれる StaticInfoO (図 12)の s ubtitle— language— code力 日本 g§ 'に、 configurable—flagが 0に、それてれなつて ヽる。従 つて、この字幕ストリーム stream#2は、 日本語の字幕データであり、また、その表示方 式を変更することは許可されて 、な 、 (禁止されて 、る)。
[0285] さらに、クリップストリームファイル" 00001.PS"の 3本目のエレメンタリストリームである 字幕ストリーム stream#2については、 StreamlnfoO (図 10)の number— of— Dynamiclnfoが 0になっており、 pts_change_pointと DynamicInfoOとのセットは存在しな ヽ。
[0286] 次に、クリップストリームファイル" 00001.PS"の 4本目のエレメンタリストリーム stream# 3につ ヽては、 streamjdが OxBDとなっており、 private_stream_idが 0x81となって ヽる。 従って、このエレメンタリストリーム stream#3は、図 20および図 22で説明したように、 字幕ストリームである。
[0287] なお、クリップストリームファイル" 00001.PS"の 3本目のエレメンタリストリームである 字幕ストリーム stream#2と、 4本目のエレメンタリストリームである字幕ストリーム stream# 3とを区別するために、それぞれの private_stream_idは、 0x80と 0x81とになっている。
[0288] また、クリップストリームファイル" 00001.PS"の 4本目のエレメンタリストリームである字 幕ストリーム stream#2については、その StreamlnfoOに含まれる StaticInfoO (図 12)の s ubtitle—language— code力 日本 g§ 'に、 configurable—flag力丄に、それてれなつて ヽる。従 つて、この字幕ストリーム stream#3は、 日本語の字幕データであり、また、その表示方 式を変更することが許可されて ヽる。
[0289] さらに、クリップストリームファイル" 00001.PS"の 4本目のエレメンタリストリームである 字幕ストリーム stream#3については、 StreamlnfoO (図 10)の number— of— Dynamiclnfoが 0になっており、 pts_change_pointと DynamicInfoOとのセットは存在しな ヽ。
[0290] 次に、図 26において、クリップ情報ファイル" 00002.CLP"については、 presentation start_time力 ^0,000に、 presentation_end_timeが 27,090,000に、それぞれなって!/ヽる。 従って、クリップ情報ファイル" 00002.CLP"に対応するクリップストリームファイル" 0000 2. PS"に格納されたプログラムストリームによれば、 300秒分((27,090,000-90,000)/90k Hz)のコンテンツが利用可能である。
[0291] また、クリップ情報ファイル" 00002.CLP"においては、 capture_enable_flag_Clipが 0に なっており、従って、クリップ情報ファイル" 00002.CLP"に対応するクリップストリームフ アイル" 00002.PS"に格納されたプログラムストリームに多重化されたビデオストリーム( に対応するビデオデータ)については、その 2次利用が許可されていない (禁止され ている)。
[0292] さらに、図 26において、クリップ情報ファイル" 00002.CLP"の number_of_streamsは 4 となっており、従って、対応するクリップストリームファイル" 00002.PS"に格納されたプ ログラムストリームには、上述したクリップストリームファイル" 00001.PS"における場合と 同様に、 4本のエレメンタリストリームが多重化されて!/、る。
[0293] いま、その 4本のエレメンタリストリームを、 stream#0, stream#l, stream#2, stream#3 とすると、図 26では、その 4本のエレメンタリストリーム stream#0, stream#l, stream#2 , stream#3それぞれの StreamlnfoO (図 10)の具体例が、「"00002.CLP"」の欄の下方 に記載されている。
[0294] ここで、図 26では、クリップストリームファイル" 00002.PS"の 1乃至 4本目のエレメンタ リストリーム stream#0乃至 #3それぞれの StreamlnfoOの内容は、上述したクリップストリ ームファイル" 00001.PS"の 1乃至 4本目のエレメンタリストリーム stream#0乃至 #3それ ぞれの StreamlnfoOの内容と同一になっているので、その説明は省略する。
[0295] なお、上述のように、クリップストリームファイル" 00002.PS"の 1乃至 4本目のエレメン タリストリーム stream#0乃至 #3それぞれの StreamlnfoOの内容は、クリップストリームファ ィル" 00001.PS"の 1乃至 4本目のエレメンタリストリーム stream#0乃至 #3それぞれの St reamlnfoOの内容と同一であるので、クリップストリームファイル" 00002.PS"の 1本目の エレメンタリストリーム stream#0はビデオストリームであり、 2本目のエレメンタリストリー ム stream#lは ATRACオーディオストリームである。また、その 3本目のエレメンタリスト リーム stream#2と、 4本目のエレメンタリストリーム stream#3は、いずれも字幕ストリーム である。
[0296] 次に、図 26において、クリップ情報ファイル" 00003.CLP"については、 presentation start_time力 ^0,000に、 presentation_end_timeが 81,090,000に、それぞれなっている。 従って、クリップ情報ファイル" 00003.CLP"に対応するクリップストリームファイル" 0000 3. PS"に格納されたプログラムストリームによれば、 900秒分((81,090,000-90,000)/90k Hz)のコンテンツが利用可能である。
[0297] また、クリップ情報ファイル" 00003.CLP "にお!/、ては、 capture_enable_flag_Clipが 1に なっており、従って、クリップ情報ファイル" 00003.CLP"に対応するクリップストリームフ アイル" 00003.PS"に格納されたプログラムストリームに多重化されたビデオストリーム については、その 2次利用が許可されている。
[0298] さらに、図 26において、クリップ情報ファイル" 00003.CLP"の number_of_streamsは 3 となっており、従って、対応するクリップストリームファイル" 00003.PS"に格納されたプ ログラムストリームには、 3本のエレメンタリストリームが多重化されて!/、る。
[0299] いま、その 3本のエレメンタリストリームを、 stream#0, stream#l, stream#2とすると、 図 26では、その 3本のエレメンタリストリーム stream#0, stream#l, stream#2それぞれ の StreamlnfoO (図 10)の具体例が、「"00003. CLP"」の欄の下方に記載されている。
[0300] クリップストリームファイル" 00003.PS"の 1本目のエレメンタリストリーム stream#0につ いては、 streamjdが OxEOとなっており、従って、このエレメンタリストリーム stream#0は 、図 20および図 22 (あるいは図 11)で説明したように、ビデオストリームである。なお、 クリップストリームファイル" 00001.PS"の 1本目のエレメンタリストリーム stream#0と同様 に、 private— stream— ια【ま、 0x00になって 、る。
[0301] また、クリップストリームファイル" 00003.PS"の 1本目のエレメンタリストリームであるビ デォストリーム stream#0については、その StreamlnfoOに含まれる StaticInfoO (図 12) の picture_sizeが' 720 X 480'に、 frame_rateが' 29.97Hz'に、 cc_flagが 'No'に、それぞれ なっている。従って、このビデオストリーム stream#0は、 720 X 480ピクセルの、フレーム 周期が 29.97Hzのビデオデータであり、さらに、クローズドキャプションデータを含んで いない。
[0302] さらに、クリップストリームファイル" 00003.PS"の 1本目のエレメンタリストリームである ビデオストリーム stream#0につ 、ては、 StreamlnfoO (図 10)の number_of_Dynamidnfo が 2になっており、従って、その StreamlnfoOには、 pts_change_pointと DynamicInfoOと のセットが 2セット記述されて!、る。
[0303] 次に、クリップストリームファイル" 00003.PS"の 2本目のエレメンタリストリーム stream# 1については、 streamjdが OxElとなっており、従って、このエレメンタリストリーム stream #1は、図 20および図 22 (あるいは図 11)で説明したように、ビデオストリームである。 なお、クリップストリームファイル" 00003.PS"の 1本目のエレメンタリストリームであるビ デォストリーム stream#0と、 2本目のエレメンタリストリームであるビデオストリーム strea m#lとを区別するために、それぞれの streamjdは、 OxEOと OxElとになっている。また、 クリップストリームファイル" 00001.PS"の 1本目のエレメンタリストリーム stream#0と同様 に、 private— stream— ια【ま、 0x00になって 、る。
[0304] また、クリップストリームファイル" 00003.PS"の 2本目のエレメンタリストリームであるビ デォストリーム stream#lについては、その StreamlnfoOに含まれる StaticInfoO (図 12) の picture_size, frame.rate, cc_flagが、 1本目のエレメンタリストリームであるビデオスト リーム stream#0についてのものと同一になっている。従って、クリップストリームフアイ ル" 00003.PS"の 2本目のエレメンタリストリームであるビデオストリーム stream#lは、 72 0 X 480ピクセルの、フレーム周期が 29.97Hzのビデオデータであり、さらに、クローズ ドキャプションデータを含んで ヽな 、。
[0305] さらに、クリップストリームファイル" 00003.PS"の 2本目のエレメンタリストリームである ビデオストリーム stream#lにつ 、ては、 StreamlnfoO (図 10)の number_of_Dynamidnfo が 0になっており、 pts_change_pointと DynamicInfoOとのセットは存在しな ヽ。
[0306] 次に、クリップストリームファイル" 00003.PS"の 3本目のエレメンタリストリーム stream# 2につ 、ては、 streamjdが OxBDとなっており、 private_stream_idが 0x00となって ヽる。 従って、このエレメンタリストリーム stream#2は、図 20および図 22で説明したように、 A TRACオーディオストリームである。
[0307] また、クリップストリームファイル" 00003.PS"の 3本目のエレメンタリストリームである A TRACオーディオストリーム stream#2につ 、ては、その StreamlnfoOに含まれる Staticln foO (図 12)の audio— language— code, channel—configuration, lfe— existence, sampling— fre quencyが、クリップストリームファイル" 00001. PS"の 2本目のエレメンタリストリームであ る ATRACオーディオストリーム stream#lのものと同一になっている。従って、クリップス トリームファイル" 00003.PS"の 3本目のエレメンタリストリームである ATRACオーディオ ストリーム stream#2は、 日本語で、かつステレオのオーディオデータである。
また、低域強調チャネルは含まれておらず、サンプリング周波数は、 48kHzである。
[0308] さらに、クリップストリームファイル" 00003.PS"の 3本目のエレメンタリストリームである ATRACオーディオストリーム stream#2については、 StreamlnfoO (図 10)の number— of— DynamicInfo }になつ飞おり、 つて、その StreamlnfoOには、 pts— cnange— pointと Dyn amicInfoOとのセットが 3セット記述されている。
[0309] 次に、図 27は、図 10で説明したクリップ情報ファイル ClipOのうちの EP_map()具体例 を示している。即ち、図 27は、図 4のクリップ情報ファイル" 00001.CLP"の中の、図 14 の EPjnapOの具体例を示して 、る。
[0310] 図 27にお 、て、 EP_map0の number_of_stream_id_entriesは 1になっており、従って、こ の EP_map0には、 1つのエレメンタリストリームについてのデコード開始可能点の情報 が記述されている。 [0311] また、図 27の EP_mapOでは、 streamjdが OxEOになっている。従って、図 20および図 22で説明したことから、 EP_map()には、 OxEOとなっている streamjdによって特定され るビデオストリームにつ 、てのデコード開始可能点の情報(PTS_EP_startと RPN_EP_st art (図 14) )が記述されている。即ち、図 27は、クリップ情報ファイル" 00001. CLP"の E P_map0であり、クリップ情報ファイル" 00001.CLP"に対応するクリップストリームフアイ ル" 00001.CLP"において、 streamjdが OxEOのエレメンタリストリームは、図 26で説明 したように、クリップストリームファイル" 00001. CLP"の 1本目のビデオストリーム stream #0であるから、図 27の EPjnapOに記述されている情報は、そのビデオストリーム strea m#0のデコード開始可能点の PTS_EP_startと RPN_EP_startである。
[0312] 図 27では、クリップストリームファイル" 00001.CLP"の 1本目のビデオストリーム strea m#0のデコード開始可能点のうちの、先頭から 5点の PTS_EP_startと RPN_EP_startが 記載されており、 6点目以降の PTS_EP_startと RPN_EP_startの記載は省略してある。
[0313] なお、図 27の EPjnapOにおいて、 private_stream_idは 0x00になっている力 streamj dがビデオストリームを表している場合は、上述したように、 private_stream_idは無関係 である (無視される)。
[0314] 次に、図 28は、図 25で説明した PlayList #0と PlayList #1 (図 5の PlayListO)の中の P layListMarkOの具体例を示して 、る。
[0315] 図 28上側は、 PlayList #0の PlayListMarkO (図 7)を示して!/、る。
[0316] 図 28上側において、 PlayList #0の PlayListMarkOにおける number_of_PlayList_mark sは 7になっており、従って、 PlayList #0 (の PlayListMarkO)に含まれる MarkOの数は 7 である。
[0317] また、図 28上側において、 PlayList #0に含まれる 7つの MarkOのうちの 1番目の Mar kOである Mark#0は、 markj pe (図 7)が' Chapter'になっているので、チヤプタマーク である。さらに、 Mark#0は、 reむ o_PlayItem_id (図 7)が 0になっているので、 PlayList #0 に含まれる図 25の 2つの PlayItem#0と #1のうちの、 PlayItem#0に属する。また、 Mark# 0は、 mark_time_stampが 180,090になっているので、 PlayList #0に含まれる PlayItem#0 によって再生されるクリップストリームファイルの時刻(再生時刻) 180,090上の印であ る。 らに、 Mark#0は、 entry— ES— stream— idおよび entry— ES— private— stream— id力 Sいずれ も 0になっているので、いずれのエレメンタリストリームにも関連付けられていない。ま た、 Mark#0は、 mark_dataが 1になっているので、番号が 1のチヤプタを表す。
[0318] なお、ここでは、 PlayList #0に含まれる PlayItem#0によって再生されるクリップストリ ームファイルは、図 25で説明した、その PlayItem#0の Clip_Infomation_file_nameに記述 されている" 00001. CLP"から特定されるクリップストリームファイル" 00001.PS"であり、 従って、 Mark#0の mark_time_stampが表す、上述した時刻 180,090は、クリップストリー ムファイル" 00001.PS"の時刻である。
[0319] 図 28上側において、 PlayList #0に含まれる 7つの MarkOのうちの 5番目の MarkOで ある Mark#4も、 1番目の Mark#0と同様のチヤプタマークである。
[0320] 即ち、 5番目の MarkOである Mark#4は、 markj pe (図 7)が' Chapter'になっているの で、チヤプタマークである。さらに、 Mark#4は、 reむ o_PlayItem_id (図 7)力 になってい るので、 PlayList #0に含まれる図 25の 2つの PlayItem#0と #1のうちの、 Playltem#lに 属する。また、 Mark#4は、 mark_time_stampが 90,000になっているので、 PlayList #0に 含まれる Playltem#lによって再生されるクリップストリームファイルの時刻 90,000上の 印で teる。 らに、 Mark#4は、 entry— ES— stream— idおよび entry— ES— private— stream— id 、ずれも 0になって!/、るので、 V、ずれのエレメンタリストリームにも関連付けられて!/、な い。また、 Mark#4は、 mark_dataが 2になっているので、番号が 2のチヤプタを表す。
[0321] なお、ここでは、 PlayList #0に含まれる Playltem#lによって再生されるクリップストリ ームファイルは、図 25で説明した、その Playltem#lの Clip_Infomation_file_nameに記述 されている" 00002.CLP"から特定されるクリップストリームファイル" 00002.PS"であり、 従って、 Mark#4の mark_time_stampが表す、上述した時刻 90,000は、クリップストリーム ファイル" 00002.PS"の時刻である。
[0322] また、図 28上側において、 PlayList #0に含まれる 7つの MarkOのうちの 2番目の Mar kOである Mark#lは、 markj pe (図 7)が' Index'になっているので、インデクスマークで ある。さらに、 Mark#lは、 reむ o_PlayItem_id (図 7)が 0になっているので、 PlayList #0に 含まれる図 25の 2つの PlayItem#0と #1のうちの、 PlayItem#0に属する。また、 Mark#l は、 mark_time_stampが 5, 580,090になっているので、 PlayList #0に含まれる Playltem# 0によって再生されるクリップストリームファイルの時刻 5,580,090上の印である。さらに 、 Mark#l【ま、 entry— ES— stream— idおよび entry— ES— private— stream— id力 、ずれも 0になつ ているので、いずれのエレメンタリストリームにも関連付けられていない。また、 Mark#l は、 mark_dataが 1になっているので、番号が 1のインデクスを表す。
[0323] なお、ここでは、 PlayList #0に含まれる PlayItem#0によって再生されるクリップストリ ームファイルは、上述したように、クリップストリームファイル" 00001.PS"であり、従って 、 Mark#lの mark_time_stampが表す、上述した時刻 5, 580,090は、クリップストリームフ アイル" 00001.PS"の時刻である。
[0324] 図 28上側において、 PlayList #0に含まれる 7つの MarkOのうちの 3番目、 6番目、 7 番目の MarkOである Mark#2, Mark#5, Mark#6も、 2番目の Mark#lと同様のインデクス マークである。
[0325] また、図 28上側において、 PlayList #0に含まれる 7つの MarkOのうちの 4番目の Mar kOである Mark#3は、 markj pe (図 7)力 S'Event'になっているので、イベントマークであ る。さらに、 Mark#3は、 reむ o_PlayItem_id (図 7)力^になっているので、 PlayList #0に 含まれる図 25の 2つの PlayItem#0と #1のうちの、 PlayItem#0に属する。また、 Mark#3 は、 mark_time_stampが 16,380,090になっているので、 PlayList #0に含まれる Playltem #0によって再生されるクリップストリームファイルの時刻 16,380,090上の印である。さら 【こ、 Markftjiま、 entry— ES— stream— idおよび entry— ES— private— stream— id¾ 、ずれも CHこな つているので、いずれのエレメンタリストリームにも関連付けられていない。また、 Mark #3は、 mark_dataが 0になっているので、引数として 0を伴うイベントを発生させる。
[0326] なお、ここでは、 PlayList #0に含まれる PlayItem#0によって再生されるクリップストリ ームファイルは、上述したように、クリップストリームファイル" 00001.PS"であり、従って 、 Mark#3の mark_time_stampが表す、上述した時刻 16,380,090は、クリップストリームフ アイル" 00001.PS"の時刻である。
[0327] ここで、図 28上側では、 PlayList #0の PlayListMarkOの一覧表の欄外の右側に、 Ma rk()が属する PlayltemOの先頭からの時間を示してあり、さらにその右側に、 PlayList # 0の先頭からの時刻を示してある。
[0328] 次に、図 28下側は、 PlayList#lの PlayListMarkO (図 7)を示している。
[0329] 図 28下側にぉ 、て、 PlayList#lの PlayListMarkOにおける number_of_PlayList_marks は 3になっており、従って、 PlayList#l (の PlayListMarkO)に含まれる Mark()の数は 3で ある。
[0330] また、図 28下側において、 PlayList#lに含まれる 3つの MarkOのうちの 1番目の Mar kOである Mark#0は、 markj pe (図 7)が' Chapter'になっているので、チヤプタマーク である。さらに、 Mark#0は、 reむ o_PlayItem_id (図 7)が 0になっているので、 PlayList#l に含まれる図 25の 1つの PlayItem#0に属する。また、 Mark#0は、 mark_time_stampが 9 0,000になっているので、 PlayList#lに含まれる PlayItem#0によって再生されるクリップ ストリームファイルの時刻 90,000上の印である。さらに、 Mark#0は、 entry_ES_stream_id および entry_ES_private_stream_idが 、ずれも 0になって 、るので、 V、ずれのエレメンタ リストリームにも関連付けられていない。また、 Mark#0は、 mark_dataが 0になっている ので、番号が 0のチヤプタを表す。
[0331] なお、ここでは、 PlayList#lに含まれる PlayItem#0によって再生されるクリップストリー ムファイルは、図 25で説明した、その PlayItem#0の Clip_Infomation_file_nameに記述さ れている" 00003.CLP"から特定されるクリップストリームファイル" 00003.PS"であり、従 つて、 Mark#0の mark_time_stampが表す、上述した時刻 90,000は、クリップストリームフ アイル" 00003.PS"の時刻である。
[0332] 図 28下側において、 PlayList#lに含まれる 3つの MarkOのうちの 2番目の MarkOで ある Mark#lは、 markj pe (図 7)力 'Event'になっているので、イベントマークである。さ らに、 Mark#lは、 reむ o_PlayItem_id (図 7)が 0になっているので、 PlayList#lに含まれ る図 25の 1つの PlayItem#0に属する。また、 Mark#lは、 mark_time_stampが 27,090,00 0になっているので、 PlayList#lに含まれる PlayItem#0によって再生されるクリップストリ ームファイルの時刻 27,090,000上の印である。さらに、 Mark#lは、 entry_ES_stream_id 力 χΕ0で、 entry_ES_private_stream_idが 0になって 、るので、 streamjdが OxEOで特定 (識別)されるエレメンタリストリーム、即ち、図 20および図 22で説明したように、ビデ ォストリームに関連付けられている。また、 Mark#lは、 mark_dataが 1になっているので 、引数として 1を伴うイベントを発生させる。
[0333] なお、ここでは、 PlayList#lに含まれる PlayItem#0によって再生されるクリップストリー ムファイルは、上述したように、クリップストリームファイル" 00003.PS"であり、従って、 M ark#lの mark_time_stampが表す、上述した時刻 27,090,000は、クリップストリームフアイ ル〃 00003.PS〃の時刻である。
[0334] また、 Mark#lが関連付けられて!/、る、 streamjdが OxEOのビデオストリームは、その M ark# 1が属する、図 25の PlayList# 1に含まれる PlayItem#0の Clip Jnfomation— file— name に記述されている" 00003.CLPΊこ記述されてぃるstream_idが0xE0のビデォストリーム 、即ち、図 26のクリップ情報ファイル" 00003.CLP"から特定される、クリップストリーム ファイル" 00003.PS"に多重化されている 3本のエレメンタリストリーム stream#0乃至 #2 のうちの、 1本目のエレメンタリストリーム(ビデオストリーム) stream#0である。
[0335] 次に、図 28下側において、 PlayList#lに含まれる 3つの MarkOのうちの 3番目の Mar k0である Mark#2は、 markj pe (図 7)力 S'Event'になっているので、イベントマークであ る。さらに、 Mark#2は、 ref_to_PlayItem_id (図 7)力^になっているので、 PlayList#lに含 まれる図 25の 1つの PlayItem#0に属する。また、 Mark#lは、 111 10:^6_3 &]1^が27,54 0,000になっているので、 PlayList#lに含まれる PlayItem#0によって再生されるクリップ ストリームファイルの時刻 27,540,000上の印である。さらに、 Mark#2は、 entry_ES_strea m_id力 SOxElで、 entry_ES_private_stream_idが 0になって 、るので、 streamjdが OxElで 特定 (識別)されるエレメンタリストリーム、即ち、図 20および図 22で説明したように、 ビデオストリームに関連付けられている。また、 Mark#2は、 mark_dataが 2になっている ので、引数として 2を伴うイベントを発生させる。
[0336] なお、ここでは、 PlayList#lに含まれる PlayItem#0によって再生されるクリップストリー ムファイルは、上述したように、クリップストリームファイル" 00003.PS"であり、従って、 M ark#2が表す、上述した時刻 27,540,000は、クリップストリームファイル" 00003.PS"の時 刻である。
[0337] また、 Mark#2が関連付けられて!/、る、 streamjdが OxElのビデオストリームは、その M ark#2が属する、図 25の PlayList# 1に含まれる PlayItem#0の Clip Jnfomation— file— name に記述されている" 00003. CLP"に記述されている streamjdが OxElのビデオストリーム 、即ち、図 26のクリップ情報ファイル" 00003.CLP"から認識される、クリップストリーム ファイル" 00003.PS"に多重化されている 3本のエレメンタリストリーム stream#0乃至 #2 のうちの、 2本目のエレメンタリストリーム(ビデオストリーム) stream#lである。 [0338] ここで、図 28下側では、 PlayList#lの PlayListMarkOの一覧表の欄外の右側に、 Ma rk()が属する PlayltemOの先頭からの時刻を示してある。
[0339] なお、図 28においては、チヤプタマークやインデクスマークが表すチヤプタゃイン デタスの番号が、 mark_dataに記述されている力 チヤプタマークやインデクスマーク が表すチヤプタゃインデタスの番号は、 mark_dataに記述しなくても、例えば、 PlayList MarkOにおけるチヤプタマークやインデクスマークの数をカウントすることによって認 識することができる。
[0340] [ディスク装置の動作説明]
次に、図 1のディスク 101に、図 25乃至図 28で説明したようなデータ(ファイル)が 記録されているとして、図 1のディスク装置の動作について説明する。
[0341] ディスク 101がディスクドライブ 102に挿入されると、その旨を示すメッセージがドラ イブインターフェース 114、さらには、図 2のオペレーティングシステム 201を経由して 、ビデオコンテンツ再生プログラム 210に伝えられる。ビデオコンテンツ再生プログラ ム 210は、ディスク 101がディスクドライブ 102に挿入された旨のメッセージをォペレ 一ティングシステム 201から受信すると、図 29の再生前処理を開始する。
[0342] 「再生前処理」
即ち、図 29は、ビデオコンテンツ再生プログラム 210が行う再生前処理を説明する フローチャートである。
[0343] ここで、以下、フローチャートによって説明するディスク装置の動作または処理は、 必ずしもフローチャートとして記載された順序に沿って時系列に行われる必要はなく 、並列的あるいは個別に行われることもある。但し、本明細書では、便宜上、ディスク 装置の動作または処理を、フローチャートに沿って説明する。
[0344] 再生前処理では、ビデオコンテンツ再生プログラム 210は、ステップ S101において 、オペレーティングシステム 201のファイルシステム機能を使用して、ディスク 101を チェックし、ディスク 101が、ビデオコンテンツ再生プログラム 210用の正常なディスク であるか否かを判定する。
[0345] ここで、上述したように、ディスク 101へのアクセス(ファイルの読み出し)は、ォペレ 一ティングシステム 201のファイルシステム機能を使用して行われる力 以下では、そ の説明は、適宜省略する。
[0346] ステップ S101において、ディスク 101が正常なディスクでないと判定された場合、 即ち、例えば、ディスク 101に採用されているファイルシステム力 オペレーティング システム 201の対応して!/、な!/、タイプであった場合や、ルートディレクトリに' VIDEO" ディレクトリが置かれて 、な 、場合、ビデオコンテンツ再生プログラム 210はディスク 1 01に対応していないと判断して、ステップ S102に進み、グラフィクス処理モジュール 219が、エラー処理を行って、再生前処理を終了する。
[0347] 即ち、グラフィックス処理モジュール 219は、エラー処理として、ディスク 101が正常 でない旨のエラーメッセージ(のビデオデータ)を生成し、ビデオ出力モジュール 220 力も出力させ、これにより、エラーメッセージを表示させる。なお、エラー処理としては 、その他、例えば、オーディオ出力モジュール 221からの警告音の出力や、ディスク ドライブ 102からのディスク 101の排出等を行うようにすることが可能である。
[0348] 一方、ステップ S101において、ディスク 101が正常なディスクであると判定された場 合、ステップ S103に進み、ビデオコンテンツ再生プログラム 210は、コンテンツデー タ供給モジュール 213によって、オペレーティングシステム 201に対し、ディスク 101 ( 図 4)の" VIDEO"ディレクトリに置力れて 、る" SCRIPT.DAT"ファイルと、 "PLAYLIST. DAT〃ファイルとの 2つのデータファイルを要求して読み込み、ステップ S 104に進む。 ステップ S104では、 "SCRIPT.DAT"ファイル力 スクリプト制御モジュール 211に供 給されるとともに、 "PLAYLIST.DAT〃ファイル力 プレイヤ制御モジュール 212に供給 される。
[0349] その後、ステップ S104力ら S105乃至 S107に進み、プレイヤ制御モジュール 212 は、初期化処理を行う。なお、スクリプト制御モジュール 211は、プレイヤ制御モジュ ール 212の初期化処理が終了するまで待つ。
[0350] 「プレイヤ制御モジュール 212の初期化処理」
初期化処理では、ステップ S105において、プレイヤ制御モジュール 212力 "PLA
YLIST.DAT"ファイルの解析を行 、、 "PLAYLIST.DAT"ファイルの中で使われて!/、る クリップ情報ファイルの数とそのファイル名を調査する。
[0351] 即ち、いまの場合、 "PLAYLIST.DAT"ファイルは、図 25に示したものとなっており、 プレイヤ制御モジュール 212は、図 25の" PLAYLIST.DAT"ファイルにお!/、て number_ of_PlayListsが 2になっていることから、 1番目の PlayList#0と 2番目の PlayList#lとの 2 つの PlayListOが存在することを認識する。さらに、プレイヤ制御モジュール 212は、 図 25の" PLAYLIST.DAT"ファイルにおける 1番目の PlayList#0について、 number_of_ Playltemsが 2となっていることから、その PlayList#0には、 1番目の PlayItem#0と 2番目 の Playltem#lとの 2つの PlayltemOが存在することを認識する。そして、プレイヤ制御 モジュール 212は、図 25の" PLAYLIST.DAT"ファイルにおける、 PlayList#0に含まれ る 1番目の PlayItem#0と 2番目の Playltem#lそれぞれの Clip_Information_file_nameを 参照することにより、 PlayList#0に含まれる 1番目の PlayItem#0のクリップ情報ファイル (のファイル名)が" 00001. CLP"であり、 2番目の Playltem#lのクリップ情報ファイル力 00002.CLP"であることを認識する。
[0352] プレイヤ制御モジュール 212は、 2番目の PlayList#lについても同様にして、その nu mber_of_PlayItemsが 1であることから、 1つの PlayltemO (PlayItem#0)が存在し、さらに 、その PlayItem#0の中の Clip_Information_file_nameから、その PlayItem#0のクリップ情 報ファイルが" 00003.CLP"であることを認識する。
[0353] その後、ステップ S105力ら S106に進み、プレイヤ制御モジュール 212は、ディスク 101力ら、ステップ S 105で認識したクリップ情報ファイル、即ち、ディスク 101の" VID EO"ディレクトリ内の" CLIP"ディレクトリ力 3つのクリップ情報ファイル" 00001.CLP", "00002. CLP", "00003. CLP"を読み込む。
[0354] ここで、ステップ S 106でのクリップ情報ファイルの読み込みは、最初に再生される P1 ayListOの Playltemのクリップ情報ファイルだけで十分である力 本実施の形態では、 上述したように、すべての PlayListOの PlayltemOのクリップ情報ファイルを先読みして おくこととする。
[0355] ステップ S106の処理後は、ステップ S107に進み、プレイヤ制御モジュール 212は 、ステップ S105で認識したクリップ情報ファイルの読み込みに成功した力どうかを判 定し、さらに、その読み込んだクリップ情報ファイルに対応するクリップストリームフアイ ルカ ディスク 101に存在するか否かを判定(チェック)する。即ち、ステップ S 107で は、クリップ情報ファイル" 00001. CLP", "00002. CLP", "00003. CLP"の読み込みに成 功し、さらに、そのクリップ情報ファイル" 00001.CLP", "00002.CLP", "00003.CLP"そ れぞれとファイル名の拡張子のみが異なるクリップストリームファイル" 00001.PS"、 "00 002.PS"、 "00003.PS"が、ディスク 101の" VIDEO"ディレクトリの下にある" STREAM" ディレクトリに存在するかどうかを判定する。
[0356] ステップ S107において、ステップ S 105で認識したクリップ情報ファイルの読み込 みに失敗したと判定されるカゝ、または、クリップ情報ファイルに対応するクリップストリ ームファイル力 ディスク 101に存在しないと判定された場合、即ち、例えば、 "PLAY LIST.DAT"ファイルにしたがった再生に必要なクリップ情報ファイルやクリップストリー ムファイル力 ディスク 101に記録されていない場合、ビデオコンテンツ再生プロダラ ム 210は、ディスク 101に対応していないと判断して、ステップ S102に進み、上述し たエラー処理が行われ、再生前処理を終了する。
[0357] 一方、ステップ S107において、ステップ S 105で認識したクリップ情報ファイルの読 み込みに成功し、かつ、クリップ情報ファイルに対応するクリップストリームファイルが 、ディスク 101に存在すると判定された場合、プレイヤ制御モジュール 212は、初期 化処理を終了し、ステップ S108に進む。
[0358] ステップ S108では、スクリプト制御モジュール 211が、 "SCRIPT.DAT"ファイルの解 釈と実行を開始する。
[0359] 例えば、 V、ま、スクリプト制御モジュール 211が、 "SCRIPT.DAT〃ファイルを実行する ことにより、 1番目の PlayListO(PlayList#0)の再生力 プレイヤ制御モジュール 212に 指示されたとすると、図 30の再生処理が行われる。
[0360] 「再生処理」
即ち、図 30は、ビデオコンテンツ再生プログラム 210が行う再生処理を説明するフ ローチャートである。
[0361] 「再生準備処理」
再生処理では、プレイヤ制御モジュール 212は、まずステップ S121と S122におい て、スクリプト制御モジュール 211から再生を指示された PlayList()、即ち、 1番目の Pla yListO(PlayList#0)の再生準備処理を行う。
[0362] 即ち、プレイヤ制御モジュール 212は、ステップ S121において、 1番目の PlayList# 0に含まれる 1番目の PlayItem#0の IN_time (図 6)を確認して、ステップ S122〖こ進み、 1番目の PlayList#0に含まれる 1番目の PlayItem#0によって再生されるクリップストリー ムファイル" 00001.PS"上の、その PlayItem#0の IN_timeに相当する、再生を開始する 再生開始位置を調査する。
[0363] ここで、 PlayltemOの IN_time (図 6)力 クリップストリームファイルの先頭を指し示して いる場合には、クリップストリームファイルの先頭から、プログラムストリームを読み出せ ば良いが、 IN_timeが、クリップストリームファイルの先頭以外を指し示している場合に は、 IN_timeに対応する位置を探し出し (調査し)、そこ力もプログラムストリームを読み 出す必要がある。
[0364] 具体的には、図 25に示した場合、 1番目の PlayList#0に含まれる 1番目の Playltem# 0の IN_timeは、 180,090である。プレイヤ制御モジュール 212は、 1番目の PlayList#0 に含まれる 1番目の PlayItem#0によって再生されるクリップストリームファイル" 00001.C LP"の、図 27に示した EP_map()から、 PlayItem#0の IN_timeである 180,090に適した再 生開始位置を探し出す。
[0365] 即ち、プレイヤ制御モジュール 212は、例えば、 EPjnapOに記述されたデコード開 始可能点を表す PTS_EP_startのうちの、式 PTS_EP_start≤ IN_timeを満たす最大の PT S_EP_startを、二分探索 (バイナリサーチ)等を用いて検索する。ここで、 IN_time以下 の PTS_EP_startを検索するのは、 IN_timeによって表される位置力 デコード開始可能 点であるとは限らな 、からである。
[0366] V、まの場合、 IN_timeは、上述したように、 180,090である。また、 1番目の PlayList#0 に含まれる 1番目の PlayItem#0によって再生されるクリップストリームファイル" 00001.C LP"の、図 27に示した EPjnapOにおいては、式 PTS_EP_start≤IN_timeを満たす最大 の PTS_EP_startとして、 180,090が記述されている。従って、プレイヤ制御モジユーノレ 2 12では、図 27〖こ示した EPjnapO力ら、その 180,090となっている PTS_EP_startが検索 される。
[0367] さらに、プレイヤ制御モジュール 212では、その検索された PTS_EP_startに対応す る RPN_EP_startである 305 (セクタ)が読み出され、その 305である RPN_EP_startによつ て表されるクリップストリームファイル" 00001.PS"上の位置力 再生開始位置として決 定される。
[0368] プレイヤ制御モジュール 212は、以上のようにして再生開始位置を決定すると、ス テツプ S 122力ら S 123に進み、タイムコードを表示するように、グラフィクス処理モジュ ール 219を制御する。グラフィクス処理モジュール 219は、プレイヤ制御モジュール 2 12の制御にしたカ^、、タイムコード(のビデオデータ)を生成してビデオ出力モジユー ル 220〖こ出力する。これにより、タイムコードの表示が開始される。
[0369] ここで、ステップ S 123で表示が開始されるタイムコードは、例えば、 PlayListOの先 頭を 00:00:00 (時間:分:秒)に換算した値とする。なお、タイムコードとともに、またはタ ィムコードではなぐチヤプタゃインデタスの番号を表示するようにしても良い。
[0370] 「PlaylistMarkOの解析処理」
ステップ S123でタイムコードの表示が開始された後は、ステップ S124に進み、プ レイヤ制御モジュール 212は、スクリプト制御モジュール 211から再生を指示された P1 ayListO、即ち、 1番目の PlayListO(PlayList#0)に記述されている PlayListMarkO (図 7 )を解析する解析処理を行う。
[0371] 具体的には、プレイヤ制御モジュール 212は、既に読み込んである" PLAYLIST.DA T' 'ファイルにおける 1番目の PlayList#0の、図 28上側に示した PlayListMarkOにおい て、 number_of_PlayList_marksが 7になって 、ることから、その PlayList#0に含まれる Ma rk()の数が 7であることを認識する。
[0372] さらに、プレイヤ制御モジュール 212は、 PlayList#0に含まれる、図 28上側の 7つの MarkOを解析し、その reむ o_PlayItem_idから、 7つの MarkOのうちの 1番目から 4番目ま での 4つの MarkOが、 PlayList#0の 1番目の PlayltemO (PlayItem#0)に属していること を認識する。
[0373] その後、プレイヤ制御モジュール 212は、 PlayList#0の 1番目の PlayItem#0に属して いる 4つの MarkOの mark_time_stampを取り出し、要素数力 の配列として、デコード制 御モジュール 214に渡す。即ち、これにより、図 28上側の 7つの MarkOのうちの 1番目 から 4番目までの 4つの MarkOそれぞれの mark_time_stampである {180,090}、 {5,580,09 0}、 {10,980,090}、 {16,380,090}の 4つの時刻力 プレイヤ制御モジュール 212から、 デコード制御モジュール 214に渡される。このときこれら時刻の属性は「マーク処理」 であることも、プレイヤ制御モジュール 212から、デコード制御モジュール 214に伝え られる。デコード制御モジュール 214は、計時部 214Aで計時している時刻が、「マー ク処理」の属性の時刻に一致したとき、その旨を示すメッセージ、「マーク処理」の属 性の時刻に一致した時刻、および「マーク処理」の属性を、プレイヤ制御モジュール 2 12に伝える。
[0374] 「再生するエレメンタリストリームの決定処理」
次に、ステップ S 124力ら S 125に進み、プレイヤ制御モジュール 212は、再生する エレメンタリストリームを決定する。
[0375] 即ち、プレイヤ制御モジュール 212は、スクリプト制御モジュール 211から再生を指 示された PlayListOである 1番目の PlayList#0における 1番目の Playltem#0 (図 25) (DC lip_Information_fime_nameにファイル名が記述されて 、る、図 26のクリップ情報フアイ ル" 00001.CLP"において、 number_of_streamsが 4になっていることから、対応するタリ ップストリームファイル" 00001.PS"に、 4本のエレメンタリストリームが多重化されている ことを認識する。さらに、プレイヤ制御モジュール 212は、その 4本のエレメンタリストリ ームに対する、図 26のクリップ情報ファイル" 00001.CLP"の StaticInfoOの streamjdと 必要な private_stream_idを順に調査し、その 4本のエレメンタリストリームが、 1本のビ デォストリーム、 1本の ATRACオーディオストリーム、および 2本の字幕ストリームであ ることを認識する。即ち、クリップストリームファイル" 00001.PS"に多重化されている各 属性のエレメンタリストリームの本数が認識される。
[0376] なお、クリップストリームファイルに多重化されている各属性のエレメンタリストリーム の本数の情報は、再生中でのエレメンタリストリームの切り替え (オーディオ切り替え、 字幕切り替え等)に使用される。また、字幕ストリームは、クリップストリームファイル中 に存在しない (コンテンツに字幕が含まれない)場合があり、字幕ストリームが存在す るかどうかの判断に、「字幕ストリーム」の属性のエレメンタリストリームの本数の情報が 使用される。
[0377] プレイヤ制御モジュール 212は、以上のような StaticInfoOの調査の結果に基づいて 、再生するエレメンタリストリームを選択、決定するが、いまの場合、クリップストリーム ファイル" 00001.PS"に多重化されて!/、る 4本のエレメンタリストリームの中に、「ビデオ ストリーム」と「オーディオストリーム」の属性のエレメンタリストリームは、それぞれ 1本し かないので、「ビデオストリーム」と「オーディオストリーム」の属性のエレメンタリストリー ムについては、選択の余地がなぐその 1本のビデオストリームとオーディオストリーム (ATRACオーディオストリーム)力 再生するエレメンタリストリームとして決定される。
[0378] また、「字幕ストリーム」の属性のエレメンタリストリームについては、クリップストリーム ファイル" 00001.PS"に多重化されて!/、る 4本のエレメンタリストリームの中に 2本存在 するので、その 2本の字幕ストリームのうちのいずれ力 1本の字幕ストリーム力 再生 するエレメンタリストリームとして選択、決定される。ここでは、例えば、 2本の字幕ストリ ームのうちの、クリップ情報ファイル" 00001.CLP"での出現順で最初の字幕ストリーム 力 S選択されることとする。
[0379] ここで、上述のように、クリップストリームファイル" 00001.PS"に多重化されている 4本 のエレメンタリストリームの属性と本数を認識するにあたっては、その 4本のエレメンタ リストリームそれぞれを特定する必要がある力 プレイヤ制御モジュール 212は、クリツ プストリームファイル" 00001.PS"に多重化されている 4本のエレメンタリストリームの特 疋 、 stream— idと必要な private— stream— idによって? Tつ。
[0380] 即ち、プレイヤ制御モジュール 212は、クリップストリームファイル" 00001.PS"に多重 化されている 4本のエレメンタリストリームのうちの、「ビデオストリーム」の属性のエレメ ンタリストリームであるビデオストリームを、図 26でクリップ情報ファイル" 00001.CLP" につ 、て説明したように、 OxEOとなって!/、る streamjdで特定する。
[0381] また、プレイヤ制御モジュール 212は、クリップストリームファイル" 00001.PS"に多重 ィ匕されて 、る 4本のエレメンタリストリームのうちの、「オーディオストリーム」の属性のェ レメンタリストリームである ATRACオーディオストリームを、図 26でクリップ情報フアイ ル" 00001.CLP"について説明したように、 OxBDとなっている stream_id、および 0x00と なつ ヽる private— stream— id "特疋する。
[0382] さらに、プレイヤ制御モジュール 212は、クリップストリームファイル" 00001.PS"に多 重化されて 、る 4本のエレメンタリストリームにおける「字幕ストリーム」の属性のエレメ ンタリストリームである 2本の字幕ストリームそれぞれを、図 26でクリップ情報ファイル" 00001. CLP"について説明したように、 OxBDとなっている stream_id、および 0x80となつ て!、る private_stream_idと、 OxBDとなって 、る stream_id、および 0x81となって 、る priva te_stream_idで、それぞれ特定する。
[0383] 以上のように、クリップストリームファイルに対応するクリップ情報ファイルのメタデー タとして記述される streamjdと private_stream_idの糸且み合わせによって、そのクリップス トリームファイルに多重化されているエレメンタリストリームを特定することができる。
[0384] ここで、 streamjdと private_streamjdの組み合わせは、 MPEG2- Systemの多重化を 拡張するために設けたメカニズムである。この stream jdと private_stream jdの組み合 わせを、メタデータ (データベース)において、エレメンタリストリームを特定するために 使用することにより、エレメンタリストリームを確実に特定することが可能になる。また、 将来、 private_stream_idの意味を拡張し、対応するエレメンタリストリームの本数や種 類 (属性)を増やした場合にも現在のメカニズムをそのまま使用可能であるため、拡張 性において勝っている。
[0385] 即ち、例えば、 BD(Blue ray Disc)規格では、データの特定に、 MPEG2規格のトラン スポートストリーム (Transport Stream)の PID(Packet ID)が用いられるため、 MPEG2規 格に拘束される。また、例えば、 DVD-Video規格では、 private_stream_idに類似する s ub_stream_idが定義されている力 sub_stream_idは、ストリームの特定のためにデータ ベース上に記述することができるようにはなっておらず、 8本あるいは 32本のストリーム 情報を記述する固定的な領域に記述することができるにすぎな 、ため(たとえば VI4- 49、 Table 4.2.1-2 (VTS- AST— ATRT)や VI4- 52、 Table 4.2.1-3 (VTS— SPST— ATRT)等 参照)、拡張性に乏しい。
[0386] これに対して、 streamjdと private_streamjdの組み合わせは、メタデータが記述され る、例えば、図 10のクリップ情報ファイル ClipOにおいて、 number_of_streamsで表すこ とができる数だけ記述することができ、従って、クリップストリームファイルに多重化さ れているエレメンタリストリームを、その数によらず(但し、 number_of_streamsで表すこ とができる数の範囲)、クリップ情報ファイル ClipOに記述されたメタデータとしての stre amjdと private_stream_idの組み合わせから特定することが可能となる。
[0387] なお、本実施の开態では、 streamjdと private_stream_idの組み合わせは、図 10のク リップ情報ファイルにお 、て、対応するクリップストリームファイルに多重化されて 、る エレメンタリストリームを特定するのに使用される他、例えば、図 7の PlayListMarkO〖こ 関連付けるエレメンタリストリームの特定にも使用される。さらに、 streamjdと private_st reamjdの組み合わせは、その他、例えば、図 14の EPjnapOにおいて、デコード可能 開始点の情報を記述するエレメンタリストリームの特定にも使用される。
[0388] 「出力属性の制御処理」
その後、ステップ S125力ら S126に進み、プレイヤ制御モジュール 212は、再生対 象のエレメンタリストリーム、即ち、ステップ S 125で再生すると決定したエレメンタリスト リームの出力属性の制御処理を行う。
[0389] 具体的には、プレイヤ制御モジュール 212は、まず、再生対象のエレメンタリストリ ーム、即ち、ステップ S125で再生すると決定したビデオストリーム、 ATRACオーディ ォストリーム、字幕ストリームそれぞれについて、出力属性が記述される DynamicInfoO (図 13)の数を表す number_of_DynamicInfo (図 10)を調査する。
[0390] ここで、 、まの場合、再生対象のビデオストリーム、 ATRACオーディオストリーム、字 幕ストリームは、クリップストリームファイル" 00001.PS"に多重化されているエレメンタリ ストリームであり、それらの number_of_Dynamidnfoは、図 26の" 00001. CLP"で説明し たように、いずれも 0になっている。このように、再生対象のエレメンタリストリームのす ベてについて、 number_of_Dynamidnfoが 0である場合、プレイヤ制御モジュール 212 は、再生対象のエレメンタリストリームの出力属性の制御処理としては、特に処理を行 わない。
[0391] なお、再生対象のエレメンタリストリームについての number_of_Dynamidnfoが 0でな い場合に、そのエレメンタリストリームの出力属性の制御として行われる処理について は、後述する。
[0392] 「再生開始の準備処理」
ステップ S 126の処理後は、ステップ S127に進み、プレイヤ制御モジュール 212は
、再生対象のエレメンタリストリームの再生開始の準備処理を行う。
[0393] 即ち、プレイヤ制御モジュール 212は、コンテンツデータ供給モジュール 213に対 し、再生対象のエレメンタリストリームが多重化されて 、るクリップストリームファイル" 0 0001. PS"のファイル名と、ステップ SI 22で決定した再生開始位置である EP_mapOに 記述された RPN_EP_start (=305)を与える。
[0394] さらに、プレイヤ制御モジュール 212は、再生対象のエレメンタリストリームが多重化 されているクリップストリームファイル" 00001.PS"に格納されたプログラムストリームの、 ノ ッファ制御モジュール 215への供給が開始される前に、バッファ制御モジュール 2 15を初期化する。
[0395] 具体的には、バッファ制御モジュール 215 (図 3)では、データ先頭ポインタ記憶部 231に記憶されるデータ先頭ポインタ、データ書き込みポインタ記憶部 232に記憶さ れるデータ書き込みポインタ、ビデオ読み出しポインタ記憶部 241に記憶されるビデ ォ読み出しポインタ、オーディオ読み出しポインタ記憶部 251に記憶されるオーディ ォ読み出しポインタ、字幕読み出しポインタ記憶部 262に記憶される字幕読み出しポ インタに、同じ値が代入される。
[0396] これにより、データ先頭ポインタ記憶部 231に記憶されたデータ先頭ポインタと、デ ータ書き込みポインタ 232に記憶されたデータ書き込みポインタとは、ノッファ制御モ ジュール 215のバッファ 215Aの同一の位置を指す。これは、バッファ 215Aに、有効 なデータが蓄積されて 、な 、状態を表す。
[0397] さらに、プレイヤ制御モジュール 212は、再生対象のエレメンタリストリームを識別 ( 特定)するための識別情報としての stream_id、さらには、必要に応じて、 private_strea mjdを、バッファ制御モジュール 215に供給する。
[0398] 即ち、上述したように、再生対象のエレメンタリストリームのうちの、「ビデオストリーム 」の属性のビデオストリームは、 OxEOとなっている streamjdによって特定され、「ォー ディォストリーム」の属性の ATRACオーディオストリームは、 OxBDとなって!/、る streamj d、および 0x00となっている private_streamjdによって特定され、「字幕ストリーム」の属 '性の字幕ストリームは、 OxBDとなっている stream jd、および 0x80となっている private_s treamjdによって特定される。プレイヤ制御モジュール 212は、これらの streamjdと pri vate_streamjdを、バッファ制御モジュール 215に供給する。
[0399] バッファ制御モジュール 215 (図 3)では、ビデオ読み出し機能部 233が、プレイヤ 制御モジュール 212からの、ビデオストリームについての OxEOとなっている streamjd を、 streamjdレジスタ 242に記憶させる。また、オーディオ読み出し機能部 234が、プ レイヤ制御モジュール 212からの、 OxBDとなっている streamjdと、 0x00となっている pr ivate_stream_idを、 streamjdレジスタ 252と private_stream_idレジスタ 253に、それぞ れ記憶させる。さら〖こ、字幕読み出し機能部 235が、プレイヤ制御モジュール 212か らの、 OxBDとなっている stream— idと、 0x80となっている private— stream— id 、 streamjd レジスタ 263と private_stream_idレジスタ 264に、それぞれ記憶させる。
[0400] なお、プレイヤ制御モジュール 212は、バッファ制御モジュール 215に供給した再 生対象のエレメンタリストリームの streamjdと private_stream_idを、今後の処理のため に記憶する。プレイヤ制御モジュール 212は、これらの streamjdや private_stream_id を、後述するストリーム切り替えを要求するメッセージの発生時や、後述するマーク処 理にお 、て現在再生中のストリームを特定するために使用する。
[0401] プレイヤ制御モジュール 212は、バッファ制御モジュール 215 (図 3)の初期化とし て、さらに、再生対象のエレメンタリストリームが多重化されているクリップストリームフ アイルに応じた値の字幕読み出し機能フラグを、字幕読み出し機能フラグ記憶部 26 1にセットする。
[0402] 即ち、 、まの場合、再生対象のエレメンタリストリームが多重化されて 、るクリップスト リームファイル" 00001.PS"には、字幕ストリームが含まれるため、字幕読み出し機能部 235を機能させるために、値が 1の字幕読み出し機能フラグが、字幕読み出し機能フ ラグ記憶部 261にセットされる。なお、再生対象のエレメンタリストリームが多重化され て!、るクリップストリームファイルに字幕ストリームが含まれて 、な 、場合、字幕読み出 し機能フラグ記憶部 261には、値が 0の字幕読み出し機能フラグがセットされる。この 場合、字幕読み出し機能部 235は機能しな 、 (特に処理を行わな ヽ)。
[0403] また、プレイヤ制御モジュール 212は、スクリプト制御モジュール 211から再生を指 示された 1番目の PlayList#0に含まれる 1番目の Playltem#0 (図 25)の IN_timeである 1 80,090と、 011丁_1:^6でぁる27,180,090とを、デコード制御モジュール 214に対して与 える。デコード制御モジュール 214では、 IN_timeは、 PlayltemOによって再生されるク リップのデコード開始の制御に、 OUT_timeは、そのクリップのデコード終了、さらには 、後述する Playltem乗り換えの制御に、それぞれ使用される。 [0404] さらに、プレイヤ制御モジュール 212は、グラフィクス処理モジュール 219に対する 字幕ストリームの表示方式の指示を初期化する。即ち、プレイヤ制御モジュール 212 は、字幕ストリームの表示方式を、例えば、デフォルトの表示方式とするように、グラフ イクス処理モジュール 219を制御する。
[0405] 「データ読み込み開始」
その後、ステップ S127力ら S128に進み、プレイヤ制御モジュール 212は、コンテ ンッデータ供給モジュール 213を制御し、これにより、コンテンツデータ供給モジユー ル 213は、オペレーティングシステム 201の機能を使用して、再生対象のエレメンタリ ストリームが多重化されたプログラムストリームが格納されたクリップストリームファイル を読み出す。すなわち、コンテンツデータ供給モジュール 213は、ディスク 101 (図 4) の' VIDEO"ディレクトリの下にある" STREAM"ディレクトリのクリップストリームファイル" 00001.PS"を指定し、さらに、ステップ S 122で決定された再生開始位置である 305セ クタを指定して、オペレーティングシステム 201に対してファイル読み出しを要求する 。また、コンテンツデータ供給モジュール 213は、ディスク 101から読み出したデータ を、バッファ制御モジュール 215に供給するように指定する。
[0406] これにより、ディスク 101からの、クリップストリームファイル" 00001.PS"に格納された プログラムストリームの読み出しが開始され、そのプログラムストリームは、バッファ制 御モジュール 215に供給される。
[0407] バッファ制御モジュール 215 (図 3)は、ディスク 101から読み出されて供給されたプ ログラムストリームを、バッファ 215Aのデータ書き込みポインタ記憶部 232のデータ 書き込みポインタが指す位置に書き込み、書き込んだデータのサイズだけデータ書 き込みポインタをインクリメントする。
[0408] ここで、以下、特に断らない限り、コンテンツデータ供給モジュール 213は、ノッファ 制御モジュール 215のバッファ 215Aに空きがあれば、ディスク 101からデータを読 み出し、ノッファ制御モジュール 215のバッファ 215Aに供給して記憶させることとす る。従って、ノ ッファ 215Aには、常時、十分なデータが蓄積されているとする。
[0409] 「デコーダ制御開始」
以上のようにして、ディスク 101からのデータの読み出しが開始され、そのデータが バッファ制御モジュール 215のバッファ 215Aに蓄積され始めると、ステップ S128か ら S129に進み、デコード制御モジュール 214は、ビデオデコーダ制御モジュール 21 6、オーディオデコーダ制御モジュール 217、字幕デコーダ制御モジュール 218を制 御し、デコード動作の前段階として、ノ ッファ 215Aからのデータの読み出しを開始さ せる。
[0410] 即ち、これにより、ビデオデコーダ制御モジュール 216は、バッファ制御モジュール 215 (図 3)のビデオ読み出し機能部 233にデータを要求し、その要求に応じてバッフ ァ制御モジュール 215から渡される、バッファ 215Aに記憶された 1つのビデオァクセ スユニット、そのビデオアクセスユニットに付加されている PTSと DTS (以下、適宜、タイ ムスタンプという)、およびデコード開始可能点の直前に配置されている private_strea m_2の PES_packet()に記述された情報(以下、適宜、付加情報とも 、う)である pic_struc t_copyや、 au_ref_flag、 AUJengthなどを得る。なお、タイムスタンプは、ビデオデコーダ 制御モジュール 216がビデオアクセスユニットを得る毎に、ビデオデコーダ制御モジ ユール 216からデコード制御モジュール 214に渡される。
[0411] 一方、オーディオデコーダ制御モジュール 217も、バッファ制御モジュール 215 (図 3)のオーディオ読み出し機能部 234にデータを要求し、その要求に応じてバッファ 制御モジュール 215から渡される、バッファ 215Aに記憶された 1つの (ATRAC)ォー ディォアクセスユニットと、そのオーディオアクセスユニットに付加されているタイムスタ ンプ(PTS, DTS)を得る。なお、タイムスタンプは、オーディオデコーダ制御モジユー ル 217がオーディオアクセスユニットを得る毎に、オーディオデコーダ制御モジユー ル 217からデコード制御モジュール 214に渡される。
[0412] さらに、字幕デコーダ制御モジュール 218は、バッファ制御モジュール 215 (図 3)の 字幕読み出し機能部 235にデータを要求し、その要求に応じてバッファ制御モジュ ール 215から渡される、バッファ 215Aに記憶された 1つの字幕アクセスユニットと、そ の字幕アクセスユニットに付加されているタイムスタンプを得る。なお、タイムスタンプ は、字幕デコーダ制御モジュール 218が字幕アクセスユニットを得る毎に、字幕デコ ーダ制御モジュール 218からデコード制御モジュール 214に渡される。また、再生対 象のエレメンタリストリームに、字幕ストリームが存在しない場合や、ノッファ 215Aに、 字幕アクセスユニットが記憶されていない場合は、バッファ制御モジュール 215から 字幕デコーダ制御モジュール 218には、データは渡されない。
[0413] ここで、ビデオデコーダ制御モジュール 216、オーディオデコーダ制御モジュール 2 17、および字幕デコーダ制御モジュール 218は、バッファ制御モジュール 215に対 してデータを要求する毎に、そのデータの要求に対する結果を、デコード制御モジュ ール 214に渡す。
[0414] また、バッファ制御モジュール 215から、ビデオデコーダ制御モジュール 216、ォー ディォデコーダ制御モジュール 217、および字幕デコーダ制御モジュール 218に対 してデータが渡されるときの、そのデータのバッファ 215Aからの読み出しの詳細につ いては、後述する。
[0415] 「デコード開始」
以上のように、ビデオデコーダ制御モジュール 216、オーディオデコーダ制御モジ ユール 217、字幕デコーダ制御モジュール 218力 バッファ制御モジュール 215のバ ッファ 215Aからデータを読み出し始めると、ステップ S129力 S130に進み、そのデ ータのデコードが開始される。
[0416] 即ち、デコード制御モジュール 214は、ステップ S 127でプレイヤ制御モジュール 2 12力ら与えられた、 PlayList#0に含まれる 1番目の PlayItem#0の IN_timeである 180,09 0、さらには、ビデオデコーダ制御モジュール 216、オーディオデコーダ制御モジユー ル 217、字幕デコーダ制御モジュール 218からステップ S 129で説明したように渡さ れるタイムスタンプに基づき、同期を確保するために必要であればタイミングをずらし て、デコード開始を、ビデオデコーダ制御モジュール 216、オーディオデコーダ制御 モジュール 217、および字幕デコーダ制御モジュール 218に指令する。
[0417] ここで、同期を確保するためのタイミングをずらしたデコード開始の指令の方法は、 例えば、特許第 3496725号に記載されており、簡単には、ビデオデコーダ制御モジュ ール 216、オーディオデコーダ制御モジュール 217、字幕デコーダ制御モジュール 2 18それぞれから渡されたタイムスタンプのうちの最小値を、計時部 214Aによって計 時される時刻の初期値として設定して時刻の計時を開始し、計時部 214Aによって計 時される時刻と、タイムスタンプとがー致した時点で、デコード開始を指令する方法が ある。
[0418] ビデオデコーダ制御モジュール 216は、デコード制御モジュール 214からのデコ一 ド開始の指示を受け、その指示に応じて、バッファ制御モジュール 215 (図 3)のビデ ォ読み出し機能部 233から得た 1つのビデオアクセスユニットを、ビデオデコーダ 11 6 (図 1)に渡してデコードさせる。さらに、ビデオデコーダ制御モジュール 216は、ビ デォデコーダ 116によるデコードの結果得られるビデオデータを、グラフィクス処理モ ジュール 219に供給する。
[0419] 以後、ビデオデコーダ制御モジュール 216は、バッファ制御モジュール 215のビデ ォ読み出し機能部 233から得られる 1ずつのビデオアクセスユニットを、ビデオデコー ダ 116で順次デコードし、そのデコードの結果得られるビデオデータを、グラフィクス 処理モジュール 219に供給して!/、く。
[0420] 一方、オーディオデコーダ制御モジュール 217も、デコード制御モジュール 214か らのデコード開始の指示を受け、その指示に応じて、ノッファ制御モジュール 215 ( 図 3)のオーディオ読み出し機能部 234力も得た 1つのオーディオアクセスユニットを 、オーディオデコーダ 117 (図 1)に渡してデコードさせる。さらに、オーディオデコー ダ制御モジュール 217は、オーディオデコーダ 117によるデコードの結果得られるォ 一ディォデータを、オーディオ出力モジュール 221に供給する。
[0421] 以後、オーディオデコーダ制御モジュール 217は、バッファ制御モジュール 215の オーディオ読み出し機能部 234から得られる 1ずつのオーディオアクセスユニットを、 オーディオデコーダ 117で順次デコードし、そのデコードの結果得られるオーディオ データを、オーディオ出力モジュール 221に供給して 、く。
[0422] また、字幕デコーダ制御モジュール 218も、デコード制御モジュール 214からのデ コード開始の指示を受け、その指示に応じて、ノ ッファ制御モジュール 215 (図 3)の 字幕読み出し機能部 235から得た 1つの字幕アクセスユニットを、内部に持つ字幕デ コードソフトウェアでデコードし、そのデコードの結果得られる字幕データ (字幕の画 像データ)を、グラフィクス処理モジュール 219に供給する。
[0423] 以後、字幕デコーダ制御モジュール 218は、バッファ制御モジュール 215の字幕読 み出し機能部 235から得られる 1ずつの字幕アクセスユニットを、内部に持つ字幕デ コードソフトウェアで順次デコードし、そのデコードの結果得られる字幕データを、ダラ フィクス処理モジュール 219に供給して!/、く。
[0424] 「グラフィクス処理」
その後、ステップ S130力ら S131に進み、グラフィクス処理モジュール 219は、上述 したようにして、ビデオデコーダ制御モジュール 216から供給されるビデオデータ、さ らには、必要に応じて、字幕デコーダ制御モジュール 218から供給される字幕データ を対象に、グラフィクス処理を行う。
[0425] 即ち、グラフィクス処理モジュール 219は、まず字幕デコーダ制御モジュール 218 からの字幕データを、プレイヤ制御モジュール 212からの表示方式の指示に従って、 拡大や縮小等する字幕処理を行う。プレイヤ制御モジュール 212から、表示方式の 指示がない場合、またはデフォルトの表示方式の指示があった場合、グラフィクス処 理モジュール 219は、字幕デコーダ制御モジュール 218からの字幕データを、そのま ま保存する。
[0426] さらに、グラフィクス処理モジュール 219は、ビデオデコーダ制御モジュール 216か らのビデオデータと、字幕デコーダ制御モジュール 218からの字幕データ、または字 幕処理後の字幕データとを加算し、ビデオデコーダ制御モジュール 216からのビデ ォデータに字幕データがオーバーレイされた出力ビデオデータを得て、ビデオ出力 モジュール 220に供給する。
[0427] なお、グラフィクス処理モジュール 219は、スクリプト制御モジュール 211やプレイヤ 制御モジュール 212力ら、例えば、メニューや、メッセージ、タイムコード、チヤプタま たはインデタスの番号等の情報の表示の指示を受けた場合は、その情報を生成し、 出力ビデオデータにオーバーレイして、ビデオ出力モジュール 220に供給する。
[0428] 「出力処理」
ステップ S131の処理後は、ステップ S132に進み、ビデオ出力モジュール 220は、 ステップ S 131で説明したようにしてグラフィクス処理モジュール 219から供給される 出力ビデオデータを、 FIFO220Aに順次記憶させ、その FIFO220Aに記憶された出 力ビデオデータを、あら力じめ決められた出力レートで順次出力する。
[0429] ビデオ出力モジュール 220は、 FIFO220Aの記憶容量 (残量)に余裕がある限り、 グラフィクス処理モジュール 219からの出力ビデオデータを受け入れる力 余裕がな い場合には、出力ビデオデータの受け入れの停止を、グラフィクス処理モジュール 2 19に要求する。これにより、グラフィクス処理モジュール 219は、処理を停止するとと もに、処理の停止を、ビデオデコーダ制御モジュール 216および字幕デコーダ制御 モジュール 218に要求する。これにより、ビデオデコーダ制御モジュール 216および 字幕デコーダ制御モジュール 218が処理を停止する。
[0430] ビデオ出力モジュール 220は、出力ビデオデータの受け入れの停止を、グラフイク ス処理モジュール 219に要求した後に、 FIFO220Aからの出力ビデオデータの出力 が進み、 FIFO220Aに余裕ができた時点で、出力ビデオデータの受け入れを、ダラ フィクス処理モジュール 219に要求する。この要求は、出力ビデオデータの受け入れ の停止の要求と同様に、グラフィクス処理モジュール 219から、ビデオデコーダ制御 モジュール 216および字幕デコーダ制御モジュール 218に伝えられる。これにより、 グラフィクス処理モジュール 219、さらには、ビデオデコーダ制御モジュール 216およ び字幕デコーダ制御モジュール 218は、停止して 、た処理を再開する。
[0431] 一方、オーディオ出力モジュール 221も、ステップ S130で説明したようにしてォー ディォデコーダ制御モジュール 217から供給されるオーディオデータを、 FIF0221A に順次記憶させ、その FIF0221Aに記憶されたオーディオデータを、あらかじめ決め られた出力レート (サンプリング周波数)で順次出力する。
[0432] オーディオ出力モジュール 221は、 FIF0221Aの記憶容量 (残量)に余裕がある限 り、オーディオデコーダ制御モジュール 217からのオーディオデータを受け入れるが 、余裕がない場合には、オーディオデータの受け入れの停止を、オーディオデコーダ 制御モジュール 217に要求する。これにより、オーディオデコーダ制御モジュール 21 7は、処理を停止する。
[0433] オーディオ出力モジュール 221は、オーディオデータの受け入れの停止を、オーデ ィォデコーダ制御モジュール 217に要求した後に、 FIF0221Aからのオーディオデ ータの出力が進み、 FIF0221Aに余裕ができた時点で、オーディオデータの受け入 れを、オーディオデコーダ制御モジュール 217に要求する。これにより、オーディオ デコーダ制御モジュール 217は、停止して!/、た処理を再開する。 [0434] 以上のようにして、ビデオ出力モジュール 220およびオーディオ出力モジュール 22 1からデータが出力されるにつれて、エレメンタリストリームのデコードが行われていく
[0435] 図 1のディスク装置がディスク 101を再生するときの全体の処理または動作の流れ は、図 29および図 30で説明したとおりである力 以下、ディスク装置においてデイス ク 101の再生が行われているときの、その他の処理または動作について説明する。
[0436] [Playltem乗り換え]
図 29および図 30で説明したようにして、図 25における 1番目の PlayList#0の 1番目 の PlayItem#0の再生が始まるが、 PlayList#0によれば、その 1番目の PlayItem#0の再 生が終了すると、 2番目の Playltem#lの再生が開始される。即ち、 PlayItem#0から Play Item#lに Playltemを乗り換える Playltem乗り換えが行われる。
[0437] そこで、図 31のフローチャートを参照して、この Playltem乗り換えの処理について説 明する。
[0438] 図 29および図 30で説明したようにして、図 25における PlayList#0の 1番目の Playlte m#0 (のクリップ)の再生が開始されると、デコード制御モジュール 214 (図 2)は、その 1番目の PlayItem#0の再生が行われて!/、る間、内蔵する計時部 214Aが計時して!/ヽ る時刻を確認し続けている。
[0439] 「PlayItem#0の再生終了」
そして、デコード制御モジュール 214は、計時部 214Aが計時している時刻力 図 3 0のステップ 127でプレイヤ制御モジュール 212から与えられた 1番目の PlayItem#0 の OUT_timeである 27,180,090 (図 25)に等しくなると、ステップ S151において、デコ ード中断制御を行 、、 PlayItem#0の再生を終了する。
[0440] 即ち、デコード制御モジュール 214は、ビデオデコーダ制御モジュール 216、ォー ディォデコーダ制御モジュール 217、字幕デコーダ制御モジュール 218を操作して、 デコード動作を停止させる。さらに、デコード制御モジュール 214は、ビデオ出力モジ ユール 220を制御し、現在出力中の出力ビデオデータを引き続き出力させる。
[0441] また、デコード制御モジュール 214は、 1番目の PlayItem#0の再生が終了した旨の メッセージを、プレイヤ制御モジユーノレ 212に伝える。 [0442] 「PlayItem#lの再生開始」
プレイヤ制御モジュール 212は、上述したように、図 29のステップ S105で、 1番目 の PlayList #0に、 1番目の PlayItem#0と 2番目の Playltem#lとが存在することを認識し ており、デコード制御モジュール 214から、 1番目の PlayItem#0の再生が終了した旨 のメッセージが伝えられると、ステップ S151力ら S152に進み、 2番目の Playltem#lの 再生を、上述した 1番目の PlayItem#0における場合と同様にして開始する。
[0443] 即ち、 2番目の Playltem#lの再生手順を概説すれば、まず、プレイヤ制御モジユー ル 212は、図 30のステップ S122における場合と同様にして、 2番目の Playltem#lに ついて、 EP_map()に記述された RPN_EP_startのうちのいずれかを、再生開始位置とし て決定する。
[0444] さらに、プレイヤ制御モジュール 212では、図 30のステップ S124で説明したように して、 2番目の Playltem#lに属する MarkOの認識や、図 30のステップ S 125で説明し たようにして、 Playltem#lによって再生されるクリップストリームファイル" 00002.PS"に 多重化されている各属性のエレメンタリストリームの本数の認識、さらには、再生する( 再生対象の)エレメンタリストリームの決定等が行われる。
[0445] そして、プレイヤ制御モジュール 212は、図 30のステップ S 127における場合と同 様の処理を行う。
[0446] 即ち、プレイヤ制御モジュール 212は、再生開始位置として決定した EPjnapOの RP N_EP_startと、再生対象のエレメンタリストリームが多重化されているクリップストリーム ファイルのファイル名、即ち、いまの場合、 2番目の Playltem#l (図 25)の Clipjnforma tion_file_nameに記述された" 00002. CLP"に対応するクリップストリームファイル" 00002 .PS"のファイル名を、コンテンツデータ供給モジュール 213に対して与える。
[0447] さらに、プレイヤ制御モジュール 212は、再生対象のエレメンタリストリームが多重化 されているクリップストリームファイル" 00002.PS"に格納されたプログラムストリームの、 ノ ッファ制御モジュール 215への供給が開始される前に、バッファ制御モジュール 2 15を初期化する。
[0448] 即ち、これにより、バッファ制御モジュール 215 (図 3)において、データ先頭ポイン タ記憶部 231に記憶されるデータ先頭ポインタ、データ書き込みポインタ記憶部 232 に記憶されるデータ書き込みポインタ、ビデオ読み出しポインタ記憶部 241に記憶さ れるビデオ読み出しポインタ、オーディオ読み出しポインタ記憶部 251に記憶される オーディオ読み出しポインタ、字幕読み出しポインタ記憶部 262に記憶される字幕読 み出しポインタに、同じ値が代入される。
[0449] さらに、プレイヤ制御モジュール 212は、再生対象のエレメンタリストリームを識別す るための識別情報としての stream_id、さらには、必要に応じて、 private_stream_idを、 バッファ制御モジュール 215に供給する。
[0450] ノッファ制御モジュール 215 (図 3)では、ビデオ読み出し機能部 233が、プレイヤ 制御モジュール 212からの、再生対象のエレメンタリストリームのうちのビデオストリー ムについての stream jdを、 streamjdレジスタ 242に記憶させる。また、オーディオ読 み出し機能部 234力 プレイヤ制御モジュール 212からの、再生対象のエレメンタリ ストリームのつちの才ーティ才ストリームの stream— idと private— stream— id 、 stream— idレ ジスタ 252と private_stream_idレジスタ 253に、それぞれ記憶させる。
[0451] さらに、いま再生対象となっているエレメンタリストリームが多重化されているクリップ ストリームファイル" 00002.PS"には、字幕ストリームが含まれるため、プレイヤ制御モジ ユール 212から字幕読み出し機能部 235には、再生対象のエレメンタリストリームのう ちの字幕ストリームの streamjdと private_stream_idが供給され、字幕読み出し機能部 2 35は、その stream— ιαと private— stream— idを、 stream— ιαレンスタ 2o 3と private— stream— id レジスタ 264〖こ、それぞれ記憶させる。
[0452] そして、プレイヤ制御モジュール 212は、バッファ制御モジュール 215 (図 3)の初期 化として、さらに、再生対象のエレメンタリストリームが多重化されているクリップストリ ームファイルに応じた値の字幕読み出し機能フラグを、字幕読み出し機能フラグ記憶 部 261にセットする。
[0453] 即ち、 、まの場合、再生対象のエレメンタリストリームが多重化されて 、るクリップスト リームファイル" 00002.PS"には、字幕ストリームが含まれるため、字幕読み出し機能部 235を機能させるために、値が 1の字幕読み出し機能フラグが、字幕読み出し機能フ ラグ記憶部 261にセットされる。
[0454] また、プレイヤ制御モジュール 212は、再生しょうとしている 2番目の Playltem#l (図 25)の IN_timeである 90,000と、 OUT_timeである 27,090,000とを、デコード制御モジュ ール 214に対して与える。
[0455] さらに、プレイヤ制御モジュール 212は、グラフィクス処理モジュール 219に対する 字幕ストリームの表示方式の指示を初期化する。即ち、プレイヤ制御モジュール 212 は、字幕ストリームの表示方式をデフォルトの表示方式とするように、グラフィクス処理 モジュール 219を制御する。
[0456] なお、再生対象の字幕ストリームについて、 configurablejlag (図 12)力 表示方式 の変更を許可する 1になっている場合には、プレイヤ制御モジュール 212からグラフィ タス処理モジュール 219に対する字幕ストリームの表示方式の指示は、現在の表示 方式のままとするようにしても良!、。
[0457] 以下、 2番目の Playltem#lの再生は、 1番目の PlayItem#0の再生と同様にして行わ れていく。そして、デコード制御モジュール 214は、その 2番目の Playltem#lの再生が 行われている間、内蔵する計時部 214Aが計時している時刻を確認し続けており、計 時部 214Aが計時して 、る時刻が、ステップ S 152 (図 31 )でプレイヤ制御モジュール 212から与えられた 2番目の Playltem#lの OUT_timeである 27,090,000 (図 25)に等し くなると、ステップ S151における場合と同様のデコード中断制御を行い、 Playltem#l の再生を終了する。
[0458] [タイムコードの表示]
次に、上述したように、図 30のステップ S123において、タイムコードの表示が開始 される力 このタイムコードの表示は、順次更新されていく。
[0459] そこで、図 32のフローチャートを参照して、タイムコードの表示の処理について説明 する。
[0460] デコード制御モジュール 214 (図 2)は、その内蔵する計時部 214Aによって 1秒が 計時されると、ステップ S 171において、 1秒が経過した旨のメッセージとともに、その 計時部 214Aによって計時されている現在時刻を、プレイヤ制御モジュール 212に 供給し、ステップ S172〖こ進む。ステップ S172では、プレイヤ制御モジュール 212は 、デコード制御モジュール 214からのメッセージと現在時刻を受信し、その現在時刻 を、タイムコードに換算して、ステップ S 173に進む。 [0461] ステップ S173では、プレイヤ制御モジュール 212は、ステップ S 172で得たタイムコ ードを表示するように、グラフィクス処理モジュール 219を制御し、ステップ S171に戻 る。
[0462] これにより、タイムコードは、 1秒ごとに更新される。なお、タイムコードの更新の間隔 は、 1秒に限定されるものではない。
[0463] [ストリーム切り替え]
次に、図 25で説明した 1番目の PlayList#0を構成する 1番目の PlayItem#0によって 再生されるクリップストリームファイル" 00001.PS"や、 2番目の Playltem#lによって再生 されるクリップストリームファイル" 00002.PS"には、図 26で説明したように、 2本の字幕 ストリームが多重化されて 、る。
[0464] このように、クリップストリームファイルに、複数の、同一の属性のエレメンタリストリー ムが多重化されている場合においては、再生対象のエレメンタリストリームを、その複 数の、同一の属性のエレメンタリストリームのうちの 1つから、他の 1つに切り替えるスト リーム切り替えを行うことができる。
[0465] そこで、図 33のフローチャートを参照して、ストリーム切り替えの処理について説明 する。
[0466] ストリーム切り替えの要求は、例えば、 "SCRIPT.DAT"ファイル(図 4)に、ストリーム 切り替えの指示がスクリプトプログラムとして記述されて 、る場合に、スクリプト制御モ ジュール 211力 そのスクリプトプログラムを実行することによって、あるいは、ユーザ 力 Sリモコンを操作することによって、プレイヤ制御モジュール 212に与えられる。
[0467] 即ち、スクリプト制御モジュール 211は、ストリーム切り替えの指示が記述されている スクリプトプログラムを実行すると、ストリーム切り替えを要求するメッセージを、プレイ ャ制御モジュール 212に供給する。また、入力インターフェース 115は、ユーザがリ モコンを操作することによって、リモコンから、ストリーム切り替えを指示する信号を受 信すると、ストリーム切り替えを要求するメッセージを、プレイヤ制御モジュール 212に 供給する。
[0468] 例えば、いま、プレイヤ制御モジュール 212に対して、字幕ストリームの切り替えを 要求するメッセージである字幕ストリーム切り替えのメッセージが供給されたとすると、 プレイヤ制御モジュール 212は、ステップ S 191において、図 30のステップ S125で 行われた再生対象のエレメンタリストリームの決定のときに認識した字幕ストリームの 本数をチヱックする。
[0469] プレイヤ制御モジュール 212は、字幕ストリームの本数をチェックした結果、その本 数が 1本以下である場合、字幕ストリーム切り替えのメッセージを無視し、従って、以 降のステップ S 192乃至 S 194の処理は行われな!/、。
[0470] 一方、字幕ストリームの本数が 2本以上である場合、ステップ S 192乃至 S194に順 次進み、再生する字幕ストリーム力 現在再生されている字幕ストリームから、他の字 幕ストリームに切り替えられる。
[0471] 即ち、ステップ S192において、プレイヤ制御モジュール 212は、現在再生中の字 幕ストリームを、クリップ情報ファイル上で特定する。具体的には、例えば、いま、図 2 5で説明した 1番目の PlayList#0を構成する 2番目の Playltem#lによって、クリップスト リームファイル" 00002.PS "に多重化された、 stream jdが OxBDで、 private_stream_idが 0 x80の字幕ストリームが再生されていることとすると、ステップ S 192では、現在再生中 の字幕ストリームが、クリップストリームファイル" 00002.PS"に多重化された 2本の字幕 ストリームのうちの、図 26のクリップ情報ファイル" 00002.CLP"上で 3本目の字幕ストリ ームである stream#2であることが特定される。
[0472] そして、ステップ S193〖こ進み、プレイヤ制御モジュール 212は、ステップ S192で 特定した字幕ストリームの、クリップ情報ファイル上で次の字幕ストリームを、次に再生 する字幕ストリームとして認識 (特定)する。図 26では、クリップ情報ファイル" 00002.C LP"上で、 3本目の字幕ストリーム stream#2の次の字幕ストリームは、 4本目の字幕スト リーム stream#3であるから、ステップ S193では、この 4本目の字幕ストリーム stream#3 力 次に再生する字幕ストリームとして認識される。
[0473] なお、現在再生中の字幕ストリームが、クリップストリームファイル" 00002.PS"に多重 化された 2本の字幕ストリームのうちの、図 26のクリップ情報ファイル" 00002. CLP"上 で 4本目の字幕ストリームである stream#3であることが特定された場合は、例えば、 3 本目の字幕ストリーム stream#2が、次に再生する字幕ストリームとして認識される。
[0474] その後、ステップ S194〖こ進み、プレイヤ制御モジュール 212は、ステップ S193で 認識した次に再生する字幕ストリームの streamjdと private_streamjdを、バッファ制御 モジュール 215 (図 3)の字幕読み出し機能部 235に対して与え、その streamjdと priv ate_stream_idを、次回からの、字幕アクセスユニットのバッファ 215Aからの読み出し 力 使用するように指示する。
[0475] バッファ制御モジュール 215 (図 3)の字幕読み出し機能部 235では、ステップ S 19 4でプレイヤ制御モジユーノレ 212から与えられる streamjdと private_stream_idを、 strea m_idレジスタ 263と private_stream_idレジスタ 264に、それぞれ新たにセットし、次回以 降のバッファ 215Aからの読み出しは、その streamjdレジスタ 263と private_stream_id レジスタ 264にそれぞれ新たにセットされた streamjdと private_streamjdによって特定 される字幕アクセスユニットを対象として行われる。
[0476] 以上のようにして、再生する字幕ストリーム力 現在再生されて ヽる字幕ストリームか ら、他の字幕ストリームに切り替えられる。
[0477] [バッファ制御モジュール 215の処理]
次に、図 34乃至図 38を参照して、バッファ制御モジュール 215 (図 3)の処理、即ち 、バッファ 215Aへのデータの書き込みと、バッファ 215Aからのデータの読み出しに ついて説明する。
[0478] バッファ制御モジュール 215は、図 3で説明したように、バッファ 215Aに対するデ ータの読み書きを行うための 5つのポインタを有している。
[0479] 即ち、図 34および図 35に示すように、バッファ制御モジュール 215は、データ先頭 ポインタ記憶部 231に記憶されるデータ先頭ポインタ、データ書き込みポインタ記憶 部 232に記憶されるデータ書き込みポインタ、ビデオ読み出しポインタ記憶部 241に 記憶されるビデオ読み出しポインタ、オーディオ読み出しポインタ記憶部 251に記憶 されるオーディオ読み出しポインタ、および字幕読み出しポインタ記憶部 262に記憶 される字幕読み出しポインタを有して 、る。
[0480] なお、図 34および図 35では、図 3におけるビデオ読み出し機能部 233の streamjd レジスタ 242および aujnformationOレジスタ 243、オーディオ読み出し機能部 234の s treamjdレジスタ 252および private_stream_idレジスタ 253、並びに字幕読み出し機能 部 235の字幕読み出し機能フラグ記憶部 261、 streamjdレジスタ 263、および private _stream_idレジスタ 264の図示は、省略してある。
[0481] データ先頭ポインタ記憶部 231に記憶されたデータ先頭ポインタは、バッファ 215 Aに残る最も古いデータ(読み出す必要があるデータであって、まだ読み出されてい な!、データのうちの最も古 、データ)の位置を表す。データ書き込みポインタ記憶部 232に記憶されたデータ書き込みポインタは、バッファ 215Aへのデータの書き込み の位置を示し、この位置は、ノ ッファ 215Aで最も新しいデータが書き込まれる位置 である。
[0482] ビデオ読み出しポインタ記憶部 241に記憶されたビデオ読み出しポインタは、バッ ファ 215A力も読み出すビデオストリームの位置を表す。また、オーディオ読み出しポ インタ記憶部 251に記憶されたオーディオ読み出しポインタは、バッファ 215A力も読 み出すオーディオストリームの位置を表し、字幕読み出しポインタ記憶部 262に記憶 された字幕読み出しポインタは、ノッファ 215Aから読み出す字幕ストリームの位置を 表す。
[0483] なお、図 3で説明したように、データ先頭ポインタ、データ書き込みポインタ、ビデオ 読み出しポインタ、オーディオ読み出しポインタ、および字幕読み出しポインタは、い ずれも、バッファ 215Aを右回りに移動する。
[0484] さらに、本実施の形態では、データ先頭ポインタは、図 35に示すように、ビデオ読 み出しポインタ、オーディオ読み出しポインタ、または字幕読み出しポインタのうちの 、最も古いデータの位置を指しているものと同一の位置を指すように、常時更新され るものとする。ここで、図 35では、ビデオ読み出しポインタ、オーディオ読み出しボイ ンタ、または字幕読み出しポインタのうちの、オーディオ読み出しポインタが、最も古 いデータの位置を指しており、データ先頭ポインタは、そのオーディオ読み出しボイ ンタと一致している。
[0485] 以上のようなデータ先頭ポインタ、データ書き込みポインタ、ビデオ読み出しポイン タ、オーディオ読み出しポインタ、および字幕読み出しポインタを有するバッファ制御 モジュール 215では、データ書き込みポインタは、ディスク 101から新たなデータが読 み出され、ノッファ 215Aに書き込まれると、その書き込まれた新たなデータの直後の 位置を指すように、右回りに更新される。 [0486] さらに、ビデオ読み出しポインタ、オーディオ読み出しポインタ、または字幕読み出 しポインタは、バッファ 215Aから、ビデオストリーム、オーディオストリーム、または字 幕ストリームが読み出されると、その読み出し量に応じた分だけ、それぞれ、右回りに 更新される。ここで読み出し量に応じた分とは、実際に読み出したビデオ、オーディ ォ、字幕のデータに対応する部分と、読み出したデータの間に含まれており、読み出 しの際には読み飛ばしを行った、他のストリームのデータの部分をあわせたものとなる
[0487] また、データ先頭ポインタは、ビデオ読み出しポインタ、オーディオ読み出しポイン タ、または字幕読み出しポインタが更新されると、そのビデオ読み出しポインタ、ォー ディォ読み出しポインタ、または字幕読み出しポインタのうちの、最も古いデータの位 置を指しているものと同一の位置を指すように更新される。
[0488] ここで、バッファ制御モジュール 215は、バッファ 215Aへのデータの書き込みにつ いては、データ書き込みポインタがデータ先頭ポインタを追い越さないように、バッフ ァ 215Aへのデータの書き込みを制御する。
[0489] 即ち、データ書き込みポインタによるデータ先頭ポインタの追 、越しが発生しな!ヽ 限り、バッファ制御モジュール 215では、ディスク 101から読み出されたデータ力 デ ータ書き込みポインタが指すバッファ 215Aの位置に書き込まれ、データ書き込みポ インタが更新されていく。一方、データ書き込みポインタによるデータ先頭ポインタの 追い越しが発生しそうになると、ノ ッファ制御モジュール 215では、コンテンツデータ 供給モジュール 213に対して、ディスク 101からのデータの読み出しの停止(中断)が 要求され、さらに、バッファ 215Aへのデータの書き込みが停止される。これにより、バ ッファ 215Aのオーバーフローを防止することができる。
[0490] 以上のように、ディスク 101から読み出されたデータの、バッファ 215Aへの書き込 みは、データ先頭ポインタとデータ書き込みポインタとの 2つのポインタの位置関係だ けで制御される。
[0491] 一方、バッファ制御モジュール 215は、バッファ 215Aからのデータの読み出しにつ いては、ビデオ読み出しポインタ、オーディオ読み出しポインタ、および字幕読み出 しポインタ、ひいては、データ先頭ポインタ力 データ書き込みポインタを追い越さな 、ように、バッファ 215Aからのデータの読み出しを制御する。
[0492] 即ち、ビデオ読み出しポインタ、オーディオ読み出しポインタ、または字幕読み出し ポインタによるデータ書き込みポインタの追い越しが発生しない限り、ノ ッファ制御モ ジュール 215では、ビデオデコーダ制御モジュール 216、オーディオデコーダ制御モ ジュール 217、または字幕デコーダ制御モジュール 218からの要求に応じて、ビデオ 読み出しポインタ、オーディオ読み出しポインタ、または字幕読み出しポインタが指す ノ ッファ 215Aの位置力もデータが読み出され、ビデオ読み出しポインタ、オーディオ 読み出しポインタ、または字幕読み出しポインタが更新されるとともに、必要に応じて 、データ先頭ポインタが更新される。一方、ビデオ読み出しポインタ、オーディオ読み 出しポインタ、または字幕読み出しポインタによるデータ書き込みポインタの追い越し が発生しそうになると、バッファ制御モジュール 215では、ビデオデコーダ制御モジュ ール 216、オーディオデコーダ制御モジュール 217、または字幕デコーダ制御モジュ ール 218からの要求力 例えば凍結され、十分なデータが用意されるまで待たされる 。これにより、バッファ 215Aのアンダーフローを防止することができる。
[0493] 以上から、ノ ッファ 215Aには、データ先頭ポインタが指す位置から、右回りに、デ ータ書き込みポインタが指す位置までの範囲(図 34および図 35において影を付して ある部分)に、ビデオデコーダ制御モジュール 216、オーディオデコーダ制御モジュ ール 217、および字幕デコーダ制御モジュール 218に供給すべきデータが記憶され ており、さらに、その範囲内に、ビデオ読み出しポインタ、オーディオ読み出しポイン タ、および字幕読み出しポインタは存在する。
[0494] なお、上述の場合には、データ先頭ポインタは、ビデオ読み出しポインタ、オーディ ォ読み出しポインタ、または字幕読み出しポインタが指している位置のうちの、最も古 いデータの位置を指すように更新することとした力 その他、データ先頭ポインタの更 新は、例えば、その最も古いデータの位置から、所定の時間(例えば、 1秒)分だけ過 去のデータの位置を指すように行うことが可能である。
[0495] 即ち、一般には、ビデオ読み出しポインタ、オーディオ読み出しポインタ、または字 幕読み出しポインタのうちの、ビデオ読み出しポインタやオーディオ読み出しポインタ 力 最も古 、データの位置を指すことが多 、と予想される。 [0496] 従って、データ先頭ポインタを、ビデオ読み出しポインタまたはオーディオ読み出し ポインタが指す最も古いデータの位置から、例えば、 1秒分だけ過去のデータの位置 を指すように更新した場合、図 34に示すように、ビデオ読み出しポインタまたはォー ディォ読み出しポインタが指す最も古いデータの位置力 過去 1秒分のデータを、バ ッファ 215Aに残しておくことができる。ここで、図 34では、オーディオ読み出しポイン タカ 最も古いデータの位置を指しており、データ先頭ポインタは、その位置から 1秒 分だけ過去のデータの位置を指して 、る。
[0497] 以上のように、 1秒分だけ過去のデータの位置を指すように、データ先頭ポインタを 更新することにより、ディスク装置の応答性を向上させることができる。
[0498] 即ち、図 35に示したように、オーディオ読み出しポインタが指している最も古いデー タの位置を指すように、データ先頭ポインタを更新する場合には、例えば、リバース方 向への特殊再生が指示されたときに、ノ ッファ 215A力もの読み出しが終了したデー タを、ディスク 101から再度読み出す必要があるため、特殊再生が指示されてから、 その特殊再生が可能となるまでに、ある程度の時間がかかる。
[0499] これに対して、図 34に示したように、オーディオ読み出しポインタが指している最も 古 ヽデータの位置から 1秒分だけ過去のデータの位置を指すように、データ先頭ボイ ンタを更新する場合には、リバース方向への特殊再生が指示されたときに、その特殊 再生を開始するのに必要なデータが、バッファ 215Aに記憶されている 1秒分だけ過 去のデータであれば、上述したようなディスク 101からのデータの再読み出しを行わ ずに、即座に、特殊再生を開始することが可能となる。
[0500] なお、オーディオ読み出しポインタが指して 、る最も古 、データの位置から 1秒分 だけ過去のデータの位置を指すように、データ先頭ポインタを更新する場合であって も、特殊再生を開始するのに必要なデータ力 ノ ッファ 215Aに記憶されていないこ とがあり得る。この場合には、特殊再生を開始するのに必要なデータ力 ディスク 101 力 再度読み出される。
[0501] 次に、バッファ 215Aからのビデオストリーム、オーディオストリーム、字幕ストリーム それぞれの読み出しの詳細について説明する。
[0502] 図 30のステップ S127で説明したように、クリップストリームファイルの再生が開始さ れるときに、バッファ制御モジュール 215においては、データ先頭ポインタ、データ書 き込みポインタ、ビデオ読み出しポインタ、オーディオ読み出しポインタ、字幕読み出 しポインタが、すべて、ノ ッファ 215A上の同じ位置を指すように初期化される。
[0503] そして、ディスク 101からクリップストリームファイルに格納されたプログラムストリーム (MPEG2- System Program Stream)が読み出され、バッファ制御モジュール 215に供 給されると、バッファ制御モジュール 215では、そのプログラムストリーム力 ノ ッファ 2 15Aのデータ書き込みポインタが指す位置に記憶されるとともに、データ書き込みポ インタが、右回りに更新されていく。
[0504] さらに、バッファ制御モジュール 215 (図 3)では、ビデオ読み出し機能部 233が、バ ッファ 215Aに記憶されたプログラムストリームの構文解析を行 、、ビデオデコーダ制 御モジュール 216からの要求に応じて、バッファ 215 Aに記憶されたプログラムストリ ームから、ビデオストリーム (ビデオアクセスユニット)を抽出(分離)して読み出し、ビ デォデコーダ制御モジュール 216に供給する。
[0505] 同様に、オーディオ読み出し機能部 234も、ノ ッファ 215Aに記憶されたプログラム ストリームの構文解析を行い、オーディオデコーダ制御モジュール 217からの要求に 応じて、ノッファ 215Aに記憶されたプログラムストリームから、オーディオストリーム( オーディオアクセスユニット)を抽出して読み出し、オーディオデコーダ制御モジユー ル 217に供給する。字幕読み出し機能部 235も、バッファ 215Aに記憶されたプログ ラムストリームの構文解析を行い、字幕デコーダ制御モジュール 218からの要求に応 じて、ノッファ 215Aに記憶されたプログラムストリームから、字幕ストリーム (字幕ァク セスユニット)を抽出して読み出し、字幕デコーダ制御モジュール 218に供給する。
[0506] 「ビデオストリームの読み出し」
次に、図 36のフローチャートを参照して、ビデオ読み出し機能部 233 (図 3)による、 ノ ッファ 215Aからのビデオストリームの読み出し処理の詳細について説明する。
[0507] ビデオ読み出し機能部 233は、まず最初に、ステップ S211において、バッファ 215 Aに記憶されたプログラムストリーム中の private_stream_2の PES_packet()を探索して 見つけ出す。すなわち、 private_stream_2の PES_packetOの streamjdは、図 20で説明 したように、 10111111B(=0xBF)であり、ビデオ読み出し機能部 233は、 streamjdが 10 11111 IBとなって!/、る PES_packetOを探索して見つけ出す。
[0508] ここで、例えば、いま、上述したように、クリップストリームファイル" 00001.PS"に格納 されたプログラムストリームに多重化されたエレメンタリストリーム力 再生対象のエレメ ンタリストリームであるとすると、そのプログラムストリームをディスク 101から読み出して 、バッファ 215Aに記憶させるときに、図 30のステップ S 122において、クリップストリー ムファイル" 00001.PS"の EP_map() (図 27)に記述されたデコード開始可能点の情報か ら、 305セクタが再生開始位置として決定され、さらに、図 30のステップ S128におい て、再生開始位置である 305セクタが指定され、オペレーティングシステム 201に対し て、クリップストリームファイル" 00001.PS"に格納されたプログラムストリームの読み出 しが要求される。
[0509] また、ビデオストリームにつ 、ては、 EPjnapOに記述されたデコード開始可能点の情 報は、実際のデコード開始可能点の直前に配置された private_stream_2の PES_packe tOの位置を表す。
[0510] 従って、クリップストリームファイル" 00001.PS"に格納されたプログラムストリームがデ イスク 101から読み出され、ノ ッファ 215Aに記憶された直後においては、データ先 頭ポインタやビデオ読み出しポインタが指すバッファ 215Aの位置には、 private_strea m_2の PES_packet()が記憶されて 、る。
[0511] ビデオ読み出し機能部 233は、ステップ S211において、 private_stream_2の PES_pa cketOが見つかると、ステップ S212に進み、その private_stream_2の PES_packetOの P E¾— packet— data— byteである private— stream2—PE¾—payloadO (図 23)に己 されて 、る vi deo_streamjdを抜き出し、その video_stream_idが、図 30のステップ S 127で streamjd レジスタ 242 (図 3)に記憶された、再生対象のビデオストリームの streamjdと一致する かどうかを判定する。
[0512] ステップ S212にお 、て、 private_stream2_PES_payloadOに記述されて ヽる video_stre amjdが、 streamjdレジスタ 242に記憶された streamjdと一致しないと判定された場合 、即ち、直前のステップ S211で見つけ出された private_stream_2の PES_packet()が、 再生対象のビデオストリームのデコード開始点に配置されたものでな 、場合、ステツ プ S211に戻り、バッファ 215Aに記憶されたプログラムストリーム中の他の private_str eam_2の PES_packetOの探索が行われ、以下、同様の処理が繰り返される。
[0513] 一方、ステップ S212にお 、て、 private_stream2_PES_payload()に記述されて 、る vid eo_streamjd力 stream jdレジスタ 242に記憶された streamjdと一致すると判定された 場合、即ち、直前のステップ S211で見つけ出された private_stream_2の PES_packet() 力 再生対象のビデオストリームのデコード開始点に配置されたものである場合、ス テツプ S213に進み、ビデオ読み出し機能部 233は、その private_stream_2の PES_pac ketOの private— stream2— PES— payloadOに記述されている au— informationOを、ノ ッファ 2 15Aから読み出し、 aujnformationOレジスタ 243 (図 3)に記憶させ、ステップ S214に 進む。
[0514] ステップ S214では、ビデオ読み出し機能部 233は、直前のステップ S211で見つ け出した private— stream— 2の PES— packetO (video— stream— id (図 23)力 stream— idレジス タ 242 (図 3)に記憶された streamjdと一致する private_stream_2の PES_packet0)のサ ィズだけ、ビデオ読み出しポインタ記憶部 231に記憶されたビデオ読み出しポインタ を更新する。
[0515] 即ち、クリップストリームファイルでは、 private_stream_2の PES_packet()の直後に、そ の video_stream_idと一致する streamjdのビデオストリーム(PES_packet0)が配置され ており、従って、ステップ S214では、ビデオ読み出しポインタは、ビデオストリームの 実際のデコード開始可能点の位置を指すように更新される。
[0516] その後、ステップ S214力 S215に進み、ビデオ読み出し機能部 233は、ビデデコ ーダ制御モジュール 216から、データの要求があつたかどうかを判定し、ないと判定 した場合、ステップ S215〖こ戻り、同様の処理を繰り返す。
[0517] また、ステップ S215において、ビデオデコーダ制御モジュール 216から、データの 要求があつたと判定された場合、ステップ S216に進み、ビデオ読み出し機能部 233 は、ビデオ読み出しポインタが指しているバッファ 215Aの位置力ものプログラムストリ ームの構文解析を行 、つつ、 aujnformationOレジスタ 243に記憶された aujnformatio n()の AUJengthに記述されたバイト数のデータ、つまり 1つのビデオアクセスユニットを 、ノッファ 215Aから読み出し、ビデオデコーダ制御モジュール 216に供給するととも に、ビデオ読み出しポインタを、ノ ッファ 215A力も読み出した 1つのビデオアクセス ユニットのサイズ分だけ更新する。
[0518] 即ち、 aujnformationOには、図 24で説明したように、それを含む private_stream_2の PES_packetOから、次の private_stream_2の PES_packetOまでの間に含まれるビデオア クセスユニット(ピクチャ)の数を表す number_of_access_unitが記述されて 、る。
[0519] さらに、 aujnformationOには、図 24で説明したように、その number_of_access_unitの 数だけのビデオアクセスユニットそれぞれに関する情報としての pic_struct_copy, au_r ef_flag、および AUJengthが記述されて!、る。
[0520」 aujnformationOに number— of— access— unitの数 7こけ, ti; ^されて 、る AU— lengthそれて れは、図 24で説明したように、それを含む private_stream_2の PES_packet0から、次の private_stream_2の PES_packet0までの間に含まれる、 number_of_access_unitの数のビ デォアクセスユニットそれぞれのサイズを表すから、ビデオ読み出し機能部 233は、 その AUJengthを用いることで、ビデオストリームの構文解析を行うことなぐアクセスュ ニットの切り出しを行うことが出来る。
[0521] 即ち、従来、 MPEG2- Videoや MPEG4- AVCのアクセスユニットを切り出す場合には 、ビデオストリームの構文を知った上で、ビデオストリームの構文解析を行う必要があ つた力 ディスク 101に記録されたクリップストリームファイルに格納されたプログラム ストリームは、ビデオアクセスユニット単位のビデオストリームにおける 1以上の実際の デコード開始可能点それぞれの直前に、ビデオアクセスユニットのサイズを表す AUJ engthが記述された private_stream_2の PES_packet()を含んで 、るので、ビデオ読み出 し機能 233は、その private_stream_2の PES_packet0に記述された AU_lengthに基づき 、ビデオストリームの構文解析を行うことなぐノ ッファ 215Aから、ビデオアクセスュ- ット(単位のビデオストリーム)を読み出し、ビデオデコーダ制御モジュール 216に供 給することができる。
[0522] なお、ビデオ読み出し機能部 233は、ステップ S216において、ビデオアクセスュ- ットを、ビデオデコーダ制御モジュール 216に供給するときに、そのビデオアクセスュ ニットに関する情報として aujnformationOに記述されて 、る pic_struct_copy, au_ref_ fla g、および AUJengthと、ビデオアクセスユニット単位に付カ卩されているタイムスタンプ( PTS, DTS)も、ビデオデコーダ制御モジュール 216に供給する。 [0523] ステップ S216において、バッファ 215Aから 1つのビデオアクセスユニットが読み出 され、ビデオデコーダ制御モジュール 216に供給された後は、ステップ S217に進み 、ビデオ読み出し機能部 233は、 aujnformationOレジスタ 243に記憶された aujnform ationO (図 24)の number_of_access_unitが表す数だけのアクセスユニットを処理したか どうかを判定する。
[0524] ステップ S217にお!/、て、 number_of_access_unitが表す数だけのアクセスユニットを、 まだ処理して 、な 、と判定された場合、即ち、 number_of_access_unitが表す数だけの アクセスユニットを、まだ、バッファ 215Aから読み出してビデオデコーダ制御モジュ ール 216に供給していない場合、ステップ S215に戻り、以下、同様の処理が繰り返 される。
[0525] また、ステップ S217にお!/、て、 number_of_access_unitが表す数だけのアクセスュ- ットを処理したと判定された場合、即ち、 number_of_access_unitが表す数だけのァクセ スユニットを、バッファ 215Aから読み出してビデオデコーダ制御モジュール 216に供 給した場合、ステップ S211〖こ戻り、次の private— stream— 2の PES— packetOの探索が行 われ、以下、同様の処理が繰り返される。
[0526] 「オーディオストリームの読み出し」
次に、図 37のフローチャートを参照して、オーディオ読み出し機能部 234 (図 3)に よる、ノッファ 215Aからのオーディオストリームの読み出し処理の詳細について説明 する。
[0527] オーディオ読み出し機能部 234は、まず最初に、ステップ S230において、図 30の ステップ S127で streamjdレジスタ 252 (図 3)に記憶された、再生対象のオーディオ ストリームの streamjd力 private_stream_lの PES_packet()を表しているかどうかを半 U定 する。
[0528] ステップ S230において、 streamjdレジスタ 252に記憶された streamjd力 private.s tream_lの PES_packet0を表していない判定された場合、即ち、 streamjdレジスタ 252 に記憶された streamjdが、図 20で説明したように、 MPEG規格にしたがって符号化さ れたオーディオストリームに割り当てられる Ι ΙΟχχχχχΒである場合、ステップ S231に 進み、オーディオ読み出し機能部 234は、ノ ッファ 215Aに記憶されたプログラムスト リーム力ら、 MPEG Audioで定められたオーディオフレーム先頭を表す同期コードを 探す。同期コードの位置がオーディオフレーム先頭なので、オーディオ読み出し機能 部 234は、オーディオ読み出しポインタを、オーディオフレーム先頭の位置を示すよ うに更新し、ステップ S231力ら S232に進む。ステップ S232では、オーディオ読み出 し機能部 234は、バッファ 215Aに記憶されたプログラムストリーム中の、 stream jdレ ジスタ 252に記憶された streamjdに一致する PES_packet()を、オーディオ読み出しポ インタが示す位置力も探索して見つけ出し、ステップ S233に進む。
[0529] ステップ S233では、オーディオ読み出し機能部 234は、オーディオ読み出しポイン タ記憶部 251に記憶されたオーディオ読み出しポインタを、直前のステップ S232で 見つけ出した PES_packet()の PES_packet_data_byte (図 16乃至図 18)の先頭を指すよ う【こ更 ffし、ステップ S237〖こ itむ。
[0530] ステップ S237では、オーディオ読み出し機能部 234は、オーディオデコーダ制御 モジュール 217から、データの要求があつたかどうかを判定し、ないと判定した場合、 ステップ S237〖こ戻り、同様の処理を繰り返す。
[0531] また、ステップ S237において、オーディオデコーダ制御モジュール 217から、デー タの要求があつたと判定された場合、ステップ S238に進み、オーディオ読み出し機 能部 234は、オーディオ読み出しポインタが指しているバッファ 215Aの位置からの プログラムストリームの構文解析を行いつつ、既知の固定長の 1つのオーディオアク セスユニットを、バッファ 215Aから読み出し、そのオーディオアクセスユニットに付カロ されているタイムスタンプ(PTS, DTS)とともに、オーディオデコーダ制御モジュール 2 17に供給する。
[0532] そして、オーディオ読み出し機能部 234は、ノ ッファ 215Aから読み出した 1つのォ 一ディォアクセスユニットのサイズ分だけ、オーディオ読み出しポインタを更新して、 ステップ S237に戻り、以下、同様の処理が繰り返される。
[0533] 一方、ステップ S230にお 、て、 streamjdレジスタ 252に記憶された streamjd力 pri vate_stream_lの PES_packet()を表して 、ると判定された場合、即ち、 streamjdレジスタ 252に記憶された streamjdが、 10111101B(=0xBD)であり、図 20で説明したように、 pr ivate_stream_lの PES_packet()を表している場合、ステップ S234に進み、オーディオ 読み出し機能部 234は、バッファ 215Aに記憶されたプログラムストリーム中の private _stream_lの PES_packetOを探索して見つけ出す。すなわち、オーディオ読み出し機 能部 234は、 streamjdが 101111018となってぃる1^3_ &01½1:0を探索して見っけ出す
[0534] オーディオ読み出し機能部 234は、ステップ S234にお!/、て、 private_stream_lの PE S_packet0が見つかると、ステップ S235に進み、その private_stream_lの PES_packetO の PES_packet_data_byteである private_streaml_PES_payloadO (図 21)に記述されて!ヽ る private_stream_idを抜き出し、その private_streamjdが、図 30のステップ S 127で pri vate_stream_idレジスタ253 (図 3)に記憶された、再生対象のオーディオストリームの p rivate_stream_idと一致するかどうかを半 IJ定する。
[0535] ステップ S235にお 、て、 private_streaml_PES_payloadOに記述されて ヽる private_st ream— id力、、 private— stream— idレシスタ 25dに己'慮 れた private— stream— idと一致しな ヽ と判定された場合、即ち、直前のステップ S234で見つけ出された private_stream_lの PES_packetO力 再生対象のオーディオストリームではない場合、ステップ S 234に戻 り、バッファ 215Aに記憶されたプログラムストリーム中の他の private_stream_lの PES_ packetOの探索が行われ、以下、同様の処理が繰り返される。
[0536] 一方、ステップ S235にお 、て、 private_streaml_PES_payload()に記述されて ヽる pri vate— stream— id» 、 private— stream— idレンスタ 25dに c慮 れた private— stream— idと一致 すると判定された場合、即ち、直前のステップ S234で見つけ出された private_stream _1の PES_packet()力 再生対象のオーディオストリームである場合、ステップ S236に 進み、オーディオ読み出し機能部 234は、その private_stream_lの PES_packetOの priv ate_streaml_PES_payloadO (図 21)に記述されて!、る AU_locatorを、ノ ッファ 215A力 ら読み出し、その AU_locatorの直後の位置と、その AU_locatorが表す値とを加算する ことで、オーディオアクセスユニットの先頭位置を求める。
[0537] 即ち、 AU_locatorは、図 21で説明したように、その AU_locatorの直後の位置を基準 として、 private— streaml— PES— payloadOの private— payloadOに格納されるオーディオア クセスユニット(ある 、は字幕アクセスユニット)の先頭位置を表すから、 AU_locatorの 直後の位置に、その AlUocatorが表す値を加算することにより、オーディオアクセスュ ニットの(絶対的な)先頭位置を求めることができる。
[0538] オーディオ読み出し機能部 234は、さらに、ステップ S236において、以上のように して求めたオーディオアクセスユニットの先頭位置を指すように、オーディオ読み出し ポインタ記憶部 251に記憶されたオーディオ読み出しポインタを更新し、ステップ S2 37に進む。
[0539] ステップ S237では、オーディオ読み出し機能部 234は、オーディオデコーダ制御 モジュール 217から、データの要求があつたかどうかを判定し、ないと判定した場合、 ステップ S237〖こ戻り、同様の処理を繰り返す。
[0540] また、ステップ S237において、オーディオデコーダ制御モジュール 217から、デー タの要求があった力と判定された場合、ステップ S238に進み、オーディオ読み出し 機能部 234は、オーディオ読み出しポインタが指しているバッファ 215Aの位置から のプログラムストリームの構文解析を行いつつ、既知の固定長の 1つのオーディオア クセスユニットを、バッファ 215Aから読み出し、そのオーディオアクセスユニットに付 カロされているタイムスタンプとともに、オーディオデコーダ制御モジュール 217に供給 する。
[0541] そして、オーディオ読み出し機能部 234は、ノ ッファ 215Aから読み出した 1つのォ 一ディォアクセスユニットのサイズ分だけ、オーディオ読み出しポインタを更新して、 ステップ S237に戻り、以下、同様の処理が繰り返される。
[0542] 「字幕ストリームの読み出し」
次に、図 38のフローチャートを参照して、字幕読み出し機能部 235 (図 3)による、 ノ ッファ 215Aからの字幕ストリームの読み出し処理の詳細について説明する。
[0543] 字幕読み出し機能部 235は、まず最初に、ステップ S251において、図 30のステツ プ S127で字幕読み出し機能フラグ記憶部 261に記憶された字幕読み出し機能フラ グを判定する。ステップ S251において、字幕読み出し機能フラグ力^であると判定さ れた場合、即ち、例えば、再生対象のエレメンタリストリームが多重化されているクリツ プストリームファイルに字幕ストリームが含まれておらず、図 30のステップ S127で字 幕読み出し機能フラグ記憶部 261に、 0がセットされた場合、字幕読み出し機能部 23 5は特に処理を行わない。 [0544] 一方、ステップ S251において、字幕読み出し機能フラグが 1であると判定された場 合、即ち、例えば、再生対象のエレメンタリストリームが多重化されているクリップストリ ームファイルに字幕ストリームが含まれており、図 30のステップ S127で字幕読み出し 機能フラグ記憶部 261に、 1がセットされた場合、ステップ S252に進み、字幕読み出 し機能部 235は、 streamjdレジスタ 263 (図 3)に記憶された、再生対象の字幕ストリ ームの streamjdに一致する PES_packetOを、バッファ 215Aに記憶されたプログラムス トリーム力 探索する。
[0545] ここで、図 30のステップ S127で説明したように、 streamjdレジスタ 263 (図 3)には、 再生対象の字幕ストリームの streamjdが記憶される力 字幕ストリームの streamjdは、 図 20で説明したように、 private_stream_lの PES_packetOを表す 10111101B(=0xBD)で ある。
[0546] 従って、ステップ S252では、バッファ 215Aに記憶されたプログラムストリーム中の p rivate_stream_lの PES_packetOが探索されることになる。
[0547] ステップ S252において、 private_stream_lの PES_packetOの探索が行われ、 private_ stream_lの PES_packet()が見つ力ると、ステップ S253に進み、字幕読み出し機能部 2 35は、その private— stream— 1の PE¾—packetOの PES— packet— data— byteである private— stre aml_PES_payloadO (図 21)に記述されている private_stream_idを抜き出し、その privat e_streamjdが、図 30のステップ S127で private_stream_idレジスタ 264 (図 3)に記憶さ れた、再生対象の字幕ストリームの private_stream_idと一致するかどうかを判定する。
[0548] ステップ S253にお 、て、 private_streaml_PES_payloadOに記述されて ヽる private_st reamjd 、 private_stream_idレシスタ 264に己 '慮 れた private_stream_idと一致しな ヽ と判定された場合、即ち、直前のステップ S252で見つかった private_stream_lの PES_ packetOが、再生対象の字幕ストリームではない場合、ステップ S252〖こ戻り、バッファ 215Aに記憶されたプログラムストリーム中の他の private_stream_lの PES_packetOの 探索が行われ、以下、同様の処理が繰り返される。
[0549] 一方、ステップ S253にお 、て、 private_streaml_PES_payload()に記述されて ヽる pri vate— stream— id» 、 private— stream— idレンスタ 264にじ '慮 れた private— stream— idと一致 すると判定された場合、即ち、直前のステップ S252で見つかった private_stream_lの PES_packetOが、再生対象の字幕ストリームである場合、ステップ S254に進み、字幕 読み出し機能部 235は、その private_stream_lの PES_packetOの private_streaml_PES_ payloadO (図 21)に記述されている AU_locatorを、バッファ 215Aから読み出し、その AUJocatorの直後の位置と、その AU_locatorが表す値とをカ卩算することで、字幕ァク セスユニットの先頭位置を求める。
[0550] 即ち、 AU_locatorは、図 21で説明したように、その AU_locatorの直後の位置を基準 として、 private_streaml_PES_payloadOの private_payload0に格納される字幕アクセス ユニット(あるいはオーディオアクセスユニット)の先頭位置を表すから、 AU_locatorの 直後の位置に、その AlUocatorが表す値を加算することにより、字幕アクセスユニット の(絶対的な)先頭位置を求めることができる。
[0551] 字幕読み出し機能部 235は、さらに、ステップ S254において、以上のようにして求 めた字幕アクセスユニットの先頭位置を指すように、字幕読み出しポインタ記憶部 26 2に記憶された字幕読み出しポインタを更新し、ステップ S 255に進む。
[0552] ステップ S255では、字幕読み出し機能部 235は、字幕デコーダ制御モジュール 2 18から、データの要求があった力どうかを判定し、ないと判定した場合、ステップ S25 5に戻り、同様の処理を繰り返す。
[0553] また、ステップ S255において、字幕デコーダ制御モジュール 218から、データの要 求があった力と判定された場合、ステップ S256に進み、字幕読み出し機能部 235は 、字幕読み出しポインタが指しているバッファ 215Aの位置力ものプログラムストリーム の構文解析を行いつつ、字幕アクセスユニットの先頭に記述されているサイズ分の 1 つの字幕アクセスユニットを、バッファ 215Aから読み出し、その字幕アクセスユニット に付加されているタイムスタンプとともに、字幕デコーダ制御モジュール 218に供給 する。即ち、字幕アクセスユニットの先頭には、図 2で説明したように、その字幕ァクセ スユニットのサイズが記述されており、字幕読み出し機能部 235は、そのサイズ分の データを、字幕読み出しポインタが指しているバッファ 215Aの位置力も読み出し、そ の読み出したデータである字幕アクセスユニットを、その字幕アクセスユニットに付カロ されているタイムスタンプとともに、字幕デコーダ制御モジュール 218に供給する。
[0554] そして、字幕読み出し機能部 235は、ノッファ 215Aから読み出した 1つの字幕ァク セスユニットのサイズ分だけ、字幕読み出しポインタを更新して、ステップ S255に戻り 、以下、同様の処理が繰り返される。
[0555] [再同期処理]
次に、図 2のデコード制御モジュール 214による、ビデオデータとオーディオデコー ダとの同期制御について説明する。
[0556] 図 30の S130で説明したように、デコード制御モジュール 214は、同期を確保する ために必要であればタイミングをずらして、デコード開始を、ビデオデコーダ制御モジ ユール 216、オーディオデコーダ制御モジュール 217、および字幕デコーダ制御モ ジュール 218に指令する力 例えば、その後のビデオデコーダ 116とオーディオデコ ーダ 117のデコード処理の進行程度によって、ビデオデータの出力と、そのビデオデ ータと同期して出力されるべき出力データとしてのオーディオデータの出力とがずれ ることがある。
[0557] そこで、デコード制御モジュール 214では、ビデオデータの出力と、そのビデオデ ータと同期して出力されるべきオーディオデータの出力とに生じたずれを補正し、ビ デォデータとオーディオデータとが同期して出力されるようにするための再同期処理 が行われる。
[0558] 図 39のフローチャートを参照して、再同期処理について説明する。
[0559] 再同期処理では、まず最初に、ステップ S271において、デコード制御モジュール 2 14は、ビデオデコーダ制御モジュール 216からのビデオアクセスユニットのタイムスタ ンプと、オーディオ制御モジュール 217からのオーディオアクセスユニットのタイムスタ ンプとのずれが大であるかどうかを判定する。
[0560] 即ち、図 30のステップ S129で説明したように、ビデオデコーダ制御モジュール 21 6は、バッファ制御モジュール 215からビデオアクセスユニットを得るたびに、そのビ デォアクセスユニットのタイムスタンプを、デコード制御モジュール 214に供給する。 同様に、オーディオ制御モジュール 217も、バッファ制御モジュール 215からオーデ ィォアクセスユニットを得るたびに、そのオーディオアクセスユニットのタイムスタンプを 、デコード制御モジュール 214に供給する。
[0561] ステップ S271では、デコード制御モジュール 214は、ビデオデコーダ制御モジユー ル 216とオーディオ制御モジュール 217とのそれぞれから、同一タイミングで(同一タ イミングとみなすことができる、ある時間内に)供給されるタイムスタンプどうしを比較し 、それらのタイムスタンプのずれが大であるかどうかを判定する。
[0562] ステップ S271にお!/、て、ビデオデコーダ制御モジュール 216からのビデオアクセス ユニットのタイムスタンプと、オーディオ制御モジュール 217からのオーディオアクセス ユニットのタイムスタンプとのずれが大でないと判定された場合、即ち、ビデオァクセ スユニットのタイムスタンプと、オーディオアクセスユニットのタイムスタンプとのずれが 、あら力じめ定められた同期がとれているとみなすことができる範囲内である、例えば 、 2ビデオフレーム (約 66ミリ秒)である場合、ステップ S271に戻り、タイムスタンプどう しのずれの判定 (監視)が続行される。
[0563] 一方、ステップ S271にお!/、て、ビデオデコーダ制御モジュール 216からのビデオ アクセスユニットのタイムスタンプと、オーディオ制御モジュール 217からのオーディオ アクセスユニットのタイムスタンプとのずれが大であると判定された場合、即ち、ビデオ アクセスユニットのタイムスタンプと、オーディオアクセスユニットのタイムスタンプとの ずれ力 あら力じめ定められた同期がとれているとみなすことができる範囲外である場 合、ステップ S272に進み、デコード制御モジュール 214は、ビデオデコーダ制御モ ジュール 216からのビデオアクセスユニットのタイムスタンプと、オーディオ制御モジュ ール 217からのオーディオアクセスユニットのタイムスタンプとを比較することにより、 ビデオデータの出力(デコード)と、オーディオデータの出力とのうちのいずれが遅れ ているかを判定する。
[0564] ステップ S272において、ビデオデータの出力が、オーディオデータの出力よりも遅 れていると判定された場合、ステップ S273に進み、デコード制御モジュール 214は、 1ビデオアクセスユニットだけ、ビデオアクセスユニットの処理を進めるために、ビデオ デコーダ制御モジュール 216に対して、ビデオアクセスユニットのデコードと出力(表 示)を行わない旨の指示、即ち、ビデオアクセスユニットの処理のスキップの指示を出 力して、ステップ S274に進む。
[0565] ステップ S274では、ビデオデコーダ制御モジュール 216は、デコード制御モジユー ル 214からのスキップの指示を受信し、そのスキップの指示に応じて、バッファ制御モ ジュール 215からのビデオアクセスユニットとともに供給される au_ref_flag (図 24)を検 查する。
[0566] 即ち、 private— stream— 2の PES— packetOの private— stream2— PES— payloadO (図 23)に配 置された aujnformationO (図 24)には、アクセスユニットに関する情報としての au_ref_fl agが含まれており、バッファ制御モジュール 215は、図 30のステップ S129や、図 36 のステップ S216で説明したように、ビデオアクセスユニットとともに、そのビデオァクセ スユニットの au ref flagを、ビデオデコーダ制御モジュール 216に供給する。
[0567] ステップ S274では、このように、アクセスユニットとともに供給される、そのアクセス ユニットの au ref flagが検査される。
[0568] そして、ステップ S274力ら S275に進み、ビデオデコーダ制御モジュール 216は、 バッファ制御モジュール 215から供給されたビデオアクセスユニットの au_ref_flagの検 查の結果に基づき、そのビデオアクセスユニットが、他のピクチヤのデコードにあたつ て参照されない非参照画像であるかどうかを判定する。
[0569] ここで、図 24で説明したように、ビデオアクセスユニットの au_ref_flagは、そのアクセス ユニットが参照画像である力否かを表し、参照画像である場合には 1とされ、参照画 像でない場合、即ち、非参照画像である場合には 0とされる。
[0570] ステップ S275において、バッファ制御モジュール 215から供給されたビデオァクセ スユニットが非参照画像 (のビデオアクセスユニット)でな ヽと判定された場合、即ち、 ノ ッファ制御モジュール 215から供給されたビデオアクセスユニットが参照画像であ る場合、ステップ S276に進み、ビデオデコーダ制御モジュール 216は、通常通り、そ のビデオアクセスユニットを、ビデオデコーダ 116に処理させ、次のビデオアクセスュ ニットが、バッファ制御モジュール 215から供給されるのを待って、ステップ S274に 戻る。
[0571] また、ステップ S275において、バッファ制御モジュール 215から供給されたビデオ アクセスユニットが非参照画像であると判定された場合、ステップ S277に進み、ビデ ォデコーダ制御モジュール 216は、そのビデオアクセスユニットの、ビデオデコーダ 1 16による処理をスキップさせ、次のビデオアクセスユニットが、バッファ制御モジユー ル 215から供給されるのを待って、ステップ S271に戻る。 [0572] このように、ビデオアクセスユニットの処理がスキップされることにより、ビデオァクセ スユニットの処理力 ほぼ 1ビデオアクセスユニット分だけ進められる(処理時間が短 縮される)。その結果、オーディオデータの出力よりも遅れていたビデオデータの出 力が早まることになる。
[0573] 一方、ステップ S272において、ビデオデータの出力が、オーディオデータの出力よ りも遅れていないと判定された場合、即ち、オーディオデータの出力が、ビデオデー タの出力よりも遅れている場合、ステップ S278に進み、デコード制御モジュール 214 は、ビデオアクセスユニットの処理を待たせるために、ビデオデコーダ制御モジユー ル 216に対して、 V、まデコードされて!/、るビデオアクセスユニットに対応するビデオデ ータを繰り返して出力する繰り返し出力の指示を出力して、ステップ S279に進む。
[0574] ステップ S279では、ビデオデコーダ制御モジュール 216は、デコード制御モジユー ル 214からの繰り返し出力の指示を受信し、その繰り返し出力の指示に応じて、いま ビデオデコーダ 116でデコードされて!/、るビデオアクセスユニットに対応するビデオ データを繰り返して、グラフィクス処理モジュール 219に出力し、次のビデオアクセス ユニットが、バッファ制御モジュール 215から供給されるのを待って、ステップ S271に 戻る。
[0575] 以上のように、デコード制御モジュール 214では、ビデオデータの出力が、オーディ ォデータの出力よりも遅れている力否かを判定し、ビデオデータの出力力 オーディ ォデータの出力よりも遅れている場合には、 1つのアクセスユニットの処理のスキップ を、ビデオデコーダ制御モジュール 216に指示する。そして、ビデオデコーダ制御モ ジュール 216では、スキップが指示されたアクセスユニットの au_ref_flagに基づき、その アクセスユニットが参照画像である力、または非参照画像であるかを判定し、非参照 画像である場合に、ビデオデコーダ 116に、スキップが指示されたアクセスユニットの 処理をスキップさせる。従って、ビデオデータの出力と、オーディオデータの出力との 同期を、容易にとることができる。
[0576] 即ち、処理をスキップするアクセスユニットが参照画像である場合、そのアクセスュ ニットに対応するビデオデータは、その後にデコードされる他のアクセスユニットのデ コード時に参照するためにデコードする必要がある。従って、ビデオデータの出力と、 オーディオデータの出力との同期をとるための同期制御において、参照画像のァク セスユニットの処理をスキップしてしまうと、その参照画像を参照する他のアクセスュ ニットをデコードすることができず、その結果、ビデオデータの表示において、同期制 御がノイズとして現れてしまう。
[0577] このため、処理をスキップするのは、参照画像でないアクセスユニット、即ち、非参 照画像のアクセスユニットとするのが望まし!/、。
[0578] 一方、従来のエレメンタリストリームにっ 、て、非参照画像のアクセスユニットを探す ためには、エレメンタリストリームの構文解析を行う必要がある力 例えば、 MPEG4-A VCなどにしたがった符号ィ匕により得られるエレメンタリストリームは、構文が非常に複 雑であるため、構文解析に、多大なコストがかかる。
[0579] これに対して、ディスク 101に記録されたクリップストリームファイルに格納されたプ ログラムストリームには、ビデオアクセスユニットが PES_packet_data_byteに配置される P ES_packet() (図 16乃至図 18)とは別に、 PES_packet_data_byteを拡張した private_stre am2_PES_payloadO (図 23)が配置された private_stream_2の PES_packetOが多重化さ れており、その private_stream2_PES_payloadOの aujnformationO (図 24)には、ビデオ アクセスユニットごとに、そのビデオアクセスユニットが参照画像である力、または非参 照画像であるかを表す au_ref_flagが記述されている。そして、その au_ref_flagは、対応 するビデオアクセスユニットとともに、バッファ制御モジュール 215からビデオデコーダ 制御モジュール 216に供給される。従って、ビデオデコーダ制御モジュール 216は、 ビデオアクセスユニットとともに供給される、そのビデオアクセスユニットの au_ref_flagを 検査することにより、コストをほとんどかけずに、ビデオアクセスユニットが参照画像で あるか、または非参照画像であるかを認識することができる。
[0580] [マーク処理]
次に、図 40のフローチャートを参照して、 PlayListMarkO (図 7)に記述された Mark() に基づ!/、て行われるマーク処理につ!、て説明する。
[0581] デコード制御モジュール 214は、内蔵する計時部 214Aによって計時されている現 在時刻を、常時確認しており、ステップ S301において、現在時刻が、 PlayListMarkO (図 7)に記述された!、ずれかの MarkOの mark_time_stampに一致したか否かを判定す る。
[0582] 即ち、図 30のステップ S124で説明したように、プレイヤ制御モジュール 212は、図 25に示した 1番目の PlayList#0の 1番目の PlayItem#0を再生しょうとするときに、図 28 上側に示した PlayListMarkOに含まれる 7つの MarkOのうちの 1番目から 4番目までの 4つの MarkOが、 PlayList#0の 1番目の PlayItem#0に属していることを認識し、その 4つ の MarkOの mark_time_stampである {180,090}、 {5,580,090}、 {10,980,090}、 {16,380,09 0}を、その mark_time_stampが表す時刻の属性が「マーク処理」である旨とともに、デコ ード制御モジュール 214に渡している。
[0583] ステップ S301では、デコード制御モジュール 214において、現在時刻が、上述の ようにしてプレイヤ制御モジュール 212から供給された「マーク処理」の属性の時刻 (m ark_time_stamp)のうちのいずれ力と一致するかどうかが判定される。
[0584] ステップ S301において、現在時刻が、「マーク処理」の属性の時刻のうちのいずれ とも一致しないと判定された場合、ステップ S301に戻り、同様の処理が繰り返される
[0585] また、ステップ S301において、現在時刻が、「マーク処理」の属性の時刻のうちの いずれかと一致すると判定された場合、デコード制御モジュール 214は、現在時刻が 、「マーク処理」の属性の時刻となった旨のメッセージと、現在時刻と一致した「マーク 処理」の属性の時刻とを、プレイヤ制御モジュール 212に供給して、ステップ S302に 進む。
[0586] ステップ S302では、プレイヤ制御モジュール 212が、現在時刻が、「マーク処理」 の属性の時刻となった旨のメッセージと、現在時刻と一致した「マーク処理」の属性の 時刻 (mark_time_stamp)とを、デコード制御モジュール 214から受信し、 mark_time_sta mpが現在時刻に一致した MarkOを、マーク処理の処理対象とする MarkO (以下、適 宜、処理対象 markという)として認識する。
[0587] 即ち、プレイヤ制御モジュール 212は、現在再生されている PlayListOの PlayltemO を認識しており、その PlayListOおよび PlayltemOと、デコード制御モジュール 214から の、現在時刻と一致した「マーク処理」の属性の時刻 (mark_time_stamp) (以下、適宜、 マーク時刻と 、う)と力ら、 "PLAYLIST.DAT"ファイル(図 5)の PlayListMarkO (図 7)を 参照することにより、処理対象 markを認識する。
[0588] 具体的には、例えば、いま、図 25に示した 1番目の PlayList#0の 1番目の Playltem# 0が再生されているとすると、そのことにより、プレイヤ制御モジュール 212は、マーク 時刻が、図 28上側に示した PlayListMarkOに含まれる 7つの MarkOのうちの 1番目力 ら 4番目までの 4つの MarkOのうちの 、ずれかの mark_time_stampであることを認識す る。
[0589] そして、デコード制御モジュール 214からプレイヤ制御モジュール 212に供給され たマーク時刻が、例えば、 16,380,090であったとすると、プレイヤ制御モジュール 212 は、図 28上側に示した PlayListMarkOに含まれる 1番目から 4番目までの 4つの Mark( )のうちの、 mark_time_stampが、マーク時刻である 16,380,090に一致する 4番目の Mar k0を、処理対象 markとして認識する。
[0590] プレイヤ制御モジュール 212は、以上のようにして、処理対象 markを認識すると、ス テツプ S302力ら S303に進み、処理対象 markにおいて、エレメンタリストリームを特定 する entry_ES_stream_idと entry_ES_private_stream_id (図 7)が記述されて 、る力どう力 を判定する。
[0591] ステップ S303において、処理対象 markに、エレメンタリストリームを特定する entry_ ES_stream_idと entry_ES_private_stream_id (図 7)が記述されて 、な 、と判定された場 合、即ち、 entry_ES_stream_idと entry_ES_private_stream_idが、いずれも 0x00である場 合、ステップ S304をスキップして、ステップ S305〖こ進み、以下、処理対象 markに応 じた処理が行われる。
[0592] また、ステップ S303において、処理対象 markに、エレメンタリストリームを特定する e ntry_ES_stream_idと entry_ES_private_stream_id (図 7)が記述されて 、ると判定された 場合、ステップ S304に進み、プレイヤ制御モジュール 212は、再生中のエレメンタリ ストリーム〖こ、その entry_ES_stream_id、さら〖こは、必要に応じて entry_ES_private_strea mjdによって特定されるエレメンタリストリームが含まれるかどうかを判定する。
[0593] ステップ S304において、再生中のエレメンタリストリームに、処理対象 markの entry_ ES_stream_idと entry_ES_private_stream_idによって特定されるエレメンタリストリームが 含まれないと判定された場合、ステップ S301に戻る。即ち、処理対象 markの entry_E S_stream_idと entry_ES_private_stream_idによって特定されるエレメンタリストリームが再 生されていない場合、処理対象 markは、無視される。
[0594] 一方、ステップ S304において、再生中のエレメンタリストリームに、処理対象 markの entry_ES_stream_idと entry_ES_private_stream_idによって特定されるエレメンタリストリ ームが含まれると判定された場合、即ち、処理対象 markの entry_ES_stream_idと entry_ ES_private_stream_idによって特定されるエレメンタリストリームが再生されている場合 、処理対象 markは有効であるとして、ステップ S305に進み、以下、その処理対象 mar kに応じた処理が行われる。
[0595] 即ち、ステップ S305では、プレイヤ制御モジュール 212は、処理対象 markの mark_ type (図 7)を参照することにより、その処理対象 markを判定する。
[0596] ステップ S305において、処理対象 mark力 チヤプタマークまたはインデクスマーク であると判定された場合、即ち、処理対象 markの mark_typeが、 'Chapter'または' Inde x'である場合、ステップ S 306に進み、プレイヤ制御モジュール 212は、グラフィクス処 理モジュール 219に命じて、チヤプタまたはインデタスの番号の表示を、処理対象 ma rkであるチヤプタマークまたはインデクスマークが表すチヤプタまたはインデタスの番 号に更新させて、ステップ S301に戻る。
[0597] また、ステップ S 305において、処理対象 markが、イベントマークであると判定され た場合、即ち、処理対象 markの markj peが、 'Event'である場合、ステップ S307に 進み、プレイヤ制御モジュール 212は、イベントの発生を表すイベントメッセージと、 処理対象 markの mark_dataを、スクリプト制御モジュール 211に通知(供給)して、ステ ップ S 308に進む。
[0598] ステップ S308では、スクリプト制御モジュール 211が、プレイヤ制御モジュール 212 からのイベントメッセージと mark_dataとを受信し、イベントメッセージを割り込み要求と して、あらかじめ" SCRIPT.DAT〃ファイルに記述された一連の処理を、 mark_dataを引 数として行って、ステップ S301に戻る。
[0599] 即ち、スクリプト制御モジュール 211では、 mark_dataに対応した処理が行われる。
[0600] 具体的には、例えば、図 28下側に示した PlayList #1の PlayListMarkOでは、 2番目 の MarkO (Mark#l)と 3番目の MarkO (Mark#2)とは、 、ずれも、 mark_typeが'Event'で あるが、 mark_dataは、それぞれ 1 (Mark#l)と 2 (Mark#2)で異なって!/、る。
[0601] スクリプト制御モジュール 211は、 2番目の MarkOに対応するイベントメッセージを受 信した場合と、 3番目の MarkOに対応するイベントメッセージを受信した場合の、いず れも場合も、そのイベントメッセージに応じて、同一のイベントハンドラ (割り込み処理 ルーチン)で処理を行うが、イベントハンドラ内において、イベントメッセージとともに供 給される mark_dataを検査することにより、イベントメッセージに対して、 mark_dataごと に異なる処理を行う。
[0602] 具体的には、例えば、 mark_dataが 1である場合には、スクリプト制御モジュール 211 は、グラフィクス処理モジュール 219を制御して、第 1の種類のアイコンの表示を行わ せる。また、例えば、 mark_dataが 2である場合、スクリプト処理モジュール 211は、ダラ フィクス処理モジュール 219を制御して、第 2の種類のアイコンの表示を行わせる。
[0603] なお、 mark_dataは、 1や 2に限定されるものではなぐまた、 mark_dataに対応して行 われる処理も、上述したような、単なるアイコンの表示限定されるものではない。
[0604] 即ち、例えば、 mark_dataが 3乃至 18の範囲の値である場合には、スクリプト制御モ ジュール 211は、グラフィクス処理モジュール 219を制御し、第 1の種類のアイコンの 表示を、 mark_dataから 2を減じた値(1〜16の数値)に対応する明るさで行わせる。ま た、例えば、 mark_dataが 19乃至 34の範囲の値である場合には、スクリプト制御モジュ ール 211は、グラフィクス処理モジュール 219を制御し、第 2の種類のアイコンの表示 を、 mark_dataから 18を減じた値(1〜16の数値)に対応する明るさで行わせる。
[0605] その他、例えば、入力インターフェース 115 (図 1)に、ユーザが操作するコントロー ラが接続されており、そのコントローラ力 DC(Direct Current)モータの軸に偏芯させ たおもりを取り付けた、 DCモータを動作させると振動が発生する振動モータを内蔵す る場合には、 mark_dataが 35乃至 42の範囲の値であるときに、その振動モータを、 mar k_dataから 34を減じた値(1〜8の数値)に応じた動作時間だけ動作させることができる
[0606] mark_dataは数値であり、その使用法やアルゴリズムは、スクリプト制御モジュール 2 11が実行するスクリプトプログラムにより記述することができる。従って、 mark_dataは、 事前に取り決められたルールで使用する他、ディスク 101の製造者、あるいはデイス ク 101に記録されるデータを提供するコンテンツプロノイダなどが独自に設定したル ールで使用することが可能である。
[0607] 以上のように、マーク処理では、現在時刻が、「マーク処理」の属性の時刻と一致す ると、その「マーク処理」の属性の時刻であるマーク時刻から、処理対象 markが認識 される。さらに、処理対象 markにおいて、エレメンタリストリームを特定する entry_ES_st reamjdと entry_ES_private_stream_idが記述されて 、な 、場合には、処理対象 markの mark_typeに応じた処理が行われる。また、処理対象 markにおいて、エレメンタリストリ ームを特定する entry_ES_stream_idと entry_ES_private_stream_idが記述されている場 合で teつても、 "Irの entry— ES— stream— idと entry— E¾— private— stream— idによって特疋 れ るエレメンタリストリームが再生中であれば、処理対象 markの mark_typeに応じた処理 が行われる。
[0608] 従って、例えば、いま、図 25に示した 2番目の PlayList#lの再生が行われていると すると、以下のようなマーク処理が行われる。
[0609] 即ち、 2番目の PlayList#lの PlayListMarkOにおいては、図 28下側に示したように、 mark_time_stampがそれぞれ 90,000, 27,090,000, 27,540,000に指定されている 1番目 の MarkO(Mark#0)、 2番目の MarkO (Mark#l)、 3番目の MarkO (Mark#2)が記述され ている。
[0610] さらに、図 28下側の PlayListMarkOにおいては、 2番目の MarkOと 3番目の MarkOの entry_ES_streamjdには、それぞれ、 OxEOと OxElが記述されているから、 2番目の Mar k0と 3番目の MarkOは、それぞれ、 streamjdが OxEOと OxElで特定されるエレメンタリス トリームが関連付けられている。
[0611] ここで、図 25で説明したように、 2番目の PlayList#lには、 1つの PlayItemO(PlayItem #0)だけが記述され、その PlayItem#0によれば、クリップストリームファイル" 00003.PS" が再生される。そして、クリップストリームファイル" 00003.PS"には、そのクリップストリ ームファイル" 00003.PS"に対応する図 26のクリップ情報ファイル" 00003.CLP"で説明 したように、 OxEOとなっている streamjdで特定されるビデオストリーム stream#0、 OxEl となって 、る streamjdで特定されるビデオストリーム stream#l、 OxBDとなって 、る strea m_idおよび 0x00となっている private_stream_idで特定されるオーディオストリーム strea m#2の 3つのエレメンタリストリームが多重化されて!/、る。
[0612] 従って、図 28下側の PlayListMarkOの 2番目の MarkOには、クリップストリームフアイ ル" 00003.PS"に多重化されて!/、る、 streamjdが OxEOとなって!/、るビデオストリーム str eam#0が関連付けられており、 3番目の MarkOには、クリップストリームファイル" 00003. PS"に多重化されている、 streamjdが OxElとなっているビデオストリーム stream#lが関 連付けられている。
[0613] 図 25の 2番目の PlayList#lの PlayItem#0の再生が開始される場合、図 30のステップ S 124で説明したようにして、プレイヤ制御モジュール 212は、図 28下側に示した Pla yListMarkOに含まれる 3つの MarkOが、 PlayList#lの PlayItem#0に属して!/、ることを認 識し、その 3つの MarkOの mark_time_stampである {90,000}、 {27,090,000}、 {27,540,000} を、その mark_time_stampが表す時刻の属性が「マーク処理」である旨とともに、デコー ド制御モジュール 214に渡している。
[0614] マーク処理では、デコード制御モジュール 214が、 PlayList#lの PlayItem#0の再生 中に、計時部 214Aによって計時される現在時刻力 属性が「マーク処理」の時刻 {90 ,000}、 {27,090,000k {27,540,000}のうちのいずれかに一致するかを、常時確認してお り(ステップ S301)、現在時刻力 属性が「マーク処理」の時刻に一致すると、現在時 刻と一致した「マーク処理」の属性の時刻であるマーク時刻と、現在時刻が、「マーク 処理」の属性の時刻となった旨のメッセージとを、プレイヤ制御モジュール 212に供 給する。
[0615] 即ち、例えば、いま、現在時刻が、「マーク処理」の属性の時刻 {90,000}、 {27,090,00 0}、 {27,540,000}のうちの、 27,090,000に一致したとすると、デコード制御モジュール 2 14は、現在時刻と一致した「マーク処理」の属性の時刻であるマーク時刻 27,090,000 と、現在時刻が、「マーク処理」の属性の時刻となった旨のメッセージとを、プレイヤ制 御モジュール 212に供給する。
[0616] プレイヤ制御モジュール 212は、 PlayList#lの PlayItem#0が現在再生されていること を認識しており、その PlayList#lの図 28下側に示した PlayListMarkOに記述された Ma rk()のうちの、 PlayItem#0に属する 3つの MarkOの mark_time_stampである 90,000, 27,0 90,000, 27,540,000それぞれと、デコード制御モジュール 214からのマーク時刻であ る 27,090,000とを比較することにより、そのマーク時刻 27,090,000に、 mark_time_stamp がー致する Mark0、即ち、図 28下側の PlayListMarkOに記述された 2番目の MarkO(M ark#l)を、処理対象 markとして認識する(ステップ S302)。
[0617] 処理対象 markである、図 28下側の PlayListMarkOに記述された 2番目の MarkOに おいては、 entry_ES_stream_idとして、 OxEOが指定されている。この OxEOとなっている e ntry_ES_stream_idは、上述したことから、クリップストリームファイル" 00003.PS"に多重 ィ匕されて 、る、 streamjdが OxEOとなって!/、るビデオストリーム stream#0 (図 26)を表す ものであり、プレイヤ制御モジュール 212は、再生中のエレメンタリストリームの中に、 そのビデオストリーム stream#0が含まれるかどうかを判定する(ステップ S303, S304
) o
[0618] そして、再生中のエレメンタリストリームの中に、ビデオストリーム stream#0が含まれ ない場合には、処理対象 markは無視される(ステップ S304)。
[0619] 一方、再生中のエレメンタリストリームの中に、ビデオストリーム stream#0が含まれる 場合には、処理対象 markは有効であるとして、その処理対象 markに応じた処理が行 われる(ステップ S305乃至 S308)。
[0620] 即ち、いまの場合、処理対象 markである、図 28下側の PlayListMarkOに記述された 2番目の MarkOは、その mark_typeが' Event'になっているからイベントマークであり、従 つて、プレイヤ制御モジュール 212は、イベントの発生を表すイベントメッセージと、処 理対象 markの mark_dataを、スクリプト制御モジュール 211に供給する(ステップ S 305 , S307)。そして、スクリプト制御モジュール 211では、プレイヤ制御モジュール 212 力ものイベントメッセージを割り込み要求として、あらかじめ" SCRIPT.DAT"ファイルに 記述された一連の処理を、そのイベントメッセージとともに供給された mark_dataを引 数として行う(ステップ S308)。
[0621] 以上のように、マーク処理によれば、 PlayListOの時間軸上の 1つの再生時刻を表す mark_time_stampと、 MarkOのタイプを表す mark_typeと、イベントマークの引数となる m ark_dataとを含む 0以上の MarkOを有する PlayListMarkO (図7)を含む PlayListO (図5) にしたがって再生されているクリップストリームファイルの再生時刻である現在時刻が 、 mark_time_stamp〖こ一致するか否かが判定され、現在時刻力 mark_time_stamp〖こ一 致する場合に、その一致した現在時刻であるマーク時刻に等し ヽ mark_time_stampを 有する MarkOが、処理対象 markとして認識される。さらに、その処理対象 markが有す る mark_typeが、イベントを発生させるタイプを表している場合、即ち、処理対象 mark 力 イベントマークである場合、処理対象 markが有する mark_dataとイベントメッセージ とが通知され、その mark_dataに応じた処理が実行される。従って、クリップストリームフ アイルの再生時刻に応じ、 mark_dataに応じた処理を実行することが可能となる。
[0622] [出力属性の制御処理]
次に、図 41のフローチャートを参照して、図 30のステップ S126などで行われる出 力属性の制御処理の詳細について説明する。
[0623] 図 30のステップ S126で説明したように、プレイヤ制御モジュール 212は、まず、再 生対象の 1以上のエレメンタリストリーム、即ち、図 30のステップ S125で再生すると決 定した 1以上のエレメンタリストリームそれぞれについて、出力属性が記述される Dyna micInfoO (図 13)の数を表す number_of_Dynamidnfo (図 10)を調査する。
[0624] そして、再生対象の 1以上のエレメンタリストリームのすべてについて、 number_of_Dy namiclnfo力^になっている場合、プレイヤ制御モジュール 212は、特に処理を行わな い。
[0625] 一方、再生対象のエレメンタリストリームについての number_of_Dynamidnfoが 0でな い場合、プレイヤ制御モジュール 212は、図 41のフローチャートにしたがった出力属 性の制御処理を行う。
[0626] 従って、ディスク 101に記録された 3つのクリップ情報ファイル" 00001.CLP", "00002 .CLP", "00003.CLP"が、例えば、図 26に示したようになつている場合に、クリップ情 報ファイル" 00001.CLP"に対応するクリップストリームファイル" 00001.PS" (を再生する 1番目の PlayList#0の 1番目の PlayItem#0)が再生されるときには、クリップ情報フアイ ル" 00001.CLP" (図 26)では、クリップストリームファイル" 00001.PS"に多重化されてい る 4つのエレメンタリストリーム stream#0乃至 stream#3のすべてにっ 、て、 number_of_D ynamiclnfoが 0になって!/、るから、出力属性の制御処理は行われな!/、。
[0627] 同様に、クリップ情報ファイル" 00002.CLP"に対応するクリップストリームファイル" 00 002. PS" (を再生する 1番目の PlayList#0の 2番目の Playltem#l)が再生されるときも、 クリップ情報ファイル" 00002.CLP" (図 26)では、クリップストリームファイル" 00002.PS" に多重化されている 4つのエレメンタリストリーム stream#0乃至 stream#3のすべてにつ いて、 number_of_Dynamidnfoが 0になっているから、出力属性の制御処理は行われな い。
[0628] 一方、クリップ情報ファイル" 00003.CLP"に対応するクリップストリームファイル" 0000 3.PS" (を再生する 2番目の PlayList#lの PlayItem#0)が再生されるときは、クリップ情 報ファイル" 00003.CLP" (図 26)において、クリップストリームファイル" 00003.PS"に多 重化されている 3つのエレメンタリストリーム stream#0乃至 stream#2のうちの、 1番目の エレメンタリストリームであるビデオストリーム stream#0と、 3番目のエレメンタリストリー ムであるオーディストリーム stream#2につ 、て、 number_of_Dynamidnfo力^でな ヽ 2と 3 に、それぞれなつているから、出力属性の制御処理が行われる。
[0629] 即ち、出力属性の制御処理では、まず最初に、ステップ S320において、プレイヤ 制御モジュール 212は、再生対象のクリップストリームファイルに対応するクリップ情 報ファイル ClipO (図 10)に記述された pts_change_pointを、「DynamicInfoO処理」の属 性の時刻である旨とともに、デコード制御モジュール 214に渡し、デコード制御モジュ ール 214は、プレイヤ制御モジュール 212からの「DynamidnfoO処理」の属性の時刻 である pts_change_pointを受信して、ステップ S321に進む。
[0630] ステップ S321では、デコード制御モジュール 214力 計時部 214Aによって計時さ れて 、る現在時刻が、「DynamicInfo()処理」の属性の時刻である pts_change_point (の いずれか)に一致したかどうかを判定し、一致していないと判定した場合、ステップ S3 21に戻る c
[0631] また、ステップ S321にお!/、て、現在時刻が、「DynamicInfoO処理」の属性の時刻 ( のいずれか)に一致したと判定された場合、デコード制御モジュール 214は、現在時 刻が、「DynamicInfoO処理」の属性の時刻となった旨のメッセージと、現在時刻と一致 した「DynamicInfo()処理」の属性の時刻(以下、適宜、 Dynamiclnfo時刻という)とを、 プレイヤ制御モジュール 212に供給して、ステップ S 322に進む。
[0632] ステップ S332では、プレイヤ制御モジュール 212が、現在時刻が、「DynamidnfoO 処理」の属性の時刻となった旨のメッセージと、 Dynamiclnfo時刻とを、デコード制御 モジュール 214から受信し、その Dynamiclnfo時刻に一致する pts_change_point (図 10 )とセットになっている DynamicInfoOを、処理対象の DynamicInfoOである処理対象 Dyn amicInfoOとして認識して、ステップ S323〖こ進む。
[0633] ステップ S323では、プレイヤ制御モジュール 212は、処理対象 DynamicInfoOとなつ ている DynamicInfoO (図 13)に記述された出力属性を、グラフィクス処理モジュール 2 19またはオーディオ出力モジュール 221に供給して、ステップ S 324に進む。
[0634] ステップ S324では、グラフィクス処理モジュール 219またはオーディオ出力モジュ ール 221力 直前のステップ S323でプレイヤ制御モジュール 212から供給された出 力属性にしたがって、ビデオデータまたはオーディオデータの出力の制御を、それぞ れ開始し、ステップ S321〖こ戻る。
[0635] これにより、ビデオデータが、出力属性 (表示方式)として記述された、例えばァスぺ タト比に応じて出力され、あるいは、オーディオデータが、出力属性(出力方式)として 記述された、例えば、ステレオまたはデュアル(ニケ国語)に応じて出力される。
[0636] 次に、図 42を参照して、出力属性の制御処理の詳細について、さらに説明する。
[0637] 即ち、図 42は、図 26のクリップ情報ファイル" 00003.CLP"に記述されている pts_cha nge_pointと DynamicInfoOとのセット(図 10)を示している。
[0638] ここで、上述したように、クリップストリームファイル" 00003.PS"に多重化されている 3 つのエレメンタリストリーム stream#0乃至 stream#2のうちの、 1番目のエレメンタリストリ ームであるビデオストリーム stream#0と、 3番目のエレメンタリストリームであるオーディ ストリーム stream#2については、図 26のクリップ情報ファイル" 00003. CLP"において、 number_of_Dynamidnfoが、それぞれ 2と 3になっている。従って、クリップ情報ファイル" 00003. CLP"において、クリップストリームファイル" 00003.PS"の 1番目のビデオストリ ーム stream#0については、 2セットの pts_change_pointおよび DynamicInfoOが記述され ており、 3番目のオーディオストリーム stream#2については、 3セットの pts_change_poin tおよび DynamicInfoOが記述されて 、る。
[0639] 図 42上側は、クリップストリームファイル" 00003.PS"の 1番目のビデオストリーム strea m#0につ 、て記述されて 、る 2セットの pts_change_pointおよび DynamicInfoOを示して おり、図 42下側は、クリップストリームファイル" 00003.PS"の 3番目のオーディオストリ ーム stream#2について記述されている 3セットの pts_change_pointおよび DynamicInfoO を示している。
[0640] なお、図 42上側では、 1番目のビデオストリーム stream#0につ!/、て記述されて!、る 2 セットの pts_change_pointおよび DynamicInfoOの他に、そのビデオストリーム stream#0 につ 、て、図 26のクリップ情報ファイル" 00003.CLP"に記述されて!、る stream_id(=0x E0), private— stream— ια(=0χ00), number— of— DynamicInfo(=2)も、図不し飞ある。同様に、 図 42下側でも、 3番目のオーディオストリーム stream#2について記述されている 3セッ トの pts_change_pointおよび DynamicInfoOの他に、そのオーディオストリーム stream#2 につ 、て、図 26のクリップ情報ファイル" 00003.CLP"に記述されて!、る stream_id(=0x BD), private— stream— id、=0x00), number_of_DynamicInfo(=3)b ^ |≤3 してある。
[0641] 図 42上側において、ビデオストリーム stream#0について記述されている 2セットの pt s_change_pointおよび DynamicInfoOのうちの 1セット目では、 pts_change_pointが 90,000 になっており、 DynamicInfoOの display_aspect_ratio (図 13)力 4:3'になっている。さら に、その 2セット目では、 pts_change_pointが 54,090,000になっており、 DynamicInfoOの display— aspect— ratio 16:9'になって!/、る。
[0642] 一方、図 42下側において、オーディオストリーム stream#2について記述されている 3セットの pts— change— pointおよび DynamicInfoOのつちの 1セット目では、 pts— change— poi ntが 90,000になっており、 DynamicInfoOの channeLassignment (図 13)が' Dual'になつ ている。さらに、その 2セット目では、 pts_change_pointが 27,090,000になっており、 Dyn amicInfoOの channeLassignmentが' Stereo'になっている。また、その 3セット目では、 pt s— change— point力 32, 490, 000になつており、 DynamicInfoOの channel— assignment Oua 1 'になっている。
[0643] 例えば、いま、図 30のステップ S125において、クリップストリームファイル" 00003.PS "の、 OxEOとなっている streamjdで特定される 1番目のビデオストリーム stream#0と、 Ox BDとなっている streamjdおよび 0x00となっている private_stream_idで特定される 3番 目のオーディオストリーム streamsと力 再生対象のストリームとして決定されたとする
[0644] この場合、プレイヤ制御モジュール 212は、 OxEOとなっている streamjdで特定され るビデオストリーム stream#0につ!/、て記述されて!、る図 42上側の 2セットの pts_change _pointおよび DynamicInfoOと、 OxBDとなって 、る streamjdおよび 0x00となって ヽる priv ate_stream_idで特定されるオーディオストリーム stream#2につ!/、て記述されて!、る図 4 2下側の 3セットの pts_change_pointおよび DynamicInfoOとの中の pts_change_pointを 調査し、初期値を認識する。
[0645] 即ち、 OxEOとなって!/、る streamjdで特定されるビデオストリーム stream#0につ!/、て記 述されている図 42上側の 2セットの pts_change_pointおよび DynamicInfoOのうちの 1セ ット目では、 pts_change_pointが 90,000になっている。そして、この 90,000という時刻は 、ビデオストリーム stream#0が多重化されて!/、るクリップストリームファイル" 00003.PS" に対応する図 26のクリップ情報ファイル" 00003.CLP"において、クリップストリームファ ィル" 00003.PS"の先頭の時刻を表す presentation_start_timeに記述されている時刻 9 0,000に一致する。
[0646] 同様に、 OxBDとなって 、る streamjdおよび 0x00となって 、る private_stream_idで特 定されるオーディオストリーム stream#2について記述されている図 42下側の 3セットの pts— change— pointおよび DynamicInfoOのつちの 1セット目では、 pts— change— pointが 90,0 00になっている。そして、この 90,000という時刻は、オーディオストリーム stream#2が多 重化されているクリップストリームファイル" 00003.PS"に対応する図 26のクリップ情報 ファイル" 00003.CLP"において、クリップストリームファイル" 00003.PS"の先頭の時刻 を表す presentation_start_timeに記述されている時刻 90,000に一致する。
[0647] プレイヤ制御モジュール 212は、クリップストリームファイル" 00003.PS"の先頭の時 刻を表す presentation_start_timeに記述されている時刻 90,000に一致する pts_change_ pointを、初期値として認識する。従って、図 42上側の 2セットの pts_change_pointおよ び DynamicInfoOのうちの 1セット目の pts_change_pointと、図 42下側の 3セットの pts_ch ange_pointおよび DynamicInfoOのうちの 1セット目の pts_change_pointが、初期値として 認識される。
[0648] そして、プレイヤ制御モジュール 212は、クリップストリームファイル" 00003.PS"の再 生が開始される前に(図 30のステップ S 126で)、初期値として認識した pts_change_p ointとセットになっている DynamicInfoOにしたがって、対応するエレメンタリストリームの 出力属性を指示する。
[0649] 即ち、 OxEOとなって!/、る streamjdで特定されるビデオストリーム stream#0につ!/、ては 、図 42上側で、初期値である 90,000になって!/、る pts_change_pointとセットになって!/ヽ る DynamicInfoOにおいて、 display_aspect_ratioが' 4:3'になっている。この場合、プレイ ャ制御モジュール 212は、 display_aspect_ratioが' 4:3'になっている旨、即ち、ビデオ ストリーム stream#0が、 4 : 3のアスペクト比のビデオデータである旨の出力属性の情 報を、グラフィクス処理モジュール 219を制御する。
[0650] また、 OxBDとなって 、る streamjdおよび 0x00となって 、る private_stream_idで特定さ れるオーディオストリーム stream#2については、図 42下側で、初期値である 90,000に なつて V、る pts— change— pointとセットになって 、る DynamicInfoOにお ヽ飞、 channel—assi gnmentが' Dual'になっている。この場合、プレイヤ制御モジュール 212は、 channel.as signmentが' Dual'になっている旨、即ち、オーディオストリーム stream#2が、デュアノレ のオーディオデータである旨の出力属性の情報を、オーディオ出力モジュール 221 に供給する。
[0651] ここで、図 30のステップ S126では、以上のような初期値としての pts_change_pointを 対象とした出力属性の制御処理が行われる。
[0652] その後、プレイヤ制御モジュール 212は、ビデオストリーム stream#0についての図 4 2上側の 2つの pts_change_pointである 90,000および 54,090,000と、オーディオストリー ム stream#2についての図 42下側の 3つの pts_change_pointである 90,000, 27,090,000 、および 32,490,000のうちの、初期値 90,000以外の時刻である {27,090,000}, {32,490, 000}, {54,090,000}を、「DynamicInfo0処理」の属性の時刻である旨とともに、デコード 制御モジュール 214に渡す (ステップ S320)。
[0653] デコード制御モジュール 214は、プレイヤ制御モジュール 212からの、 「DynamicInf o()処理」の属性の時刻 {27,090,000}, {32,490,000}, {54,090,000}を受信し、さらに、ビ デォストリーム stream#0およびオーディオストリーム stream#2の再生(クリップストリーム ファイル" 00003.PS"を再生する 2番目の PlayList#lの PlayItem#0の再生)の開始後、 計時部 214Aによって計時されている現在時刻の監視を開始する。
[0654] そして、デコード制御モジュール 214は、現在時刻が、「DynamicInfo0処理」の属性 の時刻 {27,090,000}, {32,490,000}, {54,090,000}のうちの!/、ずれかに一致した場合、 その現在時刻と一致した「DynamicInfoO処理」の属性の時刻である Dynamiclnfo時刻 を、プレイヤ制御モジュール 212に供給する(ステップ S321)。
[0655] 即ち、例えば、現在時刻が、 27,090,000になったとすると、デコード制御モジュール 214は、「DynamicInfoO処理」の属性の時刻のうちの、現在時刻と一致する 27,090,00 0を、 Dynamiclnfo時刻として、プレイヤ制御モジュール 212に供給する
[0656] プレイヤ制御モジュール 212は、デコード制御モジュール 214からの Dynamiclnfo時 刻である 27,090,000を受信し、ビデオストリーム stream#0についての図 42上側の 2つ の pts_change_pointと、オーディオストリーム stream#2につ 、ての図 42下側の 3つの pt s_change_pointとの中から、 Dynamiclnfo時刻である 27,090,000に一致する pts_change_ pointを調査し、その 27,090,000に一致する pts_change_pointとセットになっている Dyna miclnfo0、即ち、オーディオストリーム stream#2についての図 42下側の 2番目の Dyna midnfoOを、処理対象 DynamidnfoOとして認識する(ステップ S322)。
[0657] 処理対象 DynamidnfoOが、ビデオストリームにつ 、ての DynamidnfoOである場合、 プレイヤ制御モジュール 212は、処理対象 DynamidnfoOに記述されている出力属性 を、グラフィクス処理モジュール 219に供給する(ステップ S323)。また、処理対象 Dy namicInfoOが、オーディオストリームについての DynamidnfoOである場合、プレイヤ制 御モジュール 212は、処理対象 DynamidnfoOに記述されている出力属性を、オーデ ィォ出力モジュール 221に供給する(ステップ S323)。
[0658] グラフィクス処理モジュール 219は、プレイヤ制御モジュール 212から出力属性が 供給されると、その出力属性にしたがって、ビデオデータの出力の制御を開始する( ステップ S324)。
[0659] 即ち、グラフィクス処理モジュール 219は、例えば、プレイヤ制御モジュール 212か らの出力属性が表す、ビデオデータのアスペクト比の指示 (display_aspect_ratio (図 13 ))と、図 1のビデオ出力端子 120に接続されたビデオ出力装置のアスペクト比とに基 づいて、ビデオ出力モジュール 220に出力するビデオデータのアスペクト比の変換を 行う。
[0660] 具体的には、例えば、ビデオ出力装置のアスペクト比が 16:9である場合において、 出力属性としてのビデオデータのアスペクト比の指示が 4:3のアスペクト比を表してい るときには、グラフィクス処理モジュール 219は、ビデオ出力モジュール 220に出力す るビデオデータを、横方向にスクイーズ処理し、左右に黒味を入れて出力する。また 、例えば、ビデオ出力装置のアスペクト比が 4:3である場合において、出力属性として のビデオデータのアスペクト比の指示が 16:9のアスペクト比を表しているときには、グ ラフイクス処理モジュール 219は、ビデオ出力モジュール 220に出力するビデオデー タを、縦方向にスクイーズ処理し、上下に黒味を入れて出力する。さら〖こ、例えば、ビ デォ出力装置のアスペクト比と、出力属性としてのビデオデータのアスペクト比の指 示が表すアスペクト比と力 いずれも、 4:3や 16:9で、同一である場合、グラフィクス処 理モジュール 219は、ビデオ出力モジュール 220に出力するビデオデータを、スクイ ーズ処理することなぐそのまま出力する。
[0661] ここで、図 42上側において、 OxEOとなっている streamjdで特定されるビデオストリー ム stream#0について記述されている 2セットの pts_change_pointおよび DynamicInfoOに よれば、ビデオストリーム stream#0の再生開始時である時刻 90,000から、時刻 54,090, 000の直前までは、ビデオストリーム stream#0から、 4 : 3のアスペクト比のビデオデータ が得られる。そして、時刻 54,090,000以後は、ビデオストリーム stream#0から、 16 : 9の アスペクト比のビデオデータが得られる。
[0662] 従って、例えば、図 1のビデオ出力端子 120に接続されたビデオ出力装置のァスぺ タト比が 4:3であるとすると、グラフィクス処理モジュール 219では、時刻 90,000から時 刻 54,090,000の直前までは、ビデオストリーム stream#0から得られる 4 : 3のアスペクト 比のビデオデータ力 そのまま 4: 3のアスペクト比のビデオ出力装置に供給されて表 示される。
[0663] そして、時刻 54,090,000以後は、ビデオストリーム stream#0から得られる 16: 9のァス ぺクト比のビデオデータ力 縦方向にスクイーズ処理され、さらに、上下に黒味が入つ た 4: 3のアスペクト比のビデオ信号に変換され、 4: 3のアスペクト比のビデオ出力装 置に供給されて表示される。
[0664] 一方、オーディオ出力モジュール 221は、プレイヤ制御モジュール 212から出力属 性が供給されると、その出力属性にしたがって、オーディオデータの出力の制御を開 始する(ステップ S324)。
[0665] 即ち、オーディオ出力モジュール 221は、例えば、プレイヤ制御モジュール 212か らの出力属性が表す、オーディオデータのチャネル割り当ての指示 (channeLassignm ent (図 13) )と、ユーザがリモコンを操作することによって入力インターフェース 115 ( 図 1)を介してプレイヤ制御モジュール 212から供給される音声出力モードとに基づ いて、オーディオデコーダ制御モジュール 217からのオーディオデータを処理し、ォ 一ディォ出力端子 121 (図 1)に出力する。
[0666] 具体的には、例えば、出力属性が表すオーディオデータのチャネル割り当ての指 示が、左チャネルが「主音声」のオーディオデータで、右チャネルの「副音声」のォー ディォデータであるデュアル (Dual) (ニケ国語)モードを表して 、る場合、オーディオ 出力モジュール 221は、プレイヤ制御モジュール 212から供給される音声出力モード にしたがって、オーディオデコーダ制御モジュール 217からのオーディオデータを処 理して、オーディオ出力端子 121に出力する。
[0667] 即ち、音声出力モードとして、例えば、「主音声」が指定されているときには、オーデ ィォ出力モジュール 221は、オーディオデコーダ制御モジュール 217からのオーディ ォデータのうちの左チャネルのオーディオデータを、右チャネルのオーディオデータ としてコピーし、その左チャネルと右チャネルのオーディオデータ(「主音声」のォー ディォデータ)を、オーディオ出力端子 121に出力する。また、音声出力モードとして 、「副音声」が指定されているときには、オーディオ出力モジュール 221は、オーディ ォデコーダ制御モジュール 217からのオーディオデータのうちの右チャネルのォー ディォデータを、左チャネルのオーディオデータとしてコピーし、その左チャネルと右 チャネルのオーディオデータ(「副音声」のオーディオデータ)を、オーディオ出力端 子 121に出力する。さらに、音声出力モードとして、「主 ·副」が指定されているときに は、オーディオ出力モジュール 221は、オーディオデコーダ制御モジュール 217から のオーディオデータを、そのまま、オーディオ出力端子 121に出力する。
[0668] また、例えば、出力属性が表すオーディオデータのチャネル割り当ての指示が、ス テレオ (Stereo)モードを表している場合、オーディオ出力モジュール 221は、プレイヤ 制御モジュール 212から供給される音声出力モードにかかわらず、オーディオデコー ダ制御モジュール 217からのオーディオデータを、そのまま、オーディオ出力端子 12 1に出力する。
[0669] ここで、図 42下側にお!、て、 OxBDとなって!/、る streamjdおよび 0x00となって!/、る pri vate_stream_idで特定されるオーディオストリーム stream#2につ 、て記述されて 、る 3 セットの pts— change— pointおよび DynamicInfoOによれば、オーディオストリーム stream# 2の再生開始時である時刻 90,000から、時刻 27,090,000の直前までは、オーディオス トリーム stream#2から、デュアルのオーディオデータが得られる。また、時刻 27,090,00 0から、時刻 32,490,000の直前までは、オーディオストリーム stream#2から、ステレオの オーディオデータが得られ、時刻 32,490,000以後は、オーディオストリーム stream#2 から、デュアルのオーディオデータが得られる。
[0670] 従って、例えば、音声出力モードとして、「主音声」が指定されているとすると、ォー ディォ出力出力モジュール 221では、時刻 90,000から、時刻 27,090,000の直前まで は、オーディオストリーム stream#2から得られるデュアルのオーディオデータのうちの 左チャネルのオーディオデータ力 右チャネルのオーディオデータとしてコピーされ、 その左チャネルと右チャネルのオーディオデータ力 オーディオ出力端子 121に出 力される。
[0671] また、時刻 27,090,000から、時刻 32,490,000の直前までは、オーディオストリーム str eam#2から得られるステレオのオーディオデータ力 そのまま、オーディオ出力端子 1 21に出力される。
[0672] そして、時刻 32,490,000以後は、オーディオストリーム stream#2から得られるデュア ルのオーディオデータのうちの左チャネルのオーディオデータが、右チャネルのォー ディォデータとしてコピーされ、その左チャネルと右チャネルのオーディオデータが、 オーディオ出力端子 121に出力される。
[0673] 以上のように、出力属性の制御処理では、クリップストリームファイルに多重化され て 、るエレメンタリストリームごとに、そのエレメンタリストリームの再生時刻を表す pts_c hange_pointと、そのエレメンタリストリームの出力属性を含む DynamicInfoOとのセットを 0セット以上含むクリップ情報ファイル ClipO (図 10)の記述に基づき、再生中のエレメ ンタリストリームの再生時刻力 pts_change_pointに一致するか否かが判定される。そ して、再生中のエレメンタリストリームの再生時刻力 pts_change_pointに一致する場 合、その pts_change_pointとセットになっている DynamicInfoOが認識され、その認識さ れた DynamicInfoOに含まれる出力属性にしたがって、再生中のエレメンタリストリーム の出力が制御される。従って、エレメンタリストリームの再生時刻と出力属性に応じて 、そのエレメンタリストリームの出力を制御することが可能となる。
[0674] [字幕表示制御処理]
次に、図 43のフローチャートを参照して、字幕ストリームに対応する字幕データの 表示を制御する字幕表示制御処理につ!、て説明する。
[0675] PlayListO (図 5) (の PlayltemO)の再生が開始されると、プレイヤ制御モジュール 21 2は、ステップ S341において、グラフィクス処理モジュール 219に対する字幕データ の表示方式の指示を初期化する。即ち、プレイヤ制御モジュール 212は、字幕デー タの表示方式をデフォルトの表示方式とするように、グラフィクス処理モジュール 219 を制御する。なお、ステップ S341で行われる表示方式の指示の初期化は、図 30の 1 27で説明した表示方式の指示の初期化に対応する。
[0676] ステップ S341の処理後は、ステップ S342に進み、プレイヤ制御モジュール 212は 、ユーザがリモコンを操作することにより入力インターフェース 115から、字幕データ の表示について、新たな表示方式の指示があった力どうかを判定する。
[0677] ステップ S342にお 、て、新たな表示方式の指示があつたと判定された場合、ステツ プ S343に進み、プレイヤ制御モジュール 212は、字幕ストリーム(に対応する字幕デ ータ)を、現在再生しているかどうかを判定する。
[0678] ステップ S343において、字幕ストリームが再生されていないと判定された場合、ス テツプ S342に戻る。
[0679] また、ステップ S343において、字幕ストリームが再生されていると判定された場合、 ステップ S345に進み、プレイヤ制御モジュール 212は、新たな表示方式の指示が、 デフォルトの表示方式の指示であるかどうかを判定する。ステップ S343において、新 たな表示方式の指示が、デフォルトの表示方式の指示であると判定された場合、ステ ップ S341に戻り、上述したように、プレイヤ制御モジュール 212は、字幕データの表 示方式をデフォルトの表示方式とするように、グラフィクス処理モジュール 219を制御 する。
[0680] 一方、ステップ S345において、新たな表示方式の指示が、デフォルトの表示方式 の指示でないと判定された場合、即ち、新たな表示方式の指示が、例えば、字幕デ ータを拡大や縮小して表示する、あるいは明るさを変えて見やすくする等、デフォルト でない表示方式の指示である場合、ステップ S346に進み、プレイヤ制御モジュール 212は、現在再生している字幕ストリームが多重化されたクリップストリームファイルに 対応するクリップ情報ファイル ClipO (図 10)の StaticInfoO (図 12)のうちの、現在再生 している字幕ストリームについての StaticInfoOを取得し、ステップ S347に進む。
[0681] ステップ S347では、プレイヤ制御モジュール 212は、ステップ S346で取得した Sta tidnfoOの configurable_flagを判定する。
[0682] ステップ S347において、 configurable_flagが、字幕データの表示方式の変更を許可 しない旨の 0になっていると判定された場合、ステップ S348に進み、プレイヤ制御モ ジュール 212は、グラフィクス処理モジュール 219を制御することにより、出力ビデオ データに、字幕データの表示方式を変更することができない旨のエラーメッセージを オーバーレイさせ、ステップ S342〖こ戻る。これ〖こより、エラーメッセージが表示される
[0683] 一方、ステップ S347にお!/、て、 configurablejlag力 字幕データの表示方式の変更 を許可する旨の 1になっていると判定された場合、ステップ S349に進み、プレイヤ制 御モジュール 212は、ユーザがリモコンを操作することにより入力インターフェース 11 5から供給された新たな表示方式の指示を、グラフィクス処理モジュール 219に供給 して、ステップ S350に進む。
[0684] ステップ S350では、グラフィクス処理モジュール 219は、字幕デコーダ制御モジュ ール 218から供給される字幕データを、直前のステップ S349でプレイヤ制御モジュ ール 212から供給された表示方式の指示にしたがって拡大または縮小等あるいは明 るさを変える等の処理を開始し、ステップ S342に戻る。これにより、字幕データは、ュ 一ザがリモコンを操作することによって指示した表示方式にしたがった表示サイズや
、表示位置、表示色等で表示される。
[0685] 一方、ステップ S342にお 、て、新たな表示方式の指示がなかったと判定された場 合、ステップ S351に進み、プレイヤ制御モジュール 212は、図 31で説明した Playlte m0の乗り換えが行われたかどうかを判定し、行われていないと判定した場合、ステツ プ S342に戻る。
[0686] また、ステップ S351にお!/、て、 PlayltemOの乗り換えが行われたと判定された場合、 ステップ S341に戻り、上述したように、プレイヤ制御モジュール 212は、字幕データ の表示方式をデフォルトの表示方式とするように、グラフィクス処理モジュール 219を 制御する。即ち、この場合、 PlayltemOの乗り換えが行われたときには、字幕データの 表示方式は、デフォルトの表示方式に戻される。
[0687] 以上のように、字幕表示制御処理にお!、ては、字幕ストリームの configurable _flagが 、表示方式の変更を許可する旨の 1になっている場合にのみ、その字幕ストリームに 対応する字幕データの表示方式が、例えば、ユーザがリモコンを操作することにより 入力される表示方式の指示に応じて変更される。
[0688] 従って、例えば、図 26に示したクリップ情報ファイル" 00001.CLP"によれば、対応す るクリップストリームファイル" 00001.PS"に多重化されている 4本のエレメンタリストリー ムのうちの 3本目のエレメンタリストリームである字幕ストリーム stream#2についての con figurable_flagは、表示方式の変更を許可しない旨の 0になっているので、その字幕スト リーム streamsが表示されているときに、ユーザが字幕の表示を変更するようにリモコ ンを操作しても、その表示は変更されない。
[0689] 一方、例えば、クリップストリームファイル" 00001.PS"に多重化されている 4本のエレ メンタリストリームのうちの 4本目のエレメンタリストリームである字幕ストリーム stream#3 につ 、ての configurable _flagは、表示方式の変更を許可する旨の 1になって!/、るので 、その字幕ストリーム stream#3が表示されているときに、ユーザが字幕の表示を変更 するようにリモコンを操作すると、その操作に応じて、字幕の表示サイズ等が変更され る。
[0690] 即ち、例えば、いま、図 25の 1番目の PlayList#0の 1番目の PlayItem#0にした力^、、 クリップストリームファイル" 00001.PS"が再生されているとする。また、図 26でクリップ 情報ファイル" 00001.CLP"について説明したように、クリップストリームファイル" 00001. PS"に多重化されて!/、る 4本のエレメンタリストリームのうちの、 3本目と 4本目が字幕ス トリームであるが、その 3本目の字幕ストリーム stream#2と、 4本目の字幕ストリーム stre am#3のうちの、例えば、 3本目の字幕ストリーム stream#2が、現在再生されているとす る。
[0691] ユーザが、リモコンを操作することにより、字幕の表示方式の指示を入力すると (ス テツプ S342)、その表示方式の指示は、入力インターフェース 115 (図 1)力もプレイ ャ制御モジュール 212に供給される。プレイヤ制御モジュール 212は、表示方式の 指示が供給されると、再生中の字幕ストリームに対応する StatidnfoO (図 10)を、クリツ プ情報ファイル力も探し出す (ステップ S346)。
[0692] 即ち、いまの場合、再生中の字幕ストリームは、クリップストリームファイル" 00001.PS "に多重化されている 3本目の字幕ストリーム stream#2であり、プレイヤ制御モジユー ル 212は、対応するクリップ情報ファイル" 00001. CLP"から、 3本目の字幕ストリーム st ream#2につ!/、ての StatidnfoOを探し出す。
[0693] さらに、プレイヤ制御モジュール 212は、図 26において 3本目の字幕ストリーム strea m#2につ!/、ての StatidnfoOに記述されて 、る、 0になって!/、る configurable_flagを判定 し (ステップ S347)、これにより、 3本目の字幕ストリーム stream#2については、表示方 式の変更が許可されて 、な 、ことを認識する。
[0694] この場合、プレイヤ制御モジュール 212は、再生中の字幕ストリーム(に対応する字 幕データ)が拡大縮小等に対応していないと判断し、グラフィクス処理モジュール 21 9を制御することにより、その旨のエラーメッセージを生成させ (ステップ S348)、ビデ ォデータにオーバーレイして出力させる。
[0695] 一方、クリップストリームファイル" 00001.PS"に多重化されている 4本のエレメンタリス トリームの 3本目の字幕ストリーム stream#2と、 4本目の字幕ストリーム stream#3のうち の、 3本目の字幕ストリーム stream#2ではなぐ 4本目の字幕ストリーム stream#3力 現 在再生されて 、る場合には、ユーザがリモコンを操作することによって表示方式の指 示の供給を受けたプレイヤ制御モジュール 212は、対応するクリップ情報ファイル" 00 001.CLP"から、 4本目の字幕ストリーム stream#3についての StatidnfoOを探し出す。
[0696] さらに、プレイヤ制御モジュール 212は、図 26において 4本目の字幕ストリーム strea m#3につ!/、ての StatidnfoOに記述されて 、る、 1になって 、る configurable_flagを判定 し (ステップ S347)、これにより、 4本目の字幕ストリーム stream#3については、表示方 式の変更が許可されて 、ることを認識する。
[0697] この場合、プレイヤ制御モジュール 212は、再生中の字幕ストリーム(に対応する字 幕データ)が拡大縮小等に対応していると判断し、ユーザがリモコンを操作することに よって供給された表示方式の指示を、グラフィクス処理モジュール 219に供給する (ス テツプ S349)。
[0698] これにより、その後、グラフィックス処理制御モジュール 219は、プレイヤ制御モジュ ール 212からの表示方式の指示にした力^、、字幕デコーダ制御モジュール 218から の字幕データを拡大または縮小等し、ビデオデコーダ制御モジュール 216からのビ デォデータにオーバーレイして出力する。
[0699] なお、プレイヤ制御モジュール 212は、 PlayListOの最初の PlayltemOの再生開始時 に、グラフィクス処理モジュール 219に対する字幕データの表示方式の指示を初期 化する(ステップ S341)。即ち、プレイヤ制御モジュール 212は、字幕データの表示 方式をデフォルトの表示方式とするように、グラフィクス処理モジュール 219を制御す る。
[0700] さらに、プレイヤ制御モジュール 212は、 PlayltemOの乗り換え時にも、グラフィクス 処理モジュール 219に対する字幕データの表示方式の指示を初期化する (ステップ S341, S351)。
[0701] 但し、 PlayltemOの乗り換え時においては、その後に新たに再生される PlayltemOに したがって再生される新たな字幕ストリームにつ 、ての configurable_flagを調査し、 con figurable_flagが 0である場合には、グラフィクス処理モジュール 219に対する字幕デー タの表示方式の指示を初期化し、 configurable_flagが 1である場合には、グラフィクス 処理モジュール 219に対する表示方式の指示を、 PlayltemOの乗り換え前のまま維持 するようにすることが可能である。
[0702] また、図 43の字幕表示制御処理では、ユーザがリモコンを操作することにより、新た な表示方式の指示が入力された場合に、その新たな表示方式の指示を、グラフィクス 処理モジュール 219に供給するようにしたが(ステップ S349)、表示方式の指示は、 例えば、メモリ 113 (図 1)を構成する不揮発性メモリに記憶し、その不揮発性メモリ〖こ 記憶された表示方式の指示を、グラフィクス処理モジュール 219に供給するようにす ることが可能である。
[0703] 即ち、例えば、図 1のディスク装置の初期設定として、不揮発性メモリに、ユーザ設 定の表示方式の指示を記憶させておき、ユーザがリモコンを操作することにより、新 たな表示方式の指示が入力された場合には、不揮発性メモリに記憶された表示方式 の指示を、新たな表示方式の指示に更新する一方、その不揮発性メモリに記憶され た表示方式の指示を、グラフィクス処理モジュール 219に供給するようにすることが可 能である。この場合、不揮発性メモリには、前回の再生終了時における表示方式の 指示が保持されるので、次回の PlayListOの再生時に、ユーザがリモコンを操作するこ とにより、前回の再生終了時における表示方式の指示を入力しなくても、その表示方 式で、字幕データの表示が開始される。
[0704] なお、この場合、不揮発性メモリに記憶させる表示方式の指示には、例えば、字幕 データを拡大または縮小するときの拡大率または縮小率等が含まれるものとする。
[0705] 以上のように、字幕表示制御処理によれば、クリップ情報ファイル ClipO (図 10)に含 まれる、エレメンタリストリームごとの、そのエレメンタリストリームの再生中に変化しな Vヽ StaticInfoOのうちの、字幕データの StaticInfoOが取得され、その StaticInfoOに含ま れる、字幕データの表示をデフォルトの表示方式から変更することを許可するか否か を表す configurable_flagに基づき、再生中の字幕データの表示をデフォルトの表示方 式力も変更することが許可されているか否かが判定される。そして、再生中の字幕デ ータの表示をデフォルトの表示方式力も変更することが許可されて 、る場合には、字 幕データの表示方式の変更の指示にしたがって、その字幕データの表示処理、即ち 、例えば、字幕データを拡大または縮小、あるいは表示色を変更する等して表示する 処理が行われる。従って、字幕データの表示方式の変更を制御することができる。
[0706] [キヤプチヤ制御処理]
次に、図 44のフローチャートを参照して、ビデオストリームに対応するビデオデータ のキヤプチャを制御するキヤプチャ制御処理について説明する。なお、図 44には、キ ャプチヤ制御処理を説明するフローチャートとともに、そのキヤプチャ制御処理によつ てキヤプチヤされたビデオデータを 2次利用する処理の例であるバックグラウンド Zス クリーンセーバ処理を説明するフローチャートも、図示してある。
[0707] キヤプチャ制御処理は、例えば、ユーザがリモコンを操作することにより、ビデオデ ータのキヤプチャを指示するキヤプチャ指示力 入力インターフェース 115 (図 1)を 介して、プレイヤ制御モジュール 212に供給されると開始される。
[0708] 即ち、キヤプチャ制御処理では、まず最初に、ステップ S371において、プレイヤ制 御モジュール 212が、ビデオストリームを再生中であるかどうかを判定し、再生中でな V、と判定した場合、キヤプチャ制御処理は終了する。
[0709] 一方、ステップ S371において、ビデオストリームを再生中であると判定された場合、 ステップ S372に進み、プレイヤ制御モジュール 212は、再生中のビデオストリームに 対応する PlayListO (図 5)から、 capture_enable_flag_PlayListを取得するとともに、再生 中のビデオストリームに対応するクリップ情報ファイル ClipO (図 10)から、 capture.ena ble_flag_Clipを取得する。
[0710] ここで、 PlayListOにおける capture_enable_flag_PlayListは、図 5で説明したように、そ の PlayListOによって再生されるビデオストリームに対応するビデオデータ(PlayListO に属するビデオデータ)の 2次利用を許可するか否かを表す。また、クリップ情報ファ ィル ClipOにおける capture_enable _flag_Clipは、図 10で説明したように、そのクリップ情 報ファイル ClipOに対応するクリップストリームファイルに格納されているビデオストリー ムに対応するビデオデータの 2次利用を許可する力否かを表す。
[0711] ステップ S372の処理後は、ステップ S373に進み、プレイヤ制御モジュール 212は 、直前のステップ S373で取得された capture_enable_flag_PlayListと capture_enable_fla g_Clipとに基づき、キヤプチャ指示が入力インターフェース 115 (図 1)力も入力された ときに再生されていたビデオデータのピクチャのキヤプチヤの可否を判定する。
[0712] ステップ S373において、キヤプチャ指示が入力インターフェース 115から入力され たときに再生されていたビデオデータのピクチャのキヤプチヤが不可であると判定さ れた場合、即ち、直前のステップ S373で取得された capture_enable_flag_PlayListまた は capture_enable_flag_Clipのうちの少なくとも一方力 ビデオデータの 2次利用を許可 しない旨の 0になっている場合、ステップ S374に進み、プレイヤ制御モジュール 212 は、グラフィクス処理モジュール 219を制御することにより、ビデオデータのキヤプチャ が不可である旨のエラーメッセージをオーバーレイさせ、キヤプチャ制御処理を終了 する。これにより、エラーメッセージが表示される。
[0713] 一方、ステップ S373において、キヤプチャ指示が入力インターフェース 115から入 力されたときに再生されていたビデオデータのピクチャのキヤプチヤが可能であると 判定された場合、即ち、直前のステップ S373で取得された capture_enable_flag_PlayL istおよび capture_enable_flag_Clipの両方力 ビデオデータの 2次利用を許可する旨の 1になっている場合、ステップ S375に進み、プレイヤ制御モジュール 212は、キヤプ チヤ指示が入力インターフェース 115から入力されたときに再生されていたビデオデ 一タのピクチャのキヤプチヤの指示を、グラフィクス処理モジュール 219に供給し、ス テツプ S376に進む。
[0714] ステップ S376では、グラフィクス処理モジュール 219は、プレイヤ制御モジュール 2 12からのキヤプチヤの指示にした力^、、ビデオデコーダ制御モジュール 216からのビ デォデータのピクチャをキヤプチヤし、メモリ 113 (図 1)に記憶させて、キヤプチャ制 御処理を終了する。なお、 capture_enable_flagが複数ビット構成になっており、使用条 件の制約が行われて 、る場合にはこの時点で対応が行われる。すなわちキヤプチャ した画像の大きさに制限がある場合には、この時点で縮小した画像がキヤプチヤされ る。
また使用するアプリケーションに制約がある場合にはその旨を知らせるフラグが同時 に記録される。
[0715] 以上のように、キヤプチャ制御処理では、ユーザからのキヤプチャ指示があつたとき に再生されて ヽるビデオストリームに対応する PlayListO (図 5)とクリップ情報ファイル ClipO (図 10)それぞれの capture— enable—flag— PlayListと capture— enable—flag— Clipとの餘 理積をとつて、その論理積が 1である場合、即ち、 capture_enable_flag_PlayListと captur e_enable_flag_Clip力 いずれも、 2次利用を許可する 1になっている場合にのみ、ビデ ォデータの 2次利用が可能であると判断され、キヤプチヤが行われる。
[0716] 従って、例えば、図 25における 1番目の PlayList#0の 1番目の PlayItem#0にしたがつ て、ビデオストリームの再生、即ち、クリップストリームファイル" 00001.PS"に多重化さ れたビデオストリームの再生が行われている場合に、ユーザからのキヤプチャ指示が あったときには、 1番目の PlayList#0における capture_enable_flag_PlayListは 1であり、 その 1番目の PlayItem#0によって再生されるクリップストリームファイル" 00001.PS"に 対応する図 26のクリップ情報ファイル" 00001.CLP"における capture_enable_flag_Clip は 1であるから、再生中のビデオデータ(クリップストリームファイル" 00001.PS"に多重 化されたビデオストリームに対応するビデオデータ)の 2次利用は可能であると判断さ れ、キヤプチヤが行われる。
[0717] また、例えば、図 25における 1番目の PlayList#0の 2番目の Playltem#lにしたがって 、ビデオストリームの再生、即ち、クリップストリームファイル" 00002.PS"に多重化され たビデオストリームの再生が行われて 、る場合に、ユーザ力ものキヤプチャ指示があ つたときには、 1番目の PlayList#0における capture_enable_flag_PlayListは 1であり、そ の 2番目の Playltem#lによって再生されるクリップストリームファイル" 00002.PS"に対 応する図 26のクリップ情報ファイル" 00002.CLP"における capture_enable_flag_Clipは 0 であるから、再生中のビデオデータ(クリップストリームファイル" 00002.PS"に多重化さ れたビデオストリームに対応するビデオデータ)の 2次利用は不可であると判断され、 キヤプチヤが行われな 、。
[0718] さらに、例えば、図 25における 2番目の PlayList#lの PlayItem#0にしたがって、ビデ ォストリームの再生、即ち、クリップストリームファイル" 00003.PS"に多重化されたビデ ォストリームの再生が行われて 、る場合に、ユーザ力ものキヤプチャ指示があつたとき には、 2番目の PlayList#lにおける capture_enable_flag_PlayListは 0であり、 2番目の Pla yList#lの PlayItem#0によって再生されるクリップストリームファイル" 00003.PS"に対応 する図 26のクリップ情報ファイル" 00003.CLP"における capture_enable_flag_Clipは 1で ある力 、再生中のビデオデータ(クリップストリームファイル" 00003.PS"に多重化され たビデオストリームに対応するビデオデータ)の 2次利用は不可であると判断され、キ ャプチヤは行われない。
[0719] なお、この場合、 2番目の PlayList#lにおける capture_enable _flag_PlayListが 0である ことが確認された時点で、ビデオデータの 2次利用は不可であると判断することがで きるので、 2番目の PlayList#lの PlayItem#0によって再生されるクリップストリームフアイ ル" 00003.PS"に対応する図 26のクリップ情報ファイル" 00003.CLP"における capture_ enable_flag_Clipの確認は省略することができる。
[0720] キヤプチャ制御処理によってキヤプチヤされ、メモリ 113に記憶されたピクチャは、バ ックグラウンド Zスクリーンセーバ処理において 2次利用することができる。
[0721] バックグラウンド Zスクリーンセーバ処理は、例えば、プレイヤ制御モジュール 212 が動作している力 エレメンタリストリームの再生が行われていない状態、即ち、デイス クドライブ 102 (図 1)にディスク 101が挿入されていない状態、あるいはエレメンタリス トリームの再生が終了した状態となったときなどに行われる。
[0722] 即ち、バックグラウンド Zスクリーンセーバ処理では、ステップ S381において、プレ ィャ制御モジュール 212は、キヤプチャ制御処理によってメモリ 113に記憶されたピク チヤを表示するように、グラフィクス処理モジュール 219を制御する。グラフィクス処理 モジュール 219は、プレイヤ制御モジュール 212からの制御にした力^、、キヤプチャ 制御処理によってメモリ 113に記憶されたピクチャを表示させる。
[0723] ここで、グラフィクス処理モジュール 219にお!/、て、メモリ 113に記憶されたピクチャ を静止画で表示させれば、いわゆる壁紙 (バックグラウンド)が実現され、一定周期で 拡大や縮小、移動等しながら表示させれば、スクリーンセーバーが実現される。また、 キヤプチャ制御処理によってメモリ 113に記憶されたピクチャの表示を行うバックダラ ゥンド Zスクリーンセーバ処理は、プレイヤ制御モジュール 212ではなぐ他の独立し たアプリケーションによって行うことが可能である。
[0724] また、このときメモリ 113に記憶されたピクチャに使用制限を表すフラグが付加され ている場合にはその制限に従う。
[0725] 以上のように、ビデオアクセスユニット単位より大きな単位の、例えば、 PlayListOや P layltemOに対応するビデオデータの 2次利用を許可するか否かを表す、再生中のビ テオテータに对する capture— enable—flag— PlayListや capture— enable— flag— Clip力 S取得 れ、その capture— enable—flag— PlayListや capture— enable—flag— Clipに基づき、再生中のビ デォデータの 2次利用が許可されている力否かが判定される。そして、再生中のビデ ォデータの 2次利用が許可されていると判定された場合、再生中のビデオデータが キヤプチヤされ、そのキヤプチャされたビデオデータを利用したバックグラウンド Zスク リーンセーバ処理が実行される。従って、ビデオデータの 2次利用の制御が可能とな る。
[0726] なお、図 44のキヤプチャ制御処理では、 PlayListO (図 5)にお!/、て、 capture_enable— flag_PlayListを設けるとともに、 PlayltemOによって再生されるクリップストリームファイル に対応するクリップ情報ファイル ClipO (図 10)において、 capture_enable_flag_Clipを設 け、その capture— enable— flag— PlayListと capture— enable— flag— Clipとの両方を用 ヽて、 2 次利用の許可(可否)を判定するようにした力 PlayListO (図 5)において、 capture_en able_flag_PlayListを設けるだけ力、または、 PlayltemOによって再生されるクリップストリ ームファイルに対応するクリップ情報ファイル ClipO (図 10)において、 capture_enable_f lag—し lipを設ける 7こけにし飞、 capture— enable— flag— PlayListま 7こは capture— enable—flag—し lipの一方だけを用いて、 2次利用の可否を判定するようにすることも可能である。
[0727] また、図 44のキヤプチャ制御処理では、ステップ S376において、グラフィクス処理 モジュール 219力 プレイヤ制御モジュール 212からのキヤプチヤの指示にした力 Sい 、ビデオデコーダ制御モジュール 216からのビデオデータのピクチャ、即ち、 1つのピ クチャだけをキヤプチヤするようにした力 その他、複数のピクチャをキヤプチヤするこ とも可能である。つまり、ビデオデコーダ制御モジュール 216が出力する時系列の複 数のピクチャ(動画としての複数のピクチャのシーケンス)をキヤプチヤすることが可能 である。この場合、一度にキヤプチャされるピクチャの枚数は、例えば、あらかじめ決 めてお \こと力できる。め ヽは、 capture— enable— flag— PlayListA capture— enable— flag— C1 ipのビットを拡張して、その capture— enable— flag— PlayListや capture— enable— flag— Clipに、 一度にキヤプチャ可能なピクチヤの枚数の情報を含めるようにしても良い。
[0728] さらに、上述の場合には、ビデオデータの 2次利用を許可する力否かの利用許可情 報、 capture— enable— flag— PlayList, capture— enable— flag— Clipノ 、 PlayListOや、クリップ†青 報ファイル ClipOに記述し、その利用許可情報によって、 PlayListOによって再生され るビデオデータ全体や、クリップ情報ファイル ClipOに対応するクリップストリームフアイ ルに多重化されたビデオストリームに対応するビデオデータ全体についての 2次利用 の可否を判定するようにした力 利用許可情報は、その他の任意の単位のビデオデ ータについて記述し、その利用許可情報によって、任意の単位のビデデータについ ての 2次利用の可否を判定することが可能である。 [0729] 即ち、図 45は、利用許可情報が配置された private_stream2_PES_payloadOのシンタ タスを示しており、図 46は、利用許可情報が配置された aujnformationOのシンタクス を示している。
[0730] なお、図 45の private_stream2_PES_payloadOは、 video_stream_idの直前に、利用許 可情報としての capture_enable_flag_ps2が配置されて!、る他は、図 23における場合と 同様に構成されている。図 46の aujnformationOも、 pic_struct_copyの直前に、利用許 可情報としての capture_enable _flag_AUが配置されて!、る他は、図 24における場合と 同様に構成されている。
[0731] 図 45の private_stream2_PES_payloadOに配置された capture_enable_flag_ps2は、その private— stream2— PES— payloadO .む private— stream— 2の PE¾— packetO力ら、次の pnva te_stream_2の PES_packet0の直前までに配置されるビデオストリームに対応するビデ ォデータの 2次利用を許可するか否かを表す。従って、図 45の private_stream2_PES_ payloadOに配置された capture_enable_flag_ps2によれば、あるデコード開始可能点力 ら次のデコード開始可能点までの間のビデオデータにっ 、て、その 2次利用を許可 する力否かを判定することができる。
[0732] また、図 46の aujnformationOに配置された capture_enable_flag_AUは、その capture_ enable_flag_AUに対応するビデオアクセスユニットのビデオデータの 2次利用を許可 するか否かを表す。従って、図 46の aujnformationOに配置された capture_enable_flag_ AUによれば、ビデオアクセスユニット単位のビデオデータについて、即ち、ピクチャ 単位で、その 2次利用を許可するカゝ否かを判定することができる。
[0733] ここで、 PlayListO (図 5)における利用許可情報としての capture_enable_flag_PlayList 、クリップ情報ファイル ClipO (図 10)における利用許可情報としての capture_enable_fla g_Clip、 private_stream2_PES_payloadO (図 45)における利用許可情報としての capture _enable_flag_ps2, aujnformationO (図 46)における禾 lj用許可情報としての capture_ena ble_flag_AUは、そのうちの 2以上を重複して採用することが可能であり、この場合、あ るビデオデータのピクチャの 2次利用の可否は、その重複して採用される 2以上の利 用許可情報の論理積等に基づいて判定することができる。
[0734] また、図 46の aujnformationOが配置される図 23または図 45の private_stream2_PES _payload0を含む private_stream_2の PES_packetOは、図 36のステップ S211で説明し たように、バッファ制御モジュール 215 (図 3)のビデオ読み出し機能部 233が、バッフ ァ 215Aに記憶されたプログラムストリーム中力も探索する。従って、 capture_enable_fl ag— ps2が配置された図 45の private— stream2— PES— payloadOや、 capture— enable—flag—AU が配置された図 46の aujnformationOを採用する場合には、プレイヤ制御モジュール 212は、ビデオデータの 2次利用の可否を判定するにあたって、 capture_enable_flag_ ps2や capture_enable_flag_AUを、ビデオ読み出し機能部 233に問 、合わせる必要が ある。
[0735] なお、本実施の形態では、上述した一連の処理を、ソフトウェアによって行うこととし た力 上述した一連の処理は、専用のハードウェアにより行うこともできる。
[0736] また、本実施の形態では、ビデオデコーダ 116 (図 1)として、ハードウェアデコーダ を採用することとした力 ビデオデコーダ 116としては、ソフトウェアデコーダを採用す ることも可能である。オーディオデコーダ 117(図 1)についても、同様である。
[0737] さらに、本実施の形態では、字幕デコーダとして、ソフトウェアデコーダを採用するこ ととしたが、字幕デコーダとしては、ハードウェアデコーダを採用することも可能である

Claims

請求の範囲
[1] 符号化データを処理するデータ処理装置にぉ ヽて、
前記符号化データは、
所定の単位のビデオデータを符号ィ匕して得られる、アクセスユニット単位の符号 化ビデオデータと、
前記アクセスユニット単位の符号ィ匕ビデオデータにおける 1以上のデコード開始 可能点それぞれの直前に配置される、前記符号化ビデオデータのデコードに利用さ れる利用情報と
を含み、
前記利用情報は、その利用情報から次の利用情報までの間に配置されて!、る 1以 上の前記アクセスユニットそれぞれのサイズを表すサイズ情報を含み、
前記符号化データから、前記利用情報を探索する探索手段と、
前記符号化ビデオデータをデコードするビデオデコーダを制御するビデオデコー ダ制御手段力 の要求に応じて、前記利用情報に含まれる前記サイズ情報に基づき
、前記符号ィ匕データ力 前記アクセスユニット単位で前記符号ィ匕ビデオデータを読 み出し、前記ビデオデコーダに供給する供給手段と
を備えることを特徴とするデータ処理装置。
[2] 前記利用情報は、その利用情報から次の利用情報までの間に配置されている前記 アクセスユニットの数を表す数情報を、さらに含み、
前記供給手段は、前記利用情報に含まれる前記サイズ情報に基づき、前記符号化 データから前記アクセスユニット単位で前記符号化ビデオデータを読み出し、前記ビ デォデコーダに供給することを、前記利用情報に含まれる前記数情報が表す数だけ 繰り返す
ことを特徴とする請求項 1に記載のデータ処理装置。
[3] 所定の単位のビデオデータを符号ィ匕して得られる、アクセスユニット単位の符号ィ匕 ビデオデータは、可変長のデータである
ことを特徴とする請求項 1に記載のデータ処理装置。
[4] 符号化データを処理するデータ処理方法にお!ヽて、 前記符号化データは、
所定の単位のビデオデータを符号ィ匕して得られる、アクセスユニット単位の符号 化ビデオデータと、
前記アクセスユニット単位の符号ィ匕ビデオデータにおける 1以上のデコード開始 可能点それぞれの直前に配置される、前記符号ィヒビデオデータのデコードに利用さ れる利用情報と
を含み、
前記利用情報は、その利用情報から次の利用情報までの間に配置されて!、る 1以 上の前記アクセスユニットそれぞれのサイズを表すサイズ情報を含み、
前記符号化データから、前記利用情報を探索する探索ステップと、
前記符号化ビデオデータをデコードするビデオデコーダを制御するビデオデコー ダ制御手段からの要求に応じて、前記利用情報に含まれる前記サイズ情報に基づき
、前記符号ィ匕データ力 前記アクセスユニット単位で前記符号ィ匕ビデオデータを読 み出し、前記ビデオデコーダに供給する供給ステップと
を含むことを特徴とするデータ処理方法。
符号化データを処理するデータ処理を、コンピュータに行わせるプログラムにおい て、 前記符号化データは、
所定の単位のビデオデータを符号ィ匕して得られる、アクセスユニット単位の符号 化ビデオデータと、
前記アクセスユニット単位の符号ィ匕ビデオデータにおける 1以上のデコード開始 可能点それぞれの直前に配置される、前記符号ィヒビデオデータのデコードに利用さ れる利用情報と
を含み、
前記利用情報は、その利用情報から次の利用情報までの間に配置されて!、る 1以 上の前記アクセスユニットそれぞれのサイズを表すサイズ情報を含み、
前記符号化データから、前記利用情報を探索する探索ステップと、
前記符号化ビデオデータをデコードするビデオデコーダを制御するビデオデコー ダ制御手段からの要求に応じて、前記利用情報に含まれる前記サイズ情報に基づき 、前記符号ィ匕データ力 前記アクセスユニット単位で前記符号ィ匕ビデオデータを読 み出し、前記ビデオデコーダに供給する供給ステップと
を含むことを特徴とするプログラム。
[6] 符号化データを処理するデータ処理を、コンピュータに行わせるプログラムが記録 されて 、るプログラム記録媒体にぉ ヽて、
前記符号化データは、
所定の単位のビデオデータを符号ィ匕して得られる、アクセスユニット単位の符号 化ビデオデータと、
前記アクセスユニット単位の符号ィ匕ビデオデータにおける 1以上のデコード開始 可能点それぞれの直前に配置される、前記符号ィヒビデオデータのデコードに利用さ れる利用情報と
を含み、
前記利用情報は、その利用情報から次の利用情報までの間に配置されて!、る 1以 上の前記アクセスユニットそれぞれのサイズを表すサイズ情報を含み、
前記符号化データから、前記利用情報を探索する探索ステップと、
前記符号化ビデオデータをデコードするビデオデコーダを制御するビデオデコー ダ制御手段からの要求に応じて、前記利用情報に含まれる前記サイズ情報に基づき 、前記符号ィ匕データ力 前記アクセスユニット単位で前記符号ィ匕ビデオデータを読 み出し、前記ビデオデコーダに供給する供給ステップと
を含むことを特徴とするプログラムが記録されているプログラム記録媒体。
[7] 符号化データが記録されて!ヽるデータ記録媒体にお!ヽて、
前記符号化データは、
所定の単位のビデオデータを符号ィ匕して得られる、アクセスユニット単位の符号 化ビデオデータと、
前記アクセスユニット単位の符号ィ匕ビデオデータにおける 1以上のデコード開始 可能点それぞれの直前に配置される、前記符号ィヒビデオデータのデコードに利用さ れる利用情報と
を含み、 前記利用情報は、その利用情報から次の利用情報までの間に配置されて!、る 1以 上の前記アクセスユニットそれぞれのサイズを表すサイズ情報を含む
ことを特徴とするデータ記録媒体。
符号化データのデータ構造にぉ ヽて、
所定の単位のビデオデータを符号ィ匕して得られる、アクセスユニット単位の符号ィ匕 ビデオデータと、
前記アクセスユニット単位の符号ィ匕ビデオデータにおける 1以上のデコード開始可 能点それぞれの直前に配置される、前記符号ィヒビデオデータのデコードに利用され る利用情報と
を含み、
前記利用情報は、その利用情報から次の利用情報までの間に配置されて!、る 1以 上の前記アクセスユニットそれぞれのサイズを表すサイズ情報を含む
ことを特徴とする符号化データのデータ構造。
PCT/JP2005/009435 2004-06-11 2005-05-24 データ処理装置およびデータ処理方法、プログラムおよびプログラム記録媒体、データ記録媒体並びにデータ構造 WO2005122570A1 (ja)

Priority Applications (7)

Application Number Priority Date Filing Date Title
KR1020077000625A KR101169488B1 (ko) 2004-06-11 2005-05-24 데이터 처리 장치, 데이터 처리 방법, 프로그램 기록 매체 및 데이터 기록 매체
CN2005800272857A CN101002467B (zh) 2004-06-11 2005-05-24 数据处理设备和方法
EP05743603A EP1768403A4 (en) 2004-06-11 2005-05-24 DATA PROCESSING DEVICE, DATA PROCESSING METHOD, PROGRAM, PROGRAM RECORDING MEDIUM, DATA RECORDING MEDIUM, AND DATA STRUCTURE
HK08107869.5A HK1112778A1 (en) 2004-06-11 2005-05-24 A detecting method for memory
BRPI0511918-9A BRPI0511918A (pt) 2004-06-11 2005-05-24 aparelho de processamento de dados e programa para permitir que um computador execute processamento de dados para processar dados codificados, meio de gravação de programa, meio de gravação de dados, e estrutura de dados de dados codificados
US11/629,078 US8213781B2 (en) 2004-06-11 2005-05-24 Data processing device, data processing method, program, program recording medium, data recording medium, and data structure
HK07109878.1A HK1101950A1 (en) 2004-06-11 2007-09-12 Data processing device and data processing method

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2004174548A JP4586429B2 (ja) 2004-06-11 2004-06-11 データ処理装置およびデータ処理方法、並びに、プログラムおよびプログラム記録媒体
JP2004-174548 2004-06-11

Publications (1)

Publication Number Publication Date
WO2005122570A1 true WO2005122570A1 (ja) 2005-12-22

Family

ID=35503507

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2005/009435 WO2005122570A1 (ja) 2004-06-11 2005-05-24 データ処理装置およびデータ処理方法、プログラムおよびプログラム記録媒体、データ記録媒体並びにデータ構造

Country Status (8)

Country Link
US (1) US8213781B2 (ja)
EP (1) EP1768403A4 (ja)
JP (1) JP4586429B2 (ja)
CN (1) CN101002467B (ja)
BR (1) BRPI0511918A (ja)
HK (2) HK1112778A1 (ja)
TW (1) TW200606827A (ja)
WO (1) WO2005122570A1 (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2051254A4 (en) * 2007-06-06 2012-10-03 Panasonic Corp PLAYING DEVICE, PLAY PROCESS AND CORRESPONDING PROGRAM
TW201032597A (en) * 2009-01-28 2010-09-01 Nokia Corp Method and apparatus for video coding and decoding
CN102222077A (zh) * 2010-04-14 2011-10-19 中兴通讯股份有限公司 一种语音频数据的存储方法和装置
US10019395B2 (en) * 2013-11-08 2018-07-10 Nxp Usa, Inc. Processing system with stack management and method for stack management
JP6855348B2 (ja) * 2017-07-31 2021-04-07 株式会社ソニー・インタラクティブエンタテインメント 情報処理装置およびダウンロード処理方法
US11206244B2 (en) * 2018-12-21 2021-12-21 ARRIS Enterprise LLC Method to preserve video data obfuscation for video frames
CN110246467B (zh) * 2019-06-19 2021-06-15 深圳市康冠商用科技有限公司 一种液晶显示器屏幕保护方法及装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09139915A (ja) * 1995-11-16 1997-05-27 Matsushita Electric Ind Co Ltd 圧縮動画像復号・表示装置および圧縮動画像簡易編集装置
JPH09200695A (ja) * 1995-12-11 1997-07-31 Samsung Electron Co Ltd 高速再生のためのビデオデータの復号化方法及びその装置

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR0176134B1 (ko) * 1995-10-25 1999-05-01 김광호 압축 부호화 비디오 데이타 재생방법
JPH10322665A (ja) * 1997-05-07 1998-12-04 Lsi Logic Corp Gopデータの反復読出し制御方法および装置
KR100247978B1 (ko) * 1997-08-08 2000-03-15 윤종용 픽쳐 디코딩 동기화 회로 및 그 방법
JP4150083B2 (ja) * 1997-09-25 2008-09-17 ソニー株式会社 符号化ストリーム生成装置及び方法、ならびに編集システム及び方法
KR100308034B1 (ko) * 1998-12-31 2001-11-02 구자홍 포맷변환장치
US6771196B2 (en) * 1999-12-14 2004-08-03 Broadcom Corporation Programmable variable-length decoder
ITTO20010525A1 (it) * 2001-06-01 2002-12-01 Telecom Italia Lab Spa Procedimento di trasmissione, ad esempio per la trasmissione ripartita di flussi audiovisivi o multimediali, sistema di trasmissione, trasme
MXPA05000674A (es) 2002-07-16 2005-03-31 Thomson Licensing Sa Intercalacion de capas, base de aumento, para hd-dvd utilizando identificacion de corriente alterna para capa de aumento.
CN100369481C (zh) * 2003-02-04 2008-02-13 松下电器产业株式会社 代码变换方法及其装置
WO2005043915A1 (ja) * 2003-10-31 2005-05-12 Kddi Media Will Corporation 映像解析装置及び映像障害検出装置

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09139915A (ja) * 1995-11-16 1997-05-27 Matsushita Electric Ind Co Ltd 圧縮動画像復号・表示装置および圧縮動画像簡易編集装置
JPH09200695A (ja) * 1995-12-11 1997-07-31 Samsung Electron Co Ltd 高速再生のためのビデオデータの復号化方法及びその装置

Also Published As

Publication number Publication date
HK1112778A1 (en) 2008-09-12
EP1768403A1 (en) 2007-03-28
TW200606827A (en) 2006-02-16
JP2005354520A (ja) 2005-12-22
US20080292285A1 (en) 2008-11-27
TWI330357B (ja) 2010-09-11
HK1101950A1 (en) 2007-11-02
CN101002467A (zh) 2007-07-18
JP4586429B2 (ja) 2010-11-24
EP1768403A4 (en) 2010-04-28
US8213781B2 (en) 2012-07-03
CN101002467B (zh) 2010-05-26
BRPI0511918A (pt) 2008-01-15

Similar Documents

Publication Publication Date Title
WO2005122170A1 (ja) データ処理装置およびデータ処理方法、プログラムおよびプログラム記録媒体、データ記録媒体並びにデータ構造
US7584511B2 (en) Data processing apparatus, data processing method, program, program recording medium, data recording medium, and data structure
EP1761057A1 (en) Data processing device, data processing method, program, program recording medium, data recording medium, and data structure
JP4575129B2 (ja) データ処理装置およびデータ処理方法、並びにプログラムおよびプログラム記録媒体
WO2005122570A1 (ja) データ処理装置およびデータ処理方法、プログラムおよびプログラム記録媒体、データ記録媒体並びにデータ構造
JP2006164337A (ja) データ処理装置およびデータ処理方法、プログラムおよびプログラム記録媒体、並びにデータ記録媒体
US8340495B2 (en) Data processing device, data processing method, program, program recording medium, data recording medium, and data structure
WO2005122168A1 (ja) データ処理装置およびデータ処理方法、プログラムおよびプログラム記録媒体、データ記録媒体並びにデータ構造
JP4536497B2 (ja) データ処理装置およびデータ処理方法、プログラムおよびプログラム記録媒体、並びにデータ記録媒体
AU2005253423B2 (en) Data processing device, data processing method, program, program recording medium, data recording medium, and data structure
KR20070020503A (ko) 데이터 처리 장치 및 데이터 처리 방법, 프로그램 및프로그램 기록 매체, 데이터 기록 매체, 및, 데이터 구조

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BW BY BZ CA CH CN CO CR CU CZ DE DK DM DZ EC EE EG ES FI GB GD GE GH GM HR HU ID IL IN IS KE KG KM KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NA NG NI NO NZ OM PG PH PL PT RO RU SC SD SE SG SK SL SM SY TJ TM TN TR TT TZ UA UG US UZ VC VN YU ZA ZM ZW

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): BW GH GM KE LS MW MZ NA SD SL SZ TZ UG ZM ZW AM AZ BY KG KZ MD RU TJ TM AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IS IT LT LU MC NL PL PT RO SE SI SK TR BF BJ CF CG CI CM GA GN GQ GW ML MR NE SN TD TG

121 Ep: the epo has been informed by wipo that ep was designated in this application
WWE Wipo information: entry into national phase

Ref document number: 7433/DELNP/2006

Country of ref document: IN

WWE Wipo information: entry into national phase

Ref document number: 2005743603

Country of ref document: EP

NENP Non-entry into the national phase

Ref country code: DE

WWW Wipo information: withdrawn in national office

Ref document number: DE

WWE Wipo information: entry into national phase

Ref document number: 1020077000625

Country of ref document: KR

WWE Wipo information: entry into national phase

Ref document number: 11629078

Country of ref document: US

WWE Wipo information: entry into national phase

Ref document number: 200580027285.7

Country of ref document: CN

WWP Wipo information: published in national office

Ref document number: 1020077000625

Country of ref document: KR

WWP Wipo information: published in national office

Ref document number: 2005743603

Country of ref document: EP

ENP Entry into the national phase

Ref document number: PI0511918

Country of ref document: BR