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

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

Info

Publication number
WO2006059482A1
WO2006059482A1 PCT/JP2005/021070 JP2005021070W WO2006059482A1 WO 2006059482 A1 WO2006059482 A1 WO 2006059482A1 JP 2005021070 W JP2005021070 W JP 2005021070W WO 2006059482 A1 WO2006059482 A1 WO 2006059482A1
Authority
WO
WIPO (PCT)
Prior art keywords
stream
time
data
video
control module
Prior art date
Application number
PCT/JP2005/021070
Other languages
English (en)
French (fr)
Other versions
WO2006059482A9 (ja
Inventor
Yasushi Fujinami
Toshiya Hamada
Tatsuya Kakumu
Akihiko Ueda
Koji Ihara
Shusuke Utsumi
Original Assignee
Sony Corporation
Sony Computer Entertainment Inc.
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, Sony Computer Entertainment Inc. filed Critical Sony Corporation
Priority to CA2588198A priority Critical patent/CA2588198C/en
Priority to US11/720,630 priority patent/US8346059B2/en
Priority to CN2005800476816A priority patent/CN101111897B/zh
Priority to EP05803958A priority patent/EP1818931A4/en
Publication of WO2006059482A1 publication Critical patent/WO2006059482A1/ja
Publication of WO2006059482A9 publication Critical patent/WO2006059482A9/ja

Links

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B27/00Editing; Indexing; Addressing; Timing or synchronising; Monitoring; Measuring tape travel
    • G11B27/10Indexing; Addressing; Timing or synchronising; Measuring tape travel
    • 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/30Indexing; 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 the same track as the main recording
    • G11B27/3027Indexing; 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 the same track as the main recording used signal is digitally coded
    • G11B27/3036Time code signal
    • 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
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/12Formatting, e.g. arrangement of data block or words on the record carriers
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B27/00Editing; Indexing; Addressing; Timing or synchronising; Monitoring; Measuring tape travel
    • G11B27/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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/76Television signal recording
    • H04N5/91Television signal processing therefor
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/10527Audio or video recording; Data buffering arrangements
    • G11B2020/1062Data buffering arrangements, e.g. recording or playback buffers
    • G11B2020/10629Data buffering arrangements, e.g. recording or playback buffers the buffer having a specific structure
    • G11B2020/10666Ring buffers, e.g. buffers wherein an iteratively progressing read or write pointer moves back to the beginning of the buffer when reaching the last storage cell
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/10527Audio or video recording; Data buffering arrangements
    • G11B2020/1062Data buffering arrangements, e.g. recording or playback buffers
    • G11B2020/10805Data buffering arrangements, e.g. recording or playback buffers involving specific measures to prevent a buffer overflow
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/10527Audio or video recording; Data buffering arrangements
    • G11B2020/1062Data buffering arrangements, e.g. recording or playback buffers
    • G11B2020/10814Data buffering arrangements, e.g. recording or playback buffers involving specific measures to prevent a buffer underrun
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B2220/00Record carriers by type
    • G11B2220/20Disc-shaped record carriers
    • G11B2220/25Disc-shaped record carriers characterised in that the disc is based on a specific recording technology
    • G11B2220/2537Optical discs
    • G11B2220/2541Blu-ray discs; Blue laser DVR discs

Definitions

  • Data processing apparatus and data processing method program and program recording medium, data recording medium, and data structure
  • the present invention relates to a data processing device, a data processing method, a program and a program recording medium, a data recording medium, and a data structure, and in particular, data processing that enables highly convenient data processing, for example.
  • the present invention relates to a device and a data processing method, a program and a program recording medium, a data recording medium, and a data structure.
  • a DVD Digital Versatile Disc
  • a DVD device that performs various processes using a DVD has also become widespread.
  • a DVD device for example, a DVD recorder that records and reproduces a television broadcast program, etc. on a DVD, a map that records map information on a DVD, and displays the map information.
  • a map that records map information on a DVD, and displays the map information.
  • game systems that record game programs on DVD and DVD, and execute the programs.
  • Non-Patent Document 1 DVD Specification for Read-Only Disc Part 3; Version 1.1 December 1997J”.
  • the present invention has been made in view of such a situation, and makes it possible to perform highly convenient data processing.
  • the data processing device of the present invention detects the presence or absence of a time stamp of the access unit and the time unit configured to time the time using a predetermined variable, and the access unit has a time stamp. Substituting the value of the time stamp into the variable, and when there is no time stamp in the access unit, obtain the display time information, add the value obtained from the acquired display time information, and add the variable And a setting unit configured to set.
  • the display time information may be information indicating a display time in units of one field of processed data to be processed.
  • the processing data may be video data or caption data.
  • the setting unit When the setting unit acquires the display time information, the setting unit adds the value obtained from the acquired display time information at the timing of starting the display of the access unit immediately after the access unit, and sets the variable. It can be set.
  • the setting unit When the setting unit acquires display time information, it adds the value obtained from the acquired display time information at the timing to start displaying the access unit immediately after the access unit, and sets a variable. You can do that.
  • a mark processing unit configured to perform a predetermined process on a predetermined access unit at a predetermined mark time stamp, and the setting unit performs a predetermined process on the predetermined access unit; Mark The time stamp is displayed from the time counted by the timekeeping section. When the time is within the indicated time, the mark processing unit is notified to the mark processing unit that the time counted by the time measuring unit is the time of the mark time stamp, and the mark processing unit , A predetermined process can be performed on a predetermined access menu.
  • the minimum time interval of the mark time stamp may be the maximum display time of the access unit.
  • the data processing method of the present invention detects a time step for measuring time using a predetermined variable, and whether or not there is a time stamp of the access unit. If the access unit has a time stamp, the time stamp value is used as a variable. Substituting, and when there is no time stamp in the access unit, the display time information is acquired, the value obtained from the acquired display time information is added, and a setting step for setting a variable is included.
  • the program of the program recording medium of the present invention detects a time step for measuring time using a predetermined variable and whether or not the access unit has a time stamp.
  • the time stamp If the access unit has a time stamp, the time stamp If the value of is assigned to a variable and there is no time stamp in the access unit, the display time information Tokushi, by adding the value obtained by the information of the obtained display time, characterized in that it comprises a setting step of setting a variable.
  • the program of the present invention detects a time step for measuring time using a predetermined variable and the presence or absence of a time stamp of the access unit. If the time stamp is present in the access unit, the time stamp value is changed. Including the setting step of setting the variable by substituting the number and acquiring the display time information when the access unit does not have a time stamp and adding the value obtained from the acquired display time information. Processing to computer It is made to perform.
  • the data recording medium of the present invention includes a time measuring unit configured to time a time using a predetermined variable, and a time stamp of an access unit when processing data is processed for each predetermined access unit. If there is a time stamp in the access unit, the value of the time stamp is substituted into the variable, and if there is no time stamp in the access unit, the display time information is obtained, and the obtained display time information is obtained.
  • a setting unit configured to set a variable by adding the values obtained by the mark processing, and mark processing configured to perform a predetermined process at a predetermined mark time stamp on a predetermined access unit
  • a data recording medium for recording data read by a data processing device comprising: a predetermined access unit; It is characterized in that data including a mark time stamp to be subjected to a predetermined process at time is recorded, and the minimum time interval of the mark time stamp is the maximum display time of the access unit.
  • the time stamp when processing data is processed for each predetermined access unit, the presence / absence of a time stamp of the access unit is detected, and if the access unit has a time stamp, the time stamp Substituting a value into the variable, and when there is no time stamp in the access unit, obtain the display time information, add the value obtained from the obtained display time information, and set the variable
  • a data processing device comprising: a setting unit configured as described above; and a mark processing unit configured to perform predetermined processing at a predetermined mark time stamp on a predetermined access unit.
  • a mark time stamp that is an overnight structure and performs predetermined processing at a predetermined time on the predetermined access unit.
  • the minimum time interval of the group is the maximum display time of the access unit.
  • the time is measured using a predetermined variable, the presence / absence of the time stamp of the access unit is detected, and the access unit is timed. If there is a stamp, the value of the time stamp is assigned to the variable, and if the access unit does not have a time stamp, the display time information is acquired, and the value obtained from the acquired display time information is added. A variable is set.
  • data including a macro stamp for performing a predetermined process at a predetermined time on a predetermined asset is recorded, and a mark time stamp is recorded.
  • the minimum time interval is the maximum display time of the access unit.
  • the data processing device of the present invention may be an independent device or a block that performs de-night processing.
  • FIG. 1 is a block diagram showing a hardware configuration example of an embodiment of a disc playback apparatus to which the present invention is applied, and FIGS. 2A and 2B are software executed by CPU 1 1 2.
  • Fig. 3 is a block diagram showing an example of the module group configuration.
  • Fig. 3 is a diagram showing the relationship between the actual time elapsed and the clocking of the 90kHz clock.
  • Fig. 4 is the actual time elapsed and the video data of the video decoder.
  • FIG. 5 is a block diagram showing an example of the configuration of the buffer control module 2 15, and
  • FIG. 6 is a directory on the disk 1 0 1.
  • Fig. 8 shows the syntax of the "PLAYLIST.DAT" file, Fig.
  • Fig. 8 shows the syntax of P1 ay.ItemO
  • Fig. 9 shows the syntax of PyListMarkO
  • Fig. 10 shows the relationship between the mark-type value and the MarkO type.
  • Fig. 11 shows the PlayListO, Playltem (), clip, and clip stream files.
  • Fig. 12 shows the relationship of the clip information file ClipO.
  • Fig. 13 shows the stream_id and private_stream_id for identifying the elementary stream.
  • Diagram showing the relationship with the list Fig. 14 is a diagram showing the syntax of StaticInfoO
  • Fig. 15 is a diagram showing the syntax of DynamicInfoO
  • Fig. 16 is a diagram showing the syntax of EP-mapO
  • Fig. 17 is the diagram of Fig. 1.
  • Fig. 14 is a diagram showing the syntax of StaticInfoO
  • Fig. 15 is a diagram showing the syntax of DynamicInfoO
  • Fig. 16 is a diagram showing the syntax of EP-mapO
  • Fig. 17
  • FIG. 6 shows the relationship between the index—N—minusl value and IstRef—Picture to 4thRef—Picture.
  • Fig. 18A and Fig. 18B show the MPEG-2 System program stream and program stream.
  • Fig. 19A and Fig. 19B are diagrams showing the syntax of MPEG-2 System PES packets
  • Fig. 20A, Fig. 20 Fig. B and Fig. 20C are diagrams showing the syntax of MPEG-2 System PES packets.
  • Fig. 21 A and Fig. 21 B are diagrams showing the syntax of MPEG-2 System PES packets Fig. 22 A and Fig. 22 B are described in the streamjd of PES-packet O in MPEG-2 System.
  • Fig. 21 A and Fig. 21 B are described in the streamjd of PES-packet O in MPEG-2 System.
  • FIG. 23 shows the stream—id used by the disc player, and Fig. 24 shows the private— streanil—PES—payloadO.
  • Figure 25 shows the syntax of private stream id
  • Fig. 26 shows the relationship between the value and the attribute of the element list stored in private-payloadO.
  • Fig. 26 shows the syntax of rivate_streani2_PES_payload ().
  • Fig. 27 shows the au-informationO
  • Fig. 28 shows the syntax
  • Fig. 28 shows the pic-struct
  • Fig. 29 shows a specific example of the "PLA YLIST.DAT" file
  • Fig. 30 A and Fig. 30 B Is a diagram showing a specific example of the clip information file “00001. CLP”, “00002” CLP ”,“ 00003.
  • FIG. 31 shows the EP_map () in the clip information file“ 00001.
  • Fig. 3 2 is a diagram showing a specific example of PlayListMarkO in PlayList # 0 and PlayList # 1
  • Fig. 3 3 is a flowchart explaining the pre-playback processing
  • Fig. 34 is off explaining reproduction processing Rochiya - DOO
  • 3 5 Figure is a flow chart that describes the relationship between the output sequence as decoded sequence
  • FIG. 37 is a diagram illustrating the configuration of the Odecoder
  • FIG. 37 is a diagram illustrating the configuration of the DPB of FIG. 36
  • FIG. 38 is a flowchart illustrating the time update process
  • FIG. 39 is a pic— Fig.
  • FIG. 40 is a flowchart for explaining the time update process according to the value of the struct
  • Fig. 40 is a flowchart for explaining the Playltem transfer process
  • Fig. 41 is a flowchart for explaining the time code display process
  • Fig. 42 is a stream switching
  • FIG. 43 is a flowchart for explaining the processing of the buffer control module 2 15
  • FIG. 44 is a flowchart for explaining the processing of the buffer control module 2 15
  • FIG. Fig. 46 is a flowchart explaining the process of reading a video stream.
  • Fig. 46 is a flowchart explaining the process of reading an audio stream.
  • Fig. 47 is a subtitle stream.
  • 48 is a flowchart explaining the resynchronization processing
  • FIG. 49 is a flowchart explaining the mark processing
  • Fig. 50 is a coincidence in the mark processing.
  • Fig. 51 shows the judgment.
  • Fig. 51 shows the p yListEnd setting.
  • Fig. 52 shows the playListEnd timing
  • Fig. 53 shows the event interval
  • Fig. 54 shows the output attribute control process
  • Fig. 55 shows a specific example of the set of 15_ (11 & 1 ⁇ 6_0011 ⁇ and 0 1 ⁇ 111 ⁇ 111 fo () described in the clip information file "00033. CLP”.
  • Fig. 5 6 is a flowchart explaining the subtitle display control processing
  • Fig. 5 7 is a flowchart explaining the capture control processing and the background screen saver processing
  • Fig. 5 8 is private-st ream2 PES_pay load.
  • FIG. 60 shows a block diagram showing a hardware configuration example of the disk recording device
  • FIG. 61 shows Explains the functions realized by the disc recorder shown in Fig. 60.
  • Block diagram Fig. 62 shows a flowchart explaining the Ep_map generation process
  • Fig. 63 shows a flowchart explaining the fast forward playback process
  • Fig. 64 shows a flowchart explaining the entry point selection process
  • Fig. 6 Fig. 5 is a block diagram for explaining other functions realized by the disc recording apparatus of Fig. 60
  • Fig. 6 6 is a diagram showing other syntaxes of EP-map ()
  • Fig. 6 7 is Fig. 65 is a diagram for explaining the priority-flag in Fig. 65.
  • Fig. 68 is a flowchart for explaining the priority setting process.
  • the data processing apparatus of the present invention includes a time measuring means (for example, the time measuring unit 2 14 A in FIG. 2A and FIG. 2B) for measuring the time using a predetermined variable, and the time stamp of the access unit.
  • a time measuring means for example, the time measuring unit 2 14 A in FIG. 2A and FIG. 2B
  • Setting means for detecting the presence / absence and obtaining the display time information when the access unit has a time stamp, adding the value obtained from the obtained display time information, and setting the variable
  • the decoding control module 2 1 for example, the decoding control module 2 1 4) of FIG. 2A and FIG. 2B is provided.
  • the data processing method of the present invention includes a time measuring step for measuring time using a predetermined variable, and detecting the presence or absence of a time stamp of the access unit (for example, in step S 1 4 1 in the flowchart of FIG. 38).
  • a time measuring step for measuring time using a predetermined variable, and detecting the presence or absence of a time stamp of the access unit (for example, in step S 1 4 1 in the flowchart of FIG. 38).
  • the access unit has a time stamp
  • the value of the time stamp is substituted into the variable (for example, the process of step S1 42 in the flowchart of FIG. 38), and the access unit has a time stamp.
  • the information of the display time is acquired and acquired.
  • a setting step for example, the flowchart of FIG. 38 (the process of step S 14 4 in FIG. 38)) that sets the variable by adding the values obtained from the information on the displayed display time of the image.
  • the program recording medium and the program are the same as the data processing method, and the description thereof
  • FIG. 1 is a block diagram showing a hardware configuration example of an embodiment of a disk reproducing apparatus to which the present invention is applied.
  • the disc 1 0 1 is, for example, Optical discs such as DVDs, magneto-optical discs, magnetic discs, etc.
  • the data recorded on the disc 10 1 includes a program that can be executed by the computer as necessary.
  • the disk 10 1 which is a disk-shaped recording medium is employed as the recording medium.
  • the recording medium for example, a semiconductor memory or a tape-shaped recording medium may be used. Good.
  • data read from and transmitted from the distant disk 1001 can be input to the disk reproducing apparatus in FIG. In other words, the data is read from the disc 100 1 by another device connected to the disc playback device, and the data read by the other device is received by the disc playback device and processed.
  • data distribution can be performed via a network such as the Internet from a server or the like that stores the same data recorded on the disc 110 1 in the storage. It is also possible to receive and process the information. Furthermore, the disc playback device can receive data from the server and other devices, record the data on the disc 10 1 once, and then process the data recorded on the disc 1 0 1. .
  • the disk 1 0 1 is detachable from the disk drive 1 0 2.
  • the disk drive 1 0 2 has a built-in interface (not shown) and is connected to the drive-in interface 1 1 4 through the interface.
  • the disk drive 1 0 2 drives the disk 1 0 1 loaded in the disk drive 1 0 2 and reads data from the disk 1 0 1 in accordance with a read instruction from the drive-in interface 1 1 4. , Etc. Perform processing such as supplying to the drive interface 1 1 4.
  • Buss 1 1 1 has CPU Central Procesing Unit) 1 1 2, Memory 1 1 3, Drive interface 1 1 4, Input interface 1 1 5, Video decoder 1 1 6, Audio Decoder 1 1 7, Video output interface 1 1 8, Audio output interface 1 1 9 are connected.
  • CPU 1 1 2 and memory 1 1 3 form a computer system. That is, the CPU 1 1 2 executes a software module group, which will be described later, which is a program stored in the memory 1 1 3, controls the entire disk playback device, and performs various processes described later.
  • the memory 1 1 3 stores software module groups executed by the CPU 1 1 2.
  • the memory 1 1 3 temporarily stores data necessary for the operation of the CPU 1 1 2.
  • memory 1 1 3 can only be a nonvolatile memory or It can be composed of a combination of a source memory and a nonvolatile memory. Also, if the hard disk is installed in the disc player shown in Fig. 1 and the software modules executed by the CPU 1 1 2 are recorded (installed) on the hard disc, the memory 1 1 3 can be composed only of volatile memory.
  • the program (software module group) executed by the CPU 1 1 2 can be stored in advance in the memory 1 1 3 as a recording medium built in the disk playback device.
  • the program may be a disc 1 0 1, a flexible disc other than the disc 1 0 1, a CD-ROM (Compact Disc Read 0 nly Memory), a MO (Magneto Optical) disc, a magnetic disc, a memory It can be stored temporarily or permanently on removable recording media such as 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 1 13 in advance, or can be installed in the disk playback device from the removable recording medium as described above.
  • the program can be transferred wirelessly from a download site to a disk playback device via an artificial satellite for digital satellite broadcasting, or via a network such as a local area network (LAN) network.
  • the program can be transferred to the disc playback device via wire, and the program transferred in this way can be received by the input interface 1 1 5 and installed in the built-in memory 1 1 3.
  • the program may be processed by one CPU, or may be processed by multiple CPUs in a distributed manner.
  • the drive-in evening face 1 1 4 is under the control of CPU 1 1 2
  • Disk drive 1 0 2 controls the data read from disk 1 0 1 by disk drive 1 0 2 via bus 1 1 1 'CP Ul 1 2 and memory 1 1 3 “Da 1 1 6, Audio Deco 1 1 7 etc.
  • the input interface 1 1 5 receives a signal supplied when a key (not shown) or a remote control (remote control commander) is operated by a user, and uses the bus 1 1 1 To CPU 1 1 2 via.
  • the input interface interface 115 also functions as a communication interface such as a motem (including an ADSL (Asymmetric Digital Subscriber Line) mote) or a NIC (Network Interface Card).
  • a motem including an ADSL (Asymmetric Digital Subscriber Line) mote
  • NIC Network Interface Card
  • the video decoder 1 1 6 decodes the encoded video data read from the disk 1 0 1 by the disk drive 1 0 2 and supplied via the drive-in evening face 1 1 4 and bus 1 1 1.
  • the video data obtained as a result is supplied to the video output interface 1 1 8 via the bus 1 1 1 and the CPU 1 1 2.
  • the audio decoder 1 1 7 reads the encoding code that is read from the disk 1 0 1 by the disk drive 1 02 and supplied via the drive interface 1 1 4 and the bus 1 1 1. The resulting audio data is decoded and supplied to CP Ul 1 2 and audio output interface 1 1 9 via bus 1 1 1.
  • the video output interface 1 1 8 performs necessary processing for the video data supplied via the bus 1 1 1 and outputs from the video output terminal 1 2 0.
  • the audio output interface 1 1 9 performs necessary processing on the audio data supplied via the bus 1 1 1 and outputs it from the audio output terminal 1 2 1.
  • the video output terminal 1 2 0 is connected to a video output device such as a cathode ray tube (CRT) or a liquid crystal panel (not shown). Therefore, the video data output from the video output terminal 1 2 0 Is supplied to the video output device and displayed.
  • the audio output terminal 1 2 1 is connected to an audio output device such as a speaker or an amplifier (not shown). Therefore, the audio data output from the audio output terminal 1 2 1 is supplied to the audio output device. Is output.
  • the video data and audio data can be supplied from the disc playback device to the video output device and the audio output device either by wire or wirelessly.
  • FIG. 2A and FIG. 2B show the configuration of the software module group executed by the CPU 1 1 2 in FIG.
  • the software modules executed by the CPU 1 1 2 are broadly divided into an operating system (OS) 2 0 1 and a video content playback program 2 1 0 as an application program.
  • OS operating system
  • video content playback program 2 1 0 video content playback program
  • the operating system 20 1 provides infrastructure services such as file reading to the video content playback program 2 1 0 (infrastructure). That is, the operating system 2 0 1 reads, for example, a file from the video content playback program 2 1 0 with respect to the file read. In response to the request, the disc drive 1 0 2 is operated via the drive-in interface 1 1 4 to read the data on the disc 1 0 1 and pass it to the video content playback program 2 1 0 'provide. The operating system 2 0 1 also interprets the file system.
  • the operating system 201 has a multitasking function, and can operate a plurality of software modules in a time-sharing manner.
  • the video content playback program 210 is composed of several software modules, but each software module can operate in parallel.
  • Video content playback program 2 1 0 Video content playback program 2 1 0
  • the video content playback program 2 1 0 is a script control module 2 1 1, a player control module 2 1 2, a content data supply module 2 1 3, a decode control module 2 1 4, a buffer control module 2 1 5, It consists of video decoder control module 2 1 6, audio decoder control module 2 1 7, subtitle decoder control module 2 1 8, graphics processing module 2 1 9, video output module 2 2 0, and audio output module 2 2 1 .
  • the video content playback program 2 1 0 is software that plays a central role in the playback of the disc 1 0 1.
  • the disc 1 0 1 Confirm that 1 is a format-format disc (described later) on which content is recorded. Further, the video content playback program 2 1 0 reads and executes a script file (to be described later) from the disc 1 0 1, and plays back the content recorded on the disc 1 0 1 from the disc 1 0 1.
  • Metadata file required for The playback of content is controlled based on the metadata.
  • the script control module 2 1 1 interprets and executes the script program (script) described in the script file recorded on the disk 1 0 1.
  • the script program for example, “Operate the graphics processing module 2 19 to create and display an image such as a menu”, “In response to a signal from the UI (User Interface) of the remote control, etc. It is possible to describe actions such as “changing the display (for example, moving the force sol on the menu)” and “controlling the player control module 2 1 2”.
  • the player control module 2 1 2 refers to metadata or the like recorded on the disc 1 0 1 and performs control related to content reproduction. That is, the player control module 2 1 2 analyzes, for example, PrayList O and Clip O (to be described later) recorded on the disc 1 0 1, and the content data supply module 2 according to the analysis result. Controls 1 3, decode control module 2 1 4, buffer control module 2 1 5. In addition, the player control module 2 1 2 performs control such as switching of a stream to be reproduced, which will be described later, according to an instruction from the script control module 2 1 1 or the input interface 1 1 5. Further, the player control module 2 1 2 obtains the time from the decode control module 2 1 4, displays the time, and a mark (Ma rk O) is processed.
  • PrayList O and Clip O to be described later
  • the content data supply module 2 1 3 follows the control of the player control module ⁇ 1 2 1 2 '' (or, based on the amount of data stored in the buffer control module 2 1 5 0 ).
  • the operating system 2 0 1 is requested to read out the contents of the contents and the meta data from 1 and so on.
  • the operating system 2 0 1 content data supply module 2 1 3 The metadata read from the disk 1 0 1 in response to a request from the 3 1 3 is supplied to the necessary module. In addition, the operating system 2 0 1 supplies the content data read from the disk 1 0 1 to the buffer control module 2 1 5 in response to a request from the content data supply module 2 1 3. Is done.
  • the decode control module 2 1 4 is controlled by the player control module 2 1 2 according to the video decoder control module 2 1 6, the audio decoder control module 2 1 7, and the subtitle decoder control module 2 1 8. To control the operation.
  • the decode control module 2 14 has a built-in timer 2 1 4 A that measures the time, and synchronizes with the video data output that is output by the control of the video decoder control module 2 1 6.
  • the time-out section 2 1 manages the synchronization with the audio output output under the control of the audio decoder control module 2 1 7. 4 A counts autonomously by counting an externally supplied reference clock or an internal clock synchronized with a decoder, etc. You may make it do.
  • Fig. 3 shows the relationship between the time and the actual elapsed time when the timer 2 14 A shows an independent clock.
  • the timer 2 1 4 A counts up with a 90 kHz clock, so it increases from the time 0 in a straight line on the upper right, and the time indicated by the clock at the time of 33.3 ms is 3003. It has become.
  • FIG. 4 shows an example of the time when the timer 2 14 A shows a clock that updates the time according to the video data output of the video decoder.
  • the clock output time is updated to 3003 when 33.3 milliseconds elapses
  • the output time is updated to 7507 after 83.3 milliseconds elapses
  • 1 1 When 6 milliseconds elapse, the output time is updated to 1 051 0.
  • the output time of one frame is 16.66 ms.
  • Fig. 3 the time actually changes in a staircase pattern with a resolution of l / 90kHz, but for comparison with Fig. 4, it is represented by a straight line in Fig. 3. .
  • the clock unit 2 14 A updates the time according to the video data output described with reference to FIG.
  • the buffer control module 2 1 5 has a built-in buffer 2 1 5 A that is a part of the storage area of the memory 1 1 3 in FIG. In 5 A, the content data supply module 2 1 3 temporarily stores the data content read from the disk 1 0 1 by making a request to the operating system 2 0 1.
  • the buffer control module 2 15 is stored in the buffer 2 15 A according to the request of the video decoder control module 2 1 6, the audio decoder control module 2 1 7, or the frame decoder control module 2 1 8.
  • the video data is supplied to the video decoder control module 2 1 6, the audio decoder control module 2 1 7, or the caption decoder control module 2 1 8.
  • the buffer control module 2 15 includes a video reading function unit 2 3 3, an audio reading function unit 2 3 4, and a subtitle reading function unit 2 3 5 which will be described later with reference to FIG. Then, the buffer control module 2 1 5 stores the video decoder control module 2 1 6 power and other data requests in the buffer 2 1 5 A by processing the video read function unit 2 3 3. The obtained data is supplied to the video decoder control module 2 16. Similarly, the buffer control module 2 1 5 is the audio decoder control module. 2 1 7 processes the data request from the audio read function unit 2 3 4 to process the data stored in the buffer 2 1 5 A.
  • the audio decoder control module 2 1 7 is supplied to the audio decoder control module 2 1 7, and the subtitle read function unit 2 3 5 processes the data request from the subtitle decoder control module 2 1 8, so that it is stored in the buffer 2 1 5 A. Is supplied to the subtitle decoder control module 2 1 8.
  • Video decoder control module 2 1 6
  • the video decoder control module 2 1 6 operates the video readout function section 2 3 3 (Fig. 5) in the buffer control module 2 1 5 to
  • the data (video encoded data) that is encoded from the video data is read from the buffer 2 1 5 A of the nota control module 2 1 5 in units of video access units, and is output to the video decoder 1 1 6 in Fig. 1. Supply.
  • the video decoder control module 2 1 6 controls the video decoder 1 1 6 to decode data in units of video access units. Further, the video decoder control module 2 16 supplies video data obtained as a result of decoding by the video decoder 1 16 to the graphics processing module 2 19.
  • the video access unit is, for example, one picture (one frame or one field) of the video data.
  • the audio decoder control module 2 1 7 operates the audio readout function part 2 3 4 (Fig. 5) in the buffer control module 2 1 5 to encode the audio data (audio). Encoded data) is read out from the buffer 2 15 A of the buffer control module 2 15 in units of audio access units and supplied to the audio decoder 1 17 in FIG.
  • the audio decoder control module 2 1 7 controls the audio decoder 1 1 7 to decode data in units of audio access units. Further, the audio decoder control module 2 17 supplies the audio output obtained as a result of the decoding by the audio decoder 1 17 to the audio output module 2 21.
  • the audio access unit is a predetermined amount of audio data (for example, output in synchronization with one picture).
  • the audio access unit has a known fixed length, for example. "Subtitle decoder control module 2 1 8"
  • the subtitle decoder control module 2 1 8 operates the subtitle read function section 2 3 5 (Fig. 5) in the buffer control module 2 1 5 to encode the subtitle data ”overnight (subtitle coding data). Is read from buffer 2 1 5 A of buffer control module 2 1 5 in units of subtitle access units.
  • the subtitle decoder control module 2 18 is provided with subtitle decorating software (not shown), and decodes the data read from the buffer 2 15 A. Further, the caption decoder control module 2 18 supplies the caption data (subtitle image data) obtained as a result of the decoding to the graphics processing module 2 19.
  • the subtitle access unit is a predetermined amount of subtitle data (for example, output in synchronization with one picture).
  • the size of the subtitle access unit is described at the head of the subtitle access unit, for example.
  • the graphics processing module 2 1 9 expands or reduces the caption data from the subtitle decoder control module 2 1 8 according to the instructions of the player control module 2 1 2, and converts it to the video data from the video decoder control module 2 1 6. Superimpose subtitles de overnight.
  • the graphics processing module 2 19 makes the image frame of the video data after being superimposed with the caption data match the display screen of the video output device connected to the video output terminal 120 in FIG. Enlarge or reduce the video data, and output the resulting video data to the video output module 220.
  • the graphics processing module 2 1 9 follows the instructions of the script control module 2 1 1 and the player control module 2 1 2 and the menu. Generate a message, etc., and overlay it on the output video data.
  • the graphics processing module 2 19 has the aspect ratio of the video output device connected to the video output terminal 1 2 0 in FIG. 1 and the video data recorded in the disk 1 0 1. The aspect ratio of the video data to be output to the video output module 220 is converted based on information indicating the overnight aspect ratio.
  • the information indicating the aspect ratio of the video display will represent the aspect ratio of 4: 3.
  • the graphics processing module 2 1 9 performs a squeeze process to reduce the video output to the video output module 2 2 0 in the horizontal direction (horizontal direction) and displays black on the left and right. To output.
  • the information indicating the aspect ratio of the video data is 16: 9.
  • the graphics processing module 2 1 9 squeezes the video data to be output to the video output module 2 2 0 in the vertical (vertical) direction, and displays data that displays black on the top and bottom. Put in and output.
  • the graphics processing module 2 19 outputs the video data output to the video output module 2 20 without any squeeze processing.
  • the graphics processing module 2 1 9 captures the video data currently being processed in response to a request from the player control module 2 1 2, for example. In addition, the graphics processing module 2 1 9 stores the captured video data, or the player system. PT / JP2005 / 021070 Supply to control module 2 1 2.
  • Video output module 2 2 0 Video output module 2 2 0
  • the video output module 220 exclusively occupies a part of the memory 1 1 3 in Fig. 1 and uses it as a FIFO (First In First Out) buffer 2 2 OA. From the graphics processing module 2 1 9 The video data is temporarily stored, and the video data stored in the buffer 2 2 OA is appropriately read out and output to the video output terminal 120 (FIG. 1).
  • FIFO First In First Out
  • the audio output module 2 2 1 exclusively occupies a part of the memory 1 1 3 in Fig. 1 and uses it as a FIFO buffer 2 2 1 A.
  • the audio decoder control module 2 1 7 (audio decoder 1 1 7) is temporarily stored, and the audio data stored in the buffer 2 2 1 A is read out appropriately, and the audio output terminal 1 2 1 (Fig. 1) is read. Output.
  • the audio output module 2 2 1 is the audio data from the audio decoder control module 2 1 7 is the audio data of the left channel is “primary audio” and the right channel is “sub audio”.
  • the audio data from the audio decoder control module 2 1 7 is output to the audio output terminal 1 2 1 according to the audio output mode specified in advance.
  • the audio output module 2 2 1 uses the audio data of the left channel among the audio data from the audio decoder control module 2 1 7. Copy as the right channel audio data, and the left channel and right channel audio data ("main audio” Audio data) to the audio output terminal 1 2 1.
  • the audio output module 2 1 is the audio data of the right channel of the audio data from the audio decoder control module 2 1 7 — The evening is copied as left channel audio data, and the left channel and right channel audio data (“sub audio” audio data) are output to the audio output terminal 1 2 1.
  • the audio output module 2 2 1 directly receives the audio data from the audio decoder control module 2 1 7 as the audio output terminal 1 2 Output to 1.
  • the audio output module 2 2 1 will be connected regardless of the audio output mode designation. Audio data from the video decoder control module 2 1 7 is output to the audio output terminal 1 2 1 as it is.
  • the audio output mode can be specified interactively by the user operating the remote controller or the like on a screen or the like on which a menu generated by the video content playback program 210 is displayed.
  • FIG. 5 shows a configuration example of the buffer control module 2 15 of FIGS. 2A and 2B.
  • the nota control module 2 1 5 exclusively uses a part of the memory 1 1 3 of FIG. 1 as a buffer 2 1 5 A, and is read from the disk 1 0 1 to the buffer 2 1 5 A. Temporarily store the data. Also, The buffer control module 2 1 5 reads out the data stored in the buffer 2 1 5 A, and the video decoder control module 2 1 6 and audio decoder control module 2 1 7 in FIGS. 2A and 2B. ⁇ Is supplied to the subtitle decoder control module 2 1 8.
  • the buffer control module 2 1 5 includes the data 2 1 5 A, the data head boy memory unit 2 3 1 and the data write memory unit 2 3 2 which are part of the memory 1 1 3, in addition to the buffer 2 1 5 A.
  • As an internal module it has a video readout function unit 2 3 3, an audio readout function unit 2 3 4, and a caption readout function unit 2 3 5.
  • the buffer 2 1 5 A is, for example, a ring buffer, which sequentially stores the data read from the disk 1 0 1 and stores the data for the storage capacity, and then overwrites the oldest data. The latest data is stored in an infinite loop.
  • the data head pointer storage unit 2 3 1 indicates the position (address) where the oldest data that has not yet been read from the buffer 2 15 A among the data stored in the buffer 2 15 A is stored.
  • the first data point to be stored is stored. .
  • the data writer storage unit 2 3 2 stores a write pointer that points to the position (address) of the buffer 2 15 A to which the latest data read from the disk 1 0 1 is written.
  • the position pointed to by the data write pointer is updated clockwise (clockwise) in the figure each time data read from disk 1 0 1 is stored in buffer 2 15 A. Then, the position pointed to by the data head pointer is updated clockwise in the figure as data is read from buffer 2 15 A. Therefore, of the data stored in buffer 2 15 A, the effective data is indicated by the data start pointer. This is the data stored in the clockwise direction from the current position to the position indicated by the data write pointer.
  • the video readout function unit 2 3 3 sends a video stream (elementary video data) The stream is read and supplied to the video decoder control module 2 1 6.
  • the audio read function unit 2 3 4 is also connected to the audio stream (audio stream) from the buffer 2 1 5 A in response to a request from the audio decoder control module 2 1 7 in FIGS. 2A and 2B. (Evenary elementary stream) is read out and supplied to the audio decoder control module 2 1 7.
  • the subtitle read function unit 2 3 5 also receives a subtitle stream (element list related to subtitle data) from the buffer 2 1 5 A. ) And supply it to the subtitle decoder control module 2 1 8.
  • a program stream (MPEG2-System Pramogram Stream) compliant with the MPEG (Moving Picture tutorial, s Group) 2 standard is recorded on the disc 101.
  • the buffer 2 15 A the program stream read from the disk 1 0 1 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 2 33 3 has a program stream demultiplexing function, and reads the video stream separately from the program stream stored in the buffer 2 15 A.
  • the audio readout function section 2 3 4 also has a program stream demultiplexing function and is stored in the buffer 2 1 5 A. Read the audio stream separately from the program stream.
  • the subtitle reading function section 2 35 also has a program stream demultiplexing function, and reads out the subtitle stream separately from the program stream stored in the buffer 2 15 A.
  • the video readout function part 2 3 3 is a part of the memory 1 1 3 in FIG. 1 and the video readout part memory part 2 4 1, stream—id register evening 2.4 2, and & 11_11 ⁇ 0 ⁇ ⁇ 011 () has register 24 3.
  • the video read pointer storage unit 2 4 1 stores the video read pointer that points to the position (address) of the buffer 2 1 5 A where the video stream is stored.
  • the video read function unit 2 3 3 stores the buffer 2 1 5 A, the data stored at the position indicated by the video read pointer is read out as a video stream.
  • the stream—id register 2 4 2 analyzes the program stream stored in the buffer 2 1 5 A and stores a stream_id described later for specifying a video stream to be read from the program stream.
  • the au—information 0 register 2 4 3 stores au_informationO, which will be described later, which is necessary for reading the video stream from the buffer 2 1 5 A.
  • the audio read function unit 2 34 is an audio read bus memory unit 2 5 1 that is part of the memory 1 1 3 in FIG. 1, stream—id register 2 5 2, and private_s earn—id register 2 5 3 have.
  • the audio read-out memory unit 2 51 stores an audio read pointer indicating the position (address) of the buffer 2 15 A where the audio stream is stored, and the audio read-out function unit 234 stores the buffer 21 5A Reads the data stored at the position indicated by the audio read pointer as an audio stream.
  • the read function unit 2 3 5 is a subtitle read function flag storage unit 2 6 1, which is a part of the memory 1 1 3 of FIG.
  • stream—id register 2 6 stream—id register 2 6 3, and private—stream_id register 2, 64.
  • the subtitle read function flag storage unit 2 61 stores a subtitle read function flag. Subtitle read function flag storage unit 2 6 When the subtitle read function flag stored in 1 is 0, for example, the subtitle read function unit 2
  • the subtitle read function unit 2 3 5 does not function, and when the subtitle read function flag stored in the subtitle read function flag storage unit 2 61 is, for example, 1, the subtitle read function unit 2 3 5 functions.
  • the subtitle read-out memory unit 2 6 2 stores a subtitle read-out point that points to the position (address) where the subtitle stream is stored in the buffer 2 1 5 A, and the subtitle read function unit 2 3 5 1 5 A Read out the data stored at the position pointed to by the character readout button as a subtitle stream.
  • stream—id register 2 6 3 and private—stream—id register 2 64 analyze the program stream stored in notifier 2 1 5 A and identify the subtitle stream to be read from the program stream.
  • the st ream—id and private_st ream one id described later are stored.
  • FIG. 6 schematically shows the directory structure of the disk 10 1.
  • ISO Inte'rn at ional Organization for Standard i zat i on
  • UDF Universal 1 Disk Forma 'http: /vww.osta.org/specs
  • the file system specified by /) etc. is used, and the data files recorded on the disc 100 are managed hierarchically according to the directory structure.
  • the file system is not limited to the file system described above.
  • the "VIDEO" directory is placed in the root directory that indicates the base point of the file system.
  • the "VIDEO" directory contains the "CLIP” directory and the "STREAM” directory. There are two directories with the directory.
  • the “VIDEO” directory contains “SCRIPT.DAT” and “P LAYLIST.DAT” files. There are two data files.
  • the "SCRIPT.DAT” file is a script file that describes the scribe program.
  • the “SCRIPT.DAT” file describes a script program used to make the playback format of the disk 100 1 effective.
  • the script program described in the “SCRIPT.DAT” file is interpreted and executed by the scribble control module 2 1 1 in FIG. 2A and FIG. 2B.
  • the “PLAYLIST.DAT” file stores one or more playlists (PlayList () in FIG. 7 described later) in which the playback procedure of content such as video data recorded on the disc 1 0 1 is described. .
  • the “CLIP” directory contains one or more clip information files.
  • the “STREAM” directory one or more clip stream files are placed. That is, in FIG. 6, the “CLIP” directory contains three clip information files “00001.CLP”, “00002” CLP ”,“ 00003. In the directory, three crib stream files "00001.PS", "00002.PS", and "00003.PS" are placed.
  • the clip stream file contains a program stream that time-division-multiplexes one or more elementary streams obtained by compressing and encoding data such as video data, audio data, and subtitle data. Yes.
  • the clip information file contains metadata about the clip stream, such as the nature of the corresponding clip stream file.
  • the clip stream file and the clip information file are
  • the clip stream file is given a file name according to the naming rule of 5 characters + period + "PS".
  • the clip information file contains the corresponding clip stream file and the corresponding clip stream file.
  • File names are assigned according to the same naming rule: 5 numbers + period + "CLP”.
  • a file is a clip stream file or a clip information file can be identified by the extension of the file name (the part to the right of the period), and the corresponding clip stream file And the clip information file can be identified by whether the part other than the extension of the file name (the part on the left side of the period) matches.
  • FIG. 7 shows the internal structure (syntax) of the “PLAYLIST.DAT” file under the “VIDEO” directory of FIG. 'Here, in Fig. 7, the "Syntax” column indicates the data structure, and the “No. of bits” column indicates the " Indicates the bit length of data in the “Syntax” column. Furthermore, “bs lbf” (bit string left bit first) in the “Mnemonic” column indicates that the data in the “Syntax” column of the corresponding line is sent from the left bit. “Uimsbf” (unsigned integer most significant bit first) means that the "Syntax” column of the corresponding line is an unsigned integer value and sent from the most significant bit. The same applies to the same figure as FIG. 7 described below.
  • name length (8 bits) and name —string (255 bytes) for describing information such as the name (file name) and so on are arranged sequentially from the top.
  • name-length represents the size of the name-string arranged after that in bytes.
  • name—s ing represents the name (file name) of the “PLAYLIST.DAT” file.
  • name-string the number from the beginning to the number of bytes represented by name-length is used as a valid name. For example, if name_length has a value of 10, the first 10 bytes of name—string are interpreted as a valid name.
  • number_o and PUyLists indicate the number of PlayList 0s that follow. After numbe r of PlayLists, just that number of? 1 & 315? 13 t () is placed.
  • PlayListO is a playlist in which the playback procedure of the clip stream 3 file recorded on the disc 101 is described, and has the following internal structure.
  • PlayList_data_length (32 bits) is arranged at the head of PlayListO. That is, PlayList—data_length represents the size of PlayList 0.
  • PlayList data—length, reserved_for_word_alignment (15 bits) and capture—enable—flag—PlayList (1 bit) are placed in sequence.
  • the 15-bit reserved_for—word—alignment is placed to align with the 16-bit position at the 1-bit capture_enable—flag—PlayList position that follows.
  • capture 1 enable-flag 1 PlayList is the disk playback device shown in Fig. 1 where the disk 1 0 1 of the video data (video data belonging to PlayList 0) corresponding to the video stream played by PlayListO is played. This is a 1-bit flag that indicates whether or not secondary use of is permitted.
  • capture_enable—ag—PlayList is 1 bit.
  • the capture-enable_flag_PlayList is composed of a plurality of bits, so that secondary use of video data belonging to PlayListO can be allowed in stages. That is, the capture-enable-flag-PlayList can be composed of 2 bits, for example.
  • the capture-enable_nag-PlayList is 2 bits as described above, the reserved-for-word_alignment arranged before that is 14 bits to take the word line.
  • the video player can be used, for example, on a recording medium that can be attached to the disc playback device or on a disc. It is recorded on a recording medium that can be attached to and detached from other devices that can be connected to the disk playback device, or transmitted to other devices via a network such as the Internet.
  • the video data can be added with information that limits the number of times the video data is recorded on the recording medium and the number of times it is distributed.
  • PlayList represents the size of the PlayList—name—st ring placed after that in bytes
  • PlayList represents the name of PUyLi st ().
  • PlayList Name—string.
  • nuniber_of—Playl tems indicates the number of subsequent Playl tem ().
  • PlayltemO units a content playback procedure can be described in PlayltemO units.
  • each Play 0 corresponding to number-of_PlayItems in PlayList 0 is given a unique ID (Identification) in P 1 ayL i st 0.
  • the first P 1 ayl tem 0 in PI ayL ist 0 is assigned an ID number of 0, and for the following PlayltemO, in the order of appearance, the first, second, ... An ID is attached.
  • PlayListMarkO is placed after PlayltemO for the number—of—Playltems.
  • PlayListMarkO is a set of MarkO to be described later, which is a mark on the time axis of playback performed in accordance with PlayList 0. Details thereof will be described later with reference to FIG. Description of rpiayltemO "
  • FIG. 8 illustrates a portion structure of PlayltemO included in PlayListO of Figure 7. 1
  • length (16 bits) is arranged, and length represents the size of PlayltemO including it.
  • CI ip—Inf ormati on—file—name is the clip information file corresponding to the clip stream file (file with the PS extension in Fig. 6) that is played by PlayltemO (the extension in Fig. 6 is CLP file).
  • the file name of the clip information file to be played back by PlayltemO is recognized from Clip-Iiiformation_nie_name according to the naming convention described above for the file name of the clip stream file and clip information file, and the clip stream file is specified. be able to.
  • IN-time and OUT-time are time information that specifies the playback start position and playback end position of the cribstream file specified by CI ip_Information- ⁇ le_name, respectively.
  • the middle position including the beginning of the clip stream file can be specified as the playback start position, and according to OUTJime, the middle position including the end of the clip stream file can be specified as the playback end position. can do.
  • FIG. 9 shows the internal structure of PlayListMarkO included in PlayList 0 of FIG.
  • PlayListMarkO is a set of zero or more MarkOs that serves as a mark on the time axis of reproduction performed according to P1ayListO (FIG. 7) including the PlayListMarkO. 31 MarkOs made PlayList 0
  • the time information that represents one time on the time axis of the playback that takes place, the type information that represents the type of MarkO, and the type information that represents the type that caused the event Have at least argument information.
  • length (32 bits) is arranged at the head of PlayListMarkO.
  • length represents the size of PlayListMarkO that contains it.
  • number—0 and PlayList_marks (16 bits) are placed. 11111 ⁇ 6 and 0 and 1 ) 1 & 1 ⁇ 3 and 1 ⁇ 5 indicate the number of MarkOs that follow. After the number—of—PlayLis and marks, the structure of MarkO is described by the number—o and P 1 ayLi st—marks.
  • Markjype (8 bits) is placed at the beginning of MarkO.
  • mark—type is the type information described above and represents the type of MarkO that contains it. In the present embodiment, for example, three types of MarkO types are prepared: Chapter, Chapter, Index, and Event.
  • MarkO of type “Chappu” (hereinafter referred to as “Chapter Yu” as appropriate) is the head position of the chapter that is the unit of cueing to divide PlayListO. It is a mark.
  • MarkO of type index (hereinafter referred to as “index mark” as appropriate) is a mark of the head position of the index, which is a unit that subdivides the chapter.
  • the event type MarkO (hereinafter referred to as event mark as appropriate) is a mark of the position where the event is generated during the playback of the content according to PlayList 0. The occurrence of an event by an event mark is notified to the script control module 2 1 1 as described later.
  • Figure 10 shows the relationship between the mark-type value and the MarkO type.
  • markjype of the evening mark is set to 1.
  • 2 is set for the mark-type of the index mark
  • 3 is set for the mark-type of the event mark.
  • niark_name length (8 bits) is placed after mark—type.
  • mark_name length is the effective size of mark—nam e—string
  • mark—nanie_string is MarkO Represents the name of each. Therefore, the mark_name—string from the beginning to the number of bytes represented by mark—name_lengh th represents a valid MarkO name.
  • mark—time—st a immediate indicates the time represented by MarkO in the clip stream file specified by ref_to—PI ayl tem—id.
  • FIG. 11 shows the relationship between PyListO, PlayltemO, clips, and program streams stored in clip stream files.
  • PlayListO is composed of three P 1 ay Item 0s, and IM0, # 1, and # 2 assigned serial numbers are assigned to each of the three PlayltemOs.
  • IM0, # 1, and # 2 assigned serial numbers are assigned to each of the three PlayltemOs.
  • Playltem # i is described as Playltem # i as appropriate below.
  • clips that are contents played back by PlayItem # 0, Playltemtl, and PyItem # 2 are shown as clip A, clip B, and clip C, respectively.
  • the entity of the clip is a program stream from INjime to 0UT_tinie in the program stream stored in the clip stream file specified by CI ip—Information_fi 1 e-name in PlayltemO in FIG.
  • the program streams as the entities of clip A, clip B, and clip c are shown as program stream 8, program stream B, and program stream C, respectively.
  • MarkO which is the mark of time tO on the time axis of playback performed according to PlayListO
  • its ref-to-Playl tem_id and mark—time—stamp are described as follows:
  • mark-time-stamp contains a clip's stream file containing program stream B. The time corresponding to the time tO is described.
  • entry—ES—stream—id and entry—ES—private s tream_id identify the element stream when linking MarkO to a particular element list stream. Used for. That is, entry-ES-stream-id describes the stream-id described later of the elementary stream associated with Mark 0. In addition, in the entry-ES_private-stream-id, a private-stream_id (described later) of an elementary stream associated with MarkO is described as necessary.
  • video stream # 1 and video stream # 2 are multiplexed, video stream # 1 is played and video stream # 2 is played.
  • ES stream—id and entry—ES—private—str eam—id.
  • Stream # id stream— id and private— stream— id force is described, and when video stream # 2 is played, a mark is generated.
  • mark data is argument information that becomes an argument of an event generated by the event mark when MarkO is an event mark. It should be noted that mark-data can also be used as the number of the chapter index represented by the chapter mark or index mark when Mark 0 is a chapter mark or index mark.
  • FIG. 6 three clip information files "00001. CLP”, “00002 CLP”, “00003. CLP” are placed in the "CLIP” directory, and each has a "STREAM” directory. Stored is an event list indicating the properties of the clip stream files “00001.PS”, “00002PS” and “00003.PS” placed in the bird.
  • FIG. 12 shows the internal structure of such a clip information file ClipO. .
  • Clip information file At the beginning of ClipO, presentation—start—time and presentation—end—time (both 32 bits) are sequentially arranged.
  • presentat ion_start-time and presentat ion-end_time represent the start and end times of the clip stream file corresponding to the clip information file ClipO. Note that the time of the clip stream file is described in multiples of 90 kHz used for the time of MP EG2-System.
  • capture-enable jlag_PlayList in Fig. 7 indicates whether or not secondary use of videos belonging to PlayList 0 corresponding to video streams played by PlayListO is permitted.
  • the capture-enable-flag_Clip in Fig. 12 allows secondary use of the video data corresponding to the video element list stream stored in the clip stream file corresponding to the clip information file CI ip 0. Indicates whether or not. Therefore, the capture-enable-flag-PlayList in Fig. 7 and the capture_enable_flag- Clip in Fig. 12 differ in the unit of video data that allows secondary use.
  • capture-enable_flag_Clip in Fig. 12 can be set to multiple bits instead of 1 bit as explained in capture-enable_ilag_PlayList in Fig. 7.
  • Length (16 bits) is placed at the beginning of StreamlnfoO, and this length represents the size of StreamlnfoO including it. Following the length, stream—id (8 bits) and private—stream_id (8 bits) are arranged. With this stream—id and private—stream—id, the element list associated with StreamlnfoO is defined. Identified.
  • Fig. 13 shows the stream_i that identifies the element list.
  • d and private indicates the relationship between the stream_id and the elementary list.
  • the stream_id is the same as that specified in the MPEG2-System standard, and its value is determined in advance for each attribute of the elementary stream in the MPEG2-System standard. Therefore, an elementary stream having an attribute defined in the MPEG 2-System standard can be specified only by stream-id.
  • e_stream_id is an elementary stream with attributes not specified in the MPEG2-System standard. It is information for identifying.
  • Figure 13 shows an elementary stream of video encoded using the encoding system defined by MPEG, and an audio elementary stream encoded using the ATRAC (Adaptive TRansform Acoustic Coding) system (hereinafter, (Referred to as ATRAC audio stream), audio elementary stream encoded by LPCM (Linear Pulse Code Modulation) (hereinafter referred to as appropriate, LPCM audio stream), subtitle elementary stream (referred to as subtitle as appropriate) It shows the relationship between stream—id and private—stream—id for elementary streams with four attributes (stream).
  • ATRAC audio stream Adaptive TRansform Acoustic Coding
  • LPCM audio stream Linear Pulse Code Modulation
  • subtitle elementary stream referred to as appropriate
  • It shows the relationship between stream—id and private—stream—id for elementary streams with four attributes (stream).
  • an elementary stream of a video that is encoded with the encoding method specified by MPEG has a value in the range of OxEO to OxEF (Ox is a character string that follows 1 hexadecimal It is specified that multiplexing is used as a stream-id that identifies an elemental stream. Therefore, for an elementary stream of a video that is encoded with the encoding method specified in MPEG, (k 16 video elementary streams that can be identified by stream—id in the range of EO to OxEF can be multiplexed in the program stream.
  • stream-id is not defined for ATRAC audio stream, LPCM audio stream, and subtitle stream.
  • OxBD which is a value representing the attribute privat_stream-1 in MPE G2-System
  • identification is done using private—seam—id.
  • private_stream_id in the range of 0x00 to OxOF is used to identify the ATRAC audio stream. Therefore, 16 ATRAC audio streams can be multiplexed in the program stream.
  • a value private-stream-id in the range of 0x10 to OxlF is used for identification of LPCM audio stream. Therefore, 16 LPCM audio streams can be multiplexed in the program stream.
  • a private-stream-id with a value in the range of 0x80 to 0x9F is used to identify the subtitle stream. Therefore, 32 subtitle streams can be multiplexed in the program stream.
  • the structure of pts—change—points and the number of Dynamic Info 0 is set as many as the number—of—Dynamic Info.
  • pts—change—point represents the time when the DynamicInfoO information set with it is valid.
  • pts-change-point which represents the beginning time of the elementary stream, is the clip information file CI ip () corresponding to the clip stream file in which the elementary stream is stored.
  • Dynamiclnfo 0 describes dynamic information that changes during playback of the elementary stream specified by stream_id and private_seam-id.
  • the information described in DynamicInfoO becomes valid when the playback time indicated by p t s_change—point is set. Details of DynamicInfoO will be described later with reference to FIG.
  • Fig. 14 shows the syntax of StaticInfoO.
  • StaticInfoO has different contents depending on the attribute of the corresponding elementary stream.
  • the attribute of the elementary stream corresponding to StaticInfoO is determined by the stream-id and private-stream-id included in Streamlnfo 0 in Fig. 12 including the StaticInfoO.
  • St iclnfo 0 is picture—size (4 bits), frame—rate (4 bits), and cc— It consists of flag (1 bit) and —-reserved- for-wo rd-al ingnient for door line.
  • picture—size represents the size of the image displayed by the video data corresponding to the video stream.
  • fram.e—rate represents the frame frequency of the video stream corresponding to the video stream.
  • the cc-flag indicates whether or not closed caption data is included in the video stream. That is, for example, if the video stream contains a closed caption device, the cc-flag is set to 1, and the video stream does not contain a closed caption device. The cc-flag is 0.
  • Stat iclnf o 0 is audio_language 1 code (16 bits)
  • 'audiojanguage— code describes the code that represents the language of the audio data contained in the audio stream.
  • channel—configuration indicates the attributes of the audio data contained in the audio stream, such as mono / stereo / multi-channel.
  • lfe_existence indicates whether the low-frequency emphasis channel is included in the audio stream. If it is included, it is 1; otherwise, it is 0.
  • the sanipling_frequency is information indicating the audio sampling frequency included in the audio stream.
  • the subtitle-language_code composed of reserved-for-word-al ingnient for taking a single line describes a code representing the language of the caption data included in the caption stream.
  • the configurable flag is information that indicates whether or not to allow the display of subtitle data contained in the character stream to be changed from the default display method. For example, the display method is allowed to be changed. 1 is written in the case, and 0 is written if not allowed.
  • the display format of subtitle data includes the display size, display position, display color, display pattern (for example, blinking display), display direction (for example, vertical or horizontal direction), etc. . "Description of DynamicInfo ()"
  • DynamicInfoO in FIG. 12 will be described with reference to FIG. ' Figure 15 shows the DynamicInfoO syntax.
  • DynamicInfoO At the beginning of DynamicInfoO, reserved jor—word_alignment (8 bits) for word alignment is arranged, and the subsequent elements have different contents depending on the attribute of the elementary stream corresponding to DynamicInfoO.
  • the attributes of the elementary list corresponding to DynamicInfoO are determined by the stream-id and private-stream-id included in StreamlnfoO in Fig. 12 including DynamicInfoO. To be judged.
  • DynamicInfoO ('This describes dynamic information that changes during playback of elementary streams, as explained in Fig. 12. This dynamic information is not particularly limited.
  • the output attribute of the data corresponding to the dynamic stream corresponding to DynamicInfoO that is, the output of the data stream output by processing the elementary stream, is Dynamic ⁇ . Described in 00.
  • Dynamic info 0 is di splay—aspec and rat io (4 bits), It consists of reserve d— for— word— a 1 ingment.
  • dipiay—aspect—ratio the aspect ratio of the video data as an output method of video data corresponding to the video stream, for example, is described. That is, in the dip y_a spec ratio, for example, information indicating whether the aspect ratio is 16: 9 or 4: 3 is described.
  • the DynamicInfoO of the video stream includes, for example, video data in addition to the aspect ratio. It is possible to describe the size of the displayed image (X pixel XY pixel).
  • DynamicInfoO When the elementary stream corresponding to DynamicInfoO is a one-time stream (stream AUDIO) DynamicInfoO is reserved for for channel- as s ignment (4 hits) and word line. word—consists of al ingment. channe 1 — ass ignment describes the output method of the two channels if the audio stream contains two channels of audio. That is, in channel-assignment, information indicating whether the audio data is assigned as a stereo or dual (Nike language) channel is described.
  • Dynamic Info 0 consists of reserved-for-word_alingment for taking word alignment. That is, in the embodiment of FIG. 15, the output attribute as dynamic information is not defined for the subtitle stream.
  • Fig. 16 shows the syntax of EP_map ().
  • each element stream multiplexed in the program stream stored in the clip stream file corresponding to the clip information file ClipO in Fig. 12 including the EP-map 0 is shown for each element stream.
  • Decoding start point (entry point) information that can start decoding the elementary stream is described.
  • decoding can start Can be calculated, but decoding can be started for a variable-rate stream or a stream with a different size for each video access unit, such as a video stream encoded according to the MPEG standard. Points cannot be obtained by calculation, and cannot be found without actually analyzing the stream. Recognizing the point where decoding can start quickly is important for random access, and EP-map () can quickly recognize the point where decoding can start.
  • Sequence-header 0 sequence header
  • EP—map () has a reserved—for_word—alignment (8 bits) for the door line, followed by a number—of_stream—id—entries (8 bits), power s. I will. “number—of—stream—id—entries” indicates the number of elementary streams in which the information of the decoding start point is described in EP—mapO.
  • stream—id 8 bits
  • private—st ream—id 8 bits
  • stream—id 8 bits
  • private—st ream—id 8 bits
  • number_o and EP—entri es 32 pits
  • number—oi_EP—entries indicates the number of elements that can start decoding the elementary stream specified by the immediately preceding stream—id and private—stream_id.
  • the information about the start point of decoding of the elementary stream specified by trem id is repeatedly arranged as many times as numb_r_of_EP_en tries. That is, if the corresponding element stream is a video stream, indexjjninusl and N-th—Ref_picture—copy are placed first, followed by PTS—EP_s rt (32 Bit) and RPN_EP_start (32 bits) are placed, and these are placed repeatedly. index—N—minusl and N-th—Ref—picture—copy will be described later. If the corresponding elementary stream is not a video stream, decoding starts after 16-bit reserved—for—future—use. PTS—EP—start (32 bits) and RPN_EP—start (32 bits) as information on possible points are placed, and these are repeatedly placed.
  • N-th—Re and picture—copy one of IstRef—picture, 2ndRe and picture, 3rdRef_picture, and 4thRei_picture recorded in private_stream—2 indicated by RPN_EP_start described later is copied. Also, information indicating which field was copied is recorded in i n ex_N_m i n u s 1 using the values shown in FIG. In other words, as shown in Fig. 17, index—N—minusl is 0 when IstRe and picture are copied, and 1 is 3rdRe when 2ndRef—picture is copied. When picture is copied, 2 is recorded, and when 4thRe and picture are copied, 4 is recorded.
  • PTS—EP—start which is one of the decoding start point information
  • PTS—EP—start is a program stream in which the element list stream identified by id and private—stream—id is multiplexed. Indicates the time (playback time) at which decoding can start within the stored clip stream file.
  • the element stream specified by stream—id and private—stream—id is multiplexed in RPN—EP—start, which is one of the information on the decode start point, as described above. Describes the value when the position of the decoding start point in the clip stream file where the program stream is stored is counted in the unit of packO of the program stream.
  • the size of packO is fixed at 2048 bytes. In the present embodiment, it is assumed that one section of the disk 10 1 (FIG. 1) is 2048 bytes.
  • a privat e-stream_2 packet (PES_packet 0 of private stream-2 attribute), which will be described later, is arranged immediately before the decoding start possible point (entry point).
  • rivat e—stream—2 packets store information used to decode the video stream placed between the private—stream—2 packets up to the next private—stream_2 bucket Has been. Therefore, for the video stream, RPN—EP—start, which is the information about the point where decoding can start, is placed just before the actual decoding start point, not the actual decoding start point itself.
  • Private_stream_2 bucket ⁇ ⁇ The beginning position of ⁇ is described.
  • the set of PTS-EP-start. And RPN-EP-start as information of the decoding start possible point is an elementary stream specified by stream-id and private-stream-id. Each is sorted in advance in ascending order. As a result, a binary search is possible for the set of PTS-EP-start and RPIEP-start as information on the decoding startable point.
  • the clip stream file is configured based on MPEG2-Program_Stream () defined in the MPEG-2 System (ISO / IEC 13818-1). That is, Fig. 18A and Fig. 18B are shown in Table 2-31, Table 2-32, Table 2-32 described in the MPEG-2 Systern (IS0 / IEC 13 818-2000) standard. 33 is shown.
  • MPEG2-Program_Stream defined in the MPEG-2 System (ISO / IEC 13818-1). That is, Fig. 18A and Fig. 18B are shown in Table 2-31, Table 2-32, Table 2-32 described in the MPEG-2 Systern (IS0 / IEC 13 818-2000) standard. 33 is shown.
  • the program stream stored in the clip stream file is MPEG2—Progfam—StreamO as defined in Table 2-31 of the MPEG-2 System standard.
  • the description of MPEG2-Program-StreamO is also described in Japanese Patent No. 27 85220.
  • One packO is composed of one Pack_header () and an arbitrary number of PES-packet 0 as defined in the MPEG-2 System standard table 2-32. Details of Pack—header 0 are defined in Table 2-33 of the MPEG-2 System standard.
  • the size of packO is defined as a variable length, but here it is assumed to be fixed at 2048 bytes as described in FIG. Furthermore, here, the number of PES_packetO of one packO is one, two, or three. If PackO starts with a private-stream- 2 packet, which will be described later, PES_packet 0 of the corresponding video stream always exists. In addition to this, the third one PES can be placed as packet 0 (padding—packet packet). The private_stream_2 bucket is always placed at the top of Pack 0.
  • FIG. 19A and FIG. 19B to FIG. 21A and FIG. 21B show PES-packet 0 defined in Table 2-17 of the MPEG-2 System standard.
  • the header part of PES_packet () includes PTS (as shown in FIG. 19A and FIG. 19B, and FIG. 20A, FIG. Information indicating display timing called “Presentation Time Stamp” and information indicating decoding timing called “DTS” (Decoding Time Stamp) can be arranged.
  • PTS display timing
  • DTS decoding timing
  • a PTS is added to all access units (decode units constituting an elementary list defined in MPEG2-Systeni), and MPEG2-Syste Suppose that DTS is added when specified in m.
  • the elementary stream multiplexed in the program stream is stored in PES-packet-data-byte (Fig. 21 A and Fig. 21 ⁇ ) of PES_packet ().
  • PES-packet-data-byte Fig. 21 A and Fig. 21 ⁇
  • a value corresponding to the attribute of the elementary stream is described in order to identify the elementary stream stored in the PES-packet and data_byte.
  • FIG. 22A and FIG. 22B show a table 2-18 of the MPEG-2 System standard.
  • the stream-id of the PES-packet 0 of the element list attribute with the attribute called private-stream-1 is set to 10111101B according to Fig. 23.
  • the stream-id of PES-packet 0 of padding-packet is 10111110B according to FIG.
  • the s earn-id of PES-packet 0 of the element stream with the attribute called private-stream-2 is 10111111B according to Fig. 23.
  • the stream-id of PES-packet 0 of the audio stream defined by MPEG is ⁇ .
  • the lower 5 bits xxxxx of ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ are audio stream pickers that distinguish audio streams.
  • the s earn-id of the PES-packet () of the video stream (video elementary stream) defined in MPEG is ⁇ .
  • the lower 4 bits xxxx of ⁇ are video stream pickers that distinguish video streams, and program streams are numbers that can be divided into 5 by this video stream picker 1 6
  • Video streams (video streams defined by MPEG) can be multiplexed.
  • PES-packetO whose stream id is ⁇ is used to store a video stream defined in MPEG
  • PES_packet 0 whose stream_id is ⁇ xxxB is a video stream defined in MPEG. Used to pay.
  • the stream_id of PES—packetO used to store an elementary stream of an encoding method not defined by MPEG is not defined by MP.EG.
  • the elementary stream of the encoding method not defined in simply specify the stream-id and set it in PES-packet.0. It cannot be stored.
  • PES-packet-data-byte of PES-packet 0 of private_stream-1 is expanded and an elementary stream of an encoding method not defined in MPEG is stored.
  • Private_streaml- the syntax of PES_payload () are shown s.
  • 'pr i vat e_streaml_PES_pay load () is composed of pr i vat e—header () and private—payloadO.
  • private—payload 0 an elementary list of an encoding method not defined in MPEG, such as an ATRAC audio stream, LPCM audio stream, or subtitle stream, is stored.
  • private—header 0 is preceded by private—stream—id (8 bits).
  • private—stream—id is identification information that identifies the elementary stream stored in private_payload 0. For example, the value is as follows according to the attribute.
  • FIG. 25 shows the relationship between the value of private-stream-id and the attribute of the elementary stream stored in r_ivate_pay load 0.
  • Fig. 25 three patterns of OOOOxxxxB, OOOlxxxxB, and ⁇ are adopted as private-stream-id values. "" Represents any value of 0 or 1.
  • Fig. 23 According to Fig. 25, ATRAC audio stream is stored in private-payload 0.
  • the LPCM audio stream is private— stored in pay load 0 private— s eaml— PES— pay load () Dprivate_stream and id is set to OOOlxxxxB Note that the lower 4 bits xxxx of OOOlxxxxB are audio stream numberers that distinguish LPCM audio streams, and the program stream number that can be distinguished by this audio stream number 1 2 4 ) Multiple LP CM audio streams can be multiplexed.
  • the private-streaml-PES-payload 0 private-stream-id where the subtitle stream is stored in private-payloadO is lOOxxxxxB.
  • the lower 5 bits xxxxx of ⁇ is a subtitle stream picker that distinguishes the subtitle stream. 2 5 ) Multiple subtitle streams can be multiplexed.
  • FIG. 13 described above summarizes the relationship between FIG. 23 and FIG.
  • private_stream and PES-payloadO the elements following private_stream-id differ in content depending on the attribute of the elementary stream stored in private-py load 0.
  • the attribute of the element list stream stored in private_payloa d () is determined by the private—stream—id at the beginning of private—header ().
  • AU_locator indicates the start position of the audio access unit of the ATRAC audio stream stored in private—payloadO, based on the position immediately after the AU_locator. The If there is no audio access unit in private—payloadO, for example, OxFFFF is described in the AU-locator.
  • the fs flag indicates the sampling frequency of the LPCM stream stored in rivate_payload (). That is, for example, if the sampling frequency is 48 KHz, fs-flag is set to 0 and the sampling frequency is 44.
  • fs—flag is set to 1.
  • cl and flag indicate the number of channels of the LPCM stream stored in private—payloadO. For example, chjlag is set to 1 when the LPCM audio stream is monaural, and ch_flag is set to 2 when the LPCM audio stream is at low level.
  • the AU-locator indicates the start position of the audio access ⁇ of the LPCM stream stored in privat e_payload () with reference to the position immediately after the AU-locator. If there is no audio access unit in private—payloadO, OxFFFF is described in AU—locator, for example.
  • the AU-locator indicates the head position of the subtitle access unit of the caption stream stored in private_payload () with the position immediately after the AU-loc at or as the reference.
  • private If there is no subtitle access unit in payloadO, the AU locator For example, OxFFFF is described.
  • Fig. 26 shows the syntax of private-stream2-PES_payload ().
  • private—stream2—PES—payload 0 is an extension of private—stream—2 PES—packet 0 0 PES—packet—data—byte ( Figure 2 A and Figure 21 B), ie private — PES of stream_2—packet () is an extended PES— packet—datajjte, which describes the information used to decode the video stream.
  • PES_packet 0 of private_stream-2 is arranged immediately before the decoding start possible point in the video stream. Therefore, in the present embodiment, if the private stream_2 PES-packetO is found from the program stream, decoding can be started from the video stream immediately thereafter.
  • RPN-EP-start of EP-map () in Fig. 16 indicates the start position of packet 0 of PES of private stream-2 for the video stream. .
  • IstRef—picture, 2ndRef_picture, 3rdRe picture, 4thRef_pieture is the video stream specified by video—stream—id, PES—packet () power of private—stream—2 and the next private—stream—2 PES—The position of the last packO including the first, second, third, and fourth reference images in packe tO is expressed as a relative value.
  • PES packetet
  • the position of the last packO including the first, second, third, and fourth reference images in packe tO is expressed as a relative value.
  • IstRe, picture, 2ndRef_picture, 3rdRef-picture, and 4thRef-picture see, for example, Japanese Patent Application Laid-Open No. 09-46712 (Japanese Patent Application No. 07-211420-6), bytes—to—f irst— by o
  • au—information () contains information about the video access unit in the video stream up to the next private—stream—2 PES—packet 0. Is described. Details of au_information () will be described later with reference to FIG.
  • VBI0 is used to describe information of Closed Caption.
  • Fig. 27 shows the au_information () syntax of Fig. 26.
  • the content of the for loop is arranged as many as the number—o and access—unit. Ie, number—of—access—unit containing private—stream—2 PES—packet 0 force, and the next private—s tream—2 PES—packet 0 to one or more video access Information about each nid is placed.
  • the information placed in the for loop (information on video access units) is as follows.
  • pic—struct_popy (4 bits), au—ref_flag (1 bit), AUJeiigth (21 bits), and reserved are arranged in the for loop.
  • pic—Struc and copy includes IS0 / IEC 14496-10, D., which is set for the corresponding video access unit when the video stream is MPEG4-AVC (IS0 / IEC 14 496-10).
  • a copy of pic—st rue t () defined in 2.2 is described.
  • pic-struct 0 is information such as displaying a picture as a frame or displaying a top field of a picture and then displaying a bottom field.
  • pic_struct table is shown in Fig. 28.
  • pic— A struct is used as display method instruction information for instructing a display method for displaying a picture.
  • the leftmost Value in Fig. 28 is indicated in pic_st ruct. As shown in the column, 0 is set. Similarly, if the picture indicates that the top or bottom field is to be displayed, the pic-strucU of that picture is set to 1 or 2, respectively. In addition, if the picture tells the top field and bottom field to be displayed in that order, the pic-struct of that picture is set to 3, and the pot field and top field are displayed in that order. When instructing to display, pic-struct is set to 4.
  • the pic_struct for that picture is set to 5, and the bottom field, top field, and repetition are displayed.
  • the pic-struct is set to 6 to indicate that the bottom field should be displayed in that order.
  • a pic_struct of that picture is set to 7 or 8, respectively.
  • au-ref-f lag indicates whether or not the corresponding access unit is a reference image that is referenced for decoding other access units. If it is a reference image, it is set to 1. If it is not an image, it is set to 0.- ⁇ .
  • AU-length indicates the size of the corresponding access unit in bytes.
  • FIG. 29 to FIG. 32 show specific examples of the format data described above on the disc 10 1 in FIG.
  • MPEG2-Video is used as the video stream
  • ATRAC audio stream is used as the audio stream.
  • the video stream and the audio stream are not limited to this. That is, for example, MPEG4-Visual or MPEG4-AVC can be used as the video stream.
  • MPEG1 / 2/4 audio or LPCM audio stream can be adopted as an audio stream.
  • a subtitle stream is not always continuously decoded and displayed at the same interval. That is, the subtitle stream is sometimes supplied from the buffer control module 2 15 in FIG. 2A and FIG. 2B to the subtitle decoder control module 2 18 and decoded.
  • FIGS. 29 to 32 show that in the disk 1.0 1, as shown in FIG. 6, the “CLIP” directory contains three clip information files “000 01. CLP”, “00002. CLP”, “00003 CLP “is recorded, and the three clip information files corresponding to each of the three clip information files" 00001. CLP ",” 00002. CLP “,” 00003. CLP “are recorded in the” STREAM “directory.
  • "PLAYLIST.DAT” file clip information file "00001. CLP”, “00002. CLP”, and "00003. Specific examples such as “CLP” are shown.
  • FIG. 29 through Fig. 32 some data such as "PLAYLIST.DAT” file is omitted. That is, FIG. 29 shows a specific example of the “PLAYLIST.DAT” file described in FIG.
  • Playlist # 0 For the first PlayList 0, Play st # 0, capture—enabl e—flag—PlayList is 1, so secondary use of the video data played back according to PlayList # 0 is not possible. Is allowed. For Play List # 0, number-0 and Playstems are 2, and therefore, the number of PlayltemO included in PlayList # 0 is 2. In Figure 29, the two? 1 & 6111 () 1 & 1 ⁇ 6111 # 0? A specific example of 1 & 116111 # 1 is
  • P 1 ay Item # 0 which is the first P 1 ay 11 em 0 included in PlayList # 0
  • Clip— Information— file—name described in FIG. 8 is changed to “00001. CLP”, I n— The time is 180, 090 and 0UT_time is 27, 180, 090 respectively. Therefore, the clip played by PlayList # 0 in PlayList # 0 is the clip stream file “00001.PS” corresponding to the clip information file “00001.CLP” from time 180,090 to 27,180,090. is there.
  • Play 11 em # l which is the second P 1 ay Item 0 included in PlayList # 0, explained in Figure 8 (: 110—11 ⁇ 01 "1 ⁇ 011_16—11 & 1116 is" 00002. (: [ ⁇ ", In_tinie is 90, 000, OUT-time is 27, 090, 000. Therefore, clips played by P 1 ayl tem # l in PlayList # 0 are The time from 90,000 to 27,090,000 of the clip stream file “00002.PS” corresponding to the clip information file “00002 CLP”.
  • PlayList tl which is the second PlayListO Capture- enable- flag_P yUst is 0, so secondary use of video data played back according to P yList # 1 is not permitted.
  • number-of-Playl tems is 1, and therefore, the number of Playl tem () included in PlayList # 1 is 1.
  • FIG. 29 a specific example of Playltem # 0, which is one PlayltemO, is shown below the “PlayList # l” column.
  • PI ayltemtO which is one P 1 ay I temO included in PlayList # 1
  • CI ip-Inforn tion- ⁇ le-name explained in Figure 8 is "00003. CLP”
  • In-time is 90, 000
  • OUT-time is 81, 09 60, 000, respectively. Therefore, the clip played by P 1 ayl tem # 0 in PlayList itl is the clip stream file “00003.PS” corresponding to clip information file “00003. , 090, 000.
  • FIG. 30A and FIG. 30B show specific examples of the clip information file ClipO described in FIG. 30A and 30B show specific examples of the clip information files “00001. CLP”, “0000 2. CLP”, and “00003. CLP” in FIG.
  • capture_ena ble_flag—Clip is “1”, so it is stored in the clip stream file “00001.PS” corresponding to the clip information file “00 001. CLP”.
  • a video stream multiplexed into a programmed program stream The secondary use is permitted.
  • the number-of_streams of the clip information file “00001. CLP” is 4, and therefore, the corresponding clip stream file “00001.PS” is stored.
  • Four elementary streams are multiplexed in the stored product stream.
  • s tream_id is OxEO, so this elementary stream stream # 0 is the second 3rd As described in Fig. And Fig. 25 (or Fig. 13), it is a video stream.
  • private_stream_id is irrelevant for the video stream, but it is 0x00 in FIG. 30A and FIG.
  • the video stream streani # 0 which is the first stream of the clip stream file “00001.PS”, has a picture-size of '7 20X480 in StaticInfoO (Fig. 14) included in the streamlnfoO. ', Frame_rate is '29 .97Hz', and cc—f lag is 'Yes'. Therefore, this video stream stream # 0 is a video stream of 720 ⁇ 480 pixels and a frame period of 29.97 Hz, and further includes closed caption data.
  • the first element of the Cribbs file file “00001.PS” For the video stream stream # 0, which is an independent stream, the number—of—Dynamiclnfo in Stre amlnfoO (Fig. 12) is 0, and there is no set of s p ts—change—point and Dynamiclnfo 0 .
  • the word ' (This channel—conf igurai ion force' STEREO 'This, lfe—existence ka O, sampl ⁇ —frequency force 48kHz, so this ATRAC audio stream streamitl
  • the sampling frequency is 48 kHz
  • the second element of the clip stream file: '00001.PS' For the ATRAC audio stream, which is an evening restream, the number—o and Dynamiclnfo in StreamlnfoO (Fig. 12) are 0, and pts_change—point There is no set with DynamicInfoO.
  • this elementary stream stream # 2 is a subtitle stream, as described in FIG. 23 and FIG.
  • the staticInfoO (Fig. 14) included in amlnfoO has subt tie— language— code of “Japanese” and configurable— flag of 0. Therefore, the subtitle stream stream # 2 is Japanese subtitle data, and it is not permitted to change the display method.
  • this elementary stream stream # 3 is a subtitle stream as described in FIGS. 23 and 25.
  • Each pri vat e_stream_id is 0x80 and 0x81.
  • this subtitle stream stream # 3 is Japanese subtitle data, and it is permitted to change its display method.
  • presentation-start-time is 90,000 and presentation-end-time is 27,090, 000, respectively. Therefore, according to the program stream stored in the clip stream file “00002.PS” corresponding to the clip information file “00002 CLP”, it is 300 seconds ((27, 090, 000-90, 000) / 90kHz.
  • capture—ena blejlag—Clip is 0, so the clip corresponding to the clip information file “00 002.CLP” Secondary use of the video stream multiplexed with the program stream stored in the stream file “00002.PS” is not permitted.
  • the number_o stream in the clip information file “00002 CLP” is 4, so that the corresponding clip stream file “00002PS” As in the case of the clip stream file “00001.PS” described above, four elementary streams are multiplexed in the stored program stream.
  • the contents of the 5 6 amlnfoO of each of the first to fourth elementary stream 3 6 & 111 # 0 to # 3 of the clip stream file “00002.PS” are the clip stream file “00001.PS”. Since the contents of the first stream stream # 0 to # 3 of Stream # fo () are the same, the first stream stream # of the clip stream file "00002. PS" 0 is a video stream, and the second elementary stream sam # 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 is 90,000 and the resentation end-time is 81,090,000.
  • Each has become. Therefore, according to the program stream stored in the clip stream file “00003.PS” corresponding to the clip information file “00003. CLP ′”, it is 900 seconds ((81, 090, 000-90, 000) / 90kHz.
  • the clip information file "00003. CLP” has capture- ena ble- flag- Clip set to 1, so it corresponds to the clip information file "00 003. CLP".
  • the clip information file "00003.CLP” has a numbe of 0 and s earns is 3, so the corresponding clip stream file " In the product stream stored in “00003.PS”, three elementary streams are multiplexed.
  • the s ream-id is ⁇ ' ⁇ , so this elementary stream stream # 0 is As described in FIGS. 23 and 25 (or FIG. 13), it is a video stream.
  • private—s tream—id is 0x00.
  • the picture_size of StaticInfoO (Fig. 14) included in the streamlnfoO is set to '7 20X480'
  • the frame_rate is '29 .97Hz 'and the cc-flag is'No'. Therefore, this video stream siream # 0 is a video of 720X 480 pixels with a frame period of 29.97 Hz, and does not include a closed caption data.
  • the number—of_DynamicInfo of se amlnfoO (Fig. 12) is 2. Therefore, two sets of pts—change—point and Dynamiclnfo 0 are described in Streamlnfo 0.
  • the stream_id is OxEl. Therefore, the elementary stream stream # l is the second elementary stream stream # l. As described in Fig. 3 and Fig. 25 (or Fig. 13), it is a video stream.
  • Each s eam—id is OxEO and OxEl.
  • the private—stream—id is 0x00.
  • the video stream stream # l which is the second elementary stream of the crib stream file “Q0003.PS”, is a picture_s ize, fr ame of SticInfoO (Fig. 14) included in the streamstreamfoO. — Rate, cc— The flag is the same as that for the video stream streani # 0, which is the first element stream. Therefore, the video stream stream # l, which is the second element stream in the clip stream file “00003.PS”, is a video stream with a frame period of 29.97 Hz and 720 X 480 pixels. Does not include closed captions overnight.
  • the second element of the clip stream file “00003.PS '” For the video stream stream # l that is a stream, the number—of—Dynamiclnfo in Stre amlnfoO (Fig. 12) is 0, and there is a set of p ts—change-point and Dynamiclnfo 0. Nare. ⁇
  • the stream-id is OxBD and the private_stream-id is 0x00. Therefore, the elementary stream stream # 2 is an ATRAC audio stream as described in FIGS. 23 and 25.
  • FIG. 31 shows a specific example of EP_map () in the clip information file Clip 0 described in FIG. That is, Fig. 3 1 shows Fig. 6 A specific example of EPjnapO in FIG. 16 in the clip information file “00001. CLP” of FIG.
  • EP—map () number—0 and s tream—id_entries are the same. Therefore, in this EP—mapO, information on the point where decoding can be started for one element list stream is performed. Is described.
  • EPjnapO in Fig. 31 stream—id is OxEO. Therefore, as explained in FIG. 23 and FIG. 25, EPjnapO has a RAPI (Random Access Boyne) that is the decoding start point for the video stream specified by the strane and id that is OxEO.
  • PTS—EP_start and RPN_EP_start ( Figure 16) are described as That is, FIG. 31 shows the EP-map 0 of the clip information file “00001. CLP”. In the clip stream file “00001.CLP” corresponding to the clip information file “00001.CLP”, the stream-id is As described in FIGS. 30A and 30B, the OxEO elementary stream is the first video stream stream # 0 of the clip stream file “00001.CLP”.
  • the information described in EP-map 0 in Fig. 1 is the PTS-EP one start and the RPN_EP_start of the video stream stream # 0 that can start decoding.
  • Fig. 31 shows PTS_EP—start and RPN—EP—start from the beginning of the possible decoding start points of the first video stream stream of clip stream file “00001. CLP”. The descriptions of PTS—EP—start and RPN_EP—start after the sixth point are omitted.
  • RPN EP—start
  • PTS_EP start
  • 1st tRe, Picture, 2ndRe, Picture, 3rdRe, Picture, 4thRe Picture are at the start position of all RAPIs multiplexed in the multiplexed stream.
  • the intra picture placed immediately after RAPI and the end of the second, third, and fourth reference images that follow The location is shown.
  • the position of the first RAPI is 0 (sector), and the PTS of the immediately following intra-layer is 90,000.
  • the end positions of the corresponding intra picture and the second, third, and fourth reference images are 28, 37, 48, and 58, respectively, in terms of the relative number of sectors from the top of the RAPI.
  • the position of the second RAPI is 244 (sectors), and the PTS of the immediately following intra picture is 135,045.
  • the end positions of the corresponding intra picture and the second, third, and fourth reference images are 10, 18, 25, and 31, respectively, as the relative number of sectors from the top of the RAPI.
  • the position of the third RAPI is 305 (sectors), and the PTS of the immediately following intra picture is 180,090.
  • the end positions of the corresponding intra picture and the second, third, and fourth reference images are 25, 44, 50, and 54, respectively, in terms of the relative number of sectors from the top of the RAPI.
  • the fourth RAPI position is 427 (sectors), and the following intra-picture: PTS is 225,135.
  • the end positions of the corresponding intra picture and the second, third, and fourth reference images are 8, 15, 22, and 2.9, respectively, in terms of the relative number of sectors from the top of the RAPI.
  • the position of the fifth RAPI is 701 (sector), and the S of the immediately following intra picture is 270, 180.
  • the end positions of the corresponding intra picture and the second, third, and fourth reference images are 26, 32, 41, and 48, respectively, in terms of the relative number of sectors from the top of the RAPI.
  • N_th—Re and picture—copy is selected from the values 10, 18, 25, and 31 that is closest to “30”.
  • index—N—minusl is 4thRe and the value indicating picture is “3” "Is stored.
  • This selection algorithm is determined based on comprehensive considerations such as playback quality on playback equipment. Therefore, in the present embodiment, the closest one to the relatively small number of sectors “30” is selected, but other numbers of sectors may be used. Also, when the value of indexJUninusl is small, the number of reference images included in the copy of N-t.h_Rei_picture from the RAPI position is small. Conversely, indexji-minusl When the value of is large, it means that the number of included reference images is large.
  • the end positions of four reference images are described in all five points of data.
  • the reference image may be less than four. is there. In such a case, it is possible to describe the end position of the maximum of 4 or less reference images that exist for each entry point.
  • the private-strean id is 0x00, but if stream_id represents a video stream, As mentioned above, private—stream_id is irrelevant.
  • Fig. 3 2 shows that PyUst # 0 and PlayLis # 1 (PyUst 0 in Fig. 7) described in Fig. 29? An example of 13 311 ⁇ 0 is shown. The upper part of Fig. 3 2 shows P 1 ayL i stMark 0 (Fig. 9) of ayList # 0.
  • num ber_o and PlayList-marks in PyListMarkO of PlayList # 0 are 7, and therefore, the number of Mark 0 included in PlayL is tMark 0 of PyList IfO is 7.
  • MarkifO which is the first MarkO among the 7 Marks (;) included in PlayList # 0 has markjype (Fig. 9) as 'C hapter'. Chappu evening mark. Furthermore, since Mark # 0 has ref_to—Playltem—id (Fig. 9) set to 0, PlayItem # of the two PlayItem # 0 and # 1 in Fig. 29 included in PlayList # 0 Belongs to 0. Mark # 0 has mark-time-stamp of 180, 090, so the time of the clip stream file played by PlayltemitO included in PlayList # 0 (playback time) on 180, 090 It is a mark. In addition, Mark # 0 is not associated with any elementary stream because entry—ES—stream—id and entry—ES—private—strea m—id are both 0. . Also, Mark # 0 represents a chapter with the number 1 because mark 1 data is 1.
  • the clip stream file played back by Play ## 0 included in PlayList # 0 is the P1 described in Figure 29.
  • Mark # 4 is a seven S intends Chino fifth MarkO of MarkO contained in PlayList # 0 is also a first Mark # 0 similar Chiya 'flop evening mark.
  • Mark # 4 which is the fifth MarkO, is a chapter mark because the mark-type (Fig. 9) is 'Chapter'. Furthermore, since Mark # 4 has ref-to-Playltem-id (Fig. 9) set to 1, PlayList # 0 and # 1 in Fig. 29 included in PlayList # 0, It belongs to Playitem # l. Mark # 4 has a mark-time-stamp of 90,000, so the mark on the clip stream file played by Playltem # l included in PlayList # 0 is the mark on time 90,000. It is. In addition, Mark # 4 is not associated with any elementary stream because entry—ES—stream—id and entry—ES—private—stream—id are both zero. . Mark # 4 represents a chapter with number 2 because mark_da is 2.
  • the clip stream file that is played back by P 1 ay Item #l included in PlayList # 0 is described in the Clip_Infomaiion_file-name of P1 ayl tem #l described in FIG. Therefore, the above-mentioned time 90,000 indicated by mark—tiIne_stamp of Mark # 4 is the clip stream file “00002.PS” identified from “00002.CLP”. PS "time.
  • Mark # l which is the second MarkO of 7 Mark () included in PlayList # 0 has niark_type (Fig. 9) of 'Index'. This is an index mark.
  • Mark # l has re-to-Playltem-id (Fig. 9) set to 0, so P of 2 P yltemftO and # 1 in Fig. 29 included in PlayList # 0. yltemitO Belonging to.
  • the mark-time-stamp is 5, 580, 090, so the time of the grip stream file played by P 1 ay 11 em # 0 included in PlayList # 0 is 5,580. , The mark on 090.
  • Mark_lte, entry_ES_stream—id and entry—ES—private—st ream—id force are both 0, so they are not associated with any elementary stream.
  • Mark # l indicates an index with number 1 because mark_data is 1.
  • the clip stream file that is played back by Play system # 0 included in PlayList # 0 is clip stream file “00001.PS”.
  • the above-mentioned times 5, 580 and 090 represented by time_stamp are times of the clip stream file “00001.PS”.
  • the third, sixth, and seventh MarkO of Mark7, Tr5, and ark # 6 among the 7 MarkOs included in PlayList # 0 are also the same index as the second Markltl. Mark.
  • Mark # 3 which is the fourth MarkO among the 7 Mark () included in PlayList # 0 has a mark-type (Fig. 9) of 'E vent'. Because it is an event mark. Furthermore, Mark # 3 has ref-to-Playltem-id (Fig. 9) set to 0. Therefore, out of the two PlayItems # 0 and # 1 in Fig. 29 included in PlayList # 0, It belongs to PlayltemifO. In Mark # 3, the markjime-stamp is 16, 380, 090, so the clip stream file played by Play ## included in PlayList # 0 is on time 16, 380, 090. It is a mark.
  • Mark # 3 is associated with any element stream because entry-ES-st ream-id and entry-ES-private-st ream-id force S-shift are also zero. It is not done.
  • mark data is 0 And generate an event with 0 as an argument.
  • the clip stream file generated by Play Item # 0 included in PlayList # 0 is' clip stream file "00001.PS" as described above.
  • Fig. 32 shows PlayListMarkO (Fig. 9) of PlayList.
  • PlayListMarkO of PlayLis 1 and PlayList marks of PlayListMarkO are 3, so the number of Mark 0 included in PlayListMarkO of PlayListJl is 3.
  • Mark # 0 the first MarkO of the three MarkOs included in PyList # l, is marked as 'Chapter' in markjype (Fig. 9). The Chappu evening mark. Further, Mark # 0 belongs to one PlayltemttO of FIG. 29 included in PlayListm because ref_to_PlayItem_id (FIG. 9) is 0. Since Mark-time-stamp is 90,000, MarkltO is a mark on the time 90,000 of the clip stream file to be played by Platform # 0 included in PlayList # l. Furthermore, Mark # 0 is not associated with any elementary stream because entry—ES—s tream—id and entry—ES—private—st reamjd are both 0.
  • Mark # 0 represents a chapter with a number 0 because mark-data is 0.
  • the clip stream file played back by 1 & 116111 # 0 is from "00003. CLP" described in CI ip-Infonmt ion- ⁇ le_name of Play Item # 0 described in Fig. 29.
  • Mark # l which is the second MarkO of the three MarkOs included in PlayList # l, is the mark-type (Fig. 9) force 'Event'. Mark.
  • Mark # l belongs to one PlayItem # 0 of FIG. 29 included in PlayList # l because ref— ⁇ o—Playltem—id (FIG. 9) is 0.
  • Markifl has a mark-tini e stamp of 27, 090, 000, so the time of the clip stream file played by Playltem # 0 included in PlayList # l is 27,090,000 It is a sign.
  • Markitl has entry_ES_strean and id is OxEO and entry—ES—private—stream—id force is 0, the stream—id is an elementary stream identified by Ox E0, ie, Figure 23 and As described in Fig. 25, it is associated with a video stream. Mark # l generates an event with 1 as an argument because mark-data is 1.
  • the clip stream file played by PyltemifO included in PlayList # l is the clip stream file “00003.PS”, and therefore, the markjime-stam p of MarklH represents The above-mentioned times 27, 090, and 000 are times of the clip stream file “00003.PS”.
  • the video stream associated with Mark # l and s eam_id is OxEO is included in PlayLisl in Fig. 29, to which Mark # l belongs.
  • CI # of Playltem # 0 Infomation— Video stream with the stream_id OxEO described in “00003. CL P” described in le1 name, ie, Figure 30 and Figure 3 0
  • the clip information file “00003. CLP” in FIG. B is identified, and the first of the three elementary stream streams # 0 to ⁇ multiplexed in the clip stream file “00003.PS” Elementary stream (video stream) stream # 0.
  • Mark # 2 which is the third MarkO among the three MarkOs included in PlayListtn, is marked with 'Ev ent' as mark_type (Fig. 9). Mark. Furthermore, Mark # 2 is included in PyListitl because ref_to_PlayItem_id (Fig. 9) is 0. It belongs to one PlayItem # 0 in Fig. 29. Also, Mark #l has a mark_27,540,000 in the ma rk_Ume-stamp, so the clip stream file that is played by PlayItem # 0 included in PlayList # l is 27,540,000 It is a mark.
  • Mark # 2 is an elementary list whose stream—id is specified by OxEl, because entry_ES—st_ream_id is OxEl and entry—ES—private_stream_id is 0. As described in Figure 23 and Figure 25, it is associated with a video stream. Mark # 2 also generates an event with 2 as an argument because mark_da is 2.
  • the clip stream file reproduced by PlayItem # 0 included in PlayList # l is the clip stream file “00003.PS”, and therefore, represented by Mark # 2.
  • the time 27, 540, 000 described above is the time of the clip stream file “00003.PS”.
  • the stream with id # OxEl that is associated with Mark # 2 is included in PyList # l in Fig. 29, to which Mark # 2 belongs.
  • Fig. 32 the number of the chapter index represented by the chapter mark or index mark is described in mark_da, but the number of the chapter index represented by the chapter mark index is — Even if it is not described in data, it can be recognized, for example, by counting the number of index marks in PlayListMarkO.
  • the evening stream is always added to the access unit of the video stream at the decoding start position.
  • the search start position is searched using the binary search (binary search) etc. for the maximum PTS_EP-start that satisfies the formula PTS-EP-start ⁇ IN-tin] e using EP-map 0.
  • FIG. 33 is a flowchart for explaining pre-reproduction processing performed by the video content reproduction program 2 10.
  • the video content playback program 2 1 0 In S 1 0 1, use the file system function of the operating system 2 0 1 to check the disc 1 0 1 and the disc f l 0 1 force a normal disk for the video content playback program 2 1 0 Judge whether or not
  • step S 1 0 1 If it is determined in step S 1 0 1 that disk 1 0 1 is not a normal disk, for example, the file system used for disk 1 0 1 is not supported by operating system 2 0 1 If it is type or if the “VI DEO” directory is not placed in the root directory, it is determined that the video content playback program 2 1 0 is not compatible with the disc 1 0 1 and step S Proceed to 10 2, the graphics processing module 2 1 9 performs error processing, and finishes the pre-reproduction processing.
  • the graphics processing module 2.19 generates an error message indicating that the disk 1001 is not normal as an error process, and outputs the error message from the video output module 220, thereby displaying an error message.
  • error processing for example, it is possible to output a warning sound from the audio output module 2 2 1 or eject the disk 1 0 1 from the disk drive 1 0 2. is there.
  • step S 1 0 1 if it is determined in step S 1 0 1 that the disc 1 0 1 is a normal disk, the process proceeds to step S 1 0 3, and the video content playback program 2 1 0 is the content data supply module 2 1. 3 for the operating system 2 0 1, the “SCRIPT. DAT” file located in the “VIDEO” directory on disk 1 0 1 (Fig. 6), and the “PLAYLIST.DAT” file Request and read the two data files, and go to step S 1 0 4. In step S 1 0 4, the “S CRIPT. DAT” file is supplied to the scribing control module 2 1 1 and the “PLAYLIST.DAT” file is supplied to the player control module 2 1 2.
  • step S 1 0 4 to S 1 0 5 to S 1 0 7, and the player control module 2 1 2 performs initialization processing.
  • the script control module 2 1 1 waits until the initialization process of the player control module 2 1 2 is completed.
  • step S 1 0 5 the player control module 2 1 2 analyzes the “PLAYLIST.DAT” file and uses the clip information file used in the “PLAYL1ST.DAT” file. Investigate the number of files and their file names.
  • the “PLAYLIST.DAT” file is as shown in FIG. 29, and the player control module 2 1 2 has the “PLAYL 1ST.DAT” file in FIG. Since number_of_P 1 ayLists is 2 in FIG. 2, it is recognized that there are two Play Lists 0 of the first PlayListlfO and the second PlayListitl. Furthermore, since the player control module 2 1 2 has numbe and of_Playnems force 2 for the first P 1 ay List # 0 in the “PLAYLIST.DAT” file of FIG. 29, the PlayList # 0 It recognizes that there are two PlayltemOs, the first Playltem # 0 and the second Playltem # l.
  • the player control module 2 1 2 is the P1 in the “PLAYLIST.DAT” file in FIG.
  • the Clip— Information_file_name of the first PlayltemitO and second PI ay Itemifl included in ayListifO the clip information file of the first PlayItem # 0 included in PlayLisl # 0 is '' 00001.
  • CLP "and the second Playltemitl clip information file is recognized as" 00002. CLP ".
  • the player control module 2 1 2 also has one P1 ay It em 0 (PlayItem # 0) because its number one of_PlayItems is 1, and the PlayItem # 2 It recognizes that the clip information file of PlayltemitO is "00003. CLP" from C1 ip-Information-file-name in 0.
  • step S 1 0 5 the player control module 2 1 2 reads the clip information file recognized in step S 1 0 5 from the disc 1 0 1, that is, the disc 1 0 1 " Load the three clip information files “00001. CLP”, “00002 CLP”, “00003. CLP” from the “CLIP” directory in the “VIDEO” directory.
  • step S 106 the reading of the clip information file in step S 106 is sufficient only with the clip information file of Playlt.em of PlayListO to be played first, but in this embodiment, as described above, All P1 ayList 0 PlayltemO clip information files are pre-read.
  • step S 1 0 7 the player control module 2 1 2 determines whether or not the clip information file recognized in step S 1 0 5 has been successfully read. It is determined whether or not the clip stream file force corresponding to the read clip information file exists in the disc 101. That is, in step S 1 0 7, clip information files “00001. CLP”, “00002. CLP”, “000 03. The clip information file “00 001. CLP”, “00002. CLP”, “00003. CLP” is different from each other only in the file name extension. Determine if the files “00001.PS”, “00002PS”, “00003.PS” exist in the “ST REAM” directory under the “VIDEO” directory on disk 1 0 1 To do.
  • step S1 0 7 it is determined that the reading of the clip information file recognized in step S1 0 5 has failed, or the clip information file corresponding to the clip information file exists on disk 1 0 1 If, for example, the clip information file or clip stream file required for playback according to the “PLAYLIST.DAT” file is not recorded on the disc 1001, the video content The playback program 2 10 determines that the disc is not compatible with the disc 1 0 1, proceeds to step S 1 0 2, performs the error processing described above, and ends the pre-play processing.
  • step S 1 0 7 it is determined that the clip information file recognized in step S 1 0 5 has been successfully read and the clip stream file corresponding to the clip information file exists on the disc 1 0 1. If the player control module 2 1 2 has detected, the initialization process ends, and the process proceeds to step S 1 0 8.
  • step S 1 0 script script control module 2 1 1 starts interpreting and executing the “SCR IPT.DAT” file.
  • the player control module 2 1 2 is instructed to play the first PlayList () (PlayList # 0).
  • the reproduction process shown in Fig. 34 is performed.
  • FIG. 34 is a flowchart for explaining the reproduction process performed by the video content reproduction program 2 10.
  • 3 ⁇ 4 “Playback Preparation Process” In the playback process, the player control module 2 1 2 first plays PlayList 0 instructed to be played from the script control module 2 1 1 in steps S 1 2 1 and S 1 2 2, that is, The playback preparation process for the first P 1 ayL ist 0 (PI ayL ist # 0) is performed.
  • the player control module 2 1 2 confirms the INJime (FIG. 8) of the first Playltem # 0 included in the first PlayList # 0 in Step S1 2 1, and the Step S1 2 1 2 Go to 2 and start playback corresponding to the IN-time of the Playnem # 0 on the clip stream file “00001.PS” played by the first PlayItem # 0 included in the first PlayLisiJO Check the playback start position.
  • the program stream can be read from the beginning of the clip stream file.
  • the program stream can be read from the beginning of the clip stream file.
  • INJime of the first PyltemltO included in the first PlayList # 0 is 180,090.
  • the player control module 2 1 2 is shown in Fig. 31 in the clip stream file "00001. CLP" played by the first: Play Item # 0 included in the first P yL is t # 0. From EP—mapO, find the playback start position suitable for 180,090, which is the IN—time of P 1 ay 11 eni # 0.
  • the player control module 2 1 2 is described in, for example, EPjiapO
  • the maximum PTS_EP—s rt that satisfies the expression PTS—EP—s rt ⁇ IN_time is searched using the PTS_EP_start representing the decoded decode startable point using a binary search (hidden search) or the like.
  • PTS_EP_sta.Tt below IN-time is searched because the position represented by IN-time is not necessarily the point where decoding can start.
  • IfLUme is 180,090 as described above.
  • the expression PTS_EP—start ⁇ IN — 180, 090 are described as the largest PTS that satisfies t ime—EP—s tart. Therefore, in the player control module 2 1 2, the PTS one EP 1 start that is 180, 090 is retrieved from the EPjnapO shown in FIG.
  • the player control module 2 1 2 determines the playback start position as described above, it proceeds from step S 1 22 to S 1 2 3 and controls the graphics processing module 2 1 9 to display the time code. .
  • the graphics processing module 2 1 9 generates a time code and outputs it to the video output module 2 2 0 according to the control of the player control module 2 1 2. Thereby, the display of the time code is started.
  • the time code whose display is started in step S 1 2 3 is, for example, a value obtained by converting the top of PlayList 0 to 00:00:00 (hour: minute: second).
  • the number of the chapter index may be displayed together with the time code or not the time code.
  • step S 1 2 After the time code display is started in step S 1 2 3, the process proceeds to step S 1 2 4, where the player control module 2 1 2 is instructed to play from the scribb control module 2 1 1.
  • Analysis processing is performed to analyze yList (), that is, PlayListMarkO (FIG. 9) described in the first PlayList 0 (PlayListftO).
  • the player control module 2 1 2 displays the image in the P 1 ayList Mark 0 shown in the upper part of FIG. 3 2 of the first PlayList # 0 in the “PLAYLIST.DAT” file that has already been read. be r—o f_P layList— Since the mark is 7, it is recognized that the number of MarkO included in the PlayList # 0 is 7.
  • the player control module 2 1 2 analyzes the seven MarkOs in the upper side of FIG. 3 2 included in PlayListltO, and from the ref—to_PlayItem—id, from the first of the seven MarkOs to 4 The first four Mark 0s are recognized as belonging to the first PyltemO (PlayItem # 0) of PlayListftO.
  • the player control module 2 1 2 extracts the mark_time_sta immediately of the four MarkOs belonging to the first PUyltemltO of PlayList # 0 and passes them to the decode control module 2 1 4 as an array of 4 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 on the upper side of Fig. 32 (180, 09 0 ⁇ , ⁇ 5, 580,090 ⁇ , ⁇ 10,980,090 ⁇ , U 6, 380, 090 ⁇ are passed from the player control module 2 1 2 to the decode control module 2 1 4. At this time, the attribute of these times is “mark processing”.
  • Decode control module 2 1 4 is the timer 2 1 4 When the time counted in A matches the time of the “mark processing” attribute, a message to that effect, the time that was added to the time of the “mark processing” attribute, and “mark processing” Is transmitted to the player control module 2 1 2.
  • step S 1 2 4 the player control module 2 1 2 determines the element list stream to be reproduced.
  • the player control module 2 1 2 is the CI ip of the first PlayltemltO (Fig. 29) in the first P 1 ayL ist # 0 which is ayListO instructed to be played from the script control module 2 1 1 — InformaUon—f ime—
  • the file name is described in name.
  • number-0 and st reams is 4. Therefore, it is recognized that four elementary streams are multiplexed in the corresponding clip stream file “00001.PS”.
  • the player control module 2 1 2 needs the stream_id of StaticInf.oO in the clip information file “00001.CLP” in FIG. 30 A and FIG.
  • the information on the number of elementary streams of each attribute multiplexed in the cribs stream file is used for switching the elementary stream during playback (audio switching, subtitle switching, etc.).
  • the subtitle stream exists in the clip stream file. W may not exist (subtitles may not be included in the content), and the subtitle stream attribute number: ⁇ information of the number of remnant streams is used to determine whether a subtitle stream exists.
  • the 'The player control module 2 1 2 selects and decides the elementary list to play based on the results of the survey of StickInfoO as described above.
  • the clip stream file "00001.PS" Since there is only one element stream attribute with the attributes of “video stream” and “audio stream” among the four element stream streams multiplexed in the “video stream” And there is no room for selection of elementary streams with the attributes of “audio stream”, and the single video stream and audio stream (ATRAC audio stream) are determined as elementary streams to be played.
  • the elementary stream with the attribute “subtitle stream” there are two of the four elementary streams multiplexed in the clip stream file “00001.PS”.
  • One subtitle stream from the actuary stream is selected and determined as the elementary stream to be played.
  • the first subtitle stream is selected in the order of appearance in the clip information file “00001. CLP”.
  • each of the four elementary streams is recognized.
  • the player control module 2 1 2 must identify the four elementary streams that are multiplexed in the clip stream file “00001.PS '', streamjd and the necessary private stream. by id ⁇ .
  • the player control module 2 1 2 is an elementary stream having an attribute of “video stream” among the four elementary streams multiplexed in the clip stream file “00001.PS”.
  • the video stream to be recorded is identified by the strani_id that is OxEO, as described for the clip information file “00001. CLP” in FIGS.
  • the player control module 2 1 2 is an elementary stream having an attribute of “audio stream” among the four elementary streams multiplexed in the clip stream file “000 (H.PS”). As described for clip information file "00001. CLP" in Fig. 30 A and Fig. 30 B, a certain ATRAC stream is stream-id which is OxBD, and pr which is 0x00. ivate—st ream—identify by id.
  • the player control module 2 1 2 has two X stream streams that have the attribute “subtitle stream” in the four stream streams multiplexed in the clip stream file “00001.PS”.
  • Each subtitle stream is stream-id, which is OxBD, and private_stream-id, which is 0x80, as described for clip information file "00001. CLP" in Fig. 30A and Fig. 30B.
  • stream_id which is OxBD, and private_strea m—id which is 0x81.
  • the elementary stream multiplexed in the clip stream file is combined with the combination of s earn-id and private-strea m_id described as the metadata of the clip information file corresponding to the clip stream file.
  • the combination of stream-id and private-strean id is a mechanism provided to extend the multiplexing of MPEG2-Sy stem.
  • This combination of st ream —id and private—s earn— id can be used in the metadata to identify the element stream, so that the element stream can be identified reliably. Become.
  • the meaning of private stream—id is expanded in the future, and the number and attributes of the corresponding elementary streams are increased, the current mechanism can be used as it is, so that extensibility is better.
  • the transport stream PID Packet ID
  • sub one st ream_id similar to private one st ream—id is defined, but sub_stream_id must be described on the database to identify the stream. Is not possible, and can only be described in a fixed area describing 8 or 32 stream information (eg VI4-49, Table 4.2.1-2). (Refer to VTS-AST—A TRT, VI4-52, Table 4.2. ⁇ 3 (VTSJPST—ATRT), etc.) and poor expandability.
  • the combination of stream-id and private stream-id describes the metadata, for example, in the clip information file C 1 ip () in Fig. 12
  • the elementary stream multiplexed in the clip stream file is not dependent on the number (however, the number of elements that can be represented by number one of one streams). Scope), and the clip information file CI ip () can be specified from the combination of 5 6 & 111—1 (1 and 01 ” ⁇ & 16_31 ⁇ & 111—1 (1).
  • the combination of sti'eam_id and private-stream_id is the elementary stream that is multiplexed in the corresponding clip stream file in the clip information file in FIG.
  • the combination of stream-id and private_stream_id is also used to specify the elementary list that describes the information of the start point that can be decoded in EPjnapO in Fig. 16, for example.
  • step S 1 2 5 the player control module 2 1 2 reads the elementary stream to be reproduced, that is, the elementary stream determined to be reproduced in step S 1 2 5. Perform output attribute control processing.
  • the player control module 2 1 2 first outputs an elementary stream to be played, that is, a video stream, an ATRAC audio stream, and a subtitle stream that are determined to be played in step S 1 25.
  • an elementary stream to be played that is, a video stream, an ATRAC audio stream, and a subtitle stream that are determined to be played in step S 1 25.
  • the playback target video stream, ATRAC audio stream, and subtitle stream are elementary streams multiplexed in the clip stream file “0 0001. PS”, and their number—of—Dynamiclnfo As shown in “00001. CLP” in FIG. 30 A and FIG. 30 B, both are 0.
  • the player control module 2 1 2 No special processing is performed as control processing for the output attribute of the elementary list.
  • step S 1 2 After the processing of step S 1 2 6, the process proceeds to step S 1 2 7, and the player control module 2 1 2 performs preparation processing for starting the playback of the elementary list stream to be played back.
  • the player control module 2 1 2 is a ⁇ ⁇ two control module for the program stream stored in the clip stream file “00001 .PS” in which the element stream to be reproduced is multiplexed. Initialize buffer control module 2 1 5 before supply to 2 1 5 begins.
  • the buffer control module 2 15 (Fig. 5), the data start pointer stored in the data start pointer storage unit 2 3 1 and the data write stored in the data write pointer storage unit 2 3 2 Boyne, video read pointer storage unit 2 4 1 Video read Boyne evening, audio readout Boyne evening storage unit 2 5 1 Audio read pointer, subtitle read pointer storage unit 2 6 2
  • the data start pointer stored in the data start pointer storing section 2 3 1 and the data write pointer was stored 3 ⁇ 4 in the data write pointer storage unit 2 3 2
  • buffer control module 2 1 5 Nonoya' file 2 1 5 Refers to the same position on A. This represents a state in which no effective data is accumulated in the nota 2 1 5 A.
  • the player control module 2 1 2 supplies the buffer control module 2 1 5 with stream_id as identification information for specifying the elementary stream to be reproduced, and further, if necessary, private-stream_id. .
  • the video stream having the attribute “video stream” among the elementary streams to be reproduced is identified by the stream-id that is OxEO, and belongs to the “audio stream” attribute.
  • the ATRAC audio stream is identified by the stream—id that is OxBD and the private—stream—id that is 0x00, and the subtitle stream with the attribute “subtitle stream” is the stream that is OxBD— It is specified by id and private_strean which is 0x80.
  • the player control module 2 1 2 supplies these stream—id and private_str earn—id to the buffer control module 2 1 5.
  • the video read function 2 3 3 uses the stream_id from the player control module 2 1 2 as the OxEO for the video stream. Store in register 2 4 2. Also, the audio reading function unit 2 3 4 converts the stream—id that is OxBD and the private—stream—id that is 0 xOO from the player control module 2 1 2 into the st ream—id Regis evening 2 5 2 and private—store in streamjd registers 2 5 3 respectively.
  • the subtitle reading function unit 2 3 5 is connected to the player control module 2 1 2
  • the stream_id that is OxBD and the private_s earn—id that is 0x80 are stored in the stream—id register 2 6 3 and private—stream_id register 2 6 4, respectively.
  • the player control module 2 1 2 stores the stream_id and private-strean id of the playback target elementary stream supplied to the buffer control module 2 1 5 for future processing.
  • the player control module 2 1 2 uses these stream-id and private_stream 1 id to indicate the stream currently being played back when a message requesting stream switching, which will be described later, is generated, or during mark processing, which will be described later. Used to identify.
  • the player control module 2 1 2 initializes the buffer control module 2 1 5 (Fig. 5). In addition, the player control module 2 1 2 has a value according to the clip stream file in which the element list to be played back is multiplexed.
  • the reading function flag is set in the subtitle reading function flag storage unit 2 61.
  • the subtitle stream is included in the clip stream file “00001.PS” in which the elementary stream to be played back is multiplexed.
  • a subtitle read function flag having a value of 1 is set in the subtitle read function flag storage unit 26 1.
  • the subtitle read function flag with a value of 0 is stored in the subtitle read function flag storage unit 26. Is set. In this case, the subtitle reading function unit 2 35 does not perform any particular processing.
  • the player control module 2 1 2 is the first included in the first PlayList # 0 instructed to play by the script control module 2 1 1 To be IN_t ime 180, 090 of the Playltem # 0 of 2005/021070 (second 9 Figure), OUT- time der Ru 27, 180, 090 and, given to the decode control module 2 1 4 s.
  • IN-time is used to control the start of decoding of a clip played by PlayltemO
  • 0UT_time is used to finish decoding the clip, and moreover, Pyltem transfer control described later Respectively.
  • the player control module 2 1 2 initializes the instruction of the subtitle stream display method to the graphics processing module 2 19. That is, the player control module 2 1 2 controls the graphics processing module 2 1 9 so that the subtitle stream display method is, for example, the default display method.
  • step S 1 2 7 to S 1 2 8 the player control module 2 1 2 controls the content data supply module 2 1 3, whereby the content data supply module 2 1 3 Using the functions of the operating system 2 0 1, read the clip stream file that contains the program stream in which the elementary stream to be played back is multiplexed.
  • the content data supply module 2 1 3 uses the “STREAM” directory crib stream file “0 0001. PS” under the “VIDEO” directory on the disc 1 0 1 (FIG. 6).
  • the 305 section that is the playback start position determined in step S 1 2 2 is specified, and the operating system 2 0 1 is requested to read the file.
  • the content data supply module 2 1 3 specifies that the data read from the disc 1 0 1 is supplied to the driver control module 2 15.
  • the buffer control module 2 1 5 (Fig. 5) reads the program stream read and supplied from the disk 1 0 1 into the data write-in memory section 2 3 2 of the buffer 2 15 A Write to the position indicated by the evening, and increment the data write pointer by the size of the written data.
  • the content data supply module 2 1 3 reads data from the disk 1 0 1 if the buffer 2 1 5 A of the buffer control module 2 1 5 is free. Suppose that it is supplied to the buffer 2 15 A of the buffer control module 2 15 and stored. Therefore, it is assumed that sufficient data is always stored in the buffer 2 15 A.
  • decode control module 2 1 4 controls video decoder control module 2 1 6, audio decoder control module 2 1 7, subtitle decoder control module 2 1 8 , Start reading data from buffer 2 1 5 A overnight.
  • the video decoder control module 2 1 6 requests data from the video read function unit 2 3 3 of the buffer control module 2 15 (FIG. 5), and the buffer control module 2 1 in response to the request.
  • the time stamp is passed from the video decoder control module 2 16 to the decode control module 2 14.
  • the pic-struc and copy used for the following time update are those passed from the video reading function part 2 3 3 but are included in the bitstream obtained as a result of parsing. It is also possible to use a struct.
  • the audio decoder control module 2 1 7 also requests the audio read function unit 2 34 of the buffer control module 2 1 5 (Fig. 5) to send data to the buffer control module 2 1 5 in response to the request.
  • the (ATRAC) audio access unit stored in buffer 2 15 A and the time stamp (PTS, DTS) attached to the audio access unit are obtained.
  • the time stamp is passed from the audio decoder control module 2 17 to the decode control module 2 14 every time the audio decoder control module 2 17 obtains an audio access unit.
  • the subtitle decoder control module 2 1 8 requests the subtitle read function section 2 3 5 of the buffer control module 2 1 5 (Fig. 5) to make a selection, and in response to the request, the buffer control module 2 1 5 1 Subtitle access unit stored in buffer 2 15 A and the time stamp attached to the subtitle access unit are obtained.
  • the time stamp is passed to the subtitle decoder control module 2 1 8 or the decoding control module 2 1 4 every time the subtitle decoder control module 2 1 8 obtains a subtitle access unit.
  • the buffer control module 2 1 5 to the subtitle decoder control module 2 1 8 is not passed data.
  • the video decoder control module 2 1 6, the audio decoder control module 2 1 7, and the caption decoder control module 2 1 8 each time the data is requested to the buffer control module 2 1 5, The result for the evening request is passed to the decode control module 2 1 4.
  • the video decoder control module 2 1 6, the audio decoder control module 2 1 7, and the caption decoder control module 2 1 8 start reading data from the buffer 2 1 5 A of the buffer control module 2 1 5, Proceeding from S 1 2 9 to S 1 3 0, the data for that night is started.
  • the decode control module 2 1 4 is connected to the first P lay I t em # 0 included in P layL ist # 0 given from the player control module 2 1 2 in step S 1 2 7. IN ti me 180, 090 and even video decoding This is necessary to ensure synchronization based on the time stamps passed as described in step S 1 29 from the audio control module 2 1 6, audio decoder control module 2 1 7, subtitle decoder control module 2 1 8, and so on. If necessary, shift the timing and command the video decoder control module 2 1 6, audio decoder control module 2 1 7, and subtitle decoder control module 2 1 8 to start decoding.
  • Control module 2 1 7 and subtitle decoder control module 2 1 8 Set the minimum value of the time stamps passed from each as the initial value of the time measured by the clock unit 2 1 4 A. There is a method of instructing the start of decoding when the time measured by the timekeeping unit 2 1 4 A and the time stamp match.
  • the video decoder control module 2 1 6 receives an instruction to start decoding from the decode control module 2 1 4, and in response to the instruction, the video read function unit 2 3 3 of the buffer control module 2 1 5 (FIG. 5) One video access unit obtained from this is passed to video decoder 1 1 6 (Fig. 1) for decoding. Further, the video decoder control module 2 1 6 supplies video data obtained as a result of decoding by the video decoder 1 1 6 to the graphics processing module 2 1 9. Thereafter, the video decoder control module 2 1 6 sequentially decodes one video access unit obtained from the video read function part 2 3 3 of the buffer control module 2 1 5 by the video decoder 1 1 6. The video data obtained as a result of the decoding is supplied to the graphics processing module 2 19.
  • the order of the video is changed (reordering) between decoding and output.
  • the decoding order is II, BO, P3, B2, P5, B4 ', but the display order may be B0, II, B2, P3, B4, P5. is there.
  • a decoded picture buffer is provided in the video decoder 1 1 6 to store the decoded image.
  • In indicates the nth I picture
  • Bn indicates the nth B picture
  • Pn indicates the nth P picture.
  • the audio decoder control module 2 1 7 also receives an instruction to start decoding from the decode control module 2 1 4, and in response to the instruction, the audio read function unit 2 3 of the buffer control module 2 1 5 (Fig. 5) One audio access unit obtained from 4 is passed to the audio decoder 1 1 7 (Fig. 1) for decoding. Further, the audio decoder control module 2 17 supplies the audio data obtained as a result of decoding by the audio decoder 1 17 to the audio output module 2 21.
  • the audio decoder control module 2 1 7 sequentially decodes one audio access unit obtained from the audio read function unit 2 3 4 of the buffer control module 2 1 5 by the audio decoder 1 1 7.
  • the audio data obtained as a result of the decoding is supplied to the audio output module 2 2 1. '
  • the subtitle decoder control module 2 1 8 also receives an instruction to start decoding from the decode control module 2 1 4, and in response to the instruction, the subtitle read function of the buffer control module 2 1 5 (Fig. 5) Decode the subtitle access unit obtained from part 2 3 5 with the internal subtitle decode software, Subtitle image data) is supplied to the graphics processing module 2 19.
  • the subtitle decoder control module 2 1 8 sequentially decodes one subtitle access unit obtained from the subtitle read function section 2 3 5 of the buffer control module 2 1 5 using the subtitle decode software internally.
  • the subtitle data obtained as a result of the decoding is supplied to the graphics processing module 2 19.
  • step S 1 3 0 to S 1 3 1 the graphics processing module 2 1 9 performs the video data supplied from the video decoder control module 2 1 6 as described above. Accordingly, the graphics processing is performed on the caption data supplied from the caption decoder control module 2 18.
  • the graphics processing module 2 19 first performs subtitle processing for enlarging or reducing the subtitle data from the subtitle decoder control module 2 1 8 according to the display method instruction from the player control module 2 1 2.
  • the graphics processing module 2 1 9 receives the subtitle decoder from the subtitle decoder control module 2 1 8. Save the evening as it is.
  • the graphics processing module 2 1 9 includes video data from the video decoder control module 2/16 and subtitle data from the subtitle decoder control module 2 '1 8 or subtitle data after subtitle processing. To obtain output video data in which the frame data is overlaid on the video data from the video decoder control module 2 16 and supply it to the video output module 2 20.
  • the graphics processing module 2 1 9 can display information such as menus, messages, time codes, chapter numbers or index numbers from the script control module 2 1 1 and the player control module 2 1 2. When instructed, it generates the information, lays it out on the output video, and supplies it to the video output module 2 20
  • step S 1 3 2 After processing step S 1 3 1, proceed to step S 1 3 2, where the video output module 2 2 0 is the output supplied from the Dallas processing module 2 1 9 as described in step S 1 3 1
  • the video data is stored sequentially in the F IFO 2 2 OA, and the output video stored in the F IFO 2 2 OA is sequentially output at a predetermined output rate.
  • the video output module 2 2 0 will accept the output video from the graphics processing module 2 1 9 as long as there is room in the F IFO 2 2 OA storage capacity (remaining capacity).
  • the graphics processing module 2 19 stops processing and requests the video decoder control module 2 16 and subtitle decoder control module 2 18 to stop processing.
  • the video decoder control module 2 16 and the subtitle decoder control module 2 1 8 stop processing.
  • the video output module 2 2 0 requests the graphics processing module 2 1 9 to stop accepting the output video data, and then the output of the output video data from the F IF0 2 2 0 A advances and the F IFO 2 2 When there is room in OA, request the graphics processing module 2 19 to accept the output video. This request accepts output video data In the same manner as the request to stop the video, the graphics processing module 2 19 transmits the video decoder control module 2 16 and the subtitle decoder control module 2 1 8. As a result, the graphics processing module 2 19, and further, the video decoder control module 2 16 and the subtitle decoder control module 2 18 resume processing that has been stopped.
  • the audio output module 2 2 1 also sequentially stores the audio data supplied from the audio decoder control module 2 1 7 in the F IF0 2 2 1 A as described in step S 1 3 0, and the F Audio data stored in IFO 2 2 1 A is output sequentially at a predetermined output rate (sampling frequency).
  • the audio output module 2 2 1 accepts audio data from the audio decoder control module 2 1 7 as long as the storage capacity (remaining amount) of F IF0 2 2 1 A is sufficient, but if there is no room, Requests the audio decoder control module 2 1 7 to stop accepting the audio overnight. As a result, the audio decoder control module 2 1 7 stops processing.
  • the audio output module 2 2 1 requests the audio decoder control module 2 1 7 to stop accepting audio data
  • the audio output from the F IFO 2 2 1 A proceeds and the F IF0 2 2 1
  • the audio decoder control module 2 1 7 is requested to accept the audio data.
  • the audio decoder control module 2 17 resumes the stopped processing.
  • the elementary stream is decoded as data is output from the video output module 2 20 and the audio output module 2 2 1.
  • FIG. 36 shows the internal structure of the video decoder 1 1 6.
  • the inside of the video decoder 1 1 6 is composed of video decoding engines 1 1 6 8 and 0 8 (decoded picture buffer) 1 1 6 B.
  • the interior of DPB 1 1 6 B is further subdivided.
  • FIG. 37 the inside of DPB 1 16 B is divided into a video buffer 3 0 1 and an additional information buffer 3 0 2.
  • the video buffer 3 0 1 of the DPB 1 16 B is used for the purpose of temporarily storing the video data being decoded or holding it for use as a reference image in the future.
  • the additional information buffer 30 2 the additional information obtained from the video reading function unit 2 3 3 corresponding to the video data stored in the video buffer 3 0 1 and the access unit are syntaxed.
  • the parameters obtained from the analysis (for example, pist ruc t) are recorded.
  • the video decoder control module 2 1 6 instructs the video decoder 1 1 6 to decode the input video access unit.
  • Video decoder 1 1 6 After decoding and reordering processing, 1 frame (2 frames) Video data is output to the graphics processing module 2 19 and at the same time the time stamp (PTS / lks) and pic-struct information of the video data are decoded from the video decoder control module 2 1 6 Passed to control module 2 1 4.
  • the access unit pic—s uct When the access unit pic—s uct is 1 or 2, these are the access units for one field, so that the leading fee is output when two access units are output to make one frame.
  • the time stamp is passed from the video decoder control module 2 1 6 to the decode control module 2 1 4.
  • the preceding field does not have a time stamp, information that there is no time stamp is passed. Since isolated fields are not allowed as described above, a field with pic_struct 2 or 1 is placed immediately after the field with pic_struct 1 or 2. When dealing with these two fields as one, use the preceding field's evening stamp as a representative value.
  • the access unit's pic-struct. Is 0, 3, 4, 5, or 6, the 1 pic unit struct and the corresponding access unit will be time stamped when the access unit 1 is output. If there is a time stamp, the time stamp is passed from the video decoder control module 2 1 6 to the decode control module 2 1 4. In an access unit that does not have a time stamp, information that there is no time stamp is passed.
  • the decode control module 2 1 4 updates the time measuring unit 2 1 4 A using the received time stamp and the information of pic_struci.
  • the decode control module 2 1 4 determines whether or not the received access unit has a time stamp (step sr 4
  • the decode control module 2 14 sets the value of the time stamp (PTS) in the time measuring unit 2 14 A (step S 1 4 2). As described above, there is always a time stamp immediately after the start of decoding, so no problem occurs even the first time. If no time stamp has been added to the access unit, the value determined by the previous pic-struct is added to the current time (step S 1 44). After that, this pic_struct is saved for the next processing and finished (step S 1 4 3).
  • pic_struct The value determined by pic_struct is as shown in Fig. 39. If pic_struct stored and saved is 0, 3 or 4, the timekeeping part 2 1 4 A adds time for 2 field hours . If the pic-struct is 5 or 6, the timekeeping part 2 1 4 A adds the time for 3 field hours. Furthermore, if the stored pic-struct is 1 or 2, the timekeeping section 2 1 4 A adds the time for 2 field hours.
  • the time value indicated by the timer 2 14 A has been output from the video decoder control module 2 1 6 to the graphics processing module 2 1 9 (for one frame). ) Indicates the display start time of the access unit. In other words, if the video data has a time stamp, PTS is substituted. If there is no time stamp, the display interval of the previous video data is added in the display order.
  • AVC is used as the video encoding method.
  • MPEG2-Video even in MPEG2-Video, it is possible to know the display dura on display by using repeat fields and fields.
  • the storage capacity of FIF02 20 A When there is no margin, video data output from the video decoder control module 2 1 6 stops. In this case, the update of the timekeeping part 2 14 4 A also stops dynamically. In addition, when the update of video data to FIF0 2 20 A resumes, the update of the timer 2 14 A automatically resumes.
  • the video decoder control module 2 1 6 stops in conjunction with the update of the video output module 2 2 0 being stopped, It also means that the clock linked to it (the timekeeping section 2 14 A) can also be stopped.
  • the video output module update is permitted, and the operation of the video decoder control module 2 1 6 and the output of video data are resumed in conjunction with it, and This means that the linked clock (timekeeping part 2 1 4 A) is also restarted.
  • slow playback is a state in which pause and normal playback are alternately repeated in a short cycle, and the clock (timer 2 14 A) is also updated in synchronization with the video output. .
  • the timing unit 2 14 A is updated in synchronization with the video data output from the video decoder control module 2 16.
  • the delay after video decoder control module 2 1 6, here the delay caused by graphics processing module 2 1 9 and video output module 2 2 0 is large, it is actually provided to the user.
  • the relationship between the video data and the clock (timer 2 1 4 A) may shift.
  • the clock clock unit 2 14 A
  • FIFO 2 2 the video processing module 2 1 9 and video output module 2 2 0 and FIFO 2 2
  • the additional information buffer 3 02 described with reference to Fig. 7 is added, and video data and additional information are always handled as a set until output. Further, when video data is output from the video output module 2 20, the corresponding additional information is passed to the decode control module 2 14.
  • the decode control module uses the algorithm described above to make a clock (timer unit 2 1
  • Playlist # 0 of the first PlayListifO in Fig. 29 starts, but according to PyList # 0
  • playback of the second Playltemttl starts. That is, a PI ay It em transfer is performed in which a PI ay It em is transferred from Playl tem # 0 to Playl tem #l.
  • the decode control module 2 14 receives the time counted by the timer 2 14 A from the player control module 2 1 2 in step 1 2 7 of FIG. Was the first? 1 & 6111 # 0 0 ⁇ ] 1 1 _] 116 is equal to 27, 180, 090 (Fig. 29).
  • decode interrupt control is performed to play Playnem # 0. Exit.
  • the timekeeping part 2 14A does not change at 90kHz, that is, if the time is updated according to the video data output, the timekeeping part 2 14A Strictly speaking, it may not be equal to OUT-time of Play ltem # 0.
  • decoding interruption control is performed and playback of PlayItem # 0 is terminated. It will be. This process will be described in detail later with reference to FIGS. 51 and 52.
  • the decode control module 2 14. operates the video decoder control module 2 1 6, the audio decoder control module 2 1 7, and the subtitle decoder control module 2 1 8 to stop the decoding operation. Furthermore, the decode control module 2 14 controls the video output module 2 20 to continue outputting the output video data currently being output. Also, the decode control module 2 1 4 indicates that the first PlayltemifO has been played back. Is transmitted to the player control module 2 1 2.
  • the player control module 2 1 2 is the first PlayList # 0 and the first P yl in the step S 1 0 5 of FIG. Recognizing that the second P 1 ay 11 em # l exists, the decode control module 2 1 4 sends a message that the playback of the first PlayItem # 0 has ended. Then, the process proceeds from step S 1 5 1 to S 1 5 2, and the reproduction of the second Playlteni # l is started in the same manner as in the first PyltemitO described above.
  • the player control module 2 1 2 performs the second Playltem in the same manner as in step S 1 2 2 of FIG.
  • One of the RPN-EP-start described in EP-map 0 is determined as the playback start position.
  • the player control module 2 1 2 recognizes MarkO belonging to the second ayltem # l as described in step S 1 24 of FIG. 34, and has been described in step S 1 25 of FIG. 34.
  • the number of elementary streams of each attribute multiplexed in the clip stream file “00002. PS” played by Play Item # l is recognized, and further, the elementary stream to be played back Decisions are made.
  • the player control module 2 1 2 performs the same processing as in step S 1 2 7 in FIG.
  • the player control module 2 1 2 is a clip in which 1 ⁇ 1 £? 31 1 ⁇ of £? -1 ⁇ 0 () determined as the playback start position and the elementary stream to be played back are multiplexed.
  • the file name of the stream file that is, in this case, the clip stream corresponding to "00002. CLP" described in CI ip—Information—file—name of the second Playltem # l (Fig. 29)
  • the file name of the file “00002.PS” is given to the content data supply module 2 1 3.
  • the player control module 2 1 2. is a buffer control module 2 1 of the program stream stored in the clip stream file “00002 .PS” in which the elementary stream to be reproduced is multiplexed. Before the supply to 5 is started, the buffer control module 2 1 5 is initialized.
  • the buffer control module 2 15 (FIG. 5) the data head pointer stored in the data head pointer storage unit 2 3 1 and the data write key storage unit 2 3 2 are stored.
  • Video read pointer memory unit 2 4 1 Video read pointer stored in the video read pointer memory unit, Audio read pointer memory unit 2 5 1 Audio read pointer memory unit stored in the video subtitle read unit memory unit 2 6 2
  • the same value is assigned to the subtitle read-out message stored in the player.
  • the player control module 2 1 2 uses stream-id as identification information for identifying the elementary stream to be played back, and further, necessary. In response, private—stream—id is supplied to the buffer control module 2 1 5. .
  • the video reading function unit 2 3 3 determines the stream_id for the video stream of the elementary streams to be played back from the player control module 2 1 2, strean and store in id register 24 2 Also, the audio reading function part 2 3 4 sends the stream — id and private — stream— id of the stream and id of the elementary list stream to be played from the player control module 2 1 2 to the stream — Stored in id resis evening 2 5 2 and private—str eam_id register 2 5 3 respectively.
  • the subtitle reading function unit 2 3 5 from the player control module 2 1 2 has the element stream to be played back.
  • the subtitle stream's stream—id and pri vat st ream—id are supplied, and the subtitle read function 2 3 5 sets the stream—id and private—stream—id to the stre am—id register 2 6 3 and private—stream—id registers 2 6 4 are recorded.
  • the player control module 2 1 2 then initializes the buffer control module 2 1 5 (FIG. 5) and further responds to the clip stream file in which the elementary stream to be reproduced is multiplexed.
  • the subtitle read function flag of the value is set in the subtitle read function flag storage unit 2 61.
  • the subtitle stream is included in the clip stream file “00002.PS” in which the elementary stream to be played back is multiplexed.
  • a caption reading function flag having a value of 1 is set in the caption reading function flag storage unit 26 1.
  • the player control module 2 1 2 calculates the IN-time 90, 000 and the OUT- time 27, 090, 000 of the second Playltem # l (Fig. 29) to be played, This is given to the decode control module 2 1 4.
  • the player control module 2 1 2 initializes the instruction of the subtitle stream display method to the graphics processing module 2 19. That is, the player control module 2 1 2 controls the graphics processing module 2 19 so that the subtitle stream display method is the default display method.
  • the configurablejlag (Fig. 14) force display mode change is set to 1 for the subtitle stream to be played, the subtitle stream for the graphics processing module 2 '1 9 from the player control module 2 1 2 is displayed.
  • Ream display method instructions may remain the same as the current display method.
  • the playback of the second PyItem # l is performed in the same manner as the playback of the first PlayIiem # 0.
  • the decode control module 2 14 keeps checking the time that the built-in clock unit 2 14 A keeps timing, and the clock unit 2 14 A Is the OUTJime of the second Playltem # l given from the player control module 2 1 2 in step S 1 52 (Fig. 40) 27, 090, 000 (Fig. 29) If equal to, the same decoding interruption control as in step S 1 51 is performed, and Playltemin playback ends.
  • the time being measured by the clock unit 2 14 A may not be exactly equal to 0UT_time of PlayItem # 0.
  • step S 1 23 of FIG. 34 the display of the evening code is started, and this display of the time code is sequentially updated.
  • step S 1 7 When 1 second is timed by the built-in timekeeping part 2 1 4 A, in step S 1 7 1, along with the message that 1 second has elapsed, the current time timed by ⁇ time part 2 1 4 A Is supplied to the player control module 2 1 2, and the process proceeds to step S 1 7 2.
  • step S 1 7 2 the player control module 2 1 2 receives the message from the decode control module 2 1 4 and the current time, converts the current time into a time code, Proceed to
  • step S 1 7 3 the player control module 2 1 2 performs the graphics processing so that the time code obtained in step S 1 7 2 is shown in Table 1i.
  • 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 to the plurality of elementary streams having the same attribute. You can switch the stream from one of the stream streams to the other.
  • a request for stream switching can be made in the “SCRIPT.DAT” file (No. 6))
  • the script control module 2 1 1 executes the id script ⁇ program, or the user operates the remote control. Is given to the player control module 2 1 2.
  • the script control module 2 1 1 executes a script program in which a stream switching instruction is described, a message requesting stream switching is supplied to the player control module 2 1 2. Also, the input interface 1 1 5 receives a message for requesting stream switching from the remote controller when the user operates the remote control, and sends a message requesting stream switching to the player control module 2. 1 Supply to 2.
  • a subtitle stream switching message which is a message requesting subtitle stream switching
  • the player control module 2 1 2 9 In 1 the number of character streams recognized at the time of determining the element list to be played in step S 1 25 in FIG. 34 is checked.
  • the player control module 2 1 2 ignores the subtitle stream switching message if the number of subtitle streams is less than one as a result of checking the number of subtitle streams. Therefore, the following steps S 1 9 2 to The processing of S 1 94 is not performed.
  • step S 1 92 the player control module 2 1 2 sets the currently reproduced subtitle stream on the clip information file. Specifically, for example, the stream stream multiplexed into the clip stream file “00002PS” by the second Playltem # l constituting the first PlayList # 0 described in FIG.
  • step S 1 9 2 Assuming that a subtitle stream with id of OxBD and private—s tream_id of 0x80 is being played, in step S 1 9 2, the subtitle stream that is currently playing is Of the two multiplexed subtitle streams, the third subtitle stream s sea # 2 on the clip information file "00002 CLP" in Fig. 30A and Fig. 30B It is identified.
  • step S 1 93 the player control module 2 1 2 determines that the next subtitle stream on the clip information file of the subtitle stream specified in step S 1 9 2 is to be reproduced next.
  • the subtitle stream next to the third subtitle stream stream # 2 on the clip information file “00002CLP” is the fourth subtitle stream st. Since it is .ream # 3, in step S 1 93, this fourth subtitle stream stream # 3 is recognized as a subtitle stream to be reproduced next.
  • the subtitle stream being played back is the clip information file of Fig. 30 A and Fig. 30 B of the two subtitle streams multiplexed in the clip stream file "00002 .PS" " 00002.
  • the third subtitle stream streani # 2 is recognized as the subtitle stream to be played next. .
  • Player control module:] 1 2 Indicates the stream_id and private stream id of the next subtitle stream to be played back recognized in step S 1 9 3 to the subtitle read function section 2 3 5 of the buffer control module 2 1 5 (Fig. 5).
  • the s_eam_id and p'rivate—stream—id are instructed to be used from the next reading from the subtitle access unit buffer 2 15 A.
  • the subtitle stream to be reproduced can be switched from the currently reproduced subtitle stream to another subtitle stream.
  • the buffer control module 2 15 has five pointers for reading and writing data to the buffer 2 15 A.
  • the buffer control module 2 15 has the data head pointer stored in the data head pointer storage unit 2 3 1 and the data write pointer storage unit 2 3 Data stored in 2 Overnight Write Pointer, Video Read Pointer Storage Unit 2 4 1 Video Read Boyne Stored in Audio Recorder, Audio Readout Boyne Recorder Unit 2 5 1 Audio Readout Boyer Stored in Subtitle, and Subtitle Readout Boyer Storage Unit 2 6 2 Has a subtitle read-out message stored in
  • the video read function unit 2 3 3 in FIG. 5 has a stream—id register 2 4 2 and an au—informat i on 0 register 2 4 3, an audio read function.
  • the caption reading function flag storage unit 2 61 of the readout function unit 2 3 5, the stream — id register 2 6 3, and the private_stream_id register 2 64 are not shown.
  • the data header data stored in the data header data storage unit 2 3 1 is the oldest data remaining in the buffer 2 1 5 A (the data that needs to be read and that has not been read yet) It represents the position of the oldest night.
  • the data write pointer storage section stored in the data write pointer storage section 2 3 2 indicates the position at which data is written to buffer 2 1 5 A, and this position is the highest in buffer 2 1 5 A. This is where new data is written.
  • the video read pointer stored in the video read pointer storage unit 2 41 indicates the position of the video stream read from the buffer 2 15 A.
  • the audio read pointer stored in the audio read pointer storage unit 2 51 represents the position of the audio stream read from the buffer 2 15 A
  • the subtitle stored in the subtitle read message storage unit 26 2 The read pointer indicates the position of the subtitle stream to be read from buffer 2 15 A.
  • the data start pointer, data write pointer, video read pointer, audio read pointer, and subtitle read pointer all rotate clockwise through buffer 2 15 A. Moving.
  • the de-evening start pointer indicates the position of the oldest de-evening out of the video read pointer, audio read pointer, or subtitle read pointer. It shall be constantly updated to point to the same location as that pointing.
  • the audio read pointer of the video read pointer, audio read pointer, or subtitle read pointer points to the position of the oldest data. , Its audio readout coincides with Boyne Evening.
  • buffer control module 2 1 5 having the above-mentioned data pointer, data pointer, video read pointer, audio read pointer, and subtitle read pointer as described above,
  • new data is read from disk 1 0 1 and written to buffer 2 1 5 A, it is updated clockwise to point to the position immediately after the new data that was written.
  • the video read pointer, audio read pointer, or subtitle read pointer is only the amount corresponding to the amount of video when the video stream, audio stream, or subtitle stream is read from buffer 2 15 A. Each 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 skipping is performed at the time of reading.
  • the data part of other streams are combined.
  • the data head pointer is the oldest data out of the video read-out pointer, audio read-out pointer, or subtitle read-out boyer. Updated to point to the same location that points to the location.
  • the notifier control module 2 15 is responsible for writing data to the buffer 2 15 A so that the data write bus does not overtake the data head pointer. Control evening writing.
  • the buffer control module 2 15 will read the data read from the disk 1 0 1 with the buffer indicated by the data write pointer. 2 1 5 The data is written to the A position, and the data for the overnight write is updated. On the other hand, if overtaking of the first data point by the data write pointer is likely to occur, the buffer control module 2 1 5 requests the content data supply module 2 1 3 to stop reading data from the disk 1 0 1 In addition, data writing to buffer 2 15 A is stopped. This prevents the overflow of buffer 2 15 A.
  • the writing of data read from the disk 1 0 1 to the buffer 2 15 5 A is controlled only by the positional relationship between the two pointers, the data start point and the data write point.
  • the driver control module 2 15 has a video read pointer, an audio read pointer, and a subtitle read pointer for reading data from the driver 2 15 A.
  • Don't overtake Buffer 2 1 5 Controls reading of data from A.
  • the buffer control module 2 1 5 has the video decoder control module 2 1 6 and the audio decoder.
  • data is read from the position of the buffer 2 1 5 A pointed to by the video read pointer, the audio read pointer, or the subtitle read button,
  • the video read pointer, audio read pointer, or caption read pointer is updated, and the data head pointer is updated as necessary.
  • the buffer control module 2 1 5 uses the video decoder control module 2 1 6 and the audio decoder control. Requests from module 2 1 7 or subtitle decoder control module 2 1 8 are, for example, frozen until enough data is available. As a result, the underflow of the buffer 2 15 A can be prevented.
  • buffer 2 15 A has a range from the position indicated by the data head pointer to the position indicated by the data write pointer clockwise (with a shadow in Figs. 4 3 and 4 4).
  • data to be supplied to the video decoder control module 2 1 6, the audio decoder control module 2 1 7, and the subtitle decoder control module 2 1 8 are stored, and within that range, There is a video read pointer, audio read pointer, and subtitle read pointer.
  • the data start pointer must be updated to indicate the position of the oldest data among the positions indicated by the video read pointer, audio read pointer, or subtitle read pointer.
  • the video readout pointer, the audio readout pointer, or the video readout pointer among the video readout pointer, audio readout pointer, or subtitle readout pointer will often point to the position of the oldest data.
  • the data start pointer is determined from the position of the oldest data pointed to by the video read pointer or the video read pointer.
  • the oldest data position pointed to by the oldest data pointed to by the video read pointer or audio read pointer You can leave the evening in buffer 2 1 5 A.
  • the audio read-out message points to the position of the oldest data, and the data head pointer indicates the position of past data for one second from that position. pointing.
  • the responsiveness of the disc playback device can be improved by updating the data start heading so that it points to the position of the past data for one second.
  • the start pointer is set so that it points to the position of the past data for one second from the position of the oldest data pointed to by the audio readout button.
  • the data required to start the special playback is stored for 1 second stored in buffer 2 1 5 A.
  • special playback can be started immediately without re-reading the data from the disc 100 as described above.
  • step S 1 2 7 in Fig. 34 the clip stream file
  • the buffer control module 2 1 5 [, the data start pointer, the data write pointer, the video read pointer, the audio read pointer, and the subtitle read point are all on the buffer 2 1 5 A. Initialized to point to the same location.
  • the video reading function section 2 3 3 analyzes the syntax of the program stream stored in the buffer 2 1 5 A, and the video decoder control module 2 1 In response to a request from 6, the video access unit is extracted from the program stream stored in the buffer 2 15 A and read out, and supplied to the video decoder control module 2 16.
  • the audio reading function section 2 3 4 also parses the program stream stored in the notifier 2 1 5 A, and in response to a request from the audio decoder control module 2 1 7, the buffer 2 1 5
  • the audio access unit is extracted from the program stream stored in A, read out, and supplied to the audio decoder control module 2 1 7.
  • the subtitle reading function section 2 3 5 also parses the program stream stored in the buffer 2 1 5 A, and responds to the request from the subtitle decoder control module 2 1 8 to the buffer 2 1 5 A.
  • the subtitle access unit is extracted from the stored program stream, read out, and supplied to the subtitle decoder control module 2 18.
  • the elementary stream multiplexed with the program stream stored in the clip stream file “00001.PS” is the elementary stream to be reproduced.
  • the program stream is read from the disk 1 0 1 and stored in the buffer 2 1 5 A
  • the EP-map 0 of the clip stream file “00001.PS” is obtained in step S 1 2 2 in FIG. 305 sectors are determined as the playback start position based on the decoding start possible point information described in (Fig. 31).
  • step S1 28 of Fig. 34 the 305 sector that is the playback start position is specified.
  • the operating system 2 0 1 is requested to read the program stream stored in the clip stream file “00001.PS”.
  • the decoding start point information described in EP_MPO indicates the position of PES_packet 0 of private__strean 2 placed immediately before the actual decoding start point.
  • Private-stream-2 PES-packet 0 is stored at the position of the buffer 2 15 A pointed to by the pointer.
  • the video readout function part 2 3 3 receives priv in step S 2 1 1 If PES_packet 0 of ate_stream—2 is found, proceed to step S 2 1 2, and the private—strean 2 PES—packet—data—by te private—stream2_PES—payload () (No. 2 6 V'id eo_stream— The id is extracted and the video_stream_id is stored in the seam_id register 2 4 2 (Fig. 5) in step S 1 2 7 of Fig. 34. Judges whether or not it matches the stream—id of the target video stream.
  • step S 2 1 2 If it is determined in step S 2 1 2 that the video_stream—id described in private_stream2—PES—pay load 0 does not match the stream—id stored in the stream_id register 2 4 2, that is, immediately before If the private—stream— 2 PES—packet 0 found in step S 2 1 1 is not located at the start of decoding the video stream to be played back, return to step S 2 1 1 The other private_stream—2 PES—packet 0 in the program stream stored in the buffer 2 15 A is searched, and the same processing is repeated thereafter.
  • step S 2 1 2 if it is determined in step S 2 1 2 that the video-stream-id described in private_stream2_PES—payload () matches the stream-id stored in .stream_id register 2 4 2, that is, If the private_stream—2 PES found in step S 2 1 1 immediately before is located at the decoding start point of the video stream to be played, go to step S 2 1 3,
  • the video readout function unit 2 3 3 reads au—informationO described in PES—packet () CDprivate_stream2_PES_payload () of its private—stream— 2 from buffer 2 1 5 A, and au—informationO register 2 4 3 (Fig. 5), and go to step S 2 1 4.
  • step S 2 1 4 the video readout function part 2 3 3
  • Step S 2 1 1 found private— s eam— 2 PES— packet 0 (vi deo_stream_id (Fig. 2 6) force stream— id register 2 4 2 (Fig. 5) stored in st ream— id
  • the video read pointer stored in the data head pointer storage unit 2 31 is updated by the size of PES—Dacket 0) of private—stream— 2 that matches
  • the video stream stream ID (PES packet 0) that matches the video stream stream id is placed immediately after the private stream stream PES packet 0, so step S In 2 1 4, the video readout pointer is the actual video stream
  • step S 2 1 4 the process proceeds from step S 2 1 4 to S 2 1 5, and the video readout function unit 2 3 3 determines whether or not there is a data request from the video coder control module 2 1 6, and determines that there is no request. If so, return to step S 2 1 5 and repeat the same process.
  • step S 2 1 5 If it is determined in step S 2 1 5 that the video decoder control module 2 1 6 has received an overnight request, the process proceeds to step S 2 1 6, where the video readout function unit 2 3.3 Point 2 Pointer Buffer 2 1 5 While parsing the program stream from position A, the number of bytes described in AU-length of au-informationO stored in au-informationO register 2 4 3 Data, i.e. one video access unit is read from buffer 2 15 A and fed to video coder control module 2 16 and video read pointer is read from buffer 2 15 A Update only the size of the video access unit.
  • au—informationO contains pic_struct— copy, au_ref_f lag> and AU_len gth as information about each number of video access units as many as number_o and access—unit, as explained in Figure 27. Is described.
  • au_inf ormat ion 0 (This number—of—access—unit is the number of AU—lengths, as explained in Figure 27. — Packet 0 force, etc. Since the next private—stream—2 PES—number of packet_units included in the number of access_units contained between the PES—pac ket 0, the video read function part 2 3 By using the AU-length, it is possible to cut out the access unit without analyzing the syntax of the video stream. That is, conventionally, the access unit of MPEG2-Video or MPEG4-AVC is cut out.
  • the video readout function part 2 3 3 does not parse the video stream based on the AU_lengih described in its private_strean 2 PES—packet ().
  • the video access unit (unit video stream) can be read from 2 15 A and supplied to the video decoder control module 2 16.
  • step S 2 1 6 the video readout function unit 2 3 3 uses the au_inf ormat i as information on the video access unit when the video access unit is supplied to the video decoder control module 2 1 ( 6. on 0 ⁇ description pic one st rue t one copy, au one ref one f lag, and AU—length, and the time stamp (PTS, DTS) added to each video access unit Supply to decoder control module 2 1 6.
  • step S 2 1 6 after one video access unit is read from the notifier 2 1 5 A and supplied to the video decoder control module 2 1 6, the process proceeds to step S 2 1 7, and the video read function unit 2 3 3 determines whether or not the number of access points indicated by number_of-access-unit of au-informationO (Fig. 27) stored in au-informationO register 2 4 3 has been processed. To do.
  • step S 2 1 7 if it is determined that the number of access units represented by number—of—access_unit has not yet been processed, that is, the number of access units represented by number_of—access—unit is represented. If not yet supplied to the decoder control module 2 16 that reads out from the buffer 2 15 A and bids, the process returns to step S 2 15, and the same processing is repeated thereafter.
  • step S 2 1 7 If it is determined in step S 2 1 7 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 stored in buffer 2 1 5 When read from A and supplied to video decoder control module 2 1 6, return to step S 2 1 1, search for PES_packet () of next private_stream— 2, and repeat the same process .
  • the audio reading function unit 2 3 4 first, in step S 2 3 0, stores the playback target stored in the stream_id register 2 5 2 (FIG. 5) in step S 1 2 7 of FIG. 3 4. Determine whether the audio stream's stream—id represents a private—stream—1 PES—packet 0.
  • step S 2 3 if it is determined that the stream_id stored in the stream_id register 2 5 2 does not represent PES_packet 0 of private_stream 1, that is, the stream_id register 2 5 2 If the stored stream-id is ⁇ ⁇ ⁇ ⁇ ⁇ assigned to an audio stream encoded according to the MPEG standard, as described in Figure 23, go to step S 2 3 1 to read audio
  • the function unit 2 3 4 searches for a synchronization code indicating the head of the audio frame defined by MPEG Audio from the program stream stored in the buffer 2 15 5 A.
  • the audio readout function unit 2 3 4 Since the position of the sync code is the beginning of the audio frame, the audio readout function unit 2 3 4 updates the audio readout pointer to indicate the position of the beginning of the audio frame, and steps S 2 3 1 to S 2 3 Proceed to 2.
  • step S 2 3 2 the audio readout function unit 2 3 4 sends the stream stored in the s earn—id register 2 5 2 in the program stream stored in the notor 2 1 5 A—
  • the PES_packet () matching the id is found by searching from the position indicated by the video readout message, and the process proceeds to step S 2 3 3.
  • step S 2 3 3 the audio read function unit 2 3 4 reads the audio read stored in the audio read pointer storage unit 2 5 1.
  • PES-packet-data-byte of PES-packet 0 found in the previous step S 2 3 2 (Fig. 19 A and Fig. 19 B to Fig. 2 A and Fig. 2 1 B) Update to point to the beginning of, and go to step S 2 3'7.
  • step S 2 3 7 the audio readout function unit 2 3 4 determines whether there is a data request from the audio decoder control module 2 1 7, and if not, returns to step S 2 3 7. Repeat the same process.
  • step S 2 3 the audio decoder control module
  • step S 2 3 8 If it is determined that the data request has been received from the control 2 1 7, the process proceeds to step S 2 3 8, and the audio reading function unit 2 3 4 reads the buffer 2 1 5 A to which the audio reading While parsing the program stream from the position of, a single fixed-length audio access unit is read from buffer 2 15 A and the time stamp (PTS, DTS) and audio decoder control module 2 1 7 Then, the audio read function unit 2.34 updates the audio read pointer by the size of one audio access unit read from the buffer 2 15 A, and returns to step S 2 37. Thereafter, the same process is repeated.
  • step S 2 3 it was determined that the stream-id stored in the stream-id register 2 52 represents the PES-packet 0 of pr i vat e-st ream-1
  • step S 2 3 4 go to step S 2 3 4 and the audio read function 2 34 will Search private_stream— 1 PES—packet 0 in the stored program stream. That is, the audio reading function unit 34 searches for and finds PES-packet () whose stream-id is 10111101B.
  • step S 2 3 4 When the private—stream_l PES—packet 0 is found in step S 2 3 4, the audio reading function unit 2 3 4 proceeds to step S 2 3 5, and the private—stream— 1 PES—packet 0 PES— packet—data—byte private_stream and PES—payloadO (Fig. 24).
  • the private_stream_id described in Fig. 24 is extracted.
  • stream Identifies whether or not it matches the private stream —id of the audio stream to be played, stored in the id register 2 5 3 (FIG. 5).
  • step S 2 3 5 private—st ream and private—stream—id, described in PES—payloadO, private—st ream—id Registration 2 5 3 match with private—stream—id In other words, if PES_packet () of private—stream— 1 found in the immediately preceding step S 2 3 4 is not the audio stream to be played back, step S 2 3 4 is entered. Returning, a search for PES_packet () of other private—stream_l in the program stream stored in the notifier 2 15 A is performed, and the same processing is repeated thereafter.
  • step S 2 3 5 private_streaml—PES—payload () describes the private—stream am—id force r ivate_s tre am 1 id Reg 1 2 3 3
  • the process goes to step S 2 3 6.
  • the audio readout function part 2 3 4 read AU_locat, or described in pr ivate_s t ream_l PES— packet 0 pr ivat e— str earn 1— PES— pay 1 oad 0 (Fig. 2 4) from buffer 2 1 5 A and read AU_locator
  • the head position of the audio access unit is obtained by adding the position immediately after the “value” indicated by the AU-locator.
  • the AU-locator is based on the position immediately after the AU-locator, and the audio access unit or private access unit stored in the private_payload () of the private stream-PES_payload () Since the head position of the subtitle access unit is represented, the head position of the audio access unit can be obtained by adding the value represented by the AU-locator to the position immediately after the AU-locator.
  • step S 2 3 6 the audio read function unit 2 3 4 further stores it in the audio read pointer storage unit 2 5 1 so as to point to the start position of the audio access unit obtained as described above. Update the read audio pointer and go to step S 2 3 7.
  • step S 2 3 7 the audio readout function unit 2 3 4 determines whether or not there is a request for the data from the audio decoder control module 2 1 7, and if not, step S 2 3 7 Return to and repeat the same process.
  • step S 2 3 7 if it is determined from the audio decoder control module 2 1 7 that there is a data request, the process proceeds to step S 2 3 8, where the audio reading function unit 2 3 4 Buffer 2 1 5 Pointed to by the audio read-out message, while parsing the program stream from position A, one audio access unit of known fixed length is read from buffer 2 1 5 A, That It is supplied to the audio decoder control module 2 1 7 together with the time stamp added to the DioAccess unit.
  • the audio read function unit 2 3 4 then updates the audio read pointer by the size of one audio access unit read from the buffer 2 15 A, and returns to step S 2 3 7. Thereafter, the same process is repeated.
  • the subtitle reading function unit 2 35 has the subtitle reading function flag stored in the subtitle reading function flag storage unit 2 61 in step S 1 2 7 in FIG. Determine. If it is determined in step S 2 51 that the subtitle read function flag is 0, that is, for example, the subtitle stream is not included in the clip stream file in which the elementary stream to be played back is multiplexed. When 0 is set in the subtitle Korean text search function flag storage unit 2 61 at step S 1 27 in FIG. 34, the subtitle readout function unit 2 35 does not perform any particular processing.
  • step S 2 51 if it is determined in step S 2 51 that the subtitle read function flag is 1, that is, for example, the subtitle stream is added to the clip stream file in which the elementary list stream to be reproduced is diversified. Is included, and if 1 is set in the subtitle read function flag storage unit 2 61 in step S 1 2 7 of Fig. 34, the process proceeds to step S 2 52 and the subtitle read function unit 2 3 5 is the same as se arn—id of the subtitle stream to be played, stored in str eam—id register 2 6 3 (Fig. 5). Search for the matching PES_packet 0 from the program stream stored in the noffa 2 1 5 A. 3 ⁇ 4 Here, as described in step S 1 27 of FIG.
  • stream_id register 26 3 (FIG. 5) stores the stream_id of the subtitle stream to be played back.
  • step S 2 52 the private—stream_J PES—packet () in the program stream stored in the buffer 2 15 A is searched.
  • step S 2 52 PES_packet 0 of private_stream— 1 is searched, and if PES—packet 0 of private—stream— 1 is found, the process proceeds to step S 2 5 3, and the subtitle reading function part 2 3 5 Private_st're an 1 PES—packet 0 PES—packet—data—by te pri vat e—st ream PES—payloadO (Fig. 24) Extracted, and the private_stream—id is stored in ⁇ rivate s earn—id register 2 6 4 (Fig. 5.) in step S 1 2 7 of Fig. 34. Determine if the stream's private—stream—id matches.
  • step S 2 5 3 the private_stream is written in PES—payloadO ( ⁇ private— s tream— id is stored in pr i vaie— s tream— id register 2 6 4 privat.e__stream_i (3 and If it is determined that they do not match, that is, if the private_strean 1 PES_packet 0 found in the previous step S 2 5 2 is not the subtitle stream to be played back, the process returns to step S 2 5 2 and the buffer 2 1 5 PES Dacket 0 is searched for other private—stream— 1 in the program stream stored in A, and so on. The process is repeated.
  • step S 2 5 private—stream and PES—payl ( ⁇ d () says to pr ivate—st ream—id force ri vate_s t ream—id registry 2 6 4 If it is determined that it matches the stored private_stream_id, that is, if the private_stream—1 PES packet () found in the previous step S 2 52 is the subtitle stream to be played back, step S 2 5 4
  • the subtitle read function unit 2 3 5 moves the ALUocator described in the private_stream—1 PES—packet 0 private—streaml—PES—payloadO (Fig. 24) from the buffer 2 1 5 A. Read and find the first position of the subtitle access unit by adding the position immediately after the locator and the value represented by the Allocator.
  • ⁇ -locator is a subtitle access unit (or audio access) stored in private- payloadO of private-streaidJES-payloadO with reference to the position immediately after AU_locator as described in Fig. 24.
  • the subtitle read function unit 2 3 5 further reads the subtitle stored in the subtitle read pointer storage unit 2 62 2 so as to point to the head position of the subtitle access unit obtained as described above in step S 2 5 4. Update the pointer and go to step S 2 5 5.
  • step S 2 5 the caption reading function unit 2 3 5 determines whether or not there is a data request from the caption decoder control module 2 1 8, and if not, returns to step S 2 5 5. Repeat the same process.
  • step S 2 5 subtitle decoder control module 2 If it is determined from 1 8 that a data request has been received, the process proceeds to step S 2 5 6, and the subtitle reading function section 2 3 5 reads the program from the buffer 2 1 5 A pointed to by the subtitle reading point. While analyzing the stream syntax, one subtitle access unit for the size described at the beginning of the subtitle access unit is read from buffer 2 15 A and added to the subtitle access unit. Is supplied to the subtitle decoder control module 2 1 8 together with the current time stamp. That is, as described in Fig. 2A and Fig. 2B, the size of the subtitle access unit is described at the head of the subtitle access unit. Reads the data for the size from the position of the buffer 2 15 A pointed to by the subtitle read button, and reads the subtitle access unit that is the read data together with the time stamp added to the subtitle access unit. Supplied to subtitle decoder control module 2 1 S.
  • the subtitle reading function unit 2 3 5 updates the subtitle reading point by the size of one subtitle access unit read from the buffer 2 1 5 A, and returns to step S 2 5 5. The same process is repeated.
  • the decode control module 2 1 4 shifts the timing if necessary to ensure synchronization, and starts the decoding by the video decoder control module 2 1 6, audio decoder control module 2 1 7, and subtitle decoder control module
  • the video output is output in synchronization with the video data.
  • the output of the audio / video output as output data to be shifted may deviate. Therefore, the decode control module 2 1 4 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 the video data and the audio overnight are synchronized. Then, resynchronization processing is performed so that the data is output.
  • step S 2 7 the decoding control module 2 1 4 controls the time stamp of the video access unit from the video decoder control module 2 1 6 and the audio decoder control. Determine whether the deviation from the time stamp of the audio access unit from module 2 1 7 is large.
  • the video decoder control module 2 1 6 is updated every time a video access unit is obtained from the notifier control module 2 1 5.
  • the access unit time stamp is supplied to the decode control module 2 1 4.
  • the audio decoder control module 2 1 7 obtains an audio access unit from the buffer control module 2 1 5, the time stamp of that audio access unit is also sent to the decode control module 2 1 4. Supply.
  • step S 2 7 the decode control module 2 1 4 can be regarded as the same timing from each of the video decoder control module 2 1 6 and the audio decoder control module 2 1 7. Compare the time stamps supplied within a certain time period and determine whether the deviation of their time stamps is large.
  • step S 2 7 the time stamp of the video access unit from the video decoder control module 2 1 '6 and the time stamp of the audio access unit from the audio decoder control module 2 1 7 If it is determined that the deviation is not large, that is, the deviation between the time stamp of the video access unit and the time stamp of the video access unit is within the range in which it can be considered that the predetermined synchronization is achieved. For example, in the case of 2 video frames (approximately 66 milliseconds), the process returns to step S 2 71 and the determination of the difference between the time stamps is continued.
  • step S 2 71 there is a large difference between the time stamp of the video access unit from the video decoder control module 2 1 6 and the time stamp of the audio access unit from the audio decoder control module 2 1 7. If it is determined that there is a difference between the time stamp of the video access unit and the time stamp of the audio access unit, it can be considered that the predetermined synchronization has been established. If it is out of range, the process proceeds to step S 2 7 2, and the decode control module 2 1 4 receives the time stamp of the video access unit from the video decoder control module 2 1 6 and the audio decoder control module 2. 1 Compare the audio access unit time stamps from 7 The output of the over data, determine which is delayed of the output of the audio O data.
  • step S 2 7 3 The decode control module 2 1 4 proceeds with the video access unit decode and the video decoder control module 2 1 6 to proceed with the video access unit processing only for one video access unit.
  • An instruction not to display, that is, an instruction to skip the processing of the video access unit is output, and the process proceeds to step S 2 74.
  • step S 2 7 4 the video decoder control module 2 1 6 receives the skip instruction from the decode control module 2 1 4, and in response to the skip instruction, the video access control module 2 1 5 receives the video access Check the au-ref-flag (Fig. 27) supplied with the product.
  • au-informat ion 0 (Fig. 27) placed in private- s earn- 2 PES- packet 0 private-stream2- PES-payloadO (Fig. 26) is Au—ref_flag is included as information about the Casseuni ⁇ , and the noffer control module 2 1 5 is the same as described in step S 1 2 9 of FIG. 3 4 and step S 2 1 6 of FIG. 4 5
  • the video access unit and the au-ref_flag of the video access unit are supplied to the video decoder control module 2 1 6.
  • step S 2 7 the access unit's au-ref-flag supplied with the access unit is thus checked.
  • step S 2 74 the video decoder control module 2 16 is based on the result of checking the au_ref_flag of the video access unit supplied from the buffer control module 2 15.
  • This video access unit is a non-reference image that is not referenced when decoding other pictures.
  • the au-ref-flag of the video access unit indicates whether or not the access unit is a reference image. It is 1 when it is a reference image, and 0 when it is not a reference image, that is, when it is a non-reference image.
  • step S 2 75 If it is determined in step S 2 75 that the supplied video access unit from the buffer control module 2 1 5 is not a non-reference image video access unit, that is, from the buffer control module 2 1 5 If the supplied video access unit is a reference image, proceed to step S 2 7 6 and the video decoder control module 2 1 6 transfers the video access unit to the video decoder 1 1 6 as usual. Then, wait for the next video access unit to be supplied from the buffer control module 2 1 5, and return to step S 2 7 4.
  • step S 2 75 If it is determined in step S 2 75 that the video access unit supplied from the buffer control module 2 1 5 is a non-reference image, the process proceeds to step S 2 7 7 and the video decoder control module 2 1 6 skips processing of the video access unit by the video decoder 1 1 6, waits for the next video access unit to be supplied from the buffer control module 2 1 5, and step S 2 7 1 Return to. .
  • the video access unit process is advanced by approximately one video access unit. As a result, the output of the video data that was later than the output of the audio data will be accelerated.
  • step S 2 72 if it is determined in step S 2 72 that the video data output is not delayed from the audio data output, that is, the audio data output is delayed from the video data output, Proceeding to step S 2 7 8, the decode control module 2 1 4 starts the video decoder control module in order to wait for the video access unit to be processed. Repeat output to output the video data corresponding to the currently decoded video access unit for Yule 2 1 6 ( ⁇ Output the instruction, and go to step S 2 7 9.
  • step S 2 7 9 the video decoder control module 2 1 6 receives the repeat output instruction from the decode control module 2 1 4, and in response to the repeat output instruction, the video decoder 1 1 6 The video data corresponding to the selected video access unit is repeated and output to the graphics processing module 2 19, and the next video access unit is supplied from the buffer control module 2 15. Wait and go back to step S 2 7 1.
  • the decode control module 2 14 it is determined whether or not the video output is delayed from the audio data output, and the video data output is delayed from the audio data output. If so, the video decoder control module 2 1 6 is instructed to skip processing of one access unit. Then, the video decoder control module 2 1 6 determines whether the access unit is a reference image or a non-reference image based on au —re and fl ag of the access unit instructed to skip. If it is determined that the image is a non-reference image, the video decoder 1 1 6 is made to skip the processing of the access unit instructed to skip. Therefore, it is possible to easily synchronize the output of video data and the output of audio data.
  • the access unit that skips processing is a reference image
  • the video data corresponding to that access unit needs to be decoded for reference when decoding other access units that are subsequently decoded. is there. Therefore, in the synchronization control to synchronize the video data output and the audio data output, the reference image access If the unit processing is skipped, other access units that refer to the reference image cannot be decoded. As a result, the synchronization control appears as noise in the display of the video data. 'For this reason, it is desirable to skip the access unit that is not a reference image, that is, an access unit for a non-reference image, that is skipped.
  • the program stream stored in the clip stream file recorded on the disk 1 0 1 has a PES_packet 0 in which the video access stream is placed in PES—packet_data_byte (Fig. 19 A)
  • PES-packet-data-byte extended private-stream2-PES-payloadO (Fig. 26) was placed.
  • private_stream—2 PES_packet 0 is multiplexed.
  • the private—stream2—PES—payloado au—information () ( Figure 27) shows the video access unit for each video access unit. An au flag that indicates whether the image is a non-reference image or not is described.
  • the au_re flag is supplied from the buffer control module 2 15 to the video decoder control module 2 16 together with the corresponding video access unit. Therefore, the video decoder control module 2 1 6 can check the video access unit supplied with the video access unit by checking the au-ref-flag of the video access unit. Or non-reference image.
  • the decode control module 2 1 4 constantly checks the current time measured by the built-in timer 2 1 4 A. In step S 3 0 1, the current time is PlayListMarkO (Fig. 9). ) It is determined whether or not it matches the mark one time-stamp of any Mark () described in (1).
  • the player control module 2 1 2 plays the first PlayItem # 0 of the first PlayList # 0 shown in FIG.
  • the four Marks () of the seven Mark 0 included in the P1 ayListMarkO shown in the upper part of Fig. 3 2 are the first to fourth Play ## 0 of PlayList # 0
  • step S 3 0 in the decode control module 2 1 4, the current time of the “mark processing” attribute time (immediate mark_time_sta) supplied from the player control module 2 1 2 as described above. It is determined whether or not it agrees with either one.
  • step S 3 0 1 If it is determined in step S 3 0 1 that the current time does not match any of the “mark processing” attribute times, the process returns to step S 3 0 1 and the same processing is repeated.
  • step S 3 0 1 the decode control module 2 1 4 determines whether the current time and Diark_time__stamp match.
  • the time indicated by the time measuring unit 2 14 A shows a discrete value, and thus there may be a problem with simple matching determination.
  • FIG. 50 10 PI, P2 and P3 are video access units. All of these pic_struct are 3, that is, the display duration is 1 frame (3003 in terms of 90 kHz). In this example, the decoding order and the display order are the same, and reordering does not occur.
  • P1, P2, P3 The access unit does not have a time stamp.
  • the clock indicated by the clock unit 2 14 A is updated as shown in the lower part of FIG. That is, at the time of 10 outputs, 10 PTSs and 10 pic_structs are passed, and there is a PTS, so the PTS is substituted into the timekeeping part 2 14 A and becomes 180,090.
  • P1 is output, PTS does not exist, P1's pic_struct is passed, and 10's pic_struct is 3, so the time for one frame (3003 at 90kHz) is added to the timekeeping part 2 1 4A, 183,093 It becomes.
  • the pic-struct of P1 is 3 when P2 is output, 3003 is added to 186, 096, and when P3 is output, 3003 is added to 189, 099.
  • the predetermined event is defined to occur at the display start time of the corresponding image.
  • mark 1 time_stamp 186, 000 is included in the display duration of image P1.
  • this event occurs at the display start time of P1, that is, at 183,093.
  • step S 3 0 1 in FIG. 49 is performed only when the time is updated.
  • Reproduction equipment composed of software is advantageous because it significantly reduces processing.
  • step S 3 0 the decode control module 2 1 4 checks whether or not there is an event determined to match at the current time. That is, it is checked whether there is an event included in the display duration of the currently displayed image from the current time and the display duration of the currently displayed image. The process returns to step S 3 0 1. If there is an event determined to match, the process proceeds to step S 3 0 2. If there is no event, the process may be terminated.
  • the time is 180, 090, and I Since the pic_struct of 0 is 3, the durat ion of 10 is known to be 3003. Therefore, search for Diark_Ume_stamp that satisfies 180,090 ⁇ mark_tiffle_stamp lSihOQO O 03.
  • the event time 186, 000 illustrated here does not satisfy this formula, so it is not determined to match.
  • time coincidence determination is shown, but other definitions can be applied. For example, if the mark_time-stamp of an event is included at a time greater than or equal to "the display start time of an image ⁇ " and less than the time of "the next display image display start time ⁇ ;", the event is the corresponding image. It can also be defined that it occurs at the display start time. It is also possible to define that the event occurrence time occurs at, for example, “the display start time of the corresponding image is ⁇ ” while keeping the determination criteria as it is.
  • step S 30 1 If it is determined in step S 30 1 that the current time matches one of the “mark processing” attribute times, the decode control module 2 1 4 determines that the current time is “mark processing”. A message indicating that the time of the attribute of the current time and the time of the attribute of the “mark processing” attribute that matches the current time are supplied to the player control module 2 1 2 Proceed to S 3 0 2.
  • step S 3 0 2 the player control module 2 1 2 sends a message that the current time is the time of the “mark processing” attribute, and the time of the “mark processing” attribute that matches the current time ( mark—time_stamp) is received from the decode control module 2 14 and the markO whose mar time_sta immediately matches the current time is set as the mark processing target MarkO (hereinafter referred to as the processing target mark as appropriate). recognize.
  • the player control module 2 1 2 recognizes the Play Item () of Play List 0 that is currently being played, and the current time from the PyList 0 and Play Item 0 and the decode control module 2 1 4 Refer to the PlayList MarkO (Fig. 9) of the "PLAYLIST.DAT" file (Fig. 7) from the time of the mark processing attribute (mark jime one stamp) that matches the above (hereinafter referred to as the mark time as appropriate) By doing so, the mark to be processed is recognized. Specifically, for example, if the first PlayItem # 0 of the first PlayList # 0 shown in FIG.
  • the player control module 2 1 2 Recognizes that the time is the same as the mark_time of one of the four MarkOs from the first to the fourth MarkO of the seven MarkOs included in PI ayListMarkO shown in the upper part of Fig. 32 To do.
  • the player control module 2 1 2 is shown in the upper side of FIG.
  • the 4th MarkO whose mark_time_stamp matches the mark time of 16, 380, 090 is recognized as the processing target mark.
  • the player control module 2 1 2 If rk is recognized, the process proceeds from step 3 3 0 2 to 3 3 0 3 to identify the elementary stream in the processing target ma rk entry_ES_stream'_ id ⁇ en t ry_ES_pr i va t e_s tr eam_id (first Determine whether (Fig. 9) is described.
  • step S 3 0 3 the target mark does not describe the en try- ES one stream one id and en try one ES— private— stream— id (Fig. 9) that describe the elementary list. If entry_ES_str eam—id and entry—ES—private—stream_i ( ⁇ S are both 0x00, skip step S 3 04 and go to step S 3 0 5; Processing according to the processing target mark is performed.
  • step S 3 0 it is determined that entry—ES—stream—id and entry—ES—private—strea m_id (Fig. 9) are specified in the processing target mark.
  • the player control module 2 1 2 adds the entry_ES—stream_id and, if necessary, the elementary list specified by the en_try_ES_private_stream—id to the elementary stream being played. To determine whether it is included.
  • step S 3 04 if the elementary stream being played back does not include the elementary stream specified by the entry mark ES try-ES-stream-id and entry-ES-private-stream-id. If so, return to step S 3 0 1. That is, entry_ES of str to be processed mark str
  • step S 3 0 4 The element mark of the entry to be processed—entry stream—id and entry ES—private—strea If it is determined that the elementary list specified by m_id is included, that is, the elementary stream specified by entry_ES_stream—id and entry—ES ”private_stream of the processing target mark is played. If it is determined that the processing target mark is valid, the process proceeds to step S 3 0 5, and processing corresponding to the processing target mark is performed.
  • step S 3 0 5 the player control module 2 1 2 determines the processing target! Nark by referring to the mark_type (FIG. 9) of the processing target mark.
  • step S 3 0 5 If it is determined in step S 3 0 5 that the processing target mark is a chapter mark or index mark, that is, if the mark_type of the processing target mark is 'Chapter' or 'Index', step S 3 0 6
  • the player control module 2 1 2 instructs the graphics processing module 2 1 9 to display the chapter or index number to the chapter or index number indicated by the chapter mark or index mark that is the processing target mark. Update and return to step S 3 0 1.
  • step S 3 0 5 If it is determined in step S 3 0 5 that the processing target mark is an event mark, that is, if the mark type of the processing target mark is “Ev ent”, the process proceeds to step S 3 0 7.
  • the player control module 2 1 2 supplies the event message indicating the occurrence of the event and the mark_data of the processing target mark to the script control module 2 1 1, and proceeds to step S 3 '0 8.
  • step S 3 0 8 the script control module 2 1 1 receives the event message and mark_data from the player control module 2 1 2, and uses the event message as an interrupt request in advance to “S CRIPT. A series of processing described in the "DAT" file, with mark_data as an argument And go back to step S 30 1.
  • the script control module 2 1 1 performs processing for mark-data.
  • the second MarkO (Mark # l) and the third MarkO (Mark # 2) are both marked One type is 'Event', but mark data is different for 1 (Mark # l) and 2 (Markf2), respectively.
  • the script control module 2 1 1 receives the event message corresponding to the second MarkO and the event message corresponding to the third MarkO in both cases. Depending on the event, the same event handler (interrupt processing routine) processes, but by checking the mark_data supplied with the event message in the event handler, the event message is processed differently for each mark_data. I do.
  • the script control module 2 11 controls the graphics processing module 2 19 to display the first type icon.
  • the script control module 2 1 1 controls the graphic processing module 2 19 to display the second type of icon.
  • mark 1 data is not limited to 1 or 2
  • the processing performed for mar k-data on jfe is not limited to the simple icon table ⁇ as described above. Absent.
  • the scribe control module 2 1 1 controls the graphics processing module 2 1 9 to display the first type icon.
  • subtract 2 from mark data With the brightness corresponding to the value (number from 1 to 16).
  • the script control module 2 1 1 controls the graphics processing module 2 1 9 to display the second type icon from mark_data.
  • a controller operated by the user is connected to the incoming interface 1 1 5 (Fig. 1), and the controller is eccentric to the axis of the DC (Direct Current) module.
  • the vibration mode When a built-in vibration mode that generates vibration when a DC motor with a weight attached is operated, when mark_data is in the range of 35 to 42, the vibration mode is changed from mark_data to 34. It can be operated only for the operating time according to the reduced value (numerical value of 1 to 8).
  • mark_data is a numerical value, and its usage and algorithm can be described by a scribe program executed by the scribe control module 2 1 1. Therefore, mark_data is a rule set independently by the manufacturer of the disc 1 0 1 or the content provider that provides the data to be recorded on the disc 1 0 1 in addition to the rules that are determined in advance. Can be used.
  • the target mark is recognized from the mark time that is the time of the “mark processing” attribute.
  • entry_ES_streamJd and entry—ES_private_streanUd for specifying an elementary stream are not described in the processing target mark, processing according to markjype of the processing target mark is performed.
  • entry_ES—stream_id and entry_ES_private_stream_id for identifying an elementary stream are described in the processing target mark, the entry_ES — Stream_id and entry_ES_private_stream— If the elementary stream specified by id is being played, processing corresponding to the mark_type of the processing target mark is performed.
  • PlayListMarkO of the second PlayUst # l 1 ⁇ 1 " ⁇ _ 31 & 1 ⁇ is specified as 90,000, 27,090,00 0, 27,540,000, respectively, as shown in the lower part of Fig. 3 2
  • the first MarkO (Mark # 0), the second MarkO (Mark # l), and the third MarkO (Mark # 2) are described.
  • the 2nd MarkO and the 3rd MarkO respectively have the st ream 1 id of OxEO Is associated with the elementary stream specified by OxEl.
  • the clip information file “00003.PS” includes the clip information file “00003. CLP” in FIGS. 30A and 30B corresponding to the clipstream file “00003.PS”.
  • the video stream stream # 0 specified by s tream_id that is OxEO
  • the video stream stream # l that is specified by stream_id that is OxEl
  • the stream_id and 0x00 that is OxBD
  • the three elements of the audio stream stream # 2 specified by private_stream_id are multiplexed.
  • the decode control module 2 1 4 is playing the PlayItem # 0 of PlayList # l, and the current time counted by the timekeeping unit 2 1 4 A is the time ⁇ 90, 000 with the attribute “mark processing” ⁇ , 7, 090, 000 ⁇ , or ⁇ 27, 540, 000 ⁇ , it is constantly checked (step S 3 0 1), the current time is ”, The mark time that is the time of the“ mark processing ”attribute that matches the current time, and a message that the current time is the time of the“ mark processing ”attribute, Supply to control module 2 1 2.
  • the decode control module 2 1 4 receives a mark time 27,090,000 that is the time of the “mark processing” attribute that matches the current time, and a message that the current time is the time of the “mark processing” attribute. And Supply to layer control module 2 1 2.
  • the player control module 2 1 2 recognizes that PlayItem # 0 of PlayListin is being played back and is shown at the bottom of Fig. 3 2 of that PlayList # l 1 ) 1 & 1 ⁇ 313 ⁇ 41 & ⁇ 0
  • the Mark_time_stainp of the three MarkOs belonging to PlayItem # 0 are 90, 000, 27, 090, 000, 2 7, 540, 000, and the mark time from the decode control module 2 1 4
  • mark_time_sta immediately coincides with Mark (), that is, on the lower side of Fig. 32?
  • the second MarkO (Mark # l) described in 1 & 5 ⁇ & ⁇ 0 is recognized as a processing target mark (step S 3 0 2).
  • OxEO is specified as entry-ES-stream-id.
  • This entry—ES—stream id that is OxEO is multiplexed with the clip stream file “00003.PS”, as described above.
  • the player control module 2 1 2 determines whether or not the video stream stream # 0 is included in the elementary stream being played back. (Steps S3O3, S3O4).
  • step S 3 04 If the stream of the elementary stream being reproduced does not include the video stream stream # 0, the processing target mark is ignored (step S 3 04).
  • step S If the elementary stream being played contains video stream stream # 0, the processing target mark is considered valid and processing corresponding to the processing target mark is performed (step S). (3 0 5 to S 3 0 8)
  • the second MarkO described in the PlayList MarkO on the lower side of Fig. 32, which is the processing target mark, is an event mark because its mark_type is 'Event'.
  • the control module 2 1 2 supplies an event message indicating the occurrence of the event and mar data of the processing target mark to the script control module 2 1 1 (steps S 3 0 5 and S 3 0 7).
  • the scribble control module 2 1 1 receives the event message from the player control module 2 1 2 as an interrupt request and supplies a series of processes described in the SCRIPT.DAT file in advance along with the event message. Mark —data is used as an argument (step S 3 0 8).
  • mark—time_stanip representing one playback time on the time axis of PlayList 0 mark—type pe representing the type of MarkO, and mark_data serving as an event mark argument are Whether or not the current time, which is the playback time of the clip stream file being played according to PlayList0 (Fig. 7) containing PlayListMarkO (Fig. 9) with 0 (including) Mark (), immediately matches mark_time_s When the current time coincides with Diark_Ume_stamp, MarkO having mark-time_stamp equal to the mark time that is the coincident current time is recognized as a processing target mark.
  • the mark_type of the processing target mark represents the type that generates the event, that is, if the processing target mark is an event mark, the mark_data and event message of the processing target mark are notified.
  • the process corresponding to the mark 1 data is executed. Therefore, processing according to mar data can be executed according to the playback time of the clip stream file.
  • the decode control module 2 1 4 When the time counted by the part 2 1 4 A becomes equal to 0UT_time of Playltem given from the player control module 2 1 2, the decoding interrupt control is performed and the Playltem playback is terminated. Done.
  • the end of PlayltenijfO is described in step S 1 51 in the flowchart of FIG.
  • the OUTJime of the Play system corresponding to PlayListEnd is smaller than the FoCFP (frame or complementary field pair in the video stream being played back) displayed last in the playList.
  • PTS display start time
  • the time coincidence determination is limited to the video output, so the processing becomes light.
  • the independence of video stream preparation and data-based preparation increases.
  • the scribble control module 2 1 1 receives the PlayListEnd event. By knowing that the PlayList that is instructed to play is finished playing, the programmed operation is continued. In other words, another playList is played, a menu is displayed, and the operation is terminated.
  • the subtitle decoder control module 2 1 8 includes one subtitle access unit stored in the buffer 2 1 5 A from the subtitle read function section 2 3 5 of the buffer control module 2 1 5 (Fig. 5) and its subtitle access unit. Each time a timestamp added to the box is obtained, decoding is started with the internal caption decoding software, and at the same time, the timestamp and duration are passed to the decoding control module 2 1 4.
  • Decode control module 2 14 is a video decoder control module 2
  • the time of the clock timekeeping part 2 14 A
  • the PTS of the caption unit passed from the caption decoder control module 2 1 8 is examined.
  • the decode control module 2 1 4 instructs the graphics processing module 2 1 9 to input subtitles.
  • the subtitle decoder control module 2 1 8 is instructed to output.
  • the subtitle decoder control module 2 1 8 supplies the decoded subtitle image data to the graphics processing module 2 1 9.
  • the graphics processing module 2 19 stores the input subtitle data and synthesizes it for the video data to be input thereafter.
  • the decode control module 2 1 4 further inspects the display of subtitles. That is, if the value of “display start time of relevant subtitle + display dura ti on” and the current time match with the above-mentioned match determination criteria, the decode control module 2 1 4 performs graphics processing. Command module 2 1 9 to delete subtitles. The graphics processing module 2 1 9 deletes the stored input captions and does not synthesize the input video data.
  • a certain range of time is quantized into a single time.
  • all t times satisfying the display start time ⁇ t ⁇ display end time of a video display are quantized (rounded) at the display start time of the corresponding video data.
  • the above condition is guaranteed by setting the interval between adjacent events to 3 fields or more (more than the maximum display time set by pic_struct).
  • FIG. 53 shows an example of the above conditions. That is, in Figure 53, Case A has a frame rate of 5005/24000 0 (progressive 23.976 Hz), and in this case, the minimum event interval expressed in 90 kHz is 7507 Case B shows that the frame rate is 4004/240000 (interlaced 59.94Hz), and in that case, the minimum event interval expressed in 90kHz is 6006.
  • Video encoding methods such as AVC and MPEG2 Video have a function to display a frame signal for only 3 fields in order to efficiently encode 2-3 pull-down images. Because of ⁇ , the maximum duration of 1 frame signal is 3 fields. In other words, it is possible to prevent the two adjacent events from being judged to occur at the display start time of a single video data by separating the adjacent events by a time of 3 fields or more. It is.
  • interval with more than 3 fields.
  • interval between two events is also possible to define the interval between two events as two or more frames.
  • step S 1 26 of FIG. 34 the player control module 2 1 2 outputs one or more elementary streams to be reproduced, that is, one or more elementary streams determined to be reproduced in step S 1 25 in FIG. Examine the Dynamiclnfo (Fig. 12) that represents the number of DynamidfoO (Fig. 15) in which the attribute is described.
  • the player control module 2 12 When all of one or more elementary streams to be reproduced are number_o and Dynamiclnfo is 0, the player control module 2 12 does not perform any particular processing.
  • the player control module 2 1 2 performs the output inertia control process according to the flowchart of FIG.
  • the three clip information files “00001. CLP”, “00002. CLP”, “00003. CLP” recorded on the disc 1001, for example, are shown in FIG. 30A and FIG. 30B.
  • the clip stream file “00001.PS” corresponding to the clip information file “00001. CLP” is played back.
  • the first Play It eni # 0 in the first PlayList # 0 is When played back, in the clip information file “00001.CLP” (FIG. 30A and FIG.30B), the four elementary lists multiplexed in the clip stream file “00001.PS” are displayed. For all of streani # 0 to stream # 3, numbe of_DynamicInfo is 0. Control processing is not performed.
  • the clip information file “00003. CLP” corresponding to the clip information file “00003. CLP” is reproduced.
  • Playltem # 0 of the second PlayList # l is reproduced
  • the clip information file “00003. CLP” is reproduced.
  • Fig. 30 A and Fig. 30 B 1 of the 3 elementary list streams stream # 0 to stream # 2 multiplexed in the clip stream file "000 03. PS"
  • number—of—DynamicInfo is not 0 and 2 and 3, respectively. Therefore, output attribute control processing is performed.
  • step S 3 2 the player control module 2 1 2 determines that the clip information file ClipO corresponding to the clip stream file to be played back (FIG. 12).
  • Pts—change_point described in the “DynamicInfo 0 processing” attribute time is passed to the decode control module 2 1 4, and the decode control module 2 1 4 receives the “change info” from the player control module 2 1 2
  • step S 3 2 the decode control module 2 1 4 2 1 4 If the current time measured by A matches the pts_change one point that is the time of the attribute of “DynamicInfo () processing”, and if it does not match, step S 3 2 Return to 1.
  • step S 3 2 1 If it is determined in step S 3 2 1 that the current time matches the time of the attribute of “DynamicInfo () processing”, the decoding control module 2 1 4 will display the current time as “DynamicInfo () processing”. ”And the time of the attribute of“ DynamicInfo () processing ”that matches the current time (hereinafter referred to as“ Dynamiclnfo time ”as appropriate) is supplied to the player control module 2 1 2 Then, go to step S 3 2 2. In step S 332, the player control module 2 1 2 receives from the decode control module 2 1 4 a message indicating that the current time is the time of the attribute of “DynamicInfo () processing” and the Dynamiclnfo time. The DynamicInfoO paired with the pts_change one point (Fig. 12) matching the Dynamiclnfo time is recognized as the processing target DynamicInfoO that is the processing target DynamicInfoO, and the process proceeds to step S 3 2 3.
  • step S 32 3 the player control module 2 1 2 is the graphics processing module 2 1 9 or the audio output module 2 2, with the output attributes described in DynamicInfoO (Fig. 15) being the processing target DynamicInfoO. 1 and go to step S 3 24.
  • step S 324 the graphics processing module 2 1 9 or the audio output module 2 2 1 determines whether or not the video processing module 2 2 1 or the video output module 2 1 2 according to the output attributes supplied from the player module 2 1 2 in the previous step S 3 2 3 Control of audio data output is started, and the process returns to step S321.
  • video data to be described as an output format, for example It is output according to the aspect ratio, or the audio data is output according to the description of the output method, for example, stereo or dual (dictionary).
  • Fig. 55 shows the set of pts one change-point and Dynamic Info 0 described in clip information file "00003. CLP" in Fig. 30 A and Fig. 30 B (Fig. 12) ).
  • FIG. 55 shows two sets of pts—change—point and DynamicInfoO that describe the first video stream stream # 0 of the clip stream file “00003.PS”. Shows three sets of pts_change_point and DynamicInfoO described for the third stream stream # 2 of the clip stream file “00003.PS”.
  • pts_change_point is 90, 000
  • the DynamicInfoO channel—assignment ( Figure 15) is “Dual.”
  • pts—change_point is 27 , 090, 0 00
  • pts_change_point is 32, 490, 00 (H: ⁇ , Dynamiclnfo 0 channel ass ignment force 'Dua ⁇ It has become.
  • step S 1 2 5 in FIG. The first video stream stream # 0 specified by stream_id that is OxEO, stream_id that is OxBD, and private_stream_id that is 0x00 in stream file “00003.PS” Audio stream scene # 2 is determined as the stream to be played back.
  • the player control module 2 1 2 has two sets of pts, change_point and DynamicInfo () in the upper part of FIG. 55 describing the video stream stream # 0 identified by stream_id which is OxEO. ) And OxBD s eam_id and 0x00 private—stream stream # 2 specified by stream_id is described in the third set of pts—change_poini in the lower part of FIG. Investigate Pts—change—points in Dynamicl nfoO and recognize initial values.
  • the 3rd set of pts change points in the lower part of Fig. 55 describes the audio stream s tream # 2 specified by stream_id which is OxBD and private_stream_id which is 0x00.
  • Dyna In the first set of micInfoO pts—cliange_point is 90,000.
  • the time of 90,000 is the clip information file “000 of FIG. 30 A and FIG. 30 B corresponding to the clip stream file“ 00003..PS ”in which the audio stream stream # 2 is multiplexed.
  • 03.CLP it matches the time 90, 000 described in the presentations tar time indicating the start time of the clip stream file" 00003.PS ".
  • the player control module 2 1 2 recognizes pts__change_point that matches the time 90, 000 described in present at ion_start—time, which represents the beginning time of the clip stream file “0 0003. PS”, as an initial value.
  • the first pts change_point is recognized as the initial value.
  • the player control module 2 1 2 sets the pts_chang-point and the set point recognized as the initial values in step S 1 2 6 in FIG. 34 before the clip stream file “00003.PS” starts to be played.
  • the output attribute of the corresponding elementary stream is specified according to DynamicInfoO.
  • the ratio is '4: 3'.
  • the player control module 2 1 2 indicates that the display_aspec and the ratio is '4: 3', that is, the output attribute information that the video stream streams are video data having an aspect ratio of 4: 3.
  • the initial value is 90,000 on the lower side of Fig. 55.
  • Pts_change In DynamicInfoO set with point, channe and ass ignment is 'Dual'.
  • the player control module 2 1 2 indicates that the assignment is 'Dua', that is, the output attribute information that the audio stream is a dual audio stream, Supply to output module 2 2 1.
  • step S 1 26 in FIG. 34 the output attribute control process for pts_change_point as the initial value as described above is performed. Thereafter, the player control module 2 1 2
  • the decode control module 2 14 receives the time ⁇ 27, 090, 000 ⁇ , ⁇ 32,490, 000 ⁇ , ⁇ 54, 090, 000 ⁇ of the attribute of “iDynamicInfoO processing” from the player control module 2 1 2, and After the playback of the video stream seam # 0 and the audio stream stream # 2, the monitoring of the current time measured by the timer unit 21A starts.
  • the decode control module 2 1 4 has the current time “Dynami clnfoO process "attribute time ⁇ 27,090, 000 ⁇ , ⁇ 32, 490, 000 ⁇ , ⁇ 54,090,0 00 ⁇ , if it matches the current time of the 'byn amicInfoO process'
  • the Dynamiclnfo time which is the attribute time, is supplied to the player control module 2 1 2 (step S 3 2 1).
  • the decoding control module 2 14 will match the current time of the “DynamicInfo () process” attribute time 27,090, 000 is supplied to the player control module 2 1 2 as Dynamiclnfo time.
  • Player control module 2 1 2 receives Dynamiclnfo time 27, 090, 000 from decode control module 2 1 4, and receives two pts_change_points on the upper side of FIG.
  • Pts—change — DynamicInfo () that is set to point, that is, the second Dynamic Info 0 at the bottom of Fig. 55 for audio stream stream # 2, is recognized as the processing target DynamicInfoO! (Step S 3 2 2).
  • the player control module 2 1 2 supplies the output attribute described in the processing target Dynami clnfoO to the graphics processing module 2 1 9 (step S 3 2 3). Also, when the processing target Dynamiclnfo () is DynamicInfoO for the audio stream, the player control module 2 1 2 supplies the output attribute described in the processing target DynamicInfoO to the audio output module 2 2 1 (Step S3 2 3).
  • Graphics processing module 2 1 9 is a player control module 2
  • the video data output control is started according to the output attribute (step S 3 24).
  • the graphics processing module 2 1 9 indicates the aspect ratio of the video data (display_aspec ratio (Fig. 15)) represented by the output attribute from the player control module 2 1 2.
  • display_aspec ratio Fig. 15
  • the graphics processing module 2 1 9 squeezes the video data to be output to the video output module 2 2 0 in the horizontal direction and outputs the data that displays black on the left and right.
  • the graphics processing module 2 1 9 squeezes the video data to be output to the video output module 2 0 in the vertical direction and outputs it with a display that displays black on the top and bottom.
  • the graphics processing module 2 1 9 outputs the video data to be output to the video output module 2 20 without any squeeze processing.
  • the graphics processing module 2 19 has a time ratio of 90,000. Until just before time 54, 090, 000, video data with a 4: 3 aspect ratio obtained from the video stream stream # 0 is supplied to a video output device with a 4: 3 aspect ratio as it is.
  • the video data of the aspect ratio of 16: 9 obtained from the video stream stream # 0 is squeezed in the vertical direction, and further, there is data for displaying black on the top and bottom.
  • the video signal is converted into a 4: 3 aspect ratio video signal and supplied to a 4: 3 aspect ratio video output device for display. .
  • the audio output module 2 2 1 starts controlling the output of audio data in accordance with the output attribute (step S 3 24).
  • the audio output module 2 2 1 is, for example, an audio data channel assignment instruction (channel assignment (FIG. 15)) represented by the output attribute from the player control module 2 1 2 and the user From the audio decoder control module 2 1 7 based on the audio output mode supplied from the player control module 2 1 2 via the input interface 1 1 5 (Fig. 1) by operating the remote control of Processes audio data and outputs it to audio output terminals 1 2 1 (Fig. 1).
  • the instruction for channel assignment of the audio data represented by the output attribute is dual (Dual) in which the left channel is “main audio” audio data and the right channel is “sub audio” audio data.
  • Audio output module 2 2 1 processes audio data from audio decoder control module 2 1 7 according to the audio output mode supplied from player control module 2 1 2 Output to the audio output terminal 1 2 1. That is, for example, when “main audio” is designated as the audio output mode, the audio output module 2 2 1 uses the audio data of the left channel among the audio data from the audio decoder control module 2 1 7. Copy the audio data of the right channel as audio data of the right channel and output the audio data of the left channel and right channel (“main audio” audio data) to the audio output terminal 1 2 1. When “Sub Audio” is specified as the audio output mode, the audio output module 2 2 1 is connected to the right channel of the audio data from the audio decoder control module 2 1 7.
  • the audio output module 2 2 1 When “main / sub” is designated as the audio signal, the audio output module 2 2 1 outputs the audio data from the audio decoder control module 2 1 7 to the audio output terminal 1 2 1 as it is.
  • the channel assignment for the audio device that the output attribute represents The audio output module 2 2 1 is in the audio decoder control module 2 1 7 regardless of the audio output mode provided by the player control module 2 1 2.
  • the audio data from is output to the audio output terminal 1 2 1 as it is.
  • the audio stream stream # 2 specified by stream_id which is OxBD and private_stream_id which is 0x00
  • stream_id which is OxBD
  • private_stream_id which is 0x00
  • the audio output module 2 2 1 has audio stream stream # 2 from time 90,000 to just before time 27,090,000.
  • the left channel audio data of the dual audio data obtained from this is copied as the audio data of the channel, and the audio data of the left channel and right channel are copied to the audio output terminal.
  • the child 1 2 1 is tB-powered.
  • the stereo audio stream obtained from the audio stream stream # 2 is output to the audio output terminal 1 2 1 as it is.
  • the audio stream The audio data of the left channel in the resulting dual audio overnight is copied as the audio data of the right channel, and the audio data of the left channel and the right channel are sent to the audio output terminals 1 2 1 Is output.
  • the playback time of the elementary stream being played is pts_change—poi It is determined whether or not it matches nt. If the playback time of the elementary stream being played matches the pts_change_point, the Dynamic Info 0 that is set to the pts-change-point is recognized and included in the recognized Dynamic Info 0
  • the output of the elementary stream being played is controlled according to the output attribute. Therefore, the output of the elementary stream can be controlled according to the playback time and output attribute of the elementary stream.
  • caption display control processing for controlling the display of caption data corresponding to a caption stream will be described with reference to the flowchart in FIG.
  • the player control module 2 1 2 When the playback of PlayListO is started, the player control module 2 1 2 initializes the subtitle data display method instruction to the graphics processing module 2 1 9 in step S 341. That is, the player control module 2 1 2 controls the graphics processing module 2 19 so that the subtitle data display method is the default display method. Note that the initialization of the display method instruction performed in step S 3 4 1 corresponds to the initialization of the display method instruction described in 1 27 of FIG. After the processing of step S 3 4 1, the process proceeds to step S 3 4 2, and the player control module 2 1 2 starts a new subtitle data display from the input interface 1 1 5 by the user operating the remote control. Determine whether a display method instruction has been received.
  • step S 3 4 2 If it is determined in step S 3 4 2 that an instruction for a new display method has been received, the process proceeds to step S 3 4 3, and the player control module 2 1 2 determines whether or not the subtitle stream is currently being played back. . If it is determined in step S 3 4 3 that the subtitle stream is not played back, the process returns to step S 3 4 2.
  • step S 3 4 3 If it is determined in step S 3 4 3 that the subtitle stream is being played, the process proceeds to step S 3 4 5, where the player control module 2 1 2 receives a new display method Determine whether the display method is instructed. If it is determined in step S 3 4 3 that the instruction of the new display method is the instruction of the default display method, the process returns to step S 3 4 1 and, as described above, the player control module 2 1 2 controls the graphics processing module 2 19 so that the subtitle data display method is the default display method.
  • step S 3 4 5 if it is determined in step S 3 4 5 that the instruction for the new display method is not the instruction for the default display method, that is, the instruction for the new display method, for example, the caption display is enlarged or reduced. If it is an instruction of a non-default display method, such as changing the display or making it easier to see, the process proceeds to step S 3 4 6, and the player control module 2 1 2 Clip information file CI ip () corresponding to the clip stream file in which the stream is multiplexed ( Figure 12) ) In StaticInfoO (Fig. 14), obtains Static Info 0 for the currently playing subtitle stream, and proceeds to Step S347.
  • step S347 the player control module 2 1 2 determines 3 ⁇ &"(; 0011 811 1) 16_ & 8 obtained in step S346.
  • step S347 the conf igurable_f lag is If it is determined that it is not permitted to change the subtitle data display method, the process proceeds to step S 348, where the player control module 2 1 2 controls the graphics processing module 2 1 9. In the output video data, an error message indicating that the subtitle data display method cannot be changed is overlaid, and the process returns to step S 342. As a result, an error message is displayed.
  • step S 347 if it is determined in step S 347 that conf igurable—f lag is set to 1 indicating that the change of the subtitle display format is permitted, the process proceeds to step S 349, where the player control module 2 1 2 supplies the graphics processing module 2 1 9 with the instruction of the new display method supplied from the input interface 1 1 5 when the user operates the remote control, and goes to step S 3 5 0. move on.
  • step S 3 5 the graphics processing module 2 1 9 receives the caption data supplied from the picture decoder control module 2 1 8 in the display method supplied from the player control module 2 1 2 in the immediately preceding step S 349.
  • processing such as enlargement or reduction or changing the brightness is started, and the process returns to step S342.
  • the caption display is displayed in the display size, display position, display color, etc. according to the display method instructed by the user operating the remote control.
  • step S342 no indication of a new display method If it is determined that the game has been performed, the process proceeds to step S 3 5 1, and the player control module 2 1 2 determines whether or not the Play Item () described in FIG. 40 has been transferred. If it is determined, step S 34 2 is returned to.
  • step S 3 5 1 If it is determined in step S 3 5 1 that PlayltemO has been changed, the process returns to step S 34 1, and as described above, the player control module 2 1 2 changes the display method of the caption display.
  • the graphics processing module 2 1 9 is controlled so as to use the default display method. In other words, in this case, when PlayltemO is switched, the subtitle data display method is returned to the default display method.
  • the subtitle data corresponding to the subtitle stream is displayed only when the CO nfigurable flag of the subtitle stream is set to 1 to permit the change of the display method.
  • the method is changed in accordance with, for example, a display method instruction input by the user operating the remote control.
  • the configurable-flag for subtitle stream stream # 2 which is the third elementary stream of the four elementary streams, is set to 0 indicating that the display format change is not permitted.
  • the subtitle stream st stream # 3 which is the fourth elementary stream, is configurable.
  • Flag is set to 1 to allow the change of the display method, so when the subtitle stream ⁇ is displayed, the remote control should be set so that the user changes the subtitle display.
  • the display size of the caption is changed according to the operation.
  • the clip stream file “00001.PS” is being played back according to the first P1 ayltem # 0 of the first PlayList # 0 in FIG.
  • the third and fourth subtitle streams are subtitle streams.
  • the third subtitle stream stream # 2 and the fourth subtitle stream stream # 3 for example, the third subtitle Assume that stream stream # 2 is currently being played.
  • step S 3 4 2 When the user inputs a subtitle display method instruction by operating the remote control (step S 3 4 2), the display method instruction is input from the input interface 1 1 5 (Fig. 1) to the player control module. 2 1 2 is supplied.
  • the player control module .2 1 2 searches for the StaticInfoO (FIG. 12) corresponding to the subtitle stream being reproduced from the clip information file (step S 3 46).
  • the subtitle stream being played back is the third subtitle stream stream # 2 multiplexed in the clip stream file “00001.PS”
  • the player control module 2 1 2 corresponds to Search StaticInfoO for the third subtitle stream stream # 2 from the clip information file “00001. CLP”.
  • the player control module 2 1 2 is shown in FIG. 0 In Fig. B, the configurable-flag is set to 0 (step S 3 4 7), which is described in Staticlnfo () for the third subtitle stream stream # 2 (step S 3 4 7). Recognize that the change of the display method is not permitted for subtitle stream stream # 2. In this case, the player control module 2 1 2 determines that the subtitle stream being played back does not support scaling, etc., and controls the graphics processing module 2 1 9 to display an error message to that effect. Generate (Step S34 8) and overlay the video data for output.
  • the player control module 2 1 searches for Static Info () for the fourth subtitle stream stream # 3 from the corresponding clip information file “00001. CLP”.
  • the player control module 2 1 2 is set to “1”, which is described in “Staticln fo ()” for the fourth subtitle stream stream # 3 in FIG. 30 A and FIG. 30 B.
  • the flag is determined (step S 3 4 7), and thereby, it is recognized that the change of the display method is permitted for the fourth subtitle stream stream # 3.
  • the player control module 2 1 2 determines that the subtitle stream being played back corresponds to enlargement / reduction, etc., and displays the instruction of the display method supplied by the user operating the remote control. Supply to module 2 1 9 (step S 34 9).
  • the graphics processing module 219 then enlarges or reduces the subtitle data from the character 3 ⁇ 4 decoder control module 218 in accordance with the display method instruction from the player control module 212, and the video decoder control module. 2 1 Overlays video data from 6—outputs.
  • the player control module 212 initializes the subtitle data display method instruction to the graphics processing module 2 19 when the first PlayItemO of the PlayListO starts to be reproduced (step S341). In other words, the player control module 212 controls the graphics processing module 2 19 so that the display method of caption data is the default display method.
  • the player control module 2 12 initializes the subtitle data display method instruction to the graphics processing module 219 even when PlayltemO is changed (steps S 341 and S 351).
  • the new display method instruction is sent to the graphics processing module 219.
  • the display mode instructions are stored in the non-volatile memory constituting the memory 113 (Fig. 1), for example. It is possible to supply the display processing instruction stored in the volatile memory to the graphics processing module 2 19.
  • a user-set display method instruction is stored in the non-volatile memory, and the user operates the remote control to create a new display method.
  • the instruction of the display method stored in the nonvolatile memory is updated to the instruction of the new display method, while the instruction of the display method stored in the nonvolatile memory is updated to the graphics. It can be supplied to the processing module 2 1 9.
  • the user since the display method instruction at the end of the previous playback is held in the non-volatile memory, the user can operate the remote control during the next playback of PlayList 0, and at the end of the previous playback. Even without inputting the display method instruction, the display of the caption data is started in the display method.
  • the display method instruction stored in the nonvolatile memory includes, for example, an enlargement ratio or a reduction ratio when enlarging or reducing the caption data.
  • StaticInfoO that does not change during playback of the elementary stream.
  • StaticInfoO of the subtitle data is acquired, and the subtitle data being played back is based on the configurable flag that indicates whether or not to allow the display of subtitle data to be changed from the default display format included in the StaticInfoO. It is determined whether the evening display is allowed to be changed from the default display format. If it is allowed to change the display of the subtitle data being played back from the default display method, the subtitle display is displayed according to the instruction to change the subtitle display method. That is, for example, a process of displaying the subtitle data by enlarging or reducing the subtitle or changing the display color is performed. Therefore, it is possible to control the change of the subtitle data display method. '[Capture control processing]
  • FIG. Fig. 57 shows a background screen saver process, which is an example of a process for secondary use of the video data captured by the capture control process, along with a flowchart for explaining the capture control process. A flow chart is also shown.
  • a capture instruction for instructing the capture of video data is sent via the input interface 1 1 5 (Fig. 1) to the player control module 2 1 2 It is started when it is supplied.
  • step S 3 71 if the player control module 2 1 2. determines whether the video stream is being played back, The capture control process ends.
  • step S 37 1 determines whether the video stream is being played. If it is determined in step S 37 1 that the video stream is being played, the process proceeds to step S 3 72, where the player control module 2 1 2 plays PlayListO ( (Fig. 7) Obtain capture_enable_lag—PlayList, and capture__enable_flag__Clip from the clip information file ClipO (Fig. 12) corresponding to the video stream being played.
  • PlayListO (Fig. 7) Obtain capture_enable_lag—PlayList, and capture__enable_flag__Clip from the clip information file ClipO (Fig. 12) corresponding to the video stream being played.
  • capture enable flag PlayList in PlayList 0 is As described with reference to FIG. 7, whether or not secondary use of video data corresponding to the video stream reproduced by PlayList () is permitted.
  • the capture_enable_flag_ Clip in the clip information file ClipO is used for secondary use of the video data corresponding to the video stream stored in the clip stream file corresponding to the clip information file Clip 0 as described in FIG. Indication of whether to permit or not.
  • the process proceeds to step S 3 7 3, and the player control module 2 1 2 and the capture—enable—flag_PlayList obtained in the immediately preceding step S 37 3 u re— enable— f lag— CI ip, and whether the capture instruction is input from the input interface 1 1 5 (Fig. 1). Determine.
  • step S3 7 3 If it is determined in step S3 7 3 that the capture of the picture of the video data being played when the capture instruction is input from the input interface 1 1 5 is impossible, that is, the previous step If at least one of the capture_enabl flagList or capture_enable_flag_Clip acquired in step S3 7 3 is 0 indicating that secondary use of video data is not permitted, proceed to step S374 to control the player
  • the module 2 1 2 controls the graphics processing module 2 1 9 to overlay an error message indicating that the video data cannot be captured, and ends the capture control process. This will display an error message.
  • step S 37 3 determines whether the capture of the picture of the video data being played back when the capture instruction is input from the input interface 1 1 5 is possible, that is, the immediately preceding If both capture—enable_f gJ ayList and capture—enable_flag_Clip obtained in step S 3 7 3 are set to 1 to allow secondary use of video data, proceed to step S 3 7 5
  • the control module 2 1 2 supplies the graphics processing module 2 1 9 with the capture instruction of the picture of the video data being played back when the capture instruction is input from the input interface 1 1 5. Proceed to Step S 37 6.
  • step S 3 7 6 the graphics processing module 2 1 9 captures the picture of the video data from the video decoder control module 2 1 6 according to the instruction from the player control module 2 1 2, and the memory 1 1 3 (Fig. 1) is memorized and the capture control process ends.
  • capture_enable_fg has a multi-bit configuration and usage conditions are restricted, a response is made at this point. In other words, if there is a limit on the size of the captured image, the reduced image is captured at this point. If there are restrictions on the application to be used, a flag to that effect is recorded at the same time. .
  • Play ListO (Fig. 7) and clip information file ClipO (Fig. 12) corresponding to the video stream being played when a capture instruction is received from the user, respectively.
  • Capture- enable- flag- PlayList and capture- enable- flag_C I If the logical AND of the ip and the logical product is 1, that is, capture- enable- flag_PlayList and capture- enable- flag_Clip are both Permitting secondary use Only when it is set to 1, it is determined that secondary use of video data is possible and capture is performed.
  • the first PlayList # 0 in Figure 29 When the user receives a capture instruction when playing a video stream according to PlayItem # 0, that is, playing a video stream multiplexed with clip stream file '00001.PS'.
  • the capture_enable_flag_PlayList is 1, and the clips in Fig. 30A and Fig. 30B corresponding to the clip stream file "00001.PS" played by the first PlayItem # 0 Since the capture_enable_flag_Clip in the information file “00001.
  • CLP is 1, 2 of the video data being played (the video data corresponding to the video stream multiplexed in the clip stream file “00001.PS”) is 2
  • the next use is determined to be possible, and captification is performed, for example, according to the second P1 ayltem # l of the first PlayListitO in Fig. 29.
  • Capture_enable_flag_PlayList is 1 and the clip information file “00002.PS” corresponding to the clip stream file “00002.PS” played by the second Play It em # l is “00002.PS”.
  • Capture_enable—flag—Clip in CLP is 0, so secondary use of the video data being played (video data corresponding to the video stream multiplexed in clip stream file" 00002.PS ") For example, according to Playltem # 0 of the second PlayList # l in Fig. 29, the video stream is not determined.
  • playback that is, when a video stream multiplexed in the clip stream file “00003.PS” is being played, if a capture instruction is received from the user, capture enable f in the second PlayList # l g_PlayList is 0
  • the pictures captured by the capture control process and stored in the memory 1 1 3 can be used secondarily in the background Z screen saver process.
  • Background screen-separator The process is performed, for example, when the player control module 2 1 2 is operating but the elementary stream is not played back, that is, the disk drive 1 0 2 (the first This is done when the disc 1 0 1 is not inserted in Fig. 1 or when the playback of the elementary stream is finished.
  • step S380 the player control module 2 1 2 displays the picture stored in the memory 1 1 3 by the capture control process so that the graphics processing module 2 1 9 To control.
  • the graphics processing module 2 1 9 is controlled by the player control module 2 1 2 Yes, the picture stored in memory 1 1 3 is displayed by the capture control process.
  • the graphics processing module 2 1 9 if the picture stored in the memory 1 1 3 is displayed as a still image, so-called wallpaper is realized and displayed while being enlarged, reduced, moved, etc. at a fixed period. In this case, a screen server is realized. Also, the background Z screen saver process that displays the picture stored in memory 1 1 3 by the capture control process can be performed by another independent application instead of the player control module 2 1 2. Is possible.
  • capture_enabble flag for a video data being played which indicates whether secondary use of video data corresponding to PlayList 0 or PlayltemO, which is larger than the video access unit unit, is permitted.
  • PlayList and capture_enable—flag—CI ip is acquired and its capture—enable—flag—PlayList and capture—enable—flag—CI video is secondary, and whether secondary use of video data being played is allowed Is determined. If it is determined that secondary use of the video data being played is permitted, the video data being played is captured, and background no-screen server processing using the captured video data is performed. Executed. Therefore, secondary use of video data can be controlled.
  • a capture_enable_flag_PlayList is provided in PlayList 0 (FIG. 7), and a clip information file ClipO (FIG. 12) corresponding to the clip stream file played back by Playlt em () is provided.
  • capture_enable—fla g_Cl ip is provided, and the capture—enable_flagJPl ayList and capture—enable _f 1 ag_C 1 ip are used to determine the permission for secondary use, but in PlayList () (Fig. 7) , Capture- enable- flag- Simply provide a PlayList, or simply provide a capture_enable_nag_Clip in the clip information file ClipO (Fig.
  • step S376 It is also possible to determine whether or not secondary usage is possible using only one of CI ip. In the capture control process of Fig. 57, the process goes to step S376.
  • the graphics processing module 2 1 9 follows the instructions from the player control module 2 1 2 and captures a picture of the video data from the video decoder control module 2 1 6, that is, only one picture. However, it is also possible to capture multiple pictures. That is, it is possible to capture a plurality of time-series pictures output from the video decoder control module 2 16. In this case, the number of pictures to be captured at one time can be determined in advance, for example. Or, capture_ enable—flagJ ayUst or capture—enable—flag—CI ip bit, and the capture—enable—flagJPlayList or capture—enable_f lag—CI ip information about the number of pictures that can be captured at once. It may be included.
  • the usage permission information describes video data in any other unit, and the usage permission information describes the video data in any unit. It is possible to determine whether secondary use is possible.
  • Fig. 58 shows the syntax of private_stream2-PES one payloadO in which usage permission information is arranged
  • Fig. 59 shows the syntax of au-informationO in which usage permission information is arranged.
  • private-stream2-PES_payload 0 in Figure 58 is the same as Figure 26, except that capture_enable-flag 1 ps2 is placed immediately before video-strea m-id.
  • the configuration is the same as in FIG. Au-information () in Fig. 59 is also configured in the same way as in Fig. 27 except that capture_enable-flag-AU is placed as usage permission information immediately before pic struct_copy. Yes.
  • Figure 5 8 private—stream2 PES—capture—enable—flag—ps2 placed in payloadO includes- ⁇ CD riva te_stream2_PES_pay load 0 pr iva te—s tream— 2 PES—packet 0 force It indicates whether or not secondary use of video data corresponding to a video stream arranged immediately before the next private-s tream-2 PES-packet tO is permitted. Therefore, according to the capture-enable_flag1 ps2 arranged in private_stream2_PES_payload () in Fig. 58, the secondary use of the video data from one decode startable point to the next decode startable point is performed. It is possible to determine whether or not to permit.
  • capture_enable-flag_AU located in au-informationO in Fig. 59 indicates whether or not secondary use of the video data of the corresponding video access unit is permitted. Therefore, According to capture_enable — flag — ⁇ located in au_information () in Figure 59, determine whether to permit secondary use of video data in units of video access units, that is, in units of pictures. Is possible.
  • capture_enable_flag_PlayList as usage permission information in PlayListO (Fig. 7)
  • capture_enable_nag_Clip privat e_stream2_PES_payload () as usage permission information in clip information file CI ip () (Fig. 12) (Fig. 5 S)
  • Capture_enable_flag_ps2 and au_information () (Fig. 59) as the usage permission information in the capture_enable_flag_AU as the usage permission information can be used by duplicating two or more of them.
  • the availability of secondary use of a picture in a video can be determined based on the logical product of two or more pieces of usage permission information used in duplicate.
  • the private_strean2 PES packet () including the private stream2_PES_payload () in Fig. 26 or Fig. 58 in which au_informaUon () in Fig. 59 is placed is shown in step S of Fig. 45.
  • the video read function unit 2 3 3 of the buffer control module 2 15 searches from the program stream stored in the buffer 2 1 5 A. Therefore, when adopting p rivate-strean ⁇ —PES—payloadO in Fig. 58 with capture-enable_flag_ps2 and au_iniormationO in Fig. 59 with capture-enable-flag-AU placed in Fig. 58,
  • the player control module 2 1 2 sends capture-enable-flag-ps2 and capture-enable-flag-AU to the video readout function unit 2 3 3 to determine whether secondary use of video data is possible. It is necessary to inquire.
  • the disc recording device in FIG. 60 can be applied to, for example, a disc player, a game device, a car navigation system, and the like.
  • the disc 4 10 is, for example, an optical disc such as a DVD, a magneto-optical disc, a magnetic disc, etc., and content data such as video data, audio data, subtitles, etc. In addition, content data can be recorded.
  • the disc 4 10 can be used as the disc 1 0 1 in FIG. 1 by recording various data.
  • the video input terminal 400 A is connected to a video input device such as an imaging device (not shown), and supplies video data supplied from the video input device to the video input interface 4 0 1.
  • the audio input terminal 4 0 0 B is connected to an audio input device such as a microphone or an amplifier (amplifier) (not shown), and supplies the input audio data to the audio input interface 4 0 2.
  • the video input interface 4 0 1 performs necessary processing on the input video data and supplies it to the video encoder 4 0 3 via the bus 4 1 1.
  • the audio input interface 4 0 2 performs predetermined processing on the input audio data and supplies it to the audio coder 4 0 4 via the bus 4 1 1.
  • the video encoder 40 3 encodes video data supplied from the CPU 400 or the video input interface 4 0 1, and obtains compressed encoded data (encoded video data: eg, MPEG 2 Video stream) is recorded on the disc 4 1 0 by the disc drive 4 0 9 via the bus 4 1 1.
  • compressed encoded data encoded video data: eg, MPEG 2 Video stream
  • Audio encoder 4 0 4 is CPU 4 0 5 or audio input Or, it can be installed in the disk recording device from the removable recording medium as described above.
  • the program can be transferred wirelessly from a download site via a satellite for digital satellite broadcasting to a disk playback device, or via a network such as a LAN (Local Area Network) or the Internet.
  • the program can be transferred to the disc playback device via a wire, and the disc playback device can receive the program transferred in this way through the input interface 40 8 and install it in the built-in memory 406.
  • the program may be processed by one CPU, or may be processed by multiple CPUs in a distributed manner.
  • the drive interface 4 0 7 controls the disk drive 40 9 under the control of the CPU 4 0 5, whereby the CPU 4 0 5, the memory 4 0 6, and the video encoder 4 0 are connected via the bus 4 1 1. 3.Supply the data supplied from the audio encoder 404 to the disk drive 4 0 9 and record it on the disk 4 1 0, or read the data recorded on the disk 4 1 0, The data is supplied to the CPU 4 0 5 and the memory 4 0 6 through the bus 4 1 1. .
  • the input interface 40 8 receives a signal supplied by a user operating a key (button) (not shown) or a remote control (remote control commander), and sends it to the CPU 40 5 via the bus 4 1 1.
  • the input interface 408 also functions as a communication interface such as a mote (including an ADSL (Asymmetric Digital Subscriber Line) modem) or an N'IC (Network Interface Card).
  • the video data and audio data supplied from the video input device and the audio input device to the disc recording device are wired or wireless. It can be done either way.
  • a disk 4 10 can be attached to and detached from the disk drive 4 0 9.
  • the disk drive 4 0 9 incorporates an interface (not shown), and is connected to the drive interface 4 0 7 through the interface.
  • the disk drive 4 0 9 drives the disk 4 1 0 mounted thereon, and performs processing such as recording data on the disk 4 1 0 in accordance with a recording instruction from the drive interface 4 0 7. .
  • the data (recorded data) recorded on the disk 4 10 includes a program that can be executed by a computer, if necessary.
  • the disk 4 10 which is a disk-shaped recording medium is adopted as the recording medium.
  • the recording medium may be, for example, a semiconductor memory or a tape-shaped recording medium. Good.
  • Bus 4 1 1 has CPU Centr l Process In ng Unit
  • Memory 4 0 6 Drive Interface 4 0 7, Input Interface 4 0 8
  • Video Encoder 4 0 3 Audio Encoder 4 0 4
  • Video input interface 4 0 1 and audio input interface 4 0 2 are connected.
  • the audio encoder ⁇ : 0 compresses and encodes the audio signal input via the audio input terminal 4 0 0 B and the audio input counter face 4 0 2. Output to multiplexer 4 2 1.
  • the video encoder 4 03 compresses the video signal input via the video input terminal 4 0 0 A and the video input interface 4 0 1. Decode and output to the multiplexer 4 2 1.
  • the multiplexer 42 1 1 converts the input MPEG 2 video stream and MPEG audio stream into a bucket, and has been described with reference to FIGS. 18 ⁇ and 18 B through 27. As shown, time division multiplexing is used.
  • the multiplexer 4 2 1 selects an intra picture in the stream and inserts PES_packet () of private_stream_2 shown in Fig. 26 at a frequency of about twice per second.
  • the multiplexer 4 2 1 outputs the multiplexed stream to the RAPI rewriter 424 via the FIF04 2 2 and simultaneously outputs it to the RAPI information extractor 4 2 3.
  • the RAPI information extractor 42 3 has the start position of PES_packet () of private_stream_2 in the video stream multiplexed into the multiplexed stream, and the intra picture placed immediately after PES-packet 0 of private stream_2. Detect and store the time stamp (PTS) value, the corresponding intra picture, and the end positions of the second, third, and fourth reference images.
  • PES time stamp
  • RAP1 here is PES_packet () of private_stream-2.
  • the RAPI information extractor 4 2 3 outputs the detected intra picture and the end positions of the second, third and fourth reference images following it to the RAPI rewriter 4 2 4.
  • the fields of lstRef_picture, 2ndRef_picture, 3rdRef_picture> 4thRe picture in Fig. 26 are overwritten as RAPI information.
  • the end position of the reference 1® image is recorded as a numerical value in units of sectors and stored in the output server 4 2 6.
  • the controller 4 2 5 When the processing of the entire multiplexed stream is completed, the controller 4 2 5 has a lot of multiplexed streams extracted and stored by the RAPI information extractor 423. The start position of all the overlapped RAP I, the intra picture placed immediately after RAP I, and the end position of the second, third, and fourth reference images are obtained. ⁇ 'Controller 4 2 5 creates the EP-map O described using Fig. 16 using the input information.
  • the controller 4 2 5 gives the RAP I its address, the PTS of the immediately following intra picture, the intra picture and the second picture that follows it. Select one of the end positions of the third and fourth reference images, create EPjnap O in the clip information file, and store it in the output server 4 26.
  • step S 3 8 the video encoder 4 0 3 compresses and encodes the video signal input via the video input terminal 4 0 0 A and the video input link interface 4 0 1 to the multiplexer 4 2 1. Output. Also, the audio encoder 40 4 compresses and encodes the audio signal input via the audio input terminal 4 0 0 B and the audio input interface 4 0 2 and outputs it to the multiplexer 4 2 1. In this case, the stream output from the audio encoder 40 4 is an MPEG 2 audio stream, and the stream output from the video encoder 40 3 is an MPEG 2 video stream.
  • step S 3 8 2 the multiplexer 4 2 1 converts the input MPEG 2 video stream and MPEG 2 audio stream into a bucket, and displays FIG. 1 8 A and FIG. 1 8 B to FIG. 2 7.
  • time-division multiplexing packetization
  • the frequency of pr i va t e_s t ream_2 shown in Fig. 26 is about twice a second.
  • Insert PES_packet PES_packet ().
  • PES_packet 0 of private_stream_2 indicates that a video image that can be decoded without reference to another picture is placed immediately after.
  • a time stamp (PTS / DTS) is always assigned to the corresponding intra picture.
  • the subtitle stream may be input to the multiplexer 4 2 1 and multiplexed together with the video stream and the audio stream.
  • step S 3 83 the multiplexer 4 2 1 outputs the multiplexed stream to the RAPI rewriter 424 via the FIF04 2 2 and also outputs to the RA PI information extractor 423 at the same time.
  • the RAPI information extractor 4 2 3 in the video stream multiplexed in the multiplexing stream, the privat e stream_2 is placed immediately after the start position of PES_packet 0 of stream_2 and immediately after PES_packetO of private stream 2 Detects and stores the time stamp (PTS) value of the intra picture, the corresponding intra picture, and the end positions of the second, third, and fourth reference images.
  • PES time stamp
  • the RAPI information extractor 423 outputs the detected corresponding intra picture and the end positions of the second, third, and fourth reference images following the detected intra picture to the RAPI rewriter 424.
  • the RAPI rewriter 42 4 overwrites the fields of RAPI information, including the IstRef picture, 2ndReview picture, 3rdRef—picture, and 4thRef_picture fields shown in Figure 26, respectively.
  • the first, second, third, and fourth pictures respectively.
  • the end position of the reference image of the eye is recorded as a numerical value in units of sectors, and further stored in the output server 4 2 6.
  • step S 3 85 the start positions of all the RAPIs multiplexed and multiplexed in the multiplexed stream extracted and stored by the RAPI information extractor 42 3
  • the end picture of the intra picture placed immediately after the RAPI and the second, third, and fourth reference images are input to the controller 4 25.
  • the controller 425 uses the input information to create EPjnapO described with reference to FIG. It is assumed that the EPjnapO created here contains only video stream information.
  • EP—map 0 for video is the location of all RAPIs placed in the stream, ie private_stream — 2 PES—packetO. This information is the information input from RAPI information extractor 42 3 to controller 425. Created with.
  • the controller 425 starts from the data input from the RAPI information extractor 423 to RAPI with its address, the PTS of the immediately following intra picture, the intra picture, and the second picture following it. Select one of the end positions of the third and fourth reference images, create EPjnapO in the clip information file, and store it in the output server 426. That is, the controller unit 42 5 can read out a predetermined number of sectors (encoding and processing in the encoding process) out of the four reference picture end positions (IstRe, Picture, 2ndRef_Picture> 3rdRe, Picture, 4thRef—Picture). The value close to the number of sectors) is copied to N-th 1 Ref_picture 1 copy.
  • step S 3 86 the controller 4205 determines and records indexjninusl based on N-th_Ref_picture_copy, and disc 4 1 0 To record.
  • the stream data stored in the output server 426 and the database file are supplied to the disk drive 409 from the drive interface 407 and recorded on the disk 4 10.
  • the player control module 2 1 2 selects 1 of the playable start position registered in EPjnapO from the clip information file of the stream being played (step S 3 9 1), and from RPN_EP_start described there, The read data is determined from the size of N-th_Re and only Picture_copy (step S 39 2). The player control module 2 1 2 transmits this information to the content data supply module 2 1 3 and instructs the decode control module 2 14 to perform fast forward playback.
  • the content data supply module 2 1 3 uses the function of the operating system 20 1 to read out the clip stream file storing the program stream in which the elementary stream to be reproduced is multiplexed and read the buffer control module 2 Supply to 1 5 (Step S 3 9 3). Since the file name has already been specified, it will not be repeated here. Unlike when playback is started, the read start address and the size of the data to be transferred are instructed to be read.
  • the video reading function unit 233 demultiplexes the multiplexed data input to the buffer control module 2 15 (step S 394), and supplies only the video stream to the video decoder control module 2 16. In this case, since it is a fast-forward process, the audio decoder control module 2 1 7, the subtitle decoder control module 2 1 8, the audio reading The output function unit 234 and the caption reading function unit 2 3 3 do not operate.
  • the input data contains 1 or more and 4 or less reference images.
  • the fast-forward process only the reference image is decoded and displayed based on the entry point selected by the entry point selection process (step S 39 5) described with reference to the flowchart of FIG. Index_N_minusl is sent in advance to the decode control module 2 14, and the decode control module 2 14 decodes the designated number of reference images and sequentially sends them to the subsequent stage for display (step S 396).
  • the player control module 2 12 selects the EP_map () entry point to be displayed next, and outputs the fast-forward image by repeating the above description (step S 39 7).
  • index-Iminusl shows the number of reference images included in the data when N-th_Ref-Picture-copy is read.
  • indexJLminuxl is 0 at the 1st and 3rd entry points, so there is 1 intra picture
  • index_Njninusl is 3 at the 2nd and 4th entry points. Therefore, four reference images are included.
  • Fast-forward images have the property of increasing their subjective quality by outputting two or more reference images.
  • the player control module 2 12 evaluates the value of index N minusl when selecting the entry point in EPjnapO to be displayed next.
  • the entry point decimation interval in EP_map () increases, but at that time, the one with index-Njninusl (ie, the one with higher subjective image quality) is preferentially selected. . If the fast-forward speed is slow, select one with a small index_N_ininusl.
  • step S 40 the player control module 2 1 2 determines whether the fast-forward mode is the high speed mode or the low speed mode. If it is determined that the fast forward is in the high speed mode, the process proceeds to step S 402, and if it is determined to be in the low speed mode, the process proceeds to step S 4 1 1.
  • step S 403 the player control module 2 1 2 reads the index Njninusl from the corresponding entry N, the previous entry (N— 1), and the previous entry (N + 1). The
  • step S 404 the player control module 2 1 2 determines whether in (fe_N _minus (N), that is, the value of the index 1 Njni'nus 1 of the Nth entry point is 0 or 1. In step S404, for example, if the value of index_N_niinusl is 0 or 1, the process proceeds to step S405, and the player control module 2 1 2 selects and processes the Nth entry point. On the other hand, if the value of index_N_minusl is neither 0 nor 1 in step S 404, the process proceeds to step S 406.
  • step S 40 6 the player control module 2 1 2 determines whether inde_N —minus (N + 1), that is, whether the value of index__N — minusl of the (N + 1) -th entry point is 0 or 1 Determine. If inde—N_minus (N + l) is 0 or 1 in step S 4 06, the process proceeds to step S 40 7, where the player control module 2 1 2 is the (N + 1) th The entry point is selected and the process is terminated. On the other hand, if inde_N_minus (N + 1) is neither 0 nor 1 in step S 406, the process proceeds to step S 408. .
  • step S 408 the player control module 2 1 2 determines whether or not the value of index_N jninusl possessed by inde_N_minus (N ⁇ 1), that is, the (N ⁇ 1) th entry point, is 0 or 1. In step S408, if the value of index_N_minusl is 0 or 1, the process proceeds to step S409 and the player control module 2 1 2 selects and processes the (N-1) th entry point. Exit. If neither 0 nor 1 proceed to step S 4 1 0.
  • step S 4 1 it is known that index—N minusl is neither 0 nor 1 at all entry points of entries N, (N + 1), and (N-1). Therefore, the player control module 2 1 2 selects the Nth entry point and ends the process.
  • step S 4 1 2 the player control module 2 1 2 reads index_N— minus 1 from the corresponding entry N, the previous entry (N—1), and the previous entry (N + 1).
  • step S 4 1 the player control module 2 1 2 determines whether or not inde_N_minus (N), that is, the value of index_N_minus 1 of the Nth entrepreneur basket is 3 or 2. In step S 4 1 3, if the value of index— N— minusl of the Nth entry line is 3 or 2, the process proceeds to step S 4 1 4, where player control module 2 1 2 finishes the process by selecting the Nth entry line. In step S 4 1 3, when the value of inde x_Njninusl of the Nth entry is neither 3 nor 2, the process proceeds to step S 4 1 5.
  • step S 4 1 the player control module 2 1 2 determines whether inde_N _minus (N + l), that is, whether the value of index—N jninusl of the (N + 1) -th entry point is 3 or 2 Determine.
  • step S 4 1 if the value of index_N_minusl of the (N + 1) th entry point 3 is 3 or 2, the process proceeds to step S 4 1 6, and the player control module 2 1 2 Select the (N + 1) th entry point and end the process.
  • step S 4 1 (NH) If the value of index_N_minusl of the eye entry lipoin IV is neither 3 nor 2, the process proceeds to step S 41 7.
  • step S 4 1 7 the player control module 2 1 2 determines whether inde_N —minus (N-1), that is, the value of index—N — minusl of the (N-1) -th entrepreneur ⁇ is 3 or 2 Determine whether or not.
  • step S 4 1 7 if the value of index_N_minusl of the (N-1) th entry point is 3 or 2, the process proceeds to step S 4 1 8, and the player control module 2 1 2 Select the (N-1) th entry point and end the process. If neither 3 nor 2 is selected, proceed to step S 4 1 9.
  • step S 4 1 9 it is known that indexJLminusl is 3 and not 2 in all the entries of N, (N + 1), and (N-1), so the player control module 2 1 2 Select the Nth entry point and end the process.
  • fast-forward playback can be realized without degrading subjective image quality. Further, in the low-speed fast-forward playback, it is possible to perform fast-forward playback using a larger number of reference images, so that it is possible to suppress a reduction in the quality of the playback image.
  • the read entry point information is always constant in the playback process. In such a case, a disk playback device with a high processing capacity has many entry points. However, it is possible to improve the playback image. However, if a large amount of entry information is read by a disk playback device with low processing capability, the processing speed may be delayed.
  • the priority is set to the information of the entry point to be read, and the information of all entry points is used in the disk playback device having a high processing capacity. Conversely, the disk playback device having a low processing capacity has a high priority. Only the entry point may be read and processed.
  • FIG. 65 is a functional block diagram for explaining the functions of the disk recording apparatus in which priority is set for entry points.
  • the same functions as those of the disk recording apparatus of FIG. 61 are denoted by the same reference numerals, and the description thereof will be omitted as appropriate. .
  • Subtitle encoder 4 4 3 reads the subtitle material from subtitle material server 4 4 2, compresses it, and writes it to subtitle data server 4 4 4. Unlike video data and audio data, captions are present intermittently on the time axis. For this reason, the display start time and the display dura_tion of the subtitle material recorded in the subtitle material server 4 4 2 and the subtitle data recorded in the subtitle data server 4 4 4 are prepared in the subtitle evening imming information 4 4 5 Is done.
  • the multiplexer 4 41 has basically the same function as the multiplexer 4 2 1 in FIG. 61, but further multiplexes caption data and caption timing information. That is, the multiplexer 4 4 1 reads the input MPEG 2 video stream and the MPEG 2 audio stream, and the caption data and the caption imming information 4 4 5 supplied from the caption data server 4 4 4, This was explained using FIG. 18A and FIG. 18B to FIG. 27 described above. As shown, time division multiplexing is performed.
  • the multiplexer 441 selects an intra picture in the stream, and inserts PES_packet () of private_stream_2 shown in Fig. 23 at a frequency of about twice per second.
  • PES_packet 0 of private_stream_2 indicates that an intra picture of the video that can be decorated without referring to another picture is placed immediately after.
  • a time stamp (PTS / DTS) is always given to the corresponding intra picture.
  • time stamps are always assigned to all access units for closed captions.
  • the subtitle stream may be input to the multiplexer 441 and multiplexed together with the video stream and the audio stream.
  • the multiplexer 44 1 supplies the multiplexed stream to the RAPI rewriter 4 24 via the FIF04 2 2 and also supplies it to the RAPI information extractor 4 2 3 at the same time.
  • the PI information extractor 4 2 3 extracts and stores video stream information and subtitle stream information multiplexed into the multiplexed stream. That is, for the video stream, the RAPI information extractor 423 has a private- s eam-2 PES-packet 0 start position and a private-stream_2 PES one packet
  • the end position of the reference image of the second, third, and fourth pictures following the value (PTS) value and corresponding intra picture, and the subsequent pictures are detected and stored.
  • the start positions and time stamps of all subtitle access units are detected and stored.
  • EP_map 0 contains information about the video stream and subtitle stream.
  • EPjnapO's main information about video is all RAP I placed in the stream, ie private-3 6 & 111-2? It is the position of £ 3_0 & ⁇ 10 and the time stamp of the next intra picture.
  • the main information of EPjnapO related to subtitles is the position and time stamp of the subtitle access unit. These pieces of information can also be created with the information input from the RAP I information extractor 4 23 to the controller 446.
  • controller 446 From the data input from the RAPI information extractor 423, the controller 446 creates a prioirty-flag, which will be described later, of EPjnapO information that has not yet been determined. That is, the evening stamps are evaluated for all video entry points (RAP I entry points) and subtitle access units (to be described later) and the priority flag is set. For this purpose, controller 446 is input with the chapter / scene change information 44 7. .
  • priority_flag value 3
  • 'priority_flag' 2
  • a priority_flag value of 1 indicates an entry every 3 seconds that corresponds to a scene change except for the above. All other entries have a priority-f lag value of 0.
  • priority_flag value 3
  • the entry corresponding to the Subtitle stream indicates that the entry corresponds to the beginning of the chapter. If the value of priority flag is 2, it indicates that the entry corresponds to an important scene change other than the above. If the priority-flag value is 1, it indicates an entry corresponding to a scene change other than the above. All other entries have a priority_flag value of 0.
  • subtitles it is said that 1000 to 2000 subtitles exist for a two-hour movie. On the other hand, there are several dozens of chapters. Or you can divide by 2 000 and save in a few tenths of memory. Since the number of subtitle streams is larger than that of video streams, the reduction effect is sufficient.
  • the flags are indicated by the values 3, 2, 1, and 0, but it is also possible to express each flag as a bit and set the corresponding pit to 1. That is, if this field is 3 bits, if the most significant bit is 1, it indicates the beginning of the chapter, if the next bit is 1, it indicates that the entry is every 1 minute, If the least significant bit is 1, it indicates an entry every 5 seconds, and if all bits are 0, it can be defined that they are not included in those three categories.
  • step S 445 If it is determined in step S 445 that the scene change is not a normal scene change, that is, if it is determined that none of the scene changes apply, in step S 447, the controller 446 Set to.
  • step S448 the controller 446 It is determined whether or not the processing has been completed for all of the entries, and if it is determined that the processing has not been completed, the processing returns to step S 4 41 and the subsequent processing is repeated. That is, steps S 4 41 to S 4 4 8 are repeated until all pr i or ny_fl ag are set for the video entry.
  • step S 4 4 8 determines whether or not the entry corresponds to the beginning position of the chapter with respect to the caption, that is, the entry under evaluation is the chapter / scene change information 4 4 7. It is determined whether it corresponds to.
  • step S 4 51 the controller 4 4 6 determines whether or not it is the position of the important scene change of the caption. That is, it is determined whether or not the entry under evaluation corresponds to the position of every “minute” from the head of the “important scene change” in the chapter scene change information 4 47.
  • step S 45 6 the controller 446 determines whether or not the processing for all the subtitle entries has been completed. If it is determined that the processing has not ended, the processing returns to step S 449 and the subsequent processing is performed. Is repeated. In other words, the processing of steps S449 to S456 is repeated until all priority-flags are set for the subtitle entries, and it is determined in step S456 that the processing has been completed for all the subtitle entries. Then, the controller 446 outputs EPjnapO data to the output server 426 according to the syntax shown in FIG.
  • the disc playback device thins out EPjnapO depending on the size of the memory (for example, the memory 1 1 3 in FIG. 1).
  • the size of the memory for example, the memory 1 1 3 in FIG. 1.
  • only entries with a high priority flag are left in the memory.
  • the memory capacity required for EP_map for one video stream can be reduced to about 1/6 to 1/10.
  • the amount of memory required for EPjnap for one subtitle stream can be reduced to about several tenths.
  • even a low-cost disc playback device can store entries according to the capacity of the memory, and can realize efficient playback processing. .
  • the above-described series of processing is performed by software.
  • the above-described series of processing can also be performed by a dedicated hard ware.
  • the hardware decoder is adopted as the video decoder 1 1 6 (FIG. 1) and the video encoder 403 (FIG. 60), but the video decoder 1 1 6 and the video encoder A software decoder can be used as the reader 40 3 (Fig. 60). The same applies to the audio decoder 1 1 7 (Fig. 1) and the T-dio encoder 4 0 4 (Fig. 60).
  • a software decoder is adopted as the caption decoder, but a hardware decoder can also be adopted as the caption decoder.

Landscapes

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

Abstract

データを再生する装置で、単独にカウントする時計が無くてもストリームデータをタイムスタンプに応じて再生できるようにする。ステップS141において、受け取ったアクセスユニットがタイムスタンプが付加されているか否かが判定され、アクセスユニットにタイムスタンプが付加されていた場合、ステップS142において、タイムスタンプ(PTS)の値が設定される。アクセスユニットにタイムスタンプが付加されていなかった場合、ステップS144において、現在時刻に前回のpic_structで決まる値が加算される。その後、ステップS143において、今回のpic_structが次回の処理のために保存される。本発明は、例えば、DVDを利用したゲーム装置などに適用できる。

Description

明 細 書
データ処理装置およびデータ処理方法、 プログラムおよびプロダラ ム記録媒体、 データ記録媒体、 並びにデータ構造 技術分野
本発明は、 デ一夕処理装置およびデータ処理方法、 プログラムおよ びプログラム記録媒体、 データ記録媒体、 並びにデ一夕構造に関し、 特に、 例えば、 利便性等の高いデータ処理を可能とするデータ処理装 置およびデータ処理方法、 プログラムおよびプログラム記録媒体、 デ 一夕記録媒体、 並びにデータ構造に関する。 背景技術
近年、 大容量で、 ランダムアクセスが可能な記録メディアとして、 例えば、 DVD (Digital Versat i le Disc)が普及し、 さらに、 DVDを利用 して各種の処理を行う DVD装置も広く普及している。
DVD装置としては、 例えば、 DVDに対して、 テレビジョン放送番組の デ一夕等の記録再生を行う DVDレコーダゃ、 DVDに地図情報等を記録し 、 その地図情報の表示を行う力一ナビゲ一シヨンシステム、 DVDにゲ —ムのプログラム等を記録し、 そのプログラムを実行するゲーム装置 などがある。
なお、 DVDについては、 例えば、 非特許文献 1 「DVD Specification s for Read-Only Disc Part 3; Version 1.1 December 1997J に、 そ の詳細が記載されている。
DVD装置のように、 大量のデ一夕を処理することができる装置にお いて、 利便性の高いデータ処理を行うことが要請される。 発明の開示
i 本発明は、 このような状況に鑑みてなされたものであり、 利便性等 の高いデータ処理を行うことができるようにするものである。. ' 本発明のデータ処理装置は、 所定の変数を用いて時刻を計時するよ うに構成された計時部と、 アクセスユニットのタイムスタンプの有無 を検出し、 前記アクセスユニットにタイムスタンプがある場合、 前記 タイムスタンプの値を前記変数に代入し、 前記アクセスュニッ卜に夕 ィムスタンプがない場合、 表示時間の情報を取得し、 取得された前記 表示時間の情報により得られる値を加算して、 前記変数を設定するよ うに構成された設定部とを備えることを特徴とする。
前記表示時間の情報は、 処理される処理データの 1フィールドを単 位とした表示時間を示す情報とするようにすることができる。
前記処理データは、 ビデオデータまたは字幕データであるとするよ うにすることができる。
前記設定部は、 表示時間の情報を取得した際に、 取得された表示時 間の情報により得られる値を、 アクセスユニットの直後のアクセスュ ニッ 卜の表示を開始するタイミングで加算して、 変数を設定するよう にすることができる。
前記設定部は、 表示時間の情報を取得した際に、 取得された表示時 間の情報により得られる値を、 アクセスユニットの直後のアクセスュ ニットの表示を開始するタイミングで加算して、 変数を設定するよう にすることができる。
所定のアクセスュニットに対して所定のマークタイムスタンプの時 刻で所定の処理を施すように構成されたマーク処理部をさらに備え、 設定部は、 所定のアクセスユニットに対して所定の処理を施すマ一ク タイムスタンプの時刻が、 計時部により計時されている時刻から、 表 示時間内の時刻であるとき、 計時部により計時されている時刻が前記 マークタイムスタンプの時刻となっていることをマ一ク処理部に対し て通知し、 マーク処理部は、 通知に基づいて、 所定のアクセスュ二''ッ 卜に対して所定の処理を施すようにさせることができる。
前記マークタイムスタンプの時刻の最小間隔は、 アクセスユニッ ト の最大表示時間であるようにすることができる。
本発明のデータ処理方法は、 所定の変数を用いて時刻を計時する計 時ステップと、 アクセスュニッ 卜のタイムスタンプの有無を検出し、 アクセスュニッ 卜にタイムスタンプがある場合、 タイムスタンプの値 を変数に代入し、 アクセスユニッ トにタイムスタンプがない場合、 表 示時間の情報を取得し、 取得された表示時間の情報により得られる値 を加算して、 変数を設定する設定ステップとを含むことを特徴とする 本発明のプログラム記録媒体のプログラムは、 所定の変数を用いて 時刻を計時する計時ステップと、 アクセスユニッ トのタイムスタンプ の有無を検出し、 アクセスユニッ トにタイムスタンプがある場合、 夕 ィムスタンプの値を変数に代入し、 アクセスュニッ 卜にタイムスタン プがない場合、 表示時間の情報を取得し、 取得された表示時間の情報 により得られる値を加算して、 変数を設定する設定ステップとを含む ことを特徴とする。
本発明のプログラムは、 所定の変数を用いて時刻を計時する計時ス テツプと、 アクセスユニッ トのタイムスタンプの有無を検出し、 ァク セスュニッ トにタイムスタンプがある場合、 タイムスタンプの値を変 数に代入し、 アクセスユニッ トにタイムスタンプがない場合、 表示時 間の情報を取得し、 取得された表示時間の情報により得られる値を加 算して、 変数を設定する設定ステップとを含む処理をコンピュータに 実行させることを特徴とする。
本発明のデ一夕記録媒体は、 所定の変数を用いて時刻を計時す ^よ うに構成された計時部と、 処理データが所定のアクセスュニッ ト毎に 処理される際に、 アクセスュニッ 卜のタイムスタンプの有無を検出し 、 アクセスユニッ トにタイムスタンプがある場合、 タイムスタンプの 値を変数に代入し、 アクセスュニッ 卜にタイムスタンプがない場合、 表示時間の情報を取得し、 取得された表示時間の情報により得られる 値を加算して、 変数を設定するように構成された設定部と、 所定のァ クセスュニッ トに対して所定のマークタイムスタンプの時刻で所定の 処理を施すように構成されたマーク処理部とを備えるデ一夕処理装置 により読み出されるデータを記録するデ一夕記録媒体であって、 所定 のアクセスユニッ トに対して所定の時刻で所定の処理を施すマークタ ィムスタンプを含むデータが記録され、 マークタイムスタンプの時刻 の最小間隔が、 アクセスュニッ 卜の最大表示時間であることを特徴と する。
本発明のデ一夕構造は、 処理データが所定のアクセスュニッ ト毎に 処理される際に、 アクセスュニッ トのタイムスタンプの有無を検出し 、 前記アクセスユニッ トにタイムスタンプがある場合、 前記タイムス タンプの値を前記変数に代入し、 前記アクセスュニッ トにタイムス夕 ンプがない場合、 前記表示時間の情報を取得し、 取得された前記表示 時間の情報により得られる値を加算して、 前記変数を設定するように 構成された設定部と、 所定のアクセスュニッ 卜に対して所定のマーク タイムスタンプの時刻で所定の処理を施すように構成されたマーク処 理部とを備えるデータ処理装置により読み出されるデータのデ一夕構 造であって、 前記所定のアクセスユニッ トに対して所定の時刻で所定 の処理を施すマークタイムスタンプを含み、 前記マークタイムスタン プの時刻の最小間隔が、 前記アクセスュニッ トの最大表示時間である ことを特徴とする。 5 本発明のデータ処理装置および方法、 並びに、 プログラムおよびプ 口グラム記録媒体においては、 所定の変数を用いて時刻が計時され、 アクセスユニッ トのタイムスタンプの有無が検出され、 アクセスュニ ッ 卜にタイムスタンプがある場合、 タイムスタンプの値が変数に代入 され、 アクセスユニッ トにタイムスタンプがない場合、 表示時間の情 報が取得され、 取得された表示時間の情報により得られる値が加算さ れ、 変数が設定される。
本発明のデ一夕記録媒体およびデータ構造においては、 所定のァク セスュニットに対して所定の時刻で所定の処理を施すマ一ク夕ィムス タンプを含むデ一夕が記録され、 マークタイムスタンプの時刻の最小 間隔が、 アクセスユニッ トの最大表示時間とされる。
本発明のデータ処理装置は、 独立した装置であっても良いし、 デ一 夕処理を行うブロックであっても良い。
本発明によれば、 利便性等の高いデータ処理が可能となる。 特に、 効率的な再生を可能にすると共に、 スト.リームデータを再生する装置 が単独で計時する時計の機能がなくてもタイムスタンプに従って正確 にストリ一ムデ一夕を再生することが可能になる。 図面の簡単な説明
第 1図は、 本発明を適用したディスク再生装置の一実施の形態のハ 一ドウエア構成例を示すブロック図、 第 2図 Aおよび第 2図 Bは、 CP U 1 1 2が実行するソフ トウェアモジュール群の構成例を示すブロッ ク図、 第 3図は、 実際の時間経過と 90kHzの時計の計時との関係を示 した図、 第 4図は、 実際の時間経過とビデオデコーダのビデオデータ の出力に応じて時刻を更新する時計の計時との関係を示した図、 第 5 図は、 バッファ制御モジュール 2 1 5の構成例を示すブロック図、 第 6図は、 ディスク 1 0 1におけるディレクトリ構成例を示す図、 第マ 図は、 "PLAYLIST.DAT"ファイルのシンタクスを示す図、 第 8図は、 P1 ay.ItemOのシンタクスを示す図、 第 9図は、 P yLi s tMarkOのシン夕 クスを示す図、 第 1 0図は、 mark— typeの値と、 MarkOのタイプとの 関係を示す図、 第 1 1図は、 PlayListO, Playltem()、 クリップ、 お よびクリップストリームファイルに格納されたプログラムストリーム の関係を示す図、 第 1 2図は、 クリップ情報ファイル ClipOのシン夕 クスを示す図、 第 1 3図は、 エレメン夕リストリームを識別する stre am_idおよび private— stream_idと、 エレメン夕リストリ一ムとの関係 を示す図、 第 1 4図は、 StaticInfoOのシンタクスを示す図、 第 1 5 図は、 DynamicInfoOのシンタクスを示す図、 第 1 6図は、 EP— mapO のシンタクスを示す図、 第 1 7図は、 第 1 6図の index— N— minuslの値 と IstRef— Picture乃至 4thRef— Pictureとの関係を示す図、 第 1 8図 A および第 1 8図 Bは、 MPEG- 2 Sys temのプログラムストリーム、 プロ グラムストリ一ムパック、 およびプログラムストリームパックヘッダ のシンタクスを示す図、 第 1 9図 Aおよび第 1 9図 Bは、 MPEG- 2 Sys temの PESパケットのシンタクスを示す図、 第 2 0図 A、 第 2 0図 Bお よび第 2 0図 Cは、 MPEG-2 Systemの PESパケットのシンタクスを示す 図、 第 2 1図 Aおよび第 2 1図 Bは、 MPEG- 2 Sys temの PESパケットの シンタクスを示す図、 第 2 2図 Aおよび第 2 2図 Bは、 MPEG-2 Syste mにおける PES— packet Oの streamjdに記述される値と、 エレメン夕リ ストリームの属性との関係を示す図、 第 2 3図は、 ディスク再生装置 が採用する stream— idを示す図、 第 2 4図は、 private— streanil—PES—p ayloadOのシンタクスを示す図、 第 2 5図は、 private stream idの 値と、 private— payloadOに格納されるエレメン夕リストリ一ムの属 性との関係を示す図、 第 2 6図は、 rivate_streani2_PES_payload() のシンタクスを示す図、 第 2 7図は、 au— informationOのシンタクス を示す図、 第 2 8図は、 pic— structを説明する図、 第 2 9図は、 "PLA YLIST.DAT"ファイルの具体例を示す図、 第 3 0図 Aおよび第 3 0図 B は、 クリップ情報ファイル" 00001. CLP", " 00002. CLP", " 00003. CLP" の具体例を示す図、 第 3 1図は、 クリップ情報ファイル" 00001. CLP" の中の EP_map()の具体例を示す図、 第 3 2図は、 PlayList #0と PlayL ist #1の中の PlayListMarkOの具体例を示す図、 第 3 3図は、 再生前 処理を説明するフローチャート、 第 34図は、 再生処理を説明するフ ローチヤ—ト、 第 3 5図は、 デコード順序と出力順序の関係を説明す るフローチャート、 第 3 6図は、 ビデオデコーダの構成を説明する図 、 第 3 7図は、 第 3 6図の DPBの構成を説明する図、 第 3 8図は、 時 刻更新処理を説明するフローチャート、 第 3 9図は、 pic— structの値 に応じた時刻更新処理を説明する図、 第 40図は、 Playltem乗り換え 処理を説明するフローチャート、 第 4 1図は、 タイムコード表示処理 を説明するフローチャート、 第 4 2図は、 ストリーム切り替え処理を 説明するフロ一チャート、 第 4 3図は、 バッファ制御モジュール 2 1 5の処理を説明するフローチャート、 第 44図は、 バッファ制御モジ ユール 2 1 5の処理を説明するフローチャート、 第 4 5図は、 ビデオ ストリ一ムの読み出しの処理を説明するフローチヤ一ト、 第 46図は 、 オーディオストリームの読み出しの処理を説明するフ口一チヤ一ト 、 第 4 7図は、 字幕ストリームの読み出しの処理を説明するフローチ ヤート、 第 4 8図は、 再同期処理を説明するフローチャート、 第 4 9 図は、 マーク処理を説明するフローチャート、 第 5 0図は、 マーク処 理における一致判定を説明する図、 第 5 1図は、 p yListEnd夕イミ ングを説明する図、 第 5 2図は、 playListEndタイミングを説明する 図、 第 5 3図は、 イベントの間隔を説明する図、 第 5 4図は、 出 ^属 性の制御処理を説明するフローチャート、 第 5 5図は、 クリップ情'報 フアイル" 00003. CLP"に記述されてぃる 15_(11&1^6_0011^と0 1^111^111 fo()とのセッ トの具体例を示す図、 第 5 6図は、 字幕表示制御処理を 説明するフローチャート、 第 5 7図は、 キヤプチャ制御処理とバック グラウンドノスクリーンセーバ処理を説明するフローチヤ一ト、 第 5 8図は、 private— st ream2一 PES_pay load 0の他のシンタクスを示す図 、 第 5 9図は、 au— informationOの他のシンタクスを示す図、 第 6 0 図は、 ディスク記録装置のハードウェア構成例を示すブロック図、 第 6 1図は、 第 6 0図のディスク記録装置により実現される機能を説明 するブロック図、 第 6 2図は、 Ep_map生成処理を説明するフローチヤ —ト、 第 6 3図は、 早送り再生処理を説明するフローチャート、 第 6 4図は、 エントリポイント選定処理を説明するフローチャート、 第 6 5図は、 第 6 0図のディスク記録装置により実現されるその他の機能 を説明するブロック図、 第 6 6図は、 EP—map()のその他のシンタクス を示す図、 第 6 7図は、 第 6 5図の priority— flagを説明する図、 第 6 8図は、 プライオリティ設定処理を説明するフローチャートである
発明を実施するための最良の形態
以下に本発明の実施の形態を説明するが、 請求の範囲に記載の構成 要件と、 発明の実施の形態における具体例との対応関係を例示すると 、 次のようになる。 この記載は、 請求の範囲に記載されている発明を サポートする具体例が、 発明の実施の形態に記載されていることを確 認するためのものである。 従って、 発明の実施の形態中には記載され ているが、 構成要件に対応するものとして、 ここには記載されていな い具体例があつたとしても、 そのことは、 その具体例が、 その構成要 件に対応するものではないことを意味するものではない。 逆に、 具''体 例が構成要件に対応するものとしてここに記載されていたとしても、 そのことは、 その具体例が、 その構成要件以外の構成要件には対応し ないものであることを意味するものでもない。
さらに、 この記載は、 発明の実施の形態に記載されている具体例に 対応する発明が、 請求の範囲に全て記載されていることを意味するも のではない。 換言すれば、 この記載は、 発明の実施の形態に記載され ている具体例に対応する発明であって、 この出願の請求の範囲には記 載されていない発明の存在、 すなわち、 将来、 分割出願されたり、 補 正により追加される発明の存在を否定するものではない。
すなわち、 本発明のデータ処理装置は、 所定の変数を用いて時刻を 計時する計時手段 (例えば、 第 2図 Aおよび第 2図 Bの計時部 2 1 4 A ) と、 アクセスユニットのタイムスタンプの有無を検出し、 前記ァ クセスュニッ 卜にタイムスタンプがある場合、 前記表示時間の情報を 取得し、 取得された前記表示時間の情報により得られる値を加算して 、 前記変数を設定する設定手段 (例えば、 第 2図 Aおよび第 2図 Bの デコード制御モジュール 2 1 4 ) とを備えることを特徴とする。
また、 本発明のデータ処理方法は、 所定の変数を用いて時刻を計時 する計時ステップと、 アクセスュニッ 卜のタイムスタンプの有無を検 出し (例えば、 第 3 8図のフローチャートにおけるステップ S 1 4 1 の処理) 、 前記アクセスユニットにタイムスタンプがある場合、 前記 タイムスタンプの値を前記変数に代入し (例えば、 第 3 8図のフロー チャートにおけるステップ S 1 4 2の処理) 、 前記アクセスユニッ ト にタイムスタンプがない場合、 前記表示時間の情報を取得し、 取得さ れた前記画像の表示時間の情報により得られる値を加算して、 前記変 数を設定する設定ステップ (例えば、 第 3 8図のフローチャート(;:お けるステップ S 1 4 4の処理) とを含むことを特徴とする。 ' 尚、 プログラム記録媒体およびプログラムについては、 データ処理 方法と同様であるので、 その説明は省略する。
以下、 図面を参照して、 本発明の実施の形態について説明する。
[八一ドウエア構成]
第 1図は、 本発明を適用したディスク再生装置の一実施の形態のハ ―ドウエアの構成例を示すブロック図である。
第 1図のディスク再生装置は、 例えば、 ディスクプレーヤや、 ゲ一 ム装置、 力一ナビゲ一ションシステムその他に適用することができる 第 1図のディスク再生装置において、 ディスク 1 0 1は、 例えば、 DVDなどの光ディスク、 あるいは光磁気ディスク、 磁気ディスクなど であり、 ビデオデ一夕や、 オーディオデータ、 字幕デ一夕などのコン テンッデ一夕、 さらには、 コンテンツデータを再生するのに必要なデ 一夕が記録されている。 .
なお、 ディスク 1 0 1に記録されるデータには、 必要に応じて、 コ ンピュー夕が実行可能なプログラムも含まれる。 また、 本実施の形態 では、 記録媒体として、 ディスク状の記録媒体であるディスク 1 0 1 を採用するが、 その他、 記録媒体としては、 例えば、 半導体メモリや 、 テープ状の記録媒体であってもよい。 さらに、 第 1図のディスク再 生装置には、 遠方にあるディスク 1 0 1から読み出されて送信されて くるデータを入力することができる。 即ち、 ディスク 1 0 1からのデ —夕の読み出しは、 ディスク再生装置に接続した別の装置で行い、 そ の別の装置で読み出されたデータを、 ディスク再生装置で受信して処 理することができる。 また、 ディスク再生装置では、 ディスク 1 0 1 に記録されたデ一夕と同様のデータをストレージに記憶しているザ'一 バ等から、 インターネッ ト等のネッ トワークを介して、 データの配'信 を受けて処理することも可能である。.さらに、 ディスク再生装置では 、 サーバその他の装置からのデータを受信し、 一旦、 ディスク 1 0 1 に記録してから、 そのディスク 1 0 1に記録されたデータを処理する こと.も可能である。
ディスク ドライブ 1 0 2には、 ディスク 1 0 1が着脱可能になって いる。 ディスク ドライブ 1 0 2は、 図示せぬインターフェースを内蔵 し、 そのインタ一フェースを通じて、 ドライブイン夕一フェース 1 1 4に接続されている。 ディスク ドライブ 1 0 2は、 そこに装着された ディスク 1 0 1を駆動し、 ドライブイン夕一フエ一ス 1 1 4からの読 み出し等の命令にしたがって、 ディスク 1 0 1からデータを読み出し て、 ドライブインターフェース 1 1 4に供給する等の処理を行う。 バス 1 1 1には、 CPU Cen t ra l Proces s i ng Un i t) 1 1 2、 メモリ 1 1 3、 ドライブインタ一フェース 1 1 4、 入力インタ一フェース 1 1 5、 ビデオデコーダ 1 1 6、 オーディオデコ一ダ 1 1 7、 ビデオ出力 インタ一フェース 1 1 8、 オーディオ出力イン夕一フェース 1 1 9が 接続されている。
CPU 1 1 2およびメモリ 1 1 3は、 コンピュータシステムを形成し ている。 即ち、 CPU 1 1 2は、 メモリ 1 1 3に記憶されたプログラム である、 後述するソフトウェアモジュール群を実行し、 ディスク再生 装置全体を制御するとともに、 後述する各種の処理を行う。 メモリ 1 1 3は、 CPU 1 1 2が実行するソフトウエアモジュール群を記憶して いる。 また、 メモリ 1 1 3は、 CPU 1 1 2の動作上必要なデータを一 時記憶する。 なお、 メモリ 1 1 3は、 不揮発性メモリのみ、 または揮 発性メモリと不揮発性メモリとの組み合わせで構成することが可能で ある。 また、 第 1図のディスク再生装置に、 ハードディスクを設け、 そのハ一ドディスクに、 CPU 1 1 2が実行するソフ トウェアモジ ^一 ル群を記録 (インスト一ル) しておく場合には、 メモリ 1 1 3は、 揮 発性メモリのみで構成することが可能である。
ここで、 CPU 1 1 2が実行するプログラム (ソフトウェアモジユー ル群.) は、 ディスク再生装置に内蔵されている記録媒体としてのメモ リ 1 1 3に予め格納しておく ことができる。
あるいはまた、 プログラムは、 ディスク 1 0 1、 さらには、 デイス ク 1 0 1以外のフレキシブルディスク、 CD-ROM (Compact Disc Read 0 nly Memory), MO (Magneto Opt ical)ディスク、 磁気ディスク、 メモリ 力ードなどのリム一バブル記録媒体に、 一時的あるいは永続的に格納 しておく ことができる。 このようなリムーバブル記録媒体は、 いわゆ るパッケージソフトウェアとして提供することができる。
なお、 プログラムは、 メモリ 1 1 3にあらかじめ記憶させておくこ と、 あるいは、 上述したようなリム一バブル記録媒体からディスク再 生装置にインスト一ルすることができる。 また、 プログラムは、 ダウ ンロードサイ 卜から、 ディジタル衛星放送用の人工衛星を介して、 デ イスク再生装置に無線で転送したり、 LAN(Local Area Network) ィ ン夕ーネッ トといったネッ トワークを介して、 ディスク再生装置に有 線で転送し、 ディスク再生装置では、 そのようにして転送されてくる プログラムを、 入力インターフェース 1 1 5で受信し、 内蔵するメモ リ 1 1 3にィンストールすることができる。
さらに、 プログラムは、 1の CPUにより処理されるものであっても 良いし、 複数の CPUによって分散処理されるものであっても良い。
ドライブイン夕一フェース 1 1 4は、 CPU1 1 2の制御の下、 ディ スク ドライブ 1 0 2を制御し、 これにより、 ディスク ドライブ 1 0 2 がディスク 1 0 1から読み出したデータを、 バス 1 1 1を介して、 'CP Ul 1 2や、 メモリ 1 1 3、 ビデオデコ^ "ダ 1 1 6、 オーディオデコ —ダ 1 1 7などに供給する。
入力インタ一フェース 1 1 5は、 図示せぬキ一 (ポタン) や、 リモ コン (リモートコントロールコマンダ) がュ一ザに操作されることに よって供給される信号を受信し、 バス 1 1 1を介して、 CPU 1 1 2に 供給する。 なお、 入力イン夕一フェース 1 1 5は、 その他、 例えば、 モテム (ADSL (Asymmetric Digital Subscriber Line)モテムを含む) や、 NIC(Network Interface Card)などの通信インタ一フェースとし ても機能する。
ビデオデコーダ 1 1 6は、 ディスク ドライブ 1 0 2によってデイス ク 1 0 1から読み出され、 ドライブイン夕一フェース 1 1 4およびバ ス 1 1 1を介して供給される符号化ビデオデータをデコードし、 その 結果得られるビデオデ一夕を、 バス 1 1 1を介して、 CPU1 1 2ゃビ デォ出力インターフェース 1 1 8に供給する。
オーディオデコーダ 1 1 7は、 デイス.ク ドライブ 1 02によってデ イスク 1 0 1から読み出され、 ドライブインターフェース 1 1 4およ びバス 1 1 1を介して供給される符号化ォ一ディォデ一夕をデコード し、 その結果得られるオーディオデ一夕を、 バス 1 1 1を介して、 CP Ul 1 2やオーディオ出力インタ一フェース 1 1 9に供給する。
ビデオ出カインターフェース 1 1 8は、 バス 1 1 1を介して供給さ れるビデオデ一夕に必要な処理を施し、 ビデオ出力端子 1 2 0から出 力する。 オーディオ出力インタ一フェース 1 1 9は、 バス 1 1 1を介 して供給されるオーディオデータに必要な処理を施し、 オーディオ出 力端子 1 2 1から出力する。 W ビデオ出力端子 1 2 0は、 図示せぬ CRT (Ca t h ode Ray Tube)や、 液 晶パネル等のビデオ出力装置に接続されており、 従って、 ビデオ出力 端子 1 2 0から出力されるビデオデータは、 ビデオ出力装置に供給さ れて表示される。 オーディオ出力端于 1 2 1は、 図示せぬスピーカや アンプなどのオーディオ出力装置に接続されており、 従って、 オーデ ィォ出力端子 1 2 1から出力されるオーディオデータは、 オーディオ 出力装置に供給されて出力される。
なお、 ディスク再生装置から、 ビデオ出力装置とオーディオ出力装 置へのビデオデータとオーディォデ一夕の供給は、 有線または無線の いずれによって行うことも可能である。
[ソフトウエアモジュール群の構成]
次に、 第 2図 Aおよび第 2図 Bは、 第 1図の CPU 1 1 2が実行する ソフトウェアモジュール群の構成^を示している。
CPU 1 1 2が実行するソフ トウェアモジュール群は、 オペレーティ ングシステム (OS) 2 0 1 と、 アプリケーションプログラムとしての ビデオコンテンツ再生プログラム 2 1 0に大別される。
「オペレーティングシステム 2 0 1」 - オペレーティングシステム 2 0 1は、 ディスク再生装置の電源が投 入されると最初に起動し、 初期設定等の必要な処理を行い、 アプリケ ーションプログラムであるビデオコンテンツ再生プログラム 2 1 0を 呼び出す。
オペレーティングシステム 2 0 1は、 ビデオコンテンツ再生プログ ラム 2 1 0に対して、 ファイルの読み出し等のインフラ (インフラス トラクチャ(i n f r as t ruc t u r e) ) 的なサ一ビスを提供する。 即ち、 オペ レ一ティングシステム 2 0 1は、 例えば、 ファイルの読み出しに関し ては、 ビデオコンテンツ再生プログラム 2 1 0からのファイルの読み 出しのリクエストに対して、 ドライブイン夕一フェース 1 1 4を介し てディスク ドライブ 1 0 2を操作して、 ディスク 1 0 1のデータを読 み出し、 ビデオコンテンツ再生プログラム 2 1 0に渡すサービスを'提 供する。 また、 オペレーティングシステム 2 0 1は、 ファイルシステ ムの解釈等も行う。
なお、 オペレーティングシステム 2 0 1は、 マルチタスク処理の機 能を備えており、 複数のソフトウェアモジュールを、 時分割に動作さ せることができる。 即ち、 ビデオコンテンツ再生プログラム 2 1 0は 、 幾つかのソフトウェアモジュールで構成されるが、 各ソフ トウェア モジュールは、 並列で動作することができる。
「ビデオコンテンツ再生プログラム 2 1 0」
ビデオコンテンツ再生プログラム 2 1 0は、 スクリプト制御モジュ —ル 2 1 1、 プレイヤ制御モジュール 2 1 2、 コンテンツデータ供給 モジュール 2 1 3、 デコード制御モジュ一ル 2 1 4、 バッファ制御モ ジュール 2 1 5、 ビデオデコーダ制御モジュール 2 1 6、 オーディオ デコーダ制御モジュール 2 1 7、 字幕デコーダ制御モジュール 2 1 8 、 グラフィクス処理モジュール 2 1 9、 ビデオ出力モジュール 2 2 0 、 およびオーディオ出力モジュール 2 2 1で構成されている。
ビデオコンテンッ再生プログラム 2 1 0は、 ディスク 1 0 1の再生 にあたって中心的な役割を果たすソフトウェアであり、 ディスク 1 0 1がディスク ドライブ 1 0 2に装着 (挿入) されると、 そのディスク 1 0 1が、 コンテンツが記録された後述するフォーマツ卜のディスク であるかを確認する。 さらに、 ビデオコンテンツ再生プログラム 2 1 0は、 ディスク 1 0 1から、 後述するスクリプトファイルを読み出し て実行し、 また、 ディスク 1 0 1から、 そのディスク 1 0 1に記録さ れたコンテンツを再生するのに必要なメタデータのファイルを読み出 し、 そのメタデータに基づいて、 コンテンツの再生を制御する。
以下、 第 2図 Aおよび第 2図 Bのビデオコンテンッ再生プログラム 2 1 0を構成するソフトウエアモジュールについて説明する。 なお、 第 2図 Aおよび第 2図 Bにおいては、 原則として、 実線の矢印は、 コ ンテンッのデ一夕を表し、 点線の矢印は、 制御のデータを表す。
「スクリブト制御モジュール 2 1 1」
スクリブト制御モジュール 2 1 1は、 ディスク 1 0 1に記録された スクリプトファイルに記述されているスクリプトプログラム (スクリ ブト) を解釈して実行する。 スクリプトプログラムでは、 例えば、 「 グラフィクス処理モジュール 2 1 9を操作し、 メニュー等の画像を作 成して表示する」 、 「リモコン等の U I (User I n t er f ace)からの信号に 従いメニューの表示を変更する (例えば、 メニュー上の力一ソルを移 動する等) 」 、 「プレイヤ制御モジュール 2 1 2を制御する」 等の動 作を記述することができる。
「プレイヤ制御モジュール 2 1 2」
プレイヤ制御モジュール 2 1 2は、 ディスク 1 0 1に記録されてい るメタデータ等を参照し、 コンテンツの再生に関する制御を行う。 即 ち、 プレイヤ制御モジュール 2 1 2は、 例えば、 ディスク 1 0 1に記 録されている、 後述する P l ayL i s t Oや C l i p Oを解析し、 その解析結果 にしたがって、 コンテンツデータ供給モジュール 2 1 3や、 デコード 制御モジュール 2 1 4、 バッファ制御モジュール 2 1 5を制御する。 また、 プレイヤ制御モジュール 2 1 2は、 スクリプト制御モジュール 2 1 1や入カインターフェ一ス 1 1 5からの指示にしたがい、 再生対 象のストリームを切り替える、 後述するストリーム切り替え等の制御 を行う。 さらに、 プレイヤ制御モジュール 2 1 2は、 デコード制御モ ジュール 2 1 4から時刻を取得し、 時刻表示や、 後述するマーク (Ma rk O ) の処理等を行う。
「コンテンツデータ供給モジュ一ル 2 1 3 J
コンテンツデータ供給モジュール 2 1 3は、 プレイヤ制御モジュ''一 ル 2 1 2の制御にしたがい、 あるい ('ま、 バッファ制御モジュール 2 1 5に蓄積されたデ一夕の量に基づき、 ディスク 1 0 1からのコンテン ッのデ一夕やメタデ一夕等の読み出しを、 オペレーティングシステム 2 0 1に要求する。
なお、 オペレーティングシステム 2 0 1力 コンテンツデ一タ供給 モジュール 2 1 3からの要求に応じてディスク 1 0 1から読み出した メタデータ等は、 必要なモジュールに供給される。 また、 オペレ一テ ィングシステム 2 0 1が、 コンテンツデ一夕供給モジュール 2 1 3か らの要求に応じてディスク 1 0 1から読み出したコンテンツのデ一夕 は、 バッファ制御モジュール 2 1 5に供給される。
「デコ一ド制御モジュール 2 1 4」
デコ一ド制御モジュール 2 1 4は、 プレイヤ制御モジュール 2 1 2 からの制御にしたがい、 ビデオデコーダ制御モジュ一ル 2 1 6、 ォー ディォデコーダ制御モジュール 2 1 7、 および字幕デコーダ制御モジ ユール 2 1 8の動作を制御する。 また、 デコード制御モジュール 2 1 4は、 時刻を計時する計時部 2 1 4 Aを内蔵し、 ビデオデコーダ制御 モジュール 2 1 6の制御によって出力されるビデオデータの出力と、 そのビデオデ一夕と同期して出力されるべきデ一夕 (出力デ一夕) の 出力、 即ち、 ここでは、 オーディオデコーダ制御モジュール 2 1 7の 制御によって出力されるオーディォデ一夕の出力との同期を管理する 計時部 2 1 4 Aは、 外部から供給された基準クロックあるいは、 デ コ一ダ等に同期する内部クロックを計数することにより自律的に計時 するようにしてもよい。
しかしながら、 第 2図 Aおよび第 2図 Bで示される各種のモジュし ルを制御することにより実現される、 ソフトウエアベースのデコーダ では、 これらの処理とは別に、 独立した計時処理をソフトウェアによ り実行させることは、 CPU 1 1 2の処理負荷を増大させることになる 。 このため、 計時部 2 1 4 Aは、 デコーダからのビデオデータの出力 に応じて時刻を更新するという方式が求められている。
第 3図は、 計時部 2 1 4 Aが独立した時計を示す場合の時刻と実際 の時間経過の関係を図に示している。 第 3図においては、 計時部 2 1 4 Aは 90kHzのクロックでカウントアップするので、 時刻 0から右上が りの直線で増加し、 時刻 33. 3ミリ秒の瞬間に時計が示す時刻は 3003と なっている。
第 4図は、 計時部 2 1 4 Aがビデオデコーダのビデオデータの出力 に応じて時刻を更新する時計を示す場合の時刻の一例を示している。 第 4図の場合、 時刻は、 例えば、 33. 3ミリ秒が経過すると時計の出力 時刻が 3003に更新され、 83. 3ミリ秒が経過すると出力時刻は 7507に更 新され、 また、 1 1 6ミリ秒が経過すると出力時刻は 1 051 0に更新される 。 ここで、 1フレームの出力時間は、 1 6. 66ミリ秒である。
尚、 第 3図においては、 実際には l /90kHzの分解能であらわされる 階段状に時刻が推移することになるが、 第 4図との対比のため、 第 3 図では直線で表現されている。 また、 以降においては、 計時部 2 1 4 Aは、 第 4図を参照して説明した、 ビデオデータの出力に応じて時刻 を更新するという方式であるものとして説明する。
「バッファ制御モジユール 2 1 5」
バッファ制御モジュール 2 1 5は、 第 1図のメモリ 1 1 3の記憶領 域の一部であるバッファ 2 1 5 Aを内蔵しており、 そのバッファ 2 1 5 Aに、 コンテンツデ一夕供給モジュール 2 1 3がオペレーティング システム 2 0 1に要求を行うことによってディスク 1 0 1から読み出 されたコンテンツのデ一夕を一時記憶する。
また、 バッファ制御モジュール 2 1 5は、 ビデオデコーダ制御モジ ユール 2 1 6、 オーディオデコーダ制御モジュール 2 1 7、 または字 幕デコーダ制御モジュール 2 1 8の要求にしたがって、 バッファ 2 1 5 A.に記憶されたデ一夕を、 ビデオデコーダ制御モジュール 2 1 6、 オーディオデコーダ制御モジュール 2 1 7、 または字幕デコーダ制御 モジュール 2 1 8に供給する。
即ち、 バッファ制御モジュール 2 1 5は、 後述する第 5図で説明す るビデオ読み出し機能部 2 3 3、 オーディオ読み出し機能部 2 3 4、 および字幕読み出し機能部 2 3 5を内蔵している。 そして、 バッファ 制御モジュール 2 1 5は、 ビデオデコーダ制御モジュール 2 1 6力、ら のデ一夕の要求を、 ビデオ読み出し機能部 2 3 3で処理することによ り、 バッファ 2 1 5 Aに記憶されたデータを、 ビデオデコーダ制御モ ジュール 2 1 6に供給する。 同様に、 バッファ制御モジュール 2 1 5 は、 オーディオデコーダ制御モジュール.2 1 7からのデータの要求を 、 オーディオ読み出し機能部 2 3 4で処理することにより、 バッファ 2 1 5 Aに記憶されたデータを、 オーディオデコーダ制御モジュール 2 1 7に供給するとともに、 字幕デコーダ制御モジュール 2 1 8から のデ一夕の要求を、 字幕読み出し機能部 2 3 5で処理することにより 、 バッファ 2 1 5 Aに記憶されたデ一夕を、 字幕デコーダ制御モジュ —ル 2 1 8に供給する。
「ビデオデコーダ制御モジュール 2 1 6」
ビデオデコーダ制御モジュール 2 1 6は、 バッファ制御モジュール 2 1 5内のビデオ読み出し機能部 2 3 3 (第 5図) を操作して、 ビデ ォデ一夕を符号化したデ一夕 (ビデオ符号化データ) を、 ビデオァク セスュニット単位で、 ノ ッファ制御モジュール 2 1 5のバッファ 2 1 5 Aから読み出し、 第 1図のビデオデコーダ 1 1 6に供給する。 また 、 ビデオデコーダ制御モジュール 2 1 6は、 ビデオデコ一ダ 1 1 6を 制御し、 ビデオアクセスユニット単位のデータをデコードさせる。 さ らに、 ビデオデコーダ制御モジュール 2 1 6は、 ビデオデコーダ 1 1 6でのデコードの結果得られるビデオデータを、 グラフィクス処理モ ジュール 2 1 9に供給する。
ここで、 ビデオアクセスユニットとは、 例えば、 ビデオデ一夕の 1 ピクチャ ( 1フレームまたは 1フィールド) 分である。
「オーディオデコーダ制御モジュール 2 1 7」
オーディオデコーダ制御モジュール 2 1 7は、 バッファ制御モジュ ール 2 1 5内のオーディオ読み出し機能部 2 3 4 (第 5図) を操作し て、 ォ一ディォデ一夕を符号化したデ一夕 (オーディオ 号化データ ) を、 オーディオアクセスユニット単位で、 バッファ制御モジュール 2 1 5のバッファ 2 1 5 Aから読み出し、 第 1図のォ一ディォデコ一 ダ 1 1 7に供給する。 また、 オーディオ.デコーダ制御モジュール 2 1 7は、 オーディオデコーダ 1 1 7を制御し、 オーディオアクセスュニ ット単位のデータをデコードさせる。 さらに、 オーディオデコーダ制 御モジュール 2 1 7は、 オーディオデコーダ 1 1 7でのデコードの結 果得られるオーディォデ一夕を、 オーディォ出力モジュール 2 2 1に 供給する。
ここで、 オーディオアクセスユニットとは、 オーディオデータの所 定のデ一夕量分 (例えば、 1ピクチャに同期して出力される分) であ る。 本実施の形態では、 オーディオアクセスユニットは、 例えば、 既 知の固定長であるとする。 「字幕デコーダ制御モジュール 2 1 8」
字幕デコーダ制御モジュール 2 1 8は、 バッファ制御モジュール 2 1 5内の字幕読み出し機能部 2 3 5 (第 5図) を操作して、 字幕デ''一 夕を符号化したデータ (字幕符号化デ一夕) を、 字幕アクセスュニッ ト単位で、 バッファ制御モジュール 2 1 5のバッファ 2 1 5 Aから読 み出す。 また、 字幕デコーダ制御モジュール 2 1 8は、 内部に、 図示 せぬ字幕デコ一ドソフトウエアを備えており、 バッファ 2 1 5 Aから 読み出したデータをデコードする。 さらに、 字幕デコーダ制御モジュ —ル 2 1 8は、 そのデコードの結果得られる字幕データ (字幕の画像 デ一夕) を、 グラフィクス処理モジュール 2 1 9に供給する。
ここで、 字幕アクセスユニッ トとは、 字幕データの所定のデ一夕量 分 (例えば、 1 ピクチャに同期して出力される分) である。 本実施の 形態では、 字幕アクセスユニッ トのサイズは、 例えば、 その字幕ァク セスュニッ 卜の先頭に記述されていることとする。
「グラフィクス処理モジュール 2 1 9」
グラフィクス処理モジュール 2 1 9は、 プレイヤ制御モジュール 2 1 2の指示にしたがい、 字幕デコーダ制御モジュール 2 1 8からの字 幕データの拡大や縮小を行い、 ビデオデコーダ制御モジュール 2 1 6 からのビデオデータに字幕デ一夕を重ね合わせる。 さらに、 グラフィ クス処理モジュール 2 1 9は、 字幕データと重ね合わせた後のビデオ データの画枠を、 第 1図のビデオ出力端子 1 2 0に接続されたビデオ 出力装置の表示画面にあわせるための拡大または縮小等を行い、 その 結果得られるビデオデータを、 ビデオ出力モジュール 2 2 0に出力す る。
また、 グラフィクス処理モジュール 2 1 9は、 スクリプト制御モジ ユール 2 1 1やプレイヤ制御モジュール 2 1 2の指示に従い、 メニュ —ゃメッセージ等を生成し、 出力ビデオデータにオーバ一レイする。 さらに、 グラフィクス処理モジュール 2 1 9は、 第 1図のビデオ'出 力端子 1 2 0に接続されたビデオ出力装置のァスぺク ト比と、 デ^ス ク 1 0 1に記録されたビデオデ一夕のァスぺク ト比を指示する情報等 とに基づいて、 ビデオ出力モジュール 2 2 0に出力するビデオデータ のァスぺク ト比の変換を行う。
即ち、 例えば、 ビデオ出力装置のアスペク ト比が 1 6 : 9である場合に おいて、 ビデオデ一夕のァスぺク ト比を指示する情報が 4 : 3のァスぺ ク ト比を表しているときには、 グラフィクス処理モジュール 2 1 9は 、 ビデオ出力モジュール 2 2 0に出力するビデオデ一夕を、 横方向 ( 水平方向) に縮小させるスクイーズ処理をし、 左右に黒色を表示させ るデ一夕を入れて出力する。 また、 例えば、 ビデオ出力装置のァスぺ ク 卜比が 4 : 3である場合において、 ビデオデータのァスぺク ト比を指 示する情報が 1 6 : 9のァスぺク ト比を表しているときには、 グラフイク ス処理モジュール 2 1 9は、 ビデオ出力モジュール 2 2 0に出力する ビデオデ一夕を、 縦方向 (垂直方向) にスクイ一ズ処理し、 上下に黒 色を表示させるデータを入れて出力する。
なお、 ビデオ出力装置のアスペク ト比と、 ビデオデータのァスぺク ト比を指示する情報が表すアスペク ト比とが、 いずれも、 4 : 3や 1 6 : 9 で、 同一である場合、 グラフィクス処理モジュール 2 1 9は、 ビデオ 出力モジュール 2 2 0に出力するビデオデータを、 スクイーズ処理す ることなく、 そのまま出力する。
その他、 グラフィクス処理モジュール 2 1 9は、 例えば、 プレイヤ 制御モジュール 2 1 2からの要求に応じて、 現在処理中のビデオデ一 夕をキヤプチヤする。 さらに、 グラフィクス処理モジュ一ル 2 1 9は 、 そのキヤプチヤしたビデオデ一夕を記憶し、 あるいは、 プレイヤ制 P T/JP2005/021070 御モジュール 2 1 2に供給する。
「ビデオ出力モジュール 2 2 0」
ビデオ出力モジュール 22 0は、 第 1図のメモリ 1 1 3の一部を'排 他的に占有して FIFO (First In First Out)のバッファ 2 2 O Aとして 使用し、 グラフィクス処理モジュール 2 1 9からのビデオデータを一 時的に記憶し、 また、 そのバッファ 2 2 O Aに記憶されたビデオデー タを適宜読み出して、 ビデオ出力端子 1 2 0 (第 1図) に出力する。
「オーディオ出力モジュ一ル 2 2 1」
ォ一ディォ出力モジュール 2 2 1は、 第 1図のメモリ 1 1 3の一部 を排他的に占有して FIFOのバッファ 2 2 1 Aとして使用し、 オーディ ォデコーダ制御モジュール 2 1 7 (ォ一ディォデコーダ 1 1 7) から のオーディオデ一夕を一時的に記憶し、 また、 そのバッファ 2 2 1 A に記憶されたオーディォデ一夕を適宜読み出して、 オーディォ出力端 子 1 2 1 (第 1図) に出力する。
さらに、 オーディオ出力モジュール 2 2 1は、 オーディオデコーダ 制御モジュール 2 1 7からのオーディオデータが、 左チャネルが 「主 音声」 のォ—ディォデ一夕で、 右チャネルの 「副音声」 のオーディオ データであるデュアル(Dual) (ニケ国語) モードのオーディオデータ である場合、 あらかじめ指定された音声出力モードに従って、 オーデ ィォデコーダ制御モジュール 2 1 7からのオーディオデータを、 ォ一 ディォ出力端子 1 2 1に出力する。
即ち、 音声出力モードとして、 例えば、 「主音声」 が指定されてい るときには、 オーディオ出力モジュール 2 2 1は、 オーディオデコ一 ダ制御モジュール 2 1 7からのオーディオデータのうちの左チャネル のオーディオデータを、 右チャネルのオーディオデータとしてコピー し、 その左チャネルと右チャネルのオーディオデータ ( 「主音声」 の オーディオデータ) を、 オーディオ出力端子 1 2 1に出力する。 また 、 音声出力モードとして、 「副音声」 が指定されているときには ォ —ディォ出力モジュール 2 2 1は、 オーディオデコーダ制御モジュ '一 ル 2 1 7からのオーディオデータのうちの右チャネルのオーディオデ —夕を、 左チャネルのオーディオデータとしてコピーし、 その左チヤ ネルと右チャネルのォ一ディォデ一夕 ( 「副音声」 のオーディオデー 夕) .を、 オーディオ出力端子 1 2 1に出力する。 さらに、 音声出力モ —ドとして、 「主 '副」 が指定されているときには、 ォ一ディォ出力 モジュール 2 2 1は、 オーディオデコーダ制御モジュール 2 1 7から のオーディオデータを、 そのまま、 オーディオ出力端子 1 2 1に出力 する。
なお、 オーディオデコーダ制御モジュール 2 1 7からのオーディオ データが、 ステレオ(S t e reo)モードのオーディォデ一夕である場合、 オーディオ出力モジュール 2 2 1は、 音声出力モードの指定にかかわ らず、 ォ一ディォデコーダ制御モジュール 2 1 7からのオーディオデ 一夕を、 そのまま、 オーディオ出力端子 1 2 1に出力する。
ここで、 音声出力モードの指定は、 例.えば、 ビデオコンテンツ再生 プログラム 2 1 0が生成するメニューが表示された画面等において、 ユーザがリモコン等を操作することにより対話的に行うことができる 。
[バッファ制御モジュール 2 1 5の構成]
次に、 第 5図は、 第 2図 Aおよび第 2図 Bのバッファ制御モジュ一 ル 2 1 5の構成例を示している。
ノ ッファ制御モジユール 2 1 5は、 第 1図のメモリ 1 1 3の一部を 、 バッファ 2 1 5 Aとして排他的に使用し、 そのバッファ 2 1 5 Aに 、 ディスク 1 0 1から読み出されたデータを一時記憶させる。 また、 バッファ制御モジュール 2 1 5は、 バッファ 2 1 5 Aに記憶されたデ 一夕を読み出して、 第 2図 Aおよび第 2図 Bのビデオデコーダ制御モ ジュール 2 1 6、 オーディオデコーダ制御モジュール 2 1 7、 また ^は 字幕デコーダ制御モジュール 2 1 8に供給する。
即ち、 バッファ制御モジュ一ル 2 1 5は、 ノ ッファ 2 1 5 Aの他、 メモリ 1 1 3の一部であるデータ先頭ボイン夕記憶部 2 3 1、 および データ書き込みボイン夕記憶部 2 3 2を有するとともに、 内部モジュ ールとして、 ビデオ読み出し機能部 2 3 3、 オーディオ読み出し機能 部 2 3 4、 字幕読み出し機能部 2 3 5を有する。
バッファ 2 1 5 Aは、 例えば、 リングバッファであり、 ディスク 1 0 1から読み出されたデ一夕を順次記憶し、 その記憶容量分のデータ を記憶した後は、 最も古いデ一夕に上書きする形で、 最新のデータを 、 いわば無限ループ状に記憶していく。
データ先頭ポインタ記憶部 2 3 1は、 バッファ 2 1 5 Aに記憶され たデータのうち、 まだ、 バッファ 2 1 5 Aから読み出されていない最 も古いデータが記憶されている位置 (アドレス) を指すデータ先頭ポ イン夕を記憶する。 .
デ一夕書き込みボインタ記憶部 2 3 2は、 ディスク 1 0 1から読み 出された最新のデ一夕が書き込まれるバッファ 2 1 5 Aの位置 (アド レス) を指す書き込みポインタを記憶する。
ここで、 デ一夕書き込みポインタが指す位置は、 バッファ 2 1 5 A に、 ディスク 1 0 1から読み出されたデ一夕が記憶されるごとに、 図 中、 右回り (時計回り) に更新されていき、 データ先頭ポインタが指 す位置は、 バッファ 2 1 5 Aからのデータの読み出しに応じて、 図中 、 右回りに更新されていく。 したがって、 バッファ 2 1 5 Aに記憶さ れたデ一夕のうち、 いわば有効なデータは、 デ一夕先頭ポインタが指 す位置から、 右回りに、 データ書き込みポインタが指す位置までに記 憶されているデ一夕である。
ビデオ読み出し機能部 2 3 3は、 第 2図 Aおよび第 2図 Bのビデオ デコ一ダ制御モジュール 2 1 6からの要求に応じて、 ノ ッファ 2 1 5 Aからビデオストリーム (ビデオデータに関するエレメンタリストリ ーム) を読み出し、 ビデオデコーダ制御モジュール 2 1 6に供給する 。 ォ,一ディォ読み出し機能部 2 3 4も、 第 2図 Aおよび第 2図 Bのォ —ディォデコーダ制御モジュール 2 1 7からの要求に応じて、 バッフ ァ 2 1 5 Aからオーディォストリーム (オーディォデ一夕に関するェ レメンタリストリーム) を読み出し、 オーディオデコーダ制御モジュ —ル 2 1 7に供給する。 字幕読み出し機能部 2 3 5も、 第 2図 Aおよ び第 2図 Bの字幕デコーダ制御モジュール 2 1 8からの要求に応じて 、 バッファ 2 1 5 Aから字幕ストリーム (字幕データに関するエレメ ンタリストリ一ム) を読み出し、 字幕デコーダ制御モジュール 2 1 8 に供給する。
即ち、 ディスク 1 0 1には、 例えば、 MPEG (Mov i ng P i c t u re Expe r t, s Group) 2の規格に準拠したプログラムストリーム (MPEG2- Sys t em P r ogram S t r eam) が記録されており、 バッファ 2 1 5 Aには、 ディスク 1 0 1から読み出されたプログラムストリームが記憶される。 このプ ログラムストリームは、 ビデオストリームや、 オーディオストリーム 、 字幕ストリーム等の 1以上のエレメンタリストリームが時分割多重 されている。 ビデオ読み出し機能部 2 3 3は、 プログラムストリーム のデマルチプレクスの機能を有し、 バッファ 2 1 5 Aに記憶されたプ ログラムストリームから、 ビデオストリームを分離して読み出す。 同様に、 オーディオ読み出し機能部 2 3 4も、 プログラムストリー ムのデマルチプレクスの機能を有し、 バッファ 2 1 5 Aに記憶された プログラムストリームから、 オーディォストリームを分離して読み出 す。 字幕読み出し機能部 2 3 5も、 プログラムストリームのデマ チ プレクスの機能を有し、 バッファ 2 1 5 Aに記憶されたプログラム''ス トリ一ムから、 字幕ストリームを分 して読み出す。
ここで、 ビデオ読み出し機能部 2 3 3は、 第 1図のメモリ 1 1 3の 一部であるビデオ読み出しボイン夕記憶部 2 4 1、 stream— idレジス 夕 2.4 2、 ぉょび&11_11^0^^ 011()レジスタ 24 3を有している。 ビデオ読み出しポインタ記憶部 2 4 1は、 バッファ 2 1 5 Aの、 ビ デォストリームが記憶された位置 (アドレス) を指すビデオ読み出し ポインタを記憶し、 ビデオ読み出し機能部 2 3 3は、 バッファ 2 1 5 Aの、 ビデオ読み出しポインタが指す位置に記憶されているデ一夕を 、 ビデオストリームとして読み出す。 stream— idレジスタ 2 4 2は、 バッファ 2 1 5 Aに記憶されたプログラムストリームを解析し、 その プログラムストリームの中から読み出すビデオストリームを特定する ための後述する stream_idを記憶する。 au— information 0レジス夕 2 4 3は、 バッファ 2 1 5 Aからビデオストリームを読み出すために必 要なデ一夕である後述する au_informationOを記憶する。
オーディオ読み出し機能部 2 34は、 第 1図のメモリ 1 1 3の一部 であるオーディォ読み出しボイン夕記憶部 2 5 1、 stream— idレジス 夕 2 5 2、 および private_s earn— idレジス夕 2 5 3を有している。 オーディォ読み出しボイン夕記憶部 2 5 1は、 バッファ 2 1 5 Aの 、 オーディオストリームが記憶された位置 (アドレス) を指すオーデ ィォ読み出しポインタを記憶し、 オーディオ読み出し機能部 2 34は 、 バッファ 2 1 5 Aの、 オーディオ読み出しポインタが指す位置に記 憶されているデータを、 オーディオストリームとして読み出す。 stre am— idレジス夕 2 5 2と private stream idレジス夕 2 5 3は、 バッフ ァ 2 1 5 Aに記憶されたプログラムストリームを解析し、 そのプログ ラムストリームの中から読み出すオーディォストリームを識別する こ めの後述する st ream— idと private— stream— idを、 それぞれ記憶する 字幕読み出し機能部 2 3 5は、 第 1図のメモリ 1 1 3の一部である 字幕読み出し機能フラグ記憶部 2 6 1、 字幕読み出しポインタ記憶部
2 6 2、 stream— idレジスタ 2 6 3、 および private— stream_idレジス 夕 2 ,64を有している。
字幕読み出し機能フラグ記憶部 2 6 1は、 字幕読み出し機能フラグ を記憶する。 字幕読み出し機能フラグ記憶部 2 6 1に記憶された字幕 読み出し機能フラグが、 例えば 0である場合、 字幕読み出し機能部 2
3 5は機能動作せず、 字幕読み出し機能フラグ記憶部 2 6 1に記憶さ れた字幕読み出し機能フラグが、 例えば 1である場合、 字幕読み出し 機能部 2 3 5は機能する。
字幕読み出しボイン夕記憶部 2 6 2は、 バッファ 2 1 5 Aの、 字幕 ストリームが記憶された位置 (アドレス) を指す字幕読み出しポイン 夕を記憶し、 字幕読み出し機能部 2 3 5は、 ノ ッファ 2 1 5 Aの、 字 幕読み出しボイン夕が指す位置に記憶されているデータを、 字幕スト リームとして読み出す。 stream— idレジス夕 2 6 3と private— stream— idレジスタ 2 64は、 ノ ッファ 2 1 5 Aに記憶されたプログラムスト リームを解析し、 そのプログラムストリームの中から読み出す字幕ス トリームを識別するための後述する st ream— idと private_st ream一 idを 、 それぞれ記憶する。
[ディスク 1 0 1に記録されたデータのデ一夕フォーマツトの説明
]
次に、 ディスク 1 0 1に記録されたデータのデータフォーマッ トに ついて説明する。 第 6図は、 ディスク 1 0 1のディ レク トリ構造を模式的に示してい る。
ディスク 1 0 1のファイルシステムとしては、 例えば、 ISO(Inte'rn at ional Organization for S tandard i zat i on) - 9660や、 UDF (Universa 1 Disk Formaし 'http:/ vww. osta. org/specs/)などで規定されたファ ィルシステムが用いられており、 ディスク 1 0 1に記録されたデータ のファイルはディ レク トリ構造により階層的に管理されている。 ここ で、 ファイルシステムは、 上述したファイルシステムに限定されるも のではない。
第 6図では、 ファイルシステムの基点を示すルート(root)ディ レク トリに、 "VIDEO"ディ レク トリが置かれ、 "VIDEO"ディ レク トリには、 " CLIP"ディ レク トリと、 " STREAM"ディ レク トリとの 2つのディ レク ト リが置かれている。
"VIDEO"ディ レク トリには、 "CLIP"ディ レク トリと" STREAM"ディ レ ク トリとの 2つのディ レク トリの他に、 "SCRIPT.DAT"ファイルと、 "P LAYLIST.DAT"ファイルの 2つのデータファイルが置かれている。
"SCRIPT.DAT"ファイルは、 スクリブトプログラムが記述されたスク リプトファイルである。 即ち、 "SCRIPT.DAT"ファイルには、 ディスク 1 0 1の再生形態をィン夕ラクティプなものとするために使用するス クリプトプログラムが記述されている。 この" SCRIPT.DAT"ファイルに 記述されたスクリプトプログラムは、 第 2図 Aおよび第 2図 Bのスク リブ卜制御モジュール 2 1 1によって解釈、 実行される。
"PLAYLIST.DAT"ファイルには、 ディスク 1 0 1に記録されたビデオ データ等のコンテンツの再生手順が記述されたプレイリスト (後述す る第 7図の PlayList ()) が 1以上格納されている。
"CLIP"ディ レク トリには、 1以上のクリップ情報ファイルが置かれ 、 " STREAM"ディ レク トリには、 1以上のクリップストリームファイル が置かれる。 即ち、 第 6図では、 " CL IP"ディ レク トリには、 3つのク リップ情報ファイル" 00001 . CLP" , " 00002. CLP" , " 00003. CLP",が置か れており、 " STREAM"ディ レク トリには、 3つのクリッブストリ一ムフ アイル" 00001 . PS" , " 00002. PS" , " 00003. PS"が置かれている。
クリップストリームファイルには、 ビデオデータ、 オーディオデ一 夕、 字幕データなどのデータを圧縮、 符号化して得られる 1以上のェ レメン夕リストリームを時分割多重化したプログラムストリ一ムが格 納されている。
クリツプ情報ファイルには、 対応するクリッブストリ一ムファイル の性質等の、 クリップストリ一ムに関するメタデータが記述されてい る。
即ち、 クリップストリームファイルとクリップ情報ファイルとは、
1対 1に対応している。 第 6図では、 クリップストリームファイルに は、 5文字の数字 +ピリオド + " PS"という命名規則にしたがって、 フ アイル名が付されており、 クリップ情報ファイルには、 対応するクリ ッブストリ一ムファイルと同一の 5文字の数字 +ピリォド + " CLP"とい う命名規則にしたがって、 ファイル名が付されている。
従って、 ファイルが、 クリップストリームファイルまたはクリップ 情報ファイルのうちのいずれであるかは、 ファイル名の拡張子 (ピリ ォドより右側の部分) によって識別することができ、 さらに、 対応す るクリップストリームファイルとクリップ情報フアイルとは、 フアイ ル名の拡張子以外の部分 (ピリオドより左側の部分) がー致するかど うかによって識別することができる。
以下、 ディスク 1 0 1に記録された各ファイルの詳細について説明 する。 · rPLAYLIST.DAT J
第 7図は、 第 6図の" VIDEO"ディレク トリ下の" PLAYLIST.DAT" ァ ィルの内部構造 (シンタクス(syntax)) を示している。 ' ここで、 第 7図において、 "シンタクス (Syntax) "の欄の記載がデ 一夕構造を表し、 "ビッ ト数 (No. of bits) "の欄の記載は、 対応す る行の "シンタクス"の欄のデータのビッ ト長を表す。 さらに、 "二一 モニック (Mnemonic) "の欄の記載のうちの" bs lbf" (b i t string left bit first)は、 対応する行の"シンタクス"の欄のデータが左のビッ トから送り出されることを意味し、 "uimsbf" (unsigned integer most significant bit first)は、 対応する行の "シンタクス"の欄のデ一 夕が、 符号なし整数値であり、 最上位ビットから送り出されることを 意味する。 以下説明する、 第 7図と同様の図についても、 同様である
"PLAYLIST.DAT"ファイルにおいては、 その先頭から、 その名称 (フ アイル名) 等の情報を記述するための name— length (8ビット) と name —string (255バイ ト) が順次配置される。
即ち、 name— lengthは、 その後に配置される name— stringのサイズを 、 バイ ト数で表す。 name— s ingは、 " PLAYLIST. DAT"ファイルの名称 (ファイル名) を表す。
なお、 name— stringについては、 その先頭から、 name— lengthで表さ れるバイ ト数までが有効な名称として使用される。 たとえば name_len gthが値 10である場合には、 name— stringの先頭から 10バイト分が有効 な名称として解釈される。
name— stringの後には、 number— οし P yLists (16ビット) が配置さ れる。 number_oし PUyListsは、 続く PlayList 0の個数を表す。 numbe r of PlayListsの後に、 その number of ?1& 315の数だけの?1& 3 t()が配置される。
PlayListOは、 ディスク 1 0 1に記録されたクリップストリーム 3フ アイルの再生手順が記述されたプレイリストであり、 以下のような'内 部構造を有する。
即ち、 PlayListOの先頭には、 PlayList_data_length (32ビット) が配置される。 PlayList— data_lengthは、 その PlayList 0のサイズを 表す.。
PlayList— data— lengthの後には、 reserved_for_word_al ignment ( 1 5ビット) と capture— enable— flag— PlayList (1ビット) が順次配置さ れる。 15ビッ トの reserved_for— word— al ignmentは、 その後に配置さ れる 1ビットの capture_enable— flag— PlayListの位置で、 1 6ビッ ト の位置に揃えるために配置される。 capture一 enable—flag一 PlayListは 、 PlayListOによって再生されるビデオストリームに対応するビデオ データ (PlayList 0に属するビデオデ一夕) の、 ディスク 1 0 1が再 生される第 1図のディスク再生装置内での 2次利用を許可するか否か を表す 1ビットのフラグである。 capture— enable— flag_PlayListが、 0または 1のうちの、 例えば 1である場合、 PlayList 0に属するビデ ォデ一夕の 2次利用が許可されていることを表し、 capture— enable— f lag— PlayListが、 0または 1のうちの、 例えば 0である場合、 PlayLi st ()に属するビデオデータの 2次利用が許可されていないことを表す なお、 第 7図では、 capture_enable— ag— PlayListを 1ビットとし たが、 その他、 capture— enable_flag_PlayListは、 複数ビッ卜で構成 し、 PlayListOに属するビデオデータの 2次利用を、 いわば段階的に 許可するようにすることが可能である。 即ち、 capture—enable— flag— PlayListは、 例えば、 2ビッ トで構成することができる。 そして、 ca pture— enable— flag_PlayListの値が 00B (Bは、 その前の数字が 2進数 であることを表す) である場合には、 ビデオデータの 2次利用を^止 し、 capture_enable— f lag— PlayListの値が 01Bである場合には、 ビデ ォデ一夕を、 64X64ピクセル以下のサイズに縮小して利用する 2次利 用のみを許可することができる。 また、 capture— enable— flag— PlayLi stの値が 10Bである場合には、 サイズの制限なしで、 ビデオデータの 2次利用を許可することができる。
さらに、 上述のように、 ビデオデータの 2次利用にあたって、 サイ ズに制限を設けるのではなく、 用途に制限を設けるようにすることも 可能である。 即ち、 capture_enable— flag— P yListの値が 01Bである 場合には、 ビデオコンテンツ再生プログラム 2 1 0 (第 2図 Aおよび 第 2図 B) のみでの 2次利用を許可し、 capture— enable_f lag— PlayLi stの値が 10Bである場合には、 第 1図のディスク再生装置内の、 ビデ ォコンテンッ再生プログラム 2 1 0を含む任意のアプリケーションに よる 2次利用を許可することができる。 ここで、 第 1図のディスク再 生装置内のビデオコンテンツ再生プログラム 2 1 0以外のアプリケー シヨンとしては、 例えば、 壁紙ゃスクリ.一ンセ一バの表示の処理を行 うアプリケーションなどがある。
なお、 capture— enable_nag—PlayListを、 上述のように、 2ビット とした場合、 その前に配置される reserved— for— word_al ignmentは、 ワードァラインをとるために、 1 4ビットとなる。
また、 capture— enable— flag— PlayListにより、 ビテオデ一夕のディ スク再生装置内での 2次利用を許可する他、 ディスク再生装置外での 2次利用を許可するようにすることも可能である。 ここで、 ビデオデ —夕の、 ディスク再生装置外での 2次利用を許可する場合には、 ビデ ォデ一夕は、 例えば、 ディスク再生装置に着脱可能な記録媒体やディ スク再生装置に接続可能な他の装置に着脱可能な記録媒体に記録され 、 あるいはインターネット等のネッ トヮ一クを介して、 他の装置 送 信される。 この場合、 ビデオデータには、 そのビデオデ一夕を記録媒 体に記録する回数や配信する回数を制限する情報を付加するようにす ることができる。
capture_enable_f 1 ag_P 1 ayL i s tに続レ て【ま、 PI ayL i s t— name— 1 eng t h (8ビット) と PlayList— name—string (255バイ ト) とが順次配置され る。 PlayList— name_lengthは、 その後に配置される PlayList— name— st ringのサイズを、 バイ ト数で表し、 PlayLisし name— stringは、 PUyLi st()の名称を表す。
PlayList— name— stringの後には、 number— of— PI ay 11 ems (16ヒッ卜 ) が配置される。 nuniber_of— Playl temsは、 続く Playl tem()の個数を 表す。
number— 0し Playl temsの後には、 その number— of—P yl temsの数だけ の PlayltemOの構造が記述される。
ここで、 1つの PlayList 0では、 PlayltemO単位で、 コンテンツの 再生手順を記述することができる。 .
また、 PlayList 0の中の、 number— of_PlayI temsの数だけの Playl te m 0それぞれに対しては、 その P 1 ayL i s t 0の中でユニークな ID (Ident i f ication)が付される。 即ち、 PI ayL i s t 0中の最初の P 1 ayl tem 0には 、 IDとして 0番が付され、 以下、 続く PlayltemOに対して、 その出現 順に、 1番、 2番、 · · · と通し番号の IDが付される。
number— of— Playl temsの数だけの PlayltemOの後には、 1つの PlayL istMarkOが配置される。 PlayLis tMarkOは、 PlayList 0にしたがつ て行われる再生の時間軸上の印となる後述する MarkOの集合で、 その 詳細については、 第 9図を参照して後述する。 rpiayltemOの説明」
次に、 第 8図は、 第 7図の PlayListOに含まれる PlayltemOの内1部 構造を示している。 1 PlayltemOの先頭には、 length (16ビット) が配置され、 lengthは 、 それを含む PlayltemOのサイズを表す。
lengthに続レ ては、 CI ip_Inf ormat i on_f i le_name_ length (16ヒッ ト) と Clip— Information— file— name (可変長) が順次配置される。 C1 ip— Information— file— name— lengthは、 その後に配置される CI ip— Info rmation— nie_nameのサイズを、 バイ ト数で表す。 CI ip— Inf ormati on— file— nameは、 Playl temOによって再生するクリップストリームファ ィル (第 6図の拡張子が PSのファイル) に対応するクリップ情報ファ ィル (第 6図の拡張子が CLPのファイル) のファイル名を表す。 なお 、 クリップストリームフアイルおよびクリップ情報ファイルのフアイ ル名の、 上述した命名規則により、 Clip— Iiiformation_nie_nameから 、 PlayltemOによって再生するクリップ情報ファイルのファイル名を 認識し、 そのクリッブス卜リ一ムファイルを特定することができる。
Clip—Information— file— nameに続いては、 IN— time (32ビット) と 0 UT—time (32ビット) が順次配置される。
IN— timeと OUT— timeは、 それぞれ、 CI ip_Inf ormat ion— Π le_nameか ら特定されるクリッブストリ一ムファイルの再生開始位置と再生終了 位置を指定する時刻情報である。
lit imeによれば、 クリップストリームフアイルの先頭を含む中の 位置を再生開始位置として指定することができ、 OUTJimeによれば、 クリップストリ一ムファイルの最後を含む途中の位置を再生終了位置 として指定することができる。
ここで、 PlayltemOによれば、 Clip Information file— nameから特 定されるクリッブストリ一ムフアイルの、 IN_timeから OUTJimeまで の間のコンテンツが再生される。 この Play Item 0によって再生さ る コンテンツを、 以下、 適宜、 クリップという。 ' 「PlayListMark()の説明」
次に、 第 9図は、 第 7図の PlayList 0に含まれる PlayListMarkOの 内部構造を示している。
PlayListMarkOは、 上述したように、 その PlayListMarkOを含む P1 ayListO (第 7図) にしたがって行われる再生の時間軸上の印となる 、 0以上の MarkOの集合である。 31つの MarkOは、 PlayList 0にした
6
がって行われる再生の時間軸上の 1つの時刻を表す時刻情報、 MarkO のタイプを表すタイプ情報、 およびタイプ情報がイベントを発生させ るタイプを表しているときの、 そのイベントの引数となる引数情報を 、 少なくとも有する。
即ち、 PlayListMarkOの先頭には、 length (32ビット) が配置され る。 lengthは、 それを含む PlayLis tMarkOのサイズを表す。
lengthの後には、 number— 0し PlayList_marks (16ビッ ト) が配置さ れ、 11111^6し0し1)1& 1^3し1^ 5は、 それに続いて配置される MarkOの 個数を表す。 number— of— PlayLisし marksの後には、 その number— oし P 1 ayLi st— marksの数だけ MarkOの構造が記述される。
MarkOの先頭には、 markjype (8ビット) が配置される。 mark— typ eは、 上述のタイプ情報であり、 それを含む MarkOのタイプを表す。 本実施の形態では、 MarkOのタイプとして、 例えば、 チヤプ夕(Cha pter)、 インデクス(Index)、 イベント(Event)の 3種類が用意されて いる。
タイプがチヤプ夕の MarkO (以下、 適宜、 チヤプ夕マークという) は、 PlayListOを分割する頭出しの単位であるチヤプタの先頭位置の 印である。 また、 タイプがインデクスの MarkO (以下、 適宜、 インデ クスマークという) は、 チヤプ夕を細分化した単位であるインデク ''ス の先頭位置の印である。 タイプがイベントの MarkO (以下、 適宜 ィ ベントマークという) は、 PlayList 0にしたがったコンテンツの再生 中においてイベントを発生させる位置の印である。 イベントマークに よるイベントの発生は、 後述するように、 スクリプト制御モジュール 2 1 1に通知される。
ここで、 mark— typeの値と、 MarkOのタイプとの関係を、 第 1 0図 に示す。 第 1 0図によれば、 チヤプ夕マークの markjypeには、 1が セッ トされる。 また、 インデクスマークの mark— typeには、 2がセッ 卜され、 イベントマークの mark— typeには、 3がセッ トされる。 なお 、 第 1 0図では、 mark— typeで表される 8ビッ トの値のうちの、 0と 、 4乃至 2 5 5は、 将来の拡張のための予約(reserved)とされている 第 9図に戻り、 mark— typeの後には、 niark_name— length (8ビッ ト) が配置される。 また、 MarkOの最後には、 mark— name— s t r ing (24バイ 卜) 力 S配置さ才飞る。 mark— name— lengthと iark— name— st. ringは、 MarkO の名称を記述するためのものであり、 mark_name— lengthは、 mark— nam e— stringの有効なサイズを、 mark— nanie_stringは、 MarkOの名称を、 それぞれ表す。 従って、 mark_name— stringの先頭から mark— name_leng thが表すバイ ト数までが、 MarkOの有効な名称を表す。
mark— name— lengthに続いては、 PlayList 0上で定義される MarkOを クリップストリームファイルと対応付ける 4つの要素 ref— to— Playlte m_id (16匕ッ 卜) 、 mark— t inie—s tamp (32ヒッ 卜.) 、 entry_ES_stream —id (8ビッ ト) 、 en y—ES— private— stream— id (8ビッ ト) が順次配 置される。 ref— to_PlayItem_idには、 MarkOが属する Playl teniOに対して通し 番号で付された IDが記述される。 ref_to_PlayItem_idによって、 ¾ rk 0 が属する PlayltemO (第 8図) が特定され、 ひいては、 第 8図で 説明したように、 クリップ情報ファイルとクリップストリ一ムフアイ ルが特定される。
mark— time— st a即は、 re f_to— PI ayl tem— idによって特定されるクリ ップストリームファイル内での MarkOが表す時刻を表す。
ここで、 第 1 1図は、 P yListO, PlayltemO, クリップ、 および クリップストリームファイルに格納されたプログラムストリームの関 係を示している。
第 1 1図では、 PlayListOは、 3つの P 1 ay I tem 0から構成されてお り、 その 3つの PlayltemOそれぞれには、 通し番号で付される IM0, #1, #2が付されている。 ここで、 '以下、 適宜、 ID#iが付された Playlt em()を、 Playltem#iと記述する。
また、 第 1 1図では、 PlayItem#0, Playltemtl, P yItem#2によつ て再生されるコンテンツであるクリップが、 それぞれ、 クリップ A、 クリップ B、 クリップ Cとして示されている。
クリップの実体は、 第 8図の PlayltemOにおける CI ip— Information _f i 1 e— nameから特定されるクリップストリームファイルに格納された プログラムストリームのうちの、 INjimeから 0UT_tinieまでのプログ ラムストリームである。 第 1 1図では、 クリップ A、 クリップ B、 ク リップ cの実体としてのプログラムストリームが、 プログラムストリ 一ム八、 プログラムストリーム B、 プログラムストリーム Cとして、 それぞれ示されている。
例えば、 第 1 1図において、 PlayListOにしたがって行われる再生 の時間軸上の時刻 tOの印となる MarkOにおいては、 その ref— to— Playl tem_idと mark— t ime— s t ampは、 次のように言己述さ 飞る。
即ち、 時刻 tOは、 Playlteniitlの再生が行われる時刻であるため、 re し to— Playltem— idには、 その PI ayl tem#lの IDである 1が記述される'。 さらに、 時刻 tOでは、 P yltemlflによって、 クリップ Bの実体である プログラムス トリーム Bが再生されるため、 mark— time— stampには、 プログラムス 卜リーム Bが格納されたクリッブス卜リ一ムファイルに おける時刻 tOに相当する時刻が記述される。
再び、 第 9図に戻り、 entry— ES— stream— idと、 entry—ES— private一 s tream_idは、 MarkOを特定のエレメン夕リストリ一ムに関連付ける場 合に、 そのエレメン夕リストリームを特定するために使用される。 即 ち、 entry— ES— stream— idには、 Mark 0を関連付けるエレメン夕リスト リームの後述する stream— idが記述される。 また、 entry— ES_private— stream— idには、 必要に応じて、 MarkOを関連付けるエレメンタリス トリームの後述する private— stream_idが記述される。
例えば、 ビデオストリーム # 1 とビデオストリーム # 2が多重化さ れているクリップにおいて、 ビデオストリ一ム # 1を再生している場 合と、 ビデオストリ一ム # 2を再生して.いる場合でチヤプ夕の発生時 刻を変更したいときには、 ビデオストリーム # 1再生時のチヤプ夕マ ーク発生時刻の MarkOの entry— ES— stream— idと entry— ES— private— str eam— idに、 ビ 才ス卜リーム # 1の stream— idと private— stream— id力 記述され、 また、 ビデオストリーム # 2再生時のチヤプ夕マーク発生 時亥 ijの Mark 0 の entry— ES— stream— idと entry— ES— private— stream— id に、 ビデオストリ一ム # 2の stream— idと pr ivate_stream— idが記述さ れる。
なお、 特定のエレメン夕リストリームに関連付けない MarkOの entr y ES— stream— idと、 entry— ES— private— s eam— idには、 例えぱ、、 レ ず れも 0が記述される。
entry_ES— private— stream— idの後に【ま、 mark—data ( 3 2ビッ ト') が配置される。 mark— dataは、 MarkOがイベントマ一クである場合に 、 そのィベントマ一クによって発生されるィベントの引数となる引数 情報である。 なお、 mark— dataは、 Mark 0がチヤプ夕マークやインデ クスマークである場合に、 そのチヤプ夕マークやインデクスマークが 表すチヤプ夕ゃィンデクスの番号として使用することも可能である。
「Clip()の説明」
次に、 第 6図の" CLIP"ディ レク トリに置かれる、 拡張子が CLPのク リップ情報ファイルの内部構造について説明する。
第 6図では、 " CLIP"ディ レク トリに、 3つのクリップ情報ファィル " 00001. CLP", " 00002. CLP" , " 00003. CLP"が置かれており、 それぞれ には、 "STREAM"ディ レク トリに置かれたクリッブストリームファイル " 00001.PS", " 00002.PS", " 00003.PS"の性質等を示すメ夕デ一夕が格 納されている。
第 1 2図は、 そのようなクリップ情報ファイル ClipOの内部構造を 示している。 .
クリップ情報フアイル ClipOの先頭には、 presentation— start— tim eと presentation— end— time (いずれも 3 2ビッ ト) 力 順次配置され る。 presentat ion_start— t imeと presentat ion— end_timeは、 クリップ 情報ファイル ClipOに対応するクリッブストリームファイルの先頭と 最後の時刻を表す。 なお、 クリップストリームファイルの時刻は、 MP EG2- Sy s t emの時刻で使われている 90kHzの倍数で記述される。
presentation— end— 11]116こ続レ て(ま、 reserved— for— word— a 1 ignment (7ビッ ト) と capture_enable_flag— CI ip (1ビッ ト) が順次配置され る。 7ビッ 卜の reserved— for— word— al ignmentは、 ヮ一ドアラインをと るためのもので、 capture— enable— flag_Cl ipは、 上述した第 7図の ca pture— enable— flag— PlayListと同様に、 ビデオデータの 2次利用を ¾許 可するか否かを表すフラグである。
但し、 第 7図の capture— enable jlag_PlayListは、 PlayListOによ つて再生されるビデオストリームに対応する、 PlayList 0に属するビ デォデ一夕の 2次利用を許可するか否かを表すのに対して、 第 1 2図 の capture— enable— flag_Clipは、 クリップ情報ファイル CI ip 0に対応 するクリッブストリームファイルに格納されているビデオのエレメン 夕リストリ一ムに対応するビデオデ一夕の 2次利用を許可するか否か を表す。 従って、 第 7図の capture— enable— flag— PlayListと、 第 1 2 図の capture_enable_flag— Clipとでは、 2次利用を許可するビデオデ —夕の単位が異なる。
なお、 第 1 2図の capture—enable_f lag_Cl ipも、 第 7図の capture— enable_ilag_PlayListで説明したように、 1 ビッ トではなく、 複数ビ ットとすることが可能である。
capture— enable— flag— CI ipの後 ίこ ¾、 number— of— s t reams (8ヒッ卜 ) が配置され、 この numbeし oし streamsには、 それに続く Streamlnfo ( )構造の個数が記述される。 従って、 number_oし streamsに続いては、 その number_oし Streamsの数だけ、 S t reamlnf o 0の構造が記述される 。
StreamlnfoOの先頭には、 length (16ビット) が配置され、 この le ngthは、 それを含む StreamlnfoOのサイズを表す。 lengthに続いては 、 stream— id (8ビッ ト) と private— stream_id (8ビッ ト) が配置され ており、 この stream— idと private— stream— idによって、 StreamlnfoO に関連付けるエレメン夕リストリ一ムが特定される。
ここで、 第 1 3図は、 エレメンタリストリ一ムを識別する stream_i dおよび private— stream_idと、 エレメンタリストリ一ムとの関係を示 している。
stream_idは、 MPEG2-Sys tem規格において規定されているのと同'一 のものであり、 その値は、 MPEG2- System規格において、 エレメンタリ ストリームの属性ごとに、 あらかじめ決められている。 従って、 MPEG 2-System規格で定義されている属性のエレメン夕リストリームは、 st ream— idだけで特定することができる。
本実施の形態では、 MPEG2- System規格において規定されていない属 性のエレメンタリス卜リームも扱うことが可能になっており、 privat e_stream_idは、 MPEG2-System規格において規定されていない属性の エレメンタリストリームを識別するための情報である。
第 1 3図では、 MPEGで規定されている符号化方式でエンコードされ たビデオのエレメン夕リストリーム、 ATRAC (Adaptive TRansform Aco ustic Coding)方式でェンコ一ドされたオーディォのエレメン夕リス トリーム (以下、 適宜、 ATRACオーディオストリームという) 、 LPCM( Linear Pulse Code Modulation)方式でエンコードされたオーディオ のエレメン夕リストリーム (以下、 適宜.、 LPCMオーディオストリーム という) 、 字幕のエレメン夕リストリーム (以下、 適宜、 字幕ストリ —ムという) の 4つの属性のエレメン夕リストリームについて、 stre am— idおよび private— stream— idとの関係を示している。
MPEG2-System規格では、 MPEGで規定されている符号化方式でェンコ ―ドされたビデオのエレメン夕リストリームは、 OxEO乃至 OxEFの範囲 の値を (Oxは、 その後に続く文字列が 1 6進数であることを表す) 、 エレメンタリストリ一ムを識別する stream— idとして用いて多重化す ることが規定されている。 従って、 MPEGで規定されている符号化方式 でェンコ一ドされたビデオのエレメン夕リストリームについては、 (k EO乃至 OxEFの範囲の値の stream— idで識別することができる 16本のビ デォのエレメンタリストリームを、 プログラムストリ一ムに多重ィ す ることができる。
なお、 MPEGで規定されている符号化方式でェンコ一ドされたビデオ のエレメン夕リストリ一ムの識別は、 OxEO乃至 OxEFの範囲の値の stre am— idで行うことができるので、 pr ivate_s t ream— idは不要である。
—方、 MPEG2- Systemでは、 ATRACオーディオストリーム、 LPCMォ一 ディォストリーム、 字幕ストリームについては、 stream— idは定義さ れていない。
そこで、 本実施の形態では、 MPEG2- Systemで stream_idが定義され ていないエレメン夕リストリームについては、 その stream_idに、 MPE G2 - Systemにおいて pri vat e_st ream— 1という属性を表す値である OxBD を採用し、 さらに、 第 1 3図に示すように、 private— s eam— idを用 いて特定を行うこととしている。
即ち、 ATRACオーディオストリームの識別には、 0x00乃至 OxOFの範 囲の値の private_stream_idが使用される。 従って、 プログラムスト リームには、 16本の ATRACォ一ディォス.トリームを多重化することが できる。 また、 LPCMオーディオストリームの識別には、 0x10乃至 OxlF の範囲の値 private— stream— idが使用される。 従って、 プログラムス トリームには、 16本の LPCMオーディオストリームを多重化することが できる。 さらに、 字幕ストリームの識別には、 0x80乃至 0x9Fの範囲の 値の private— stream— idが使用される。 従って、 プログラムストリー ムには、 32本の字幕ストリームを多重化することができる。
なお、 stream_idおよび private— stream— idについては、 さらに後述 する。
第 1 2図に戻り、 private_stream— idの後には、 Stat iclnfo 0 , res erved_for_word_al ignment (8ビット) が順次配置される。 Staticlnf οθには、 その Static Info 0を含む S eamlnf o 0に記述された s t re m—
1(1ぉょび131~^&16_5 6&111—1(]にょって特定されるェレメン夕リスト''リ
—ムの再生中に変化しない情報が記述される。 StaticInfoOの詳細に ついては、 第 1 4図を参照して後述する。
reserved— for— word— a 1 ignment ヮ一ドアラインをとるために使 用される。
reserved— for— word— a 1 ignmenUこ続レ て【ま、 number— of— Dynamic Info (8ビット) が配置され、 number— of_DynamicInfoは、 その後に続いて 配置される pts— change— point (32ビッ ト) と Dynamiclnf o 0のセット の数を表す。
従って、 number— of— Dynamiclnfoに続レ て(ま、 その number— of— Dynam ic Infoの数だけのセッ ト数の pts— change— pointと Dynamic Info 0の構 造が記述される。
pts— change— pointは、 それとセッ トになっている DynamicInfoOの 情報が有効になる時刻を表す。 ここで、 エレメン夕リストリームの先 頭の時刻を表す pts— change— pointは、 そ.のエレメン夕リストリームが 格納されたクリップストリ一ムファイルに対応するクリップ情報ファ ィル CI ip()の最初に記述される presentations tart— timeに等しい。
Dynamiclnfo 0には、 s t ream— idおよび pr ivate— s eam— idによって 特定されるエレメン夕リストリームの再生中に変化する、 いわば動的 な情報が記述される。 DynamicInfoOに記述された情報は、 それとセ ットになっている p t s_ch ange— po i n tが表す再生時刻となったときに有 効になる。 なお、 DynamicInfoOの詳細については、 第 1 5図を参照 して後述する。
number of— Dynamiclnfoの数だけのセッ卜の pts— change_po int.と Dyn amicInfoOの後には、 EP— map 0が配置される。 なお、 EP_map()につい ては、 第 1 6図を参照して後述する。 j 「StaticInfo()の説明」 ' 次に、 第 1 4図を参照して、 第 1 2図の StaticInfoOの詳細につい て説明する。
第 1 4図は、 StaticInfoOのシンタクスを示している。
StaticInfoOは、 対応するエレメン夕リストリームの属性により内 容が異なっている。 StaticInfoOに対応するエレメン夕リストリーム の属性は、 その StaticInfoOを含む第 1 2図の Streamlnfo 0に含まれ る stream— idと private— stream— idにより判断される。
StaticInfoOに対応するエレメンタリストリームがビデオストリ一 ムである場合(stream==VIDE0)、 S t iclnf o 0は、 picture— size (4ビ ッ ト) , frame— rate (4ビット) , および cc— flag (1ビッ ト) と、 ヮ —ドアライン とるための reserved— for—wo rd—al ingnientとで構成さ れる。
picture— sizeは、 ビデオストリームに対応するビデオデータによつ て表示される画像の大きさを表す。 fram.e— rateは、 ビデオストリーム に対応するビデオデ一夕のフレーム周波数を表す。 cc— flagは、 ビデ ォストリームにクローズドキヤプション(Closed Caption)データが含 まれているか否かを表す。 即ち、 例えば、 ビデオストリームにクロ一 ズドキヤプションデ一夕が含まれている場合には、 cc— flagは 1とさ れ、 ビデオストリ一ムにクローズドキヤプションデ一夕が含まれてい ない場合には、 cc— flagは 0とされる。
StaticInfoOに対応するエレメン夕リストリームがオーディオスト リームである場合(stream==AUDI0)、 Stat iclnf o 0は、 audio_languag e一 code (16ビッ卜) , channe 1一 conf igurat ion (8ビッ卜) , lfe— exis tence (1ビッ卜) 、 および sa即 1 ing— frequency (4ビッ 卜) と、 ヮ一 ドアラインをとるための reserved—f or— word一 a 1 ingmentとで構成され る。 ' audiojanguage— codeには、 ォ一ディォストリームに含まれている オーディオデータの言語を表すコードが記述される。 channel— config urationは、 モノラル(mono) /ステレオ(s tereo) /マルチチャネル等の 、 オーディオストリームに含まれているオーディオデータの属性を表 す。 lfe_existenceは、 オーディオストリームに低域強調チャネルが 含まれているかどうかを表し、 含まれていれば 1となり、 含まれてい なければ 0となる。 sanipl ing_frequencyは、 オーディオストリームに 含まれているオーディォデ一夕のサンプリング周波数を示す情報であ る。
StaticInfoOに対応するエレメン夕リス卜リ一ムが字幕ス卜リーム である場合(stream==SUBTITLE)、 StaticInfoOは、 subt i t le_languag e_code (16ビッ ト) および configurabl e— Π ag (1ビット) と、 ヮ一ド ァラインをとるための reserved—for—word—al ingnientとで構成される subtitle— language_codeには、 字幕ストリームに含まれている字幕 データの言語を表すコードが記述される。 configurable— flagは、 字 幕ストリームに含まれている字幕データの表示をデフォルトの表示方 式から変更することを許可するか否かを表す情報で、 例えば、 表示方 式の変更が許可されている場合には 1が記述され、 許可されていない 場合には 0が記述される。 なお、 字幕デ一夕の表示方式としては、 字 幕データの表示サイズや、 表示位置、 表示色、 表示パターン (例えば 、 点滅表示など) 、 表示方向 (例えば、 垂直方向や水平方向) などが ある。 「DynamicInfo()の説明」
次に、 第 1 5図を参照して、 第 1 2図の DynamicInfoOの詳細 っ いて説明する。 ' 第 1 5図は、 DynamicInfoOのシンタクスを示している。
DynamicInfoOの先頭には、 ワードァラインのための reserved jor— word_alignment (8ビット) が配置されており、 その後に続く要素は 、 DynamicInfoOに対応するエレメンタリストリームの属性により内 容が異なっている。 DynamicInfoOに対応するエレメン夕リストリ一 ムの属性は、 第 14図で説明した Static Info 0における場合と同様に 、 DynamicInfoOを含む第 1 2図の StreamlnfoOに含まれる stream— id と private— stream— idにより判断される。
DynamicInfoO ('こは、 第 1 2図で説明したように、 エレメンタリス トリームの再生中に変化する動的な情報が記述される。 この動的な情 報は、 特に限定されるものではないが、 第 1 5図の実施の形態では、 DynamicInfoOに対応するエレメン夕リストリームに対応するデータ 、 即ち、 エレメン夕リストリ一ムが処理されることによって出力され るデー夕の出力属性が、 Dynami c Ιηί 00に記述される。
具体的には、 DynamicInfoOに対応するエレメンタリストリームが ビデオストリームである場合(streani==VIDE0)、 Dynamic info 0は、 di splay— aspecし rat io (4ビッ卜) と、 ヮ一ドアラインのための reserve d— for— word— a 1 ingmentとで構成される。 di pi ay— aspect— ratioには、 ビデオストリームに対応するビデオデータの出力方式としての、 例え ば、 そのビデオデ一夕のアスペクト比が記述される。 即ち、 dip y_a specし ratioには、 例えば、 アスペクト比が、 16: 9または 4: 3のうちの いずれであるかを表す情報が記述される。 なお、 ビデオストリームの DynamicInfoOには、 アスペクト比の他、 例えば、 ビデオデータによ つて表示される画像のサイズ (X画素 XY画素) などを記述すること が可能である。 j
DynamicInfoOに対応するエレメン夕リストリームがォ一ディ才ス トリ一ムである場合(stream AUDIO) DynamicInfoOは、 channel— as s ignment (4ヒッ ト) と、 ワードァラインをとるための reserved— for— word— al ingmentとで構成される。 channe 1— ass ignmentには、 オーディ ォストリームに 2チャネルのオーディォデ一夕が含まれている場合に 、 その 2チャネルの出力方式が記述される。 即ち、 channel— assignme ntには、 オーディオデータが、 ステレオまたはデュアル (ニケ国語) のうちのいずれのチャネル割り当てがされているものであるかを表す 情報が記述される。
DynamicInfoOに対応するエレメン夕リストリームが字幕ストリー ムである場合(st.ream==SUBTITLE)、 Dynami c Inf o 0は、 ワードァライ ンをとるための reserved—for— word_al ingmentで構成される。 即ち、 第 1 5図の実施の形態では、 字幕ストリームに関しては、 動的な情報 としての出力属性は定義されていない。
「EP_map()の説明」 .
次に、 第 1 6図を参照して、 第 1 2図の EP— map()の詳細について説 明する。
第 1 6図は、 EP_map()のシンタクスを示している。
EP_map()には、 その EP— map 0を含む第 1 2図のクリップ情報フアイ ル ClipOに対応するクリップストリームファイルに格納されたプログ ラムストリームに多重化されているエレメン夕リストリーム毎に、 各 エレメンタリストリームの、 デコードを開始することができるデコ一 ド開始可能点 (エントリポイント) の情報が記述される。
ここで、 固定レートのストリームについては、 デコード開始可能点 は、 計算によって求めることができるが、 可変レートのストリーム、 あるいは MPEG規格にしたがって符号化されたビデオストリームのよう に、 ビデオアクセスュニッ トごとにサイズが異なるストリームに,い ては、 デコード開始可能点は、 計算によって求めることができず、 実 際にストリームを解析しないと見つけることができない。 デコード開 始可能点を迅速に認識することは、 ランダムアクセスを行うために重 要であり、 EP— map()によれば、 デコード開始可能点を迅速に認識する ことができる。
なお、 MPEG2- Videoでは、 Sequence— header 0 (シーケンスヘッダ) 等を含めたイントラピクチャの先頭が、 デコード開始可能点である。
EP— map()の先頭には、 ヮードアラインのための reserved— for_word— alignment (8ビット) が配置されており、 続いて number— of_s t ream— i d— entries (8ビッ卜) 力 s配置されてレ る。 number— of— s t ream— id— entr iesは、 EP— mapOにデコード開始可能点の情報が記述されているエレ メン夕リストリームの本数を表す。
111111^6し0し3 6&111—1(1—611 163の後には、 エレメン夕リストリーム を識別するための情報と、 そのエレメンタリストリームのデコード開 始可能点の情報とが、 numb e r_oし s t r e am_ i d— en t r i e sが表す数だけ繰 り返し配置される。
即ち、 number— 0し stream— id_entr iesの直後には、 エレメンタリス トリ一ムを識別する情報としての stream— id (8ビッ ト) と private— st ream— id (8ビット) が配置され、 それに続けて、 number_oし EP— entr i es (32ピット) が配置される。 number— oi_EP— entr iesは、 その直前の stream— idと private— st ream_idで特定されるエレメン夕リストリーム のデコード開始可能点の数を表す。
number— of— EP— entriesの後には、 その直前の stream idと private s tream一 idで特定されるエレメンタリストリームのデコード開始可能点 の情報が numb e r_o f_EP_en t r i e sが表す数だけ繰り返し配置される。 すなわち、 該当エレメン夕リス卜リ一ムがビデオストリームである 場合には、 まず indexjjninuslと N-th— Ref_picture— copyが置かれ、 その後ろにデコード開始可能点の情報としての PTS— EP_s rt (32ビッ ト) と RPN_EP_start (32ビット) が置かれ、 これらが繰り返し配置さ れる。 index— N—minuslと N-th—Ref— picture— copyについては後述する また、 該当エレメンタリストリームがビデオストリーム以外である 場合には、 16ビッ トの reserved— for— future— useの後にデコード開始 可能点の情報としての PTS—EP— start (32ビッ ト) と RPN_EP— start (32 ビッ ト) が置かれ、 これらが繰り返し配置される。
N - th— Reし picture— copyには、 後述する RPN_EP_startで示される pri vate_stream— 2に記録されている、 IstRef— picture、 2ndReし picture 、 3rdRef_picture, 4thRei_pictureのいずれかがコピーされる。 また i n d ex_N_m i n u s 1にはどのフィールドをコピーしたかという情報が第 1 7図に示す値を用いて記録される。 すな.わち、 第 1 7図で示されるよ うに、 index— N—minuslには、 IstReし pictureがコピーされた場合、 0 が、 2ndRef— pictureがコピーされた場合、 1が、 3rdReし pictureがコ ピ一された場合、 2が、 4thReし pictureがコピーされた場合、 4が、 記録されることになる。
デコード開始可能点の情報の 1つである PTS— EP—startは、 上述のよ うに st reanし idと private— stream— idで特定されるエレメンタリストリ ームが多重化されているプログラムストリームが格納されたクリップ ストリームファイル内での、 デコード開始可能点の時刻 (再生時刻) を表す。 デコ一ド開始可能点の情報の他の 1つである RPN— EP— startには、 上 述のように stream— idと private— stream— idで特定されるエレメン リ ストリームが多重化されているプログラムストリームが格納された'ク リップストリームファイル内での、 デコード開始可能点の位置を、 プ ログラムストリームの packO単位で数えたときの値が記述される。 な お、 本実施の形態では、 packOのサイズは 2048バイ トで固定であると する。 また、 本実施の形態では、 ディスク 1 0 1 (第 1図) の 1セク 夕が、 2048バイ トであるとする。
ここで、 ビデオストリームについては、 そのデコード開始可能点 ( エントリポイント) の直前に、 後述する privat e— st ream_2パケット ( private一 stream— 2の属性の PES_packet 0) が配置されている。 rivat e— stream— 2パケッ トは、 その pr ivate—s t ream— 2パケットから、 次の pr ivate— stream_2バケツ卜までの間に配置されているビデオストリーム をデコードするのに利用される情報が格納されている。 このため、 ビ デォストリームについては、 デコ一ド開始可能点の情報としての RPN— EP— startには、 実際のデコード開始可能点そのものではなく、 実際の デコ一ド開始可能点の直前に配置されて.いる private_stream_2バケツ 卜の先頭の位置が記述される。
また、 EP— map()において、 デコード開始可能点の情報としての PTS— EP— start.と RPN— EP— startとのセットは、 stream—idと private— stream— idで特定されるエレメンタリストリームごとに、 あらかじめ、 昇順に ソートされている。 これにより、 デコード開始可能点の情報としての PTS— EP— startと RPIEP— startとのセッ トは、 二分探索が可能となって いる。
なお、 可変レー卜のストリームや、 ビデオアクセスユニットごとに サイズが異なるストリームを対象としたランダムアクセスの方法は、 例えば、 特開 2000- 341640号公報 (特願平 11-317738号) などに記載さ れている。 ' 「クリップストリームファイルの説明」
次に、 第 6図の" STREAM"ディレクトリに置かれる、 拡張子が PSのク リップストリームファイル (第 6図では、 " 00001.PS", " 00002.PS", " 00003.PS") の内部構造について説明する。
クリップストリームファイルは、 MPEG- 2 System (ISO/IEC 13818-1 )に定義された MPEG2— Program_Stream()をベースに構成されている。 即ち、 第 1 8図 Aおよび第 1 8図 Bは、 MPEG-2 Sys tern (IS0/IEC 13 818- 2000)規格に記述されているテーブル 2- 31, テーブル 2-32, テ —ブル 2- 33を示している。
クリップストリームファイルに格納されたプログラムストリームは 、 MPEG- 2 System規格のテーブル 2- 31に定義されている MPEG2— Progfam — StreamOであり、 1つ以上の packOと、 1つの MPEG— program— end— co deで構成される。 なお、 MPEG2— Program— StreamOの説明は、 特許第 27 85220号などにも記載されている。
1つの packOは、 MPEG-2 Sys tem規格^テーブル 2-32に定義されて いるように、 1つの Pack_header()と、 任意の数の PES— packet 0とで 構成される。 Pack— header 0の詳細は、 MPEG-2 Sys tem規格のテーブル 2- 33に定義されている。
ここで、 MPEG- 2 System規格では、 packOのサイズは、 可変長とし て定義されているが、 ここでは、 第 1 6図で説明したように、 2048バ イトで固定であるとする。 さらに、 ここでは、 1つの packOの PES_pa cketOの数は、 1つ、 2つ、 または 3つとする。 PackOが後述する pr ivate— stream— 2パケットで始まる場合、 その直後に対応するビデオス トリ一ムの PES_packe t 0が必ず存在する。 またこれに加えて 3つ目の PES一 packet 0として padding—packet ひ デイングパケット) を置くこ とができる。 なお private_stream_2バケツトは必ず Pack 0の先頭 お かれる。 ' PackOが private— strea,m_2バケツ卜で始まらない場合には、 PackO の先頭にはビデオ、 オーディオ、 字幕などのコンテンツデ一夕の格納 された PES— packet ()が置かれる。 これに加えて 2つ目の PES_packet 0 として padding— packet (パディングパケット) を置くことができる。 第 1 9図 Aおよび第 1 9図 B乃至第 2 1図 Aおよび第 2 1図 Bは、 MPEG- 2 System規格のテーブル 2- 17で定義されている PES— packet 0を 示している。
PES— packet 0は、 packet— start— code— pref ix, stream— id、 および P ES_packet_length (第 1 9図 Aおよび第 1 9図 B ) と、 stream_id等 により構造の変化するヘッダ部分 (stuf f ing— byteを含む) (第 1 9 図 Aおよび第 1 9図 B乃至第 2 1図 Aおよび第 2 1図 B) と、 PES_pa cket_data— byte (第 2 1図 Aおよび第 2 1図 B) とに大別することが できる。 なお、 PES— packet 0が、 padding— packet.である場合(stream— id==padding_s tream) > PES— packet—data— byteに代えて、 padding— byt e(OxFF) (第 2 1図 Aおよび第 2 1図 B) が必要な数だけ繰り返し配 置される。
ここで、 PES_packet ()のヘッダ部分には、 第 1 9図 Aおよび第 1 9 図 B、 ならびに、 第 2 0図 A、 第 2 0図 Bおよび第 2 0図 Cに示すよ うに、 PTS (Presentation Time Stamp)と呼ばれる表示タイミングを示 す情報と、 DTS (Decoding Time Stamp)と呼ばれるデコードタイミング を示す情報とを配置することができる。 本実施の形態では、 すべての アクセスユニッ ト (MPEG2-Systeniで定義された、 エレメンタリストリ —ムを構成するデコード単位) に対して PTSが付加され、 MPEG2-Syste mに定める場合に DTSが付加されるとする。
プログラムストリ一ムに多重化されるエレメン夕リストリーム 、 PES_packet ()の PES— packet— data— byte (第 2 1図 Aおよび第 2 1図 'Β ) に格納される。 そして、 PES_packet 0の stream— idには、 その PES— p ackeし data_byteに格納されたエレメン夕リストリームを識別するた めに、 そのエレメン夕リストリームの属性に応じた値が記述される。
PES— packet 0の st ream— idに記述される値と、 エレメンタリストリ —ムの属性 (種類) との関係は、 MPEG- 2 System規格のテ一ブル 2-18 に定義されている。 ここで、 第 2 2図 Aおよび第 2 2図 Bに、 MPEG - 2 System規格のテーブル 2-18を示す。
本実施の形態では、 第 2 2図 Aおよび第 2 2図 Bに示した MPEG- 2 S ystem規格で定義されている stream— idのうちの、 例えば、 第 2 3図に 示す値を採用する。
即ち、 本実施の形態では、 10111101B, 10111110B, 10111111B, 110 χχχχχΒ, ΙΙΙΟχχχχΒの 5パターンを、 s eam— i dの値として採用する。 なお、 "X"は、 0または 1のうちの任意の値を表す。
そして、 private— stream— 1と呼ばれる属性のエレメン夕リストリ一 ムの PES— packet 0の stream— idは、 第 2 3図にしたがい、 10111101Bと される。 また、 padding— packetの PES— packet 0の stream— idは、 第 2 3図にしたがい、 10111110Bとされる。 さらに、 pr ivate— s t ream— 2と 呼ばれる属性のエレメン夕リストリームの PES— packet 0の s earn— id は、 第 2 3図にしたがい、 10111111Bとされる。
また、 MPEGで定義されたオーディオストリーム (ォ一ディォのエレ メン夕リス卜リーム) の PES— packet 0の stream— idは、 ΙΙΟχχχχχΒとさ れる。 なお、 ΙΙΟχχχχχΒのうちの下位 5ビット xxxxxは、 オーディオス トリームを区別するオーディオストリームナンパであり、 プログラム ストリーム (MPEG2— Progranし StreamO) には、 このオーディオストリ —ムナンパで区別することのできる数である 3 2 (= 25) 本のォー ディォストリーム (MPEGで定義されたオーディオストリーム) を多重 化することができる。
さらに、 MPEGで定義されたビデオストリーム (ビデオのエレメン夕 リストリーム) の PES— packet ()の s earn— idは、 ΙΙΙΟχχχχΒとされる。 なお、 ΙΙΙΟχχχχΒのうちの下位 4ビッ ト xxxxは、 ビデオストリ一ムを 区別するビデオストリ一ムナンパであり、 プログラムス卜リームには 、 このビデオストリームナンパで区 5 別することのできる数である 1 6
5
(= 24) 本のビデオストリーム (MPEGで定義されたビデオストリ一 ム) を多重化することができる。
ところで、 stream一 idが ΙΙΙΟχχχχΒの PES— packetOは、 MPEGで定義さ れたビデオストリームを格納するために使用され、 stream_idが ΙΙΟχχ xxxBの PES_packet 0は、 MPEGで定義されたォ一ディォストリ一ムを格 納するために使用される。 一方、 MPEGで定義されていない符号化方式 (たとえば ATRAC方式) のエレメン夕リストリームを格納するのに使 用する PES— packetOの stream_idは、 MP.EGでは規定されておらず、 従 つて、 MPEGで定義されていない符号化方式のエレメン夕リストリーム は、 MPEGで定義されたビデオストリームゃォ一ディォス卜リームと同 様に、 単純に、 stream— idを指定して、 PES— packet.0に格納すること はできない。
そこで、 本実施の形態では、 private_stream— 1の PES— packet 0の PE S— packet— data—byteを拡張し、 MPEGで定義されていない符号化方式の エレメン夕リストリームを格納する。
ここで、 pr ivate_stream_lの PES— packet ()の、 拡張した PES— packet —data byteを、 pr ivate_streaml PES payloadOと記述 "^る。 「pr ivate_s eaml— PES— payloadOの説明」
第 2 4図は、 private_streaml— PES_payload()のシンタクスを示 sし ている。 ' pr i vat e_streaml_PES_pay load ()は、 pr i vat e— header ()と private— p ayloadOとで構成される。 private— payload 0には、 ATRACオーディオ ストリームや、 LPCMオーディオストリーム、 字幕ストリームなどの、 MPEGで定義されていない符号化方式のエレメンタリストリ一ムが格納 される。
private— header 0の先頭には、 private— stream— id (8ビット) が配 置される。 private— stream— idは、 pr ivate_payload 0に格納されるェ レメン夕リストリームを識別する識別情報で、 その属性に応じて、 例 えば、 以下のような値とされる。
即ち、 第 2 5図は、 private— stream— idの値と、 r ivate_pay load 0 に格納されるエレメン夕リストリームの属性との関係を示している。 第 2 5図では、 OOOOxxxxB, OOOlxxxxB, ΙΟΟχχχχχΒの 3パターンが 、 private— stream— idの値として採用されている。 なお、 "は、 第 2 3図における場合と同様に、 0または 1.のうちの任意の値を表す。 第 2 5図によれば、 ATRACオーディオストリームが private— payload 0に格納される private— s eaml— PES— payload 0の private— stream— id は、 OOOOxxxxBとされる。 なお、 OOOOxxxxBのうちの下位 4ビット xxxx は、 ATRACオーディォストリームを区別するオーディォストリームナ ンバであり、 プログラムストリーム (MPEG2— Program— StreamO) には 、 このオーディォストリームナンパで区別することのできる数である 1 6 (= 24) 本の ATRACオーディオストリームを多重化することが できる。
さらに、 第 2 5図によれば、 LPCMオーディオストリームが private— pay load 0に格納される private— s eaml— PES— pay load () Dprivate_st reanし idは、 OOOlxxxxBとされる。 なお、 OOOlxxxxBのうちの下位 4ビ ッ ト xxxxは、 LPCMオーディォストリームを区別するオーディォス卜リ ームナンパであり、 プログラムストリームには、 このオーディオスト リームナンパで区別することのできる数である 1 6 (= 24) 本の LP CMオーディォストリ一ムを多重化することができる。
また、 第 2 5図によれば、 字幕ストリームが private— payloadOに 格納される private— streaml— PES— pay load 0の private— stream— idは、 lOOxxxxxBとされる。 なお、 ΙΟΟχχχχχΒのうちの下位 5ビッ ト xxxxxは 、 字幕ストリームを区別する字幕ストリ一ムナンパであり、 プロダラ ムストリームには、 この字幕ストリ一ムナンパで区別することのでき る数である 3 2 (= 2 5) 本の字幕ストリームを多重化することがで きる。
ここで、 第 2 3図と第 2 5図の関係をまとめたものが、 上述した第 1 3図である。
第 2 4図に戻り、 private— streamし PES— payloadOにおいて、 priva te_stream— idに続く要素は、 pr ivate— p y load 0に格納されるエレメ ン夕リストリームの属性により内容が異なっている。 private_payloa d()に格納されるエレメン夕リストリ一ムの属性は、 private— header ( )の先頭の private— stream— idにより判断される。
private— payloadOに格納されるエレメン夕リストリームが ATRACォ —ディォストリームである場合(private一 stream— id==ATRAC)、 将来の 拡張用の reserved— for— future— use (8ビット) が配置され、 その後、 AU_locator (16ビット) が配置される。 AU_locatorは、 その AU_locat orの直後の位置を基準として、 private— payloadOに格納さ'れた ATRAC オーディォストリ一ムのオーディォアクセスュニットの先頭位置を表 す。 private— payloadOにォ一ディォアクセスュニッ 卜が存在しない 場合、 AU— locatorには、 例えば OxFFFFが記述される。 ¾ private— pay load 0に格納されるエレメン夕リストリ一ムが LPCMォ —ディォストリームである場合(private— stream— id==LPCM)、 fs_f lag (1ヒッ 卜 , reserved— for— future— use (3ヒッ卜) , ch— flag (4ヒ ット) 、 および AU— locator (16ビット) が順次配置される。
fs— flagは、 rivate_payload()に格納される LPCMォ一ディォストリ —ムのサンプリング周波数を示す。 即ち、 例えば、 サンプリング周波 数が 48KHzの場合、 fs— flagは 0とさ 5れ、 サンプリング周波数が 44. ΙΚΗζ
8
の場合、 fs— flagは 1とされる。
clし flagは、 private— payloadOに格納される LPCMォ一ディォストリ —ムのチャネル数を示す。 例えば、 LPCMオーディォストリームがモノ ラルの場合、 chjlagは 1とされ、 LPCMオーディオストリームがスデレ ォの場合、 ch_flagは 2とされる。
AU— locatorは、 その AU— locatorの直後の位置を基準として、 privat e_payload()に格納される LPCMォ一ディォストリ一ムのオーディオア クセスュニッ 卜の先頭位置を示す。 private— payloadOにオーディオ アクセスユニットが存在しない場合、 AU— locatorには、 例えば OxFFFF が記述される。
private— payloadOに格納されるエレメン夕リストリ一ムが字幕ス トリ—ムである場合(privat e_str earn— id==SUBTITLE)、 将来の拡張の ための reserved— for— future— use (8ビッ ト) が配置され、 その後に 、 AU_locator (16ビット) が配置される。 AU— locatorは、 その AU— loc at orの直後の位置を基準として、 private_payload()に格納される字 幕ストリームの字幕アクセスユニッ トの先頭位置を示す。 private— pa yloadOに字幕アクセスユニットが存在しない場合、 AU locatorには 、 例えば OxFFFFが記述される。
「private— stream2— PES— payloadOの説明」
次に、 第 2 6図は、 private— stream2— PES_payload()のシンタクス を示している。
private— stream2— PES— payload 0は、 private— stream— 2の PES— packe t 0の PES— packet— data— byte (第 2 1図 Aおよび第 2 1図 B) を拡張 したもの、 即ち、 private— stream_2の PES— packet ()の、 拡張した PES— packet— datajjyteであり、 ビデオストリ一ムのデコードに利用される 情報が記述される。
本実施の形態では、 private_stream— 2の PES_packet 0は、 ビデオス トリームにおけるデコード開始可能点の直前に配置される。 従って、 本実施の形態では、 プログラムストリ一ムから private— stream_2の PE S— packetOを見つければ、 その直後のビデオストリームからデコード を開始することができる。
こ で、 上述した第 1 6図の EP— map()の RPN— EP— startは、 ビデオス トリ一ムについては、 private一 stream— 2の PES一 packet 0の先頭の位置 を示す。 .
private— stream2— PES_payload()の先頭には、 将来の拡張用の reser ved— for一 future— use (Sビット) が配置され、 続けて、 video— stream一 id (8ビット) , IstReし picture (16ビット) , 2ndRef— pic ture (16 ビット) , 3rdRef— picture (16ビッ 卜) , 4thRef_picture (16ビッ ト ) , au— information 0、 および VBIOが、 順次配置される。
video— stream— idには、 private— s tream— 2の PES— packet 0の直後に 配置されるビデオストリームの PES— packet ()の stream— idと同一の値 が記述される。 この video— stream— idによって、 private— stream__2の P ES— packet ()の private stream2 PES— payload 0に格納された情報を利 用してデコードされるビデオストリ一ムが格納された PES_packet ()が 特定される。
IstRef— picture, 2ndRef_pic ture, 3rdReし picture, 4thRef_pietu reは、 video— stream— idによって特定されるビデオストリームの、 pri vate— stream— 2の PES— packet ()力 ら次の private— stream— 2の PES— packe tOまでの中の 1, 2 , 3, 4番目の参照画像を含む最後の packOの 位置を相対値で、 それぞれ表す。 なお、 IstReし picture, 2ndRef_pic ture, 3rdRef— picture, 4thRef— pictureについては、 例えば、 特開平 09 - 46712号公報 (特願平 07- 211420 6号) に、 bytes— to— f irst— P— pic by o
tes— to_second— P_picとして、 その詳細が開示されている。
au— inf ormat ion ()には、 private— stream_2 DPES— packet 0力、ら、 次 の private— stream— 2の PES— packet 0までのビデオストリ一ムの中のビ デォアクセスュニットに関する情報が記述される。 au_information() の詳細については、 第 2 7図を参照して後述する。
VBI0は、 Closed Capt ionの情報を記述するために使用される。 以上のよう ¾ r ivate_s t ream2_PES_pay load 0を有 る private— str earn— 2の PES— packet ()は、 ビデオストリ一ムごとの、 デコード開始可 能点ごとに配置される。
次に、 第 2 7図は、 第 2 6図の au_information()のシンタクスを示 している。
au— informationOの先頭には、 length (16ビット) が配置される。 lengthは、 それを含む au— informationOのサイズを表す。 lengthに続 て【ま、 reserved— for— word— al ignment (8ヒ 、 および number— o f_access_uni t (8ビッ卜) が順次酉己置される。 reserved— for—word— al ignmentは、 ヮ一ドアラインをとるために使用される。
number— of— access— uni "ま、 それを含む pri vate— stream— 2の PES— pac ket 0から、 次の private_streanし 2の PES— packet 0までの間に含まれ るビデオアクセスュニッ 卜の数を表す。
即ち、 number— of— access— uni tは、 第 2 6図の private— s eam2— PES —pay load 0力 s同一の video— s treaiiし idを有する private— s earn— 2の PES — packet 0の中で、 この au— inf ormatnio 0力、ら次の au— inf ormat. ion 0 の直前までに、 すなわち、 この au— infromationOがクリップストリー ムファイルで最後の aujnformat ion 0であれば、 クリップス卜リーム ファイルの最後までに、 video_streain— idで示されるビデオストリ一 ムに含まれるアクセスユニット (ピクチャ) の数を示す。
number— of— access— uni tの後には、 その number— oし access— uni tの数 だけ forループの内容が配置される。 即ち、 number— of— access— unitを 含む private— stream— 2の PES— packet 0力、ら、 次の private— s tream— 2の PES— packet 0までの間に含まれる 1以上のビデオアクセスュニッドそ れぞれに関する情報が配置される。
forループ内に配置される情報 (ビデオアクセスユニッ トに関する 情報) は、 以下のようになつている。
即ち、 forループ内には、 pic— struct_popy (4ビッ ト) , au— ref_fl ag (1ビット) , AUJeiigth (21ビット) , reservedが配置される。 pic— strucし copyには、 ビデオストリームが MPEG4-AVC (IS0/IEC 14 496-10) の場合に、 対応するビデオアクセスユニットに対して設定さ れている、 IS0/IEC 14496-10, D.2.2に定義されている p i c— s t rue t ( ) のコピーが記述される。 なお、 pic— struct 0 は、 例えば、 ピクチ ャをフレームとして表示する、 あるいは、 ピクチャのトップフィール ドを表示して、 その後、 ボトムフィールドを表示する、 などといった 情報である。
ここで、 第 2 8図に、 pic_structのテーブルを示す。 pic— structは、 ピクチャをどのように表示するかの表示方式を指示 する表示方式指示情報として使用される。
第 2 8図の pi c_s true tのテ一ブルによれば、 ピクチャによって 1 フレームを表示することを指示する場合には、 そのピクチャの pic_st ruct.には、 第 2 8図の最も左の Valueの欄に示されているように、 0が セットされる。 同様に、 ピクチャによって、 トップフィールドまたは ボトムフィールドを表示することを指示する場合には、 そのピクチャ の pic— strucUこは、 それぞれ 1または 2がセッ トされる。 さらに、 ピク チヤによって、 トップフィールドとボトムフィールドをその順で表示 することを指示する場合には、 そのピクチャの pic— structには、 3が セットされ、 ポトムフィ一ルドとトツプフィ一ルドをその順で表示す ることを指示する場合には、 pic— structには、 4がセッ トされる。 ま た、 ピクチャによって、 トップフィールド、 ボトムフィールド、 繰り 返しトップフィールドをその順で表示することを指示する場合には、 そのピクチャの pic_structには、 5がセッ トされ、 ボトムフィールド 、 トップフィールド、 繰り返しボトムフィールドをその順で表示する ことを指示する場合には、 pic— structには、 6がセットされる。 さら に、 ピクチャによって、 1フレームを 2回繰り返しまたは 3回繰り返 し表示することを指示する場合には、 そのピクチャの pic_structには 、 それぞれ 7または 8がセットされる。
au— ref— f lagは、 対応するアクセスユニットが、 他のアクセスュニ ットのデコードにあたつて参照される参照画像であるか否かを表し、 参照画像である場合には 1とされ、 参照画像でない場合には 0とされ -©。
AU— lengthは、 対応するアクセスユニッ トのサイズをバイ ト単位で 表す。 [ディスク 1 0 1に記録されたデータの具体例]
次に、 第 2 9図乃至第 3 2図は、 第 1図のディスク 1 0 1に記 ^さ れた、 上述したようなフォーマツ卜のデータの具体例を示している"。
ここで、 第 2 9図乃至第 3 2図では、 ビデオストリームとしては、 MPEG2- Videoを採用し、 オーディオストリームとしては、 ATRACオーデ ィォストリームを採用している。 但し、 ビデオストリームやオーディ ォストリームは、 これに限定されるものではない。 即ち、 ビデオスト リームとしては、 例えば、 MPEG4-Visualや MPEG4- AVCなどを採用する ことができる。 さらに、 オーディオストリ一ムとしては、 例えば、 MP EG1/2/4オーディォゃ LPCMオーディォストリ一ムなどを採用すること ができる。
なお、 字幕ストリームは、 ビデオストリームやオーディオストリ一 ムと異なり、 同じ間隔で連続的なデコードや表示が行われるとは限ら ない。 すなわち、 字幕ストリームは、 時折、 第 2図 Aおよび第 2図 B のバッファ制御モジュール 2 1 5から字幕デコーダ制御モジュール 2 1 8に供給されてデコードされる。
第 2 9図乃至第 32図は、 ディスク 1.0 1において、 第 6図に示し たように、 "CLIP"ディレクトリに、 3つのクリップ情報ファイル" 000 01. CLP", " 00002. CLP", " 00003. CLP"が記録され、 "STREAM"ディレク トリに、 その 3つのクリップ情報ファイル" 00001. CLP", " 00002. CLP" , " 00003. CLP"それぞれに対応する 3つのクリップストリ一ムフアイ ル" 00001.PS", " 00002.PS" , " 00003.PS"が記録されている場合の、 "P LAYLIST.DAT"ファイル、 クリップ情報ファイル" 00001. CLP", " 00002. CLP"、 および" 00003. CLP"等の具体的な例を示している。 但し、 第 2 9図乃至第 3 2図では、 "PLAYLIST.DAT"ファイル等のデータの一部を 省略してある。 即ち、 第 2 9図は、 第 7図で説明した" PLAYLIST.DAT"ファイルの具 体例を示している。
第 2 9図では、 number— of— PlayListsは 2となっており、 従って、 LAYLIST.DAT"ファイルに含まれる PlayListOの数は 2である。 第 2 9 図では、 その 2つの PlayList 0のうちの 1番目が P yList #0と、 2 番目が PlayList #1と、 それぞれ記載されている。
1番目の PlayList 0である Playい st #0については、 capture— enabl e— flag— PlayListが 1となっており、 従って、 PlayList #0にしたがつ て再生されるビデオデータの 2次利用が許可されている。 また、 Play List #0については、 number— 0し Playltemsが 2となっており、 従って 、 PlayList #0に含まれる Playl temOの数は 2である。 第 2 9図では、 その 2つの?1& 6111()でぁる?1& 1{6111#0と?1& 116111#1の具体例が、 「
PlayList#Oj の檷の下方に記載されている。
PlayList #0に含まれる 1番目の P 1 ay 11 em 0である P 1 ay I tem#0では 、 第 8図で説明した Clip— Information— file— nameが" 00001. CLP"に、 I n— timeが 180, 090に、 0UT_t imeが 27, 180, 090に、 それぞれなっている 。 従って、 PlayList #0の Playl tem#0によって再生されるクリップは 、 クリップ情報フアイル" 00001. CLP"に対応するクリップストリーム ファイル" 00001.PS"の、 時刻 180, 090から 27, 180, 090までである。
PlayList #0に含まれる 2番目の P 1 ay I tem 0である Play 11 em#lでは 、 第8図で説明した(:110—11^01"1^ 011_ 16—11&1116が"00002.(:[^"に、 I n_tinieが 90, 000に、 OUT— t imeが 27, 090, 000に、 それぞれなっている。 従って'、 PlayList #0の P 1 ayl tem#lによって再生されるクリップは、 クリップ情報ファイル" 00002. CLP"に対応するクリッブストリームフ アイル" 00002.PS"の、 時刻 90, 000から 27, 090, 000までである。
一方、 第 2 9図において、 2番目の PlayListOである PlayList tl については、 capture— enable— flag_P yUstが 0となっており、 従つ て、 P yList #1にしたがって再生されるビデオデータの 2次利用が 許可されていない。 また、 PlayList #1については、 number— of— Playl temsが 1となっており、 従って、 PlayList #1に含まれる Playl tem() の数は 1である。 第 2 9図では、 その 1つの PlayltemOである Playlt em#0の具体例が、 「PlayList#l」 の欄の下方に記載されている。
PlayList #1に含まれる 1つの P 1 ay I temOである PI ayltemtOでは、 第 8図で説明した CI ip—Inforn t ion— Π le— nameが" 00003. CLP"に、 In— timeが 90, 000に、 OUT— timeが 81, 09 60, 000に、 それぞれなっている。 従 つて、 PlayList itlの P 1 ayl tem#0によって再生されるクリップは、 ク リップ情報ファイル" 00003. CLP"に対応するクリッブストリームファ ィル" 00003.PS"の、 時刻 90, 000から 81, 090, 000までである。
次に、 第 30図 Aおよび第 30図 Bは、 第 12図で説明したクリッ プ情報ファイル ClipOの具体例を示している。 即ち、 第 30図 Aおよ び第 3 0図 Bは、 第 6図のクリップ情報ファイル" 00001. CLP", " 0000 2. CLP", " 00003. CLP"の具体例を示している。
クリップ情報ファイル" 00001. CLP"においては、 presentation— star t— timeが 90, 000に、 presentat ion— end_t imeが 27, 990, 000に、 それぞ れなっている。 従って、 クリップ情報ファイル" 00001.CLP"に対応す るクリップストリームファイル" 00001.PS"に格納されたプログラムス トリ一ムによれば、 310秒分 ((27,990,000- 90, 000)/90kHz) のコンテ ンッが利用可能である。
また、 クリップ情報ファイル" 00001. CLP"においては、 capture_ena ble_flag— Clipが 1になっており、 従って、 クリップ情報ファイル" 00 001. CLP"に対応するクリップストリ一ムファイル" 00001.PS"に格納さ れたプログラムストリームに多重化されたビデオストリ一ムについて は、 その 2次利用が許可されている。
さらに、 第 3 0図 Aおよび第 3 0図 Bにおいて、 クリップ情報 ァ ィル" 00001. CLP"の number— of_streamsは 4となっており、 従って、 対 応するクリップストリームファイル" 00001.PS"に格納されたプロダラ ムストリームには、 4本のエレメンタリストリームが多重化されてい る。
いま、 その 4本のエレメン夕リストリームを、 stream#0, streamtl , stream#2, s treara#3とすると、 第 3 0図 Aおよび第 3 0図 Bでは、 その 4本のエレメンタリストリ一ム stream#0, streamtl, stream#2, stream^それぞれの S eamlnioO (第 1 2図) の具体例が、 「" 00001 . CLP"」 の欄の下方に記載されている。
クリップストリームフアイル" 00001.PS"の 1本目のエレメン夕リス トリ一ム stream#0については、 s tream_i dが OxEOとなっており、 従つ て、 このエレメンタリストリーム stream#0は、 第 2 3図および第 2 5 図 (あるいは第 1 3図) で説明したように、 ビデオストリームである 。 なお、 本実施の形態では、 ビデオストリームについては、 上述した ように、 private_stream_idは無関係であるが、 第 3 0図 Aおよび第 3 0図8では、 0x00になっている。
また、 クリッブストリームファイル" 00001.PS"の 1本目のエレメン 夕リストリームであるビデオストリーム streani#0については、 その St reamlnfoOに含まれる StaticInfoO (第 1 4図) の picture— sizeが' 7 20X480'に、 frame_rateが' 29.97Hz'に、 cc— f lagが' Yes'に、 それぞ れなっている。 従って、 このビデオストリーム stream#0は、 720X480 ピクセルの、 フレーム周期が 29.97Hzのビデオデ一夕であり、 さらに 、 クローズドキャプションデータを含んでいる。
さらに、 クリッブス卜リ一ムファイル" 00001.PS"の 1本目のエレメ ンタリストリームであるビデオストリーム stream#0については、 Stre amlnfoO (第 1 2図) の number— of— Dynamiclnfoが 0になっており、 s p ts— change— pointと Dynamiclnfo 0とのセットは存在しない。 ■' 次に、 クリップストリ一ムファイル" 00001.PS"の 2本目のエレメン タリストリーム streamitlについては、 3 6&11し1(1が(^80となってぉり 、 private— stream— idが 0x00となっている。 従って、 このエレメン夕 リス.トリ一ム stream#lは、 第 2 3図および第 2 5図で説明したように 、 ATRACオーディオストリームである。
また、 クリップストリームフアイル" 00001. PS"の 2本目のエレメン タリストリ一ムである ATRACオーディォストリ一ム streamttlについて は、 その StreamlnioOに含まれる StaticInfoO (第 1 4図) の audio_ language— code力 '日本語'(こ、 channel— conf igurai ion力 ' STEREO' こ、 lfe— existenceカ O に、 sampl ίη — frequency力 48kHz に、 そ て'れ なっている。 従って、 この ATRACオーディオストリーム streamitlは、 日本語で、 かつステレオのオーディオデ一夕である。 また、 低域強調 チャネルは含まれておらず、 サンプリング周波数は、 48kHzである。 さらに、 クリップストリームファイル:' 00001.PS"の 2本目のエレメ ン夕リストリームである ATRACオーディォストリーム streamsについ ては、 StreamlnfoO (第 1 2図) の number— oし Dynamiclnfoが 0にな つており、 pts_change— pointと DynamicInfoOとのセッ トは存在しな い。
次に、 クリップス卜リームファイル" 00001.PS"の 3本目のエレメン タリストリーム stream については、 s t ream_i dが OxBDとなっており 、 private— stream— idが 0x80となっている。 従って、 このエレメン夕 リストリーム stream#2は、 第 2 3図および第 2 5図で説明したように 、 字幕ストリ一ムである。 また、 クリップストリ一ムファイル" 00001.PS"の 3本目のエレメン 夕リストリ一ムである字幕ストリーム stream については、 その
Figure imgf000070_0001
amlnfoOに含まれる StaticInfoO (第 1 4図) の subt i tie— language— codeが' 日本語'に、 configurable— flagが 0に、 それぞれなっている 。 従って、 この字幕ストリーム stream#2は、 日本語の字幕デ一夕であ り、 また、 その表示方式を変更することは許可されていない。
さらに、 クリップストリームファイル" 00001.PS"の 3本目のエレメ ンタリストリームである字幕ストリーム s eam#2については、 Stream InfoO (第 1 2図) の number— of— Dynamiclnfoが 0になっており、 pts —change一 pointと Dynamiclnfo 0とのセッ 卜は存在しなレ 。
次に、 クリップストリームファイル" 00001.PS"の 4本目のエレメン 夕リストリーム stream#3については、 stream— idが OxBDとなっており 、 private— stream— idが 0x81となっている。 従って、 このエレメン夕 リストリーム stream#3は、 第 2 3図および第 2 5図で説明したように 、 字幕ストリームである。
なお、 クリップストリ一ムファイル" 00001.PS"の 3本目のエレメン 夕リストリームである字幕ストリーム st.ream#2と、 4本目のエレメン 夕リストリームである字幕ストリーム stream#3とを区別するために、 それぞれの pri vat e_st ream—idは、 0x80と 0x81とになっている。
また、 クリップストリームファイル" 00001.PS"の 4本目のエレメン タリストリームである字幕ス卜リーム stream#2については、 その St re amlnfoOに含まれる StaticInfoO (第 1 4図) の subt i t le— language— codeが' 日本語'に、 configurable_nagが 1に、 それぞれなっている 。 従って、 この字幕ストリーム stream#3は、 日本語の字幕データであ り、 また、 その表示方式を変更することが許可されている。
さらに、 クリップストリームファイル" 00001.PS"の 4本目のエレメ ンタリストリームである字幕ストリーム streani#3については、 Stream InfoO (第 1 2図) の number— of Dynamiclnfoが 0になっており、 ts change— pointと Dynamic InfoOとのセットは仔在しない。
次に、 第 3 0図 Aおよび第 3 0図 Bにおいて、 クリップ情報フアイ ル" 00002. CLP"については、 presentation—start— timeが 90, 000に、 pr esentation— end—timeが 27, 090, 000に、 それぞれなっている。 従って 、 クリップ情報ファイル" 00002. CLP"に対応するクリッブストリーム ファイル" 00002.PS"に格納されたプログラムストリームによれば、 30 0秒分 ((27, 090, 000-90, 000) /90kHz) のコンテンツが利用可能である また、 クリップ情報ファイル" 00002. CLP"においては、 capture— ena blejlag—Clipが 0になっており、 従って、 クリップ情報ファイル" 00 002. CLP"に対応するクリッブストリームファイル" 00002.PS"に格納さ れたプログラムストリームに多重化されたビデオストリームについて は、 その 2次利用が許可されていない。
さらに、 第 3 0図 Aおよび第 3 0図 Bにおいて、 クリップ情報ファ ィル" 00002. CLP"の number_oし streamsは 4となっており、 従って、 対 応するクリップストリームファイル" 00002.PS"に格納されたプログラ ムストリームには、 上述したクリップストリームファイル" 00001.PS" における場合と同様に、 4本のエレメンタリストリームが多重化され ている。
いま、 その 4本のエレメン夕リストリームを、 stream#0, stream#l , stream#2, s t ream#3とすると、 第 3 0図 Aおよび第 3 0図 Bでは、
Figure imgf000071_0001
リス卜リーム s tream#0, stream#l, s eam#2 streani#3それぞれの StreanilnfoO (第 1 2図) の具体例が、 「" 00002 .CLP"」 の欄の下方に記載されている。 ここで、 第 3 0図 Aおよび第 3 0図 Bでは、 クリップス トリームフ アイル" 00002.PS"の 1乃至 4本目のエレメンタリストリーム streai^O 乃至 #3それぞれの StreanilnfoOの内容は、 上述したクリッブストリ'一 ムファイル" 00001.PS"の 1乃至 4本目のエレメンタリストリーム st re am#0乃至 #3それぞれの StreamlnfoOの内容と同一になっているので、 その説明は省略する。
なお、 上述のように、 クリ ップストリームファイル" 00002.PS"の 1 乃至 4本目のエレメン夕リストリーム3 6&111#0乃至#3それぞれの5 6 amlnfoOの内容は、 クリップストリームファイル" 00001. PS"の 1乃至 4本目のエレメン夕リストリーム stream#0乃至 #3それぞれの Streamln fo()の内容と同一であるので、 クリッブストリームファイル" 00002. P S"の 1本目のエレメン夕リストリーム stream#0はビデオストリームで あり、 2本目のエレメンタリストリーム s eam#lは ATRACオーディオ ストリームである。 また、 その 3本目のエレメン夕リストリーム stre am#2と、 4本目のエレメンタリストリ一ム s t ream#3は、 いずれも字幕 ス卜リームである。
次に、 第 30図 Aおよび第 30図 Bにおいて、 クリップ情報フアイ ル" 00003. CLP"については、 presentation— start— timeが 90, 000に、 r esentation一 end— timeが 81, 090, 000に、 それぞれなっている。 従って 、 クリップ情報ファイル" 00003. CLP' 'に対応するクリップストリーム ファイル" 00003.PS"に格納されたプログラムストリームによれば、 90 0秒分 ((81, 090, 000-90, 000) /90kHz) のコンテンツが利用可能である また、 クリップ情報ファイル" 00003. CLP"においては、 capture— ena ble— flag— Clipが 1になっており、 従って、 クリップ情報ファイル" 00 003. CLP"に対応するクリップストリームファイル" 00003.PS"に格納さ れたプログラムストリームに多重化されたビデオストリームについて は、 その 2次利用が許可されている。
さらに、 第 3 0図 Aおよび第 3 0図 Bにおいて、 クリップ情報ァァ ィル" 00003.CLP"の numbeし 0し s earnsは 3となっており、 従って、 対 応するクリッブストリ一ムファイル" 00003.PS"に格納されたプロダラ ムストリームには、 3本のエレメン夕リストリームが多重化されてい る。
いま、 その 3本のエレメン夕リストリームを、 stream#0, streamtl , stream#2とすると、 第 3 0図 Aおよび第 3 0図 Bでは、 その 3本の エレメン夕リストリ一ム st.ream#0, streamtl, stream#2それぞれの St reamlnfoO (第 1 2図) の具体例が、 「" 00003. CLP"」 の欄の下方に 記載されている。
クリップストリームファイル" 00003. FS"の 1本目のエレメンタリス トリ一ム siream#0については、 s ί ream—i dが Ολ'ΕΟとなっており、 従つ て、 このエレメン夕リストリーム stream#0は、 第 2 3図および第 2 5 図 (あるいは第 1 3図) で説明したように、 ビデオストリ一ムである 。 なお、 クリップストリームファイル" 0.000i.PS"の 1本目のエレメン タリストリーム stream#0と同様に、 pr ivate— s tream— idは、 0x00にな つている。
また、 クリップストリームファイル" 00003.PS"の 1本目のエレメン 夕リストリームであるビデオストリーム stream#0については、 その St reamlnfoOに含まれる StaticInfoO (第 1 4図) の picture_sizeが' 7 20X480'に、 frame_rateが' 29.97Hz'に、 cc— flagが' No'に、 それぞれ なっている。 従って、 このビデオストリーム siream#0は、 720X 480ピ クセルの、 フレーム周期が 29.97Hzのビデオデ一夕であり、 さらに、 クロ一ズドキヤプションデ一夕を含んでいない。 さらに、 クリップストリームファイル" 00003.PS"の 1本目のエレメ ン夕リストリ一ムであるビデオストリ一ム stream#0については、 s e amlnfoO (第 1 2図) の number— of_DynamicInfoが 2になっており、 従って、 その S t reamlnfo 0には、 pts— change— pointと Dynamiclnfo 0 とのセッ トが 2セッ ト記述されている。
次に、 クリップストリームファイル" 00003.PS"の 2本目のエレメン 夕リストリーム stream#lについては、 s t ream— i dが OxElとなっており 、 従って、 このエレメン夕リストリーム stream#lは、 第 2 3図および 第 2 5図 (あるいは第 1 3図) で説明したように、 ビデオストリーム である。 なお、 クリップストリームファイル" 00003.PS"の 1本目のェ レメン夕リストリームであるビデオストリーム streani#0と、 2本目の エレメン夕リストリームであるビデオストリーム stream#lとを区別す るために、 それぞれの s eam— idは、 OxEOと OxElとになっている。 ま た、 クリップストリームファイル" 00001.PS"の 1本目のエレメン夕リ ストリーム stream#0と同様に、 pr ivate— s tream— idは、 0x00になって いる。
また、 クリッブストリ一ムファイル" Q0003.PS"の 2本目のエレメン タリス トリームであるビデオストリ一ム stream#lについては、 その St reamlnfoOに含まれる S ticInfoO (第 1 4図) の picture_s ize, f r ame— rate, cc— flagが、 1本目のエレメン夕リストリームであるビデ ォストリ一ム streani#0についてのものと同一になっている。 従って、 クリップストリームファイル" 00003.PS"の 2本目のエレメン夕リス 卜 リームであるビデオストリ一ム stream#lは、 720 X 480ピクセルの、 フ レーム周期が 29.97Hzのビデオデ一夕であり、 さらに、 クローズドキ ャプシヨンデ一夕を含んでいない。
さらに、 クリップストリームファイル" 00003.PS' 'の 2本目のエレメ ン夕リストリームであるビデオストリーム stream#lについては、 Stre amlnfoO (第 1 2図) の number— of— Dynamiclnf oが 0になっており p ts— change—pointと Dynamiclnfo 0とのセットは存在しなレ 。 ■ 次に、 クリップストリームファイル" 00003.PS"の 3本目のエレメン タリストリ一ム stream については、 stream— idが OxBDとなっており 、 private_stream— idが 0x00となっている。 従って、 このエレメンタ リストリーム stream#2は、 第 2 3図および第 2 5図で説明したように 、 ATRACオーディオストリームである。
また、 クリップストリームファイル" 00003.PS"の 3本目のエレメン タリストリームである ATRACォ一ディォストリ一ム stream#2について は、 その StreamlnfoOに含まれる StaticInfoO (第 14図) の audio_ 1 anguage— code, channel_conf igurat ion, 1 f e_exis tence, sampling一 frequencyが、 クリップストリームファイル" 00001. PS"の 2本目の:!: レメンタリストリームである ATRACオーディォストリ一ム streamttlの ものと同一になっている。 従って、 クリップストリームファイル" 000 03.PS"の 3本目のエレメン夕リストリームである ATRACオーディォス 卜リーム stream#2は、 日本語で、 かつステレオのオーディオデータで ある。 また、 低域強調チャネルは含まれておらず、 サンプリング周波 数は、 48kHzである。
さらに、 クリップストリームファイル" 00003.PS"の 3本目のエレメ ン夕リストリームである ATRACオーディォストリーム stream#2につい ては、 StreamlnfoO (第 1 2図) の number一 of— Dynamiclnfoが 3にな つており、 従って、 その StreamlnfoOには、 pts— change— pointと Dyna micInfoOとのセッ卜が 3セット記述されている。
次に、 第 3 1図は、 第 1 2図で説明したクリップ情報ファイル Clip 0のうちの EP_map()具体例を示している。 即ち、 第 3 1図は、 第 6図 のクリップ情報ファイル" 00001. CLP"の中の、 第 1 6図の EPjnapOの 具体例を示している。
第 3 1図において、 EP— map()の number— 0し s tream— id_entriesは こ なっており、 従って、 この EP— mapOには、 1つのエレメン夕リストリ —ムについてのデコード開始可能点の情報が記述されている。
また、 第 3 1図の EPjnapOでは、 s t ream— i dが OxEOになっている。 従って、 第 2 3図および第 2 5図で説明したことから、 EPjnapOには 、 OxEOとなっている streanし idによって特定されるビデオストリ一ム についてのデコード開始可能点である RAPI (ランダムアクセスボイン ト情報) の情報として、 PTS— EP_startと RPN_EP_start (第 1 6図) が 記述されている。 即ち、 第 3 1図は、 クリップ情報ファイル" 00001. C LP"の EP— map 0であり、 クリップ情報ファイル" 00001. CLP"に対応する クリップストリームファイル" 00001. CLP"において、 stream— idが OxEO のエレメン夕リストリームは、 第 3 0図 Aおよび第 3 0図 Bで説明し たように、 クリップストリームファイル" 00001. CLP"の 1本目のビデ ォストリーム stream#0であるから、 第 3 1図の EP—map 0に記述されて いる情報は、 そのビデオストリーム stre i#0のデコード開始可能点の PTS— EP一 s t ar tと RPN_EP_s t ar tである。
第 3 1図では、 クリップストリームファイル" 00001. CLP"の 1本目 のビデオストリーム streamsのデコード開始可能点のうちの、 先頭か ら 5点の PTS_EP— startと RPN— EP— startが記載されており、 6点目以降 の PTS— EP— startと RPN_EP— startの記載は省略してある。
RPN— EP— start、 PTS_EP— s t ar t、 1 s tReし P i c ture、 2ndReし Picture, 3rdReし Picture, 4thReし Pictureは、 多重化ストリームに多重化され たすベての RAPIの開始位置に加えて、 RAPI直後に置かれているイント ラピクチャ及びそれにつづく 2枚目、 3枚目、 4枚目の参照画像の終了 位置が示されている。
先頭の RAPIの位置は 0 (セクタ) であり、 直後のイントラピク ヤ の PTSは 90, 000である。 また、 該当イントラピクチャ、 および 2枚目'、 3枚目、 4枚目の参照画像の終了位置は、 RAPIの先頭からの相対セクタ 数でそれぞれ、 28, 37, 48, 58である。
また、 2番目の RAPIの位置は 244 (セクタ) であり、 直後のイント ラピクチャの PTSは 135,045である。 また、 該当イントラピクチャ、 お よび 2枚目、 3枚目、 4枚目の参照画像の終了位置は、 RAPIの先頭から の相対セクタ数でそれぞれ 10, 18, 25, 31である。
さらに、 3番目の RAPIの位置は 305 (セクタ) であり、 直後のイン トラピクチャの PTSは 180, 090である。 また、 該当イントラピクチャ、 および 2枚目、 3枚目、 4枚目の参照画像の終了位置は、 RAPIの先頭か らの相対セクタ数でそれぞれ 25, 44, 50, 54である。
また、 4番目の RAPIの位置は 427 (セクタ) であり、 直後のイント ラピクチャの: PTSは 225, 135である。 また、 該当イントラピクチャ、 お よび 2枚目、 3枚目、 4枚目の参照画像の終了位置は、 RAPIの先頭から の相対セクタ数でそれぞれ 8, 15, 22, 2.9である。
さらに、 5番目の RAPIの位置は 701 (セクタ) であり、 直後のイン トラピクチャの Sは 270, 180である。 また、 該当イントラピクチャ、 および 2枚目、 3枚目、 4枚目の参照画像の終了位置は、 RAPIの先頭か らの相対セクタ数でそれぞれ 26, 32, 41, 48である。
N - th—Ref— picture— copyは、 4点の参照画像終了位置 (IstRefJPict ure、 2ndRef—Picture、 3rc!Ref_Picture, 4thReし Picture) のうち、 所定のセクタ数 (エンコード処理において、 まとめて読出可能なセク 夕数) に近い値が格納される。 第 3 1図においては、 セクタ数が" 30" に一番近いものが選択されている。 例えば、 先頭のェントリに対しては1^3_5?__31& =90,000、 RPN_EP — start = 0である。 N-th— Reし picture— copyは、 28, 37, 48, 58のなか から" 30"に一番近い 28が選択され、 この結果
Figure imgf000078_0001
eし p i c t u r eを示す値 " 0 "が格納されている。
次に、 2番目のエントリに対しては PTS_EP_start = 135, 045、 RPIE P_s rt = 244である。 N_th— Reし pic ture— copyは、 10, 18, 25, 31の なかから" 30"に一番近い 31が選択され、 この結果 index— N— minuslには 4 thReし pictureを示す値" 3"が格納されている。
これにより、 第 3 1図の例の 5点 7のエントリに対する index— Iminus
6
1と N- th_Reし picture— copyは (0, 28) , (3, 31) , (0, 25) , (3 , 29) , (1, 32) が格納される。
この選択アルゴリズムは、 再生機器における再生品質等、 総合的に 勘案して決定される。 そこで、 本実施例においては、 比較的小さいセ クタ数" 30"に一番近いものを選ぶとしているが、 これ以外のセクタ数 であってもよい。 また、 indexJUninuslの値が小さいとき、 RAPIの位 置から N- t.h_Rei_picture一 copyの大きさだけデータを読み込んだとき に、 そこに含まれる参照画像の数が少な.く、 逆に indexji—minuslの値 が大きいときは、 含まれている参照画像の数が多いということになる
さらに、 この例では 5点のデータ全てに 4枚の参照画像の終了位置 が記述されているが、 ビデオエンコードの方法、 あるいはイントラピ クチャの間隔によっては、 参照画像が 4枚未満となる可能性もある。 そのような場合には、 各エントリポイントに対して存在する、 4枚以 下の最大の参照画像の終了位置を記述するという方法も考えられる。 なお、 第 3 1図の EPjnapOにおいて、 pr ivate— s t reanし i dは 0x00に なっているが、 stream_idがビデオストリームを表している場合は、 上述したように、 private— st ream_idは無関係である。
次に、 第 3 2図は、 第 2 9図で説明した P yUst #0と PlayLis #1 (第 7図の P yUst 0) の中の?13 311^ 0の具体例を示'してぃる 第 3 2図上側は、 ayList #0の P 1 ayL i s tMark 0 (第 9図) を示し ている。
第 3 2図上側において、 PlayList #0の P yListMarkOにおける num ber_oし PlayList— marksは 7になっており、 従って、 P yList IfOの Pla yL is tMark 0に含まれる Mark 0の数は 7である。
また、 第 3 2図上側において、 PlayList #0に含まれる 7つの Mark( ;)のうちの 1番目の MarkOである MarkifOは、 markjype (第 9図) が' C hapter'になっているので、 チヤプ夕マ一クである。 さらに、 Mark#0 は、 ref_to— Playltem— id (第 9図) が 0になっているので、 PlayList #0に含まれる第 2 9図の 2つの PlayItem#0と #1のうちの、 PlayItem#0 に属する。 また、 Mark#0は、 mark— t ime— s t ampが 180, 090になっている ので、 PlayList #0に含まれる PlayltemitOによって再生されるクリツ プストリームファイルの時刻 (再生時刻) 180, 090上の印である。 さ らに、 Mark#0は、 entry— ES— stream— idおよび entry— ES— private— strea m— idがいずれも 0になっているので、 いずれのエレメン夕リストリー ムにも関連付けられていない。 また、 Mark#0は、 mark一 dataが 1になつ ているので、 番号が 1のチヤプ夕を表す。
なお、 ここでは、 PlayList #0に含まれる Playl tem#0によって再生 されるクリップストリームファイルは、 第 2 9図で説明した、 その P1
3 116111#0の(:1113_11 011^ 011— 16—1^1116に記述されてぃる"00001. (:1^" から特定されるクリップストリームファイル" 00001.PS"であり、 従つ て、 MarklfOの mark— time stampが表す、 上述した時刻 180, 090は、 クリ ップストリームフアイル" 00001.PS"の時刻である。
第 3 2図上側において、 PlayList #0に含まれる 7つの MarkOの Sう ちの 5番目の MarkOである Mark#4も、 1番目の Mark#0と同様のチヤ'プ 夕マークである。
即ち、 5番目の MarkOである Mark#4は、 mark— type (第 9図) が' Ch apter'になっているので、 チヤプ夕マークである。 さらに、 Mark#4は 、 ref—to—Playltem— id (第 9図) が 1になっているので、 PlayList #0 に含まれる第 2 9図の 2つの Playltem#0と #1のうちの、 Playitem#lに 属する。 また、 Mark#4は、 mark— time— stampが 90, 000になっているの で、 PlayList #0に含まれる Playl tem#lによって再生されるクリップ ストリ一ムファイルの時刻 90, 000上の印である。 さらに、 Mark#4は、 entry— ES— stream— idおよひ en try— ES— private— stream— idがレ ずれも 0 になっているので、 いずれのエレメンタリストリームにも関連付けら れていない。 また、 Mark#4は、 mark_da が 2になっているので、 番号 が 2のチヤプタを表す。
なお、 ここでは、 PlayList #0に含まれる P 1 ay I tem#lによって再生 されるクリップストリームファイルは、 第 2 9図で説明した、 その P1 ayl tem#lの Clip_Infomai ion_fi le— nameに記述されている" 00002. CLP" から特定されるクリップストリームファイル" 00002.PS"であり、 従つ て、 Mark#4のmark—tiIne_stampが表す、 上述した時刻90,000は、 クリ ップストリームファイル" 00002.PS"の時刻である。
また、 第 3 2図上側において、 PlayList #0に含まれる 7つの Mark( )のうちの 2番目の MarkOである Mark#lは、 niark_type (第 9図) が' I ndex'になっているので、 インデクスマークである。 さらに、 Mark#l は、 reし to— Playltem— id (第 9図) が 0になっているので、 PlayList #0に含まれる第 2 9図の 2つの P yltemftOと #1のうちの、 P yltemitO に属する。 また、 Markiflは、 mark— t ime— stampが 5, 580, 090になってい るので、 PlayList #0に含まれる P 1 ay 11 em#0によって再生されるグリ ップストリームファイルの時刻 5, 580, 090上の印である。 さらに、 Mar k#lte、 entry_ES_s t ream— i dおよび ent ry— ES— pr ivate— s t ream— id力 い ずれも 0になっているので、 いずれのエレメン夕リストリームにも関 連付けられていない。 また、 Mark#lは、 mark_dataが 1になっているの で、 番号が 1のインデクスを表す。
なお、 ここでは、 PlayList #0に含まれる Playl tem#0によって再生 されるクリップストリームファイルは、 上述したように、 クリップス トリ一ムファイル" 00001.PS"であり、 従って、 Mark#lの mark— time_st ampが表す、 上述した時刻 5, 580, 090は、 クリップストリームファイル " 00001.PS"の時刻である。
第 3 2図上側において、 PlayList #0に含まれる 7つの MarkOのう ちの 3番目、 6番目、 7番目の MarkOである Mark#2, Markt5, ark#6 も、 2番目の Markltlと同様のインデクスマークである。
また、 第 3 2図上側において、 PlayList #0に含まれる 7つの Mark( )のうちの 4番目の MarkOである Mark#3は、 mark— type (第 9図) が 'E vent'になっているので、 イベントマークである。 さらに、 Mark#3は 、 ref— to— Playltem— id (第 9図) が 0になっているので、 PlayList #0 に含まれる第 2 9図の 2つの PlayItem#0と #1のうちの、 PlayltemifOに 属する。 また、 Mark#3は、 markjime— stampが 16, 380, 090になってい るので、 PlayList #0に含まれる Playl tem#0によって再生されるクリ ップストリームファイルの時刻 16, 380, 090上の印である。 さらに、 Ma rk#3は、 entry— ES—s t ream— idおよび entry— ES— private— s t ream— id力 Sレ ずれも 0になっているので、 いずれのエレメン夕リストリームにも関 連付けられていない。 また、 Mark#3は、 mark dataが 0になっているの で、 引数として 0を伴うイベントを発生させる。
なお、 ここでは、 PlayList #0に含まれる P lay I tem#0によって; ^生 されるクリップストリームファイルは、'上述したように、 クリップス トリ一ムファイル" 00001.PS"であり、 従って、 Mark#3の mark— time一 st ampが表す、 上述した時刻 16,380,090は、 クリップストリ一ムフアイ ル" 00001.PS"の時刻である。
ここで、 第 3 2図上側では、 PlayList #0の PlayListMarkOの一覧 表の欄外の右側に、 M a r 1ί 0が属する P I a y 11 e m 0の先頭からの時間を示 してあり、 さらにその右側に、 PlayList #0の先頭からの時刻を示し てある。
次に、 第 3 2図下側は、 PlayLis lの PlayListMarkO (第 9図) を 示している。
第 3 2図下側において、 PlayLis 1の PlayListMarkOにおける numb er—oし PlayList— marksは 3になっており、 従って、 PlayListJlの PlayL istMarkOに含まれる Mark 0の数は 3である。
また、 第 3 2図下側において、 P yList#lに含まれる 3つの MarkO のうちの 1番目の MarkOである Mark#0は、 markjype (第 9図) が' Ch apter'になっているので、 チヤプ夕マークである。 さらに、 Mark#0は 、 ref_to_PlayItem_id (第 9図) が 0になっているので、 PlayListm に含まれる第 2 9図の 1つの PlayltemttOに属する。 また、 MarkltOは、 mark— time—stampが 90, 000になっているので、 PlayList#lに含まれる P layltem#0によって再生されるクリッブストリ一ムファイルの時刻 90, 000上の印である。 さらに、 Mark#0は、 entry— ES—s tream— idおよび ent ry—ES— private— st reamjdがいずれも 0になっているので、 いずれのェ レメンタリストリームにも関連付けられていない。 また、 Mark#0は、 mark— dataが 0になっているので、 番号が 0のチヤプ夕を表す。 なお、 ここでは、 ?1& ぃ5 1に含まれる?1& 116111#0にょって再生さ れるクリップストリームファイルは、 第 2 9図で説明した、 その Play I tem#0の CI ip— Infonmt ion— Π le_nameに記述されている" 00003. CLP"か ら特定されるクリッブストリームフ: rィル" 00003.PS"であり、 従って 、 Mark#0の mark— time— stampが表す、 上述した時刻 90, 000は、 クリツ ブストリームファイル" 00003.PS"の時刻である。
第 3 2図下側において、 PlayList#lに含まれる 3つの MarkOのうち の 2番目の MarkOである Mark#lは、 mark— type (第 9図) 力 'Event'に なっているので、 イベントマークである。 さらに、 Mark#lは、 ref—〖o — Playltem— id (第 9図) が 0になっているので、 PlayLis t#lに含まれ る第 2 9図の 1つの PlayItem#0に属する。 また、 Markiflは、 mark— tini e一 st ampが 27, 090, 000になっているので、 PlayList#lに含まれる Playl tem#0によって再生されるクリッブストリ一ムファイルの時刻 27, 090, 000上の印である。 さらに、 Markitlは、 entry_ES_streanし idが OxEOで 、 entry— ES— private— stream—id力 0になっているので、 stream— idが Ox E0で特定されるエレメンタリストリーム、 即ち、 第 2 3図および第 2 5図で説明したように、 ビデオストリームに関連付けられている。 ま た、 Mark#lは、 mark— dataが 1になっているので、 引数として 1を伴う イベントを発生させる。
なお、 ここでは、 PlayList#lに含まれる P yltemifOによって再生さ れるクリッブストリームフアイルは、 上述したように、 クリッブスト リームファイル" 00003.PS"であり、 従って、 MarklHの markjime— stam pが表す、 上述した時刻 27, 090, 000は、 クリップストリームファイル" 00003.PS"の時刻である。
また、 Mark#lが関連付けられている、 s eam_i dが OxEOのビデオス 'トリ一ムは、 その Mark#lが属する、 第 2 9図の PlayLis lに含まれる Playl tem#0の CI ip— Infomat ion— Π le一 nameに記述されている" 00003. CL P"に記述されている stream_idが OxEOのビデオストリ一ム、 即ち、 第 3 0図 Aおよび第 3 0図 Bのクリップ情報ファイル" 00003. CLP"がら 特定される、 クリップストリームファイル" 00003.PS"に多重化されて いる 3本のエレメン夕リストリーム stream#0乃至 Πのうちの、 1本目 のエレメン夕リストリーム (ビデオストリーム) stream#0である。 次に、 第 3 2図下側において、 PlayListtnに含まれる 3つの MarkO のうちの 3番目の MarkOである Mark#2は、 mark_type (第 9図) が 'Ev ent'になっているので、 イベントマークである。 さらに、 Mark#2は、 ref_to_PlayItem_id (第 9図) が 0になっているので、 P yListitlに 含まれる.第 2 9図の 1つの PlayItem#0に属する。 また、 Mark#lは、 ma rk_Ume— stampが 27, 540, 000になっているので、 PlayList#lに含まれ る PlayItem#0によって再生されるクリップストリ一ムフアイルの時刻 27, 540, 000上の印である。 さらに、 Mark#2は、 en t ry— ES— s t ream_i dが OxElで、 entry— ES—private_stream_idが 0になっているので、 stream— idが OxElで特定されるエレメンタリストリ一ム、 即ち、 第 2 3図およ び第 2 5図で説明したように、 ビデオス.トリームに関連付けられてい る。 また、 Mark#2は、 mark_da が 2になっているので、 引数として 2 を伴うィベントを発生させる。
なお、 ここでは、 PlayList#lに含まれる PlayItem#0によって再生さ れるクリップストリ一ムファイルは、 上述したように、 クリップスト リームファイル" 00003.PS"であり、 従って、 Mark#2が表す、 上述した 時刻 27, 540, 000は、 クリ ップストリームファイル" 00003.PS"の時刻で める。
また、 Mark#2が関連付けられている、 s t ream— i dが OxElのビデオス トリ一ムは、 その Mark#2が属する、 第 2 9図の P yList#lに含まれる Playl tem#0の CI ip— Infomat ion— Π le— nameに記述されている" 00003. CL P"に記述されている stream— idが OxElのビデオス トリ一ム、 即ち、 S第 3 0図 Aおよび第 3 0図 Bのクリップ情報ファイル" 00003. CLP"がら 認識される、 クリッブストリ一ムファイル'' 00003.PS"に多重化されて いる 3本のエレメンタリストリーム stream#0乃至 #2のうちの、 2本目 のエレメンタリストリーム (ビデオストリーム) stream#lである。 ここで、 第 3 2図下側では、 P yList#lの PlayListMarkOの一覧表 の欄外の右側に、 MarkOが属する PlayltemOの先頭からの時刻を示し てある。
なお、 第 3 2図においては、 チヤプ夕マークやインデクスマークが 表すチヤプ夕ゃィンデクスの番号が、 mark_da に記述されているが 、 チヤプ夕マークゃィンデクスマ一夕が表すチヤプタゃィンデクスの 番号は、 mark— dataに記述しなくても、 例えば、 PlayListMarkOにお けるチヤプタマ一クゃインデクスマークの数をカウントすることによ つて認識することができる。
[ディスク再生装置の動作説明]
次に、 第 1図のディスク 1 0 1に、 第.2 9図乃至第 3 2図で説明し たようなデ一夕が記録されているとして、 第 1図のディスク再生装置 の動作について説明する。
ここで、 多重方式としている MPEG2- systemの規定に拠れば、 タイム スタンプは全てのアクセスュニッ 卜に付加する必要は無く、 その間隔 が 0.7秒以下で良いとされている。 つまり、 タイムスタンプを持つァ クセスユニッ トと持たないアクセスユニッ トが存在する。
尚、 ここで説明している例では、 デコード開始位置のビデオストリ —ムのアクセスユニッ トには必ず夕ィムス夕ンプが付加されていると 仮定している。 すなわち 「再生準備処理」 で後述するように、 デコー ド開始位置は EP— map 0を使用して式 PTS— EP— s t a r t≤ I N— ti n】eを満たす 最大の PTS_EP—startを、 二分探索 (バイナリサーチ) 等を用いて検索 している。 EPjnapOに登録されているビデオの再生開始位置直後のァ さらに、 孤立フィールド(non-paired field)は存在しないとしてい る。 すなわち、 pic— struc 1のアクセスユニッ トの直後には必ず pic— struct = 2のアクセスュニッ 卜が置かれる。 また pic— s uct = 2のァクセ スュニッ トの直後には必ず pic— struc 1のアクセスュニッ 卜が置かれ る。
さらにこの例では pic— s uct= 7と 8は発生しないとする。
ディスク 1 0 1がディスク ドライブ 1 0 2に挿入されると、 その旨 を示すメッセージがドライブインターフェ一ス 1 1 4、 さらには、 第 2図 Aおよび第 2図 Bのオペレーティングシステム 2 0 1を経由して 、 ビデオコンテンツ再生プログラム 2 1 0に伝えられる。 ビデオコン テンッ再生プログラム 2 1 0は、 ディスク 1 0 1がディスク ドライブ 1 0 2に挿入された旨のメッセ一ジをオペレーティングシステム 2 0 1から受信すると、 第 3 3図の再生前処理を開始する。
「再生前処理」
即ち、 第 3 3図は、 ビデオコンテンツ再生プログラム 2 1 0が行う 再生前処理を説明するフローチャートである。
ここで、 以下、 フロ一チャートによって説明するディスク再生装置 の動作または処理は、 必ずしもフローチヤ一トとして記載された順序 に沿って時系列に行われる必要はなく、 並列的あるいは個別に行われ ることもある。 但し、 本明細書では、 便宜上、 ディスク再生装置の動 作または処理を、 フローチャートに沿って説明する。
再生前処理では、 ビデオコンテンツ再生プログラム 2 1 0は、 ステ ップ S 1 0 1において、 オペレーティ ングシステム 2 0 1のファイル システム機能を使用して、 ディスク 1 0 1をチェックし、 ディスク f l 0 1力 ビデオコンテンツ再生プログラム 2 1 0用の正常なデイス' 'ク であるか否かを判定する。
ここで、 上述したように、 ディスク 1 0 1へのアクセス (ファイル の読み出し) は、 オペレーティングシステム 2 0 1のファイルシステ ム機能を使用して行われるが、 以下では、 その説明は、 適宜省略する ステツプ S 1 0 1において、 ディスク 1 0 1が正常なディスクでな いと判定された場合、 即ち、 例えば、 ディスク 1 0 1に採用されてい るファイルシステムが、 オペレーティングシステム 2 0 1の対応して いないタイプであった場合や、 ルートディ レク トリに" V I DEO"ディ レ ク トリが置かれていない場合、 ビデオコンテンツ再生プログラム 2 1 0はディスク 1 0 1に対応していないと判断して、 ステップ S 1 0 2 に進み、 グラフィクス処理モジュール 2 1 9力 、 エラ一処理を行って 、 再生前処理を終了する。
即ち、 グラフィクス処理モジュール 2 .1 9は、 エラ一処理として、 ディスク 1 0 1が正常でない旨のエラ一メッセージを生成し、 ビデオ 出力モジュール 2 2 0から出力させ、 これにより、 エラーメッセージ を表示させる。 なお、 エラー処理としては、 その他、 例えば、 オーデ ィォ出力モジュール 2 2 1からの警告音の出力や、 ディスク ドライブ 1 0 2からのディスク 1 0 1の排出等を行うようにすることが可能で ある。
一方、 ステップ S 1 0 1において、 ディスク 1 0 1が正常なデイス クであると判定された場合、 ステップ S 1 0 3に進み、 ビデオコンテ ンッ再生プログラム 2 1 0は、 コンテンツデータ供給モジュール 2 1 3によって、 ォペレ一ティングシステム 2 0 1に対し、 ディスク 1 0 1 (第 6図) の" VIDEO"ディ レク トリに置かれている" SCRIPT. DAT"' アイルと、 "PLAYLIST.DAT"ファイルとの 2つのデータファイルを要求 して読み込み、 ステップ S 1 0 4に進む。 ステップ S 1 0 4では、 "S CRIPT. DAT"フアイルが、 スクリブト制御モジユール 2 1 1に供給され るとともに、 "PLAYLIST.DAT"ファイルが、 プレイヤ制御モジュール 2 1 2に供給される。
その後、 ステップ S 1 0 4から S 1 0 5乃至 S 1 0 7に進み、 プレ ィャ制御モジュール 2 1 2は、 初期化処理を行う。 なお、 スクリプト 制御モジュール 2 1 1は、 プレイヤ制御モジュール 2 1 2の初期化処 理が終了するまで待つ。
「プレイヤ制御モジュール 2 1 2の初期化処理」
初期化処理では、 ステップ S 1 0 5において、 プレイヤ制御モジュ ール 2 1 2が、 "PLAYLIST.DAT"ファイルの解析を行い、 "PLAYL1ST.DA T"ファイルの中で使われているクリップ情報ファイルの数とそのファ ィル名を調査する。
即ち、 いまの場合、 "PLAYLIST.DAT"フ.アイルは、 第 2 9図に示した ものとなっており、 プレイヤ制御モジュール 2 1 2は、 第 2 9図の" P LAYL 1ST. DAT"フアイルにおいて number_o f_P 1 ayL i s t sが 2になっている ことから、 1番目の PlayListlfOと 2番目の PlayListitlとの 2つの Play List 0が存在することを認識する。 さらに、 プレイヤ制御モジュール 2 1 2は、 第 2 9図の" PLAYLIST.DAT"ファイルにおける 1番目の P 1 ay List#0について、 numbeし of_Playnems力 2となっていることから、 そ の PlayList#0には、 1番目の Playl tem#0と 2番目の Playltem#lとの 2 つの PlayltemOが存在することを認識する。 そして、 プレイヤ制御モ ジュール 2 1 2は、 第 2 9図の" PLAYLIST.DAT"ファイルにおける、 P1 ayListifOに含まれる 1番目の PlayltemitOと 2番目の PI ay I temiflそれぞ れの Clip— Information_file_nameを参照することにより、 PlayLisl#0 に含まれる 1番目の PlayItem#0のクリ ップ情報ファイルが' ' 00001. CLP "であり、 2番目の Playltemitlのクリップ情報ファイルが" 00002. CLP" であることを認識する。
プレイヤ制御モジュール 2 1 2は、 2番目の PlayListiflについても 同様にして、 その number一 of_PlayItemsが 1であることから、 1つの P1 ay It em 0 (PlayItem#0) が存在し、 さらに、 その PlayItem#0の中の C1 ip— Information— file— nameから、 その PlayltemitOのクリップ情報ファ ィルが" 00003. CLP"であることを認識する。
その後、 ステップ S 1 0 5から S 1 0 6に進み、 プレイヤ制御モジ ユール 2 1 2は、 ディスク 1 0 1から、 ステップ S 1 0 5で認識した クリップ情報ファイル、 即ち、 ディスク 1 0 1の" VIDEO"ディ レク ト リ内の" CLIP"ディ レクトリから 3つのクリップ情報ファイル" 00001. C LP", " 00002. CLP", " 00003. CLP"を読み込む。
ここで、 ステップ S 1 0 6でのクリップ情報ファイルの読み込みは 、 最初に再生される PlayListOの Playlt.emのクリップ情報ファイルだ けで十分であるが、 本実施の形態では、 上述したように、 すべての P1 ayList 0の PlayltemOのクリップ情報ファイルを先読みしておく こと とする。
ステップ S 1 0 6の処理後は、 ステップ S 1 0 7に進み、 プレイヤ 制御モジュール 2 1 2は、 ステップ S 1 0 5で認識したクリップ情報 ファイルの読み込みに成功したかどうかを判定し、 さらに、 その読み 込んだクリップ情報フアイルに対応するクリップストリームフアイル 力 、 ディスク 1 0 1に存在するか否かを判定する。 即ち、 ステップ S 1 0 7では、 クリップ情報ファイル" 00001. CLP", " 00002. CLP" , "000 03. CLP' 'の読み込みに成功し、 さらに、 そのクリップ情報ファイル" 00 001. CLP", " 00002. CLP", " 00003. CLP"それぞれとファイル名の拡張子 のみが異なるクリッブス 卜リ—ムファイル" 00001.PS"、 " 00002.PS"'、 " 00003.PS"が、 ディスク 1 0 1の" VIDEO"ディ レク トリの下にある" ST REAM"ディ レク トリに存在するかどうかを判定する。
ステツプ S 1 0 7において、 ステツプ S 1 0 5で認識したクリップ 情報ファイルの読み込みに失敗したと判定されるか、 または、 クリツ プ情報ファイルに対応するクリッブス 卜リームファイルが、 ディスク 1 0 1に存在しないと判定された場合、 即ち、 例えば、 "PLAYLIST.DA T"ファイルにしたがった再生に必要なクリップ情報ファイルゃクリッ ブストリ一ムファイルが、 ディスク 1 0 1に記録されていない場合、 ビデオコンテンッ再生プログラム 2 1 0は、 ディスク 1 0 1に対応し ていないと判断して、 ステップ S 1 0 2に進み、 上述したエラ一処理 が行われ、 再生前処理を終了する。
一方、 ステップ S 1 0 7において、 ステップ S 1 0 5で認識したク リップ情報ファイルの読み込みに成功し、 かつ、 クリップ情報フアイ ルに対応するクリップストリームファイルが、 ディスク 1 0 1に存在 すると判定された場合、 プレイヤ制御モジュール 2 1 2は、 初期化処 理を終了し、 ステップ S 1 0 8に進む。
ステップ S 1 0 8では、 スクリプ卜制御モジユール 2 1 1 、 " SCR IPT.DAT"ファイルの解釈と実行を開始する。
例えば、 いま、 スクリプト制御モジュール 2 1 1が、 "SCRIPT.DAT" ファイルを実行することにより、 1番目の PlayList () (PlayList#0) の再生が、 プレイヤ制御モジュール 2 1 2に指示されたとすると、 第 3 4図の再生処理が行われる。
「再生処理」 即ち、 第 34図は、 ビデオコンテンツ再生プログラム 2 1 0が行う 再生処理を説明するフローチャートである。 ¾ 「再生準備処理」 " 再生処理では、 プレイヤ制御モジュール 2 1 2は、 まずステップ S 1 2 1と S 1 2 2において、 スクリプト制御モジュール 2 1 1から再 生を指示された PlayList 0、 即ち、 1番目の P 1 ayL i s t 0 (PI ayL i s t#0 ) の再生準備処理を行う。
即ち、 プレイヤ制御モジュール 2 1 2は、 ステップ S 1 2 1におい て、 1番目の PlayList#0に含まれ 8る 9 1番目の Playltem#0の INJime ( 第 8図) を確認して、 ステップ S 1 2 2に進み、 1番目の PlayLisiJO に含まれる 1番目の PlayItem#0によって再生されるクリップストリー ムファイル" 00001.PS"上の、 その Playnem#0の IN— timeに相当する、 再生を開始する再生開始位置を調査する。
ここで、 PlayltemOの IN— time (第 8図) が、 クリップストリーム ファイルの先頭を指し示している場合には、 クリップストリームファ ィルの先頭から、 プログラムストリームを読み出せば良いが、 IN_tim eが、 クリップストリームファイルの先頭以外を指し示している場合 には、 IN— timeに対応する位置を検出し、 そこからプログラムストリ ームを読み出す必要がある。
具体的には、 第 2 9図に示した場合、 1番目の PlayList#0に含まれ る 1番目の P yltemltOの INJimeは、 180,090である。 プレイヤ制御モ ジュール 2 1 2は、 1番目の P yL is t#0に含まれる 1番目の: Play Item #0によって再生されるクリップストリームフアイル" 00001. CLP"の、 第 3 1図に示した EP— mapOから、 P 1 ay 11 eni#0の IN— timeである 180, 090 に適した再生開始位置を探し出す。
即ち、 プレイヤ制御モジュール 2 1 2は、 例えば、 EPjiapOに記述 されたデコード開始可能点を表す PTS_EP_startのうちの、 式 PTS— EP— s rt≤IN_timeを満たす最大の PTS_EP— s rtを、 二分探索 ひ'ィヂリ サーチ) 等を用いて検索する。 ここで、 IN— time以下の PTS_EP_sta.Tt を検索するのは、 IN— timeによって表される位置が、 デコード開始可 能点であるとは限らないからである。
いまの場合、 IfLUmeは、 上述したように、 180, 090である。 また、 1番目の PlayListJOに含まれる 1番目の Play ltem#0によって再生され るクリップストリームファイル" 00001. CLP"の、 第 3 1図に示した EP— map 0においては、 式 PTS_EP— start≤IN— t imeを満たす最大の PTS— EP— s tartとして、 180, 090が記述されている。 従って、 プレイヤ制御モジ ユール 2 1 2では、 第 3 1図に示した EPjnapOから、 その 180, 090と なっている PTS一 EP一 s tartが検索される。
さらに、 プレイヤ制御モジュール 2 1 2では、 その検索された PTS_ EP— startに対応する RPN_EP_startである 305 (セクタ) が読み出され 、 その 305である RPN—EP— startによって表されるクリップストリーム ファイル" 00001.PS"上の位置が、 再生開始位置として決定される。 プレイヤ制御モジュール 2 1 2は、 以上のようにして再生開始位置 を決定すると、 ステップ S 1 22から S 1 2 3に進み、 タイムコ一ド を表示するように、 グラフィクス処理モジュール 2 1 9を制御する。 グラフィクス処理モジュール 2 1 9は、 プレイヤ制御モジュール 2 1 2の制御にしたがい、 タイムコードを生成してビデオ出力モジュール 2 2 0に出力する。 これにより、 タイムコードの表示が開始される。 ここで、 ステップ S 1 2 3で表示が開始されるタイムコードは、 例 えば、 PlayList 0の先頭を 00:00:00 (時間:分:秒) に換算した値とす る。 なお、 タイムコードとともに、 またはタイムコードではなく、 チ ャプ夕ゃィンデクスの番号を表示するようにしても良い。 「PlaylistMark()の解析処理」
ステップ S 1 2 3でタイムコードの表示が開始された後は、 ス ツ プ S 1 2 4に進み、 プレイヤ制御モジュール 2 1 2は、 スクリブ卜制 御モジュール 2 1 1から再生を指示された P yList()、 即ち、 1番目 の PlayList 0 (PlayListftO) に記述されている PlayListMarkO (第 9 図) を解析する解析処理を行う。
具体的には、 プレイヤ制御モジュール 2 1 2は、 既に読み込んであ る" PLAYLIST. DAT"ファイルにおける 1番目の PlayList#0の、 第 3 2図 上側に示した P 1 ayL i s t Mark 0において、 画 be r—o f_P layLis t— marksが 7になっていることから、 その PlayList#0に含まれる MarkOの数が 7 であることを認識する。
さらに、 プレイヤ制御モジュ一ル 2 1 2は、 PlayListltOに含まれる 、 第 3 2図上側の 7つの MarkOを解析し、 その ref— to_PlayI tem— idか ら、 7つの MarkOのうちの 1番目から 4番目までの 4つの Mark 0が、 PlayListftOの 1番目の P yltemO (PlayItem#0) に属していることを 認識する。
その後、 プレイヤ制御モジュール 2 1 2は、 PlayList#0の 1番目の PUyltemltOに属している 4つの MarkOの mark_t ime— sta即を取り出し 、 要素数が 4の配列として、 デコード制御モジュール 2 1 4に渡す。 即ち、 これにより、 第 3 2図上側の 7つの MarkOのうちの 1番目から 4番目までの 4つの MarkOそれぞれの mark— time_stampである(180, 09 0}、 {5, 580,090}、 {10,980,090}、 U 6, 380, 090}の 4つの時刻が、 プレイヤ制御モジュール 2 1 2から、 デコード制御モジュール 2 1 4 に渡される。 このときこれら時刻の属性は 「マーク処理」 であること も、 プレイヤ制御モジュール 2 1 2から、 デコード制御モジュール 2 1 4に伝えられる。 デコード制御モジュール 2 1 4は、 計時部 2 1 4 Aで計時している時刻が、 「マーク処理」 の属性の時刻に一致したと き、 その旨を示すメッセージ、 「マーク処理」 の属性の時刻に一^:し た時刻、 および 「マーク処理」 の属性を、 プレイヤ制御モジュール 2 1 2に伝える。
「再生するエレメンタリストリームの決定処理」
次に、 ステップ S 1 2 4から S 1 2 5に進み、 プレイヤ制御モジュ ール 2 1 2は、 再生するエレメン夕リストリ一ムを決定する。
即ち、 プレイヤ制御モジュール 2 1 2は、 スクリプト制御モジュ一 ル 2 1 1から再生を指示された ayListOである 1番目の P 1 ayL i s t #0 における 1番目の PlayltemltO (第 2 9図) の CI ip— InformaUon— f ime— nameにファイル名が記述されている、 第 3 0図 Aおよび第 3 0図 Bの クリップ情報ファイル" 00001. CLP"において、 number— 0し st reamsが 4 になっていることから、 対応するクリップストリームファイル" 00001 .PS"に、 4本のエレメン夕リストリームが多重化されていることを認 識する。 さらに、 プレイヤ制御モジュール 2 1 2は、 その 4本のエレ メン夕リストリームに対する、 第 3 0図 Aおよび第 3 0図 Bのクリツ プ情報ファイル" 00001.CLP"の StaticInf.oOの stream_idと必要な priv at stream— idを順に調査し、 その 4本のエレメン夕リストリームが 、 1本のビデオストリーム、 1本の ATRACオーディオストリーム、 お よび 2本の字幕ストリームであることを認識する。 即ち、 クリップス トリームファイル" 00001.PS"に多重化されている各属性のエレメン夕 リストリームの本数が認識される。
なお、 クリッブス卜リームファイルに多重化されている各属性のェ レメンタリス トリームの本数の情報は、 再生中でのエレメン夕リスト リームの切り替え (オーディオ切り替え、 字幕切り替え等) に使用さ れる。 また、 字幕ストリームは、 クリップス トリームファイル中に存 W 在しない (コンテンツに字幕が含まれない) 場合があり、 字幕ストリ ームが存在するかどうかの判断に、 「字幕ストリーム」 の属性の:^レ メン夕リストリームの本数の情報が使用される。 ' プレイヤ制御モジュール 2 1 2は、 以上のような S ticInfoOの調 査の結果に基づいて、 再生するエレメンタリストリ一ムを選択、 決定 するが、 いまの場合、 クリップストリームファイル" 00001.PS"に多重 化されている 4本のエレメン夕リス卜リームの中に、 「ビデオストリ ーム」 と 「オーディオストリーム」 の属性のエレメン夕リストリ一ム は、 それぞれ 1本しかないので、 「ビデオストリーム」 と 「オーディ ォストリーム」 の属性のエレメン夕リストリームについては、 選択の 余地がなく、 その 1本のビデオストリームとオーディオストリーム ( ATRACオーディオス トリーム) が、 再生するエレメンタリストリーム として決定される。
また、 「字幕ストリーム」 の属性のエレメンタリストリームについ ては、 クリップストリームファイル" 00001.PS"に多重化されている 4 本のエレメンタリストリームの中に 2本存在するので、 その 2本の字 幕ストリ一ムのうちのいずれか 1本の字幕ストリームが、 再生するェ レメン夕リストリームとして選択、 決定される。 ここでは、 例えば、 2本の字幕ス卜リ一ムのうちの、 クリップ情報フアイル" 00001. CLP" での出現順で最初の字幕ストリームが選択されることとする。
ここで、 上述のように、 クリップストリ一ムファイル" 00001.PS"に 多重化されている 4本のエレメンタリストリームの属性と本数を認識 するにあたっては、 その 4本のエレメン夕リストリームそれぞれを特 定する必要があるが、 プレイヤ制御モジュール 2 1 2は、 クリップス トリ一ムファイル" 00001.PS' 'に多重化されている 4本のエレメン夕リ ストリームの特定を、 streamjdと必要な private stream idによって ίτつ。
即ち、 プレイヤ制御モジュール 2 1 2は、 クリップス トリーム ァ ィル" 00001.PS"に多重化されている 4本のエレメン夕リストリームの うちの、 「ビデオストリーム」 の属性のエレメン夕リストリームであ るビデオストリームを、 第 3 0図 Αおよび第 3 0図 Βでクリップ情報 ファイル" 00001. CLP"について説明したように、 OxEOとなっている str eani_idで特定する。
また、 プレイヤ制御モジュール 2 1 2は、 クリップストリームファ ィル" 000(H.PS"に多重化されている 4本のエレメンタリストリームの うちの、 「オーディオストリーム」 の属性のエレメン夕リストリーム である ATRACォ一ディォス トリームを、 第 3 0図 Aおよび第 3 0図 B でクリップ情報ファイル" 00001. CLP"について説明したように、 OxBD となっている stream— id、 および 0x00となっている pr ivate—s t ream— id で特定する。
さらに、 プレイヤ制御モジュール 2 1 2は、 クリップストリームフ アイル" 00001.PS"に多重化されている 4本のエレメン夕リストリーム における 「字幕ストリーム」 の属性の Xレメン夕リストリームである 2本の字幕ストリームそれぞれを、 第 3 0図 Aおよび第 3 0図 Bでク リップ情報ファイル" 00001. CLP"について説明したように、 OxBDとな つている stream— id、 および 0x80となっている private_stream— idと、 OxBDとなっている stream_id、 および 0x81となっている pri vat e_strea m— idで、 それぞれ特定する。
以上のように、 クリップス卜リームファイルに対応するクリップ情 報フアイルのメタデータとして記述される s earn— idと private— strea m_idの組み合わせによって、 そのクリップストリームファイルに多重 化されているエレメンタリス トリームを特定することができる。 ここで、 stream— idと private—streanし idの組み合わせは、 MPEG2 - Sy stemの多重化を拡張するために設けたメカニズムである。 この st ream —idと private— s earn— idの組み合わせを、 メタデータにおいて、 卫レ メン夕リストリ一ムを特定するために使用することにより、 エレメン 夕リストリームを確実に特定することが可能になる。 また、 将来、 pr ivate stream— idの意味を拡張し、 対応するエレメンタリストリーム の本数や属性を増やした場合にも現在のメカニズムをそのまま使用可 能であるため、 拡張性において勝っている。
即ち、 例えば、 BD(Blu- ray Disc 9) 5規格では、 データの特定に、 MPEG 2規格のトランスポ一トストリ一ム(Transport Stream)の PID(Packet ID)が用いられるため、 MPEG2規格に拘束される。 また、 例えば、 DVD- Video規格では、 pr ivate一 st ream— idに類似する sub一 st ream_idが定義 されているが、 sub_stream_idは、' ストリームの特定のためにデータ ベ一ス上に記述することができるようにはなっておらず、 8本あるい は 32本のストリーム情報を記述する固定的な領域に記述することがで きるにすぎないため (たとえば VI4- 49、 テーブル 4.2.1-2 (VTS-AST—A TRT) や VI4- 52、 テーブル 4.2.卜 3 (VTSJPST— ATRT) 等参照) 、 拡張 性に乏しい。
これに対して、 stream— idと private一 stream— idの組み合わせは、 メ タデ一夕が記述される、 例えば、 第 1 2図のクリツプ情報ファイル C 1 ip()において、 number一 0し streamsで表すことができる数だけ記述す ることができ、 従って、 クリップストリームファイルに多重化されて いるエレメン夕リストリームを、 その数によらず (但し、 number一 of一 streamsで表すことができる数の範囲) 、 クリップ情報ファイル CI ip ( )に記述されたメタデータとしての 5 6&111—1(1と01"^&16_31^&111—1(1の 組み合わせから特定することが可能となる。 なお、 本実施の形態では、 sti'eam_idと private— stream_idの組み合 わせは、 第 1 2図のクリップ情報ファイルにおいて、 対応するクリ'ッ プス卜リームファイルに多重化されているエレメンタリストリーム'を 特定するのに使用される他、 例えば、 第 9図の PlayListMarkOにおけ ¾entry_ES_s tream_id< entry_ES_pr iv te_s t ream— idの組み合わせと して、 MarkOを関連付けるエレメン夕リストリ一ムの特定にも使用さ れる。 さらに、 stream— idと private_stream_idの組み合わせは、 その 他、 例えば、 第 1 6図の EPjnapOにおいて、 デコード可能開始点の情 報を記述するエレメンタリストリー 9 6ムの特定にも使用される。
「出力属性の制御処理」
その後、 ステップ S 1 2 5から S 1 2 6に進み、 プレイヤ制御モジ ユール 2 1 2は、 再生対象のエレメン夕リストリーム、 即ち、 ステツ プ S 1 2 5で再生すると決定したエレメン夕リストリームの出力属性 の制御処理を行う。
具体的には、 プレイヤ制御モジュール 2 1 2は、 まず、 再生対象の エレメンタリストリーム、 即ち、 ステップ S 1 2 5で再生すると決定 したビデオストリーム、 ATRACオーディすストリーム、 字幕ストリ一 ムそれぞれについて、 出力属性が記述される DynamicInfoO (第 1 5 図) の数を表す number— of— Dynamiclnfo (第 1 2図) を調査する。
ここで、 いまの場合、 再生対象のビデオストリーム、 ATRACオーデ ィォストリーム、 字幕ストリームは、 クリップストリームファイル" 0 0001. PS"に多重化されているエレメン夕リストリームであり、 それら の number— of— Dynamiclnfoは、 第 3 0図 Aおよび第 3 0図 Bの" 00001. CLP"で説明したように、 いずれも 0になっている。 このように、 再生 対象のエレメン夕リストリームのすべてについて、 number_of— Dynami clnfoが 0である場合、 プレイヤ制御モジュール 2 1 2は、 再生対象の エレメンタリストリ一ムの出力属性の制御処理としては、 特に処理を 行わない。
なお、 再生対象のエレメン夕リストリームについての number一 of二 Dy namiclnfoが 0でない場合に、 そのエレメン夕リストリームの出力属性 の制御として行われる処理については、 後述する。
「再生開始の準備処理」
ステップ S 1 2 6の処理後は、 ステップ S 1 2 7に進み、 プレイヤ 制御モジュール 2 1 2は、 再生対象のエレメンタリストリ一ムの再生 開始の準備処理を行う。 9
7
即ち、 プレイヤ制御モジュール 2 1 2は、 コンテンツデ一夕供給モ ジュール 2 1 3に対し、 再生対象のエレメン夕リストリームが多重化 されているクリッブストリ一ムファイル" 00001.PS"のファイル名と、 ステップ S 1 2 2で決定した再生開始位置である EP— niapOに記述ざれ た RPN— EP— start (=305) を与える。
さらに、 プレイヤ制御モジュール 2 1 2は、 再生対象のエレメン夕 リストリ一ムが多重化されているクリッブストリームファイル" 00001 .PS"に格納されたプログラムス卜リーム.の、 Γ\つファ制御モジュール 2 1 5への供給が開始される前に、 バッファ制御モジュール 2 1 5を 初期化する。
具体的には、 バッファ制御モジュール 2 1 5 (第 5図) では、 デー 夕先頭ポインタ記憶部 2 3 1に記憶されるデータ先頭ポインタ、 デー 夕書き込みボインタ記憶部 2 3 2に記憶されるデータ書き込みボイン 夕、 ビデオ読み出しポインタ記憶部 2 4 1に記憶されるビデオ読み出 しボイン夕、 オーディォ読み出しボイン夕記憶部 2 5 1に記憶される オーディオ読み出しポインタ、 字幕読み出しポインタ記憶部 2 6 2に 記憶される字幕読み出しボイン夕に、 同じ値が代入される。 これにより、 データ先頭ポインタ記憶部 2 3 1に記憶されたデータ 先頭ポインタと、 データ書き込みポインタ記憶部 2 3 2に記憶され ¾た データ書き込みポインタとは、 バッファ制御モジュール 2 1 5のノゃッ ファ 2 1 5 Aの同一の位置を指す。 これは、 ノ ッファ 2 1 5 Aに、 有 効なデ一夕が蓄積されていない状態を表す。
さらに、 プレイヤ制御モジュール 2 1 2は、 再生対象のエレメン夕 リストリームを特定するための識別情報としての stream_id、 さらに は、 必要に応じて、 private— stream_idを、 バッファ制御モジュール 2 1 5に供給する。
即ち、 上述したように、 再生対象のエレメン夕リストリームのうち の、 「ビデオストリーム」 の属性のビデオストリームは、 OxEOとなつ ている stream— idによって特定され、 「ォ一ディォストリーム」 の属 性の ATRACオーディオストリームは、 OxBDとなっている stream— id、 お よび 0x00となっている private— stream—idによって特定され、 「字幕 ストリーム」 の属性の字幕ストリームは、 OxBDとなっている stream— i d、 および 0x80となっている private_streanし idによって特定される。 プレイヤ制御モジュール 2 1 2は、 これらの stream— idと private_str earn— idを、 バッファ制御モジュール 2 1 5に供給する。
バッファ制御モジュール 2 1 5 (第 5図) では、 ビデオ読み出し機 能部 2 3 3が、 プレイヤ制御モジュール 2 1 2からの、 ビデオストリ —ムについての OxEOとなっている stream_idを、 s t ream— idレジスタ 2 4 2に記憶させる。 また、 オーディオ読み出し機能部 2 3 4が、 プレ ィャ制御モジュール 2 1 2からの、 OxBDとなっている stream— idと、 0 xOOとなつてレ る private— stream— idを、 s t ream— idレジス夕 2 5 2と p rivate— streamjdレジスタ 2 5 3に、 それぞれ記憶させる。 さらに、 字幕読み出し機能部 2 3 5が、 プレイヤ制御モジュール 2 1 2からの 、 OxBDとなっている stream_idと、 0x80となっている pr i vat e一 s earn— idを、 stream— idレジス夕 2 6 3と private— stream_idレジスタ 2 6 4 に、 それぞれ記億させる。 ' なお、 プレイヤ制御モジュール 2 1 2は、 バッファ制御モジュール 2 1 5に供給した再生対象のエレメン夕リストリームの stream_idと p rivate— streanし idを、 今後の処理のために記憶する。 プレイヤ制御モ ジュール 2 1 2は、 これらの stream—idや private_stream一 idを、 後述 するス卜リ一ム切り替えを要求するメッセージの発生時や、 後述する マーク処理において現在再生中のストリ一ムを特定するために使用す る。
プレイヤ制御モジュール 2 1 2は、 バッファ制御モジュール 2 1 5 (第 5図) の初期化として、 さらに、 再生対象のエレメン夕リストリ —ムが多重化されているクリップストリームファイルに応じた値の字 幕読み出し機能フラグを、 字幕読み出し機能フラグ記憶部 2 6 1にセ ッ 卜する。
即ち、 いまの場合、 再生対象のエレメン夕リストリームが多重化さ れているクリップス卜リームファイル" 00001.PS"には、 字幕ストリ一 ムが含まれるため、 字幕読み出し機能部 2 3 5を機能させるために、 値が 1の字幕読み出し機能フラグが、 字幕読み出し機能フラグ記憶部 2 6 1にセッ トされる。 なお、 再生対象のエレメン夕リストリームが 多重化されているクリップストリームフアイルに字幕ス卜リームが含 まれていない場合、 字幕読み出し機能フラグ記憶部 2 6 1には、 値が 0の字幕読み出し機能フラグがセッ トされる。 この場合、 字幕読み出 し機能部 2 3 5は特に処理を行わない。
また、 プレイヤ制御モジュール 2 1 2は、 スクリプト制御モジユー ル 2 1 1から再生を指示された 1番目の PlayList#0に含まれる 1番目 2005/021070 の Playltem#0 (第 2 9図) の IN_t imeである 180, 090と、 OUT— timeであ る 27, 180, 090とを、 デコード制御モジュール 2 1 4に対して与える s。 デコード制御モジュール 2 1 4では、 IN—timeは、 PlayltemOによ'つ て再生されるクリップのデコード開始の制御に、 0UT_timeは、 そのク リップのデコード終了、 さらには、 後述する P yltem乗り換えの制御 に、 それぞれ使用される。
さらに、 プレイヤ制御モジュール 2 1 2は、 グラフィクス処理モジ ュ一ル 2 1 9に対する字幕ストリームの表示方式の指示を初期化する 。 即ち、 プレイヤ制御モジュール 2 1 2は、 字幕ストリームの表示方 式を、 例えば、 デフォルトの表示方式とするように、 グラフィクス処 理モジュール 2 1 9を制御する。
「データ読み込み開始」
その後、 ステップ S 1 2 7から S 1 2 8に進み、 プレイヤ制御モジ ユール 2 1 2は、 コンテンツデータ供給モジュ ル 2 1 3を制御し、 これにより、 コンテンツデ一夕供給モジュール 2 1 3は、 オペレ一テ イングシステム 2 0 1の機能を使用して、 再生対象のエレメン夕リス トリームが多重化されたプログラムスト.リームが格納されたクリップ ストリームファイルを読み出す。 すなわち、 コンテンツデータ供給モ ジュール 2 1 3は、 ディスク 1 0 1 (第 6図) の" VIDEO"ディ レク ト リの下にある" STREAM"ディ レク トリのクリッブストリ一ムフアイル" 0 0001. PS"を指定し、 さらに、 ステップ S 1 2 2で決定された再生開始 位置である 305セク夕を指定して、 オペレーティ ングシステム 2 0 1 に対してファイル読み出しを要求する。 また、 コンテンツデータ供給 モジュール 2 1 3は、 ディスク 1 0 1から読み出したデータを、 ノ ツ ファ制御モジュール 2 1 5に供給するように指定する。
これにより、 ディスク 1 0 1からの、 クリップストリ一ムフアイル " 00001. PS"に格納されたプログラムストリームの読み出しが開始され 、 そのプログラムストリームは、 バッファ制御モジュール 2 1 5に供 給される。
バッファ制御モジュール 2 1 5 (第 5図) は、 ディスク 1 0 1から 読み出されて供給されたプログラムストリームを、 バッファ 2 1 5 A のデータ書き込みボイン夕記憶部 2 3 2のデ一夕書き込みボイン夕が 指す位置に書き込み、 書き込んだデータのサイズだけデータ書き込み ポインタをインクリメントする。
ここで、 以下、 特に断らない限り、 コンテンツデ一夕供給モジュ一 ル 2 1 3は、 バッファ制御モジュール 2 1 5のバッファ 2 1 5 Aに空 きがあれば、 ディスク 1 0 1からデータを読み出し、 バッファ制御モ ジュール 2 1 5のバッファ 2 1 5 Aに供給して記憶させることとする 。 従って、 バッファ 2 1 5 Aには、 常時、 十分なデ一夕が蓄積されて いるとする。
「デコーダ制御開始」
以上のようにして、 ディスク 1 0 1からのデ一夕の読み出しが開始 され、 そのデ 夕がバッファ制御モジュール 2 1 5のバッファ 2 1 5 Aに蓄積され始めると、 ステップ S 1 2 8から S 1 2 9に進み、 デコ —ド制御モジュール 2 1 4は、 ビデオデコーダ制御モジュール 2 1 6 、 オーディオデコーダ制御モジュール 2 1 7、 字幕デコーダ制御モジ ユール 2 1 8を制御し、 デコード動作の前段階として、 バッファ 2 1 5 Aからのデ一夕の読み出しを開始させる。
即ち、 これにより、 ビデオデコーダ制御モジュール 2 1 6は、 バッ ファ制御モジュール 2 1 5 (第 5図) のビデオ読み出し機能部 2 3 3 にデータを要求し、 その要求に応じてバッファ制御モジュール 2 1 5 から渡される、 ノ'ッファ 2 1 5 Aに記憶された 1つのビデオアクセス ユニット、 そのビデオアクセスユニッ トに付加されている PTSと DTS ( 以下、 適宜、 タイムスタンプという) 、 およびデコード開始可能 の 直前に配置されている private_stream— 2の PES— packet 0に記述された 情報 (以下、 適宜、 付加情報ともいう) である pic_strucし copyや、 a u_reし flag、 AUJengthなどを得る。 なお、 タイムスタンプは、 ビデ ォデコーダ制御モジュール 2 1 6がビデオアクセスュニッ トを得る毎 に、 ビデオデコーダ制御モジュール 2 1 6からデコード制御モジユー ル 2 1 4に渡される。
ここで以下の時刻更新のために使用する pic— strucし copyは、 ビデ ォ読み出し機能部 2 3 3から渡されたものであるが、 構文解析の結果 得られたビットストリーム中に含まれる pic— structを使用することも 可能である。
一方、 オーディオデコーダ制御モジュール 2 1 7も、 バッファ制御 モジュール 2 1 5 (第 5図) のオーディオ読み出し機能部 2 34にデ —夕を要求し、 その要求に応じてバッファ制御モジュール 2 1 5から 渡される、 バッファ 2 1 5 Aに記憶された 1つの(ATRAC)ォ一ディォ アクセスユニッ トと、 そのオーディォアクセスュニットに付加されて いるタイムスタンプ (PTS, DTS) を得る。 なお、 タイムスタンプは、 オーディオデコーダ制御モジュール 2 1 7がオーディオアクセスュニ ットを得る毎に、 オーディオデコーダ制御モジュール 2 1 7からデコ —ド制御モジュール 2 1 4に渡される。
さらに、 字幕デコーダ制御モジュール 2 1 8は、 バッファ制御モジ ユール 2 1 5 (第 5図) の字幕読み出し機能部 2 3 5にデ一夕を要求 し、 その要求に応じてバッファ制御モジュール 2 1 5から渡される、 バッファ 2 1 5 Aに記憶された 1つの字幕アクセスユニッ トと、 その 字幕アクセスュニッ 卜に付加されているタイムスタンプを得る。 なお 、 タイムスタンプは、 字幕デコーダ制御モジュール 2 1 8が字幕ァク セスユニッ トを得る毎に、 字幕デコーダ制御モジュール 2 1 8か έデ コード制御モジュール 2 1 4に渡される。 また、 再生対象のエレメン タリストリームに、 字幕ストリームが存在しない場合や、 バッファ 2 1 5 Αに、 字幕アクセスユニットが記憶されていない場合は、 バッフ ァ制御モジュール 2 1 5から字幕デコーダ制御モジュール 2 1 8には 、 データは渡されない。
ここで、 ビデオデコーダ制御モジュール 2 1 6、 オーディオデコ一 ダ制御モジュール 2 1 7、 および字幕デコーダ制御モジュール 2 1 8 は、 バッファ制御モジュール 2 1 5に対してデータを要求する毎に、 そのデ一夕の要求に対する結果を、 デコード制御モジュール 2 1 4に 渡す。
また、 バッファ制御モジュール 2 1 5から、 ビデオデコーダ制御モ ジュール 2 1 6、 オーディオデコーダ制御モジュ一ル 2 1 7、 および 字幕デコーダ制御モジュール 2 1 8に対してデータが渡されるときの 、 そのデータのバッファ 2 1 5 Aからの読み出しの詳細については、 後述する。 .
「デコ一ド開始」
以上のように、 ビデオデコーダ制御モジュール 2 1 6、 オーディオ デコーダ制御モジュール 2 1 7、 字幕デコーダ制御モジュール 2 1 8 が、 ッファ制御モジュール 2 1 5のバッファ 2 1 5 Aからデータを 読み出し始めると、 ステツプ S 1 2 9から S 1 3 0に進み、 そのデ一 夕のデ'コードが開始される。
即ち、 デコード制御モジュール 2 1 4は、 ステップ S 1 2 7でプレ ィャ制御モジュール 2 1 2から与えられた、 P l ayL i s t #0に含まれる 1 番目の P l ay I t em#0の IN t i meである 180, 090、 さらには、 ビデオデコー ダ制御モジュール 2 1 6、 オーディオデコーダ制御モジュール 2 1 7 、 字幕デコーダ制御モジュール 2 1 8からステップ S 1 2 9で説明''し たように渡されるタイムスタンプに基づき、 同期を確保するために必 要であればタイミングをずらして、 デコード開始を、 ビデオデコーダ 制御モジュール 2 1 6、 オーディオデコーダ制御モジュール 2 1 7、 および字幕デコーダ制御モジュール 2 1 8に指令する。
ここで、 同期を確保するためのタイミングをずらしたデコード開始 の指令の方法は、 例えば、 特許第 3496725号に記載されており、 簡単 には、 ビデオデコーダ制御モジュ 11ー oル 2 1 6、 オーディオデコーダ制
4
御モジュール 2 1 7、 字幕デコーダ制御モジュール 2 1 8それぞれか ら渡されたタイムスタンプのうちの最小値を、 計時部 2 1 4 Aによつ て計時される時刻の初期値として設定して時刻の計時を開始し、 計時 部 2 1 4 Aによって計時される時刻と、 タイムスタンプとがー致した 時点で、 デコード開始を指令する方法がある。
ビデオデコーダ制御モジュール 2 1 6は、 デコード制御モジュール 2 1 4からのデコード開始の指示を受け、 その指示に応じて、 バッフ ァ制御モジュール 2 1 5 (第 5図) のビデオ読み出し機能部 2 3 3か ら得た 1つのビデオアクセスユニットを、 ビデオデコーダ 1 1 6 (第 1図) に渡してデコードさせる。 さらに、 ビデオデコーダ制御モジュ —ル 2 1 6は、 ビデオデコーダ 1 1 6によるデコードの結果得られる ビデオデータを、 グラフィクス処理モジュール 2 1 9に供給する。 以後、 ビデオデコーダ制御モジュール 2 1 6は、 バッファ制御モジ ユール 2 1 5のビデオ読み出し機能部 2 3 3から得られる 1ずつのビ デォアクセスュニッ 卜を、 ビデオデコーダ 1 1 6で順次デコードし、 そのデコードの結果得られるビデオデ一夕を、 グラフィクス処理モジ ュ一ル 2 1 9に供給していく。 このとき、 ビデオデコーダ 1 1 6内部では、 デコードと出力でビデ ォデ一夕の順番入れ替え (リオーダリング) が発生している。 例え ^ば 第 3 5図に示すように、 デコードの順番は I I , BO, P3, B2, P5, B4'だ が、 表示の順番は B0, I I , B2, P3, B4, P5になることがある。 このた めにビデオデコーダ 1 1 6内にはデコード後の画像を s t o reしておく ための decoded p i c t ure bu f f erが設けられている。 第 3 5図において 、 Inは、 n番目の Iピクチャを示し、 Bnは、 n番目の Bピクチャを示し 、 Pnは、 n番目の Pピクチャを示している。
一方、 オーディオデコーダ制御モジュール 2 1 7も、 デコード制御 モジュール 2 1 4からのデコード開始の指示を受け、 その指示に応じ て、 バッファ制御モジュール 2 1 5 (第 5図) のオーディオ読み出し 機能部 2 3 4から得た 1つのオーディォアクセスュニッ卜を、 オーデ ィォデコーダ 1 1 7 (第 1図) に渡してデコードさせる。 さらに、 ォ —ディォデコーダ制御モジュール 2 1 7は、 オーディオデコーダ 1 1 7によるデコードの結果得られるオーディオデータを、 オーディオ出 力モジュール 2 2 1に供給する。
以後、 オーディオデコーダ制御モジュール 2 1 7は、 バッファ制御 モジュール 2 1 5のォ一ディォ読み出し機能部 2 3 4から得られる 1 ずつのオーディォアクセスュニットを、 オーディォデコーダ 1 1 7で 順次デコードし、 そのデコードの結果得られるオーディオデ一夕を、 オーディォ出力モジュール 2 2 1に供給していく。 '
また、 字幕デコーダ制御モジュール 2 1 8も、 デコード制御モジュ ール 2 1 4からのデコード開始の指示を受け、 その指示に応じて、 バ ッファ制御モジュール 2 1 5 (第 5図) の字幕読み出し機能部 2 3 5 から得た 1つの字幕アクセスユニットを、 内部に持つ字幕デコードソ フトウェアでデコードし、 そのデコードの結果得られる字幕デ一夕 ( 字幕の画像データ) を、 グラフィクス処理モジュール 2 1 9に供給す る。
以後、 字幕デコーダ制御モジュール 2 1 8は、 バッファ制御モジュ ール 2 1 5の字幕読み出し機能部 2 3 5から得られる 1ずつの字幕ァ クセスユニッ トを、 内部に持つ字幕デコードソフ トウェアで順次デコ —ドし、 そのデコードの結果得られる字幕データを、 グラフィクス処 理モジュール 2 1 9に供給していく。
「グラフィクス処理」
その後、 ステップ S 1 3 0から S 1 3 1に進み、 グラフイクス処理 モジュール 2 1 9は、 上述したようにして、 ビデオデコーダ制御モジ ユール 2 1 6から供給されるビデオデータ、 さらには、 必要に応じて 、 字幕デコーダ制御モジュール 2 1 8から供給される字幕データを対 象に、 グラフィクス処理を行う。
即ち、 グラフィクス処理モジュール 2 1 9は、 まず字幕デコーダ制 御モジュール 2 1 8からの字幕データを、 プレイヤ制御モジュ一ル 2 1 2からの表示方式の指示に従って、 拡大や縮小等する字幕処理を行 う。 プレイヤ制御モジュール 2 1 2から.、 表示方式の指示がない場合 、 またはデフォルトの表示方式の指示があった場合、 グラフィクス処 理モジュール 2 1 9は、 字幕デコーダ制御モジュール 2 1 8からの字 幕デ一夕を、 そのまま保存する。
さらに、 グラフィクス処理モジュール 2 1 9は、 ビデオデコーダ制 御モジュ一 ./レ 2 1 6からのビデオデータと、 字幕デコーダ制御モジュ —ル 2' 1 8からの字幕データ、 または字幕処理後の字幕データとを加 算し、 ビデオデコーダ制御モジュール 2 1 6からのビデオデータに字 幕データがオーバーレイされた出力ビデオデータを得て、 ビデオ出力 モジュール 2 2 0に供給する。 なお、 グラフィクス処理モジュール 2 1 9は、 スクリプト制御モジ ユール 2 1 1やプレイヤ制御モジュール 2 1 2から、 例えば、 メ ュ —や、 メッセージ、 タイムコード、 チヤプ夕またはインデクスの番号 等の情報の表示の指示を受けた場合は、 その情報を生成し、 出力ビデ ォデ一夕にォ一パ一レイして、 ビデオ出力モジュール 2 2 0に供給す
「出力処理」
ステップ S 1 3 1の処理後は、 ステップ S 1 3 2に進み、 ビデオ出 力モジュール 2 2 0は、 ステップ S 1 3 1で説明したようにしてダラ フィクス処理モジュール 2 1 9から供給される出力ビデオデ一夕を、 F IFO 2 2 O Aに順次記憶させ、 その F IFO 2 2 O Aに記憶された出力ビ デォデ一夕を、 あらかじめ決められた出力レートで順次出力する。 ビデオ出力モジュール 2 2 0は、 F IFO 2 2 O Aの記憶容量 (残量) に余裕がある限り、 グラフィクス処理モジュール 2 1 9からの出力ビ デォデ一夕を受け入れるが、 余裕がない場合には、 出力ビデオデ一夕 の受け入れの停止を、 グラフィクス処理モジュール 2 1 9に要求する 。 これにより、 グラフィクス処理モジュ.一ル 2 1 9は、 処理を停止す るとともに、 処理の停止を、 ビデオデコーダ制御モジュール 2 1 6お よび字幕デコーダ制御モジュール 2 1 8に要求する。 これにより、 ビ デォデコーダ制御モジュール 2 1 6および字幕デコーダ制御モジユー ル 2 1 8が処理を停止する。
ビデオ出 モジュール 2 2 0は、 出力ビデオデータの受け入れの停 止を、 グラフィクス処理モジュール 2 1 9に要求した後に、 F IF0 2 2 0 Aからの出力ビデオデ一夕の出力が進み、 F IFO 2 2 O Aに余裕がで きた時点で、 出力ビデオデ一夕の受け入れを、 グラフィクス処理モジ ユール 2 1 9に要求する。 この要求は、 出力ビデオデータの受け入れ の停止の要求と同様に、 グラフィクス処理モジュール 2 1 9から、 ビ デォデコーダ制御モジュール 2 1 6および字幕デコーダ制御モジ 一 ル 2 1 8に伝えられる。 これにより、 グラフィクス処理モジュール 2 1 9、 さらには、 ビデオデコーダ制御モジュール 2 1 6および字幕デ コーダ制御モジュール 2 1 8は、 停止していた処理を再開する。
一方、 オーディォ出力モジュール 2 2 1も、 ステップ S 1 3 0で説 明したようにしてオーディオデコーダ制御モジュール 2 1 7から供給 されるオーディオデータを、 F IF0 2 2 1 Aに順次記憶させ、 その F IFO 2 2 1 Aに記憶されたオーディオデータを、 あらかじめ決められた出 力レート (サンプリング周波数) で順次出力する。
オーディオ出力モジュール 2 2 1は、 F IF0 2 2 1 Aの記憶容量 (残 量) に余裕がある限り、 オーディオデコーダ制御モジュール 2 1 7か らのオーディオデータを受け入れるが、 余裕がない場合には、 オーデ ィォデ一夕の受け入れの停止を、 ォ一ディォデコーダ制御モジュール 2 1 7に要求する。 これにより、 オーディオデコーダ制御モジュール 2 1 7は、 処理を停止する。
オーディオ出力モジュール 2 2 1は、 .オーディオデータの受け入れ の停止を、 オーディオデコーダ制御モジュール 2 1 7に要求した後に 、 F IFO 2 2 1 Aからのオーディォデ一夕の出力が進み、 F IF0 2 2 1 A に余裕ができた時点で、 オーディオデ一夕の受け入れを、 オーディオ デコーダ制御モジュール 2 1 7に要求する。 これにより、 オーディオ デコーダ制御モジュール 2 1 7は、 停止していた処理を再開する。 以上のようにして、 ビデオ出力モジュール 2 2 0およびオーディオ 出力モジュール 2 2 1からデータが出力されるにつれて、 エレメン夕 リストリームのデコードが行われていく。
[ビデオデコーダ 1 1 6の内部構造の説明] 第 3 6図にビデオデコーダ 1 1 6の内部構造を示す。 この例ではビ デォデコーダ 1 1 6の内部はビデオデコードエンジン 1 1 6八と0 8 (デコ一デッ ドピクチャバッファ) 1 1 6 Bで構成されている。 DPB 1 1 6 Bの内部はさらに細分化されており、 DPB 1 1 6 B— 1乃至 DPB 1 1 6 B - n (以降において、 特に区別する必要が無い場合、 単に DB P 1 1 6 Bと称するものとする) で構成されている。 さらに、 第 3 7 図で示されるように、 DPB 1 1 6 Bの内部はビデオバッファ 3 0 1と 付加情報バッファ 3 0 2に分けられている。
ビデオデコードエンジン 1 1 6 A oはビデオデ一夕のデコード処理に
9
際して、 デコード中のビデオデ一夕を一時保存する、 あるいは将来の 参照画像として使用するために保持する等の用途のために、 DPB 1 1 6 Bのビデオバッファ 3 0 1を使用する。 このとき、 付加情報バッフ ァ 3 0 2には、 ビデオバッファ 3 0 1に保存されたビデオデータに対 応するべき、 ビデオ読み出し機能部 2 3 3から得た付加情報や、 ァク セスユニットを構文解析して得られたパラメ一夕 (例えば p i s t ruc t 等) が記録される。
次に、 第 1図のディスク再生装置がディスク 1 0 1を再生するとき の全体の処理または動作の流れは、 第 3 3図および第 3 4図で説明し たとおりであるが、 以下、 ディスク再生装置においてディスク 1 0 1 の再生が行われているときの、 その他の処理または動作について説明 す
[時刻情幸 をデコード制御モジュール 2 1 4に渡す]
以下、 時計 (計時部 2 1 4 A ) の更新について説明する。 ビデオデ コーダ制御モジュール 2 1 6は、 入力したビデオアクセスュニットを ビデオデコーダ 1 1 6に指示してデコードさせる。 ビデオデコーダ 1 1 6によるデコード及びリオ一ダリング処理の後、 1フレーム (2フ ィ一ルド) 分のビデオデータがグラフィクス処理モジュール 2 1 9に 出力されると同時に、 該当ビデオデータのタイムスタンプ (PTS/lks ) と pic— struct情報がビデオデコーダ制御モジュール 2 1 6からデコ ード制御モジュール 2 1 4に渡される。
アクセスュニッ トの pic— s uctが 1あるいは 2の場合にはこれらは 1フィールド分のアクセスユニッ トであるため、 1フレーム分とする ために 2つ分のアクセスュニッ 卜の出力が行われる段階で先行フィー ルドの pk— structと、 先行フィ一ルドのアクセスュニッ トにタイムス タンプが有った場合にはタイムス夕ンプが、 ビデオデコーダ制御モジ ユール 2 1 6からデコード制御モジュール 2 1 4に渡される。 ここで 先行フィールドがタイムスタンプを持たない場合には、 タイムスタン プがないという情報が渡される。 上述したように孤立フィールドは許 していないため、 pic_structが 1あるいは 2のフィ一ルドの直後には pic_structが 2あるいは 1のフィールドが置かれている。 この 2のフ ィールドを 1にまとめに扱うときには、 先行しているフィ一ルドの夕 ィムスタンプを代表値として使用する。
また、 アクセスユニッ トの pic— struct.が 0 , 3 , 4, 5 , 6の場合 には、 1のアクセスュニッ 卜の出力が行われる段階で 1の pic一 struct と、 該当アクセスユニッ トにタイムスタンプが有った場合にはタイム スタンプが、 ビデオデコ一ダ制御モジュ一ル 2 1 6からデコード制御 モジュール 2 1 4に渡される。 タイムスタンプを持たないアクセスュ ニッ トでは、 タイムスタンプがないという情報が渡される。
デコード制御モジュール 2 1 4は、 受け取ったタイムスタンプと pi c_struciの情報を用いて計時部 2 1 4 Aを更新する。
以下、 第 3 8図のフローチャートを参照して更新の方法を説明する デコード制御モジュール 2 1 4は、 受け取ったアクセスユニットが タイムスタンプが付加されているか否かを判定する (ステップ s r 4
1 ) 。 例えば、 アクセスユニットにタイムスタンプが付加されていた 場合、 デコード制御モジュール 2 1 4は、 タイムスタンプ(PTS)の値 を計時部 2 1 4 Aに設定する (ステップ S 1 4 2 ) 。 上述したように デコード開始直後は必ずタイムスタンプが存在するため、 初回でも問 題は発生しない。 アクセスュニッ卜にタイムスタンプが付加されてい なかった場合、 現在時刻に前回の pic— structで決まる値を加算する ( ステップ S 1 44) 。 その後、 今回の pic_structを次回の処理のため に保存し終了する (ステップ S 1 4 3) 。
pic_structで決まる値は、 第 3 9図で示されるように、 保存してあ つた pic_structが 0, 3あるいは 4だった場合、 計時部 2 1 4 Aは 2 フィ一ルド時間分の時間を加算する。 また pic— structが 5あるいは 6 であった場合、 計時部 2 1 4 Aは 3フィールド時間分の時間を加算す る。 さらに、 保存してあった pic— structが 1あるいは 2だった場合、 計時部 2 1 4 Aは 2フィ一ルド時間分の時間を加算する。
このような時刻変更処理により、 計時部 2 1 4 Aの示す時刻の値は 、 ビデオデコ一ダ制御モジユール 2 1 6からグラフイクス処理モジュ —ル 2 1 9への出力が終了した ( 1フレーム分の) アクセスユニット の表示開始時刻を示す。 すなわち、 該当ビデオデータがタイムスタン プを持つ場合には PTSが代入される。 またタイムスタンプを持たない 場合には、 表示順で直前のビデオデータの表示間隔が加算される。
この例ではビデオ符号化方式として AVCを使用しているが、 例えば M PEG2- Videoにおいても repeat— firsし fieldを使用することによりァク セスュニッ 卜の表示 dura onを知ることができる。
なお、 上述したように、 この場合も、 FIF02 2 0 Aの記憶容量に余 裕がない場合にはビデオデコーダ制御モジュール 2 1 6からのビデオ データの出力が停止する。 この場合には計時部 2 1 4 Aの更新も 動 的に停止する。 また、 F IF0 2 2 0 Aへのビデオデータの更新が再開す ると計時部 2 1 4 Aの更新も自動的に再開する。
すなわち、 ュ一ザからの指示により再生モードがポーズ状態に遷移 した場合、 ビデオ出力モジュール 2 2 0の更新が止められることによ り、 連動してビデオデコ一ダ制御モジュール 2 1 6が停止し、 さらに それとリンクしている時計 (計時部 2 1 4 A ) も連動して止められる ことを意味している。 また、 ポ一ズ状態から通常再生状態へ復帰した 場合、 ビデオ出力モジュールの更新が許可されることにより、 連動し てビデオデコーダ制御モジュール 2 1 6の動作およびビデオデータの 出力が再開され、 さらにそれとリンクしている時計 (計時部 2 1 4 A ) も連動して更新が再開されることを意味している。
このような動作はスロー再生に対しても期待できる。 すなわち、 ス ロー再生はポーズと通常再生を短い周期で交互に繰り返している状態 であり、 その際にも時計 (計時部 2 1 4 A ) はビデオ出力に同期して 更新される。 .
なお、 この例では計時部 2 1 4 Aの更新をビデオデコーダ制御モジ ユール 2 1 6からのビデオデータ出力と同期して行うと説明した。 し かしながら、 ビデオデコーダ制御モジュール 2 1 6以降のディレイ、 ここではグラフィクス処理モジュール 2 1 9およびビデオ出力モジュ —ル 2 2 0で生じるディレイが大きい場合、 実際にユーザに対して提 供されているビデオデータと時計 (計時部 2 1 4 A ) の関係がずれて しまう可能性がある。 そのような場合には、 時計 (計時部 2 1 4 A ) の更新をビデオ出力モジュール 2 2 0からのビデオデ一夕出力と同期 して行うという方式を採用することによって防ぐことが可能である。 具体的には、 グラフィクス処理モジュール 2 1 9とビデオ出力モジ ユール 2 2 0および FIFO 2 2 0 Aでのビデオデータの処理部分に、 第
3 7図を参照して説明した付加情報バッファ 3 02を追加し、 出力に いたるまで、 ビデオデータと付加情報を常に一組として扱う。 さらに 、 ビデオ出力モジュール 2 2 0からのビデオデータの出力に際して、 対応する付加情報がデコード制御モジュール 2 1 4に渡される。 デコ ード制御モジュールは上述したアルゴリズムにより時計 (計時部 2 1
4 A) を更新する。
このような方法をとることにより、 ビデオデコーダ以降のディレイ の多少にかかわらず、 表示されるビデオデ一夕と時計 (計時部 2 1 4 A) の同期を合わせることが可能になる。
結果として、 ストリームデ一夕を再生する装置で、 単独にカウント する時計を備えていない状態であっても、 正確にストリームデータを 再生することが可能となり、 CPU1 1 2などの処理負荷を低減させる ことが可能となる。
[Playltem乗り換え]
第 3 3図および第 34図で説明した うにして、 第 2 9図における 1番目の PlayListifOの 1番目の Playl tem#0の再生が始まるが、 P yLi st#0によれば、 その 1番目の PlayItem#0の再生が終了すると、 2番目 の Playltemttlの再生が開始される。 即ち、 Playl tem#0から Playl tem#l に PI ay It emを乗り換える PI ay It em乗り換えが行われる。
次に、 第 40図のフローチャートを参照して、 この Playliem乗り換 えの処理について説明する。
第 3 3図および第 34図で説明したようにして、 第 2 9図における PlayListitOの 1番目の Playl tem#0のクリップの再生が開始されると、 デコード制御モジュール 2 1 4 (第 2図 Aおよび第 2図 B) は、 その 1番目の PlayltemifOの再生が行われている間、 内蔵する計時部 2 1 4 Aが計時している時刻を確認し続けている。
「PlayItem#0の再生終了」 ' そして、 デコード制御モジュール 2 14は、 計時部 2 1 4Aが計時 している時刻が、 第 34図のステップ 1 2 7でプレイヤ制御モジユー ル 2 1 2から与えられた 1番目の?1& 6111#0の0{]11_ ]116でぁる27, 180 ,090 (第 29図) に等しくなると、 ステツプ S 1 5 1において、 デコ 一ド中断制御を行い、 Playnem#0の再生を終了する。
ところで、 計時部 2 1 4Aは、 90kHzで変化するものではない場合 、 すなわち、 ビデオデータの出力に応じて時刻を更新するという方式 である場合、 計時部.2 1 4 Aが計時している時刻は、 厳密には、 Play ltem#0の OUT— timeと等しくならないことがある。 そのようなとき、 P1 ayltem#0の OUTJimeの時刻と計時部 2 1 4 Aの計時する時刻が近傍の 値となったタイミングで、 デコード中断制御が行われ、 PlayItem#0の 再生が終了されることになる。 尚、 この処理については、 第 5 1図, 第 5 2図を参照して詳細を後述する。
即ち、 デコード制御モジュール 2 14.は、 ビデオデコーダ制御モジ ユール 2 1 6、 オーディオデコーダ制御モジュール 2 1 7、 字幕デコ ーダ制御モジュール 2 1 8を操作して、 デコード動作を停止させる。 さらに、 デコード制御モジュール 2 14は、 ビデオ出力モジュール 2 20を制御し、 現在出力中の出力ビデオデータを引き続き出力させる また、 デコード制御モジュール 2 1 4は、 1番目の PlayltemifOの再 生が終了した旨のメッセージを、 プレイヤ制御モジュール 2 1 2に伝 える。
「PlayItem#lの再生開始」 プレイヤ制御モジュール 2 1 2は、 上述したように、 第 33図のス テツプ S 1 0 5で、 1番目の PlayList #0に、 1番目の P yl
Figure imgf000117_0001
2番目の P 1 ay 11 em#lとが存在することを認識しており、 デコード制御 モジュール 2 1 4から、 1番目の PlayItem#0の再生が終了した旨のメ ッセ一ジが伝えられると、 ステップ S 1 5 1から S 1 5 2に進み、 2 番目の Playlteni#lの再生を、 上述した 1番目の P yltemitOにおける場 合と同様にして開始する。
即ち、 2番目の Play Item#lの再生手順を概説すれば、 まず、 プレイ ャ制御モジュール 2 1 2は、 第 34図のステップ S 1 2 2における場 合と同様にして、 2番目の Playltem について、 EP— map 0に記述され た RPN—EP— startのうちのいずれかを、 再生開始位置として決定する。 さらに、 プレイヤ制御モジュール 2 1 2では、 第 34図のステップ S 1 24で説明したようにして、 2番目の ayltem#lに属する MarkO の認識や、 第 34図のステップ S 1 2 5で説明したようにして、 Play Item#lによって再生されるクリップストリームファイル" 00002. PS"に 多重化されている各属性のエレメン夕リストリームの本数の認識、 さ らには、 再生するエレメン夕リストリームの決定等が行われる。
そして、 プレイヤ制御モジュール 2 1 2は、 第 34図のステップ S 1 2 7における場合と同様の処理を行う。
即ち、 プレイヤ制御モジュール 2 1 2は、 再生開始位置として決定 した£?—1^0()の1^1£?—31 1^と、 再生対象のエレメンタリストリーム が多重化されているクリッブストリームファイルのファイル名、 即ち 、 いまの場合、 2番目の Playltem#l (第 2 9図) の CI ip— Informat ion — file— nameに記述された" 00002. CLP"に対応するクリップストリ一ム ファイル" 00002.PS"のファイル名を、 コンテンツデータ供給モジユー ル 2 1 3に対して与える。 さらに、 プレイヤ制御モジュ一ル 2 1 2.は、 再生対象のエレメン夕 リストリームが多重化されているクリッブストリームファイル" 00002 . PS"に格納されたプログラムストリームの、 バッファ制御モジュ一ル 2 1 5への供給が開始される前に、 バッファ制御モジュール 2 1 5を 初期化する。
即ち、 これにより、 バッファ制御モジュール 2 1 5 (第 5図) にお いて、 データ先頭ポインタ記憶部 2 3 1に記憶されるデータ先頭ボイ ン夕、 データ書き込みボイン夕記憶部 2 3 2に記憶されるデータ書き 込みボイン夕、 ビデオ読み出しボインタ記憶部 2 4 1に記憶されるビ デォ読み出しポインタ、 オーディオ読み出しポインタ記憶部 2 5 1に 記憶されるオーディォ読み出しボイン夕、 字幕読み出しボインタ記憶 部 2 6 2に記憶される字幕読み出しボイン夕に、 同じ値が代入される さらに、 プレイヤ制御モジュール 2 1 2は、 再生対象のエレメン夕 リストリームを識別するための識別情報としての stream— id、 さらに は、 必要に応じて、 private— stream— idを、 バッファ制御モジュール 2 1 5に供給する。 .
バッファ制御モジュール 2 1 5 (第 5図) では、 ビデオ読み出し機 能部 2 3 3が、 プレイヤ制御モジュール 2 1 2からの、 再生対象のェ レメンタリストリームのうちのビデオストリームについての stream_i dを、 streanし idレジスタ 24 2に記憶させる。 また、 オーディオ読み 出し機能部 2 3 4が、 プレイヤ制御モジュール 2 1 2からの、 再生対 象のエレメンタリストリ一ムのうちのオーディオフ、トリームの stream — idと private— stream— idを、 stream— idレシス夕 2 5 2と private— str eam_idレジスタ 2 5 3に、 それぞれ記憶させる。
さらに、 いま再生対象となっているエレメン夕リス 卜リームが多重 化されているクリップストリームファイル" 00002.PS"には、 字幕スト リームが含まれるため、 プレイヤ制御モジュール 2 1 2から字幕読み 出し機能部 2 3 5には、 再生対象のエレメンタリストリームのうちの 字幕ストリ一ムの stream— idと pri vat st ream— idが供給され、 字幕読 み出し機能部 2 3 5は、 その stream— idと private— stream— idを、 stre am— idレジス夕 2 6 3と private—stream— idレジスタ 2 6 4に、 それぞ れ記.憶させる。
そして、 プレイヤ制御モジュール 2 1 2は、 バッファ制御モジユー ル 2 1 5 (第 5図) の初期化として、 さらに、 再生対象のエレメン夕 リストリームが多重化されているクリップストリ一ムファイルに応じ た値の字幕読み出し機能フラグを、 字幕読み出し機能フラグ記憶部 2 6 1にセットする。
即ち、 いまの場合、 再生対象のエレメン夕リストリームが多重化さ れているクリッブストリームファイル" 00002.PS"には、 字幕ストリー ムが含まれるため、 字幕読み出し機能部 2 3 5を機能させるために、 値が 1の字幕読み出し機能フラグが、 字幕読み出し機能フラグ記憶部 2 6 1にセッ 卜される。 ·
また、 プレイヤ制御モジュール 2 1 2は、 再生しょうとしている 2 番目の Playltem#l (第 2 9図) の IN— timeである 90, 000と、 OUT— time である 27, 090, 000とを、 デコード制御モジュール 2 1 4に対して与え る。
さらに、 プレイヤ制御モジュール 2 1 2は、 グラフィクス処理モジ ユール 2 1 9に対する字幕ストリームの表示方式の指示を初期化する 。 即ち、 プレイヤ制御モジュール 2 1 2は、 字幕ストリームの表示方 式をデフォルトの表示方式とするように、 グラフィクス処理モジユー ル 2 1 9を制御する。 なお、 再生対象の字幕ストリームについて、 configurablejlag ( 第 1 4図) 力 表示方式の変更を許可する 1になっている場合には、 プレイヤ制御モジュール 2 1 2からグラフィクス処理モジュール 2' 1 9に対する字幕ス卜リームの表示方式の指示は、 現在の表示方式のま まとするようにしても良い。
以下、 2番目の P yItem#lの再生は、 1番目の PlayIiem#0の再生と 同様にして行われていく。 そして、 デコード制御モジュール 2 1 4は 、 その 2番目の PlayltemiHの再生が行われている間、 内蔵する計時部 2 1 4 Aが計時している時刻を確認し続けており、 計時部 2 14 Aが 計時している時刻が、 ステップ S 1 52 (第 40図) でプレイヤ制御 モジュール 2 1 2から与えられた 2番目の Playltem#lの OUTJimeであ る 27, 090, 000 (第 2 9図) に等しくなると、 ステップ S 1 5 1におけ る場合と同様のデコード中断制御を行い、 Playlteminの再生を終了す る。 尚、 上述したように、 計時部 2 14 Aが計時している時刻は、 厳 密には、 PlayItem#0の 0UT_timeと等しくならないことがある。 そのよ うなとき、 PlayItem#0の OUTJimeの時刻と計時部 2 14Aの計時する 時刻が近傍の値となったタイミングで、 .デコード中断制御が行われ、 PiayUem#0の再生が終了されることになる。 尚、 この処理については 、 第 5 1図, 第 5 2図を参照して詳細を後述する。
[タイムコードの表示]
次に、 上述したように、 第 34図のステップ S 1 2 3において、 夕 ィムコードの表示が開始されるが、 このタイムコードの表示は、 順次 更新されていく。
そこで、 第 4 1図のフローチャートを参照して、 タイムコードの表 示の処理について説明する。
デコード制御モジュール 2 1 4 (第 2図 Aおよび第 2図 B) は、 そ の内蔵する計時部 2 1 4 Aによって 1秒が計時されると、 ステップ S 1 7 1において、 1秒が経過した旨のメッセージとともに、 その ^時 部 2 1 4 Aによって計時されている現在時刻を、 プレイヤ制御モジ'ュ —ル 2 1 2に供給し、 ステップ S 1 7 2に進む。 ステップ S 1 7 2で は、 プレイヤ制御モジュール 2 1 2は、 デコード制御モジュール 2 1 4からのメッセージと現在時刻を受信し、 その現在時刻を、 タイムコ —ドに換算して、 ステップ S 1 7 3に進む。
ステップ S 1 7 3では、 プレイヤ制御モジュール 2 1 2は、 ステツ プ S 1 7 2で得たタイムコードを表 1i 示するように、 グラフィクス処理
9
モジュール 2 1 9を制御し、 ステップ S 1 7 1に戻る。
これにより、 タイムコードは、 1秒ごとに更新される。 なお、 タイ ムコードの更新の間隔は、 1秒に限定されるものではない。
[ストリーム切り替え]
次に、 第 2 9図で説明した 1番目の PlayList#0を構成する 1番目の PlayItem#0によって再生されるクリップス卜リームファイル" 00001. P S"や、 2番目の Playltemttlによって再生されるクリップストリームフ アイル" 00002.PS"には、 第 3 0図 Aおよび第 3 0図 Bで説明したよう に、 2本の字幕ストリームが多重化されている。
このように、 クリップストリ一ムファイルに、 複数の、 同一の属性 のエレメン夕リストリームが多重化されている場合においては、 再生 対象のエレメン夕リストリームを、 その複数の、 同一の属性のエレメ ン夕リストリームのうちの 1つから、 他の 1つに切り替えるストリー ム切り替えを行うことができる。
そこで、 第 42図のフローチヤ一トを参照して、 ストリーム切り替 えの処理について説明する。
ストリーム切り替えの要求は、 例えば、 "SCRIPT.DAT"ファイル (第 6図) に、 ストリーム切り替えの指示がスクリプトプログラムとして 記述されている場合に、 スクリプト制御モジュール 2 1 1が、 そ idス クリプ卜プログラムを実行することによって、 あるいは、 ユーザがリ モコンを操作することによって、 プレイヤ制御モジュール 2 1 2に与 えられる。
即ち、 スクリプト制御モジュール 2 1 1は、 ストリーム切り替えの 指示が記述されているスクリプトプログラムを実行すると、 ストリ一 ム切り替えを要求するメッセージを、 プレイヤ制御モジュール 2 1 2 に供給する。 また、 入力インターフェ一ス 1 1 5は、 ユーザがリモコ ンを操作することによって、 リモコンから、 ストリーム切り替えを指 示する信号を受信すると、 ストリーム切り替えを要求するメッセ一ジ を、 プレイヤ制御モジュール 2 1 2に供給する。
例えば、 いま、 プレイヤ制御モジュール 2 1 2に対して、 字幕スト リームの切り替えを要求するメッセージである字幕ストリ一ム切り替 えのメッセージが供給されたとすると、 プレイヤ制御モジュール 2 1 2は、 ステツプ S 1 9 1において、 第 3 4図のステツプ S 1 2 5で行 われた再生対象のエレメンタリストリ一.ムの決定のときに認識した字 幕ストリームの本数をチェックする。
プレイヤ制御モジュ一ル 2 1 2は、 字幕ストリームの本数をチエツ クした結果、 その本数が 1本以下である場合、 字幕ストリーム切り替 えのメッセージを無視し、 従って、 以降のステツプ S 1 9 2乃至 S 1 9 4の処理は行われない。
一方、 字幕ストリームの本数が 2本以上である場合、 ステップ S 1 9 2乃至 S 1 9 4に順次進み、 再生する字幕ストリームが、 現在再生 されている字幕ストリームから、 他の字幕ストリームに切り替えられ 即ち、 ステップ S 1 9 2において、 プレイヤ制御モジュール 2 1 2 は、 現在再生中の字幕ストリームを、 クリップ情報ファイル上で 定 する。 具体的には、 例えば、 いま、 第 2 9図で説明した 1番目の Play List#0を構成する 2番目の Playltem#lによって、 クリツブストリーム ファイル" 00002.PS"に多重化された、 stream— idが OxBDで、 private— s tream_idが 0x80の字幕ストリームが再生されていることとすると、 ス テツプ S 1 9 2では、 現在再生中の字幕ストリームが、 クリップスト リームファイル" 00002.PS"に多重化された 2本の字幕ストリームのう ちの、 第 3 0図 Aおよび第 3 0図 Bのクリップ情報ファイル" 00002. C LP"上で 3本目の字幕ストリ一ムである s eam#2であることが特定さ れる。
そして、 ステップ S 1 9 3に進み、 プレイヤ制御モジュール 2 1 2 は、 ステップ S 1 9 2で特定した字幕ストリームの、 クリップ情報フ アイル上で次の字幕ストリ一ムを、 次に再生する字幕ストリームとし て特定する。 第 3 0図 Aおよび第 3 0図 Bでは、 クリップ情報フアイ ル" 00002.CLP"上で、 3本目の字幕ス トリーム stream#2の次の字幕ス トリ一ムは、 4本目の字幕ストリーム st.ream#3であるから、 ステップ S 1 9 3では、 この 4本目の字幕ストリーム stream#3が、 次に再生す る字幕ストリームとして認識される。
なお、 現在再生中の字幕ストリームが、 クリップストリ一ムフアイ ル" 00002.PS"に多重化された 2本の字幕ストリームのうちの、 第 3 0 図 Aおよび第 3 0図 Bのクリップ情報ファイル" 00002. CLP"上で 4本 目の字幕ストリームである streani#3であることが特定された場合は、 例えば、 3本目の字幕ストリーム streani#2が、 次に再生する字幕スト リームとして認識される。
その後、 ステップ S 1 9 4に進み、 プレイヤ制御モジュール:] 1 2 は、 ステツプ S 1 9 3で認識した次に再生する字幕ストリ一ムの stre am_idと private— stream— idを、 バッファ制御モジュール 2 1 5 (第 5 図) の字幕読み出し機能部 2 3 5に対して与え、 その s eam_idと p'ri vate— stream— idを、 次回からの、 字幕アクセスユニットのバッファ 2 1 5 Aからの読み出しから使用するように指示する。
バッファ制御モジュール 2 1 5 (第 5図) の字幕読み出し機能部 2 3 5では、 ステップ S 1 9 4でプレイヤ制御モジュール 2 1 2から与 んられる stream— idと private— stream— idを、 s t ream— i dレジス夕 2 6
3と131" ^6_3 63111—1(1レジス夕 2 6 4に、 それぞれ新たにセットし 、 次回以降のバッファ 2 1 5 Aからの読み出しは、 その s eam—idレ ジス夕 2 6 3と private_stream— idレジス夕 2 6 4にそれぞれ新たに セッ卜された st. ream— idと private— st reanし idによつて特定される字幕 アクセスユニットを対象として行われる。
以上のようにして、 再生する字幕ストリームが、 現在再生されてい る字幕ストリームから、 他の字幕ストリームに切り替えられる。
[バッファ制御モジュール 2 1 5の処理]
次に、 第 4 3図乃至第 4 7図を参照して、 バッファ制御モジュール 2 1 5 (第 5図) の処理、 即ち、 バッファ 2 1 5 Aへのデータの書き 込みと、 バッファ 2 1 5 Aからのデ一夕の読み出しについて説明する 。
バッファ制御モジュール 2 1 5は、 第 5図で説明したように、 バッ ファ 2 1 5 Aに対するデータの読み書きを行うための 5つのボインタ を有している。
即ち、 第 4 3図および第 44図に示すように、 バッファ制御モジュ —ル 2 1 5は、 データ先頭ポインタ記憶部 2 3 1に記憶されるデータ 先頭ポインタ、 デ一夕書き込みポインタ記憶部 2 3 2に記憶されるデ 一夕書き込みポインタ、 ビデオ読み出しポインタ記憶部 2 4 1に記憶 されるビデオ読み出しボイン夕、 オーディォ読み出しボイン夕記 部 2 5 1に記憶されるオーディォ読み出しボインタ、 および字幕読み出 しボインタ記憶部 2 6 2に記憶される字幕読み出しボイン夕を有して いる。
なお、 第 4 3図および第 44図では、 第 5図におけるビデオ読み出 し機能部 2 3 3の st ream— idレジスタ 2 4 2および au— inf ormat i on 0 レジスタ 2 4 3、 オーディオ読み出し機能部 2 3 4の stream— idレジ ス夕 2 5 2および private— s earn— 2 idレジスタ 2 5 3、 並びに字幕読
3
み出し機能部 2 3 5の字幕読み出し機能フラグ記憶部 2 6 1、 stream — idレジスタ 2 6 3、 および pri vat e_stream_idレジスタ 2 64の図示 は、 省略してある。
データ先頭ボインタ記憶部 2 3 1に記憶されたデータ先頭ボイン夕 は、 バッファ 2 1 5 Aに残る最も古いデータ (読み出す必要があるデ 一夕であって、 まだ読み出されていないデータのうちの最も古いデ一 夕) の位置を表す。 デ一タ書き込みポインタ記憶部 2 3 2に記憶され たデ一夕書き込みポインタは、 バッファ.2 1 5 Aへのデータの書き込 みの位置を示し、 この位置は、 バッファ 2 1 5 Aで最も新しいデータ が書き込まれる位置である。
ビデオ読み出しポインタ記憶部 2 4 1に記憶されたビデオ読み出し ボイン夕は、 バッファ 2 1 5 Aから読み出すビデオストリームの位置 を表す。 また、 オーディオ読み出しポインタ記憶部 2 5 1に記憶され たオーディオ読み出しポインタは、 バッファ 2 1 5 Aから読み出すォ 一ディォストリームの位置を表し、 字幕読み出しボイン夕記憶部 2 6 2に記憶された字幕読み出しポインタは、 バッファ 2 1 5 Aから読み 出す字幕ストリームの位置を表す。 なお、 第 5図で説明したように、 データ先頭ポインタ、 デ一夕書き 込みポインタ、 ビデオ読み出しポインタ、 オーディオ読み出しボイン 夕、 および字幕読み出しポインタは、 いずれも、 バッファ 2 1 5 A.を 右回りに移動する。
さらに、 本実施の形態では、 デ一夕先頭ポインタは、 第 4 4図に示 すように、 ビデオ読み出しポインタ、 オーディオ読み出しポインタ、 または字幕読み出しボイン夕のうちの、 最も古いデ一夕の位置を指し ているものと同一の位置を指すように、 常時更新されるものとする。 ここで、 第 4 4図では、 ビデオ読み出しポインタ、 オーディオ読み出 しポインタ、 または字幕読み出しポインタのうちの、 オーディオ読み 出しポインタが、 最も古いデータの位置を指しており、 デ一夕先頭ポ ィンタは、 そのオーディォ読み出しボイン夕と一致している。
以上のようなデ一夕先頭ポインタ、 デ一夕書き込みポインタ、 ビデ ォ読み出しポインタ、 オーディオ読み出しポインタ、 および字幕読み 出しポインタを有するバッファ制御モジュール 2 1 5では、 デ一夕書 き込みボイン夕は、 ディスク 1 0 1から新たなデータが読み出され、 バッファ 2 1 5 Aに書き込まれると、 そ 書き込まれた新たなデ一夕 の直後の位置を指すように、 右回りに更新される。
さらに、 ビデオ読み出しポインタ、 オーディオ読み出しポインタ、 または字幕読み出しポインタは、 バッファ 2 1 5 Aから、 ビデオスト リーム、 オーディオストリーム、 または字幕ストリームが読み出され ると、 その み出し量に応じた分だけ、 それぞれ、 右回りに更新され る。 ここで読み出し量に応じた分とは、 実際に読み出したビデオ、 ォ 一ディォ、 字幕のデータに対応する部分と、 読み出したデータの間に 含まれており、 読み出しの際には読み飛ばしを行った、 他のストリー ムのデータの部分をあわせたものとなる。 また、 データ先頭ポインタは、 ビデオ読み出しポインタ、 オーディ ォ読み出しボイン夕、 または字幕読み出しボイン夕が更新されると そのビデオ読み出しボインタ、 オーディォ読み出しボインタ、 または 字幕読み出しボインタのうちの、 最も古いデ一夕の位置を指している ものと同一の位置を指すように更新される。
ここで、 ノ ッファ制御モジュール 2 1 5は、 ノ ッファ 2 1 5 Aへの データの書き込みについては、 データ書き込みボイン夕がデータ先頭 ポィン夕を追い越さないように、 バッファ 2 1 5 Aへのデ一夕の書き 込みを制御する。
即ち、 デ一夕書き込みポインタによるデータ先頭ポインタの追い越 しが発生しない限り、 バッファ制御モジュ一ル 2 1 5では、 ディスク 1 0 1から読み出されたデータが、 'データ書き込みポインタが指すバ ッファ 2 1 5 Aの位置に書き込まれ、 デ一夕書き込みボイン夕が更新 されていく。 一方、 データ書き込みポインタによるデータ先頭ポイン 夕の追い越しが発生しそうになると、 バッファ制御モジュール 2 1 5 では、 コンテンツデータ供給モジュール 2 1 3に対して、 ディスク 1 0 1からのデータの読み出しの停止が要求され、 さらに、 バッファ 2 1 5 Aへのデータの書き込みが停止される。 これにより、 バッファ 2 1 5 Aのオーバ一フローを防止することができる。
以上のように、 ディスク 1 0 1から読み出されたデータの、 バッフ ァ 2 1 5 Aへの書き込みは、 データ先頭ボイン夕とデータ書き込みポ イン夕との 2つのポインタの位置関係だけで制御される。
一方、 ノ ツファ制御モジュール 2 1 5は、 ノ ツファ 2 1 5 Aからの データの読み出しについては、 ビデオ読み出しポインタ、 オーディオ 読み出しポインタ、 および字幕読み出しポインタ、 ひいては、 デ一夕 先頭ポインタが、 データ書き込みポインタを追い越さないように、 バ ッファ 2 1 5 Aからのデータの読み出しを制御する。
即ち、 ビデオ読み出しポインタ、 オーディオ読み出しポインタ ま たは字幕読み出しボイン夕によるデータ書き込みボイン夕の追い越'し が発生しない限り、 バッファ制御モジュール 2 1 5では、 ビデオデコ —ダ制御モジュール 2 1 6、 オーディオデコーダ制御モジュール 2 1 7、 または字幕デコーダ制御モジュール 2 1 8からの要求に応じて、 ビデオ読み出しポインタ、 オーディオ読み出しポインタ、 または字幕 読み出しボイン夕が指すバッファ 2 1 5 Aの位置からデータが読み出 され、 ビデオ読み出しポインタ、 オーディオ読み出しポインタ、 また は字幕読み出しポインタが更新されるとともに、 必要に応じて、 デ一 タ先頭ポインタが更新される。 一方、 ビデオ読み出しポインタ、 ォー ディォ読み出しボインタ、 または字幕読み出しボイン夕によるデータ 書き込みボイン夕の追い越しが発生しそうになると、 バッファ制御モ ジュール 2 1 5では、 ビデオデコーダ制御モジュール 2 1 6、 オーデ ィォデコーダ制御モジュール 2 1 7、 または字幕デコーダ制御モジュ ール 2 1 8からの要求が、 例えば凍結され、 十分なデータが用意され るまで待たされる。 これにより、 バッファ 2 1 5 Aのアンダ一フロー を防止することができる。
以上から、 バッファ 2 1 5 Aには、 データ先頭ポインタが指す位置 から、 右回りに、 デ一夕書き込みポインタが指す位置までの範囲 (第 4 3図および第 4 4図において影を付してある部分) に、 ビデオデコ ーダ制御モジュール 2 1 6、 オーディオデコーダ制御モジュール 2 1 7、 および字幕デコーダ制御モジュール 2 1 8に供給すべきデ一夕が 記憶されており、 さらに、 その範囲内に、 ビデオ読み出しポインタ、 オーディオ読み出しポインタ、 および字幕読み出しポインタは存在す なお、 上述の場合には、 データ先頭ポインタは、 ビデオ読み出しポ イン夕、 オーディオ読み出しポインタ、 または字幕読み出しポイ タ が指している位置のうちの、 最も古いデータの位置を指すように更新 することとしたが、 その他、 データ先頭ポインタの更新は、 例えば、 その最も古いデータの位置から、 所定の時間 (例えば、 1秒) 分だけ 過去のデータの位置を指すように行うことが可能である。
即ち、 一般には、 ビデオ読み出しポインタ、 オーディオ読み出しポ インタ、 または字幕読み出しポインタのうちの、 ビデオ読み出しボイ ンタゃオーディォ読み出しボイン夕が、 最も古いデータの位置を指す ことが多いと予想される。
従って、 データ先頭ポインタを、 ビデオ読み出しポインタまたはォ 一ディォ読み出しボイン夕が指す最も古いデータの位置から、 例えば
、 1秒分だけ過去のデータの位置を指すように更新した場合、 第 4 3 図に示すように、 ビデオ読み出しボイン夕またはオーディォ読み出し ポインタが指す最も古いデータの位置から過去 1秒分のデ一夕を、 バ ッファ 2 1 5 Aに残しておくことができる。 ここで、 第 4 3図では、 ォ一ディォ読み出しボイン夕が、 最も古.ぃデ一夕の位置を指しており 、 データ先頭ポインタは、 その位置から 1秒分だけ過去のデータの位 置を指している。
以上のように、 1秒分だけ過去のデータの位置を指すように、 デー 夕先頭ボイン夕を更新することにより、 ディスク再生装置の応答性を 向上させることができる。
即ち'、 第 4 4図に示したように、 オーディオ読み出しポインタが指 している最も古いデ一夕の位置を指すように、 デ一夕先頭ボイン夕を 更新する場合には、 例えば、 リバース方向への特殊再生が指示された ときに、 バッファ 2 1 5 Aからの読み出しが終了したデ一夕を、 ディ スク 1 0 1から再度読み出す必要があるため、 特殊再生が指示されて から、 その特殊再生が可能となるまでに、 ある程度の時間がかか^)。
これに対して、 第 4 3図に示したように、 オーディオ読み出しボイ ン夕が指している最も古いデータの位置から 1秒分だけ過去のデータ の位置を指すように、 デ一夕先頭ポインタを更新する場合には、 リバ —ス方向への特殊再生が指示されたときに、 その特殊再生を開始する のに必要なデ一夕が、 バッファ 2 1 5 Aに記憶されている 1秒分だけ 過去のデータであれば、 上述したようなディスク 1 0 1からのデータ の再読み出しを行わずに、 即座に、 特殊再生を開始することが可能と なる。
なお、 オーディォ読み出しボイン夕が指している最も古いデ一夕の 位置から 1秒分だけ過去のデータの位置を指すように、 デ一夕先頭ポ ィン夕を更新する場合であっても、 特殊再生を開始するのに必要なデ
—夕が、 バッファ 2 1 5 Aに記憶されていないことがあり得る。 この 場合には、 特殊再生を開始するのに必要なデ一夕が、 ディスク 1 0 1 から再度読み出される。
次に、 ノ'ッファ 2 1 5 Aからのビデオ,ストリーム、 オーディオスト リーム、 字幕ストリームそれぞれの読み出しの詳細について説明する 第 3 4図のステップ S 1 2 7で説明したように、 クリップストリー ムファイルの再生が開始されるときに、 バッファ制御モジュール 2 1 5において【 、 データ先頭ポインタ、 データ書き込みポインタ、 ビデ ォ読み出しポインタ、 オーディオ読み出しポインタ、 字幕読み出しポ イン夕が、 すべて、 バッファ 2 1 5 A上の同じ位置を指すように初期 化される。
そして、 ディスク 1 0 1からクリッブストリームフアイルに格納さ 1070 れたプログラムストリーム(MPEG2-Sys t em P r ogr am S t r e am)が読み出 され、 バッファ制御モジュール 2 1 5に供給されると、 ノ ッファ制 P モジュール 2 1 5では、 そのプログラムストリームが、 バッファ 2 ' 1 5 Aのデータ書き込みボイン夕が指す位置に記憶されるとともに、 デ —夕書き込みポインタが、 右回りに更新されていく。
さらに、 バッファ制御モジュール 2 1 5 (第 5図) では、 ビデオ読 み出し機能部 2 3 3が、 バッファ 2 1 5 Aに記憶されたプログラムス トリームの構文解析を行い、 ビデオデコーダ制御モジュール 2 1 6か らの要求に応じて、 バッファ 2 1 5 Aに記憶されたプログラムストリ —ムから、 ビデオアクセスユニッ トを抽出して読み出し、 ビデオデコ —ダ制御モジュ一ル 2 1 6に供給する。
同様に、 オーディォ読み出し機能部 2 3 4も、 ノ ッファ 2 1 5 Aに 記憶されたプログラムストリ一ムの構文解析を行い、 オーディオデコ —ダ制御モジュール 2 1 7からの要求に応じて、 バッファ 2 1 5 Aに 記憶されたプログラムストリームから、 オーディオアクセスユニッ ト を抽出して読み出し、 オーディォデコーダ制御モジュール 2 1 7に供 給する。 字幕読み出し機能部 2 3 5も、 バッファ 2 1 5 Aに記憶され たプログラムストリームの構文解析を行い、 字幕デコーダ制御モジュ —ル 2 1 8からの要求に応じて、 ノ、ッファ 2 1 5 Aに記憶されたプロ グラムストリームから、 字幕アクセスユニッ トを抽出して読み出し、 字幕デコーダ制御モジュール 2 1 8に供給する。
「ビデオストリームの読み出し」
次に、 第 4 5図のフローチャートを参照して、 ビデオ読み出し機能 部 2 3 3 (第 5図) による、 ) j、 ファ 2 1 5 Aからのビデオストリ一 ムの読み出し処理の詳細について説明する。
ビデオ読み出し機能部 2 3 3は、 まず最初に、 ステップ S 2 1 1に おいて、 バッファ 2 1 5 Aに記憶されたプログラムス卜リーム中の pr ivate— stream— 2の PES— packet ()を探索して見つけ出す。 すなわち、 r ivate_stream一 2の PES— packe )の stream_idは、 第 2 3図で説明した ように、 10111111B(=0xBF)であり、 ビデオ読み出し機能部 2 3 3は、 stream— idが 10111111Bとなっている PES— packet 0を探索して見つけ出 す。
ここで、 例えば、 いま、 上述したように、 クリップストリームファ ィル" 00001.PS"に格納されたプログラムストリームに多重化されたェ レメン夕リストリームが、 再生対象のエレメン夕リストリームである とすると、 そのプログラムストリームをディスク 1 0 1から読み出し て、 バッファ 2 1 5 Aに記憶させるときに、 第 3 4図のステップ S 1 2 2において、 クリップストリームファイル" 00001.PS"の EP— map 0 ( 第 3 1図) に記述されたデコード開始可能点の情報から、 305セクタ が再生開始位置として決定され、 さらに、 第 34図のステップ S 1 2 8において、 再生開始位置である 305セクタが指定され、 オペレーテ ィングシステム 2 0 1に対して、 クリップストリームファイル" 00001 .PS"に格納されたプログラムストリーム.の読み出しが要求される。 また、 ビデオストリームについては、 EP_MPOに記述されたデコー ド開始可能点の情報は、 実際のデコード開始可能点の直前に配置され た private__strean 2の PES_packet 0の位置を表す。
従って、 クリップストリ一ムファイル" 00001.PS"に格納されたプロ グラムストリームがディスク 1 0 1から読み出され、 バッファ 2 1 5 Aに記憶された直後においては、 データ先頭ボインタゃビデオ読み出 しポインタが指すバッファ 2 1 5 Aの位置には、 private— stream— 2の PES— packet 0が記憶されている。
ビデオ読み出し機能部 2 3 3は、 ステップ S 2 1 1において、 priv ate_stream— 2の PES_packet 0が見つかると、 ステップ S 2 1 2に進み 、 その private— streanし 2の PES_packet 0の PES— packet— data— by teであ る private— stream2_PES—payload() (第 2 6図) に記述されている v'id eo_stream— idを抜き出し、 その video_stream_idが、 第 3 4図のステ ップ S 1 2 7で s eam_idレジスタ 2 4 2 (第 5図) に記憶された、 再生対象のビデオストリームの stream— idと一致するかどうかを判定 する。
ステップ S 2 1 2において、 private_stream2— PES— pay load 0に記 述されている video_stream— idが、 stream_idレジスタ 2 4 2に記憶さ れた stream— idと一致しないと判定された場合、 即ち、 直前のステツ プ S 2 1 1で見つけ出された private— stream— 2の PES— packet 0が、 再 生対象のビデオス卜リームのデコード開始点に配置されたものでない 場合、 ステップ S 2 1 1に戻り、 バッファ 2 1 5 Aに記憶されたプロ グラムストリ一ム中の他の private_stream— 2の PES— packet 0の探索が 行われ、 以下、 同様の処理が繰り返される。
一方、 ステップ S 2 1 2において、 private_stream2_PES— payload( )に記述されている video— stream— idが、 .s t ream_i dレジスタ 2 4 2に 記憶された stream—idと一致すると判定された場合、 即ち、 直前のス テツプ S 2 1 1で見つけ出された private_stream— 2の PES— packet 0が 、 再生対象のビデオストリームのデコード開始点に配置されたもので ある場合、 ステップ S 2 1 3に進み、 ビデオ読み出し機能部 2 3 3は 、 その private— stream— 2の PES— packet () CDpr ivate_stream2_PES_payl oad()に記述されている au— informationOを、 バッファ 2 1 5 Aから 読み出し、 au— informationOレジスタ 2 4 3 (第 5図) に記憶させ、 ステップ S 2 1 4に進む。
ステップ S 2 1 4では、 ビデオ読み出し機能部 2 3 3は、 直前のス テツプ S 2 1 1で見つけ出した private— s eam— 2の PES— packet 0 (vi deo_stream_id (第 2 6図) 力 stream— idレジス夕 2 4 2 (第 5図) に記憶された st ream— idと一致する private— stream— 2の PES— Dacket 0 ) のサイズだけ、 データ先頭ポインタ記憶部 2 3 1に記憶されたビデ ォ読み出しポインタを更新する。
即ち、 クリップストリームファイルでは、 private— st ream_2の PES— packet 0の直後に、 その video— stream_idと一致する stream— idのビデ ォストリーム (PES— packet 0) が配置されており、 従って、 ステップ S 2 1 4では、 ビデオ読み出しポイ 3ンタは、 ビデオストリームの実際
2
のデコード開始可能点の位置を指すように更新される。
その後、 ステップ S 2 1 4から S 2 1 5に進み、 ビデオ読み出し機 能部 2 3 3は、 ビデオコーダ制御モジュール 2 1 6から、 データの要 求があつたかどうかを判定し、 ないと判定した場合、 ステップ S 2 1 5に戻り、 同様の処理を繰り返す。
また、 ステップ S 2 1 5において、 ビデオデコ一ダ制御モジュール 2 1 6から、 デ一夕の要求があつたと判定された場合、 ステップ S 2 1 6に進み、 ビデオ読み出し機能部 2 3.3は、 ビデオ読み出しポイン 夕が指しているバッファ 2 1 5 Aの位置からのプログラムストリーム の構文解析を行いつつ、 au— informationOレジスタ 2 4 3に記憶され た au— informationOの AU—lengthに記述されたバイ ト数のデータ、 つ まり 1つのビデオアクセスュニットを、 バッファ 2 1 5 Aから読み出 し、 ビデオ コーダ制御モジュール 2 1 6に供給するとともに、 ビデ ォ読み出しポインタを、 バッファ 2 1 5 Aから読み出した 1つのビデ ォアクセスュニッ トのサイズ分だけ更新する。
即ち、 au— informationOには、 第 2 7図で説明したように、 それを 含む private stream 2の PES— packet 0力 ら、 次の private— stream— 2の PES— packetOまでの間に含まれるビデオアクセスュニット (ピクチャ ) の数を表す number_of— access_unitが記述されている。
さらに、 au— informationOには、 第 2 7図で説明したように、 そ"の number_oし access— uni tの数だけのビデオアクセスュニットそれぞれ に関する情報としての pic_struct— copy, au_ref_f lag> および AU_len gthが記述されている。
au_inf ormat ion 0 (こ number— o f— access— uni tの数だナ記述されてレ る AU— lengthそれぞれは、 第 2 7図で説明したように、 それを含む pri vate— stream— 2の PES— packet 0力、ら、 次の private— stream— 2の PES— pac ket 0までの間に含まれる、 number— oし access_uni tの数のビデオァク セスュニットそれぞれのサイズを表すから、 ビデオ読み出し機能部 2 3 3は、 その AU— lengthを用いることで、 ビデオストリームの構文解 析を行うことなく、 アクセスュニヅ卜の切り出しを行うことが出来る 即ち、 従来、 MPEG2-Videoや MPEG4- AVCのアクセスユニットを切り出 す場合には、 ビデオストリームの構文を知った上で、 ビデオストリー ムの構文解析を行う必要があつたが、 ディスク 1 0 1に記録されたク リップストリームファイルに格納されたプログラムストリームは、 ビ デォアクセスュニット単位のビデオストリ一ムにおける 1以上の実際 のデコード開始可能点それぞれの直前に、 ビデオアクセスユニットの サイズを表す AU— lengthが記述された private— st ream_2の PES— packet ( )を含んでいるので、 ビデオ読み出し機能部 2 3 3は、 その private_s treanし 2の PES—packet ()に記述された AU_lengihに基づき、 ビデオスト リ一ムの構文解析を行うことなく、 バッファ 2 1 5 Aから、 ビデオア クセスユニッ ト (単位のビデオストリーム) を読み出し、 ビデオデコ ―ダ制御モジュール 2 1 6に供給することができる。 なお、 ビデオ読み出し機能部 2 3 3は、 ステップ S 2 1 6において 、 ビデオアクセスユニッ トを、 ビデオデコーダ制御モジュール 2 1(6 に供給するときに、 そのビデオアクセスュニッ 卜に関する情報として au_inf ormat i on 0 ίこ 述さ てレ る pic一 s t rue t一 copy, au一 ref一 f lag、 および AU— lengthと、 ビデオアクセスユニッ ト単位に付加されている タイムスタンプ (PTS, DTS) も、 ビデオデコーダ制御モジュール 2 1 6に供給する。
ステップ S 2 1 6において、 ノ ッファ 2 1 5 Aから 1つのビデオア クセスュニッ 卜が読み出され、 ビデオデコーダ制御モジュール 2 1 6 に供給された後は、 ステップ S 2 1 7に進み、 ビデオ読み出し機能部 2 3 3は、 au— informationOレジス夕 2 4 3に記憶された au— inf orma tionO (第 2 7図) の number_of—access— uni tが表す数だけのァクセ スュニッ 卜を処理したかどうかを判定する。
ステップ S 2 1 7において、 number— of—access_uni tが表す数だけ のアクセスユニッ トを、 まだ処理していないと判定された場合、 即ち 、 number_of—access— unitが表す数だけのアクセスユニッ トを、 まだ 、 バッファ 2 1 5 Aから読み出してビデすデコーダ制御モジュール 2 1 6に供給していない場合、 ステップ S 2 1 5に戻り、 以下、 同様の 処理が繰り返される。
また、 ステップ S 2 1 7において、 number_of— access_uni tが表す 数だけのアクセスユニッ トを処理したと判定された場合、 即ち、 numb er_of— access— unitが表す数だけのアクセスュニッ トを、 バッファ 2 1 5 Aから読み出してビデオデコーダ制御モジュール 2 1 6に供給し た場合、 ステップ S 2 1 1に戻り、 次の private_stream— 2の PES_pack et()の探索が行われ、 以下、 同様の処理が繰り返される。
「オーディオストリームの読み出し」 次に、 第 4 6図のフローチャートを参照して、 オーディオ読み出し 機能部 2 3 4 (第 5図) による、 バッファ 2 1 5 Aからのオーディ4ォ ストリームの読み出し処理の詳細について説明する。
オーディオ読み出し機能部 2 3 4は、 まず最初に、 ステップ S 2 3 0において、 第 3 4図のステツプ S 1 2 7で stream_idレジス夕 2 5 2 (第 5図) に記憶された、 再生対象のオーディオストリームの stre am— idが、 private— stream— 1の PES— packet 0を表しているかどうかを 判定する。
ステツプ S 2 3 0において、 stream_idレジス夕 2 5 2に記憶され た stream— idが、 pr ivate_s t ream— 1の PES_packe t 0を表していない判 定された場合、 即ち、 stream_idレジスタ 2 5 2に記憶された stream— idが、 第 2 3図で説明したように、 MPEG規格にしたがって符号化され たオーディォストリ一ムに割り当てられる ΙΙΟχχχχχΒである場合、 ス テツプ S 2 3 1に進み、 オーディオ読み出し機能部 2 3 4は、 バッフ ァ 2 1 5 Aに記憶されたプログラムストリームから、 MPEG Audioで定 められたオーディオフレーム先頭を表す同期コードを探す。 同期コ一 ドの位置がオーディオフレーム先頭なの.で、 オーディォ読み出し機能 部 2 3 4は、 オーディオ読み出しポインタを、 オーディオフレーム先 頭の位置を示すように更新し、 ステップ S 2 3 1から S 2 3 2に進む 。 ステップ S 2 3 2では、 オーディオ読み出し機能部 2 3 4は、 ノ ツ ファ 2 1 5 Aに記憶されたプログラムストリ一ム中の、 s earn— idレ ジス夕 2 5 2に記憶された stream— idに一致する PES_packet ()を、 ォ 一ディォ読み出しボイン夕が示す位置から探索して見つけ出し、 ステ ップ S 2 3 3に進む。
ステップ S 2 3 3では、 オーディオ読み出し機能部 2 3 4は、 ォー ディォ読み出しポインタ記憶部 2 5 1に記憶されたオーディオ読み出 しボインタを、 直前のステップ S 2 3 2で見つけ出した PES—packet 0 の PES— packet— data— byte (第 1 9図 Aおよび第 1 9図 B乃至第 2 図 Aおよび第 2 1図 B) の先頭を指すように更新し、 ステップ S 2 3'7 に進む。
ステップ S 2 3 7では、 オーディオ読み出し機能部 2 3 4は、 ォー ディォデコーダ制御モジュール 2 1 7から、 データの要求があつたか どうかを判定し、 ないと判定した場合、 ステップ S 2 3 7に戻り、 同 様の処理を繰り返す。
また、 ステップ S 2 3 7において、 オーディオデコーダ制御モジュ
3 6
ール 2 1 7から、 データの要求があつたと判定された場合、 ステップ S 2 3 8に進み、 オーディオ読み出し機能部 2 3 4は、 オーディオ読 み出しボイン夕が指しているバッファ 2 1 5 Aの位置からのプロダラ ムストリームの構文解析を行いつつ、 既知の固定長の 1つのオーディ ォアクセスュニッ トを、 バッファ 2 1 5 Aから読み出し、 そのオーデ ィォアクセスユニットに付加されているタイムスタンプ (PTS, DTS) とともに、 ォ一ディォデコーダ制御モジュール 2 1 7に供給する。 そして、 オーディオ読み出し機能部 2.34は、 ノ、ッファ 2 1 5 Aか ら読み出した 1つのオーディォアクセスュニットのサイズ分だけ、 ォ 一ディォ読み出しポインタを更新して、 ステップ S 2 3 7に戻り、 以 下、 同様の処理が繰り返される。
一方、 ステップ S 2 3 0において、 stream— idレジスタ 2 5 2に記 憶された stream— idが、 pr i vat e—s t ream— 1の PES— packet 0を表してい ると判'定された場合、 即ち、 stream—idレジスタ 2 5 2に記憶された s treanし idが、 10111101B (=0xBD)であり、 第 2 3図で説明したように、 private— streanし 1の PES_packet 0を表している場合、 ステップ S 2 3 4に進み、 オーディオ読み出し機能部 2 34は、 バッファ 2 1 5 Aに 記憶されたプログラムストリ一ム中の private_stream— 1の PES— packet 0を探索して見つけ出す。 すなわち、 オーディオ読み出し機能部 3 4は、 stream— idが 10111101Bとなっている PES— packet ()を探索しで見 つけ出す。
オーディオ読み出し機能部 2 3 4は、 ステップ S 2 3 4において、 private— stream_lの PES— packet 0が見つかると、 ステップ S 2 3 5に 進み、 その private— stream— 1の PES— packet 0の PES— packet— data— byte である private_streamし PES— payloadO (第 2 4図) に記述されてい る private一 stream_idを抜き出し、 その private— stream— idが、 第 3 4 図のステップ S 1 2 7で private— stream— idレジスタ 2 5 3 (第 5図 ) に記憶された、 再生対象のオーディオストリームの private— stream —idと一致するかどうかを判定する。
ステップ S 2 3 5において、 private— st reamし PES— payloadOに記 述されている private— stream— idカ、 private— s t ream— idレジス夕 2 5 3に記憶された private— stream— idと一致しないと判定された場合、 即ち、 直前のステップ S 2 3 4で見つけ出された private— stream— 1の PES_packet ()が、 再生対象のオーディオストリ一ムではない場合、 ス テツプ S 2 3 4に戻り、 ノ ッファ 2 1 5 Aに記憶されたプログラムス トリ一ム中の他の private— stream_lの PES_packet ()の探索が行われ、 以下、 同様の処理が繰り返される。
一方、 ステップ S 2 3 5において、 private_streaml— PES—payload ( )に霄己述されている private— stre am— i d力 r ivate_s tre am一 i dレジス 夕 2 5 3に記憶された private一 stream— idと一致すると判定された場 合、 即ち、 直前のステップ S 2 3 4で見つけ出された private— stream —1の PES— packet 0が、 再生対象のオーディオストリームである場合、 ステップ S 2 3 6に進み、 オーディオ読み出し機能部 2 3 4は、 その pr ivate_s t ream_lの PES— packet 0の pr ivat e— s t r earn 1— PES— pay 1 oad 0 (第 2 4図) に記述されている AU_locat,orを、 バッファ 2 1 5 Aから 読み出し、 その AU_locatorの直後の位置と、 その AU— locatorが表す'値 とを加算することで、 オーディオアクセスュニッ 卜の先頭位置を求め る。
即ち、 AU— locatorは、 第 24図で説明したように、 その AU— locator の直後の位置を基準として、 private一 streaml— PES_payload()の priva te_payload()に格納されるオーディォアクセスュニットあるいは字幕 アクセスュニットの先頭位置を表すから、 AU一 locatorの直後の位置に 、 その AU— locatorが表す値を加算することにより、 オーディオアクセ スュニッ卜の先頭位置を求めることができる。
オーディオ読み出し機能部 2 3 4は、 さらに、 ステップ S 2 3 6に おいて、 以上のようにして求めたオーディオアクセスュニッ卜の先頭 位置を指すように、 オーディオ読み出しポインタ記憶部 2 5 1に記憶 されたオーディオ読み出しポインタを更新し、 ステップ S 2 3 7に進 む。
ステップ S 2 3 7では、 オーディオ読み出し機能部 2 3 4は、 ォー ディォデコーダ制御モジュール 2 1 7から、 デ一夕の要求があつたか どうかを判定し、 ないと判定した場合、 ステップ S 2 3 7に戻り、 同 様の処理を繰り返す。
また、 ステップ S 2 3 7において、 オーディオデコーダ制御モジュ ール 2 1 7から、 データの要求があつたかと判定された場合、 ステツ プ S 2 3 8に進み、 オーディオ読み出し機能部 2 3 4は、 オーディオ 読み出しボイン夕が指しているバッファ 2 1 5 Aの位置からのプログ ラムストリームの構文解析を行いつつ、 既知の固定長の 1つのオーデ ィォアクセスユニッ トを、 バッファ 2 1 5 Aから読み出し、 そのォー ディォアクセスュニッ卜に付加されているタイムスタンプとともに、 オーディオデ 'コーダ制御モジュール 2 1 7に供給する。
そして、 オーディオ読み出し機能部 2 3 4は、 バッファ 2 1 5 Aか ら読み出した 1つのオーディオアクセスュニッ卜のサイズ分だけ、 ォ —ディォ読み出しポインタを更新して、 ステップ S 2 3 7に戻り、 以 下、 同様の処理が繰り返される。
「字幕ストリームの読み出し」
次に、 第 4 7図のフローチャートを参照して、 字幕読み出し機能部 2 3 5 (第 5図) による、 バッファ 2 1 5 Aからの字幕ストリームの 読み出し処理の詳細について説明する。
字幕読み出し機能部 2 3 5は、 まず最初に、 ステップ S 2 5 1にお いて、 第 3 4図のステップ S 1 2 7で字幕読み出し機能フラグ記憶部 2 6 1に記憶された字幕読み出し機能フラグを判定する。 ステップ S 2 5 1において、 字幕読み出し機能フラグが 0であると判定された場 合、 即ち、 例えば、 再生対象のエレメンタリストリームが多重化され ているクリップストリームファイルに字幕ストリームが含まれておら ず、 第 3 4図のステップ S 1 2 7で字幕韓み出し機能フラグ記憶部 2 6 1に、 0がセッ トされた場合、 字幕読み出し機能部 2 3 5は特に処 理を行わない。
一方、 ステップ S 2 5 1において、 字幕読み出し機能フラグが 1で あると判定された場合、 即ち、 例えば、 再生対象のエレメン夕リスト リ一ムが多 化されているクリップストリームファイルに字幕ストリ ームが'含まれており、 第 3 4図のステップ S 1 2 7で字幕読み出し機 能フラグ記憶部 2 6 1に、 1がセッ トされた場合、 ステップ S 2 5 2 に進み、 字幕読み出し機能部 2 3 5は、 s t r eam— i dレジスタ 2 6 3 ( 第 5図) に記憶された、 再生対象の字幕ストリームの s e arn— i dに一 致する PES_packet 0を、 ノ'ッファ 2 1 5 Aに記憶されたプログラムス トリ一ムから探索する。 ¾ ここで、 第 3 4図のステップ S 1 2 7で説明したように、 stream— i dレジスタ 2 6 3 (第 5図) には、 再生対象の字幕ストリームの strea m_idが記憶されるが、 字幕ストリームの stream_idは、 第 2 3図で説 明したように、 private— stream— 1の PES— packet 0を表す 10111101B (=0 xBD)である。
従って、 ステップ S 2 5 2では、 バッファ 2 1 5 Aに記憶されたプ ログラムストリーム中の private— st ream_Jの PES— packet ()が探索され ることになる。
ステツプ S 2 5 2において、 private_stream— 1の PES_packet 0の探 索が行われ、 private—stream— 1の PES— packet 0が見つかると、 ステツ プ S 2 5 3に進み、 字幕読み出し機能部 2 3 5は、 その private_st're anし 1の PES— packet 0の PES— packet— data— by teである pri vat e—s t reamし PES— payloadO (第 2 4図) に記述されている private— stream_idを抜 き出し、 その private_stream— idが、 第 3 4図のステップ S 1 2 7で ρ rivate一 s earn— idレジス夕 2 6 4 (第 5.図) に記憶された、 再生対象 の字幕ス卜リームの private— stream— idと一致するかどうかを判定す る。
ステップ S 2 5 3において、 private_streamし PES— payloadOに記 述されて(^る private— s tream— idが、 pr i vaie— s tream— idレジスタ 2 6 4に記憶された privat.e__stream_i(3と一致しないと判定された場合、 即ち、 直前のステップ S 2 5 2で見つかった private_streanし 1の PES_ packet 0が、 再生対象の字幕ストリームではない場合、 ステップ S 2 5 2に戻り、 バッファ 2 1 5 Aに記憶されたプログラムストリーム中 の他の private— stream— 1の PES Dacket 0の探索が行われ、 以下、 同様 の処理が繰り返される。
一方、 ステップ S 2 5 3において、 private— streamし PES— payl(^d( )に言己述されている pr ivate— s t ream— id力 r i vate_s t ream— i dレジ'ス 夕 2 6 4に記憶された private_stream_idと一致すると判定された場 合、 即ち、 直前のステップ S 2 5 2で見つかった private_stream— 1の PES一 packet ()が、 再生対象の字幕ストリームである場合、 ステップ S 2 5 4に進み、 字幕読み出し機能部 2 3 5は、 その private_stream— 1 の PES— packet 0の private— streaml— PES— payloadO (第 2 4図) に記 述されている ALUocatorを、 バッファ 2 1 5 Aから読み出し、 その Αϋ 一 locatorの直後の位置と、 その Allocatorが表す値とを加算すること で、 字幕アクセスユニットの先頭位置を求める。
即ち、 Αϋ— locatorは、 第 2 4図で説明したように、 その AU_locator の直後の位置を基準として、 private—streaidJES—payloadOの priva te一 payloadOに格納される字幕アクセスュニット (あるいはオーディ ォアクセスユニット) の先頭位置を表すから、 Allocatorの直後の位 置に、 その AU— locatorが表す値を加算することにより、 字幕アクセス ュニッ卜の先頭位置を求めることができ ¾。
字幕読み出し機能部 2 3 5は、 さらに、 ステップ S 2 5 4において 、 以上のようにして求めた字幕アクセスュニッ卜の先頭位置を指すよ うに、 字幕読み出しポインタ記憶部 2 6 2に記憶された字幕読み出し ポインタを更新し、 ステップ S 2 5 5に進む。
ステップ S 2 5 5では、 字幕読み出し機能部 2 3 5は、 字幕デコー ダ制御モジュール 2 1 8から、 データの要求があつたかどうかを判定 し、 ないと判定した場合、 ステップ S 2 5 5に戻り、 同様の処理を繰 り返す。
また、 ステップ S 2 5 5において、 字幕デコーダ制御モジュール 2 1 8から、 データの要求があつたかと判定された場合、 ステップ S 2 5 6に進み、 字幕読み出し機能部 2 3 5は、 字幕読み出しポイン が 指しているバッファ 2 1 5 Aの位置からのプログラムストリームの構 文解析を行いつつ、 字幕アクセスュニットの先頭に記述されているサ ィズ分の 1つの字幕アクセスュニットを、 バッファ 2 1 5 Aから読み 出し、 その字幕アクセスュニッ卜に付加されているタイムスタンプと ともに、 字幕デコーダ制御モジュール 2 1 8に供給する。 即ち、 字幕 アクセスュニットの先頭には、 第 2図 Aおよび第 2図 Bで説明したよ うに、 その字幕アクセスユニットのサイズが記述されており、 字幕読 み出し機能部 2 3 5は、 そのサイズ分のデータを、 字幕読み出しボイ ン夕が指しているバッファ 2 1 5 Aの位置から読み出し、 その読み出 したデータである字幕アクセスュニットを、 その字幕アクセスュニッ トに付加されているタイムスタンプとともに、 字幕デコーダ制御モジ ユール 2 1 Sに供給する。
そして、 字幕読み出し機能部 2 3 5は、 バッファ 2 1 5 Aから読み 出した 1つの字幕アクセスュニッ卜のサイズ分だけ、 字幕読み出しポ イン夕を更新して、 ステップ S 2 5 5に戻り、 以下、 同様の処理が繰 り返される。
[再同期処理]
次に、 第 2図 Aおよび第 2図 Bのデコード制御モジュール 2 1 4に よる、 ビデオデータとオーディォデコーダとの同期制御について説明 する。 '
第 3 4図のステップ S 1 3 0で説明したように、 デコード制御モジ ユール 2 1 4は、 同期を確保するために必要であればタイミングをず らして、 デコード開始を、 ビデオデコーダ制御モジュール 2 1 6、 ォ 一ディォデコーダ制御モジュール 2 1 7、 および字幕デコーダ制御モ ジュール 2 1 8に指令するが、 例えば、 'その後のビデオデコーダ 1 1 6とオーディォデコ一ダ 1 1 7のデコード処理の進行程度によって、 ビデオデ一夕の出力と、 そのビデオデータと同期して出力されるべき 出力データとしてのオーディォデ一夕の出力とがずれることがある。 そこで、 デコード制御モジュール 2 1 4では、 ビデオデータの出力 と、 そのビデオデータと同期して出力されるべきオーディォデータの 出力とに生じたずれを補正し、 ビデオデータとオーディォデ一夕とが 同期して出力されるようにするための再同期処理が行われる。
第 4 8図のフローチャートを参照して、 再同期処理について説明す る。
再同期処理では、 まず最初に、 ステップ S 2 7 1において、 デコー ド制御モジュール 2 1 4は、 ビデオデコーダ制御モジュール 2 1 6か らのビデオアクセスュニッ卜のタイムスタンプと、 オーディオデコ一 ダ制御モジュール 2 1 7からのオーディオアクセスユニットのタイム スタンプとのずれが大であるかどうかを判定する。
即ち、 第 3 4図のステップ S 1 2 9で説明したように、 ビデオデコ ―ダ制御モジユール 2 1 6は、 ノ ッファ.制御モジュール 2 1 5からビ デォアクセスュニットを得るたびに、 そのビデオアクセスュニットの タイムスタンプを、 デコード制御モジュール 2 1 4に供給する。 同様 に、 オーディオデコーダ制御モジュール 2 1 7も、 バッファ制御モジ ユール 2 1 5からオーディォアクセスュニットを得るたびに、 そのォ 一ディオア セスュニッ 卜のタイムスタンプを、 デコード制御モジュ —ル 2 1 4に供給する。
ステップ S 2 7 1では、 デコード制御モジュール 2 1 4は、 ビデオ デコ一ダ制御モジュール 2 1 6とオーディオデコーダ制御モジュ一ル 2 1 7とのそれぞれから、 同一タイミングとみなすことができる、 あ る時間内に供給されるタイムスタンプどうしを比較し、 それらのタイ ムス夕ンプのずれが大であるかどうかを判定する。
ステップ S 2 7 1において、 ビデオデコーダ制御モジュール 2 1' 6 からのビデオアクセスュニッ卜のタイムスタンプと、 ォ一ディォデコ ーダ制御モジュール 2 1 7からのオーディォアクセスュニッ卜のタイ ムスタンプとのずれが大でないと判定された場合、 即ち、 ビデオァク セスュニットのタイムスタンプと、 ォ一ディォアクセスュニットの夕 ィムスタンプとのずれが、 あらかじめ定められた同期がとれていると みなすことができる範囲内である、 例えば、 2ビデオフレーム (約 6 6ミリ秒) である場合、 ステップ S 2 7 1に戻り、 タイムスタンプど うしのずれの判定が続行される。
一方、 ステップ S 2 7 1において、 ビデオデコーダ制御モジュール 2 1 6からのビデオアクセスュニッ卜のタイムスタンプと、 オーディ ォデコーダ制御モジュール 2 1 7からのオーディオアクセスュニット のタイムスタンプとのずれが大であると判定された場合、 即ち、 ビデ ォアクセスユニットのタイムスタンプと、 オーディォアクセスュニッ 卜のタイムスタンプとのずれが、 あらか.じめ定められた同期がとれて いるとみなすことができる範囲外である場合、 ステップ S 2 7 2に進 み、 デコ一ド制御モジュール 2 1 4は、 ビデオデコーダ制御モジュ一 ル 2 1 6からのビデオアクセスユニッ トのタイムスタンプと、 オーデ ィォデコーダ制御モジュール 2 1 7からのオーディオアクセスュニッ トのタイムスタンプとを比較することにより、 ビデオデータの出力と 、 オーディォデータの出力とのうちのいずれが遅れているかを判定す る。
ステップ S 2 7 2において、 ビデオデ一夕の出力が、 オーディオデ 一夕の出力よりも遅れていると判定された場合、 ステップ S 2 7 3に 進み、 デコード制御モジュール 2 1 4は、 1 ビデオアクセスユニッ ト だけ、 ビデオアクセスユニッ トの処理を進めるために、 ビデオデ l一 ダ制御モジュール 2 1 6に対して、 ビデオアクセスュニッ トのデコー ドと表示を行わない旨の指示、 即ち、 ビデオアクセスユニッ トの処理 のスキップの指示を出力して、 ステップ S 2 7 4に進む。
ステップ S 2 7 4では、 ビデオデコーダ制御モジュール 2 1 6は、 デコード制御モジュール 2 1 4からのスキップの指示を受信し、 その スキップの指示に応じて、 バッファ制御モジュール 2 1 5からのビデ ォアクセスュニッ 卜とともに供給される au— ref—flag (第 2 7図) を 検査する。
即ち、 private— s earn— 2の PES— packet 0の pr ivate— s t ream2— PES— pa yloadO (第 2 6図) に配置された au— informat ion 0 (第 2 7図) に は、 ァ'クセスュニッ 卜に関する情報としての au— ref_flagが含まれて おり、 ノ ッファ制御モジユール 2 1 5は、 第 3 4図のステップ S 1 2 9や、 第 4 5図のステップ S 2 1 6で説明したように、 ビデオァクセ スュニッ トとともに、 そのビデオアクセスュニッ 卜の au— ref_flagを 、 ビデオデコーダ制御モジュール 2 1 6.に供給する。
ステップ S 2 7 4では、 このように、 アクセスユニッ トとともに供 給される、 そのアクセスュニッ トの au— ref—flagが検査される。
そして、 ステップ S 2 7 4から S 2 7 5に進み、 ビデオデコーダ制 御モジュール 2 1 6は、 バッファ制御モジュール 2 1 5から供給され たビデオアクセスュニッ トの au_ref_flagの検査の結果に基づき、 そ のビデオアクセスュニッ 卜が、 他のピクチャのデコードにあたって参 照されない非参照画像であるかどうかを判定する。
ここで、 第 2 7図で説明したように、 ビデオアクセスユニッ トの au — ref— flagは、 そのアクセスュニッ トが参照画像であるか否かを表し 、 参照画像である場合には 1 とされ、 参照画像でない場合、 即ち、 非 参照画像である場合には 0とされる。
ステップ S 2 7 5において、 バッファ制御モジュール 2 1 5から'供 給されたビデオアクセスユニッ トが非参照画像のビデオアクセスュニ ッ トでないと判定された場合、 即ち、 バッファ制御モジュール 2 1 5 から供給されたビデオアクセスュニッ トが参照画像である場合、 ステ ップ S 2 7 6に進み、 ビデオデコーダ制御モジュール 2 1 6は、 通常 通り、 そのビデオアクセスユニッ トを、 ビデオデコーダ 1 1 6に処理 させ、 次のビデオアクセスユニッ トが、 バッファ制御モジュール 2 1 5から供給されるのを待って、 ステップ S 2 7 4に戻る。
また、 ステップ S 2 7 5において、 バッファ制御モジュール 2 1 5 から供給されたビデオアクセスユニッ トが非参照画像であると判定さ れた場合、 ステップ S 2 7 7に進み、 ビデオデコーダ制御モジュール 2 1 6は、 そのビデオアクセスユニッ トの、 ビデオデコーダ 1 1 6に よる処理をスキップさせ、 次のビデオアクセスユニッ トが、 バッファ 制御モジュール 2 1 5から供給されるのを待って、 ステップ S 2 7 1 に戻る。 .
このように、 ビデオアクセスュニッ 卜の処理がスキップされること により、 ビデオアクセスユニッ トの処理が、 ほぼ 1 ビデオアクセスュ ニッ ト分だけ進められる。 その結果、 オーディオデータの出力よりも 遅れていたビデオデ一夕の出力が早まることになる。
一方、 ステップ S 2 7 2において、 ビデオデータの出力が、 オーデ ィォデータの出力よりも遅れていないと判定された場合、 即ち、 ォー ディォデータの出力が、 ビデオデータの出力よりも遅れている場合、 ステップ S 2 7 8に進み、 デコード制御モジュール 2 1 4は、 ビデオ アクセスュニッ トの処理を待たせるために、 ビデオデコーダ制御モジ ユール 2 1 6に対して、 いまデコードされているビデオアクセスュニ ッ トに対応するビデオデ一夕を繰り返して出力する繰り返し出力 (^指 示を出力して、 ステップ S 2 7 9に進む。 ' ステップ S 2 7 9では、 ビデオデコーダ制御モジュール 2 1 6は、 デコード制御モジュール 2 1 4からの繰り返し出力の指示を受信し、 その繰り返し出力の指示に応じて、 いまビデオデコーダ 1 1 6でデコ 一ドされているビデオアクセスュニッ トに対応するビデオデータを繰 り返して、 グラフィクス処理モジュール 2 1 9に出力し、 次のビデオ アクセスユニッ トが、 バッファ制御モジュール 2 1 5から供給される のを待って、 ステップ S 2 7 1に戻る。
以上のように、 デコード制御モジュール 2 1 4では、 ビデオデ一夕 の出力が、 オーディォデータの出力よりも遅れているか否かを判定し 、 ビデオデータの出力が、 オーディオデータの出力よりも遅れている 場合には、 1つのアクセスユニッ トの処理のスキップを、 ビデオデコ ーダ制御モジュール 2 1 6に指示する。 そして、 ビデオデコーダ制御 モジュール 2 1 6では、 スキップが指示されたアクセスユニッ トの au —reし f l agに基づき、 そのアクセスユニッ トが参照画像であるか、 ま たは非参照画像であるかを判定し、 非参照画像である場合に、 ビデオ デコーダ 1 1 6に、 スキップが指示されたアクセスユニッ トの処理を スキップさせる。 従って、 ビデオデータの出力と、 オーディオデータ の出力との同期を、 容易にとることができる。
即ち、 処理をスキップするアクセスュニッ 卜が参照画像である場合 、 そのアクセスユニッ トに対応するビデオデータは、 その後にデコー ドされる他のアクセスュニッ トのデコ一ド時に参照するためにデコー ドする必要がある。 従って、 ビデオデータの出力と、 オーディオデー 夕の出力との同期をとるための同期制御において、 参照画像のァクセ スュニットの処理をスキップしてしまうと、 その参照画像を参照する 他のアクセスユニットをデコードすることができず、 その結果、 ピデ ォデータの表示において、 同期制御がノイズとして現れてしまう。' このため、 処理をスキップするのは、 参照画像でないアクセスュニ ット、 即ち、 非参照画像のアクセスユニットとするのが望ましい。 一方、 従来のエレメン夕リストリームについて、 非参照画像のァク セスュニットを探すためには、 エレメン夕リストリームの構文解析を 行う必要があるが、 例えば、 MPEG4-AVCなどにしたがった符号化によ り得られるエレメンタリストリ一ムは、 構文が非常に複雑であるため 、 構文解析に、 多大なコストがかかる。
これに対して、 ディスク 1 0 1に記録されたクリップストリ一ムフ アイルに格納されたプログラムストリームには、 ビデオアクセスュ.二 ットが PES— packet_data_byteに配置される PES_packet 0 (第 1 9図 A および第 1 9図 B乃至第 2 1図 Aおよび第 2 1図 B) とは別に、 PES— packet— data— byteを拡張した private— stream2— PES— payloadO (第 2 6図) が配置された private_stream— 2の PES_packet 0が多重化されて おり、 その private— stream2— PES— payloadOの au—information() (第 2 7図) には、 ビデオアクセスユニットごとに、 そのビデオアクセス ュニッ 卜が参照画像であるか、 または非参照画像であるかを表す au一 r eし flagが記述されている。 そして、 その au_reし flagは、 対応するビ デォアクセスュニットとともに、 バッファ制御モジュール 2 1 5から ビデオデコーダ制御モジュール 2 1 6に供給される。 従って、 ビデオ デコーダ制御モジュール 2 1 6は、 ビデオアクセスユニットとともに 供給される、 そのビデオアクセスュニッ卜の au— ref— flagを検査する ことにより、 コストをほとんどかけずに、 ビデオアクセスユニットが 参照画像であるか、 または非参照画像であるかを認識することができ る。
[マーク処理]
次に、 第 49図のフローチャートを参照して、 PlayListMarkO (第 9図) に記述された MarkOに基づいて行われるマーク処理について説 明する。
デコード制御モジュール 2 1 4は、 内蔵する計時部 2 1 4 Aによつ て計時されている現在時刻を、 常時確認しており、 ステップ S 3 0 1 において、 現在時刻が、 PlayListMarkO (第 9図) に記述されたいず れかの Mark ()の mark一 time— st ampに一致したか否かを判定する。
即ち、 第 34図のステップ S 1 2 4で説明したように、 プレイヤ制 御モジュール 2 1 2は、 第 2 9図に示した 1番目の PlayList#0の 1番 目の PlayItem#0を再生しょうとするときに、 第 3 2図上側に示した P1 ayListMarkOに含まれる 7つの Mark 0のうちの 1番目から 4番目まで の 4つの Mark ()が、 PlayList#0の 1番目の Playl tem#0に属しているこ とを認識し、 その 4つの MarkOの mark— time— stampである {180, 090}、 , 580,090}、 {10, 980,090}, 6, 380, 090}を、 その mark— t ime— s t a mpが表す時刻の属性が 「マーク処理」 ある旨とともに、 デコード制 御モジュール 2 1 4に渡している。
ステツプ S 3 0 1では、 デコード制御モジュール 2 1 4において、 現在時刻が、 上述のようにしてプレイヤ制御モジュール 2 1 2から供 給された 「マーク処理」 の属性の時刻(mark_time_sta即)のうちのい ずれかと一 ¾するかどうかが判定される。
ステップ S 3 0 1において、 現在時刻が、 「マーク処理」 の属性の 時刻のうちのいずれとも一致しないと判定された場合、 ステップ S 3 0 1に戻り、 同様の処理が繰り返される。
[マーク処理における一致判定] ここで、 マーク処理に関して、 ステップ S 3 0 1においてデコード 制御モジュール 2 1 4は、 現在時刻と Diark_time__stampのいずれがが 一致しているか否かの判定を行っている。 しかしながら、 本実施例に おいては、 第 4図に示すように、 計時部 2 1 4 Aの示す時刻が離散的 な値を示すため、 単純な一致判定では問題が発生することがある。 第 5 0図を用い、 少し単純化した例で説明する。 第 5 0図の上部で 10, PI, P2, P3はビデオアクセスユニットである。 これらの pic_stru ctはすべて 3であり、 すなわち表示 durationは 1フレーム (90kHz換算 で 3003) とする。 また、 この例ではデコード順と表示順が同じである としており、 リオーダリングは発生しない。 また、 10は 「再生準備処 理 J で説明したように EP— mapOに登録されているアクセスュニッ卜で あり、 タイムスタンプを持っており PTS=180,090であるとする。 P1, P2, P3のアクセスユニッ トはタイムスタンプを持っていない。
このようなビデオデ一夕が処理される場合、 計時部 2 1 4Aの示す 時計は第 5 0図の下部で示されるように更新される。 すなわち、 10の 出力時は、 10の PTSと 10の pic_structが渡され、 PTSが存在するので計 時部 2 1 4 Aに PTSが代入されて 180, 090となる。 P1の出力時には、 PT Sは存在せず、 P1の pic_structが渡され、 10の pic_structが 3である ため、 1フレーム分の時間 (90kHzで 3003) が計時部 2 1 4Aに加算さ れ、 183,093となる。 同様に P2の出力時には P1の pic— structが 3である ことから 3003が加算されて 186, 096、 P3の出力時にも 3003が加算され て 189, 099と'なる。
ここで、 PlayListMarkO (第 9図及び第 3 2図) に登録されたうち のひとっのマ一クの ^_"1116ー31&即が186, 000であったときの処理を 考える。 上述したように時計 (計時部 2 1 4A) の出力する値は、 18 0, 090, 183,093、 186,096、 189, 099であるため、 マークの時刻と一致 する 186,000という時刻は出力しない。 このため、 mark_time— sta即と 時刻の単純な比較、 すなわち差分が 0であるか否かの確認では問韙が 発生する。 , このため、 ここでは時刻の一致判定に対して一定のルールが適用さ れる。 すなわち、 ここでは、 所定のイベントの mark一 time_stampが、 所定の画像の表示 durat ion中に含まれる場合、 その所定のィベントは 該当する画像の表示開始時刻に発生すると定義する。 例えば上記の例 では、 mark一 time_stamp=186, 000は、 画像 P1の表示 durat ionに含まれ ている。 このため、 このイベントは P1の表示開始時刻すなわち 183, 09 3に発生するとする。
このような定義の下で一致判定を行うためのデコード制御モジユー ル 2 1 4の判定アルゴリズムについて説明する。
なお、 この例の場合、 時刻 (計時部 2 1 4A) の更新はビデオデ一 夕の更新の際にのみ発生する。 つまり、 第 4 9図のステップ S 3 0 1 は、 時刻の更新の際にのみ行われることになる。 ソフトウェアで構成 する再生機器では、 処理を大幅に減らすことができ有利である。
さて、 時刻の更新に応じて第 4 9図の.処理が呼び出される。 デコ一 ド制御モジュール 2 1 4は、 ステップ S 3 0 1において、 現在時刻に 一致と判定されるイベントが存在するか否かの確認を行う。 すなわち 、 現在時刻と、 表示中の画像の表示 durationから現在表示中の画像の 表示 durat ionに含まれているイベントが存在するかどうかの確認を行 レ 一致と判定されるイベントが存在しない場合、 処理はステップ S 3 0 1に戻る。 また、 一致と判定されるイベントが存在する場合、 処 理はステップ S 3 0 2に進む。 尚、 イベントが存在しない場合には、 処理が終了されるようにしても良い。
具体的には、 例えば 10を表示中の場合に、 時刻は 180, 090であり、 I 0の pic_structが 3であることから 10の表示 durat ionは 3003であること が分かっている。 このため、 180,090≤mark_tiffle_stampく lSihOQO O 03を満たす Diark_Ume_stampを探す。 このとき例示したィベント時刻 1 86, 000はこの式を満たさないため、 一致と判定されない。
次に、 例えば IIを表示中の場合に、 時刻は 183, 093であり、 IIの pic _structが 3であることから 10の表示 (Jurat ionは 3003であることが分か つている。 このため、 lS3,093≤fflark—time_sta即く 183,093+3003を満 たす mark_time_stampを探す。 このとき例示したィベン卜時刻 186, 000 はこの式を満たすので、 時刻が一致すると判定され、 ステップ S 3 0 2以降の処理が行われる。
この例では、 時刻の一致判定の 1の例を示したが、 他の定義を適用 することも可能である。 例えば、 あるイベントの mark_time— stampが 、 "ある画像の表示開始一《"の時刻以上、 "次の表示画像の表示開始 時刻一 ο;"の時刻未満に含まれる場合、 そのィベントは該当する画像 の表示開始時刻に発生すると定義することも可能である。 また判定基 準はそのままで、 イベントの発生時刻を例えば"該当画像の表示開始 時刻一 α"に発生すると定義することも可能である。
なお、 このような定義を導入することにより、 マークの時刻すなわ ち mark一 time_stainpの設定時にビデオス卜リームの時刻を知る必要が 無くなる。 このため、 ォーサリングにおけるビデオエンコードとデー 夕ベース作成の独立性が高まり、 作業を分離することが可能となる。 また、 ス ップ S 30 1において、 現在時刻が、 「マーク処理」 の 属性の時刻のうちのいずれかと一致すると判定された場合、 デコード 制御モジュール 2 1 4は、 現在時刻が、 「マーク処理」 の属性の時刻 となった旨のメッセージと、 現在時刻と一致した 「マーク処理」 の属 性の時刻とを、 プレイヤ制御モジュール 2 1 2に供給して、 ステップ S 3 0 2に進む。
ステップ S 3 0 2では、 プレイヤ制御モジュール 2 1 2が、 現在時 刻が、 「マーク処理」 の属性の時刻となった旨のメッセージと、 現在 時刻と一致した 「マーク処理」 の属性の時刻(mark— time_stamp)とを 、 デコード制御モジュール 2 1 4から受信し、 mar time_sta即が現 在時刻に一致した MarkOを、 マーク処理の処理対象とする MarkO (以 下、 適宜、 処理対象 markという) として認識する。
即ち、 プレイヤ制御モジュール 2 1 2は、 現在再生されている Play List 0の Play Item ()を認識しており、 その P yList 0および Play Item 0と、 デコード制御モジュール 2 1 4からの、 現在時刻と一致した 「 マーク処理」 の属性の時刻(mark jime一 stamp) (以下、 適宜、 マーク 時刻という) とから、 "PLAYLIST.DAT"ファイル (第 7図) の PlayList MarkO (第 9図) を参照することにより、 処理対象 markを認識する。 具体的には、 例えば、 いま、 第 2 9図に示した 1番目の PlayList#0 の 1番目の PlayItem#0が再生されているとすると、 そのことにより、 プレイヤ制御モジュール 2 1 2は、 マーク時刻が、 第 3 2図上側に示 した PI ayListMarkOに含まれる 7つの MarkOのうちの 1番目から 4番 目までの 4つの MarkOのうちのいずれかの mark_t ime一 s ta即であるこ とを認識する。
そして、 デコード制御モジュール 2 1 4からプレイヤ制御モジユー ル 2 1 2に供給されたマーク時刻が、 例えば、 16,380, 090であったと すると、 プレイヤ制御モジュール 2 1 2は、 第 3 2図上側に示した P1 ayListMarkOに含まれる 1番目から 4番目までの 4つの MarkOのうち の、 mark_time_stampが、 マーク時刻である 16, 380, 090に一致する 4 番目の MarkOを、 処理対象 markとして認識する。
プレイヤ制御モジュール 2 1 2は、 以上のようにして、 処理対象 ma rkを認識すると、 ステップ3 3 0 2から 3 3 0 3に進み、 処理対象 ma rkにおいて、 エレメン夕リストリームを特定する entry一 ES_stream'_ id < en t ry_ES_pr i va t e_s t r eam_i d (第 9図) が記述されているかどうか を判定する。
ステップ S 3 0 3において、 処理対象 markに、 エレメンタリストリ —ムを特疋する en try— ES一 stream一 idと en try一 ES— private— stream— id ( 第 9図) が記述されていないと判定された場合、 即ち、 entry_ES_str eam— idと entry—ES—private—stream_i(^S、 いずれも 0x00である場合、 ステップ S 3 04をスキップして、 ステップ S 3 0 5に進み、 以下、 処理対象 markに応じた処理が行われる。
また、 ステップ S 3 0 3において、 処理対象 markに、 エレメンタリ ス卜リームを特定する en try— ES— stream— idと entry— ES— private— strea m_id (第 9図) が記述されていると判定された場合、 ステップ S 3 0 4に進み、 プレイヤ制御モジュール 2 1 2は、 再生中のエレメンタリ ストリームに、 その entry_ES— stream_id、 さらには、 必要に応じて en try_ES_private_stream— idによって特定されるエレメンタリストリ一 ムが含まれるかどうかを判定する。
ステップ S 3 04において、 再生中のエレメンタリストリームに、 処理対象 markの en try— ES— stream— idと entry— ES— private— stream— idに よって特定されるエレメン夕リストリームが含まれないと判定された 場合、 ステップ S 3 0 1に戻る。 即ち、 処理対象 markの entry_ES一 str
6&01_1(1と611 —85_01<^&16_5 6&111_1(1にょって特定されるェレメンタ リス! ^リームが再生されていない場合、 処理対象 markは、 無視される 一方、 ステップ S 3 0 4において、 再生中のエレメンタリストリー ムに、 処理対象 markの entry— ES stream— idと entry ES— private— strea m_idによって特定されるエレメンタリストリ一ムが含まれると判定さ れた場合、 即ち、 処理対象 markの entry_ES_stream— idと entry— ES」pri vate_stream一 idによって特定されるエレメンタリストリームが再生さ れている場合、 処理対象 markは有効であるとして、 ステップ S 3 0 5 に進み、 以下、 その処理対象 markに応じた処理が行われる。
即ち、 ステップ S 3 0 5では、 プレイヤ制御モジュール 2 1 2は、 処理対象 markの mark_type (第 9図) を参照することにより、 その処 理対象! narkを判定する。
ステップ S 3 0 5において、 処理対象 markが、 チヤプタマークまた はインデクスマークであると判定された場合、 即ち、 処理対象 markの mark_typeが、 ' Chapter'または' Index'である場合、 ステップ S 3 0 6に進み、 プレイヤ制御モジュール 2 1 2は、 グラフィクス処理モジ ユール 2 1 9に命じて、 チヤプタまたはインデクスの番号の表示を、 処理対象 markであるチヤプタマークまたはィンデクスマークが表すチ ャプ夕またはインデクスの番号に更新させて、 ステップ S 3 0 1に戻 る。
また、 ステップ S 3 0 5において、 処理対象 markが、 イベントマー クであると判定された場合、 即ち、 処理対象 markの mark一 typeが、 ' Ev ent'である場合、 ステップ S 3 0 7に進み、 プレイヤ制御モジュール 2 1 2は、 イベントの発生を表すイベントメッセージと、 処理対象 ma rkの mark_dataを、 スクリプト制御モジュール 2 1 1に供給して、 ス テツプ S 3 '0 8に進む。
ス ップ S 3 0 8では、 スクリプト制御モジュ一ル 2 1 1が、 プレ ィャ制御モジュール 2 1 2からのイベントメッセージと mark_dataと を受信し、 イベントメッセージを割り込み要求として、 あらかじめ" S CRIPT.DAT"ファイルに記述された一連の処理を、 mark_dataを引数と して行って、 ステップ S 30 1に戻る。
即ち、 スクリプト制御モジュール 2 1 1では、 mark— dataに対^し た処理が行われる。
具体的には、 例えば、 第 3 2図下側に示した PlayList #1の PlayLis tMarkOでは、 2番目の MarkO (Mark#l) と 3番目の MarkO (Mark#2 ) とは、 いずれも、 mark一 typeが' Event'であるが、 mark— dataは、 そ れぞれ 1 (Mark#l) と 2 (Markf2) で異なっている。
スクリプト制御モジュール 2 1 1は、 2番目の MarkOに対応するィ ベントメッセージを受信した場合と、 3番目の MarkOに対応するィべ ントメッセージを受信した場合の、 いずれも場合も、 そのイベントメ ッセージに応じて、 同一のイベントハンドラ (割り込み処理ルーチン ) で処理を行うが、 イベントハンドラ内において、 イベントメッセ一 ジとともに供給される mark_dataを検査することにより、 ィベントメ ッセージに対して、 mark_dataごとに異なる処理を行う。
具体的には、 例えば、 mark— dataが 1である場合には、 スクリプト制 御モジュール 2 1 1は、 グラフィクス処理モジュール 2 1 9を制御し て、 第 1の種類のアイコンの表示を行わせる。 また、 例えば、 mark— d ataが 2である場合、 スクリプト制御モジュール 2 1 1は、 グラフイク ス処理モジュール 2 1 9を制御して、 第 2の種類のアイコンの表示を 行わせる。
なお、 mark一 dataは、 1や 2に限定されるものではなく、 また、 mar k— dataに対 jfeして行われる処理も、 上述したような、 単なるアイコン の表^に限定されるものではない。
即ち、 例えば、 mark— dataが 3乃至 18の範囲の値である場合には、 ス クリブト制御モジュール 2 1 1は、 グラフィクス処理モジュール 2 1 9を制御し、 第 1の種類のアイコンの表示を、 mark dataから 2を減じ た値 (1乃至 16の数値) に対応する明るさで行わせる。 また、 例えば 、 mark_dataが 19乃至 34の範囲の値である場合には、 スクリプト鈉御 モジュール 2 1 1は、 グラフィクス処理モジュール 2 1 9を制御し、 第 2の種類のアイコンの表示を、 mark_dataから 18を減じた値 (1乃至 16の数値) に対応する明るさで行わせる。
その他、 例えば、 入カイン夕ーフェース 1 1 5 (第 1図) に、 ュ一 ザが操作するコントローラが接続されており、 そのコントローラが、 DC (Direct Current)モ一夕の軸に偏芯させたおもりを取り付けた、 DC モータを動作させると振動が発生する振動モー夕を内蔵する場合には 、 mark_dataが 35乃至 42の範囲の値であるときに、 その振動モ一夕を 、 mark_dataから 34を減じた値 (1乃至 8の数値) に応じた動作時間だ け動作させることができる。
mark_dataは数値であり、 その使用法やアルゴリズムは、 スクリブ ト制御モジュール 2 1 1が実行するスクリブトプログラムにより記述 することができる。 従って、 mark_dataは、 事前に取り決められたル ールで使用する他、 ディスク 1 0 1の製造者、 あるいはディスク 1 0 1に記録されるデータを提供するコンテ.ンップロバイダなどが独自に 設定したルールで使用することが可能である。
以上のように、 マーク処理では、 現在時刻が、 「マーク処理」 の属 性の時刻と一致すると、 その 「マーク処理」 の属性の時刻であるマ一 ク時刻から、 処理対象 markが認識される。 さらに、 処理対象 markにお いて、 エレメン夕リストリームを特定する entry_ES_streamJdと entr y— ES_private_streanUdが記述されていない場合には、 処理対象 mark の markjypeに応じた処理が行われる。 また、 処理対象 markにおいて 、 エレメンタリストリームを特定する entry_ES— stream_idと entry_ES _private_stream_idが記述されている場合であっても、 その entry_ES — stream_idと entry_ES_private_stream— idによつて特定されるエレメ ンタリストリームが再生中であれば、 処理対象 markの mark_type 応 じた処理が行われる。
従って、 例えば、 いま、 第 2 9図に示した 2番目の PlayList#lの再 生が行われているとすると、 以下のようなマーク処理が行われる。 即ち、 2番目の PlayUst#lの PlayListMarkOにおいては、 第 3 2図 下側に示したように、 1^1"^^_31&1^がそれぞれ90,000, 27,090,00 0, 27,540,000に指定されている 1番目の MarkO (Mark#0)、 2番目の M arkO (Mark#l) 、 3番目の MarkO (Mark#2) が記述されている。 さらに、 第 3 2図下側の PlayListMarkOにおいては、 2番目の Mark 0と 3番目の MarkOの entry_ES_stream一 idには、 それぞれ、 OxEOと Ox Elが記述されているから、 2番目の MarkOと 3番目の MarkOは、 それ ぞれ、 st ream一 idが OxEOと OxElで特定されるエレメンタリストリーム が関連付けられている。
ここで、 第 2 9図で説明したように、 2番目の PlayList#lには、 1 つの PlayltemO (Playl tem#0)だけが記述され、 その Playl tem#0によれ ば、 クリップストリ一ムファイル" OOOO^PS"が再生される。 そして、 クリッブス卜リームファイル" 00003.PS"には、 そのクリッブストリー ムファイル" 00003.PS"に対応する第 3 0図 Aおよび第 3 0図 Bのクリ ップ情報ファイル" 00003. CLP"で説明したように、 OxEOとなっている s tream_idで特定されるビデオストリーム stream#0、 OxElとなっている st ream—idで特定されるビデオストリーム stream#l、 OxBDとなってい る stream_idおよび 0x00となっている private_stream_idで特定される オーディオストリーム stream#2の 3つのエレメン夕リス卜リームが多 重化されている。
従って、 第 3 2図下側の PlayListMarkOの 2番目の MarkOには、 ク リップス卜リームファイル" 00003.PS"に多重化されている、 st ream— i dが OxEOとなっているビデオストリーム stream#0が関連付けられセぉ り、 3番目の Mark 0には、 クリップストリームファイル" 00003. PS"に 多重化されている、 stream_idが OxElとなっているビデオストリーム s tream#lが関連付けられている。
第 2 9図の 2番目の PlayList#lの P yltemifOの再生が開始される場 合、 第 3 4図のステップ S 1 24で説明したようにして、 プレイヤ制 御モジュール 2 1 2は、 第 3 2図下側に示した?1& 1^3^&1^0に含ま れる 3つの Mark 0が、 PlayList#lの PlayItem#0に属していることを認 識し、 その 3つの MarkOの nmrk_Jime_stampである {90,000}、 {27, 090 ,000}、 {27, 540, 000}を、 その mark— t ime_sta即が表す時刻の属性が 「 マーク処理」 である旨とともに、 デコード制御モジュール 2 1 4に渡 している。
マーク処理では、 デコード制御モジュール 2 1 4が、 PlayList#lの PlayItem#0の再生中に、 計時部 2 1 4 Aによって計時される現在時刻 が、 属性が 「マーク処理」 の時刻 {90, 000}、 7, 090, 000}、 {27, 540, 000}のうちのいずれかに一致するかを、.常時確認しており (ステップ S 3 0 1 ) 、 現在時刻が、 属性が 「マーク処理」 の時刻に一致すると 、 現在時刻と一致した 「マーク処理」 の属性の時刻であるマーク時刻 と、 現在時刻が、 「マーク処理」 の属性の時刻となった旨のメッセ一 ジとを、 プレイヤ制御モジュール 2 1 2に供給する。
即ち、 例えば、 いま、 現在時刻が、 「マーク処理」 の属性の時刻 {9 0, 000}, {27,090,000}、 {27, 540, 000}のうちの、 27, 090, 000に一致し たとすると、 デコード制御モジュール 2 1 4は、 現在時刻と一致した 「マーク処理」 の属性の時刻であるマーク時刻 27, 090,000と、 現在時 刻が、 「マーク処理」 の属性の時刻となった旨のメッセージとを、 プ レイヤ制御モジュール 2 1 2に供給する。
プレイヤ制御モジュール 2 1 2は、 PlayListinの PlayItem#0が璁在 再生されていることを認識しており、 その PlayList#lの第 3 2図下側 に示した1)1& 1^31¾1&^0に記述された MarkOのうちの、 PlayItem#0に 属する 3つの MarkOの mark_time_stainpである 90, 000, 27, 090, 000, 2 7, 540, 000それぞれと、 デコード制御モジュール 2 1 4からのマーク 時刻である 27, 090, 000とを比較することにより、 そのマーク時刻 27, 0 90,000に、 mark_time_sta即が一致する Mark()、 即ち、 第 3 2図下側 の?1& 5^&^0に記述された 2番目の MarkO (Mark#l)を、 処理対象 markとして認識する (ステップ S 3 0 2 ) 。
処理対象 markである、 第 3 2図下側の PlayListMarkOに記述された 2番目の MarkOにおいては、 entry— ES— stream— idとして、 OxEOが指定 されている。 この OxEOとなっている entry— ES— stream一 idは、 上述した ことから、 クリップストリームファイル" 00003.PS"に多重化されてい る、 stream_idが OxEOとなっているビデオストリーム stream#0 (第 3 0図 Aおよび第 3 0図 B) を表すものであり、 プレイヤ制御モジユー ル 2 1 2は、 再生中のエレメン夕リストリームの中に、 そのビデオス トリーム stream#0が含まれるかどうかを判定する (ステップ S 3 0 3 , S 3 0 4) 。
そして、 再生中のエレメン夕リストリームの中に、 ビデオストリー ム stream#0が含まれない場合には、 処理対象 markは無視される (ステ ップ S 3 04 ) 。
一^、 再生中のエレメン夕リストリームの中に、 ビデオストリーム stream#0が含まれる場合には、 処理対象 markは有効であるとして、 そ の処理対象 markに応じた処理が行われる (ステップ S 3 0 5乃至 S 3 0 8) 即ち、 いまの場合、 処理対象 markである、 第 3 2図下側の PlayList MarkOに記述された 2番目の MarkOは、 その mark_typeが' Event' こな つているからイベントマークであり、 従って、 プレイヤ制御モジユー ル 2 1 2は、 イベントの発生を表すイベントメッセージと、 処理対象 markの mar dataを、 スクリプト制御モジュール 2 1 1に供給する ( ステップ S 3 0 5 , S 3 0 7 ) 。 そして、 スクリブト制御モジュール 2 1 1では、 プレイヤ制御モジュール 2 1 2からのィベントメッセ一 ジを割り込み要求として、 あらかじめ" SCRIPT. DAT"ファイルに記述さ れた一連の処理を、 そのイベントメッセージとともに供給された mark —dataを引数として行う (ステップ S 3 0 8) 。
以上のように、 マーク処理によれば、 PlayList 0の時間軸上の 1つ の再生時刻を表す mark— time_stanipと、 MarkOのタイプを表す mark— ty peと、 ィベントマークの引数となる mark_dataとを含む 0以上の Mark ( )を有する PlayListMarkO (第 9図) を含む PlayList 0 (第 7図) に したがって再生されているクリップストリームファイルの再生時刻で ある現在時刻が、 mark_time_s 即に一致するか否かが判定され、 現 在時刻が、 Diark_Ume_stampに一致する場合に、 その一致した現在時 刻であるマーク時刻に等しい mark— time_s tampを有する MarkOが、 処 理対象 markとして認識される。 さらに、 その処理対象 markが有する ma rk_typeが、 イベントを発生させるタイプを表している場合、 即ち、 処理対象 markが、 イベントマ一クである場合、 処理対象 markが有する mark_dataとィベントメッセージとが通知され、 その mark一 dataに応じ た処 が実行される。 従って、 クリップストリームファイルの再生時 刻に応じ、 mar dataに応じた処理を実行することが可能となる。
[ouし time処理における一致判定]
ところで、 上述したように、 デコード制御モジュール 2 1 4は計時 部 2 1 4 Aが計時している時刻が、 プレイヤ制御モジュール 2 1 2か ら与えられた Playltemの 0UT_timeに等しくなると、 デコ一ド中断制御 が行われ、 Playltemの再生が終了されるという制御が行われる。 本実 施例では、 PlayltenijfOの終了については、 第 40図のフロ一チャート におけるステップ S 1 5 1で説明されている。
この場合にも、 時刻と 0UT_timeの単純に比較での一致判定では、 問 題が生じる可能性がある。 このため、 時刻と 0UT_timeの比較において も上述した一致判定の定義を使用する。
すなわち、 第 5 1図で示されるように PlayListEndに対応する Playl temの OUTJimeが、 playListで最後に表示される FoCFP (再生中のビデ ォストリーム内の frame or complementary field pair) の PETより小 さい場合、 卩13 1^51511(1の時刻に相当する01^_^ 11116を表示(111 "011に 含む FoCFPの表示開始時刻(PTS)に PlayListEndィベン卜が発生すると き、 すなわち、 ? 31:。„11[3]≤01]11_^1116<0^:1\!0(111[3]でぁるとき、 FoCFP [3] の表示開始時刻 PTS FP[3]で、 PlayListEndイベントが発生する。 ここ で PETFDemi0は 「PTS FP wに p i c_s t r uc tで決まる表示 du r a t i onを加えた 時刻」 を示す。 .
これにより、 時刻の一致判定がビデオ出力の際に限定されるため、 処理が軽くなる。 また、 上述したようにビデオストリームの準備とデ 一夕ベースの準備の独立性が高まる。
さらに、 Playltemの再生終了がデコード制御モジュール 2 1 4から プレイヤ制細モジュール 2 1 2に伝えられ、 プレイヤ制御モジュール 2 1 2'がそれを再生中の最後の PlayListの Playltemであると判断する と、 スクリプト制御モジュール 2 1 1に対して01& 31611(1のィべン 卜を発生する。
スクリブト制御モジュール 2 1 1は、 PlayListEndのィベントを受 けるとることにより、 再生を指示した PlayListの再生が終了したこと を知り、 その後プログラミングされてある動作を続行する。 すなおち 、 別の playListを再生する、 メニューを表示する、 動作を終了する等 が実行される。
なお、 第 52図で示されるような場合、 すなわち、 OUT— timeが Play Item中で最後に表示される画像の表示終了時刻に等しい場合には、 上 記の一致判定では処理できない場合がある。 第 5 2図において、 例え ば、 FoCFP[2]を表示して pauseしているとき、 playStop 0が callされ ると、 FoCFP[3]を表示して pauseする。 その後再度 playStopOが call されると表示される画像には変更なく pi ayListEndが発生する。
すなわち、 最後の画像の表示開始時刻 + pic一 5 1(^で決まる(11] " on = 0UT_t i meとなってしまうため、 最後の画像の表示開始時刻 + p i c— s true tで決まる durationく 0UT_timeを満たさない。
このような場合には、 ビデオデコーダ制御モジュール 2 1 6が最後 の画像を出力した後、 該当画像の表示 duration経過後に表示終了を示 す情報をデコード制御モジュール 2 1 4に渡し、 これにより時計を" 最後の画像の表示開始時刻 + pic_strucfで決まる duration"に進める ことで、 一致条件を満たすようにすることが出来る。
[字幕デコード]
字幕デコーダ制御モジュール 2 1 8は、 バッファ制御モジュール 2 1 5 (第 5図) の字幕読み出し機能部 2 3 5から、 バッファ 2 1 5 A に記憶されこ 1つの字幕アクセスュニットと、 その字幕アクセスュニ ッ卜に'付加されているタイムスタンプを得るたびに、 内部に持つ字幕 デコードソフトウエアでデコードを開始し、 同時にタイムスタンプと durationをデコード制御モジュール 2 1 4に渡す。
デコード制御モジュール 2 14は、 ビデオデコーダ制御モジュール 2 1 6からの情報により時計 (計時部 2 1 4 A ) の時刻を変更した際 に、 字幕デコーダ制御モジュール 2 1 8から渡された字幕ァクセ ュ ニットの P T Sを吟味する。 すなわち、 字幕アクセスユニッ トの PTS と時刻が上述の一致判定基準に照らした上で一致と判断されると、 デ コード制御モジュール 2 1 4はグラフィクス処理モジュール 2 1 9に 対して字幕入力の指示を行うと同時に、 字幕デコーダ制御モジュール 2 1 8に対して出力の指示を行う。
デコード制御モジュール 2 1 4から出力の指示を受けた字幕デコー ダ制御モジュール 2 1 8は、 デコードされた字幕画像データをグラフ イクス処理モジュール 2 1 9に供給する。 グラフィクス処理モジユー ル 2 1 9は入力された字幕データを蓄積し、 以降入力するビデオデ一 夕に対して合成を行う。
デコード制御モジュール 2 1 4はさらに字幕の表示 dura t i onの検査 を行う。 すなわち、 "該当字幕の表示開始時刻 +表示 dura t i on"の値と 現在時刻が、 上述の一致判定基準に照らした上で一致と判断されると 、 デコ一ド制御モジュール 2 1 4はグラフィクス処理モジュール 2 1 9に対して字幕の消去を命じる。 グラフ.ィクス処理モジュール 2 1 9 は蓄積している入力された字幕デ一夕を消去し、 以降入力するビデオ データに対しての合成は行わない。
[マーク間隔の必然性]
以上に説明した一致判定基準では、 一定の範囲の時刻を単一時刻に 量子化している。 すなわち、 あるビデオデ一夕の表示開始時刻≤ t < 表示終了時刻を満たす全ての tの時刻は該当ビデオデータの表示開始 時刻に量子化 (round i ng) が行われている。
このため、 隣り合う二つのイベントの位置関係によっては、 同一の 時刻に丸められてしまうことがある。 例えば第 5 0図の例では、 186, 000に置かれたィベントの直前のィベントの mark— time— stampが 184, 00 0であった場合、 この二つのィベン卜はいずれも P1の表示開始時^に 発生すると定義される。
このような状況を避けるためには、 単一のビデオに対しては単一の イベントのみを設定できることを保証する必要がある。 このため、 隣 あったィベン卜の間隔を 3フィ一ルド以上 (pic_structで設定される 最大表示時間以上) とすることで、 上記条件を保証する。
第 5 3図は、 上記条件の一例を示している。 すなわち、 第 5 3図に おいては、 ケース Aは、 フレームレート (frame rate) が 5005/24000 0 (プログレッシブの 23.976Hz) であって、 その場合、 90kHzで表現し た最小イベント間隔は、 7507となり、 ケース Bは、 フレームレート ( frame rate) が 4004/240000 (インタレースの 59.94Hz) であって、 そ の場合、 90kHzで表現した最小イベント間隔は、 6006となることが示 されている。
AVCや MPEG2 Video等のビデオ符号化方式では、 2- 3プルダウン画像 を効率よく符号化するために、 〗フレーム信号を 3フィールドの時間だ け表示するという機能を持っている。 ςのため 1フレームの信号の最 大の durationは 3フィールドである。 すなわち、 隣り合ったイベント の間隔を 3フィ一ルド以上の時間だけ離すことによって、 この二つの 隣り合ったイベントが単一のビデオデータの表示開始時刻に発生する と判断されることを防ぐというものである。
また、 3フ'ィ一ルドを越える間隔で定義することも可能である。 例 えば!^り合ったイベントの間隔を 2フレーム以上と定義することも可 能である。
なお、 全てのイベントが対応するビデオデータを調査し、 それらが 重複していないということを確認することによって上記を保証する方 法も考えられる。
[出力属性の制御処理]
次に、 第 5 4図のフローチャートを参照して、 第 34図のステップ S 1 2 6などで行われる出力属性の制御処理の詳細について説明する 第 34図のステップ S 1 2 6で説明したように、 プレイヤ制御モジ ユール 2 1 2は、 まず、 再生対象の 1以上のエレメンタリストリーム 、 即ち、 第 3 4図のステップ S 1 2 5で再生すると決定した 1以上の エレメンタリストリームそれぞれについて、 出力属性が記述される Dy namidnfoO (第 1 5図) の数を表す number— oし Dynamiclnfo (第 1 2 図) を調査する。
そして、 再生対象の 1以上のエレメンタリストリームのすべてにつ いて、 number_oし Dynamiclnfoが 0になっている場合、 プレイヤ制御モ ジュール 2 1 2は、 特に処理を行わない。
一方、 再生対象のエレメン夕リストリームについての number_oし Dy namiclnfoが 0でない場合、 プレイヤ制御モジュール 2 1 2は、 第 5 4 図のフローチャートにしたがった出力屌性の制御処理を行う。
従って、 ディスク 1 0 1に記録された 3つのクリップ情報ファイル " 00001. CLP", " 00002. CLP", " 00003. CLP"が、 例えば、 第 3 0図 Aお よび第 3 0図 Bに示したようになつている場合に、 クリップ情報ファ ィル" 00001. CLP"に対応するクリップストリ一ムフアイル" 00001.PS" を再生する 1番目の PlayList#0の 1番目の Play It eni#0が再生されると きには、 クリップ情報ファイル" 00001. CLP" (第 3 0図 Aおよび第 3 0図 B) では、 クリップストリームファイル" 00001.PS"に多重化され ている 4つのエレメンタリストリ一ム streani#0乃至 stream#3のすベて について、 numbeし of_DynamicInfoが 0になっているから、 出力属性の 制御処理は行われない。
同様に、 クリップ情報ファイル" 00002. CLP"に対応するクリップス トリームファイル" 00002.PS"を再生する 1番目の PlayList#0の 2番目 の Playltem#lが再生されるときも、 クリップ情報ファイル" 00002. CLP " (第 3 0図 Aおよび第 3 0図 B) では、 クリップストリームフアイ ル" 00002.PS"に多重化されている 4つのエレメンタリストリーム stre am#0乃至 stream#3のすべてについて、 number_of— Dynamic Infoが 0にな つているから、 出力属性の制御処理は行われない。
一方、 クリップ情報ファイル" 00003. CLP"に対応するクリップスト リームファイル" 00003.PS"を再生する 2番目の PlayList#lの Playltem #0が再生されるときは、 クリップ情報ファイル" 00003. CLP" (第 3 0 図 Aおよび第 3 0図 B) において、 クリップストリームファイル" 000 03. PS"に多重化されている 3つのエレメンタリストリ一ム stream#0乃 至 stream#2のうちの、 1番目のエレメンタリストリ一ムであるビデオ ストリーム stream#0と、 3番目のエレメン夕リストリームであるォ一 ディストリ一ム stream#2について、 number— of—DynamicInf oが 0でない 2と 3に、 それぞれなつているから、 出力.属性の制御処理が行われる。 即ち、 出力属性の制御処理では、 まず最初に、 ステップ S 3 2 0に おいて、 プレイヤ制御モジュール 2 1 2は、 再生対象のクリップスト リームファイルに対応するクリップ情報ファイル ClipO (第 1 2図) に記述された pts— change_pointを、 「DynamicInfo 0処理」 の属性の 時刻である とともに、 デコード制御モジュール 2 1 4に渡し、 デコ ード制御モジュール 2 1 4は、 プレイヤ制御モジュール 2 1 2からの 「DynamicInfo()処理」 の属性の時刻である pts— change—pointを受信 して、 ステップ S 3 2 1に進む。
ステップ S 3 2 1では、 デコード制御モジュール 2 1 4が、 計時部 2 1 4 Aによって計時されている現在時刻が、 「DynamicInfo()処理 」 の属性の時刻である pts_change一 pointに一致したかどうかを判定し 、 一致していないと判定した場合、 ステップ S 3 2 1に戻る。
また、 ステップ S 3 2 1において、 現在時刻が、 「DynamicInfo() 処理」 の属性の時刻に一致したと判定された場合、 デコード制御モジ ユール 2 1 4は、 現在時刻が、 「DynamicInfo()処理」 の属性の時刻 となった旨のメッセージと、 現在時刻と一致した 「DynamicInfo()処 理」 の属性の時刻 (以下、 適宜、 Dynamiclnfo時刻という) とを、 プ レイヤ制御モジュール 2 1 2に供給して、 ステップ S 3 2 2に進む。 ステップ S 332では、 プレイヤ制御モジュール 2 1 2が、 現在時 刻が、 「DynamicInfo()処理」 の属性の時刻となった旨のメッセージ と、 Dynamiclnfo時刻とを、 デコード制御モジュール 2 1 4から受信 し、 その Dynamiclnfo時刻に一致する pts_change一 point (第 1 2図) とセットになっている DynamicInfoOを、 処理対象の DynamicInfoOで ある処理対象 DynamicInfoOとして認識して、 ステップ S 3 2 3に進 む。
ステップ S 32 3では、 プレイヤ制御.モジュール 2 1 2は、 処理対 象 DynamicInfoOとなっている DynamicInfoO (第 1 5図) に記述され た出力属性を、 グラフィクス処理モジュール 2 1 9またはオーディォ 出力モジュール 2 2 1に供給して、 ステップ S 3 24に進む。
ステップ S 324では、 グラフィクス処理モジユール 2 1 9または オーディォ出力モジュール 2 2 1が、 直前のステップ S 3 2 3でプレ ィヤ 御モジュール 2 1 2から供給された出力属性にしたがって、 ビ デォデ一夕またはオーディォデータの出力の制御を、 それぞれ開始し 、 ステップ S 32 1に戻る。
これにより、 ビデオデータが、 出力方式として記述された、 例えば アスペクト比に応じて出力され、 あるいは、 ォ一ディォデ一夕が、 出 力方式として記述された、 例えば、 ステレオまたはデュアル (ニ 国 語) に応じて出力される。
次に、 第 5 5図を参照して、 出力属性の制御処理の詳細について、 さらに説明する。
即ち、 第 5 5図は、 第 3 0図 Aおよび第 30図 Bのクリップ情報フ アイル" 00003. CLP"に記述されている pts一 change— pointと Dynamic Info 0とのセット (第 1 2図) を示している。
ここで、 上述したように、 クリップストリームファイル" 00003.PS" に多重化されている 3つのエレメン夕リストリーム5 6&111#0乃至3 6 am#2のうちの、 1番目のエレメンタリストリームであるビデオストリ —ム stream#0と、 3番目のエレメン夕リストリームであるオーディス トリーム stream#2については、 第 ·3 0図 Αおよび第 30図 Bのクリッ プ情報ファイル" 00003. CLP"において、 number— 0し Dynamiclnfoが、 そ れぞれ 2と 3になっている。 従って、 クリップ情報ファイル" 00003. CLP "において、 クリップストリームファイル" 00003.PS"の 1番目のビデ ォストリ一ム stream#0については、 2セットの pts— change— pointおよ び DynamicInfoOが記述されており、 3番目のオーディォストリーム s tream#2については、 3セッ卜の pts— change— pointおよび Dynamiclnfo 0が記述されている。
第 5 5図上側は、 クリップストリームファイル" 00003.PS"の 1番目 のビデオストリーム stream#0について記述されている 2セットの pts— change— pointおよび DynamicInfoOを示しており、 第 5 5図下側は、 クリップストリームファイル" 00003.PS"の 3番目のォ一ディォストリ —ム stream#2について記述されている 3セットの pts_change_pointお よび DynamicInfoOを示している。 なお、 第 5 5図上側では、 1番目のビデオストリーム streamifOにつ いて記述されている 2セットの pts_change— pointおよび DynamicInfo( )の他に、 そのビデオストリーム stream#0について、 第 3 0図 Aおよ び第 3 0図 Bのクリップ情報ファイル" 00003. CLP"に記述されている s tream_id(=0xE0) , private— stream— id(=0x00), number— of— Dynamic In fo(=2)も、 図示してある。 同様に、 第 5 5図下側でも、 3番目のォー ディォストリーム stream#2について記述されている 3セッ卜の pts— ch ange— pointおよび DynamicInfoOの他に、 そのオーディォストリーム s tream#2について、 第 3 0図 Aおよび第 3 0図 Bのクリツプ情報ファ ィル" 00003. CLP"に記述されている stream—id(=OxBD), pr ivate_s t rea m_id(=0x00)f number_oし Dynamiclnfo (=3)も、 図示してある。
第 5 5図上側において、 ビデオストリーム stream#0について記述さ れている 2セットの pts_change_pointおよび DynamicInfoOのうちの 1セット目では、 {5_(;11&1½6_0011^が90,000になってぉり、 Dynamicl nfoOの display— aspect— ratio (第 1 5図) が' 4: 3'になっている。 さ らに、 その 2セット目では、 pts_change_pointが 54, 090, 000になって おり、 Dynami c Info 0の display— aspecし ratioが' 16:9'になっている 一方、 第 5 5図下側において、 オーディオストリーム stream#2につ いて記述されている 3セッ卜の pts一 change一 pointおよび DynamicInfo( )のうちの 1セッ ト目では、 pts_change_pointが 90, 000になっており 、 DynamicInfoOの channel— assignment (第 1 5図) が' Dual'になつ ている。 さらに、 その 2セット目では、 pts— change_pointが 27, 090, 0 00になっており、 DynamicInfoOの channel— ass ignment力 Stereo'に なっている。 また、 その 3セット目では、 pts_change_pointが 32, 490 , 00(Hこなって: ¾り、 Dynamiclnfo 0の channel ass ignment力 ' Dua ίこ なっている。
例えば、 いま、 第 34図のステップ S 1 2 5において、 クリツ 。ス トリームフアイル" 00003.PS"の、 OxEOとなっている stream_idで特定 される 1番目のビデオストリーム stream#0と、 OxBDとなっている stre am_jdおよび 0x00となっている private_stream_idで特定される 3番目 のオーディォストリーム s eam#2とが、 再生対象のストリームとして 決定されたとする。
この場合、 プレイヤ制御モジュール 2 1 2は、 OxEOとなっている st ream_idで特定されるビデオストリ一ム stream#0について記述されて いる第 5 5図上側の 2セッ卜の pts一 change_pointおよび DynamicInfo( )と、 OxBDとなっている s eam_idおよび 0x00となっている private— st ream_idで特定されるオーディォス卜リーム stream#2について記述さ れている第 5 5図下側の 3セッ卜の pts— change_poiniおよび Dynamicl nfoOとの中の Pts— change— pointを調査し、 初期値を認識する。
即ち、 OxEOとなっている streanし idで特定されるビデオストリーム s tream#0について記述されている第 5 5図上側の 2セッ卜の pts_chang e— pointおよび Dynamic Info 0のうちの 1セット目では、 pts— change— p ointが 90, 000になっている。 そして、 この 90, 000という時刻は、 ビデ ォストリーム stream#0が多重化されているクリップストリームフアイ ル" 00003.PS"に対応する第 3 0図 Aおよび第 3 0図 Bのクリップ情報 ファイル" 00003. CLP"において、 クリップストリ—ムファイル" 00003. PS"の先頭の時刻を表す presentaUon_starし timeに記述されている時 刻 90, 000に一致する。
同様に、 OxBDとなってい stream_idおよび 0x00となっている priva te_stream_idで特定されるオーディォストリ一ム s tream#2について記 述されている第 5 5図下側の 3セッ卜の pts change pointおよび Dyna micInfoOのうちの 1セット目では、 pts— cliange_pointが 90, 000にな つている。 そして、 この 90,000という時刻は、 オーディオストリ丄ム stream#2が多重化されているクリップストリームファイル" 00003..PS" に対応する第 3 0図 Aおよび第 3 0図 Bのクリップ情報ファイル" 000 03.CLP"において、 クリップストリームファイル" 00003.PS"の先頭の 時刻を表す presentations tarし timeに記述されている時刻 90, 000に 一致する。
プレイヤ制御モジュール 2 1 2は、 クリップストリ一ムファイル" 0 0003. PS"の先頭の時刻を表す present at ion_s tart— timeに記述されて いる時刻 90, 000に一致する pts__change_pointを、 初期値として認識す る。 従って、 第 5 5図上側の 2セッ トの pts_change_pointおよび Dyna micInfoOのうちの 1セッ 卜目の pis— change_pointと、 第 5 5図下側 の 3セットの pts— change_pointおよび Dynamiclnfo 0のうちの 1セッ ト目の pts一 change_pointが、 初期値として認識される。
そして、 プレイヤ制御モジュール 2 1 2は、 クリップストリームフ アイル" 00003.PS"の再生が開始される前に、 第 3 4図のステップ S 1 2 6で初期値として認識した pts_chang— pointとセッ卜になっている DynamicInfoOにしたがって、 対応するエレメンタリストリームの出 力属性を指示する。
即ち、 OxEOとなっている streamjdで特定されるビデオストリーム s tream#0については、 第 5 5図上側で、 初期値である 90, 000になって いる pts一 change_pointとセッ トになっている DynamicInfoOにおいて 、 display_aspecし ratioが' 4:3'になっている。 この場合、 プレイヤ 制御モジュール 2 1 2は、 display_aspecし ratioが' 4:3'になってい る旨、 即ち、 ビデオストリーム streamsが、 4 : 3のアスペクト比の ビデオデータである旨の出力属性の情報を、 グラフィクス処理モジュ W ール 2 1 9を制御する。
また、 OxBDとなっている stream_idおよび 0x00となっている priv te _stream_idで特定されるオーディォストリ一ム stream#2については、 第 5 5図下側で、 初期値である 90, 000になっている pts_change— point とセットになっている DynamicInfoOにおいて、 channeし ass ignment が' Dual'になっている。 この場合、 プレイヤ制御モジュール 2 1 2は 、 channeし assignmentが' Dua になっている旨、 即ち、 オーディオス トリ一ム stream が、 デュアルのオーディォデ一夕である旨の出力属 性の情報を、 オーディオ出力モジュール 2 2 1に供給する。
ここで、 第 34図のステップ S 1 2 6では、 以上のような初期値と しての pts_change_pointを対象とした出力属性の制御処理が行われる その後、 プレイヤ制御モジュール 2 1 2は、 ビデオストリーム stre am#0についての第 5 5図上側の 2つの pts— change_pointである 90, 000 および 54, 090, 000と、 オーディオストリーム stream についての第 5 5図下側の 3つの pts_change_pointである 90, 000, 27,090,000、 およ び 32, 490, 000のうちの、 初期値 90, 000以.外の時刻である {27, 090, 000} , {32, 490, 000}, {54, 090, 000}を、 「DynamicInfo 0処理」 の属性の 時刻である旨とともに、 デコード制御モジュール 2 14に渡す (ステ ップ S 3 2 0 ) 。
デコード制御モジュール 2 14は、 プレイヤ制御モジュール 2 1 2 からの、 iDynamicInfoO処理」 の属性の時刻 {27, 090, 000} , {32,490 , 000}, {54, 090, 000}を受信し、 さらに、 ビデオストリーム s eam#0 およびオーディオストリーム stream#2の再生の開始後、 計時部 2 1 Aによって計時されている現在時刻の監視を開始する。
そして、 デコード制御モジュール 2 1 4は、 現在時刻が、 「Dynami clnfoO処理」 の属性の時刻 {27,090, 000}, {32, 490, 000}, {54,090,0 00}のうちのいずれかに一致した場合、 その現在時刻と一致した 「'byn amicInfoO処理」 の属性の時刻である Dynamiclnfo時刻を、 プレイヤ 制御モジュール 2 1 2に供給する (ステップ S 3 2 1) 。
即ち、 例えば、 現在時刻が、 27, 090, 000になったとすると、 デコー ド制御モジュール 2 1 4は、 「DynamicInfo()処理」 の属性の時刻の うちの、 現在時刻と一致する 27,090,000を、 Dynamiclnfo時刻として 、 プレイヤ制御モジュール 2 1 2に供給する。
プレイヤ制御モジュール 2 1 2は、 デコード制御モジュール 2 1 4 からの Dynamiclnfo時刻である 27, 090, 000を受信し、 ビデオストリー ム stream#0についての第 5 5図上側の 2つの pts_change_pointと、 ォ —ディォストリーム stream#2についての第 5 5図下側の 3つの pts_ch ange_pointとの中から、 Dynamiclnfo時刻である 27, 090, 000に一致す る pts_change_pointを調査し、 その 27, 090, 000に一致する pts— change — pointとセッ トになっている DynamicInfo()、 即ち、 オーディオスト リーム stream#2についての第 5 5図下側の 2番目の Dynamic Info 0を 、 処理対象 DynamicInfoOとして認識す!) (ステップ S 3 2 2) 。
処理対象 DynamicInfoOが、 ビデオストリームについての Dynamicln fo()である場合、 プレイヤ制御モジュール 2 1 2は、 処理対象 Dynami clnfoOに記述されている出力属性を、,グラフィクス処理モジュール 2 1 9に供給する (ステップ S 3 2 3 ) 。 また、 処理対象 Dynamiclnf o()が、 オーディォストリームについての DynamicInfoOである場合、 プレイヤ制御モジュール 2 1 2は、 処理対象 DynamicInfoOに記述さ れている出力属性を、 オーディオ出力モジュール 2 2 1に供給する ( ステップ S 3 2 3 ) 。
グラフィクス処理モジュール 2 1 9は、 プレイヤ制御モジュール 2 1 2から出力属性が供給されると、 その出力属性にしたがって、 ビデ ォデータの出力の制御を開始する (ステップ S 3 24) 。 f 即ち、 グラフィクス処理モジュール 2 1 9は、 例えば、 プレイヤ制 御モジュール 2 1 2からの出力属性が表す、 ビデオデータのァスぺク ト比の指示(display_aspecし ratio (第 1 5図) )と、 第 1図のビデオ 出力端子 1 2 0に接続されたビデオ出力装置のァスぺク ト比とに基づ いて、 ビデオ出力モジュール 2 2 0に出力するビデオデータのァスぺ クト比の変換を行う。
具体的には、 例えば、 ビデオ出力装置のアスペクト比が 16:9である 場合において、 出力属性としてのビデオデータのアスペクト比の指示 が 4:3のアスペクト比を表しているときには、 グラフィクス処理モジ ユール 2 1 9は、 ビデオ出力モジュール 2 2 0に出力するビデオデー 夕を、 横方向にスクイーズ処理し、 左右に黒を表示させるデータを入 れて出力する。 また、 例えば、 ビデオ出力装置のアスペクト比が 4:3 である場合において、 出力属性としてのビデオデータのアスペクト比 の指示が 16 :9のァスぺクト比を表しているときには、 グラフィクス処 理モジュール 2 1 9は、 ビデオ出力モジュール 2 2 0に出力するビデ ォデータを、 縦方向にスクイーズ処理し、 上下に黒を表示させるデ一 夕を入れて出力する。 さらに、 例えば、 ビデオ出力装置のアスペクト 比と、 出力属性としてのビデオデータのアスペクト比の指示が表すァ スぺク ト比とが、 いずれも、 4:3や 16:9で、 同一である場合、 グラフ ィクス処理 ΐジュール 2 1 9は、 ビデオ出力モジュール 2 2 0に出力 するヒ'デォデータを、 スクイーズ処理することなく、 そのまま出力す る。
ここで、 第 5 5図上側において、 ΟχΕΟとなっている stream_idで特 定されるビデオストリーム stream#0について記述されている 2セット の pts_change_po intおよび Dynamic Info 0によれば、 ビデオストリー ム s tream#0の再生開始時である時刻 90, 000から、 時刻 54, 090, 0000直 前までは、 ビデオストリーム stream#0から、 4 : 3のアスペクト比の ビデオデータが得られる。 そして、 時刻 54, 090, 000以後は、 ビデオス トリ一ム stream#0から、 1 6 : 9のアスペクト比のビデオデ一夕が得 られる。
従って、 例えば、 第 1図のビデオ出力端子 1 2 0に接続されたビデ ォ出力装置のァスぺクト比が 4 :3であるとすると、 グラフィクス処理 モジュール 2 1 9では、 時刻 90, 000から時刻 54, 090, 000の直前までは 、 ビデオストリーム stream#0から得られる 4 : 3のアスペクト比のビ デォデータが、 そのまま 4 : 3のアスペクト比のビデオ出力装置に供 給されて表示される。
そして、 時刻 54, 090, 000以後は、 ビデオストリーム stream#0から得 られる 1 6 : 9のアスペクト比のビデオデータが、 縦方向にスクイ一 ズ処理され、 さらに、 上下に黒を表示させるデータが入った 4 : 3の アスペクト比のビデオ信号に変換され、 4 : 3のアスペクト比のビデ ォ出力装置に供給されて表示される。 .
一方、 オーディオ出力モジュール 2 2 1は、 プレイヤ制御モジユー ル 2 1 2から出力属性が供給されると、 その出力属性にしたがって、 オーディオデータの出力の制御を開始する (ステップ S 3 24) 。
即ち、 オーディオ出力モジュール 2 2 1は、 例えば、 プレイヤ制御 モジュール 2 1 2からの出力属性が表す、 オーディオデータのチヤネ ル割り当ての指示(channeし assignment (第 1 5図) )と、 ュ一ザがリ モコンを操作することによって入カインタ一フェース 1 1 5 (第 1図 ) を介してプレイヤ制御モジュール 2 1 2から供給される音声出力モ —ドとに基づいて、 オーディオデコーダ制御モジュール 2 1 7からの オーディオデータを処理し、 オーディオ出力端子 1 2 1 (第 1図) に 出力する。 ¾ 具体的には、 例えば、 出力属性が表すオーディオデータのチャネル 割り当ての指示が、 左チャネルが 「主音声」 のオーディオデータで、 右チャネルの 「副音声」 のオーディオデータであるデュアル(Dual) ( ニケ国語) モードを表している場合、 オーディオ出力モジュール 2 2 1は、 プレイヤ制御モジュール 2 1 2から供給される音声出力モード にしたがって、 オーディオデコーダ制御モジュール 2 1 7からのォー ディォデ一夕を処理して、 オーディオ出力端子 1 2 1に出力する。 即ち、 音声出力モードとして、 例えば、 「主音声」 が指定されてい るときには、 オーディオ出力モジュール 2 2 1は、 オーディオデコー ダ制御モジュール 2 1 7からのオーディオデータのうちの左チャネル のオーディォデータを、 右チャネルのオーディォデータとしてコピー し、 その左チャネルと右チャネルのオーディオデータ ( 「主音声」 の オーディオデータ) を、 オーディオ出力端子 1 2 1に出力する。 また 、 音声出力モードとして、 「副音声」 が指定されているときには、 ォ 一ディォ出力モジュール 2 2 1は、 オーディオデコーダ制御モジユー ル 2 1 7からのオーディオデータのうちの右チャネルのオーディオデ 一夕を、 左チャネルのオーディオデータとしてコピーし、 その左チヤ ネルと右チャネルのオーディオデータ ( 「副音声」 のオーディオデ一 夕〉 を、 オーディオ出力端子 1 2 1に出力する。 さらに、 音声出力モ ードとして、' 「主 ·副」 が指定されているときには、 オーディオ出力 モジュール 2 2 1は、 オーディオデコーダ制御モジュール 2 1 7から のオーディオデータを、 そのまま、 オーディオ出力端子 1 2 1に出力 する。
また、 例えば、 出力属性が表すオーディオデ一夕のチャネル割り当 ての指示が、 ステレオ(Stereo)モードを表している場合、 オーディオ 出力モジュール 2 2 1は、 プレイヤ制御モジュール 2 1 2から供 さ れる音声出力モードにかかわらず、 オーディォデコーダ制御モジユー ル 2 1 7からのオーディオデータを、 そのまま、 オーディオ出力端子 1 2 1に出力する。
ここで、 第 5 5図下側において、 OxBDとなっている stream_idおよ び 0x00となっている private_stream_idで特定されるオーディォスト リーム stream#2について記述されている 3セットの pts_change_point および Dynamic Info 0によれば、 オーディオストリーム stream#2の再 生開始時である時刻 90, 000から、 時刻 27, 090, 000の直前までは、 ォー ディォストリーム stream#2から、 デュアルのォ一ディォデ一夕が得ら れる。 また、 時刻 27,090, 000から、 時刻 32,490,000の直前までは、 ォ —ディォストリ一ム stream#2から、 ステレオのオーディォデータが得 られ、 時刻 32, 490, 000以後は、 オーディオストリーム stream#2から、 デュアルのオーディオデ一夕が得られる。
従って、 例えば、 音声出力モードとして、 「主音声」 が指定されて いるとすると、 オーディオ出力モジュール 2 2 1では、 時刻 90,000か ら、 時刻 27, 090, 000の直前までは、 オーディオストリーム stream#2か ら得られるデュアルのォ一ディォデ一夕のうちの左チャネルのォ一デ ィォデ一夕が、 おチャネルのオーディオデータとしてコピーされ、 そ の左チャネルと右チャネルのオーディォデータが、 オーディォ出力端 子 1 2 1に tB力される。
また、 時刻 27, 090, 000から、 時刻 32,490,000の直前までは、 オーデ ィォストリーム stream#2から得られるステレオのオーディォデ一夕が 、 そのまま、 オーディオ出力端子 1 2 1に出力される。
そして、 時刻 32, 490, 000以後は、 オーディオストリーム streamsか ら得られるデュアルのオーディォデ一夕のうちの左チャネルのオーデ ィォデータが、 右チャネルのオーディォデータとしてコピーされ、(そ の左チャネルと右チャネルのオーディォデータが、 オーディォ出力端 子 1 2 1に出力される。
以上のように、 出力属性の制御処理では、 クリップストリームファ ィルに多重化されているエレメン夕リストリームごとに、 そのエレメ ンタリストリームの再生時刻を表す pts_change_pointと、 そのエレメ ン夕リストリームの出力属性を含む Dynamic Info 0とのセッ トを 0セ ット以上含むクリップ情報ファイル ClipO (第 1 2図) の記述に基づ き、 再生中のエレメン夕リストリームの再生時刻が、 pts_change— poi ntに一致するか否かが判定される。 そして、 再生中のエレメンタリス トリ一ムの再生時刻が、 pts_change_pointに一致する場合、 その pts— change— pointとセッ 卜になっている Dynamic Info 0が認識され、 その 認識された Dynamic Info 0に含まれる出力属性にしたがって、 再生中 のエレメン夕リストリームの出力が制御される。 従って、 エレメンタ リストリームの再生時刻と出力属性に応じて、 そのエレメンタリスト リームの出力を制御することが可能となる。
[字幕表示制御処理]
次に、 第 5 6図のフローチャートを参照して、 字幕ストリームに対 応する字幕データの表示を制御する字幕表示制御処理について説明す る。
PlayListOの再生が開始されると、 プレイヤ制御モジュール 2 1 2 は、 ステップ S 34 1において、 グラフィクス処理モジュール 2 1 9 に対する字幕データの表示方式の指示を初期化する。 即ち、 プレイヤ 制御モジュ一ル 2 1 2は、 字幕データの表示方式をデフォルトの表示 方式とするように、 グラフィクス処理モジュール 2 1 9を制御する。 なお、 ステップ S 3 4 1で行われる表示方式の指示の初期化は、 第 3 4図の 1 2 7で説明した表示方式の指示の初期化に対応する。 、 ステップ S 3 4 1の処理後は、 ステップ S 3 4 2に進み、 プレイヤ 制御モジュール 2 1 2は、 ユーザがリモコンを操作することにより入 力インターフェース 1 1 5から、 字幕データの表示について、 新たな 表示方式の指示があつたかどうかを判定する。
ステップ S 3 4 2において、 新たな表示方式の指示があつたと判定 された場合、 ステップ S 3 4 3に進み、 プレイヤ制御モジュール 2 1 2は、 字幕ストリームを、 現在再生しているかどうかを判定する。 ステップ S 3 4 3において、 字幕ストリームが再生されていないと 判定された場合、 ステップ S 3 4 2に戻る。
また、 ステップ S 3 4 3において、 字幕ストリームが再生されてい ると判定された場合、 ステップ S 3 4 5に進み、 プレイヤ制御モジュ ール 2 1 2は、 新たな表示方式の指示が、 デフォルトの表示方式の指 示であるかどうかを判定する。 ステップ S 3 4 3において、 新たな表 示方式の指示が、 デフォルトの表示方式の指示であると判定された場 合、 ステップ S 3 4 1に戻り、 上述し ように、 プレイヤ制御モジュ ール 2 1 2は、 字幕データの表示方式をデフォルトの表示方式とする ように、 グラフィクス処理モジュール 2 1 9を制御する。
一方、 ステップ S 3 4 5において、 新たな表示方式の指示が、 デフ オルトの表示方式の指示でないと判定された場合、 即ち、 新たな表示 方式の指示 、 例えば、 字幕デ一夕を拡大や縮小して表示する、 ある いは るさを変えて見やすくする等、 デフォルトでない表示方式の指 示である場合、 ステップ S 3 4 6に進み、 プレイヤ制御モジュール 2 1 2は、 現在再生している字幕ストリームが多重化されたクリップス トリームフアイルに対応するクリップ情報ファィル C I i p () (第 1 2図 ) の StaticInfoO (第 1 4図) のうちの、 現在再生している字幕スト リームについての Static Info 0を取得し、 ステップ S 347に進む。 ステップ S 347では、 プレイヤ制御モジュール 2 1 2は、 ステツ プ S 346で取得した 3{&"(;11^0()の0011 811 1)16_ &8を判定する ステップ S 347において、 conf igurable_f lagが、 字幕データの 表示方式の変更を許可しない旨の 0になっていると判定された場合、 ステップ S 348に進み、 プレイヤ制御モジュール 2 1 2は、 グラフ イクス処理モジュール 2 1 9を制御することにより、 出力ビデオデー 夕に、 字幕データの表示方式を変更することができない旨のエラ一メ ッセージをオーバーレイさせ、 ステップ S 342に戻る。 これにより 、 エラーメッセージが表示される。
一方、 ステップ S 347において、 conf igurable— f lagが、 字幕デ —夕の表示方式の変更を許可する旨の 1になっていると判定された場 合、 ステップ S 349に進み、 プレイヤ制御モジュール 2 1 2は、 ュ 一ザがリモコンを操作することにより入力インターフェース 1 1 5か ら供給された新たな表示方式の指示を、.グラフィクス処理モジュール 2 1 9に供給して、 ステップ S 3 5 0に進む。
ステップ S 3 5 0では、 グラフィクス処理モジュール 2 1 9は、 字 幕デコーダ制御モジュール 2 1 8から供給される字幕データを、 直前 のステップ S 349でプレイヤ制御モジュール 2 1 2から供給された 表示方式の ½示にしたがって拡大または縮小等あるいは明るさを変え る等の処理を開始し、 ステップ S 342に戻る。 これにより、 字幕デ 一夕は、 ユーザがリモコンを操作することによつて指示した表示方式 にしたがった表示サイズや、 表示位置、 表示色等で表示される。 一方、 ステップ S 342において、 新たな表示方式の指示がなかつ たと判定された場合、 ステップ S 3 5 1に進み、 プレイヤ制御モジュ —ル 2 1 2は、 第 4 0図で説明した Play Item ()の乗り換えが行わ た かどうかを判定し、 行われていないと判定した場合、 ステップ S 34 2に戻る。
また、 ステップ S 3 5 1において、 PlayltemOの乗り換えが行われ たと判定された場合、 ステップ S 34 1に戻り、 上述したように、 プ レイヤ制御モジュール 2 1 2は、 字幕デ一夕の表示方式をデフォルト の表示方式とするように、 グラフィクス処理モジュール 2 1 9を制御 する。 即ち、 この場合、 PlayltemOの乗り換えが行われたときには、 字幕データの表示方式は、 デフォルトの表示方式に戻される。
以上のように、 字幕表示制御処理においては、 字幕ストリームの CO nfigurable— flagが、 表示方式の変更を許可する旨の 1になっている場 合にのみ、 その字幕ストリームに対応する字幕データの表示方式が、 例えば、 ユーザがリモコンを操作することにより入力される表示方式 の指示に応じて変更される。
従って、 例えば、 第 3 0図 Aおよび第 3 0図 Bに示したクリップ情 報ファイル" 00001. CLP"によれば、 対応.するクリップストリームファ ィル" 00001.PS"に多重化されている 4本のエレメン夕リストリームの うちの 3本目のエレメンタリストリームである字幕ストリーム stream #2についての configurable—flagは、 表示方式の変更を許可しない旨 の 0になっているので、 その字幕ストリ一ム stream#2が表示されてい るときに、 ユーザが字幕の表示を変更するようにリモコンを操作して も、 の表示は変更されない。
一方、 例えば、 クリップストリームファイル" 00001.PS"に多重化さ れている 4本のエレメン夕リストリームのうちの 4本目のエレメン夕 リストリームである字幕ストリ一ム st ream#3についての configurable —flagは、 表示方式の変更を許可する旨の 1になっているので、 その字 幕ストリ一ム stream^が表示されているときに、 ュ一ザが字幕の 示 を変更するようにリモコンを操作すると、 その操作に応じて、 字幕の 表示サイズ等が変更される。
即ち、 例えば、 いま、 第 2 9図の 1番目の PlayList#0の 1番目の P1 ayltem#0にしたがい、 クリップストリ一ムファイル" 00001. PS"が再生 されているとする。 また、 第 3 0図 Aおよび第 3 0図 Bでクリップ情 報ファイル' '00001. CLP"について説明したように、 クリップストリー ムファイル" 00001.PS"に多重化されている 4本のエレメンタリストリ ームのうちの、 3本目と 4本目が字幕ストリームであるが、 その 3本 目の字幕ストリーム stream#2と、 4本目の字幕ストリーム s t ream#3の うちの、 例えば、 3本目の字幕ストリーム stream#2が、 現在再生され ているとする。
ユーザが、 リモコンを操作することにより、 字幕の表示方式の指示 を入力すると (ステップ S 3 4 2) 、 その表示方式の指示は、 入カイ ンターフェース 1 1 5 (第 1図) からプレイヤ制御モジュール 2 1 2 に供給される。 プレイヤ制御モジュール.2 1 2は、 表示方式の指示が 供給されると、 再生中の字幕ストリームに対応する StaticInfoO (第 1 2図) を、 クリツプ情報ファイルから探し出す (ステップ S 3 4 6 ) 。
即ち、 いまの場合、 再生中の字幕ストリームは、 クリップストリー ムファイル" 00001.PS"に多重化されている 3本目の字幕ストリーム st ream#2であり、 プレイヤ制御モジュール 2 1 2は、 対応するクリップ 情報ファイル" 00001. CLP"から、 3本目の字幕ストリーム stream#2に ついての StaticInfoOを探し出す。
さらに、 プレイヤ制御モジュール 2 1 2は、 第 3 0図 Aおよび第 3 0図 Bにおいて 3本目の字幕ストリ一ム stream#2についての Stat icln fo()に記述されている、 0になっている configurable— flagを判定 ( ステップ S 3 4 7 ) 、 これにより、 3本目の字幕ストリーム stream#2 については、 表示方式の変更が許可されていないことを認識する。 この場合、 プレイヤ制御モジュール 2 1 2は、 再生中の字幕ストリ —ムが拡大縮小等に対応していないと判断し、 グラフィクス処理モジ ユール 2 1 9を制御することにより、 その旨のエラーメッセージを生 成させ (ステップ S 34 8) 、 ビデオデータにオーバ一レイして出力 させる。
一方、 クリップストリームファイル" 00001.PS"に多重化されている 4本のエレメン夕リストリームの 3本目の字幕ストリ一ム stream#2と 、 4本目の字幕ストリーム stream#3のうちの、 3本目の字幕ストリ一 ム stream ではなく、 4本目の字幕ストリーム stream#3が、 現在再生 されている場合には、 ユーザがリモコンを操作することによって表示 方式の指示の供給を受けたプレイヤ制御モジュール 2 1 2は、 対応す るクリップ情報ファイル" 00001. CLP"から、 4本目の字幕ストリーム s t ream#3についての Static Info ()を探し出す。
さらに、 プレイヤ制御モジュール 2 1 2は、 第 3 0図 Aおよび第 3 0図 Bにおいて 4本目の字幕ストリーム stream#3についての Stat icln fo()に記述されている、 1になっている configurable—flagを判定し ( ステップ S 3 4 7 ) 、 これにより、 4本目の字幕ストリーム stream#3 については、 表示方式の変更が許可されていることを認識する。
この場合、 プレイヤ制御モジュール 2 1 2は、 再生中の字幕ストリ —ムが拡大縮小等に対応していると判断し、 ユーザがリモコンを操作 することによって供給された表示方式の指示を、 グラフィクス処理モ ジュール 2 1 9に供給する (ステップ S 34 9) 。 これにより、 その後、 グラフィクス処理モジュール 2 19は、 プレ ィャ制御モジュール 212からの表示方式の指示にしたがい、 字 ¾デ コーダ制御モジュール 2 18からの字幕データを拡大または縮小等し 、 ビデオデコーダ制御モジュール 2 1 6からのビデオデータにオーバ —レイして出力する。
なお、 プレイヤ制御モジュール 2 12は、 PlayListOの最初の Play ItemOの再生開始時に、 グラフィクス処理モジュール 2 1 9に対する 字幕データの表示方式の指示を初期化する (ステップ S 341) 。 即 ち、 プレイヤ制御モジュール 212は、 字幕データの表示方式をデフ オルトの表示方式とするように、 グラフィクス処理モジュール 2 1 9 を制御する。
さらに、 プレイヤ制御モジュール 2 1 2は、 PlayltemOの乗り換え 時にも、 グラフィクス処理モジュール 219に対する字幕データの表 示方式の指示を初期化する (ステップ S 341, S 35 1) 。
但し、 PlayltemOの乗り換え時においては、 その後に新たに再生さ れる PlayltemOにしたがって再生される新たな字幕ストリームについ ての con figur able— flagを調査し、 conf.igurable— f lagが 0である場合 には、 グラフィクス処理モジュール 2 19に対する字幕デ一夕の表示 方式の指示を初期化し、 coniigurable_f lagが 1である場合には、 ダラ フィクス処理モジュール 2 19に対する表示方式の指示を、 Playltem 0の乗り換え前のまま維持するようにすることが可能である。
また、 第 56図の字幕表示制御処理では、 ユーザがリモコンを操作 することにより、 新たな表示方式の指示が入力された場合に、 その新 たな表示方式の指示を、 グラフィクス処理モジュール 2 19に供給す るようにしたが (ステップ S 349) 、 表示方式の指示は、 例えば、 メモリ 1 13 (第 1図) を構成する不揮発性メモリに記憶し、 その不 揮発性メモリに記憶された表示方式の指示を、 グラフィクス処理モジ ュ一ル 2 1 9に供給するようにすることが可能である。
即ち、 例えば、 第 1図のディスク再生装置の初期設定として、 不揮 発性メモリに、 ユーザ設定の表示方式の指示を記憶させておき、 ユー ザがリモコンを操作することにより、 新たな表示方式の指示が入力さ れた場合には、 不揮発性メモリに記憶された表示方式の指示を、 新た な表示方式の指示に更新する一方、 その不揮発性メモリに記憶された 表示方式の指示を、 グラフィクス処理モジュール 2 1 9に供給するよ うにすることが可能である。 この場合、 不揮発性メモリには、 前回の 再生終了時における表示方式の指示が保持されるので、 次回の PlayLi st 0の再生時に、 ユーザがリモコンを操作することにより、 前回の再 生終了時における表示方式の指示を入力しなくても、 その表示方式で 、 字幕データの表示が開始される。
なお、 この場合、 不揮発性メモリに記憶させる表示方式の指示には 、 例えば、 字幕データを拡大または縮小するときの拡大率または縮小 率等が含まれるものとする。
以上のように、 字幕表示制御処理によ.れば、 クリップ情報ファイル ClipO (第 1 2図) に含まれる、 エレメン夕リストリームごとの、 そ のエレメン夕リストリームの再生中に変化しない StaticInfoOのうち の、 字幕データの StaticInfoOが取得され、 その StaticInfoOに含ま れる、 字幕データの表示をデフォルトの表示方式から変更することを 許可するか否かを表す configurable一 flagに基づき、 再生中の字幕デ 一夕の表示をデフォルトの表示方式から変更することが許可されてい るか否かが判定される。 そして、 再生中の字幕データの表示をデフォ ルトの表示方式から変更することが許可されている場合には、 字幕デ 一夕の表示方式の変更の指示にしたがって、 その字幕デ一夕の表示処 理、 即ち、 例えば、 字幕デ一夕を拡大または縮小、 あるいは表示色を 変更する等して表示する処理が行われる。 従って、 字幕データの 示 方式の変更を制御することができる。 ' [キヤプチヤ制御処理]
次に、 第 5 7図のフローチャートを参照して、 ビデオストリームに 対応するビデオデータのキヤプチャを制御するキヤプチャ制御処理に ついて説明する。 なお、 第 5 7図には、 キヤプチャ制御処理を説明す るフローチャートとともに、 そのキヤプチャ制御処理によってキヤプ チヤされたビデオデータを 2次利用する処理の例であるバックグラウ ンド スクリーンセ一バ処理を説明するフローチャートも、 図示して ある。
キヤプチャ制御処理は、 例えば、 ユーザがリモコンを操作すること により、 ビデオデータのキヤプチャを指示するキヤプチャ指示が、 入 力インターフェース 1 1 5 (第 1図) を介して、 プレイヤ制御モジュ ール 2 1 2に供給されると開始される。
即ち、 キヤブチヤ制御処理では、 まず最初に、 ステップ S 3 7 1に おいて、 プレイヤ制御モジュール 2 1 2.が、 ビデオストリームを再生 中であるかどうかを判定し、 再生中でないと判定した場合、 キヤプチ ャ制御処理は終了する。
一方、 ステップ S 37 1において、 ビデオストリームを再生中であ ると判定された場合、 ステップ S 3 7 2に進み、 プレイヤ制御モジュ —ル 2 1 2は、 再生中のビデオストリームに対応する PlayListO (第 7図) から、 capture一 enablejlag— PlayListを取得するとともに、 再 生中のビデオストリームに対応するクリップ情報ファイル ClipO (第 1 2図) から、 capture__enable_flag__Cl ipを取得する。
ここで、 PlayList 0における capture enable flag PlayListは、 第 7図で説明したように、 その PlayList()によって再生されるビデオス トリームに対応するビデオデータの 2次利用を許可するか否かを す 。 また、 クリップ情報ファイル ClipOにおける capture_enable_flag_ Clipは、 第 1 2図で説明したように、 そのクリップ情報ファイル Clip 0に対応するクリップストリームファイルに格納されているビデオス トリームに対応するビデオデータの 2次利用を許可するか否かを表す ステップ S 3 72の処理後は、 ステップ S 3 7 3に進み、 プレイヤ 制御モジュール 2 1 2は、 直前のステップ S 37 3で取得された capt ure— enable— flag_PlayLi stと capt. u re— enable— f lag— CI ipとに つき、 キヤプチャ指示が入カインターフェース 1 1 5 (第 1図) から入力さ れたときに再生されていたビデオデータのピクチャのキヤプチヤの可 否を判定する。
ステップ S 3 7 3において、 キヤプチャ指示が入カインターフェ一 ス 1 1 5から入力されたときに再生されていたビデオデータのピクチ ャのキヤプチヤが不可であると判定された場合、 即ち、 直前のステツ プ S 3 7 3で取得された capture_enabl f lagJ ayListまたは captur e_enable_flag_Clipのうちの少なくとも一方が、 ビデオデータの 2次 利用を許可しない旨の 0になっている場合、 ステツプ S 3 74に進み 、 プレイヤ制御モジュール 2 1 2は、 グラフィクス処理モジュール 2 1 9を制御することにより、 ビデオデータのキヤプチヤが不可である 旨のエラ一メッセージをオーバーレイさせ、 キヤプチャ制御処理を終 了する。 これにより、 エラーメッセージが表示される。
一方、 ステップ S 3 7 3において、 キヤプチャ指示が入力インター フェース 1 1 5から入力されたときに再生されていたビデオデータの ピクチャのキヤプチヤが可能であると判定された場合、 即ち、 直前の ステップ S 3 7 3で取得された capture— enable_f gJ ayListおよび capture— enable_flag_Clipの両方が、 ビデオデータの 2次利用を #可 する旨の 1になっている場合、 ステップ S 3 7 5に進み、 プレイヤ制 御モジュール 2 1 2は、 キヤプチャ指示が入カインタ一フェース 1 1 5から入力されたときに再生されていたビデオデータのピクチャのキ ャプチヤの指示を、 グラフィクス処理モジュール 2 1 9に供給し、 ス テツ.プ S 37 6に進む。
ステップ S 3 7 6では、 グラフィクス処理モジュール 2 1 9は、 プ レイヤ制御モジュール 2 1 2からのキヤプチヤの指示にしたがい、 ビ デォデコーダ制御モジュール 2 1 6からのビデオデータのピクチャを キヤプチヤし、 メモリ 1 1 3 (第 1図) に記憶させて、 キヤプチャ制 御処理を終了する。 なお、 capture_enable_f gが複数ビッ ト構成に なっており、 使用条件の制約が行われている場合にはこの時点で対応 が行われる。 すなわちキヤプチャした画像の大きさに制限がある場合 には、 この時点で縮小した画像がキヤプチャされる。 また使用するァ プリケ一ションに制約がある場合にはその旨を知らせるフラグが同時 に記録される。 .
以上のように、 キヤプチャ制御処理では、 ユーザからのキヤプチャ 指示があつたときに再生されているビデオストリームに対応する Play ListO (第 7図) とクリップ情報ファイル ClipO (第 1 2図) それぞ れの capture一 enable— flag— PlayListと capture— enable— flag_C I ipとの 論理積をとつて、 その論理積が 1である場合、 即ち、 capture— enable— flag_PlayListと capture— enable— flag_Clipが、 いずれも、 2次利用 を許可する 1になっている場合にのみ、 ビデオデータの 2次利用が可 能であると判断され、 キヤプチヤが行われる。
従って、 例えば、 第 2 9図における 1番目の PlayList#0の 1番目の PlayItem#0にしたがって、 ビデオストリームの再生、 即ち、 クリップ ストリームファイル' '00001.PS"に多重化されたビデオストリームの再 生が行われている場合に、 ユーザからのキヤプチャ指示があつたとき には、 1番目の PlayList#0における capture_enable_flag_PlayListは 1であり、 その 1番目の PlayItem#0によって再生されるクリップスト リームファイル" 00001.PS"に対応する第 30図 Aおよび第 3 0図 Bの クリップ情報ファイル" 00001. CLP"における capture一 enable_flag_Cli pは 1であるから、 再生中のビデオデ一夕 (クリップストリームフアイ ル" 00001.PS"に多重化されたビデオストリームに対応するビデオデー 夕) の 2次利用は可能であると判断され、 キヤプチヤが行われる。 また、 例えば、 第 2 9図における 1番目の PlayListitOの 2番目の P1 ayltem#lにしたがって、 ビデオストリームの再生、 即ち、 クリップス トリームファイル" 00002.PS"に多重化されたビデオストリームの再生 が行われている場合に、 ユーザからのキヤプチャ指示があつたときに は、 1番目の PlayList#0における capture_enable_f lag_PlayListは 1 であり、 その 2番目の Play It em#lによって再生されるクリッブストリ —ムファイル" 00002.PS"に対応する第 3.0図 Aおよび第 3 0図 Bのク リップ情報ファイル" 00002. CLP"における capture_enable— flag— Clip は 0であるから、 再生中のビデオデータ (クリップストリームフアイ ル" 00002.PS"に多重化されたビデオストリ一ムに対応するビデオデー 夕) の 2次利用は不可であると判断され、 キヤプチヤが行われない。 さらに、 例えば、 第 2 9図における 2番目の PlayList#lの Playltem #0にしたがって、 ビデオストリームの再生、 即ち、 クリップストリー ムファイル" 00003.PS"に多重化されたビデオストリームの再生が行わ れている場合に、 ユーザからのキヤプチャ指示があったときには、 2 番目の PlayList#lにおける capture enable f g_PlayListは 0であり 、 2番目の P【ayList#lの PlayltemitOによって再生されるクリップスト リームファイル" 00003.PS"に対応する第 3 0図 Aおよび第 30図 の クリップ情報ファイル" 00003. CLP"における capture_enable flag_Cli Pは 1であるから、 再生中のビデオデ一夕 (クリップストリームフアイ ル" 00003.PS"に多重化されたビデオストリームに対応するビデオデー 夕) の 2次利用は不可であると判断され、 キヤプチャは行われない。 なお、 この場合、 2番目の PlayList#lにおける capture_enable_fla g_PlayListが 0であることが確認された時点で、 ビデオデ一夕の 2次 利用は不可であると判断することができるので、 2番目の PlayList#l の PlayItem#0によって再生されるクリップストリームファイル" 00003 .PS"に対応する第 30図 Aおよび第 30図 Bのクリップ情報ファイル " 00003. CLP"における capture_enable_flag_Cl ipの確認は省略するこ とができる。
キヤプチャ制御処理によってキヤプチヤされ、 メモリ 1 1 3に記憶 されたピクチャは、 バックグラウンド Zスクリーンセーバ処理におい て 2次利用することができる。
バックグラウンド スクリーンセ一パ:処理は、 例えば、 プレイヤ制 御モジュ一ル 2 1 2が動作しているが、 エレメンタリストリームの再 生が行われていない状態、 即ち、 ディスクドライブ 1 0 2 (第 1図) にディスク 1 0 1が挿入されていない状態、 あるいはエレメン夕リス トリームの再生が終了した状態となったときなどに行われる。
即ち、 バックグラウンド Zスクリーンセ一バ処理では、 ステップ S 380において、 プレイヤ制御モジュール 2 1 2は、 キヤプチャ制御 処理によってメモリ 1 1 3に記憶されたピクチャを表示するように、 グラフィクス処理モジュール 2 1 9を制御する。 グラフィクス処理モ ジュ一ル 2 1 9は、 プレイヤ制御モジュール 2 1 2からの制御にした がい、 キヤプチャ制御処理によってメモリ 1 1 3に記憶されたピクチ ャを表示させる。
ここで、 グラフィクス処理モジュール 2 1 9において、 メモリ 1 1 3に記憶されたピクチャを静止画で表示させれば、 いわゆる壁紙が実 現され、 一定周期で拡大や縮小、 移動等しながら表示させれば、 スク リーンセ一バが実現される。 また、 キヤプチャ制御処理によってメモ リ 1 1 3に記憶されたピクチャの表示を行うバックグラウンド Zスク リーンセ一バ処理は、 プレイヤ制御モジュール 2 1 2ではなく、 他の 独立したアプリケ一ションによって行うことが可能である。
また、 このときメモリ 1 1 3に記憶されたピクチャに使用制限を表 すフラグが付加されている場合にはその制限に従う。
以上のように、 ビデオアクセスユニット単位より大きな単位の、 例 えば、 PlayList 0や PlayltemOに対応するビデオデータの 2次利用を 許可するか否かを表す、 再生中のビデオデータに対する capture_enab le— flag— PlayListや capture_enable— flag— CI ipが取得され、 その capt ure— enable— flag— PlayListや capture— enable— flag— CI ipに基つき、 再 生中のビデオデータの 2次利用が許可されているか否かが判定される 。 そして、 再生中のビデオデータの 2次利用が許可されていると判定 された場合、 再生中のビデオデータがキヤプチヤされ、 そのキヤプチ ャされたビデオデータを利用したバックグラウンドノスクリーンセ一 バ処理が実行される。 従って、 ビデオデータの 2次利用の制御が可能 となる。
なお、 第 5 7図のキヤプチャ制御処理では、 PlayList 0 (第 7図) において、 capture_enable_flag_PlayListを設けるとともに、 Playlt em()によって再生されるクリップストリームファイルに対応するクリ ップ情報ファイル ClipO (第 1 2図) において、 capture_enable— fla g_Cl ipを設け、 その capture— enable_flagJPl ayLi stと capture— enable _f 1 ag_C 1 ipとの両方を用いて、 2次利用の許可を判定するように iiた が、 PlayList () (第 7図) において、 capture— enable— flag— PlayList を設けるだけか、 または、 PlayltemOによって再生されるクリップス トリームファイルに対応するクリップ情報ファイル ClipO (第 1 2図 ) において、 capture_enable_nag_Clipを設けるだけにして、 captur e— enable— f lag_P yListまたは capture_enable_f lag— CI ipの一方たけ を用いて、 2次利用の可否を判定するようにすることも可能である。 また、 第 5 7図のキヤプチャ制御処理では、 ステップ S 3 76にお
9 3
いて、 グラフィクス処理モジュール 2 1 9が、 プレイヤ制御モジュ一 ル 2 1 2からのキヤプチヤの指示にしたがい、 ビデオデコーダ制御モ ジュール 2 1 6からのビデオデータのピクチャ、 即ち、 1つのピクチ ャだけをキヤプチヤするようにしたが、 その他、 複数のピクチャをキ ャプチヤすることも可能である。 つまり、 ビデオデコーダ制御モジュ —ル 2 1 6が出力する時系列の複数のピクチャをキヤプチヤすること が可能である。 この場合、 一度にキヤプチャされるピクチャの枚数は 、 例えば、 あらかじめ決めておくことができる。 あるいは、 capture_ enable— flagJ ayUstや capture— enable— flag— CI ipのビッ卜 し て、 その capture— enable— flagJPlayLis tや capture— enable_f lag— CI ip に、 一度にキヤプチャ可能なピクチヤの枚数の情報を含めるようにし ても良い。
さらに、 上述の場合には、 ビデオデ一夕の 2次利用を許可するか否 力の禾 |J用許可情報 (capture— enable_f lag— PlayL is t, capture—enable— flag_Clip)を、 PlayListOや、 クリップ情報ファイル CI ip 0に記述し 、 その利用許可情報によって、 PlayUstOによって再生されるビデオ データ全体や、 クリップ情報ファイル ClipOに対応するクリップスト リームファイルに多重化されたビデオストリームに対応するビデオデ
—夕全体についての 2次利用の可否を判定するようにしたが、 利用許 可情報は、 その他の任意の単位のビデオデータについて記述し、 その 利用許可情報によって、 任意の単位のビデオデータについての 2次利 用の可否を判定することが可能である。
即ち、 第 5 8図は、 利用許可情報が配置された private_stream2— PE S一 payloadOのシンタクスを示しており、 第 5 9図は、 利用許可情報 が配置された au— informationOのシンタクスを示している。
なお、 第 5 8図の pr ivate— stream2— PES_payload 0は、 video— strea m— idの直前に、 利用許可情報としての capture_enable— f lag一 ps2が配 置されている他は、 第 2 6図における場合と同様に構成されている。 第 5 9図の au—information()も、 pic一 struct_copyの直前に、 利用許 可情報としての capture_enable— flag— AUが配置されている他は、 第 2 7図における場合と同様に構成されている。
第 5 8図の private— stream2一 PES— payloadOに配置された capture— e nable— flag— ps2は、 -^CD r iva te_stream2_PES_pay load 0を含む pr iva te— s tream— 2の PES— packet 0力 ら、 次の pr ivate— s tream— 2の PES— packe tOの直前までに配置されるビデオストリームに対応するビデオデ一 夕の 2次利用を許可するか否かを表す。 従って、 第 5 8図の private_ stream2_PES_payload()に配置された capture— enable_f lag一 ps2によれ ば、 あるデコード開始可能点から次のデコード開始可能点までの間の ビデオデータについて、 その 2次利用を許可するか否かを判定するこ とができる。
また、 第 5 9図の au— informationOに配置された capture_enable— f lag_AUは、 その capture一 enable— flag_A こ対応するビデオアクセスュ ニットのビデオデータの 2次利用を許可するか否かを表す。 従って、 第 5 9図の au_information()に配置された capture_enable— flag— Αϋに よれば、 ビデオアクセスユニット単位のビデオデータについて、 ち 、 ピクチャ単位で、 その 2次利用を許可するか否かを判定することが できる。
ここで、 PlayListO (第 7図) における利用許可情報としての capt ure_enable_f lag_PlayList, クリップ情報ファイル CI ip() (第 1 2図 ) における利用許可情報としての capture_enable_nag_Clip、 privat e_stream2_PES_payload() (第 5 S図) における利用許可情報として の capture_enable_f lag_ps2, au_informat ion() (第 5 9図) におけ る利用許可情報としての capture_enable_flag_AUは、 そのうちの 2以 上を重複して採用することが可能であり、 この場合、 あるビデオデ一 夕のピクチャの 2次利用の可否は、 その重複して採用される 2以上の 利用許可情報の論理積等に基づいて判定することができる。
また、 第 5 9図の au_informaUon()が配置される第 2 6図または第 5 8図の private— stream2_PES_payload()を含む private_streanし 2の P ES一 packet ()は、 第 4 5図のステップ S 2 1 1で説明したように、 バ ッファ制御モジュール 2 1 5 (第 5図) .のビデオ読み出し機能部 2 3 3が、 バッファ 2 1 5 Aに記憶されたプログラムストリーム中から探 索する。 従って、 capture— enable_flag_ps2が配置された第 5 8図の p rivate—strean^—PES— payloadOや、 capture— enable— flag— AUが配置さ れた第 5 9図の au_iniormationOを採用する場合には、 プレイヤ制御 モジュール 2 1 2は、 ビデオデータの 2次利用の可否を判定するにあ たって、 capture— enable— flag— ps2や capture— enable— flag— AUを、 ビ デォ読み出し機能部 2 3 3に問い合わせる必要がある。
次に、 第 6 0図を参照して、 ディスク記録装置のハードウェアの構 成について説明する。 第 6 0図のディスク記録装置は、 例えば、 ディスクプレーヤや、 ゲ —ム装置、 カーナビゲーションシステムその他に適用することが き る。
第 6 0図のディスク記録装置において、 ディスク 4 1 0は、 例えば 、 DVDなどの光ディスク、 あるいは光磁気ディスク、 磁気ディスクな どであり、 ビデオデータや、 オーディオデータ、 字幕デ一夕などのコ ンテンッデータ、 さらには、 コンテンツデータを記録することができ る。 尚、 ディスク 4 1 0は、 各種のデータが記録されることにより、 第 1図のディスク 1 0 1として使用することが可能となる。
ビデオ入力端子 4 0 0 Aは、 図示せぬ撮像装置などのビデオ入力装 置に接続されており、 ビデオ入力装置より供給されるビデオデータを ビデオ入力インターフェース 4 0 1に供給する。 オーディオ入力端子 4 0 0 Bは、 図示せぬマイクロフォンやアンプ (アンプリファイャ) などのオーディォ入力装置に接続されており、 入力されたオーディォ データを、 オーディオ入力インターフェース 4 0 2に供給する。 ビデオ入力インタ一フェース 4 0 1は、 入力されるビデオデータに 必要な処理を施し、 バス 4 1 1を介して.ビデオエンコーダ 4 0 3に供 給する。 オーディオ入力インターフェース 4 0 2は、 入力されるォ一 ディォデ一夕に所定の処理を施し、 バス 4 1 1を介してオーディォェ ンコーダ 4 0 4に供給する。
ビデオエンコーダ 4 0 3は、 CPU 4 0 5やビデオ入カインターフェ ース 4 0 1より供給されるビデオデータをエンコードし、 その結果得 られる、 圧縮符号化データ (符号化ビデオデータ :例えば、 MPEG 2ビ デォストリーム) を、 バス 4 1 1を介してディスクドライブ 4 0 9に よりディスク 4 1 0に記録させる。
オーディォエンコーダ 4 0 4は、 CPU 4 0 5やオーディォ入カイン と、 あるいは、 上述したようなリム一バブル記録媒体からディスク記 録装置にインストールすることができる。 また、 プログラムは、 タウ ンロードサイ トから、 ディジ夕ル衛星放送用の人工衛星を介して、.'デ イスク再生装置に無線で転送したり、 LAN(Local Area Network), ィ ンターネットといったネットワークを介して、 ディスク再生装置に有 線で転送し、 ディスク再生装置では、 そのようにして転送されてくる プログラムを、 入力インターフェース 4 0 8で受信し、 内蔵するメモ リ 40 6にィンストールすることができる。
さらに、 プログラムは、 1の CPUにより処理されるものであっても 良いし、 複数の CPUによって分散処理されるものであっても良い。
ドライブインターフェース 4 0 7は、 CPU4 0 5の制御の下、 ディ スクドライブ 40 9を制御し、 これにより、 バス 4 1 1を介して、 CP U4 0 5や、 メモリ 4 0 6、 ビデオエンコーダ 4 0 3、 オーディオェ ンコーダ 404より供給されるデ一夕をディスクドライブ 4 0 9に対 して供給し、 ディスク 4 1 0に記録させる、 または、 ディスク 4 1 0 に記録されたデ一夕を読み出し、 バス 4 1 1を介して、 CPU4 0 5や 、 メモリ 4 0 6に供給する。 .
入力インターフェース 40 8は、 図示せぬキー (ポタン) や、 リモ コン (リモートコントロールコマンダ) がユーザに操作されることに よって供給される信号を受信し、 バス 4 1 1を介して、 CPU40 5に 供給する。 なお、 入力インターフェース 4 0 8は、 その他、 例えば、 モテム (ADSL (Asymmetric Digital Subscriber Line)モデムを含む) や、 N'IC(Network Interface Card)などの通信インタ一フェースとし ても機能する。
なお、 ビデオ入力装置とオーディオ入力装置からのディスク記録装 置へのビデオデータとオーディォデータの供給は、 有線または無線の いずれによって行うことも可能である。
ディスクドライブ 4 0 9には、 ディスク 4 1 0が着脱可能にな て いる。 ディスクドライブ 4 0 9は、 図示せぬインタ一フェースを内蔵 し、 そのインタ一フェースを通じて、 ドライブインターフェース 4 0 7に接続されている。 ディスクドライブ 4 0 9は、 そこに装着された ディスク 4 1 0を駆動し、 ドライブインターフェース 4 0 7からの記 録等の命令にしたがって、 ディスク 4 1 0にデータを記録する等の処 理を行う。
なお、 ディスク 4 1 0に記録されるデータ (記録データ) には、 必 要に応じて、 コンピュータが実行可能なプログラムも含まれる。 また 、 本実施の形態では、 記録媒体として、 ディスク状の記録媒体である ディスク 4 1 0を採用するが、 その他、 記録媒体としては、 例えば、 半導体メモリや、 テープ状の記録媒体であってもよい。
バス 4 1 1には、 CPU Cen t ra l Process i ng Un i t) 4 0 5、 メモリ 4 0 6、 ドライブインターフェース 4 0 7、 入力インターフェース 4 0 8、 ビデオエンコーダ 4 0 3、 オーディオエンコーダ 4 0 4、 ビデオ 入力インターフェース 4 0 1、 オーディォ入カインタ一フェース 4 0 2が接続されている。
次に、 第 6 1図を参照して、 本発明のデータ符号化方法を具現化し たディスク記録装置により実現される機能について説明する。 この図 に示すディスク記録装置により実現される機能において、 オーディォ エンコーダ^: 0 はオーディォ入力端子 4 0 0 Bおよびオーディォ入 カイ タ一フェース 4 0 2を介して入力されたオーディォ信号を圧縮 符号化して多重化器 4 2 1に出力する。
また、 ビデオエンコーダ 4 0 3はビデオ入力端子 4 0 0 Aおよびビ デォ入カインターフェ一ス 4 0 1を介して入力されたビデオ信号を圧 縮符号化して多重化器 4 2 1に出力する。
多重化器 4 2 1は、 入力された MPEG 2ビデオストリームと MPEG ォ —ディォストリームをバケツト化して、 上述した第 1 8図 Αおよび第 1 8図 B乃至第 2 7図を用いて説明したように時分割多重化している 。 多重化器 4 2 1は、 ストリーム中のイントラピクチャを選び、 およ そ 1秒に 2回程度の頻度で第 2 6図に示す private_stream_2の PES_pack et()を揷入する。
多重化器 4 2 1は、 多重化ストリームを、 FIF04 2 2を経由して RA PI書換器 42 4に出力するとともに、 RAPI情報抽出器 4 2 3にも同時 に出力する。 RAPI情報抽出器 42 3では、 多重化ストリームに多重化 されたビデオストリームのなかの private_stream_2の PES_packet ()の 開始位置と、 private一 stream_2の PES— packet 0直後に置かれているィ ントラピクチャの持つタイムスタンプ (PTS) 値、 及び該当イントラ ピクチャと、 それにつづく 2枚目、 3枚目、 4枚目の参照画像の終了位 置を検出し、 記憶する。
なお、 ここでいう RAP1とは、 private_stream— 2の PES_packet ()のこ とである。
RAPI情報抽出器 4 2 3は検出した該当イントラピクチャと、 それに つづく 2枚目、 3枚目、 4枚目の参照画像の終了位置を RAPI書換器 4 2 4に出力する。 RAPI書換器 4 2 4では、 RAPIの情報として第 2 6図の lstRef_picture, 2ndRef_picture, 3rdRef_picture> 4thReし pic ture のフィール'ドが上書きされ、 それぞれ先頭、 2枚目、 3枚目、 4枚目の 参照 1®像の終了位置が、 セクタ単位の数値で記録され、 出力サーバ 4 2 6に蓄積される。
コントローラ 4 2 5は、 多重化ストリーム全体の処理が終了すると 、 RAPI情報抽出器 42 3で抽出、 蓄積された、 多重化ストリームに多 重化されたすべての RAP Iの開始位置と、 RAP I直後に置かれているィン トラピクチャ及びそれにつづく 2枚目、 3枚目、 4枚目の参照画像の終 了位置を取得する。 ·' コント口一ラ 4 2 5は、 入力された情報を使用して、 第 1 6図を用 いて説明した EP—map Oを作成する。
コントローラ 4 2 5は、 RAP I情報抽出器 4 2 3から入力されたデー タから、 RAP Iに対して、 そのアドレス、 直後のイントラピクチャの持 つ PTS、 そしてイントラピクチャ及びそれにつづく 2枚目、 3枚目、 4枚 目の参照画像の終了位置のうちの 1を選び出して、 クリップ情報ファ ィル内の EPjnap Oを作成し、 出力サーバ 4 2 6に蓄積する。
ここで、 第 6 2図のフローチャートを参照して、 EP_map 0 生成処 理について説明する。
ステツプ S 3 8 1において、 ビデオエンコーダ 4 0 3はビデオ入力 端子 4 0 0 Aおよびビデオ入カイン夕一フェース 4 0 1を介して入力 されたビデオ信号を圧縮符号化して多重化器 4 2 1に出力する。 また 、 オーディオエンコーダ 4 0 4はオーディオ入力端子 4 0 0 Bおよび オーディォ入カイン夕ーフェース 4 0 2.を介して入力されたオーディ ォ信号を圧縮符号化して多重化器 4 2 1に出力する。 この場合、 ォー ディォエンコーダ 4 0 4から出力されるストリームは、 MPEG 2ォ一デ ィォストリ一ムとされ、 ビデオエンコーダ 4 0 3から出力されるスト リームは、 MPEG 2ビデオストリームとされる。
ステップ S 3 8 2において、 多重化器 4 2 1は、 入力された MPEG 2 ビデオストリームと MPEG 2オーディォストリームをバケツト化して、 第 1 8図 Aおよび第 1 8図 B乃至第 2 7図を用いて説明したように時 分割多重化 (パケタイズ) し、 ストリーム中のイントラピクチャを選 び、 およそ 1秒に 2回程度の頻度で第 2 6図に示す pr i va t e_s t ream_2の PES_packet ()を挿入する。 ここで pr ivate_stream_2の PES_packet 0は 、 他のピクチャを参照しなくてもデコード可能なビデオのィントラピ クチャが直後に置かれていることを示している。 このとき、 該当イン トラピクチャにはタイムスタンプ (PTS/DTS) が必ず付与される。 なお、 この段階では、 第 2 6図で説明した IstRef— picture, 2ndRef — picture、 3rdRef— picture、 4thRef— pictureのフィー レドにまデ一夕 が記録されていない。 さらに、 図示されていないが、 サブタイ トルス トリームを多重化器 4 2 1に入力して、 ビデオストリーム、 オーディ ォストリームと共に多重化してもよい。
ステツプ S 3 8 3において、 多重化器 4 2 1は、 多重化ストリーム を、 FIF04 2 2を経由して RAPI書換器 424に出力するとともに、 RA PI情報抽出器 42 3にも同時に出力する。 RAPI情報抽出器 4 2 3では 、 多重化ス卜リームに多重化されたビデオストリームのなかの privat e一 stream_2の PES_packet 0の開始位置と、 private— stream— 2の PES_pa cketO直後に置かれているイントラピクチャの持つタイムスタンプ ( PTS) 値、 及び該当イントラピクチャと、 それにつづく 2枚目、 3枚目 、 4枚目の参照画像の終了位置を検出し、 記憶する。
さらに、 RAPI情報抽出器 42 3は検出した該当イントラピクチャと 、 それにつづく 2枚目、 3枚目、 4枚目の参照画像の終了位置を RAPI書 換器 42 4に出力する。 RAPI書換器 42 4は、 RAPIの情報、 うち第 2 6図の IstRef一 picture, 2ndReし picture, 3rdRef— picture, 4thRef_p ictureのフィールドを上書きし、 それぞれ先頭、 2枚目、 3枚目、 4枚 目の参照画像の終了位置を、 セクタ単位の数値で記録し、 さらに出力 サーバ 4 2 6に蓄積させる。
ステップ S 3 8 5において、 RAPI情報抽出器 42 3で抽出、 蓄積さ れた、 多重化ストリームに多重化されたすべての RAPIの開始位置と、 RAPI直後に置かれているィントラピクチャ及びそれにつづく 2枚目、 3 枚目、 4枚目の参照画像の終了位置が、 コントローラ 4 2 5に入: ήさ れる。
コントローラ 42 5は、 入力された情報を使用して、 第 1 6図を用 いて説明した EPjnapOを作成する。 ここで作成する EPjnapOはビデオ ストリームのみの情報が含まれているとする。 ビデオに関する EP—map 0は、 ストリーム中に置かれた全ての RAPI、 すなわち private_stream — 2の PES—packetOの位置であり、 この情報は RAPI情報抽出器 42 3か らコントローラ 42 5に入力された情報で作成される。
より詳細には、 コントローラ 42 5は、 RAPI情報抽出器 42 3から 入力されたデ一夕から、 RAPIに対して、 そのアドレス、 直後のイント ラピクチャの持つ PTS、 そしてイントラピクチャ及びそれにつづく 2枚 目、 3枚目、 4枚目の参照画像の終了位置のうちの 1を選び出して、 ク リップ情報ファイル内の EPjnapOを作成し、 出力サーバ 426に蓄積 する。 すなわち、 コント口一ラ 42 5は、 4点の参照画像終了位置 ( IstReし Picture, 2ndRef_Picture> 3rdReし Picture, 4thRef— Picture ) のうち、 所定のセクタ数 (エンコード.処理において、 まとめて読出 可能なセクタ数) に近い値を、 N- th一 Ref_picture一 copyにコピ一する ステップ S 3 8 6において、 コントローラ 42 5は、 N- th_Ref_pic ture_copyに基づいて、 indexjninuslを決定し記録し、 ディスク 4 1 0に記録させる。 ここでは、 出力サーバ 426に蓄積されたストリ一 ムデ一夕とデータべ一ス系のファイルは、 ドライブインタ一フェース 407よりディスクドライブ 409に供給されて、 ディスク 4 1 0に 記録される。
以上の処理により、 第 3 1図で示されるように EP mapが生成される [IstReし Picture、 2ndRef—Picture、 3rdReし Picture, 4thReiJPic tureの使い方]
次に、 第 6 3図のフローチャートを参照して、 第 3 1図の EPjnapO を用いた早送り再生処理について説明する。
図示せぬユーザがビデオコンテンツ再生プログラム 2 1 0に対して 早送りを指令したとする。 プレイヤ制御モジュール 2 1 2は再生中の ストリームのクリップ情報ファイルから、 EPjnapOに登録されている 再生可能開始位置の 1を選択し (ステップ S 3 9 1) 、 そこに記述さ れている RPN_EP_startから、 N- th_Reし Pic ture_copyだけの大きさか らの読み出しデータを決定する (ステップ S 3 9 2) 。 プレイヤ制御 モジュール 2 1 2は、 この情報をコンテンツデ一夕供給モジュール 2 1 3に伝え、 さらにデコード制御モジュール 2 14に対して早送り再 生を指示する。
コンテンツデータ供給モジュール 2 1 3は、 オペレーティングシス テム 20 1の機能を使用して、 再生対象のエレメン夕リストリームが 多重化されたプログラムストリームが格納されたクリップス卜リーム ファイルを読み出してバッファ制御モジュール 2 1 5に供給させる ( ステップ S 3 9 3) 。 既にファイル名等は指示してあるので、 ここで は繰り返さない。 再生開始時とは異なり、 読み込み開始のアドレスと 転送するデータの大きさを伝えて読み込みを指示する。
ビデオ読み出し機能部 2 33は、 バッファ制御モジュール 2 1 5に 入力された多重化データを多重化分離し (ステップ S 3 94) 、 ビデ ォストリームのみをビデオデコーダ制御モジュール 2 1 6に供給する 。 この場合、 早送りの処理であるため、 オーディオデコーダ制御モジ ユール 2 1 7、 字幕デコーダ制御モジュール 2 1 8、 オーディオ読み 出し機能部 234、 字幕読み出し機能部 2 3 3は動作しない。
入力されたデータには、 1枚以上 4枚以下の参照画像が含まれ七い る。 ここで、 早送り処理では、 第 64図のフローチャートを参照して 説明するエントリポイント選定処理 (ステップ S 3 9 5 ) により選定 されたエントリポイントに基づいて、 参照画像のみがデコードされて 表示されるが、 デコード制御モジュール 2 1 4にはあらかじめ index_ N_minuslが送られており、 デコード制御モジュール 2 14は指定され た数だけの参照画像をデコードし、 順次後段に送って表示させる (ス テツプ S 396 ) 。
表示が終了すると、 プレイヤ制御モジュール 2 1 2は、 次に表示す る EP_map()ェントリポィントを選択し、 上記に説明したことを繰り返 すことによって早送り画像を出力する (ステップ S 39 7 ) 。
このとき、 次に表示する EP_nia0O内のジャンプ先のェントリポイン トを選択する際に、 index_N_minuslを使用する方法を説明する。 既に 説明したように index— Iminuslは N - th_Ref— Picture—copyまで読み込 んだときに、 そのデ一夕に含まれる参照画像の枚数を示している。 第 3 1図のデ一タ例では、 1番目、 および 3番目のエントリポイントで は indexJLminuxlは 0であるから、 イントラピクチャ 1枚であり、 2 番目、 および 4番目のエントリポイントでは、 index_Njninuslは 3で あるから、 4枚の参照画像が含まれている。
早送り画像は、 2枚以上の参照画像が出力されることにより、 その 主観品質が高まるという性質がある。 しかしながら、 多くの参照画像 を出力するためにはデータ読み出し量を多くする必要があり、 更新の 頻度が遅くなるという トレードオフの関係にある。 このため、 プレイ ャ制御モジュール 2 1 2は次に表示する EPjnapO内のエントリポイン トを選択するにあたり、 index N minuslの値を評価する。 すなわち、 早送りの速度が早いときには、 EP_map()内のエントリポ ィントの間引き間隔が大きくなるが、 その際に index— Njninuslが き いもの (すなわち、 主観画質の高くなるもの) を優先的に選択する。 また、 早送りの速度が遅いときには、 index_N_ininuslの小さいものも 選択する。
上記に説明した i ndex_N_m i nu s 1決定のアルゴリズムでは、 N- 1 h— Re f — picture_copyの値が" 30"に近いものを選択している。 すなわち、 こ のようなアルゴリズムの下で作成された EPjnap 0では、 N- 1 h_Re f_p i c ture_copyの通りに読み出すときにデ一夕読み出し量がほぼ" 30"セク 夕になる。 デ一夕読み出し速度が支配的な場合には、 一定の読み出し 時間であることが重要であるため、 こういうエントリポイントを選択 する方法も有効である。 '
次に、 第 64図のフローチャートを参照して、 早送り時のエントリ ボイントの選択処理について説明する。
プレイヤ制御モジュール 2 1 2は、 ステップ S 40 1で、 早送りの モードが高速モードかあるいは低速モードか否かを判定する。 早送り が高速モードであると判定された場合、 .処理は、 ステップ S 40 2に 進み、 低速モードであると判定された場合、 処理は、 ステップ S 4 1 1に進む。
<低速モード早送りの場合の選択の説明 >
ステップ S 402では、 プレイヤ制御モジュール 2 1 2は、 早送り が低速モードであるため、 選択するエントリポイントの番号 (該当ェ ントリ (N) ) を前回の該当エントリから 2だけインクリメントする (該当エントリ番号 + = 2 ) 。 そして、 ステップ S 40 3において、 プレイヤ制御モジュール 2 1 2は、 該当エントリ N、 1前のエントリ (N— 1 ) 、 1先のエントリ (N+ 1 ) から index Njninuslを読み取 る。
ステップ S 404では、 プレイヤ制御モジュール 2 1 2は、 in(fe_N _minus(N)、 すなわち N番目のェントリポイントの持つ index一 Njni'nus 1の値が 0あるいは 1であるか否かを判定する。 ステツプ S 404にお いて、 例えば、 index_N_niinuslの値が 0あるいは 1であった場合、 処理 は、 ステップ S 40 5に進み、 プレイヤ制御モジュール 2 1 2は、 N 番目のエントリポイントを選定して処理を終了する。 一方、 ステップ S 404において、 index_N_minuslの値が 0でも 1でも無い場合、 処理 は、 ステップ S 40 6に進む。
ステップ S 40 6では、 プレイヤ制御モジュール 2 1 2は、 inde_N —minus (N+1)、 すなわち(N + 1)番目のエントリポイントの持つ index__N — minuslの値が、 0あるいは 1であるか否かを判定する。 ステップ S 4 06において、 inde— N_minus(N+l)が、 0あるいは 1であった場合、 処 理は、 ステップ S 40 7に進み、 プレイヤ制御モジュール 2 1 2は、 (N + 1)番目のエントリポイントを選定して処理を終了する。 一方、 ス テツプ S 40 6において、 inde_N_minus (N+1)が、 0でも 1でも無い場 合、 処理は、 ステップ S 408に進む。 .
ステップ S 40 8では、 プレイヤ制御モジュール 2 1 2は、 inde_N _minus(N-l), すなわち(N-1)番目のエントリポイントの持つ index_N jninuslの値が 0あるいは 1であるか否かを判定する。 ステップ S 40 8において、 index_N_minuslの値が 0あるいは 1であった場合、 処理は 、 ステップ S 40 9に進み、 プレイヤ制御モジュール 2 1 2は、 (N- 1)番目のエントリボイントを選定して処理を終了する。 0でも 1でも無 い場合にはステツプ S 4 1 0に進む。
ステップ S 4 1 0ではエントリ N、 (N+1), (N- 1)の全てのエントリ ボイントにおいて index— N minuslが 0でも 1でもないことが判明してい ることになるので、 プレイヤ制御モジュール 2 1 2は、 N番目のェン トリポイントを選定して処理を終了する。
<高速モード早送りの場合の選択の説明 >
ステップ S 4 1 1では、 早送りが高速モードであるため、 プレイヤ 制御モジュール 2 1 2は、 選択するエントリポイントの番号 (該当ェ ントリ) (N) を前回の該当エントリポイントから 5だけインクリメ ン卜する。 (該当ェントリ番号 + = 5) 。 そしてステップ S 4 1 2に おいて、 プレイヤ制御モジュール 2 1 2は、 該当エントリ N、 1前の エントリ (N— 1 ) 、 1先のエントリ (N+ 1 ) から index_N— minus 1 を読み取る。
ステップ S 4 1 3では、 プレイヤ制御モジュール 2 1 2は、 inde_N _minus(N)、 すなわち N番目のェントリポイン卜の持つ index_N_minus 1の値が 3あるいは 2であるか否かを判定する。 ステツプ S 4 1 3にお いて、 N番目のェントリポィン卜の持つ index— N— minuslの値が 3ある いは 2であった場合、 処理は、 ステップ S 4 1 4に進み、 プレイヤ制 御モジュール 2 1 2は、 N番目のェントリポィン卜を選定して処理を 終了する。 ステップ S 4 1 3において、 . N番目のエントリの持つ inde x_Njninuslの値が 3でも 2でも無い場合、 処理は、 ステップ S 4 1 5に 進む。
ステップ S 4 1 5では、 プレイヤ制御モジュール 2 1 2は、 inde_N _minus(N+l)、 すなわち(N + 1)番目のエントリポイントの持つ index— N jninuslの値が 3あるいは 2であるか否かを判定する。 ステップ S 4 1 5において、 (N + 1)番目のエントリポイン卜の持つ index_N_minuslの 値が 3あるいは 2であった場合、 処理は、 ステップ S 4 1 6に進み、 プ レイヤ制御モジュール 2 1 2は、 (N + 1)番目のエントリポイントを選 定して処理を終了する。 一方、 ステップ S 4 1 5において、 (NH)番 目のェントリポイン卜の持つ index_N_minuslの値が、 3でも 2でも無い 場合、 処理は、 ステップ S 41 7に進む。
ステップ S 4 1 7では、 プレイヤ制御モジュール 2 1 2は、 inde_N —minus (N-1)、 すなわち(N-1)番目のェントリポイン卜の持つ index— N — minuslの値が 3あるいは 2であるか否かを判定する。 ステップ S 4 1 7において、 (N-1)番目のエントリポイントの持つ index_N_minuslの 値が 3あるいは 2であった場合、 処理は、 ステップ S 4 1 8に進み、 プ レイヤ制御モジュール 2 1 2は、 (N-1)番目のエントリポイントを選 定して処理を終了する。 3でも 2でも無い場合にはステップ S 4 1 9に 進む。
ステップ S 4 1 9では N、 (N+1), (N-1)の全てのエントリにおいて i ndexJLminuslが 3で 2でもないことが判明していることになるので、 プレイヤ制御モジュール 2 1 2は、 N番目のエントリポイントを選定 して処理を終了する。
すなわち、 早送りの速度が早いときには、 EP_map()内のエントリポ イン卜の間引き間隔が大きくなるが、 その際に i ndex_N_m i nus 1が大き いもの (すなわち、 主観画質の高くなる.もの) を優先的に選択する。 また、 早送りの速度が遅いときには、 indexJUninuslの小さいものも 選択する。
以上の処理により、 主観画質を低下させること無く、 高速で早送り 再生を実現させるようにすることが可能となる。 また、 低速の早送り 再生では、 より多くの参照画像を用いて早送り再生させることが可能 となるので、 再生画像の画質の低減を抑制することが可能となる。 以上の例においては、 再生処理において、 読み出されるエントリポ イントの情報は、 常に一定であることが前提となるが、 このような場 合、 処理能力の高いディスク再生装置では、 多くのエントリポイント が読み出されることで再生画像を向上させることが可能となるが、 一 方で、 処理能力の低いディスク再生装置で読み込むェントリポイ ト の情報を大量にすると、 処理速度が遅れてしまう恐れがある。 そこで 、 読み込むエントリポイントの情報にプライオリティを設定し、 高い 処理能力を持つディスク再生装置では、 全てのエントリポイントの情 報を用いるようにし、 逆に、 処理能力の低いディスク再生装置では、 プライオリティの高いエントリボイントのみを読み出して処理するよ うにしても良い。
第 6 5図は、 エントリポイントにプライオリティを設定するように した、 ディスク記録装置の機能を説明する機能ブロック図である。 尚 、 第 6 5図のディスク記録装置において、 第 6 1図のディスク記録装 置の機能と同一の機能については、 同一の符号を付しており、 その説 明は、 適宜省略するものとする。
Sub t i t l eエンコーダ 4 4 3は、 字幕素材サーバ 4 4 2より字幕の素 材を読み取り、 圧縮符号化して字幕データサーバ 4 4 4に書き込む。 字幕デ一夕はビデオデータやオーディォデータとは異なり、 時間軸上 に間欠的に存在している。 このため、 字幕素材サーバ 4 4 2に記録さ れた字幕素材および字幕データサーバ 4 4 4に記録された字幕データ のそれぞれの表示開始時刻及び表示 dura t i onは字幕夕イミング情報 4 4 5に用意される。
多重化器 4 4 1は、 第 6 1図の多重化器 4 2 1と基本的には同様の 機能を有するが、 さらに、 字幕データと字幕タイミング情報を多重化 する。 すなわち、 多重化器 4 4 1は、 入力された MPEG 2ビデオストリ ームと MPEG 2オーディォストリーム、 および字幕データサーバ 4 4 4 から供給された字幕データと字幕夕イミング情報 4 4 5を読み込み、 上述した第 1 8図 Aおよび第 1 8図 B乃至第 2 7図を用いて説明した ように時分割多重化している。
多重化器 44 1は、 ストリーム中のイントラピクチャを選び、 ょ そ 1秒に 2回程度の頻度で第 2 3図に示す private_stream_2の PES_pack et()を挿入する。 ここで private_stream_2の PES_packet 0は、 他のピ クチャを参照しなくてもデコ一ド可能なビデオのィントラピクチャが 直後に置かれていることを示している。 このとき、 該当イントラピク チヤにはタイムスタンプ (PTS/DTS) が必ず付与される。
また、 字幕デ一夕の全てのアクセスュニッ 卜にはタイムスタンプが 必ず付与されている。
なお、 この段階では、 第 2 6図で説明した Is ef_piciure、 2ndRef _picture、 3rdRef_pic ture> 4thRei— pictureのフィー レドにまテータ が記録されていない。 さらに、 図示されていないが、 サブタイトルス トリームを多重化器 44 1に入力して、 ビデオストリーム、 オーディ ォストリームと共に多重化してもよい。
多重化器 44 1は、 多重化ストリームを FIF04 2 2を経由して RAPI 書換器 4 24に供給するとともに、 RAPI情報抽出器 4 2 3にも同時に 供給する。 PI情報抽出器 4 2 3は、 多重化ストリームに多重化され たビデオストリームの情報と字幕ストリームの情報を抽出し記憶する 。 すなわち、 RAPI情報抽出器 42 3は、 ビデオストリームに関しては private— s eam— 2の PES— packet 0の開始位置と、 pr ivate_s tream_2の PES一 packet ()直後に置かれているィントラピクチヤの持つタイムス夕 ンプ (P T S) 値、 及び該当イントラピクチャと、 それにつづく 2枚 目、 3枚目、 4枚目の参照画像の終了位置を検出し、 記憶する。 また、 字幕ス卜リームに関しては、 全ての字幕アクセスュニッ 卜の開始位置 とタイムスタンプを検出し、 記憶する。
コントローラ 44 6は入力された情報を使用して、 例えば、 第 6 6 図で示されるような EP_map 0を作成する。 ここで作成する EP_map 0は ビデオストリームと字幕ストリームに関する情報が含まれているとす る。 ビデオに関する EPjnapOの主たる情報は、 ストリーム中に置かれ た全ての RAP I、 すなわち private— 3 6&111ー2の?£3_0&^^10の位置と直 後のイントラピクチャのタイムスタンプであり、 これらの情報は RAPI 情報抽出器 42 3からコントローラ 44 6に入力した情報で作成する ことができる。 また、 字幕に関する EPjnapOの主たる情報は、 字幕ァ クセスュニットの位置とタイムスタンプであり、 これらの情報も RAP I 情報抽出器 4 2 3からコントローラ 44 6に入力した情報で作成する ことができる。
コントローラ 44 6は RAPI情報抽出器 42 3から入力されたデータ から、 EPjnapOの情報のうち、 まだ確定していない後述する prioirty —flagを作成する。 すなわち、 全てのビデオのエントリポイント (RAP Iのェントリポィント) および字幕アクセスュニッ卜に対してその夕 ィムスタンプを評価し (後述する) priority— flagを設定する。 コン トロ一ラ 446にはこのためにチヤプ夕 ·シーンチェンジ情報 44 7 が入力されている。 .
[EP_mapの説明]
ここで、 第 6 6図を参照して、 ファイルにプライオリティを設定す るときの EPjnapについて説明する。 第 6 6図で示されるように、 numb er— 0し EP— ent r iesの後には、 その直刖の s t ream_idと pr ivate— s tream— idで特定されるエレメン夕リストリームのデコ一ド開始可能点の情報 としての prior i ty— flag (2ビッ卜) と reserved— for— future— use (14 ビット) 、 さらに PTS—EP— start (32ビット) と RPN_EP— s tar t (32ビッ ト) とのセットが、 number— oし EP_entriesが表す数だけ繰り返し配置 される。 priority_flagは、 第 6 7図で示されるような意味を持つ。 すなわ ち、 ビデオストリームのエントリでは、 priority_flagの値が 3の場合 、 そのエントリがチヤプ夕先頭に対応していることを示す。 また、 ' pr iority_flagの値が 2の場合、 上記以外で 1分おきの重要なシーンチェ ンジに該当するのエントリであることを示す。 また priority_flagの 値が 1の場合は、 上記以外でシーンチェンジに該当する 3秒おきのェン トリであることを示す。 また、 それ以外のエントリは全て priority— f lagの値が 0であるとする。
Subtitleストリームに対応するェントリも同様に、 priority_f lag の値が 3の場合、 そのエントリがチヤプタ先頭に対応していることを 示す。 また、 priority一 flagの値が 2の場合、 上記以外で重要なシーン チェンジに該当するェントリであることを示す。 また priority— flag の値が 1の場合、 上記以外でシーンチェンジに該当するェントリであ ることを示す。 また、 それ以外のエントリは全て priori ty_f lagの値 が 0であるとする。
例えば、 このクリップが 2時間の映画であり、 1秒に 2回のランダム アクセスボイントが存在するならば、 ェ.ントリ数は全体で 14400(= 2 時間 X 3 6 0 0秒 X 2回)となる。 また、 チヤプ夕数が、 およそ数十 であるとした場合、 priority一 flag=3のェントリは数十個の同数とな る。 重要なシーンチェンジ (priori ty一 flag=2) とその他のシーンチ ェンジ (priority_flag=l) の数はコンテンツに依存するためにー概 には言えないが、 priority一 flag=3あるいは 2のエントリは約 200、 pri ority— f lag=3あるいは 2あるいは 1のェントリは約 2400、 その他全てを 含めると全部で 14400となるここでは例えば prioiry_flag=2のものと = 1のものの総計が 1000であったとする。 この場合、 priority一 flag=3, 2, 1のエントリだけを読み込むことにすると、 全部を読み込んだ場合 に比べて約 1000/14, 400= 14分の 1のメモリ量となる。 またこの例で はひとつのェントリが 10バイトなので一本のビデオストリームに舟し て、 10バイ ト X (14400-1000) = 120134キロバイ トのメモリを節約す ることが可能となる。
また、 字幕に関しては 2時間の映画に対して 1000から 2000の字幕が 存在するといわれており、 これに対してチヤプ夕は数十なので、 prio rity_flag=3のェントリだけを読み込むとすると数十を 1000あるいは 2 000で除して数十分の一のメモリに節約することが可能となる。 字幕 ストリームはビデオストリームに比べて本数が多くなるため、 削減効 果も十分である。
なお、 この例ではフラグを 3, 2, 1, 0の値で示しているが、 それぞ れをビットで表現し、 対応するピットを 1とセッ トするという方法も 考えられる。 すなわち、 このフィールドを 3ビッ トとし、 最上位ビッ 卜が 1の場合にはチヤプタ先頭であることを示し、 次のビッ卜が 1の場 合には 1分おきのエントリであることを示し、 最下位ビットが 1の場合 には 5秒おきのェントリであることを示し、 全てのビッ卜が 0であれば 、 それら三つのカテゴリに含まれないと定義することも考えられる。
Subtitleストリームに対応するェントリでは、 priority一 flagの値 が 1の場合にはそのェントリがチヤプタ先頭に対応していることを示 す。 それ以外のエントリでは全て priority—flagの値が 0であるとする 次に、 第 6 8図のフローチャートを参照して、 01^0 1 ー &8設定 処理について説明する。
ステップ S 44 1において、 コントローラ 44 6は、 ビデオのェン トリに対して、 ビデオのチヤプ夕の先頭位置であるか否か、 すなわち 、 評価中のェントリがチヤプ夕 · シーンチェンジ情報 447にあるチ ャプ夕の時刻に該当しているか否かを判定する。 ここで該当している とは差分が 0と定義する。 例えば、 チヤプ夕の時刻に該当してい 場 合、 ステップ S 442において、 コントローラ 446は、 priori^— f lag=3として設定し出力サーバ 426に記憶させる。
一方、 ステップ S 44 1において、 ビデオのチヤプ夕の先頭位置で はないと判定された場合、 ステップ S 443において、 コントローラ 446は、 ビデオの重要なシーンチェンジの位置であるか否か、 すな わち、 次に評価中のェントリがチヤプタ · シーンチェンジ情報 447 にある 「重要なシーンチェンジ」 先頭から 1分おきの位置に該当する か否かを判定する。 ステップ S 443において、 例えば、 「重要なシ ーンチェンジ」 先頭から 1分おきの位置に該当している場合、 ステツ プ S 444において、 コントローラ 446は、 priority— flag=2に設 定する。
ステップ S 443において、 重要なシーンチェンジではないと判定 された場合、 ステップ S 445において、 コントローラ 446は、 ビ デォの通常のシーンチェンジであるか否か、 すなわち、 次に評価中の ェントリがチヤプ夕 · シーンチェンジ情.報 447にある 「シーンチェ ンジ」 の先頭から 3秒おきの位置に該当するか否かを判定する。 ステ ップ S 445において、 例えば、 「シーンチェンジ」 の先頭から 3秒 おきの位置に該当している場合、 ステップ S 446において、 コント 口一ラ 446は、 priority_flag=lに設定する。
ステップ S 445において、 通常のシーンチェンジではないと判定 された場合、 すなわち、 いずれのシーンチェンジにも該当しないと判 定された場合、 ステップ S 447において、 コントローラ 446は、 priori
Figure imgf000216_0001
に設定する。
ステップ S 448において、 コントローラ 446は、 全てのビデオ の全てのェントリについて処理が終了したか否かを判定し、 終了して いないと判定された場合、 処理は、 ステップ S 4 4 1に戻り、 そ 以 降の処理が繰り返される。 すなわち、 ビデオのエントリについて全て の pr i or ny_f l agが設定されるまで、 ステップ S 4 4 1乃至 S 4 4 8 の処理が繰り返される。
そして、 ステップ S 4 4 8において、 全ての処理が終了したと判定 された場合、 すなわち、 ビデオの全てのエントリについての処理が終 了したと判定された場合、 その処理は、 ステップ S 4 4 9に進む。 ステップ S 4 4 9において、 コントローラ 4 4 6は、 字幕に関して 、 エントリがチヤプタ先頭位置に該当するか否か、 すなわち、 評価中 のェントリがチヤプ夕 · シーンチェンジ情報 4 4 7にあるチヤプ夕の 時刻に該当しているか否かを判定する。 ステップ S 4 4 9において、 ェントリがチヤプ夕の時刻に該当している場合、 ステップ S 4 5 0に おいて、 コントローラ 4 4 6は、 pr i or i ty_f l ag=3に設定する。
一方、 ステップ S 4 4 9において、 字幕のチヤプ夕の先頭位置では ないと判定された場合、 ステップ S 4 5 1において、 コントローラ 4 4 6は、 字幕の重要なシーンチェンジの.位置であるか否か、 すなわち 、 次に評価中のェントリがチヤプタ · シーンチェンジ情報 4 4 7にあ る 「重要なシーンチェンジ」 先頭から 1分おきの位置に該当するか否 かを判定する。 ステップ S 4 5 1において、 例えば、 「重要なシーン チェンジ」 先頭から 1分おきの位置に該当している場合、 ステップ S 4 5 2において、 コントローラ 4 4 6は、 pr i or i ty—f l ag= 2に設定す る。
ステップ S 4 5 1において、 重要なシーンチェンジではないと判定 された場合、 ステップ S 4 5 3において、 コントローラ 4 4 6は、 字 幕の通常のシーンチェンジであるか否か、 すなわち、 次に評価中のェ ントリがチヤプタ · シーンチェンジ情報 447にある 「シーンチェン ジ」 の先頭から 3秒おきの位置に該当するか否かを判定する。 ス ッ プ S 45 3において、 例えば、 「シーンチェンジ」 の先頭から 3秒お きの位置に該当している場合、 ステップ S 454において、 コント口 —ラ 446は、 priority— flag=lに設定する。
ステツプ S 45 3において、 通常のシーンチェンジではないと判定 された場合、 すなわち、 いずれのシーンチェンジにも該当しないと判 定された場合、 ステップ S 45 5において、 コントローラ 446は、 priority_flag=0に設定する。
ステップ S 45 6において、 コントローラ 446は、 字幕の全ての ェントリについて処理が終了したか否かを判定し、 終了していないと 判定された場合、 処理は、 ステップ S 449に戻り、 それ以降の処理 が繰り返される。 すなわち、 字幕のエントリについて全ての priority — flagが設定されるまで、 ステップ S 449乃至 S 45 6の処理が繰 り返され、 ステップ S 456において、 字幕の全てのエントリについ て処理が終了したと判定されると、 コントローラ 446は、 第 66図 の構文に従った EPjnapOのデータを出力サーバ 426に対して出力す る。
[再生側の動作: EP_map()の間引き]
以上のように設定された priority一 flagに基づいて、 ディスク再生 装置は、 メモリ (例えば、 第 1図のメモリ 1 1 3) の大きさにより、 EPjnapOを間引く。 すなわち、 コストを削減するために機能を減らし ているディスク再生装置では、 高い値の priority— flagを持つェント リのみをメモリに残す。 もちろん、 メモリの容量が、 EP一 mapO全体を 保持することができるでけ確保している機器ではこのような作業を必 ずしも行う必要はない。 例えば、 第 3 3図のフローチャートにおけるステップ S 1 0 6の処 理において、 ビデオに関しては priority_flag=l以上のェントリ メ モリに保持し、 字幕に関しては priority_flag=l以上のェントリをメ モリに保持するとする。 この場合、 EP_map()の読み出しの際に、 stre am— idと private— stream_idの値により、 プレイヤ制御モジュール 2 1 2はストリームの種類がビデオであったとき、 priority一 flagの値が 3 , 2、 あるいは 1のエントリはメモリに読み込み、 priority_flagの値 が 0のェントリはメモリに読み込まない。 またストリームの種類が字 幕であった場合、 prioirty_flag=3および 21のエントリは読み込み、 p riority_flagの値が 1, 0のエントリは読み捨てる。
以上の処理を行うことにより、 一本のビデオストリームに対する EP _mapのために必要なメモリの容量は、 1/6乃至 1/10程度とすることが 可能となる。 また、 一本の字幕ストリームに対する EPjnapのために必 要なメモリ量はおよそ数十分の一程度とすることが可能となる。 結果 として、 低コストのディスク再生装置でも、 メモリの容量に応じてェ ントリを記憶させることができ、 効率的な再生処理を実現させること が可能となる。 .
なお、 ここでは priori ty一 flag=3をチヤプタ先頭と意味づけしてい るが、 チヤプタ先頭及び重要なシーンチェンジボイントなど任意の意 味に定義することが可能である。
なお、 本実施の形態では、 上述した一連の処理を、 ソフトウェアに よって行うこととしたが、 上述した一連の処理は、 専用のハードゥエ ァにより行うこともできる。
また、 本実施の形態では、 ビデオデコーダ 1 1 6 (第 1図) および ビデオエンコーダ 403 (第 60図) として、 ハードウェアデコーダ を採用することとしたが、 ビデオデコーダ 1 1 6およびビデオェンコ ーダ 4 0 3 (第 6 0図) としては、 ソフトウェアデコーダを採用する ことも可能である。 オーディオデコーダ 1 1 7 (第 1図) およびT— ディォエンコーダ 4 0 4 (第 6 0図) についても、 同様である。 ' さらに、 本実施の形態では、 字幕デコーダとして、 ソフトウェアデ コ一ダを採用することとしたが、 字幕デコーダとしては、 ハードゥエ アデコーダを採用することも可能である。
2
9

Claims

請 求 の 範 囲
1 . 処理データを所定のアクセスュニット毎に処理するデ一夕処¾装 置において、 ' 所定の変数を用いて時刻を計時するように構成された計時部と、 アクセスユニットのタイムスタンプの有無を検出し、 前記アクセス ュニッ卜にタイムスタンプがある場合、 前記タイムスタンプの値を前 記変数に代入し、 前記アクセスュニッ 卜にタイムスタンプがない場合 、 表示時間の情報を取得し、 取得された前記表示時間の情報により得 られる値を加算して、 前記変数を設定するように構成された設定部と を備えるデータ処理装置。
2 . 前記表示時間の情報は、 処理される前記処理データの 1フィール ドを単位とした表示時間を示す情報である
ことを特徴とする請求の範囲 1に記載のデータ処理装置。
3 . 前記処理データは、 ビデオデータまたは字幕データである 請求の範囲 1に記載のデータ処理装置。
4 . 前記設定部は、 前記表示時間の情報を取得した際に、 取得された 前記表示時間の情報により得られる値を.、 前記アクセスュニットの直 後のアクセスュニッ卜の表示を開始するタイミングで加算して、 前記 変数を設定する
請求の範囲 1に記載のデータ処理装置。
5 .. 前記設定部は、 前記表示時間の情報を取得した際に、 取得された 前記表示時間の情報により得られる値を、 前記アクセスュニッ卜の直 後のアクセスュニッ卜の表示を開始するタイミングで加算して、 前記 変数を設定する
請求の範囲 1に記載のデータ処理装置。
6 . 所定のアクセスュニッ卜に対して所定のマ一クタイムスタンプの 時刻で所定の処理を施すように構成されたマーク処理部をさらに備え 前記設定部は、 前記所定のアクセスュニッ トに対して所定の処理を 施すマークタイムスタンプの時刻が、 前記計時部により計時されてい る時刻から、 前記表示時間内の時刻であるとき、 前記計時部により計 時されている時刻が前記マークタイムスタンプの時刻となっているこ とを前記マーク処理部に対して通知し、 前記マーク処理部は、 前記通 知に基づいて、 前記所定のアクセスュニッ トに対して所定の処理を施 す
請求の範囲 1に記載のデータ処理装置。
7 . 前記マークタイムスタンプの時刻の最小間隔は、 前記アクセスュ ニッ トの最大表示時間である
請求の範囲 6に記載のデータ処理装置。
8 . 処理データを所定のアクセスュニッ ト毎に処理するデータ処理方 法において、
所定の変数を用いて時刻を計時する計時ステツプと、
アクセスュニッ トのタイムスタンプの有無を検出し、 前記アクセス ュニッ 卜にタイムスタンプがある場合、 前記タイムスタンプの値を前 記変数に代入し、 前記アクセスュニッ 卜にタイムスタンプがない場合 、 前記表示時間の情報を取得し、 取得された前記表示時間の情報によ り得られる値を加算して、 前記変数を設定する設定ステップと を含むデータ処理方法。
9 . 処理データを所定のアクセスュニッ ト毎に処理するデ一夕処理プ ログラムが記録されたプログラム記録媒体において、
所定の変数を用いて時刻を計時する計時ステツプと、
アクセスュニッ 卜のタイムスタンプの有無を検出し、 前記アクセス ュニッ 卜にタイムスタンプがある場合、 前記タイムスタンプの値を前 記変数に代入し、 前記アクセスュニッ 卜にタイムスタンプがない Λ合 、 前記表示時間の情報を取得し、 取得された前記表示時間の情報によ り得られる値を加算して、 前記変数を設定する設定ステップと を含むプログラムが記録されたプログラム記録媒体。
1 0 . 処理データを所定のアクセスュニッ 卜毎に処理するデータ処理 プログラムにおいて、
所定の変数を用いて時刻を計時する計時ステップと、
アクセスュニッ トのタイムスタンプの有無を検出し、 前記アクセス ユニッ トにタイムスタンプがある場合、 前記タイムスタンプの値を前 記変数に代入し、 前記アクセスュニッ 卜にタイムスタンプがない場合 、 前記表示時間の情報を取得し、 取得された前記表示時間の情報によ り得られる値を加算して、 前記変数を設定する設定ステップと を含む処理をコンピュータに実行させるプログラム。
1 1 . 所定の変数を用いて時刻を計時するように構成された計時部と 処理データが所定のアクセスュニッ ト.毎に処理される際に、 ァクセ スュニッ トのタイムスタンプの有無を検出し、 前記アクセスュニッ ト にタイムスタンプがある場合、 前記タイムスタンプの値を前記変数に 代入し、 前記アクセスユニッ トにタイムスタンプがない場合、 前記表 示時間の情報を取得し、 取得された前記表示時間の情報により得られ る値を加算して、 前記変数を設定するように構成された設定部と、 所定のアクセスュニッ トに対して所定のマークタイムスタンプの時 刻で所定の処理を施すように構成されたマーク処理部と
を備えるデータ処理装置により読み出されるデ一夕を記録するデー 夕記録媒体であって、 前記所定のアクセスュニッ卜に対して所定の時刻で所定の処理を施 すマークタイムスタンプを含むデ一夕が記録され、
前記マークタイムスタンプの時刻の最小間隔が、 前記アクセスュニ ッ卜の最大表示時間である
データ記録媒体。
1 2 . 所定の変数を用いて時刻を計時するように構成された計時部と 処理データが所定のアクセスュニッ卜毎に処理される際に、 ァクセ スュニッ 卜のタイムスタンプの有無を検出し、 前記アクセスュニット にタイムスタンプがある場合、 前記タイムスタンプの値を前記変数に 代入し、 前記アクセスユニットにタイムスタンプがない場合、 前記表 示時間の情報を取得し、 取得された前記表示時間の情報により得られ る値を加算して、 前記変数を設定するように構成された設定部と、 所定のアクセスュニットに対して所定のマークタイムスタンプの時 刻で所定の処理を施すように構成されたマーク処理部と
を備えるデータ処理装置により読み出されるデータのデ一夕構造で あって、 ,
前記所定のアクセスュニッ卜に対して所定の時刻で所定の処理を施 すマークタイムスタンプを含み、
前記マ一クタイムスタンプの時刻の最小間隔が、 前記アクセスュニ ットの最大表示時間である
つ "―夕構造。
PCT/JP2005/021070 2004-12-02 2005-11-10 データ処理装置およびデータ処理方法、プログラムおよびプログラム記録媒体、データ記録媒体、並びにデータ構造 WO2006059482A1 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
CA2588198A CA2588198C (en) 2004-12-02 2005-11-10 Data processing apparatus, data processing method, program, program record medium, data record medium, and data structure
US11/720,630 US8346059B2 (en) 2004-12-02 2005-11-10 Data processing device, data processing method, program, program recording medium, data recording medium, and data structure
CN2005800476816A CN101111897B (zh) 2004-12-02 2005-11-10 数据处理装置和数据处理方法
EP05803958A EP1818931A4 (en) 2004-12-02 2005-11-10 DATA PROCESSING DEVICE, DATA PROCESSING METHOD, PROGRAM RECORDING MEDIUM, DATA RECORDING MEDIUM E DATA STRUCTURE

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2004-350486 2004-12-02
JP2004350486A JP4536497B2 (ja) 2004-12-02 2004-12-02 データ処理装置およびデータ処理方法、プログラムおよびプログラム記録媒体、並びにデータ記録媒体

Publications (2)

Publication Number Publication Date
WO2006059482A1 true WO2006059482A1 (ja) 2006-06-08
WO2006059482A9 WO2006059482A9 (ja) 2006-09-14

Family

ID=36564917

Family Applications (1)

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

Country Status (8)

Country Link
US (1) US8346059B2 (ja)
EP (1) EP1818931A4 (ja)
JP (1) JP4536497B2 (ja)
KR (1) KR20070093970A (ja)
CN (1) CN101111897B (ja)
CA (1) CA2588198C (ja)
TW (1) TW200630973A (ja)
WO (1) WO2006059482A1 (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080025691A1 (en) * 2006-07-31 2008-01-31 Sharp Kabushiki Kaisha Content reproduction apparatus, content reproduction method, content reproduction system, content data sending apparatus, content data sending method, program, and storage medium
CN102957966B (zh) * 2011-08-19 2016-03-16 深圳市快播科技有限公司 一种播放器及用于播放器的视频帧内嵌时间的方法
US10893056B2 (en) * 2015-09-30 2021-01-12 Nokia Technologies Oy Message verification
CN107329156A (zh) * 2017-06-05 2017-11-07 千寻位置网络有限公司 一种卫星数据的处理方法及系统、定位终端、存储器
US10924641B2 (en) * 2017-07-10 2021-02-16 Ubiquiti Inc. Wearable video camera medallion with circular display
CN113597768A (zh) * 2019-01-28 2021-11-02 Op方案有限责任公司 扩展长期参考图片保留的在线和离线选择
CN111170110B (zh) * 2020-02-28 2021-04-30 深圳市通用互联科技有限责任公司 电梯数据处理方法、装置、计算机设备和存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10320914A (ja) * 1997-05-15 1998-12-04 Sanyo Electric Co Ltd 符号記録装置、符号多重方法
JP2002171490A (ja) * 1999-05-07 2002-06-14 Toshiba Corp ストリームデータのデータ構造、その記録方法およびその再生方法

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5815634A (en) 1994-09-30 1998-09-29 Cirrus Logic, Inc. Stream synchronization method and apparatus for MPEG playback system
JP3248380B2 (ja) * 1994-12-15 2002-01-21 ソニー株式会社 データ復号化装置およびデータ復号化方法
TW293981B (ja) * 1995-07-21 1996-12-21 Philips Electronics Nv
KR100247978B1 (ko) 1997-08-08 2000-03-15 윤종용 픽쳐 디코딩 동기화 회로 및 그 방법
WO2000049803A1 (fr) * 1999-02-18 2000-08-24 Kabushiki Kaisha Toshiba Support d'enregistrement pour flux de donnees, procede d'enregistrement et procede de reproduction associes
WO2000068946A1 (fr) * 1999-05-07 2000-11-16 Kabushiki Kaisha Toshiba Structure de donnees pour donnees en continu, et procede d'enregistrement et de reproduction de donnees en continu
JP2003230092A (ja) 2002-02-04 2003-08-15 Sony Corp 情報処理装置および方法、プログラム格納媒体、並びにプログラム
TWI310545B (en) * 2003-10-04 2009-06-01 Samsung Electronics Co Ltd Storage medium storing search information and reproducing apparatus
US7415470B2 (en) * 2004-08-12 2008-08-19 Oracle International Corporation Capturing and re-creating the state of a queue when migrating a session

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10320914A (ja) * 1997-05-15 1998-12-04 Sanyo Electric Co Ltd 符号記録装置、符号多重方法
JP2002171490A (ja) * 1999-05-07 2002-06-14 Toshiba Corp ストリームデータのデータ構造、その記録方法およびその再生方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See also references of EP1818931A4 *

Also Published As

Publication number Publication date
CN101111897A (zh) 2008-01-23
EP1818931A1 (en) 2007-08-15
US8346059B2 (en) 2013-01-01
EP1818931A4 (en) 2012-08-08
CN101111897B (zh) 2012-12-26
TW200630973A (en) 2006-09-01
US20090142043A1 (en) 2009-06-04
CA2588198A1 (en) 2006-06-08
WO2006059482A9 (ja) 2006-09-14
JP4536497B2 (ja) 2010-09-01
CA2588198C (en) 2013-01-08
KR20070093970A (ko) 2007-09-19
JP2006164336A (ja) 2006-06-22
TWI331747B (ja) 2010-10-11

Similar Documents

Publication Publication Date Title
KR100825548B1 (ko) 정보 기록 매체, 데이터 분별 장치, 및 데이터 재생 장치
KR100869605B1 (ko) 정보 기록 매체 및 데이터 재생 장치
US8160422B2 (en) Data recording device, data recording method, data processing device, data processing method, program, program recording medium, data recording medium, and data structure
US8326117B2 (en) Data recording device, data recording method, data processing device, data processing method, program, program recording medium, data recording medium, and data structure
JP2022136168A (ja) 再生装置、及び、再生方法
WO2005122569A1 (ja) データ処理装置およびデータ処理方法、プログラムおよびプログラム記録媒体、データ記録媒体、ならびに、データ構造
WO2006059482A1 (ja) データ処理装置およびデータ処理方法、プログラムおよびプログラム記録媒体、データ記録媒体、並びにデータ構造
WO2005122175A1 (ja) データ処理装置およびデータ処理方法、プログラムおよびプログラム記録媒体、データ記録媒体、ならびに、データ構造
US20080043775A1 (en) Data Processing Device, Data Processing Method, Program, Program Recording Medium, and Data Structure
US8107796B2 (en) Data processing device, data processing method, program, program recording medium, data recording medium, and data structure
KR20070032030A (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 KN KP KR KZ LC LK LR LS LT LU LV LY 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): 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 LV 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
REEP Request for entry into the european phase

Ref document number: 2005803958

Country of ref document: EP

WWE Wipo information: entry into national phase

Ref document number: 2005803958

Country of ref document: EP

WWE Wipo information: entry into national phase

Ref document number: 3569/DELNP/2007

Country of ref document: IN

WWE Wipo information: entry into national phase

Ref document number: 2588198

Country of ref document: CA

WWE Wipo information: entry into national phase

Ref document number: 11720630

Country of ref document: US

Ref document number: 1020077012469

Country of ref document: KR

NENP Non-entry into the national phase

Ref country code: DE

WWE Wipo information: entry into national phase

Ref document number: 200580047681.6

Country of ref document: CN

WWP Wipo information: published in national office

Ref document number: 2005803958

Country of ref document: EP