CN100556116C - 数据处理设备、数据处理方法、程序、程序记录介质、数据记录介质和数据结构 - Google Patents

数据处理设备、数据处理方法、程序、程序记录介质、数据记录介质和数据结构 Download PDF

Info

Publication number
CN100556116C
CN100556116C CNB2005800272310A CN200580027231A CN100556116C CN 100556116 C CN100556116 C CN 100556116C CN B2005800272310 A CNB2005800272310 A CN B2005800272310A CN 200580027231 A CN200580027231 A CN 200580027231A CN 100556116 C CN100556116 C CN 100556116C
Authority
CN
China
Prior art keywords
stream
data
control module
video
mark
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CNB2005800272310A
Other languages
English (en)
Other versions
CN101002465A (zh
Inventor
藤波靖
高桥邦明
浜田俊也
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sony Interactive Entertainment Inc
Sony Corp
Original Assignee
Sony Corp
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 Corp, Sony Computer Entertainment Inc filed Critical Sony Corp
Publication of CN101002465A publication Critical patent/CN101002465A/zh
Application granted granted Critical
Publication of CN100556116C publication Critical patent/CN100556116C/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • 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
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/41Structure of client; Structure of client peripherals
    • H04N21/426Internal components of the client ; Characteristics thereof
    • H04N21/42646Internal components of the client ; Characteristics thereof for reading from or writing on a non-volatile solid state storage medium, e.g. DVD, CD-ROM
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/432Content retrieval operation from a local storage medium, e.g. hard-disk
    • H04N21/4325Content retrieval operation from a local storage medium, e.g. hard-disk by playing back content from the storage medium
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/443OS processes, e.g. booting an STB, implementing a Java virtual machine in an STB or power management in an STB
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/47End-user applications
    • H04N21/488Data services, e.g. news ticker
    • H04N21/4884Data services, e.g. news ticker for displaying subtitles
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/76Television signal recording
    • H04N5/84Television signal recording using optical recording
    • H04N5/85Television signal recording using optical recording on discs or drums
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N9/00Details of colour television systems
    • H04N9/79Processing of colour television signals in connection with recording
    • H04N9/80Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback
    • H04N9/804Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback involving pulse code modulation of the colour picture signal components
    • H04N9/8042Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback involving pulse code modulation of the colour picture signal components involving data reduction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N9/00Details of colour television systems
    • H04N9/79Processing of colour television signals in connection with recording
    • H04N9/80Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback
    • H04N9/82Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback the individual colour picture signal components being recorded simultaneously only
    • H04N9/8205Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback the individual colour picture signal components being recorded simultaneously only involving the multiplexing of an additional signal and the colour video signal
    • H04N9/8233Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback the individual colour picture signal components being recorded simultaneously only involving the multiplexing of an additional signal and the colour video signal the additional signal being a character code signal
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B2220/00Record carriers by type
    • G11B2220/20Disc-shaped record carriers
    • G11B2220/25Disc-shaped record carriers characterised in that the disc is based on a specific recording technology
    • G11B2220/2537Optical discs
    • G11B2220/2541Blu-ray discs; Blue laser DVR discs

Landscapes

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

Abstract

可以控制对字幕数据的显示方法的改变。步骤S347根据configrable_flag来判断是否允许正在被再现的字幕数据的显示的改变,其中configrable_flag指示是否允许在描述针对关于节目流的元数据中所包含的节目流中复用的每个数据的数据再现期间不变化的信息的StaticInfo()中,字幕数据StaticInfo()中所包含的字幕数据的显示从默认显示方法的改变。当允许正在被再现的字幕数据的显示从默认显示方法改变时,步骤S350根据字幕数据的显示方法的改变的指令来执行字幕数据的显示。可以将本发明应用于例如使用DVD的游戏设备。

Description

数据处理设备、数据处理方法、程序、程序记录介质、数据记录介质和数据结构
技术领域
本发明涉及数据处理设备、数据处理方法、程序、程序记录介质、数据记录介质和数据结构。具体地说,本发明涉及允许非常方便地处理数据的数据处理设备、数据处理方法、程序、程序记录介质、数据记录介质和数据结构。
背景技术
近年来,具有大存储容量并且可以被随机存取的记录介质(例如数字多功能盘(DVD))已经变得广为流行。此外,执行对DVD的各种处理的DVD设备也变得广为流行。
作为DVD设备,有向DVD记录和从DVD再现电视节目等的数据的DVD记录机,使用其上已经记录了地图信息等的DVD、从其再现地图信息并且对地图信息进行显示的汽车导航系统,使用其中已经记录了游戏程序的DVD、从其读取程序并且执行该程序的游戏设备等。
在例如非专利文档1“DVD Specifications for Read-Only Disc Part 3;Version1.1December 1997”中描述了DVD的详情。
诸如在其上记录大量数据的DVD之类的记录介质和使用该介质的DVD设备需要允许非常方便地处理大量数据。
发明内容
从上面的角度提出了本发明。本发明的目的是允许以高方便性等来执行数据处理。
本发明是数据处理设备,其包括:捕获装置,用于捕获包含在关于已经复用了至少字幕数据的经复用数据的元数据中的字幕数据的静态信息,所述静态信息包含在所述元数据中,为在所述经复用数据中所复用的数据的每个单元指定所述静态信息,当正在再现所述经复用数据中所复用的数据的每个单元时所述静态信息不变化;确定装置,用于与所述捕获装置所捕获的所述静态信息中所包含的允许信息对应,来确定是否允许用于正在被再现的所述字幕数据的显示模式从默认显示模式变化,所述允许信息包含在所述字幕数据中,所述允许信息代表是否已经允许用于所述字幕数据的所述显示模式从所述默认显示模式变化;和显示处理装置,用于当所述确定装置的确定结果表示已经允许了用于正在被再现的所述字幕数据的所述显示模式从所述默认显示模式变化时,与显示模式变化命令对应执行用于所述字幕数据的显示处理,其中,当改变正在再现的单元时,所述确定装置检查与新再现的单元对应的要被再现的新字幕数据的允许信息,如果检查结果表示不允许改变字幕数据的显示模式,则将字幕数据的显示模式初始化为默认显示模式,而如果检查结果表示允许改变字幕数据的显示模式,则保持字幕数据的显示模式。
本发明是数据处理方法,包括步骤:捕获包含在关于已经复用了至少字幕数据的经复用数据的元数据中的字幕数据的静态信息,所述静态信息包含在所述元数据中,为在所述经复用数据中所复用的数据的每个单元指定所述静态信息,当正在再现所述经复用数据中所复用的数据的每个单元时所述静态信息不变化;与所述捕获步骤所捕获的所述静态信息中所包含的允许信息对应,来确定是否允许用于正在被再现的所述字幕数据的显示模式从默认显示模式变化,所述允许信息包含在所述字幕数据中,所述允许信息代表是否已经允许用于所述字幕数据的所述显示模式从所述默认显示模式变化;和当所述确定步骤的确定结果表示已经允许了用于正在被再现的所述字幕数据的所述显示模式从所述默认显示模式变化时,与显示模式变化命令对应执行用于所述字幕数据的显示处理,其中,当改变正在再现的单元时,检查与新再现的单元对应的要被再现的新字幕数据的允许信息,如果检查结果表示不允许改变字幕数据的显示模式,则将字幕数据的显示模式初始化为默认显示模式,而如果检查结果表示允许改变字幕数据的显示模式,则保持字幕数据的显示模式。
本发明是程序,其包括步骤:捕获包含在关于已经复用了至少字幕数据的经复用数据的元数据中的字幕数据的静态信息,所述静态信息包含在所述元数据中,为在所述经复用数据中所复用的数据的每个单元指定所述静态信息,当正在再现所述经复用数据中所复用的数据的每个单元时所述静态信息不变化;与所述捕获步骤所捕获的所述静态信息中所包含的允许信息对应,来确定是否允许用于正在被再现的所述字幕数据的显示模式从默认显示模式变化,所述允许信息包含在所述字幕数据中,所述允许信息代表是否已经允许用于所述字幕数据的所述显示模式从所述默认显示模式变化;和当所述确定步骤的确定结果表示已经允许了用于正在被再现的所述字幕数据的所述显示模式从所述默认显示模式变化时,与显示模式变化命令对应执行用于所述字幕数据的显示处理。
本发明是在程序记录介质上所记录的程序,该程序包括步骤:捕获包含在关于已经复用了至少字幕数据的经复用数据的元数据中所包含的字幕数据的静态信息,所述静态信息包含在所述元数据中,为在所述经复用数据中所复用的数据的每个单元指定所述静态信息,当正在再现所述经复用数据中所复用的数据的每个单元时所述静态信息不变化;与所述捕获步骤所捕获的所述静态信息中所包含的允许信息对应,来确定是否允许用于正在被再现的所述字幕数据的显示模式从默认显示模式变化,所述允许信息包含在所述字幕数据中,所述允许信息代表是否已经允许用于所述字幕数据的所述显示模式从所述默认显示模式变化;和当所述确定步骤的确定结果表示已经允许了用于正在被再现的所述字幕数据的所述显示模式从所述默认显示模式变化时,与显示模式变化命令对应执行用于所述字幕数据的显示处理。
本发明是已经在其上记录有记录数据的数据记录介质,所述记录数据包含已经复用了至少字幕数据的经复用数据,以及关于所述经复用数据的元数据,所述元数据包含为所述经复用数据中所复用的数据的每个单元指定的静态信息,当正在再现所述经复用数据中所复用的数据的每个单元时所述静态数据不变化,所述字幕数据的静态信息包含允许信息,其表示是否已经允许用于所述字幕数据的显示模式从默认显示模式变化。
本发明是用于包含其中已经复用了至少字幕数据的经复用数据的数据的数据结构,以及关于所述经复用数据的元数据,所述元数据包含为所述经复用数据中所复用的数据的每个单元指定的静态信息,当正在再现所述经复用数据中所复用的数据的每个单元时所述静态信息不变化,所述字幕数据的静态信息包含允许信息,其表示是否已经允许用于所述字幕数据的显示模式从默认显示模式变化。
在本发明的所述数据处理设备、所述数据处理方法、所述程序和所述程序记录介质上所记录的所述程序中,捕获包含在关于已经复用了至少字幕数据的经复用数据的元数据中的字幕数据的静态信息。所述静态信息包含在所述元数据中。为所述经复用数据中所复用的数据的每一个单元指定所述静态信息。当正在再现在所述经复用数据中所复用的数据的每一个单元时,所述静态信息不变化。与所述静态信息中所包含的允许信息对应,来确定是否已经允许正在被再现的所述字幕数据的显示模式从默认显示模式变化。所述允许信息包含在所述字幕数据中。所述允许信息表示已经允许用于所述字幕数据的所述显示模式从所述默认显示模式变化。当在确定步骤的确定结果表示已经允许正在被再现的所述字幕数据的所述显示模式从所述默认显示模式变化时,与显示模式变化命令对应针对所述字幕数据执行显示处理。
在本发明的数据记录介质上,已经记录了记录数据。所述记录数据包含已经复用了至少字幕数据的经复用数据和关于所述经复用数据的元数据。所述元数据包含为在所述经复用数据中所复用的数据的每个单元指定的静态信息。当正在再现在所述经复用数据中所复用的数据的每个单元时,所述静态信息不变化。所述字幕数据的所述静态信息包含表示是否已经允许用于所述字幕数据的显示模式从默认显示模式变化的允许信息。
本发明的数据结构是用于包含已经复用了至少字幕数据的经复用数据和关于所述经复用数据的元数据的数据的数据结构。所述元数据包含为在所述经复用数据中所复用的数据的每个单元指定的静态信息。所述静态信息在再现复用在经复用数据中的数据的每个单元的同时不改变。所述字幕数据的所述静态信息包含表示是否已经允许用于所述字幕数据的显示模式从默认显示模式变化的允许信息。
根据本发明,可以以高方便性等来执行数据处理。特别是,可以控制和改变用于字幕数据的显示模式。
附图说明
图1是示出根据本发明的实施方式的盘设备的硬件的结构的例子的框图;
图2A和2B是示出CPU 112执行的软件模块组的结构的例子的框图;
图3是示出缓存器控制模块215的结构的例子的框图;
图4是示出盘101的目录的结构的例子的示意图;
图5是示出文件“PLAYLIST.DAT”的语法的示意图;
图6是示出PlayItem()的语法的示意图;
图7是示出PlayListMark()的语法的示意图;
图8是示出mark_type的值和Mark()的类型的关系的示意图;
图9是示出在剪切片段流文件中所存储的PlayList()、PlayItem()、剪切片段和节目流的关系的示意图;
图10是示出剪切片段信息文件Clip()的语法的示意图;
图11是示出stream_id、private_stream_id和因此所表示的基本流的关系的示意图;
图12是示出StaticInfo()的语法的示意图;
图13是示出DynamicInfo()的语法的示意图;
图14是示出EP_map()的语法的示意图;
图15A和15B是示出节目流的语法、节目流封包和MPEG-2系统的节目流封包头部的示意图;
图16A和16B是示出MPEG-2系统的PES分组的语法的示意图;
图17A、17B和17C是示出MPEG-2系统的PES分组的语法的连续部分的示意图;
图18A和18B是示出MPEG-2系统的PES分组的语法的连续部分的示意图;
图19A和19B是示出MPEG-2系统的基本流的属性(类型)和PES_packet()的stream_id的值的关系的示意图;
图20是示出盘设备使用的stream_id的示意图;
图21是示出private_stream1_PES_payload()的语法的示意图;
图22是示出在private_payload()中所存储的基本流的数据和private_stream_id的值的关系的示意图;
图23是示出private_stream2_PES_payload()的语法的示意图;
图24是示出au_information()的语法的示意图;
图25是示出文件“PLAYLIST.DAT”的具体例子的示意图;
图26A和26B是示出剪切片段信息文件“00001.CLP”、“00002.CLP”和“00003.CLP”的具体例子的示意图;
图27是示出剪切片段信息文件“00001.CLP”的EP_map()的具体例子的示意图;
图28是示出PlayList#0和PlayList#1的PlayListMark()的具体例子的示意图;
图29是描述预先再现过程的流程图;
图30是描述再现过程的流程图;
图31是描述PlayItem变化过程的流程图;
图32是描述时间代码显示过程的流程图;
图33是描述流变化过程的流程图;
图34是描述缓存器控制模块215的过程的流程图;
图35是描述缓存器控制模块215的所述过程的流程图;
图36是描述视频流读取过程的流程图;
图37是描述音频流读取过程的流程图;
图38是描述字幕流读取过程的流程图;
图39是描述重新同步过程的流程图;
图40是描述标记过程的流程图;
图41是描述输出属性控制过程的流程图;
图42是示出在剪切片段信息文件“00003.CLP”中所描述的pts_change_point和DynamicInfo()的组的具体例子的示意图;
图43是描述字幕显示控制过程的流程图;
图44是描述捕获控制过程和背景/屏幕保护程序过程的流程图;
图45是示出private_stream2_PES_payload()的另一种语法的示意图;和
图46是示出au_information()的另一种语法的示意图。
附图标记说明
101盘
102盘驱动器
111总线
112CPU
113存储器
114驱动器接口
115输入接口
116视频解码器
117音频解码器
118视频输出接口
119音频输出接口
120音频输出端
121音频输出端
201操作系统
210视频内容再现程序
211脚本控制模块
212播放器控制模块
213内容数据提供模块
214解码控制模块
214A时间计数部分
215缓存器控制模块
215A缓存器
216视频解码器控制模块
217音频解码器控制模块
218字幕解码器控制模块
219图形处理模块
220视频输出模块
220A FIFO(先入先出缓存器)
221音频输出模块
221A FIFO
231数据开始指针存储部分
232数据写指针存储部分
233视频读取功能部分
234音频读取功能部分
235字幕读取功能部分
241视频读取指针存储部分
242stream_id寄存器
243au_information()寄存器
251音频读取指针存储部分
252stream_id寄存器
253private_stream_id寄存器
261字幕读取功能标记存储部分
262字幕读取指针存储部分
263stream_id寄存器
264private_stream_id寄存器
S101盘的检查结果?
S102错误处理
S103读取SCRIPT.DAT和PLAYLIST.DAT
S104提供文件
S105分析PLAYLIST.DAT
S106读取剪切片段信息文件
S107文件的检查结果?
S108解释和执行SCRIPT.DAT
S121识别IN_time
S122检查再现开始位置
S123显示时间代码
S124分析PlayListMark()
S125决定要被再现的流
S126控制输出属性
S127准备开始再现
S128开始读取数据
S129开始控制解码器
S130开始解码
S131开始图形处理
S132开始输出处理
S151解码停止控制
S152开始再现PLAYITEM
S171输出消息
S172转换时间代码
S173输出时间代码
S191检查流数量
S192标识正在被再现的流
S193识别下一个要被再现的流
S194使得读取下一个流
S211搜索private_stream_2分组
S212指定了stream_id?
S213将au_information()读到内部寄存器
S214将下一个视频分组的开始插入到视频读取指针
S215是否请求了数据?
S216语法分析节目流并且输出Au_length的视频数据
S217是否处理了number_of_access_unit的存取单元?
S230private_stream_1?
S231搜索同步代码
S232搜索MPEG音频分组
S233更新音频读取指针
S234搜索private_stream_1分组
S235指定了private_stream_id?
S236音频读取指针234<-在Au_locator之后紧邻的位置+Au_locator
S237请求了数据?
S238语法分析节目流并且输出具有固定长度的音频存取单元
S251字幕读取功能标记?
S252搜索private_stream_1分组
S253指定了private_stream_id?
S254字幕读取指针<-Au_locator之后紧邻的位置+Au_locator
S255请求了数据?
S256语法分析节目流并且输出在其开始所描述的长度的字幕存取单元
S271时间戳之差较大?
S272视频晚于音频?
S273使得视频存取单元被跳过
S274检查存取单元的au_ref_flag
S275存取单元是否为非参考图像?
S276处理视频存取单元
S277跳过用于视频存取单元的处理
S278使得视频被连续地输出
S279连续输出视频
S301当前时间匹配于mark_time_stamp?
S302识别目标标记
S303是否目标标记描述entry_ES_stream_id/entry_ES_private_stream_id?
S304是否正在被再现的流包含entry_ES_stream_id/entry_ES_private_stream_id的流?
S305目标标记的mark_type?
S306更新用于章节/索引的处理
S307将事件消息和mark_data通知给脚本控制模块211
S308用于mark_data的处理
S320提供pts_change_point
S321当前时间匹配于pts_change_point?
S322识别匹配于当前时间的pts_change_point的DynamicInfo()
S323提供在DynamicInfo()中所描述的输出属性
S324与输出属性对应地开始控制视频/音频的输出
S341使得字幕显示模式被初始化
S342是否已经输入了用于字幕的新的显示模式命令?
S343是否正在再现字幕流?
S345默认显示模式命令?
S346获得正在被再现的字幕流的StaticInfo()
S347确定StaticInfo()的configurable_flag
S348显示错误消息
S349提供显示模式命令
S350与显示模式命令对应地开始字幕显示处理
S351改变了PlayItem?
S371正在再现视频数据?
S372从正在再现的视频的PlayList()和Clip()中获得capture_enable_flag
S373是否与capture_enable_flag对应地允许捕获视频?
S374显示错误消息
S375提供捕获命令
S376捕获和存储视频数据
S381显示画面
具体实施方式
以下,将说明本发明的实施例。权利要求和实施方式的要素之间的关系如下。该关系表示在实施方式中描述支持在权利要求中所陈述的本发明的具体例子。因此,即使在权利要求的要素中没有描述某些具体例子,也不意味着该具体例子不对应于权利要求的要素。相反地,即使在本部分中将具体例子描述为权利要求的要素的对应物,也不意味着该具体例子不对应于除了权利要求的要素之外的其他形式。
在本部分中,不意味着在权利要求中陈述与在本发明实施方式中所描述的具体例子对应的本发明的所有方面。换句话说,在本部分中的描述与本发明的实施方式中所描述的具体例子对应。因此,在本部分中的描述不否认在本专利申请的权利要求中没有陈述的本发明的方面,也不否认可以作出本申请的分案和/或作为修改添加本发明的附加方面。
在权利要求1中所陈述的数据处理设备是对数据记录介质上所记录的记录数据进行处理的数据处理设备(例如,图1中所示的盘设备)。
所述记录数据包括:
已经复用了至少字幕数据的经复用数据(例如,其中已经复用多个基本流并且被存储在图4中所示的文件00001.PS中的节目流),和
关于所述经复用数据的元数据(例如,图10中所示的、并且被存储在图4中所示的文件00001.CLP中的Clip()),
所述元数据包含为所述经复用数据中所复用的数据的每一个单元指定的静态信息(例如,图10和图12中所示的StaticInfo()),当正在再现在所述经复用数据中所复用的数据的每一个单元时所述静态信息不变化,
所述字幕数据的静态信息包含表示是否已经允许所述字幕数据的显示模式从默认显示模式变化的允许信息(例如,图12中所示的configurable_flag),
所述数据处理设备包括:
捕获装置(例如图2A和2B中所示的播放器控制模块212,其执行图43中所示步骤S346中的处理),用于当正在再现所述字幕数据时捕获所述字幕数据的所述静态信息;
确定装置(例如,图2A和2B中所示的播放器控制模块212,其执行图43中所示步骤S347处的处理),用于与所述捕获装置所捕获的所述静态信息中所包含的所述允许信息对应,来确定是否已经允许正在再现的所述字幕数据的显示模式从默认显示模式变化;和
显示处理装置(例如,在图2A和2B中所示的图形处理模块219,其执行图43中所示步骤S350处的处理),用于当所述确定装置的确定结果表示已经允许用于正在再现的所述字幕数据的所述显示模式从所述默认显示模式变化时,根据显示模式变化命令来执行所述字幕数据的显示处理。
权利要求3的数据处理方法是对数据记录介质上所记录的记录处理进行处理的数据处理方法,
所述记录数据包括:
已经复用了至少字幕数据的经复用数据(例如,其中已经复用多个基本流并且被存储在图4中所示的文件00001.PS中的节目流),和
关于所述经复用数据的元数据(例如,图10中所示的、并且被存储在图4中所示的文件00001.CLP中的Clip()),
所述元数据包含为所述经复用数据中所复用的数据的每一个单元指定的静态信息(例如,图10和图12中所示的StaticInfo()),当正在再现在所述经复用数据中所复用的数据的每一个单元时所述静态信息不变化,
所述字幕数据的静态信息包含表示是否已经允许所述字幕数据的显示模式从默认显示模式变化的允许信息(例如,图12中所示的configurable_flag),
所述数据处理方法包括步骤:
当正在再现所述字幕数据时捕获所述字幕数据的所述静态信息(例如,图43中所示的步骤346);
与所述捕获步骤(例如,图43中所示的步骤S347)所捕获的所述静态信息中所包含的所述允许信息对应,来确定是否已经允许用于正在再现的所述字幕数据的显示模式从默认显示模式变化;和
当所述确定步骤的确定结果表示已经允许正在再现的所述字幕数据的所述显示模式从所述默认显示模式变化时(例如,在图43中所示的步骤S350),根据显示模式变化命令来执行所述字幕数据的显示处理。
在权利要求4中所陈述的每个程序和在权利要求5中所陈述的在程序记录介质上所记录的程序,是使得计算机执行对数据记录介质上所记录的记录数据进行处理的数据处理的程序,
所述记录数据包括:
已经复用了至少字幕数据的经复用数据(例如,其中已经复用多个基本流并且被存储在图4中所示的文件00001.PS中的节目流),和
关于所述经复用数据的元数据(例如,图10中所示的、并且被存储在图4中所示的文件00001.CLP中的Clip()),
所述元数据包含为所述经复用数据中所复用的数据的每一个单元指定的静态信息(例如,图10和图12中所示的StaticInfo()),当正在再现在所述经复用数据中所复用的数据的每一个单元时所述静态信息不变化,
所述字幕数据的静态信息包含表示是否已经允许所述字幕数据的显示模式从默认显示模式变化的允许信息(例如,图12中所示的configurable_flag),
所述数据处理方法包括步骤:
当正在再现所述字幕数据时捕获所述字幕数据的所述静态信息(例如,图43中所示的步骤346);
与所述捕获步骤(例如,图43中所示的步骤S347)所捕获的所述静态信息中所包含的所述允许信息对应,来确定是否已经允许正在再现的所述字幕数据的显示模式从默认显示模式变化;和
当所述确定步骤的确定结果表示已经允许正在再现的所述字幕数据的所述显示模式从所述默认显示模式变化时(例如,在图43中所示的步骤S350),根据显示模式变化命令来执行用于所述字幕数据的显示处理。
在权利要求6中所陈述的数据记录介质是其上已经记录了记录数据的数据记录介质,所述记录数据包括已经复用了至少字幕数据的经复用数据(例如,其中已经复用多个基本流并且被存储在图4中所示的文件00001.PS中的节目流),和
关于所述经复用数据的元数据(例如,图10中所示的、并且被存储在图4中所示的文件00001.CLP中的Clip()),
所述元数据包含为所述经复用数据中所复用的数据的每一个单元指定的静态信息(例如,图10和图12中所示的StaticInfo()),
当正在再现在所述经复用数据中所复用的数据的每一个单元时所述静态信息不变化,所述字幕数据的静态信息包含表示是否已经允许用于所述字幕数据的显示模式从默认显示模式变化的允许信息(例如,图12中所示的configurable_flag)。
下面,将参照附图来描述本发明的实施方式。
[硬件结构]
图1是示出根据本发明实施方式的盘设备的硬件结构的例子的框图。
可以将图1中所示的盘设备应用于例如盘播放器、游戏设备、汽车导航系统等。
在图1中所示的盘设备中,盘101是诸如DVD、磁光盘、磁盘之类的光盘。将诸如视频数据、音频数据和字幕数据之类的内容数据和再现这些数据所需要的附加数据记录在盘101上。
当需要时,在盘101上所记录的数据(称为记录数据)包括可以由计算机执行的程序。根据本发明的实施方式,作为记录介质,使用作为盘形记录介质的盘101。替代地,记录介质可以是例如半导体存储器或者带形记录介质。可以将从位于远端的盘中读取的数据进行传送并且输入到图1中所示的盘设备中。换句话说,可以通过连接到所述盘设备的另一个设备从盘101中读取数据。由盘设备对由其他设备读取的数据进行接收和处理。此外,该盘设备通过诸如因特网的网络从存储与盘101上所记录的那些数据类似的数据的服务器等接收数据,并且对所接收的数据进行处理。此外,该盘设备还从诸如服务器之类的另一个设备接收数据,然后处理被记录到盘101的数据。
可以将盘101装载到盘驱动器102中或者从盘驱动器102中卸载。盘驱动器102具有内置接口(未示出)。通过内置接口将盘驱动器102连接到驱动器接口114。盘驱动器102驱动盘101,根据例如读取命令从盘101中读取数据,并且将数据提供给驱动器接口114。
将中央处理单元(CPU)112、存储器113、驱动器接口114、输入接口115、视频解码器116、音频解码器117、视频输出接口118和音频输出接口119连接到总线111。
CPU 112和存储器113组成计算机系统。换句话说,CPU 112执行作为存储器113中所存储的程序的软件模块组以控制整个盘设备,并且执行下面将要描述的各种处理。存储器113还存储CPU 112执行的软件模块组。此外,存储器113临时存储操作CPU 112所需要的数据。存储器113可以仅仅由非易失存储器或者由易失存储器和非易失存储器的组合组成。当图1中所示的盘设备具有将CPU 112执行的软件模块组记录(安装)到其中的硬盘时,存储器113可以仅仅由非易失存储器组成。
可以将CPU 112执行的程序(软件模块组)预先记录(存储)在作为盘设备中内置的记录介质的存储器113中。
替代地,可以将程序临时或者永久地存储(记录)到盘101或者诸如软盘、致密盘只读存储器(CD-ROM)、磁光(MO)盘、磁盘或者存储器卡之类的可拆卸记录介质上。可以作为所谓的软件包提供可拆卸记录介质。
可以将程序预先存储在存储器113中,或是可以将程序从上述的可拆卸记录介质中安装到盘设备中。替代地,可以通过用于数字卫星广播的卫星无线地、或者通过局域网(LAN)或者诸如因特网之类的网络非无线地将程序从下载站点传输到盘设备。盘设备通过输入接口115接收程序,并且将程序安装到内置存储器113。
可以由一个CPU执行程序或者由多个CPU分布地执行程序。
驱动器接口114在CPU 112的控制下控制盘驱动器102。盘驱动器102将从盘101读取的数据通过总线111提供给CPU 112、存储器113、视频解码器116和音频解码器117。
输入接口115接收与用户的按键(按钮)和遥控器(未示出)操作对应的信号,并且通过总线111将该信号提供给CPU 112。输入接口115还作为用于调制解调器(包括不对称数字订户线(ADSL)调制解调器)的通信接口、网络接口卡(NIC)等工作。
视频解码器116解码由盘驱动器102从盘101中已经读取的、并且通过驱动器接口114和总线111已经提供给视频解码器116的经编码的视频数据,并且通过总线111将经解码的视频数据提供给CPU 112和视频输出接口118。
音频解码器117解码已经由盘驱动器102从盘101读取并且通过驱动器接口114和总线111提供到音频解码器117的经编码的音频数据,并且通过总线111将经解码的音频数据输出到CPU 112和音频输出接口119。
视频输出接口118对通过总线111所提供的视频数据执行预定的处理,并且将经处理的视频数据从视频输出端120输出。音频输出接口119对通过总线111提供的音频数据执行预定处理,并且从音频输出端121输出经处理的音频数据。
将视频输出端120连接到诸如阴极射线管(CRT)或者液晶板(未示出)之类的视频输出设备。因此,将从视频输出端120输出的视频数据提供给视频输出设备并且由其进行显示。将音频输出端121连接到诸如扬声器和放大器(未示出)之类的音频输出设备。因此,将从音频输出端121输出的音频数据提供给音频输出设备并且由其进行输出。
可以将视频数据和音频数据从盘设备无线地或者非无线地提供到视频输出设备和音频输出设备。
[软件模块组的结构]
图2A和2B示出了图1所示的CPU 112执行的软件模块组的结构的例子。
主要将CPU 112执行的软件模块组分类为操作系统(OS)201和作为应用程序的视频内容再现程序210。
[操作系统201]
当将盘设备通电时,操作系统201启动(CPU 112执行操作系统201),执行诸如初始设置之类的预定处理,并且调用作为应用程序的视频内容再现程序210。
操作系统201将诸如文件读取服务之类的基础服务提供给视频内容再现程序210。换句话说,操作系统201针对从内容再现程序210接收来的文件读取请求通过驱动器接口114提供操作盘驱动器102的服务,从盘101读取数据,并且将该数据提供给视频内容再现程序210。此外,操作系统201还解释文件系统。
操作系统201具有多任务处理功能。换句话说,操作系统201可以在时分基础上同时(明显地)操作多个软件模块。换句话说,虽然视频内容再现程序210由几个软件模块组成,但是它们可以并行操作。
[视频内容再现程序210]
视频内容再现程序210由脚本控制模块211、播放器控制模块212、内容数据提供模块213、解码控制模块214、缓存器控制模块215、视频解码器控制模块216、音频解码器控制模块217、字幕解码器控制模块218、图形处理模块219、视频输出模块220和音频输出模块221组成。
视频内容再现程序210是执行对来自盘101的数据的再现的关键角色的软件。当将盘101装载(插入)到盘驱动器102时,视频内容再现程序210检查盘101是否是其上已经以预定格式(将在后面描述)记录了内容的盘。视频内容再现程序210从盘101读取脚本文件(将在后面描述),执行脚本,读取再现来自盘101的内容所需要的元数据(数据库信息)文件,并且根据该元数据控制对内容的再现。
下面,将描述包括图2A和图2B中所示的视频内容再现程序210的软件模块。在图2A和2B中,通常,实线箭头标记表示内容数据,而虚线箭头标记表示控制数据。
[脚本包括模块211]
脚本控制模块211解释和执行在盘101上记录的脚本程序(脚本)。脚本程序可以描述诸如“操作图形处理模块219以创建诸如菜单之类的图像并且显示它”、“与从诸如遥控器之类的用户接口(UI)提供来的信号对应改变菜单显示(例如,在菜单上移动光标)”和“控制播放器控制模块212”之类的操作。
[播放器控制模块212]
播放器控制模块212参考在盘101上记录的元数据(数据库信息)等以控制对盘101上所记录的内容的再现。换句话说,播放器控制模块212分析在盘101上记录的PlayList()和Clip(),并且根据分析结果来控制内容数据提供模块213、解码控制模块214和缓存器控制模块215。此外,播放器控制模块212根据从将在后面描述的输入接口115和脚本控制模块211接收到的命令,执行改变要被再现的流的流改变控制。此外,解码控制模块214从解码控制模块214获得时间,显示该时间,并且执行针对标记(Mark())(将在后面描述)的处理。
[内容数据提供模块213]
内容数据提供模块213在播放器控制模块212的控制下,或者根据缓存器控制模块215中所存储的数据量,来请求操作系统从盘101读取内容数据、元数据等。
将操作系统201根据从内容数据提供模块213接收来的请求已经从盘101中读取的元数据等提供给预定模块。在另一方面,将操作系统201根据从内容数据提供模块213接收来的请求从盘101中读取的内容数据提供给缓存器控制模块215。
[解码控制模块214]
解码控制模块214在播放控制模块212的控制下,控制视频解码器控制模块216、音频解码器控制模块217和字幕解码器控制模块218的操作。解码控制模块214具有对时间计数的时间计数部分214A。解码控制模块214管理在视频解码器控制模块216的控制下输出的视频数据的输出和与视频数据同步的数据的输出的同步。在这种情况下,要与视频数据的输出同步的数据的输出是在音频解码器控制模块217的控制下输出的音频数据。
[缓存器控制模块215]
缓存器控制模块215具有缓存器215A作为图1中所示的存储器113的存储区域的一部分。内容数据提供模块213根据从操作系统201接收来的请求,将从盘101读取的内容数据临时存储在缓存器215A中。
此外,缓存器控制模块215根据从视频解码器控制模块216、音频解码器控制模块217或者字幕解码器控制模块218接收来的请求,将缓存器215A中所存储的数据分别提供给视频解码器控制模块216、音频解码器控制模块217或者字幕解码器控制模块218。
换句话说,缓存器控制模块215具有将随后在图3中描述的视频读取功能部分233、音频读取功能部分234和字幕读取功能部分235。缓存器控制模块215的视频读取功能部分233处理从视频解码器控制模块216接收来的数据请求,以将缓存器215A中所存储的数据提供给视频解码器控制模块216。类似地,在缓存器控制模块215中的音频读取功能部分234处理从音频解码器控制模块217接收来的请求,以提供在缓存器215A中所存储的数据给音频解码器控制模块217。在缓存器控制模块215中的视频读取功能部分233处理从字幕解码器控制模块218接收来的请求,以将缓存器215A中所存储的数据提供给字幕解码器控制模块218。
[视频解码器控制模块216]
视频解码器控制模块216操作缓存器控制模块215的视频读取功能部分233(图3),以从缓存器控制模块215的缓存器215A中一次一个视频存取单元地读取经编码的视频数据,并且将该视频数据提供给图1中所示的视频解码器116。此外,视频解码器控制模块216控制视频解码器116一次一个视频存取单元地解码数据。此外,视频解码器控制模块216将视频解码器116所解码的视频数据提供给图形处理模块219。
一个视频存取单元例如是视频数据的一个画面(一帧或者一场)。
[音频解码器控制模块217]
音频解码器控制模块217操作缓存器控制模块215的音频读取功能部分234(图3),以从缓存器控制模块215的缓存器215A中一次一个音频存取单元地读取经编码的音频数据,并且将经编码的音频数据提供给图1中所示的音频解码器117。音频解码器控制模块217控制音频解码器117以一次一个音频存取单元地解码经编码的音频数据。此外,音频解码器控制模块217将由音频解码器117解码的音频数据提供给音频输出模块221。
一个音频存取单元是预定量的音频数据(例如,与一个画面同步输出的数据量)。根据本实施方式,假设一个音频存取单元具有预定的固定长度。
[字幕解码器控制模块218]
字幕解码器控制模块218控制缓存器控制模块215的字幕读取功能部分235(图3),以从缓存器控制模块215的缓存器215A一次一个字幕存取单元地读取经编码的字幕数据。此外,字幕解码器控制模块218具有字幕解码软件(未示出)。字幕解码软件解码从缓存器215A读取的数据。字幕解码器控制模块218将经解码的字幕数据(字幕的图像数据)提供给图形处理模块219。
一个字幕存取单元是预定量的字幕数据(例如,与一个画面同步输出的数据量)。根据本实施方式,假设在其开始描述一个字幕存取单元的大小。
[图形处理模块219]
图形处理模块219在播放器控制模块212的控制(根据命令)下,对从字幕解码器控制模块218接收来的数据进行放大或者缩小,并且将经放大或者经缩小的字幕数据添加(重叠)到从视频解码器控制模块216接收来的视频数据上。图形处理模块219放大或者缩小已经被添加到字幕数据中的视频数据的大小(图像帧),以便所添加(重叠)的视频数据的帧大小与连接到图1中所示的视频输出端120的视频输出设备的屏幕匹配。将所添加(重叠)的视频数据输出到视频输出模块220。
此外,图形处理可219根据脚本控制模块211和播放器控制模块212的命令(在它们的控制下)产生菜单、消息等,并且将该菜单、消息等与输出的视频数据重叠。
此外,图形处理模块219根据连接到图1中所示的视频输出端120的视频输出设备的宽高比、和表示盘101上所记录的视频数据的宽高比的信息,将输出到视频输出模块220的视频数据的宽高比进行转换。
换句话说,当视频输出设备的宽高比是16∶9时,如果表示视频数据的宽高比的信息是4∶3,则图形处理模块219针对输出到视频输出模块220的视频数据在横(水平)方向中执行挤压(减小)处理,导致所产生的视频数据的左右边为黑色,并且将所产生的视频输出输出。当视频输出设备的宽高比为4∶3时,如果表示视频数据的宽高比的信息为16∶9,则图形处理模块219针对输出到视频输出模块220的视频数据在竖(垂直)方向中执行挤压(减小)处理,导致视频数据的上下边为黑色,并且输出所产生的视频数据。
当视频输出设备的宽高比和表示视频输出的信息的宽高比相同时,例如4∶3或者16∶9,则图形处理模块219将未挤压的视频数据输出到视频输出模块220。
此外,图形处理模块219根据从例如播放器控制模块212接收来的请求捕获正在被处理的视频数据。而且,图形处理控制模块212存储所捕获的视频数据,或者将视频数据提供给播放器控制模块212。
[视频输出模块220]
视频输出模块220排他地占用图1中所示的存储器113的一部分作为先进先出(FIFO)220A(缓存器),并且临时存储从图形处理模块219接收来的视频数据。此外,视频输出模块220从FIFO 220A中频繁读取视频数据,并且将视频数据输出到视频输出端120(图1)。
[音频输出模块221]
音频输出模块221排他地占用图1中所示的存储器113的一部分作为FIFO221A(缓存器),并且临时存储从音频解码器控制模块217(音频解码器117)接收来的音频数据。此外,视频输出模块221从FIFO 221A中频繁地读取音频数据,并且将音频数据输出到音频输出端121(图1)。
此外,当从音频解码器控制模块217接收到的音频数据是具有左和右声道“主音频”数据和“副音频”数据的双(双语)模式音频数据时,音频输出模块221根据预定音频输出模式,将从音频解码器控制模块217接收来的音频数据输出到音频输出端121。
换句话说,如果已经将“主声音”指定为音频输出模式,则音频输出模块221将从音频解码器控制模块217接收来的音频数据的左声道拷贝为音频数据的右声道,并且将音频数据(“主音频”数据)的左右声道输出到音频输出端121。如果已经将“副音频”指定为音频输出模式,则音频输出模块221将从音频解码器控制模块217接收来的音频数据的右声道拷贝为左声道,并且将左右声道(“副音频”数据)输出到音频输出端121。如果已经将“主和副音频”指定为音频输出模式,则音频输出模块221将从音频解码器控制模块217接收来的音频数据直接输出到音频输出端121。
如果从音频解码器控制模块217接收来的音频数据是立体声模式音频数据,则音频输出模块221将从音频解码器控制模块217接收来的音频数据直接输出到音频输出端121,而不管已经指定了什么样的音频输出模式。
用户可以互动地使用遥控器在用于视频内容再现程序210所产生的菜单的屏幕上指定音频输出模式。
[缓存器控制模块215的结构]
图3示出了在图2A和图2B中所示的缓存器控制模块215的结构的例子。
缓存器控制模块215排他地使用图1中所示的存储器113的一部分作为缓存器215A,并且将从盘101读取的数据临时存储在缓存器215A中。此外,缓存器控制模块215从缓存器215A中读取数据,并且将该数据提供给图2A和2B中所示的视频解码器控制模块216、音频解码器控制模块217和字幕解码器控制模块218。
除了缓存器215A,缓存器控制模块215还具有作为存储器113的一部分的数据开始指针存储部分231和数据写指针存储部分232。此外,缓存器控制模块215具有视频读取功能部分233、音频读取功能部分234和字幕读取功能部分235作为内部模块。
缓存器215A是例如连续存储从盘101中读取的数据的环形缓存器。在缓存器针对其存储量读取数据之后,缓存器215A将输出存储在所谓无限循环环路(endless loop)中,从而缓存器215A将最新的数据盖写在最旧的数据上。
数据开始指针存储部分231将表示不是从缓存器215A中读取的最旧数据的位置(地址)的数据开始指针存储在缓存器215A中所存储的数据中。
数据写指针存储部分232将表示从盘101中读取的最新数据的位置的指针存储在缓存器215A中。
在将从盘101中读取的数据存储到缓存器215A的任何时候,以图3中所示的顺时针方向更新数据写指针表示的位置。在从缓存器215A读取数据的任何时候,在图3中示出的顺时针方向中更新数据开始指针表示的位置。因此,在缓存器215A中所存储的有效数据是在图3所示的顺时针方向中从数据开始指针表示的位置到数据写指针表示的位置。
视频读取功能部分233与从图2A和图2B中所示的视频解码器控制模块216接收来的请求对应地从缓存器215A中读取视频流(视频数据的基本流),并且将该视频流提供给视频解码器控制模块216。音频读取功能部分234与从音频解码器控制模块217接收来的请求对应地从缓存器215A中读取音频流(音频数据的基本流),并且将该音频流提供给音频解码器控制模块217。类似地,字幕读取功能部分235与从字幕解码器控制模块218接收来的请求对应地从缓存器215A中读取字幕流(字幕数据的基本流),并且将该字幕流提供给字幕解码器控制模块218。
换句话说,已经将与例如运动图像专家组(MPEG)2标准对应的节目流记录在盘101上,将该节目流称为MPEG-2系统节目流。在该节目流中,已经在时分基础上将视频流、音频流和字幕流的至少一个基本流进行了复用。视频读取功能部分233具有用于该节目流的解复用功能。视频读取功能部分233从缓存器215A中所存储的节目流中解复用视频流,并且读取该视频流。
类似地,音频读取功能部分234具有用于节目流的解复用功能。音频读取功能部分234从缓存器215A中所存储的节目流中解复用音频流,并且读取该音频流。类似地,字幕读取功能部分235具有用于节目流的解复用功能。字幕读取功能部分235从缓存器215A中所存储的节目流中解复用字幕流,并且读取该字幕流。
视频读取功能部分233具有视频读取指针存储部分241、stream_id寄存器242和au_information()寄存器243作为图1中所示的存储器113的一部分。
视频读取指针存储部分241将表示视频流的位置(地址)的视频读取指针存储在缓存器215A中。视频读取功能部分233从缓存器215A中的视频读取指针的位置读取数据作为视频流。stream_id寄存器242存储用于分析在缓存器215A中所存储的节目流并且用于标识从节目流中读取的视频流的stream_id。au_information()寄存器243存储作为从缓存器215A中读取视频流所需要的数据(用于从缓存器215A中读取视频流)的au_information()。
音频读取功能部分234具有音频读取指针存储部分251、stream_id寄存器252和private_stream_id寄存器253作为图1中所示的存储器113的一部分。
音频读取指针存储器部分251存储表示在缓存器215A中所存储的音频流的位置(地址)的音频读取指针。音频读取功能部分234从缓存器215A中的音频读取指针的位置读取数据作为音频流。stream_id寄存器252和private_stream_id寄存器253分别存储用于分析在缓存器215A中所存储的节目流以及标识从节目流中读取的音频流的的stream_id和private_stream_id(将在后面进行描述)。
字幕读取功能部分235具有字幕读取功能标志存储部分261、字幕读取指针存储部分262、stream_id寄存器263和private_stream_id寄存器264作为图1中所示的存储器113的一部分。
字幕读取功能标志存储部分261存储字幕读取功能标志。当字幕读取功能标志存储部分261中所存储的字幕读取功能标志是例如“0”时,字幕读取功能部分235不操作。当在字幕读取功能标志存储部分261中所存储的读取功能标志是例如“1”时,字幕读取功能部分235操作。
字幕读取指针存储部分262存储表示在缓存器215A中所存储的字幕流的位置(地址)的字幕读取指针。字幕读取功能部分235从缓存器215A中的字幕读取指针的位置读取数据作为字幕流。stream_id寄存器263和private_stream_id寄存器264分别存储用于分析缓存器215A中所存储的节目流以及标识从节目流中读取的字幕流的stream_id和private_stream_id(将在后面描述)。
[对盘上所记录的数据的数据格式的描述]
随后,将描述在盘101上所记录的数据的数据格式。
图4示意地示出了盘101的目录的结构。
用于盘101的文件系统是例如在国际标准化组织(ISO)-9660和通用盘格式(Universal Disk Format,UDF)中定义的那些之一(http://www.osta.org/specs/)。将盘101上所记录的数据的文件层级地在目录结构中进行管理。可以用于盘101的文件系统不限于这些文件系统。
在图4中,在表示文件系统的基础的根目录下存在有“VIDEO”目录。在“VIDEO”目录下存在有两个目录——“CLIP”目录和“STREAM”目录。
除了作为“CLIP”目录和“STREAM”目录的这两个目录以外,在“VIDEO”目录下还有两个文件——“SCRIPT.DAT”文件和“PLAYLIST.DAT”文件。
“SCRIPT.DAT”文件时描述脚本程序的脚本文件。换句话说,“SCRIPT.DAT”文件描述允许互动地再现盘101上的数据的脚本程序。通过图2A和图2B中所示的脚本控制模块211解释和执行在“SCRIPT.DAT”文件中所存储的脚本程序。
“PLAYLIST.DAT”文件存储至少一个播放列表(将要在后面参照图5描述的PlayList())。播放列表描述诸如在盘101上所记录的视频数据之类的内容的再现过程。
在“CLIP”目录下至少存在一个剪切片段信息文件。在“STREAM”目录下至少存在一个剪切片段流文件。换句话说,在“CLIP”目录下有三个剪切片段信息文件“00001.CLP”、“00002.CLP”和“00003.CLP”。在“STREAM”目录下有三个剪切片段流文件“00001.PS”、“00002.PS”和“00003.PS”。
剪切片段流文件存储已经将其的已经挤压和编码的视频数据、音频数据和字幕数据的至少一个流在时分基础上复用的节目流。
剪切片段信息文件存储关于剪切片段流的、例如其特征的(文件)元数据。
换句话说,以1对1的关系将剪切片段流文件和剪切片段信息文件进行关联。在图4中,与五位数字+句点+“PS”的命名规则对应地对剪切片段流文件进行命名,而与同对应剪切片段相同的五位数字+句点+“CLP”的命名规则对应地对剪切片段信息文件进行命名。
因此,可以通过文件名的扩展名(点的右侧)来标识剪切片段流文件和剪切片段信息文件。此外,可以确定剪切片段流文件和剪切片段信息文件是否与它们的扩展名(点的左侧)之外的它们的文件名相关。
随后,将详细描述在盘101上记录的文件。
[PLAYLIST.DAT]
图5示出在“VIDEO”目录下的“PLAYLIST.DAT”文件的内部结构。
在图5中,“PLAYLIST.DAT”文件具有描述“PLAYLIST.DAT”文件的数据结构的“Syntax(语法)”字段;描述“Syntax”字段中的每个数据条目的比特长度的“No.of bits(比特数量)”字段;和其中“bslbf”(比特串左比特优先)和“uimsbf”(不带符号的整数最高比特优先)表示从左比特移位“Syntax”字段中的数据条目、以及在“Syntax”字段中的数据条目是不带符号的整数并且从最高比特移位的“Mnemonic(助记符)”字段。将这些条件应用于与图5类似的其他列表中。
“PLAYLIST.DAT”文件自name_length(8比特)和以描述诸如名称(文件名)的name_string(255字节)开始。
换句话说,name_length以字节表示紧邻其后的name_string的大小。name_string表示“PLAYLIST.DAT”文件的名称(文件名)。
将从name_string的开始处算起数量为name_length的字节用作有效名称。当name_length的值为10时,将从name_string的开始起10个字节解释为有效名称。
name_string之后跟随有number_of_PlayList(16比特)。number_of_PlayList表示在name_string之后的PlayList()的数量。number_of_PlayList之后跟随由number_of_PlayList所表示的数量的PlayList()。
PlayList()是描述在盘101上所记录的剪切片段流文件的再现过程的播放列表。PlayList()具有下面内部结构。
PlayList()以PlayList_data_length开始(32比特)。PlayList_data_length表示PlayList()的大小。
PlayList_data_length之后连续地跟随reserved_for_word_alignment(15比特)和capture_enable_flag_PlayList(1比特)。15比特的reserved_for_word_alignment之后跟随有1比特的capture_enable_flag_PlayList用于在capture_enable_flag_PlayList的位置处的字对准,以将其放在16个比特的位置。capture_enable_flag_PlayList是表示是否允许将与PlayList()对应地再现的视频流的视频数据(属于PlayList()的视频数据)辅助地使用在从盘101再现数据的盘设备中的1比特标志。当capture_enable_flag_PlayList的值是例如1(0或者1)时,其表示允许辅助地使用(secondarily use)属于该PlayList()的视频数据。当capture_enable_flag_PlayList的值是例如0(0或者1)时,其表示不允许辅助地使用属于PlayList()的视频数据(即,禁止辅助使用)。
在图5中,capture_enable_flag_PlayList由一个比特组成。替代地,capture_enable_flag_PlayList可以由多个比特组成。在这种情况下,可以逐渐允许属于PlayList()的视频数据被辅助地使用。换句话说,capture_enable_flag_PlayList可以由两个比特组成。当capture_enable_flag_PlayList的值为00B(其中B表示之前的数字是二进制数的)时,禁止辅助地使用视频数据。当capture_enable_flag_PlayList的值为01B时,允许辅助使用被减小到64×64像素大小或者更小的视频数据。当capture_enable_flag_PlayList是10B时,允许复制使用视频数据而不必减小大小。
可以关于应用程序而不是大小来限制视频数据的复制使用。换句话说,当capture_enable_flag_PlayList的值为01B时,可以只允许视频内容再现程序210(图2A和图2B)使用视频数据。当capture_enable_flag_PlayList的值为10B时,可以允许包括在图1所示的盘设备中的视频内容再现程序210的任何应用程序辅助地使用视频数据。在本例中,除了在图1中所示的盘设备中的视频内容再现程序210之外的应用程序显示墙纸(背景)或者是屏幕保护程序。
当capture_enable_flag_PlayList由2比特组成时,其所跟随的reserved_for_word_alignment由14比特组成用于字对准。
替代地,用capture_enable_flag_PlayList,可以在盘设备之外允许辅助使用视频数据。在用capture_enable_flag_PlayList的情况下,允许在盘设备之外辅助使用视频数据,将视频数据记录到例如可以被装载到盘设备中或者可以被连接到盘设备的记录介质上,或者通过因特网之类的网络传送(分发)到另一个设备。在这种情况下,将表示可以将视频数据记录到记录介质上的次数、或者可以将视频数据传送(分发)的次数的信息添加到视频数据中。
capture_enable_flag_PlayList之后连续地跟随有PlayList_name_length(8比特)和PlayList_name_string(255字节)。PlayList_name_length以字节表示PlayList_name_string的大小。PlayList_name_string表示PlayList()的名称。
PlayList_name_string之后跟随有number_of_PlayItem(16比特)。number_of_PlayItem表示PlayItem()的数量。
number_of_PlayItem之后跟随有number_of_PlayItem表示的数量的PlayItem()。
一个PlayList()能够描述PlayItem()的单元中的内容的再现过程。
将PlayList()中唯一的标识(ID)码添加到number_of_PlayItem所表示数量的PlayItem()中。换句话说,以数字0标识PlayList()的第一PlayItem()。由数字1、2、...等依次标识其他PlayItem()。
由number_of_PlayItem表示的数量的PlayItem()之后跟随有一个PlayListMark()。PlayListMark()是在与PlayList()对应的再现的时间轴上作为标记的Mark()的集合。将在后面参照图7详细描述PlayListMark()。
[对PlayItem()的描述]
图6示出了图5中所示的PlayList()中所包含的PlayItem()的内部结构。
PlayListMark()以length(16比特)开始,length表示包括length的大小的PlayItem()的大小。
length之后连续地跟随有Clip_information_file_name_length(16比特)和Clip_Information_file_name(可变长度)。Clip_information_file_name_length以字节表示Clip_Information_file_name的大小。Clip_Information_file_name表示与PlayItem()所再现的剪切片段流文件(图4中具有扩展名PS的文件)对应的剪切片段信息文件(图4中具有扩展名CLP的文件)的文件名。与用于剪切片段流文件和剪切片段信息文件的上述命名规则对应地,用Clip_Information_file_name来识别由PlayItem()所再现的剪切片段信息文件的文件名,而且可以标识剪切片段流文件。
Clip_Information_file_name之后连续地跟随有IN_time(32比特)和OUT_time(32比特)。
IN_time和OUT_time是标识由Clip_Information_file_name所标识的剪切片段流文件的再现开始位置和再现结束位置的时间信息。
IN_time可以将剪切片段流文件的中间位置(包括开始)指定为再现开始位置。OUT_time可以将剪切片段流文件的中间位置(包括结束)指定为再现结束位置。
PlayItem()从由Clip_Information_file_name所标识的剪切片段流文件的IN_time到OUT_time再现内容。有时将PlayItem()所再现的内容称为剪切片段。
[对PlayListMark()的描述]
图7示出了在图5中所示的PlayList()中所包含的PlayListMark()的内部结构。
如上所述,PlayListMark()是作为在与图5中所示的PlayList()对应的再现的时间轴上的标记的Mark()的集合。Mark()的数量是0或以上。一个Mark()至少具有表示在与PlayList()对应而执行的再现的时间轴上的一个时间(位置)的时间信息、表示Mark()的类型的类型信息、和当类型信息表示发生的事件的类型时事件的自变量的自变量信息。
换句话说,PlayListMark()以length(32比特)开始。Length表示包括length大小的PlayListMark()的大小。
length之后跟随有number_of_PlayList_marks(16比特)。number_of_PlayList_marks表示number_of_PlayList_marks之后的Mark()的数量。number_of_PlayList_marks之后跟随有number_of_PlayList_marks所表示的数量的Mark()。
Mark()以mark_type(8比特)开始。mark_type是上述类型信息并且表示mark_type所属于的Mark()的类型。
根据本实施方式,Mark()具有例如章节、索引和事件三种类型。
当Mark()的类型是章节(有时称为章节标记)时,其是作为PlayList()的一部分的搜索单元的章节的开始位置的标记。当Mark()的类型是索引(有时称为索引标记)时,其是作为章节的子部分单元的索引的开始位置。当Mark()的类型是事件(有时称为事件标记)时,Mark()时当与PlayList()对应地正在再现内容的同时发生的事件的位置的标记。将与已经发生的事件标记对应的事件通知给脚本控制模块211。
图8示出了在mark_type的值和Mark()的类型之间的关系。在图8中,章节标记的mark_type是1;索引标记的mark_type是2;而事件标记的mark_type是3。在图8中,将mark_type的8比特所表示的其他值,即0和4到255保留用于将来扩展。
在图7中,mark_type之后跟随有mark_name_length(8比特)。Mark()以mark_name_string结束。mark_name_length和mark_name_string用于描述Mark()的名称。mark_name_length表示mark_name_string的有效大小。mark_name_string表示Mark()的名称。因此,从mark_name_string的开始算起的mark_name_length所表示长度的字节表示Mark()的有效名称。
mark_name_length之后跟随有四个元素ref_to_PlayItem_id(16比特)、mark_time_stamp(32比特)、entry_ES_stream_id(8比特)和entry_ES_private_stream_id(8比特),它们将PlayList()中所定义的Mark()与剪切片段流文件关联。
ref_to_PlayItem_id描述ID作为分配给Mark()所属于的PlayItem()的序号。ref_to_PlayItem_id标识Mark()所属于的PlayItem()。因此,如图6中所描述的,标识剪切片段信息文件和剪切片段流文件。
mark_time_stamp表示在ref_to_PlayItem_id所标识的剪切片段流文件中Mark()表示的位置(时间)。
图9示出了在剪切片段流文件中所存储的PlayList()、PlayItem()、剪切片段和节目流的关系。
在图9中,PlayList()由顺序标号为ID#0、ID#1和ID#2的三个PlayItem()组成。在下面的描述中,将标号为ID#i的PlayItem()称为PlayItem#i。
在图9中,分别用剪切片段A、剪切片段B和剪切片段马C来表示作为由PlayItem#0、PlayItem#1和PlayItem#2所再现的内容的剪切片段。
剪切片段的实体是在图6中所示的PlayItem()的Clip_Information_file_name所标识的(也由剪切片段信息文件标识的)剪切片段流文件中所存储的节目流从IN_time到OUT_time。在图9中,将作为剪切片段A、剪切片段B和剪切片段C的实体的节目流分别表示为节目流A、节目流B和节目流C。
在图9中,在作为与PlayList()对应的再现的时间轴上的位置(时间)t0的标记的Mark()中,将ref_to_PlayItem_id和mark_time_stamp描述如下。
在图9中,由于时间t0是再现PlayItem#1的时间,所以ref_to_PlayItem_id描述1作为PlayItem#1的ID。由于在时间t0再现作为剪切片段B的实体的节目流B,所以mark_time_stamp描述存储与时间t0对应的节目流B的剪切片段流文件的时间。
在图7中,当Mark()与具体基本流关联时,entry_ES_stream_id和entry_ES_private_stream_id用于标识基本流。换句话说,entry_ES_stream_id描述与Mark()相关联的基本流的stream_id(PES_packet()包含基本流,将在后面参照图16A和图16B到图18A和18B来描述PES_packet())。在另一方面,entry_ES_private_stream_id描述与Mark()相关联的基本流的private_stream_id(private_stream1_PES_payload()的private_header()包含基本流,将在后面参照图21描述private_header())。
当再现已经复用了其视频流#1和流#2的剪切片段的视频流#1时,以及当正在再现视频流#2的同时章节时间需要改变时,在正在再现视频流#2的同时将视频流#1的stream_id和private_stream_id描述在章节标记时间处的Mark()的entry_ES_stream_id和entry_ES_private_stream_id中。
与具体基本流不相关联的Mark()的entry_ES_stream_id和entry_ES_private_stream_id例如是0。
entry_ES_private_stream_id之后跟随有mark_data(32比特)。当Mark()是事件标记时,mark_data是作为与事件标记一起发生的事件的自变量的自变量信息。当Mark()是章节标记或者索引标记时,可以将mark_data用作章节号码或者索引标记表示的章节号码或者索引号码。
[对Clip()的描述]
随后,将描述具有CLP扩展名的、并且存储在图4中所示的“CLIP”目录中的剪切片段信息文件的内部结构。
在图4中,在“CLIP”目录下存在有三个剪切片段信息文件“00001.CLP”、“00002.CLP”和“00003.CLP”。这些剪切片段信息文件包含表示在“STREAM”目录中所存储的剪切片段流文件“00001.PS”、“00002.PS”和“00003.PS”的特征的元数据。
图10示出了剪切片段信息文件Clip()的内部结构。
剪切片段信息文件Clip()以presentation_start_time和presentation_end_time(每个都32比特)开始。presentation_start_time和presentation_end_time表示与剪切片段信息文件Clip()对应的剪切片段流文件(中所存储的节目流)的开始时间和结束时间。将剪切片段流文件的时间描述为用作MPEG-2系统的时间的90kHz的倍数。
presentation_end_time之后跟随有reserved_for_word_alignment(7比特)和capture_enable_flag_Clip(1比特)。7比特的reserved_for_word_alignment用于字对准。capture_enable_flag_Clip如图5中的capture_enable_flag_PlayList一样是表示是否允许辅助使用视频数据的标志。
然而,图5中所示的capture_enable_flag_PlayList表示是否允许辅助使用与对应于PlayList()所再现的视频流对应的视频数据(属于PlayList())。相反地,图10所示的capture_enable_flag_Clip表示是否允许辅助使用与在对应于剪切片段信息文件Clip()的剪切片段流文件中所存储的视频流(视频数据的基本流)对应的视频数据。因此,在图5中所示的capture_enable_flag_PlayList在允许进行辅助使用的视频数据的单元(范围)方面与图10中的capture_enable_flag_Clip不同。
与图5中的capture_enable_flag_PlayList类似,在图10中所示的capture_enable_flag_Clip可以由多个比特而不是一个比特组成。
capture_enable_flag_Clip之后跟随有number_of_streams(8比特)。number_of_streams描述StreamInfo()的数量。因此number_of_streams之后跟随有number_of_streams表示的数量的StreamInfo()。
StreamInfo()以length(16比特)开始。length表示包括length的大小的StreamInfo()的大小。length之后跟随有stream_id(8比特)和private_stream_id(8比特)。stream_id和private_stream_id标识与StreamInfo()相关的基本流。
图11示出stream_id、private_stream_id和它们所标识的基本流的关系。
stream_id与MPEG2系统标准中所定义的相同。MPEG2系统标准定义针对基本流(数据)的每个属性(类型)的stream_id值。因此,只通过stream_id来标识MPEG2系统标准中所定义的基本流的属性。
本实施方式可以处理没有在系统标准中定义的基本流的属性。private_stream_id是标识没有在MPEG2系统标准中所定义的基本流的属性的信息。
图11示出具有四个属性的基本流的stream_id和private_stream_id,这些基本流是与MPEG系统中所定义的编码(解码)系统对应被编码的视频基本流、与自适应转换声音编码(ATARC)系统对应被编码的音频基本流(下面有时称为ATRAC音频流)、与线性脉冲代码调制(LPCM)系统对应被编码的音频基本流(下面有时称为LPCM音频流)、和字幕基本流(下面有时称为字幕流)。
MPEG2系统标准定义以范围从0xE0到0xEF的值对与MPEG中所定义的编码系统对应被编码的视频基本流进行复用(其中0x表示其之后的字符串以十六进制表示)。因此,可以用节目流复用16个与MPEG中所定义的编码系统对应被编码并且由范围从0xE0到0xEF中的stream_id所标识的视频基本流。
由于可以用范围从0xE0到0xEF中的stream_id来标识与MPEG中所定义的编码系统对应被编码视频基本流,所以不需要private_stream_id(可以被忽略)。
另一方面,在MPEG2系统中,针对ATRAC音频流、LPCM音频流和字幕流没有定义stream_id。
因此,根据本实施方式,对于在MPEG2系统中没有定义其stream_id的基本流来说,使用0xBD作为表示MPEG2系统中属性private_stream_1的值。此外,如图11中所示,由private_stream_id来标识这些基本流。
换句话说,由范围从0x00到0x0F中的private_stream_id来标识ATRAC音频流。因此,可以用节目流来复用16个ATRAC音频流。由范围从0x10 to 0x1F的private_stream_id来标识LPCM音频流。因此,可以用节目流来复用16个LPCM音频流。由范围从0x80到0x9F的private_stream_id来标识字幕流。因此,可以用节目流复用32个字幕流。
下面将要详细描述stream_id和private_stream_id。
在图10中,private_stream_id之后连续地跟随着StaticInfo()和reserved_for_word_alignment(8比特)。StaticInfo()描述当再现由stream_id和private_stream_id(在包括StaticInfo()的StreamInfo()中描述)所标识的基本流时不变化的信息。后面将参照图12描述StaticInfo()。
reserved_for_word_alignment用于字对准。
reserved_for_word_alignment之后跟随有number_of_DynamicInfo(8比特)。number_of_DynamicInfo表示number_of_DynamicInfo之后pts_change_point(每个32比特)和DynamicInfo()的组的数量。
因此,number_of_DynamicInfo之后跟随着由number_of_DynamicInfo所表示的数量的pts_change_point和DynamicInfo()的组。
pts_change_point表示与pts_change_point配对的DynamicInfo()的信息变为有效的时间。表示基本流的开始时间的pts_change_point等于在与存储基本流的剪切片段流文件对应的剪切片段信息文件Clip()的开始处所描述的presentation_start_time。
DynamicInfo()描述当正在再现由stream_id和private_stream_id所标识的基本流时变化的所谓动态信息。DynamicInfo()中所描述的信息在与DynamicInfo()配对的pts_change_point所表示的再现时间上变得有效。后面将参照图13描述DynamicInfo().
由number_of_DynamicInfo所表示的数量的pts_change_point和Dynamiclnfo()组之后跟随有EP_map()。将在后面参照图14描述EP_map()。
[对StaticInfo()的描述]
随后,将参照图12,详细描述在图10所示的StaticInfo()。
图12示出了StaticInfo()的语法。
StaticInfo()的内容根据对应基本流的属性(类型)变化。由图10中所示的、包括StaticInfo()的StreamInfo()中所包含的stream_id和private_stream_id来确定与StaticInfo()对应的基本流的属性。
当与StaticInfo()对应的基本流时视频流(stream==VEDIO)时,StaticInfo()由picture_size(4比特)、frame_rate(4比特)、cc_flag(1比特)和用于字对准的reserved_for_word_alignment组成。
picture_size表示与视频流对应的视频数据(用该视频数据显示的图像)的大小。frame_rate表示与视频流对应的视频数据的帧频率。cc_flag表示视频流是否包含闭路字幕数据。当视频流包含闭路字幕数据时,cc_flag为1。当视频流不包含闭路字幕数据时,cc_flag为0。
当与StaticInfo()对应的基本流是音频流时(stream==AUDIO),StaticInfo()由audio_language_code(16比特),channel_configuration(8比特),lfe_existence(1比特),sampling_frequency(4比特)和用于字对准的reserved_for_word_alignment组成。
audio_language_code描述表示在音频流中所包含的音频数据的语言的代码。channel_configuration表示在音频流中所包含的音频数据诸如单声道、立体声、多声道等之类的属性。lfe_existence表示音频流是否包含低频效果声道。当音频流包含低频效果声道时,lfe_existence为1。当音频流不包含低频效果声道时,lfe_existence为0。sampling_frequency是表示在音频流中所包含的音频数据的采样频率的信息。
当与StaticInfo()对应的基本流是字幕流时(stream==SUBTITLE),StaticInfo()由subtitle_language_code(16比特)、configurable_flag(1比特)和用于字对准的reserved_for_word_alignment组成。
subtitle_language_code描述表示字幕流中所包含的字幕数据的语言的代码。configurable_flag是表示是否允许字幕数据显示模式从默认显示模式改变的信息。当允许显示模式改变时,configurable_flag为1。当不允许显示模式改变时,configurable_flag为0。字幕数据的显示模式包括字幕数据的显示大小、显示位置、显示颜色、显示图案(例如,闪烁)、显示方向(垂直或者水平)等。
[对DynamicInfo()的描述]
随后将参照图13描述DynamicInfo()。
图13示出了DynamicInfo()的语法。
DynamicInfo()以用于字对准的reserved_for_word_alignment(8比特)开始。reserved_for_word_alignment之后的元素依赖于与DynamicInfo()对应的基本流的属性。由包括DynamicInfo()的、图12中所示的StreamInfo()中所包含stream_ID和private_stream_id来确定与DynamicInfo()对应的基本流的属性。
如图10中所示,DynamicInfo()描述当正在再现基本流时变化的动态信息。该动态信息不是特定的。然而,在图13中所示的实施方式中,与DynamicInfo()对应的基本流的数据,即在DynamicInfo()中描述作为针对基本流的处理的输出的数据的输出属性(从基本流中获得的数据的输出属性)。
具体地说,当与DynamicInfo()对应的基本流是视频流(stream==VIDEO)时,DynamicInfo()由display_aspect_ratio(4比特)和用于字对准的reserved_for_word_alignment组成。display_aspect_ratio描述视频流的视频数据的输出属性(显示模式),例如视频数据的宽高比。换句话说,display_aspect_ratio描述表示16∶9或者4∶3作为宽高比的信息。视频流的DynamicInfo()可以描述诸如视频数据的图像的大小(X像素×Y像素)以及宽高比之类的信息。
当与DynamicInfo()对应的基本流是音频流(stream==AUDIO)时,DynamicInfo()由channel_assignment(4比特bits)和用于字对准的reserved_for_word_alignment组成。当音频流包含音频数据的两个声道时,channel_assignment描述两个声道的输出属性(输出模式)。换句话说,channel_assignment描述表示立体声或者双声道(双语)的声道分配的信息。
当与DynamicInfo()对应的基本流是字幕流(stream==SUBTITLE)时,Dynamiclnfo()由用于字对准的reserved_for_word_alignment组成。换句话说,根据图13中所示的实施方式,针对字幕流不定义作为动态信息的输出属性。
[对EP_map()的描述]
下面将参照图14来详细描述图10中所示的EP_map()。
图14中示出了EP_map()的语法。
EP_map()描述可解码开始点(进入点)的信息,从该点可以解码用在与包括EP_map()的剪切片段信息文件Clip()对应的剪切片段流文件中所存储的节目流来复用的每个基本流。
可以通过计算获得具有固定速率的流的可解码开始点。然而,对于其大小以每个视频存取单元变化的、诸如与MPEG标志对应被编码的视频流之类的流来说,不能通过计算获得可解码开始点。为了随机存取数据,需要快速识别可解码开始点。用EP_map()可以快速地识别可解码开始点。
在MPEG2视频中,包括Sequence_header()的内画面的开始等是可解码开始点。
EP_map()以用于字对准的reserved_for_word_alignment(8比特)开始。reserved_for_word_alignment之后跟随有number_of_stream_id_entries(8比特)。number_of_stream_id_entries表示描述EP_map()中可解码开始点的信息的基本流的数量。
number_of_stream_id_entries之后跟随有number_of_stream_id_entries所表示的数量的标识基本流的信息和基本流的可解码开始点的信息的组。
换句话说,number_of_stream_id_entries之后跟随有stream_id(8比特)和private_stream_id(8比特)作为标识基本流的信息。private_stream_id之后跟随有number_of_EP_entries(32比特)。number_of_EP_entries表示由number_of_EP_entries之前的stream_id和private_stream_id所标识的可解码开始点的数量。
number_of_EP_entries之后跟随有由作为stream_id和private_stream_id所标识的基本流的可解码开始点的信息的number_of_EP_entries所表示的数量的PTS_EP_start(每个32比特)和RPN_EP_start(每个32比特)的组。
作为可解码开始点的信息元素之一的PTS_EP_start表示在存储用由stream_id和private_stream_id所标识的基本流复用的节目流的剪切片段流文件中的可解码开始点的时间(再现时间)。
作为可解码开始点的信息的另一个元素的RPN_EP_start,描述存储用由stream_id和private_stream_id所标识的基本流复用的节目流的剪切片段流文件中可解码开始点的位置作为节目流的pack()数量。根据本实施方式,pack()的大小是固定的2048字节。此外,根据本实施方式,盘101(图1)的一个扇区是2048字节。
视频流的可解码开始点(进入点)之前紧邻有private_stream_2分组(作为private_stream_2的属性的PES_packet())。private_stream_2分组存储用于解码两个相邻private_stream_2分组之间所存储的视频流的信息。因此,对于视频流来说,作为可解码开始点的信息的RPN_EP_start描述之后紧随有实际可解码开始点的private_stream_2分组的开始位置。
针对由EP_map()中的stream_id和private_stream_id所标识的每个基本流,将作为可解码开始点的信息的PTS_EP_start和RPN_EP_start的组以升序预先存储。因此,可以二分搜索作为可解码开始点的信息的PTS_EP_start和RPN_EP_start的组。
在例如日本专利公开第2000-341640号(日本专利申请第HEI 11-317738号)中描述了用于可变速率流和其大小以视频存取单元不同的流的随机存取方法。
[对剪切片段流文件的描述]
随后将描述图4中所示的“STREAM”目录中所存储的、具有扩展名PS的剪切片段流文件(图4中的“00001.PS”、“00002.PS”和“00003.PS”)的内部结构。
剪切片段流文件在MPEG-2系统(ISO/IEC 13818-1)中所描述的MPEG2_Program_Stream()基础上组成。
图15A和15B示出了在MPEG-2系统(ISO/IEC 13818-1:20000)中所描述的表2-31、表2-32和表2-33。
在剪切片段流文件中所存储的节目流是在MPEG2系统标准的表2-31中所定义的MPEG2_Program_Stream()。该节目流由至少一个pack()和一个MPEG_program_end_code组成。在日本专利第2785220号中描述了MPEG2_Program_Stream()。
一个pack()由如MPEG-2系统标准的表2-32中所定义的一个Pack_header()和任意数量的PES_packet()组成。在MPEG2系统标准的表2-33中详细描述了Pack_header()。
在MPEG2系统标准中,pack()具有可变长度的大小。然而,如果图14中所示,假设pack()的大小是固定的2048字节。在本例中,一个pack()的PES_packet()的数量是1、2或者3。当Pack()以private_stream_2分组开始时,其后总跟随有对应视频流的PES_packet()(在相同Pack()中)。此外,作为第三PES_packet(),可以有padding_packet。private_stream_2分组总出现在Pack()的开始。
当Packet()不以private_stream_2分组开始时,Pack()以包含视频数据、音频数据、字幕数据等的内容数据的PES_packet()开始。第二PES_packet()可以是padding_packet。
图16A和16B到图18A和18B示出在MPEG2系统标准的表2-17中所定义的PES_packet()。
PES_packet()主要由packet_start_code_prefix、stream_id、PES_packet_length(它们在图16A和16B中示出)、对应于stream_id等变化的头部位置(包括stuffing_byte)(这些部分在图16A和图16B到图18A和图18B中示出)、以及PES_packet_data_byte(在图18A和图18B中示出)。当PES_packet()是padding_packet(stream_id==padding_stream)时,替代于PES_packet_data_byte重复需要数量的padding_byte(0xFF)。
如图16A、16B、17A、17B和17C中所示,PES_packet()的头部位置可以描述表示所谓呈现时间戳(PTS)的显示定时的信息,和表示所谓解码时间戳(DTS)的解码定时的信息。根据本实施方式,将PTS添加到所有存取单元的每一个中(包括在MPEG2系统中所定义的基本流的解码单元)。当在MPEG2系统中指定时,添加DTS。
将用节目流复用的基本流存储在PES_packet()的PES_packet_data_byte(图18A和图18B)中。PES_packet()的stream_id描述与基本流的属性对应的值来标识在PES_packet_data_byte中所存储的基本流。
在PES_packet()的stream_id中所描述的值和基本流的属性(类型)之间的关系定义在MPEG2系统标准的表2-18中。图19A和图19B示出了MPEG-2系统标准的表2-18。
根据本发明的实施方式,将图20中示出的值用作在图19A和图19B中所示出的MPEG2系统标准中所定义的stream_id。
换句话说,根据本实施方式,使用五种模式10111101B、10111110B、10111111B、110xxxxxB和1110xxxxB作为stream_id,其中“x”表示0和1之一。
与图20中所示的表对应,具有private_stream_1的属性的基本流的PES_packet()的stream_id是10111110B。与图20中所示的表对应,padding_packet的PES_packet()的stream_id是10111110B。根据图20中所示的表,具有private_stream_2的属性的基本流的PES_packet()的stream_id是10111111B。
在MPEG中定义的音频流(音频基本流)的PES_packet()的是110xxxxxB。110xxxxxB的最低五位比特xxxxx是标识音频流的音频流字节。可以用节目流来复用可以由音频流号码标识的32(=25)个音频流(在MPEG中定义的音频流)。
在MPEG中定义的视频流(视频基本流)的PES_packet()的stream_id是1110xxxxB。1110xxxxB的最低四位比特xxxx是标识视频流的视频流号码。可以用节目流复用16(=24)个视频流(在MPEG中定义的视频流)。
其stream_id是110xxxxB的PES_packet()用于存储在MPEG中定义的视频流。其stream_id是110xxxxxB的PES_packet()用于存储在MPEG中定义的音频流。在另一方面,在MPEG中没有定义用于与编码系统(例如,ATRAC系统)对应的基本流的PES_packet()的stream_id。因此,类似于MPEG中所定义的视频流和音频流,不能将与在MEPG中没有定义的编码系统对应的基本流存储在带有stream_id的PES_packet()中。
因此,根据本实施方式,扩展private_stream_1的PES_packet()的PES_packet_data_byte以存储与在MPEG中没有定义的编码系统对应的基本流。
将扩展的private_stream_1的PES_packet()的PES_packet_data_byte描述为private_stream1_PES_payload()。
[对private_stream1_PES_payload()的描述]
图21示出了private_stream1_PES_payload()的语法。
private_streami_PES_payload()由private_header()和private_payload()组成。private_payload()存储诸如与在MPEG系统中没有定义的编码系统对应被编码ATRAC音频流、LPCM音频流、字幕流之类的基本流。
private_header()以private_stream_id(8比特)开始。private_stream_id是标识在private_payload()中所存储的基本流的标识信息。private_stream_id具有与基本流的属性(类型)对应的后续值。
图22示出了private_stream_id的值和在private_payload()中所存储的基本流的属性的关系。
图22示出三种模式0000xxxxB、0001xxxxB和100xxxxxB作为private_stream_id的值,其中如图20中的情况类似,“x”是0和1的任何值。
根据图22中的表,ATRAC流的private_payload()的private_stream1_PES_Payload()的private_stream_id是0000xxxxB。0000xxxxB的最低四比特xxxx是标识ATRAC音频流的音频流号码。可以用节目流(MPEG2_Program_Stream())来复用能够由音频流号码标识的16(=24)个ATRAC音频流。
根据图22中所示的表,LPCM音频流的private_payload()的private_stream1_PES_Payload()的private_stream_id是0001xxxxB。0001xxxxB的最低四个比特xxxx是标识LPCM音频流的音频流号码。可以用节目流来复用能够由音频流号码标识的16(=24)个。
根据图22中所示的表,字幕流的private_payload()的private_stream1_PES payload()的private_stream_id是100xxxxxB。100xxxxxB的最低五个比特xxxxx是标识字幕流的字幕流号码。可以用节目流复用32(=25)个子幕流。
图11示出图20和图22的关系。
在图21中,private_streami_PES_payload()的private_stream_id之后的元素根据private_payload()中所存储的基本流的属性变化。在private_payload()中所存储的基本流的属性通过在private_header()开始处的private_stream_id确定。
当在private_payload()中所存储的基本流是ATRAC音频流时(private_stream_id==ATRAC),为了将来扩展描述reserved_for_future_use(8比特)。reserved_for_future_use之后跟随有AU_locator(16比特。AU_locator表示在AU_locator之后紧邻的位置的基础上在private_payload()中所存储的ATRAC音频流的音频存取单元(ATRAC音频存取单元)(音频帧)的开始位置。当private_payload()不存储音频存取单元时,在AU_locator中描述例如0xFFFF。
当在private_payload()中所存储的基本流是LPCM音频流时(private_stream_id==LPCM),连续描述fs_flag(1比特)、reserved_for_future_use(3比特)、ch_flag(4比特)和AU_locator(16比特)。
fs_flag表示在private_payload()中所存储的LPCM音频流的采样频率。当LPCM的采用频率时48kHz时,fs_flag是0。当LPCM音频流的采用频率是44.1kHz时,fs_flag是1。
ch_f lag表示在private_payload()中所存储在LPCM音频流的声道数量。当LPCM音频流是单声道的时,ch_flag为1。当LPCM音频流是立体声的时,ch_flag为2。
AU_locator表示在AU_locator之后紧邻的位置的基础上,在private_payload()中所存储的LPCM音频流的音频存取单元(LPCM音频存取单元)(音频帧)的开始位置。当private_payload()不存储音频存取单元时,在AU_locator中描述例如0xFFFF。
当在private_payload()中所存储的基本流是字幕流时(private_stream_id==SUBTITLE),为了将来扩展而描述reserved_for_future_use(8比特)。reserved_for_future_use之后紧跟有AU_locator(16比特)。AU_locator表示在AU_locator之后紧邻的位置的基础上,在private_payload()中所存储的字幕流的字幕存取单元的开始位置。当private_payload()不存储字幕存取单元时,在AU_locator中描述例如0xFFFF。
[对private_stream2_PES_Payload()的描述]
图23示出了private_stream2_PES_Payload()的语法。
private_stream2_PES_Payload()是private_stream_2的private_payload()的PES_packet_data_byte(图18A和图18B)的扩展,也就是,private_stream_2的PES_packet()的PES_packet_data_byte的扩展。private_stream2_PES_payload()描述用于解码视频流的信息。
根据本实施方式,private_stream_2的PES_packet()之前紧邻着视频流的可解码开始点。因此,根据本实施方式,当从节目流中检测到private_stream_2的PES_packet()时,可以解码PES_packet()之后紧邻的视频流。
在图14中示出的EP_map()的RPN_EP_start表示用于视频流的private_stream_2的PES_packet()的开始位置。
private_stream2_PES_Payload()以用于将来扩展的reserved_for_future_use(8比特)开始。reserved_for_future_use之后连续地跟随有video_stream_id(8比特)、1stRef_picture(16比特)、2ndRef_picture(16比特)、3rdRef_picture(16比特)、4thRef_picture(16比特)、au_information()和VBI()。
video_stream_id描述private_stream_2的PES_packet()之后紧邻的视频流的PES_packet()的stream_id(与该PES_packet()的stream_id相同)。video_stream_id标识用private_stream_2的PES_packet()(PES_packet()的private_stream2_PES_payload())中所存储的信息进行解码的视频流(存储视频流的PES_packet())。
1stRef_picture、2ndRef_picture、3rdRef_picture和4thRef_picture分别表示从private_stream_2的PES_packet()到有video_stream_id所标识的视频流的下一个private_stream_2的PES_packet()、包括第一、第二、第三和第四参考图像的最后pack()的位置的相对值。将1stRef_picture、2ndRef_picture、3rdRef_picture和4thRef_picture的细节公开为日本专利公开第HEI 09-46712号(日本专利申请第HEI 07-211420号)中的bytes_to_first_P_pic和bytes_to_second_P_pic。
au_information()描述关于从private_stream_2的PES_packet()到private_stream_2的PES_packet()的视频流的视频存取单元的信息。将参照图24来详细描述au_information()。
VBI()用于描述关于闭路字幕的信息
针对每个视频流的可解码开始点描述具有private_stream2_PES_payload()的private_stream_2的PES_packet()。
图24示出了图23中所示的au_information()的语法。
au_information()以length(16比特)开始。length表示包括length的大小的au_information()的大小。length之后连续跟随有reserved_for_word_alignment(8比特)和number_of_access_unit(8比特)。reserved_for_word_alignment用于字对准。
number_of_access_unit表示从private_stream_2的PES_packet()到下一个private_stream_2的PES_packet()所存储的存取单元(画面)的数量。
换句话说,number_of_access_unit表示在其private_stream2_PES_payload()中的video_stream_id是相同的private_stream_2的PES_packet()中,从au_information()到下一个au_information()(或者当au_information()是其最后的au_information()时的剪切片段流文件的结尾)的video_stream_id所表示的视频流中所包含的存取单元(画面)数量。
number_of_access_unit之后跟随有与number_of_access_unit对应的for循环的内容。换句话说,描述关于从包括number_of_access_unit的private_stream_2的PES_packet()到随后private_stream_2的PES_packet()的至少一个视频存取单元的信息。
在for循环中所描述的信息(关于视频存取单元的信息)如下。
该for循环包含pic_struct_copy(4比特)、au_ref_flage(1比特)、AU_length(21比特)和保留的。
pic_struct_copy描述对于与MPEG4-AVC(ISO/IEC 14496-10)对应的视频存储单元,在ISO/IEC 14496-10中所定义的pic_struct()的拷贝。pic_struct()是表示例如显示画面帧或者在显示画面的最上一场之后显示最下一场的信息。
au_ref_flage表示对应存取单元是否是当对另一个存取单元(的画面)解码时所参考的参考画面。当对应存取单元是参考画面时,au_ref_flage为1。当对应存取单元不是参考画面时,au_ref_flage为0。
AU_length以字节表示对应存取单元的大小。
[在盘101上所记录的数据的具体例子]
图25到图28示出了具有上述格式并且已经被记录在图1中所示的盘101上的数据的具体例子。
在图25到图28中,使用与MPEG2视频对应的视频流和与ATRAC对应的音频流。然而,在本发明中使用的视频流和音频不限于这些流。换句话说,还可以使用与MPEG4 Visual对应的视频流、与MPEG4-AVC对应的视频流等。在另一方面,可以使用与MPEG1/2/4音频对应的音频流、与LPCM音频对应的音频流等。
与视频流和音频流不同,可以不在相同的间隔上连续地解码和显示(输出)字幕流。换句话说,有时将字幕流从图2A和2B中所示的缓存器控制模块215提供给字幕解码器控制模块218。字幕解码器控制模块218解码字幕流。
图25到图28示出了“PLAYLIST.DAT”文件的具体例子,在三个剪切片段信息文件“00001.CLP”、“00002.CLP”和“00003.CLP”的情况下将三个剪切片段信息文件“00001.CLP”、“00002.CLP”和“00003.CLP”等存储在“CLIP”目录中,并且将与三个剪切片段信息文件“00001.CLP”、“00002.CLP”和“00003.CLP”对应的三个剪切片段流文件“00001.PS”、“00002.PS”和“00003.PS”存储在“STREAM”目录中。然而,在图25到图28中,省略诸如“PLAYLIST.DAT”文件之类的数据部分。
图25示出了在图5中所示的“PLAYLIST.DAT”的具体例子。
在图25中,number_of_PlayLists是2。因此,在“PLAYLIST.DAT”文件中所存储的PlayList()的数量是2。在图25中,两个PlayList()是PlayList#0和PlayList#1。
第一PlayList(),即PlayList#0,的capture_enable_flag_PlayList是1。因此,允许辅助使用与PlayList#0对应再现的视频数据。在另一方面,PlayList#0的number_of_PlayItems是2。因此在PlayList#0中所包含的PlayItem()的数量是2。在图2A和图2B中所示的“PlayList#0”字段下面描述作为两个PlayItem()的PlayItem#0和PlayItem#1的具体例子。
在PlayList#0中所包含的作为第一PlayItem()的PlayItem#0中,在图6中所描述的Clip_Information_file_name是“00001.CLP”,IN_time是180,090,OUT_time是27,180,090。因此,由PlayList#0的PlayItem#0所再现的剪切片段是从与剪切片段信息文件“00001.CLP”对应的剪切片段流文件“00001.CLP”的时间180,090到27,180,090。
在PlayList#0中所包含的作为第二PlayItem()的PlayItem#1中,在图6中所描述的Clip_Information_file_name是“00002.CLP”,IN_time是90,000,OUT_time是27,090,000。因此,由PlayList#0的PlayItem#1所再现的剪切片段是从与剪切片段信息文件“00002.CLP”对应的剪切片段流文件“00002.PS”的时间90,000到27,090,000。
在图25中,在作为第二PlayList()的PlayList#1中,capture_enable_flag_PlayList为0。因此不允许辅助使用与PlayList#1对应再现的视频数据(禁止辅助使用)。在PlayList#1中,number_of_PlayItems为1。因此,在PlayList#1中所包含的PlayItem()数量为1。在图25中,在“PlayList#1”字段下面描述作为一个PlayItem()的PlayItem#0的具体例子。
在一个PlayList#1中所包含的作为PlayItem()的PlayItem#0中,在图6中所描述的Clip_Information_file_name是“00003.CLP”,IN_time是90,000,OUT_time是81,090,000。因此,由PlayList#1的PlayItem#0所再现的剪切片段是从与剪切片段信息文件“00003.CLP”对应的剪切片段流文件“00003.PS”的时间90,000到81,090,000。
图26A和图26B示出了在图10中所描述的剪切片段信息文件Clip()的具体例子。因此,图26A和图26B示出了剪切片段信息文件“00001.CLP”、“00002.CLP”和“00003.CLP”。
在剪切片段信息文件“00001.CLP”中,presentation_start_time是90,000而presentation_end_time是27,990,000。因此,在与剪切片段信息文件“00001.CLP”对应的剪切片段流文件“00001.PS”中所存储的节目流可以使用310秒的内容(27,990,000-90,000/90kHz)。
在剪切片段信息文件“00001.CLP”中,capture_enable_flag_Clip为1。因此,允许辅助使用与剪切片段信息文件“00001.CLP”对应的剪切片段流文件“00001.PS”中所存储的节目流复用的视频流(与其对应的视频数据)。
在图26A和图26B中,在剪切片段信息文件“00001.CLP”中,number_of_stream为4。因此,用在剪切片段流文件“00001.CLP”中所存储的节目流复用四个基本流。
假设将四个基本流表示为stream#0、stream#1、stream#2和stream#3,在图26A和图26B中所示的“00001.CLP”字段下面描述作为stream#0、stream#1、stream#2和stream#3的四个基本流的StreamInfo()(图10)的具体例子。
在剪切片段流文件“00001.CLP”的第一基本流stream#0中,stream_id为0xE0。因此,如图20和图22(或者图10)中所示,基本流stream#0是视频流。根据本实施方式,private_stream_id与视频流不相关。在图26A和图26B中,private_stream_id为0x00。
在作为剪切片段流文件“00001.CLP”的第一基本流的视频流stream#0中,在StreamInfo()中所包含的StaticInfo()(图12)的picture_size是“720×480”,frame_rate是“29.97Hz”,cc_flag是“是”。因此,视频流stream#0是具有720×480像素和29.97Hz帧周期的视频数据。此外,视频流stream#0包含闭路字幕数据。
在作为第一剪切片段流文件“00001.CLP”的第一基本流中视频流中,StreamInfo()(图10)的number_of_DynamicInfo为0。没有pts_change_point和DynamicInfo()对。
在剪切片段流文件“00001.CLP”的第二基本流stream#1中,stream_id为0xBD,private_stream_id是0x00。因此,如在图20和图22中所述,基本流stream#1是ATRAC音频流。
在作为剪切片段流文件“00001.CLP”的第二基本流的ATRAC音频流stream#1中,在SteamInfo()中所包含的StaticInfo()(图12)的audio_language_code是“Japanese(日语)”,channel_configuration是“STEREO(立体声)”,lfe_existence为“否”,sampling_frequency是“48kHz”。因此,ATRAC音频流stream#1是日语和立体声音频数据。此外,ATRAC音频流stream#1不包含低频效果声道而且采样频率是48kHz。
此外,在作为剪切片段流文件“00001.CLP”的第二基本流的ATRAC音频流stream#1中,StreamInfo()(图10)的number_of_DynamicInfo为0。没有pts_change_point和DynamicInfo()对。
在剪切片段流文件“00001.CLP”的第三基本流stream#2中,stream_id是0xBD,private_stream_id是0x80。因此,如图20和图22中所述,基本流stream#2是字幕流。
在作为剪切片段流文件“00001.PS”的第三基本流的字幕流stream#2中,在StreamInfo()中所包含的StaticInfo()的subtitle_language_code是“Japanese(日语)”,configurable_flag是0。因此,字幕流stream#2是日语字幕数据。此外,不允许改变该显示模式(禁止改变)。
在作为剪切片段流文件“00001.CLP”的第三基本流的字幕流stream#2中,StreamInfo()的number_of_DynamicInfo是0。没有pts_change_point和DynamicInfo()对。
在剪切片段流文件“00001.CLP”的第四基本流stream#3中,stream_id为0xBD,private_stream_id是0x81。因此,如图20和22中所示,基本流stream#3是字幕流。
为了从作为第四基本流的字幕流stream#3中区分作为剪切片段流文件“00001.CLP”的第三基本流的字幕流stream#2,它们的private_stream_id分别是0x80和0x81。
在作为剪切片段流文件“00001.CLP”的第四基本流的字幕流stream#3中,在StreamInfo()中所包含的StaticInfo()(图12)的subtitle_language_code是“Japanese(日语)”,configurable_flag是1。因此,字幕流stream#3是日语字幕数据。此外,允许改变字幕流stream#3的显示模式。
在作为剪切片段流文件“00001.PS”的第四基本流的字幕流stream#2中,StreamInfo()(图10)的number_of_DynamicInfo是0。没有pts_change_point和DynamicInfo()对。
在图26A和图26B中,在剪切片段信息文件“00002.CLP”中,presentation_start_time是90,000,而presentation_end_time是27,090,000。因此,在与剪切片段信息文件“00002.CLP”对应的剪切片段流文件“00002.PS”中所存储的节目流可以使用300秒的内容(27,090,000-90,000/90kHz)。
在剪切片段信息文件“00002.CLP”中,capture_enable_flag_Clip为0。因此,不允许辅助使用(禁止辅助使用)与剪切片段信息文件“00002.CLP”对应的剪切片段流文件“00002.PS”中所存储的节目流复用的视频流(与其对应的视频数据)。
在图26A和图26B中,在剪切片段信息文件“00002.CLP”中,number_of_stream是4。因此,与上述剪切片段流文件“00001.CLP”类似,将在对应剪切片段流文件“00002.PS”中所存储的节目与四个基本流复用。
假设将四个基本流表示为stream#0、stream#1、stream#2和stream#3,在图26A和图26B中所示的“00002.CLP”字段下面描述作为stream#0、stream#1、stream#2和stream#3的四个基本流的StreamInfo()(图10)的具体例子。
在图26A和图26B中,剪切片段流文件“00002.PS”的第一到第四基本流的StreamInfo()的内容与剪切片段流文件“00001.PS”的第一到第四基本流的那些相同。因此,将省略对它们的详细描述。
如上所述,剪切片段流文件“00002.PS”的第一到第四基本流stream#0到stream#3的StreamInfo()的内容与剪切片段流文件“00001.CLP”的第一到第四基本流stream#0到stream#3的那些相同。因此,剪切片段流文件“00002.PS”的第一基本流stream#0是视频流。第二基本流stream#1是ATRAC音频流。第三和第四基本流stream#2和stream#3是字幕流。
在图26A和图26B中,在剪切片段信息文件“00003.CLP”中,presentation_start_time是90,000,而presentation_end_time是81,090,000。因此,在与剪切片段信息文件“00003.CLP”对应的剪切片段流文件“00003.PS”中所存储的节目流可以使用900秒的内容(81,090,000-90,000/90kHz)。
在剪切片段信息文件“00003.CLP”中,capture_enable_flag_Clip为1。因此,允许辅助使用与剪切片段信息文件“00003.CLP”对应的剪切片段流文件“00003.PS”中所存储的节目流复用的视频流。
在图26A和图26B中,在剪切片段信息文件“00003.CLP”中,number_of_stream是3。因此,将在对应剪切片段流文件“00003.PS”中所存储的节目与三个基本流复用。
假设将三个基本流表示为stream#0、stream#1和stream#2,在图26A和图26B中所示的“00003.CLP”字段下面描述作为stream#0、stream#1和stream#2的三个流的StreamInfo()(图10)的具体例子。
在剪切片段流文件“00003.PS”的第一基本流stream#0中,stream_id是0xE0。因此,如图20和图22(或者图11)中所述,基本流stream#0是视频流。与剪切片段流文件“00001.CLP”的第一基本流stream#0类似,private_stream_id是0x00。
在作为剪切片段流文件“00003.PS”的第一基本流的视频流stream#0中,在StreamInfo()中所包含的StaticInfo()(图12)的picture_size是“720×480”,frame_rate是“29.97Hz”,cc_flag是“否”。因此,视频流stream#0是具有720×480像素和29.97Hz帧周期的视频数据。视频流stream#0不包含闭路字幕数据。
在作为第一剪切片段流文件“00003.PS”的第一基本流中视频流stream#0中,StreamInfo()(图10)的number_of_DynamicInfo为2。因此,在StreamInfo()中描述两组pts_change_point和DynamicInfo()。
在剪切片段流文件“00003.PS”的第二基本流stream#1中,stream_id为0xE1。因此,如在图20和图22(或者图11)中所述,基本流stream#1是视频流。为了从作为第二基本流的字幕流stream#1中区分作为剪切片段流文件“00003.PS”的第一基本流的视频流stream#1,它们的private_stream_id分别是0xE0和0xE1。与剪切片段流文件“00001.CLP”的第一基本流stream#0类似,private_stream_id为0x00。
在作为剪切片段流文件“00003.PS”的第二基本流的视频流stream#1中,在StreamInfo()中所包含的StaticInfo()(图12)的picture_size、frame_rate和cc_flag与作为第一基本流的视频流stream#0的那些相同。因此,作为剪切片段流文件“00003.PS”的第二基本流的视频流stream#1是具有720×480像素和29.97Hz帧周期的视频数据。视频流stream#1不包含闭路字幕数据。
在作为剪切片段流文件“00003.PS”的第二基本流的字幕流stream#1中,StreamInfo()(图10)的number_of_DynamicInfo是0。没有pts_change_point和DynamicInfo()对。
在剪切片段流文件“00003.PS”的第三基本流stream#2中,stream_id是0xBD,private_stream_id是0x00。因此,如图20和图22中所述,基本流stream#2是ATRAC流。
在作为剪切片段流文件“00003.PS”的第三基本流的ATRAC音频流stream#2中,在SteamInfo()中所包含的StaticInfo()(图12)的audio_language_code、channel_configuration、lfe_existence和sampling_frequency与作为剪切片段流文件“00001.CLP”的第二基本流的ATRAC音频流stream#1的那些相同。因此,作为剪切片段流文件“00003.PS”的第三基本流的ATRAC音频流stream#2是日语和立体声音频数据。此外,ATRAC音频流stream#2不包含低频效果声道。ATRAC音频流stream#2采样频率是48kHz。
在作为剪切片段流文件“00003.PS”的第三基本流的ATRAC音频流stream#2中,StreamInfo()(图10)的number_of_DynamicInfo为3。因此,StreamInfo()描述三组pts_change_point和DynamicInfo()。
图27示出了在图10中所描述的剪切片段信息文件Clip()的EP_map()的具体例子。图27示出了图4中所示的剪切片段信息文件“00001.CLP”的、图14中所示的EP_map()的具体例子。
在图27中,在EP_map()中,number_of_stream_id_entries为1。因此,EP_map()描述一个基本流的可解码开始点的信息。
在图27中所示的EP_map()中。stream_id为0xE0。因此,如图20和22中所述,EP_map()描述由作为0xE0的stream_id所标识的视频流的可解码开始点的信息(PTS_EP_start和RPN_EP_start(图14))。在图27中,EP_map()是剪切片段信息文件“00001.CLP”。如图26A和图26B中所述,在与剪切片段信息文件“00001.CLP”对应的剪切片段流文件“00001.PS”中,其stream_id为0xE0的基本流是剪切片段流文件“00001.PS”的第一视频流。因此,在图27中所示的EP_map()中的信息是视频流stream#0的可解码开始点的PTS_EP_start和RPN_EP_start。
在图27中,描述了剪切片段流文件“00001.PS”的第一视频流stream#0的可解码开始点的最先五个PTS_EP_start和RPN_EP_start,但是省略了第六和之后的PTS_EP_start和RPN_EP_start。
在图27中所示的EP_map()中,private_stream_id为0x00。当stream_id表示视频流时,忽略private_stream_id。
图28示出了在图25中所描述的PlayList#0和PlayList#1(图5中示出的PlayList())的PlayListMark()的具体例子。
在图28的上部的表表示PlayList#0的PlayListMark()(图7)。
在图28上部示出的表中,PlayList#0的PlayListMark()的number_of_PlayList_marks是7。因此,PlayList#0中所包含的Mark()(其PlayListMark())的数量为7。
在图28上部的表中,作为在PlayList#0中所包含的七个Mark()的第一Mark()的Mark#0的mark_type(图7)是“Chapter”。因此,Mark#0是章节标记。此外,由于ref_to_PlayItem_id(图7)是0,Mark#0属于图25中所示的两个PlayItem#0和#1的PlayItem#0。此外,Mark#0的mark_time_stamp是180,090。因此,Mark#0是由PlayList#0中所包含的PlayItem#0所再现的剪切片段流文件的时间(再现时间)180,090的标记。Mark#0的entry_ES_stream_id和entry_ESprivate_stream_id为0。因此,不将Mark#0与任何基本流相关联。此外,Mark#0的mark_data是1。因此,Mark#0表示其号码为1的章节。
由PlayList#0中所包含的PlayItem#0所再现的剪切片段流文件是PlayItem#0(图25)的Clip_Information_file_name中所描述的“00001.CLP”所标识的剪切片段流文件“00001.PS”。因此,Mark#0的mark_time_stamp所表示的时间180,090是剪切片段流文件“00001.PS”的时间。
在图28上部的表中,作为在PlayList#0中所包含的七个Mark()的第五Mark()的Mark#4是与第一Mark#0相同的章节标记。
换句话说,作为第五Mark()的Mark#4的mark_type(图7)是“Chapter”。此外,ref_to_PlayItem_id(图7)是1。因此,Mark#4属于图25中所示的、包含在PlayList#0中的两个PlayItem#0和#1中的PlayItem#1。Mark#4的mark_time_stamp是90,000。因此,Mark#4是由PlayList#0中所包含的PlayItem#1所再现的剪切片段流文件的时间90,000的标记。此外,Mark#0的entry_ES_stream_id和entry_ES_private_stream_id为0。因此,不将Mark#4与任何基本流相关联。此外,Mark#4的mark_data是2。因此,Mark#0表示其号码为2的章节。
在本例中,由PlayList#0中包含的PlayItem#1所再现的剪切片段流文件是由PlayItem#1(图25)的Clip_Information_file_name中所描述的“00002.CLP”所标识的剪切片段流文件“00002.PS”。因此,由Mark#4的mark_time_stamp所表示的时间90,000是剪切片段流文件“00002.PS”的时间。
在图28上部示出的表中,作为PlayList#0中所包含的七个Mark()的第二Mark()的Mark#1的mark_type(图7)是“Index”。因此,Mark#1是索引标记。此外,Mark#1的ref_to_PlayItem_id(图7)为0。因此,Mark#1属于在PlayList#0中所包含的、图25中所示的两个PlayItem#0和#1之中的PlayItem#0。此外,Mark#1的mark_time_stamp为5,580,090。因此,Mark#1是由PlayList#0中所包含的PlayItem#0所再现的剪切片段流文件的时间5,580,090的标记。此外,Mark#1的entry_ES_stream_id和entry_ES_private_stream_id两者都为0。因此,Mark#1不与任何基本流关联。此外,Mark#1的mark_data为1。因此,Mark#1表示其号码为1的索引。
在本例中,由PlayList#0中所包含的PlayItem#0所再现的脚本流文件是如上所述的剪切片段流文件“00001.PS”。因此,由Mark#1的mark_time_stamp所表示的时间5,580,090是剪切片段流文件“00001.PS”的时间。
在图28上部的表中,作为在PlayList#0中所包含的七个Mark()的第三、第六和第七Mark()的Mark#2、Mark#5和Mark#6是类似第二Mark#1的索引标记。
在图28上部示出的表中,作为在PlayList#0中所包含的七个Mark()的第四Mark()的Mark#3的mark_type(图7)是“Event”。因此,Mark#3是事件标记。此外,Mark#3的ref_to_PlayItem_id(图7)为0。因此,Mark#3属于在PlayList#0中所包含的、图25中所示的两个PlayItem#0和#1之中的PlayItem#0。此外,Mark#3的mark_time_stamp为5,580,090。因此,Mark#1是由PlayList#0中所包含的PlayItem#0所再现的剪切片段流文件的时间16,380,090的标记。Mark#3的entry_ES_stream_id和entry_ES_private_stream_id两者都为0。因此,Mark#3不与任何基本流关联。此外,Mark#3的mark_data为1。因此,Mark#3导致带有自变量0的事件发生。
如上所述,由PlayList#0中所包含的PlayItem#0所再现的剪切片段流文件是剪切片段流文件“00001.PS”。由Mark#3的mark_time_stamp所表示的时间16,380,090是剪切片段流文件“00001.PS”的时间。
在图28上部的表中,在PlayList#0的PlayListMark()的表右侧上左字段中描述Mark()所属于的PlayItem()的累积时间。在该表的右侧上的右字段中描述PlayList#0的累积时间。
在图28下部示出的表代表PlayList#1(图7)的PlayListMark()。
在图28下部的表中,PlayList#1的PlayListMark()的number_of_PlayList_marks是3。因此,在PlayList#1中包含的Mark()(其PlayListMark())的数量为3。
在图28下部的表中,作为PlayList#1中所包含的三个Mark()的第一Mark()的Mark#0的mark_type(图7)是“Chaper”。因此,Mark#0是章节标记。此外,Mark#0的ref_to_PlayItem_id(图7)为0。因此,Mark#0属于PlayList#1中所包含的、图25中所示的一个PlayItem#0。Mark#0的mark_time_stamp为90,000。因此,Mark#0是PlayList#1中所包含的PlayItem#0所再现的剪切片段流文件的时间90,000的标记。Mark#0的entry_ES_stream_id和entry_ES_privatestream_id两者都为0。因此,Mark#0不与任何基本流相关联。此外,Mark#0的mark_data为0。因此,Mark#0表示其号码为0的章节。
在PlayList#1中所包含的PlayItem#0所再现的剪切片段流文件是在PlayItem#0(图25)的Clip_Information_file_name中所描述的“00003.CLP”所标识的剪切片段流文件“00003.PS”。因此,Mark#0的mark_time_stamp所表示的时间90,000是剪切片段流文件“00003.PS”的时间。
在图28下部的表中,作为PlayList#1中所包含的三个Mark()的第二Mark()的Mark#1的mark_type(图7)是“Event”。因此,Mark#1是事件标记。此外,Mark#1的ref_to_PlayItem_id(图7)为0。因此,Mark#1属于PlayList#1中所包含的、图25中所示的一个PlayItem#0。此外,Mark#1的mark_time_stamp为270,090,00。因此,Mark#1是PlayList#1中所包含的PlayItem#0所再现的剪切片段流文件的时间27,090,000的标记。此外,在Mark#1中,entry_ES_stream_id和entry_ES_private_stream_id为0。因此,Mark#1不与其stream_id为0xE0的任何基本流相关联,即Mark#1与图20和图22中所述的视频流相关联。此外,Mark#1的mark_data为1。因此,Mark#1导致带有属性1的事件发生。
如上所述,PlayList#1中所包含的PlayItem#0所再现的剪切片段流文件是“00003.PS”。因此,由Mark#1的mark_time_stamp所表示的时间27,090,000是剪切片段流文件“00003.PS”的时间。
其stream_id为0xE0并且与Mark#1相关联的视频流是用图26A和图26B中所示的剪切片段信息文件“00003.CLP”所标识的剪切片段流文件“00003.PS”复用的三个基本流stream#0到#2的第一基本流(视频流)stream#0。
在图28下部的表中,作为PlayList#1中所包含的三个Mark()的第三Mark()的Mark#2的mark_type是“Event”。因此,Mark#2是事件标记。此外,Mark#2的ref_to_PlayItem_id(图7)为0。因此,Mark#2属于PlayList#1中所包含的、图25中所示、并且作为PlayItem之一的PlayItem#0。此外,Mark#2的mark_time_stamp为27,540,00。因此,Mark#2是PlayList#1中所包含的PlayItem#0所再现的剪切片段流文件的时间27,540,000的标记。此外,在Mark#2中,entry_ES_stream_id和entry_ES_private_stream_id为0。因此,Mark#2不与其stream_id为0xE1的任何基本流相关联,即与图20和图22中所述的视频流相关联。此外,Mark#2的mark_data为2。因此,Mark#2导致带有属性2的事件发生。
在本例中,如上所述,由PlayList#1中所包含的PlayItem#0所再现的剪切片段流文件是剪切片段流文件“00003.PS”。因此,由Mark#2所表示的时间27,540,000是剪切片段流文件“00003.PS”的时间。
其stream_id为0xE1并且与Mark#2相关联的视频流是在图25中所示的PlayList#1中所包含的PlayItem#0的Clip_Information_file_name中所描述的“00003.CLP”中所描述的视频流,即用从图26A和26B中所示的剪切片段信息文件“00003.CLP”中所识别的剪切片段流文件“00003.PS”复用的三个基本流stream#0到#2的第二基本流(视频流)stream#1。
在图28下部的表中,在PlayList#1的PlayListMark()的表的右侧上描述Mark()所属于的PlayItem()的累积时间。
在图28中,虽然mark_data描述章节和索引标记表示的章节和索引号码,但是可能还没有将它们描述在mark_data中。替代地,通过计数PlayListMark()的章节和索引标记,可以识别章节和索引号码。
[对盘设备的操作的描述]
下面,在假设已经将图25到28中所述的数据(文件)记录在图1中所示的盘101上的情况下,描述图1中所示的盘设备的操作。
当将盘101装载到盘设备102时,通过图2A和图2B中所示的驱动器接口114和操作系统201将对应消息发送到视频内容再现程序210。当视频内容再现程序210已经从操作系统201接收了表示已经将盘101装载到盘驱动器102中的消息时,视频内容再现程序210开始图29中所示的预先再现处理。
[预先再现处理]
图29是视频内容再现程序210执行的预先再现处理的流程图。
应该注意,盘设备不需要以该流程图的时间顺序来执行操作或者处理。替代地,盘设备可以平行或者分立地执行操作或者处理。然而,在本说明书中,为了方便,将与该流程图对应地描述盘设备的操作或者处理。
在预先再现处理中,在步骤S101,视频内容再现程序210用操作系统201的文件系统功能来检查盘101,并且确定盘101是否是用于视频内容再现程序210的普通盘。
如上所述,虽然用操作系统201的文件系统功能来存取盘101(从其读取文件),但是将省略对其的描述。
当步骤S101的所确定的结果表示盘101不正常盘时,即在盘101中所使用的文件系统不与操作系统201符合,或者盘101的根目录不包含“VIDEO”目录,则视频内容再现程序210确定视频内容再现程序210不与盘101符合,流程前进到步骤S102。在步骤S102,图形处理模块219执行错误处理并且完成预先再现处理。
换句话说,图形处理模块219产生表示盘101不是正常盘的错误消息(其视频数据)作为错误处理,并且使得视频输出模块220输出该错误消息以便显示该错误消息。可以例如通过从输出模块221输出报警声音或者从盘驱动器102中卸载盘101来执行该错误处理。
当步骤S101中所确定的结果表示盘101是正常盘时,流程前进到步骤S103。在步骤S103,视频内容再现程序210使得内容数据提供模块213请求操作系统201读取在盘101的“VIDEO”目录(图4)中存储的两个数据文件“SCRIPT.DAT”和“PLAYLIST.DAT”。之后,流程前进到步骤S104。在步骤S104,将“SCRIPT.DAT”文件提供给脚本控制模块211。此外,将“PLAYLIST.DAT”文件提供给播放器控制模块212。
之后,流程从步骤S104前进到步骤S105到S107。在步骤S105到S107中,播放器控制模块212执行初始化处理。脚本控制模块211等待直到播放器控制模块212已经完成了初始化处理。
[播放器控制模块212的初始化处理]
在初始化处理中,在步骤S105,播放器控制模块212分析“PLAYLIST.DAT”文件,并且检查在“PLAYLIST.DAT”文件中描述的剪切片段信息文件的数量以及它们的文件名。
换句话说,由于在图25示出“PLAYLIST.DAT”文件并且在图25中所示的“PLAYLIST.DAT”文件的number_of_PlayLists为2,所以播放器控制模块212识别存在有作为PlayList#0和PlayList#1的两个PlayList()。此外,由于图25中所示“PLAYLIST.DAT”文件的第一PlayList#0的number_of_PlayItems是2,播放器控制模块212识别PlayList#0包含作为PlayItem#0和PlayItem#1的两个PlayItem()。之后,播放器控制模块212参考在图25中所示的“PLAYLIST.DAT”文件的PlayList#0中所包含的第一PlayItem#0和第二PlayItem#1的Clip_Information_file_name,并且识别在PlayList#0中所包含的第一PlayItem#0的剪切片段信息文件(其文件名)是“00001.CLP”以及第二PlayItem#1的剪切片段信息文件是“00002.CLP”。
类似地,播放器控制模块212因为number_of_PlayItems是1所以识别第二PlayList#1包含一个PlayItem()(PlayItem#0),并且因为PlayItem#0的Clip_Information_file_name识别PlayItem#0的剪切片段信息文件是“00003.CLP”。
之后,流程从步骤S105前进到步骤S106。在步骤S106,播放器控制模块212从盘101的“VIDEO”目录下的“CLIP”目录中读取在步骤S105出所识别的剪切片段信息文件,即三个剪切片段信息文件“00001.CLP”、“00002.CLP”和“00003.CLP”。
需要在步骤S106被读出的PlayList()的PlayItem的剪切片段信息文件仅仅是首先被再现的PlayList()的PlayItem。然而根据本实施方式,如上所述,预先读取PlayList()的所有剪切片段信息文件。
在步骤S106之后,流程前进到步骤S107。在步骤S107,播放器控制模块212确定是否已经成功地读取了在步骤S105处所识别的剪切片段信息文件。此外,播放器控制模块212确定(检查)在盘101上是否存在与剪切片段信息文件对应的剪切片段流文件。换句话说,在步骤S107,播放器控制模块212确定是否已经成功地读取了剪切片段信息文件“00001.CLP”、“00002.CLP”和“00003.CLP”,以及在盘101的“VIDEO”目录下的“STREAM”目录中是否存在与剪切片段信息文件“00001.CLP”、“00002.CLP”和“00003.CLP”对应的剪切片段流文件“00001.PS”、“00002.PS”和“00003.PS”。
当在步骤S107的确定结果表示还没有成功地读取在步骤S105处所识别的剪切片段信息文件、或者在盘101上不存在与该剪切片段信息文件对应的剪切片段流文件(即还没有将与“PLAYLIST.DAT”对应的剪切片段信息文件和剪切片段流文件记录在盘101上)时,视频内容再现程序210确定盘101不正确。之后,流程返回到步骤S102。在步骤S102,视频内容再现程序210执行上述错误处理并且完成预先再现处理。
在另一方面,当步骤S107处所确定的结果表示已经成功地读取了在步骤S105处所识别的剪切片段信息文件,以及在盘101上存在有与剪切片段信息文件对应的剪切片段流文件时,播放器控制模块212完成初始化处理。之后,流程前进到步骤S108。
在步骤S108,脚本控制模块211解释和执行“SCRIPT.DAT”文件。
当脚本控制模块211执行“SCRIPT.DAT”文件时,假设播放器控制模块212已经使得第一PlayList()(PlayList#0)被再现,执行图30中所示的再现处理。
[再现处理]
图30是视频内容再现程序210执行的再现处理的流程图。
[再现准备处理]
在步骤S121和S122中,播放器控制模块212执行脚本控制模块212已经导致其被再现的PlayList()(即第一PlayList()(PlayList#0))的再现准备处理。
换句话说,在步骤S121,播放器控制模块212检查在第一PlayList#0中所包含的第一PlayItem#0的IN_time(图6)。之后,流程前进到步骤S122。在步骤S122,播放器控制模块212检查与第一PlayList#0中所包含的第一PlayItem#0所再现的剪切片段流文件“00001.CLP”的PlayItem#0的IN_time对应的再现开始位置。
当PlayItem()的IN_time(图6)表示剪切片段流文件的开始时,从该剪切片段流文件的开始读取节目流。然而,当IN_time不表示剪切片段流文件的开始时,播放器控制模块211需要搜索(检查)与IN_time对应的位置并且从该位置读取剪切片段流文件。
具体地说,在图25中,在第一PlayList#0中所包含的第一PlayItem#0的IN_time是180,090。播放器控制模块212搜索如图27中所示的、有第一PlayList#0中所包含的第一PlayItem#0所再现的剪切片段流文件“00001.CLP”的、EP_map(),以寻找其中PlayItem#0的IN_time是180,090的再现开始位置。
换句话说,播放器控制模块212通过二进制搜索方法等搜索满足PTS_EP_start=IN_time(其中PTS_EP_start表示EP_map()中所描述的可解码开始位置)的最大PTS_EP_start。这是因为IN_time所表示的位置不总是可解码开始点。
在这种情况下,如上所述,IN_time是180,090。此外,在第一PlayList#0中所包含的第一PlayItem#0所再现的剪切片段流文件“00001.CLP”的、图27中所示的EP_map()中,满足PTS_EP_start=IN_time的PTS_EP_start的最大值是180,090。因此,播放器控制模块搜索图27中所示的EP_map()以寻找为180,090的PTS_EP_start。
此外,播放器控制模块212读取搜索PTS_EP_start 305(扇区),并且将剪切片段流文件“00001.CLP”中PTS_EP_start所表示的位置决定为再现开始位置。
在播放器控制模块212已经决定了再现开始位置之后,流程从步骤S122前进到步骤S123。在步骤S123,播放器控制模块212控制图形处理模块219以显示时间代码。图形处理模块219在播放器控制模块212的控制下产生时间代码(其视频数据),并且将该时间代码输出到视频输出模块220。因此,显示该时间代码。
在步骤S123所显示的时间代码例如是PlayList()的开始被转换为00:00:00(小时:分钟:秒)的值。在时间代码之外或者替代于时间代码,可以显示章节号码和索引号码。
[PlayListMark()的分析处理]
在步骤S123已经显示了时间代码之后,流程前进到步骤S124。在步骤S124,播放器控制模块212执行分析过程,来分析脚本控制模块211已经导致再现的PlayList(),即在第一PlayList()(PlayList#0)中所描述的PlayListMark()(图7)。
具体地说,在图28下部的表中,已经被预先读取的“PLAYLIST.DAT”的第一PlayList#0的PlayListMark()的number_of_PlayList_marks是7。因此,播放器控制模块212识别在PlayList#0中所包含的Mark()的数量是7。
此外,播放器控制模块212分析在图28的上部的表的七个Mark(),并且识别七个Mark()的第一到第四Mark()的四个Mark()属于PlayList#0的第一PlayItem()(PlayItem#0)。
之后,播放器控制模块212在属于PlayList#0的第一PlayItem#0的四个Mark()中获得mark_time_stamp,并且将它们作为四元素矩阵提供给解码控制模块214。因此从播放器控制模块212将作为在图28的上部的表中的七个Mark()的第一到第四Mark()的四个Mark()的mark_time_stamp的四个时间{180,090}、{5,580,090}、{10,980,090}和{16,380,090}发送到解码控制模块214。在该点上,将这些时间的“mark process(标记处理)”的属性从播放器控制模块212发送到解码控制模块214。当时间计数部分214A所计数的时间与具有属性“markprocess”的时间匹配时,解码控制模块214发送对应消息、与具有属性“markprocess”的时间匹配的时间和属性“mark process”给播放器控制模块212。
[要被再现的基本流的决定处理]
之后,流程从步骤S124前进到步骤S125。在步骤S125,播放器控制模块212决定要被再现的基本流。
换句话说,在作为脚本控制模块211已经使得其被再现的PlayList()的第一PlayList#0的第一PlayItem#0(图25)的Clip_Information_file_name中所描述的、图26A和图26B中所示的剪切片段信息文件“00001.CLP”中,number_of_stream为4。因此,播放器控制模块212识别已经用对应的剪切片段流文件“00001.PS”复用了四个基本流。此外,播放器控制模块检查四个基本流的、图26A和图26B所示出的剪切片段信息文件“00001.CLP”的StaticInfo()的stream_id和privatestream_id,并且识别四个基本流是一个视频流、一个ATRAC音频流和两个字幕流。换句话说,播放器控制模块212识别具有用剪切片段流文件“00001.PS”复用的独立属性的基本流的数量。
将关于具有用剪切片段流文件复用的独立属性的基本流的数量的信息用于将一个基本流改变为要被再现的另一个基本流(从一个音频模式到另一个音频模式或者从一个字幕模式到另一个字幕模式)。当剪切片段流文件不包含字幕流文件时,即内容不包括字幕数据时,确定存在带有关于具有属性“subtitle_stream(字幕流)”的基本流的数量的信息的字幕流。
播放器控制模块212选择和决定要与StaticInfo()的检查结果对应被再现的基本流。在这种情况中,用于剪切片段流文件“00001.PS”复用的四个基本流包含具有属性“video stream(视频流)”的一个基本流和具有属性“audio stream(音频流)”的一个基本流。因此,将具有属性“video stream”的基本流和具有属性“audio stream”的基本流(ATRAC音频流)独立地决定为要被再现的基本流。
在另一方面,用剪切片段流文件“00001.PS”复用的四个基本流包含具有属性“subtile stream”的两个基本流。因此,选择和决定这两个字幕流之一。在本例中,选择在剪切片段信息文件“00001.CLP”中的两个字幕流中首先出现的字幕流。
当识别了用剪切片段流文件“00001.PS”复用的基本流的数量和属性时,需要标识四个基本流。播放器控制模块212用stream_id和private_stream_id来标识与剪切片段流文件“00001.PS”复用的四个基本流。
换句话说,播放器控制模块212用为如图26A和图26B中所示的剪切片段信息文件“00001.CLP”中所述的0xE0的stream_id,从与剪切片段流文件“00001.PS”复用的四个基本流中标识具有属性“video stream”的基本流。
此外,播放器控制模块212用为如图26A和图26B中所示的剪切片段信息文件“00001.CLP”中所述的0x00的stream_id,从与剪切片段流文件“00001.PS”复用的四个基本流中标识作为具有属性“audio stream”的基本流的ATRAC音频流。
此外,播放器控制模块212用为0xBD的stream_id和为0x80的private_stream_id并且用为0xBD的stream_id和为0x81的private_stream_id,从与剪切片段流文件“00001.PS”复用的四个基本流中标识作为具有属性“subtile stream”的基本流的两个字幕流。
如上所述,可以用作为与剪切片段流文件对应的剪切片段信息文件的元数据的stream_id和private_stream_id来标识用剪切片段流文件复用的基本流。
提供stream_id和private_stream_id的组合的机制来扩展MPEG2系统的复用。当将stream_id和private_stream_id的组合用作作为数据库的元数据时,可以确信地标识基本流。此外,当扩展private_stream_id用于对应基本流的数量和类型的增加时,可以使用当前的机制而不必有任何变化。因此,stream_id和private_stream_id的组合具有高可扩展性。
换句话说,例如蓝光盘(BD)标准使用MPEG2标准的传输流的分组ID(PID)来标识数据,因此,通过MPEG2标准来限制BD标准。在另一方面,DVD视频标准定义与private_stream_id类似的sub_stream_id。然而,不能在数据库中描述sub_stream_id来识别流。在用于仅仅8个到32个流(见VI4-49,表4.2.1-2(VTS_AST_ATRT)和VI4-52,表4.2.1-3(VTS_SPST_ATRT))的信息的固定区域中描述sub_stream_id。因此,sub_stream_id不具有高可扩展性。
在另一方面,可以用元数据来描述stream_id和private_stream_id的组合。例如,在图10中所示的剪切片段信息文件Clip()可以描述与由number_of_streams所表示的值对应的stream_id和private_stream_id的组合。因此,可以不论基本流的数量(在number_of_streams表示的范围内),由作为在剪切片段信息文件Clip()中所描述的元数据的stream_id和private_stream_id的组合来标识用剪切片段流文件复用的基本流。
根据本实施方式,使用stream_id和private_stream_id的组合来标识与图10中所示的剪切片段信息文件对应的剪切片段流文件复用的脚本流。此外,可以使用该信息来标识与Mark()相关的基本流作为图7中所示的PlayListMark()的entry_ES_stream_id和entry_ES_private_stream_id的组合。此外,使用stream_id和private_stream_id的组合来标识描述图14中所示的EP_map()中的可解码开始点的信息的基本流。
[输出属性控制处理]
之后,流程从步骤S125前进到S126。在步骤S126,播放器控制模块212执行用于在步骤S125中所决定从而要在步骤S125再现的基本流的的输出属性控制处理。
具体地说,播放器控制模块212检查标识DynamicInfo()(图13)的数量的number_of_DynamicInfo(图10),DynamicInfo()描述视频流、ATRAC音频流和在步骤S125决定作为要被再现的那些的字幕流的输出属性。
在这种情况下,视频流、ATRAC音频流和要被再现的字幕流是与剪切片段流文件“00001.PS”复用的基本流。在图26A和26B中所示的剪切片段信息文件“00001.CLP”中,number_of_DynamicInfo都是0。当number_of_DynamicInfo都是0时,播放器控制模块212不执行用于要被再现的基本流的输出数据的输出属性控制处理。
当要被再现的基本流的number_of_DynamicInfo不是0时,执行用于基本流的输出属性控制处理。将在后面描述输出属性控制处理。
[再现开始准备处理]
在步骤S126之后,流程前进到步骤S127。在步骤S127,播放器控制模块212执行用于要被再现的基本流的再现开始准备处理。
换句话说,播放器控制模块212将已经用其复用了要被再现的基本流的剪切片段流文件“00001.PS”的文件名和作为步骤S122处所决定的再现开始部分的EP_map()中所描述的PTS_EP_start(=305),提供给内容数据提供模块213。
此外,在将已经用其复用要被再现的基本流的剪切片段流文件“00001.PS”中所存储的节目流提供给缓存器控制模块215之前,播放器控制模块212初始化缓存器控制模块215。
具体地说,缓存器控制模块215(图3)将相同值设置到数据开始指针存储部分231中所存储的数据开始指针、在数据写指针存储部分232中所存储的数据写指针、在视频读取指针存储部分241中所存储的视频读取指针、在音频读取指针存储部分251中所存储的音频读取指针和在字幕读取指针存储部分262中所存储的字幕读取指针中。
因此,在数据开始指针存储部分231中所存储的数据开始指针和在数据写指针存储部分232中所存储的数据写指针保存缓存器控制模块215的缓存器215A的相同位置。这表示在缓存器215A中还没有存储有效数据。
此外,播放器控制模块212将stream_id还根据需要将private_stream_id作为用于要被再现的基本流的标识信息提供给缓存器控制模块215。
换句话说,如上所述,由为0xE0的stream_id来标识在要被再现的基本流中具有属性“video stream”的视频流。由为0xBD的stream_id和为0x00的private_stream_id来标识具有属性“audio_stream”的ATRAC音频流。由为0xBD的stream_id和为0x80的private_stream_id来标识具有属性“subtitle stream”的字幕流。播放器控制模块212将这些stream_id和private_stream_id提供给缓存器控制模块215。
在缓存器控制模块215(图3)中,视频读取功能部分233将从播放器控制模块212接收来的、针对视频流为0xE0的stream_id存储到stream_id寄存器242中。此外,音频读取功能部分234将从播放器控制模块212接收来的、为0xBD的stream_id和为0x00的private_stream_id分别存储到stream_id寄存器252和private_stream_id寄存器253中。此外,字幕读取功能部分235将从播放器控制模块212接收来的、为0xBD的stream_id和为0x80的private_stream_id分别存储到stream_id寄存器263和private_stream_id寄存器264中。
播放器控制模块212存储用于要被再现的基本流的、被提供到缓存器控制模块215的stream_id和private_stream_id以用于后面的处理。当流改变请求消息发生或者标识了在标记处理中正在再现的流(将在后面描述)时,播放器控制模块212使用stream_id和private_stream_id。
为了初始化缓存器控制模块215(图3),播放器控制模块212将具有与用要被再现的基本流复用的剪切片段流文件对应的值的字幕读取功能标志设置到字幕读取功能标志存储部分261中。
换句话说,在这种情况下,由于用其已经复用了要被再现的基本流的剪切片段流文件“00001.PS”包含字幕流,将其值为1的字幕读取功能标志设置到字幕读取功能标志存储部分261以激活字幕读取功能部分235。当用其已经复用了要被再现的基本流的剪切片段流文件不包含字幕流时,其值为0的字幕读取功能标志被设置到字幕读取功能标志存储部分261中。在这种情况下,不激活字幕读取功能部分235(字幕读取功能部分235不执行任何处理)。
此外,播放器控制模块212提供脚本控制模块211已经使得播放器控制模块212再现的第一PlayList#0中所包含的第一PlayItem#0(图25)的、为180,090的IN_time和为27,180,090的OUT_time给解码控制模块214。解码控制模块214使用IN_time来开始解码由PlayItem()所再现的剪切片段,以及使用OUT_time来停止解码剪切片段,并且控制将在后面描述的PlayItem改变处理。
播放器控制模块212传输其中图形处理模块219显示字幕流的字幕流显示模式。换句话说,播放器控制模块212控制图形处理模块219来以默认显示模式显示字幕流。
[开始读取数据]
之后,流程从步骤S127前进到步骤S128。播放器控制模块212控制内容数据提供模块213,以使用操作系统201的功能来读取包含已经与其复用了的要被再现的基本流的节目流的剪切片段流文件。换句话说,内容数据提供模块213指定在盘101(图4)的“VIDEO”目录下的“STREAM”目录的剪切片段流文件“00001.PS”,指定扇区305,其是再现开始位置,其已经在步骤S122被决定,并且使得操作系统201读取该文件。内容数据提供模块213使得操作系统201提供已经从盘101读取的数据给缓存器控制模块215。
因此,从盘101中读取剪切片段流文件“00001.PS”的节目流。将该节目流提供给缓存器控制模块215。
缓存器控制模块215(图3)将已经从盘101读取来的节目流写到由缓存器215A的数据写指针存储部分232的数据写指针所表示的位置,并且以写数据的大小增加数据写指针。
除非另外指明,否则当缓存器控制模块215的缓存器215A具有空闲空间时,内容数据提供模块213从盘101中读取数据,并且将该数据提供和存储到缓存器控制模块215的缓存器215A中。因此,缓存器215A总存储足够量的数据。
[控制解码器的开始]
当从盘101中读取数据并且将该数据存储到缓存器控制模块215的缓存器215A时,流程从步骤S128前进到步骤S129。在步骤S129,解码控制模块214控制视频解码器控制模块216、音频解码器控制模块217和字幕解码器控制模块218以从缓存器215A开始读取数据作为预先解码操作。
因此,视频解码器控制模块216请求缓存器控制模块215(图3)的视频读取功能部分233来发送数据。视频解码器控制模块216从与请求对应的缓存器控制模块215中获得在缓存器215A中所存储的一个视频存取单元、添加到视频存取单元的PTS和DTS(有时称为时间戳)、pic_struct_copy、au_ref_flag和AU_length等,它们是在可解码开始点之后紧邻的private_stream_2的PES_packet()中所描述的信息(有时称为附加信息)。在视频解码器控制模块216获得视频存取单元的任何时候,都将时间戳从视频解码器控制模块216提供到解码控制模块214。
在另一方面,音频解码器控制模块217请求缓存器控制模块215(图3)的音频读取功能部分234来发送数据。音频解码器控制模块217从与请求对应的缓存器控制模块215中,获得在缓存器215A中所存储的一个(ATRAC)音频存储单元和添加到音频存取单元中的时间戳(PTS和DTS)。在音频解码器控制模块217获得音频存取单元的任何时候,都将时间戳从音频解码器控制模块217提供给解码控制模块214。
此外,字幕解码器控制模块218请求缓存器控制模块215(图3)的字幕读取功能部分235发送数据。字幕解码器控制模块218从与请求对应的缓存器控制模块215中,获得在缓存器215A中所存储的一个字幕存储单元和添加到字幕存取单元中的时间戳。在字幕解码器控制模块218获得字幕存取单元的任何时候,都将时间戳从字幕解码器控制模块218提供到解码控制模块214。当要被再现的基本流不包含字幕流或者缓存器215A不存储字幕存取单元时,不从缓存器控制模块215将数据提供给字幕解码器控制模块218。
在视频解码器控制模块216、音频解码器控制模块217和字幕解码器控制模块218请求缓存器控制模块215发送数据的任何时候,它们都发送结果到解码控制模块214。
将在后面描述当缓存器控制模块215发送数据到视频解码器控制模块216、音频解码器控制模块217和字幕解码器控制模块218的时候从缓存器215读取数据的详情。
[开始解码数据]
当视频解码器控制模块216、音频解码器控制模块217和字幕解码器控制模块218开始从缓存器控制模块215的缓存器215A中读取数据时,流程从步骤S129前进到步骤S130。在步骤S130,这些模块开始解码已经读取的数据。
换句话说,解码控制模块214使得视频解码器控制模块216、音频解码器控制模块217和字幕解码器控制模块218与在步骤S127中从播放器控制模块212提供来的、180,090的IN_time对应地,并且与从步骤S219中从视频解码器控制模块216、音频解码器控制模块217和字幕解码器控制模块218提供来的时间戳对应地,或者如果需要在改变的定时处开始解码,从而确保同步被解码的数据。
在例如日本专利第3496725号中描述了用于在改变的定时处开始解码数据从而确保数据同步的方法。简而言之,将从视频解码器控制模块216、音频解码器控制模块217和字幕解码器控制模块218提供来的时间戳的最小值设置为时间计数部分214A的初始值。时间计数部分214A从该设置时间开始对时间计数。当由时间计数部分214A所计数的时间与时间戳匹配时,解码控制模块214使得这些模块开始解码数据。
视频解码器控制模块216从解码控制模块214接收解码开始命令,并且将从缓存器控制模块215(图3)的视频读取功能部分233获得的一个视频存取单元提供给视频解码器116(图1),并且使得视频解码器116解码视频存取单元。此外,视频解码器控制模块216将视频解码器116所解码的视频数据提供给图形处理模块219。
之后,视频解码器控制模块216使得视频解码器116一次一个地连续解码从缓存器控制模块215的视频读取功能部分233获得的视频存取单元,并且将经解码的视频存取单元作为视频数据提供给图形处理模块219。
音频解码器控制模块217从解码控制模块214接收解码开始命令,提供从缓存器控制模块215(图3)的音频读取功能部分234获得的一个音频存取单元以解码该音频存取单元。音频解码器控制模块217将音频解码器117所解码的音频数据提供给音频输出模块221。
之后,音频解码器控制模块217使得音频解码器117一次一个地连续解码从缓存器控制模块215的音频读取功能部分234获得的音频存取单元,并且将经解码的音频存取单元作为音频数据提供给音频输出模块221。
此外,字幕解码器控制模块218从解码控制模块214解释解码开始命令,使得内部字幕解码软件与该命令对应地解码从字幕读取功能部分235获得的一个字幕读取单元,并且将经解码的字幕存取单元作为字幕数据(字幕的图像数据)提供给图形处理模块219。
之后,字幕解码器控制模块218使得内部解码软件一次一个地连续解码从缓存器控制模块215的字幕读取功能部分235获得的字幕存取单元,并且将经解码的字幕存取单元作为字幕数据提供给图形处理模块219。
[图形处理]
下面,流程从步骤S130前进到步骤S131。在步骤S131,图形处理模块219执行用于从视频解码器控制模块216提供来的视频数据的图形处理,并且如果需要,执行用于从字幕解码器控制模块218提供来的字幕数据的图形处理。
换句话说,图形处理模块219与从播放器控制模块212接收来的显示模式命令对应地,执行例如放大或者缩小从字幕解码器控制模块提供来的子数据的子处理。当图形处理模块219还没有从播放器控制模块212解释来显示模式命令或者存在默认显示模式时,图形处理模块219存储从字幕解码器控制模块218接收来的字幕数据。
此外,图形处理模块219将从视频解码器控制模块216接收来的视频数据和从字幕解码器控制模块218接收来的字幕数据或者已经被处理过的字幕数据相加,或者已经重叠了字幕数据的输出视频数据,并且将经重叠的视频数据提供给视频输出模块220。
当图形处理模块219从脚本控制模块211或者播放器控制模块212接收到用于菜单、消息、时间代码、章节号码或者索引号码的信息显示命令时,图形处理模块219产生信息,将其与输出视频数据重叠,并且将经重叠的数据提供给视频输出模块220。
[输出处理]
在步骤S131之后,流程前进到步骤S132。在步骤S132,视频输出模块220将从图形处理模块219提供来的输出视频数据连续存储到FIFO 220A,并且以预定输出速率将在FIFO 220A中所存储的视频数据输出。
只要FIFO 220A具有足够的存储容量(空闲空间),视频输出模块220就从图形处理模块219接收输出视频数据。当FIFO 220A不具有足够的存储容量时,视频输出模块220使得图形处理模块219停止接收输出的视频数据。因此,图形处理模块停止接收输出的数据。此外,视频输出模块220使得视频解码器控制模块216和字幕解码器控制模块218停止它们的处理。因此,视频解码器控制模块216和字幕解码器控制模块218停止它们的处理。
在视频输出模块220已经使得图形处理模块219停止接收输出视频数据并且FIFO 220A已经输出了视频数据之后,当FIFO 220A具有足够的存储容量时,视频输出模块220使得图形处理模块219接收输出的视频数据。与输出的视频数据类似,图形处理模块219使得视频解码器控制模块216和图形处理模块219停止接收数据。因此,图形处理模块219、视频解码器控制模块216和字幕解码器控制模块218恢复被停止的处理。
在另一方面,音频输出模块221还使得FIFO 220A连续存储在步骤S130从音频解码器控制模块217提供来的音频数据,并且以预定输出速率(采样频率)输出音频数据。
只要FIFO 221A具有足够的存储容量(空闲空间),音频输出模块221就从音频解码器控制模块217接收音频数据。然而,当FIFO 220A不具有足够的存储容量时,音频输出模块221使得音频解码器控制模块217停止接收音频数据。因此,音频解码器控制模块217停止其处理。
在音频输出模块221已经使得音频解码器控制模块217停止接收音频数据并且FIFO 220A具有输出的音频数据之后,当FIFO 220A具有足够的存储容量时,音频输出模块221使得音频解码器控制模块217接收音频数据。因此,音频解码器控制模块217恢复被停止的处理。
以上述方式,当视频输出模块220和音频输出模块221输出数据时,解码基本流。
图1中所示的盘设备与图29和图30中所示的流程图对应地再现来自盘101的数据。随后,将描述当再现来自盘101的数据的同时执行的盘的其他处理或者操作。
[改变PlayItem]
如图29和图30所示,再现图25中所示的第一PlayList#0的第一PlayItem#0。与PlayList#0对应地,在再现第一PlayItem#0之后,再现第二PlayItem#1。换句话说,执行将PlayItem从PlayItem#0改变到PlayItem#1的PlayItem改变处理。
下面,将参照图31所示的流程图来描述PlayItem改变处理。
如图29和图30所示,在再现图25中所示的PlayList#0的第一PlayItem#0(其剪切片段)之后,当正在再现第一PlayItem#0时,解码控制模块214(图2A和图2B)检查时间计数部分214A正在计数的时间。
[PlayItem#0的再现的结束]
当时间计数部分214A已经计数的时间变为与图30中所示的步骤S127从播放器控制模块212提供来的第一PlayItem#0的OUT_time相同的27,180,090(图25)时,解码控制模块214在步骤S151执行解码停止处理以停止再现PlayItem#0。
换句话说,解码控制模块214操作视频解码器控制模块216、音频解码器控制模块217和字幕解码器控制模块218,以停止它们的解码操作。解码控制模块214控制视频输出模块220来连续输出视频数据。
此外,解码控制模块214发送表示已经再现了第一PlayItem#0的消息给播放器控制模块212。
[PlayItem#1的再现的开始]
如上所述,播放器控制模块212在图29所示的步骤S105已经识别出第一PlayList#0包含第一PlayItem#0和第二PlayItem#1。当解码控制模块214已经将已经再现了第一PlayItem#0通知给播放器控制模块212时,流程从步骤S151前进到步骤S152。在步骤S152,以与第一PlayItem#0相同的方式,播放器控制模块212开始再现第二PlayItem#1。
与图30中所示的步骤S122类似,播放器控制模块212决定在EP_map()中所描述的PTS_EP_start之一为第二PlayItem#1的再现开始点。
此外,播放器控制模块212识别属于图30中所示的步骤S124中所描述的第二PlayItem#1的Mark()、和具有与图30的步骤S125所描述的PlayItem#1所再现的剪切片段流文件“00002.PS”复用的属性基本流的数量,并且决定要被再现的基本流。
播放器控制模块212执行与图30中所示的步骤S127中相同的处理。
换句话说,播放器控制模块212将决定为再现开始位置的、EP_map()的PTS_EP_start和与要被再现的基本流复用的剪切片段流文件的文件名(即,与第二PlayItem#1(图25)的Clip_Information_file_name中所描述的“00002.CLP”,对应的剪切片段流文件“00002.PS”的文件名),提供给内容数据提供模块213。
此外,在将与要被再现的基本流复用的剪切片段流文件“00002.PS”中所存储的节目流提供给缓存器控制模块215之前,播放器控制模块212初始化缓存器控制模块215。
换句话说,缓存器控制模块215(图3)将相同的值设置到在数据开始指针存储部分231中所存储的数据开始指针、在数据写指针存储部分232中存储的数据写指针、在视频读取指针存储部分241中存储的视频读取指针、在音频读取指针存储部分251中存储的音频读取指针和在字幕读取指针存储部分262中存储的字幕读取指针中。
此外,播放器控制模块212将stream_id以及必要时private_stream_id作为标识要被再现的基本流的标识信息提供给缓存器控制模块215。
缓存器控制模块215(图3)的视频读取功能部分233接收要从播放器控制模块212再现的基本流的视频流的stream_id,并且将其存储到stream_id寄存器242。此外,音频读取功能部分234接收要从播放器控制模块212再现的基本流的音频流的stream_id和private_stream_id,并且将它们存储到stream_id寄存器252和private_stream_id寄存器253。
由于与要被再现的基本流复用的剪切片段流文件“00002.PS”包含字幕流,所以将要被再现的基本流的字幕流的stream_id和private_stream_id从播放器控制模块212提供到字幕读取功能部分235。字幕读取功能部分235将stream_id和private_stream_id分别存储到stream_id寄存器263和private_stream_id寄存器264。
播放器控制模块212将对应于与要被再现的基本流复用的剪切片段流文件的值设置到字幕读取功能标志存储部分261,以初始化缓存器控制模块215(图3)。
在这种情况下,由于与要被再现的基本流复用的剪切片段流文件“00002.PS”包含字幕流,所以将具有值1的字幕读取功能标志设置到字幕读取功能标志存储部分261中,以激活字幕读取功能部分235。
播放器控制模块212将要被再现的第二PlayItem#1(图25)的为90,000的IN_time和为27,090,000的OUT_time提供给解码控制模块214。
此外,播放器控制模块212初始化用于图形处理模块219的字幕流显示模式命令。换句话说,播放器控制模块212控制图形处理模块219来以默认显示模式显示字幕数据。
当要被再现的字幕流的configurable_flag(图12)为1时,其标识允许改变显示模式,播放器控制模块212发送到图形处理模块219的字幕流显示模式命令可以是当前显示模式命令。
以与第一PlayItem#0相同的方式,再现第二PlayItem#1。当正在再现第二PlayItem#1时,解码控制模块214监测时间计数部分214A正在计数的时间。当时间计数部分214已经计数的时间变为与步骤S152(图31)从播放器控制模块212提供来的第二PlayItem#1的OUT_time相同的27,090,000(图25)时,解码控制模块214执行与步骤S151中相同的解码停止控制以停止再现PlayItem#1。
[时间代码的显示]
随后,如上所述,在图30所示的步骤S123中,显示时间代码。连续更新时间代码。
随后,参照图32中所示的流程图,来描述时间代码显示处理。
当解码控制模块214(图2A和图2B)的时间计数部分214A已经计数了一秒时,流程前进到步骤S171。在步骤S171,解码控制模块214将表示一秒已经过去的消息和时间计数部分214A以及计数的当前时间提供到播放器控制模块212。之后,流程前进到步骤S172。在步骤S172,播放器控制模块212从解码控制模块214接收该消息和当前时间,并且将当前时间转换为时间代码。之后,流程前进到步骤S173。
在步骤S173,播放器控制模块212控制图形处理模块219来显示在步骤S172获得的时间代码。之后,流程返回到步骤S171。
因此,用一秒的间隔来更新时间代码。时间代码的更新间隔不限于一秒。
[改变流]
用图26A和图26B中所述的两个字幕流,来复用由第一PlayItem#0所再现的剪切片段流文件“00001.PS”(其包括图25中所述的第一PlayList#0)和由第二PlayItem#1所再现的剪切片段流文件“00002.PS”。
当用剪切片段流文件来复用具有相同属性的多个基本流时,可以将要被再现的基本流从一个基本流改变到另一个基本流。
随后,将参照图33中所示的流程图来描述流改变处理。
当在流改变命令是例如“SCRIPT.DAT”(图4)文件中的脚本文件并且脚本控制模块211执行脚本程序或者用户操作遥控器改变流时,将流改变命令提供给播放器控制模块212。
当脚本控制模块211执行描述流改变请求的脚本程序时,脚本控制模块211将流改变请求消息提供给播放器控制模块212。当用户用遥控器输入流改变命令时,输入接口115从遥控器接收流改变命令信号并且将流改变请求消息提供给播放器控制模块212。
当将使得播放器控制模块212改变字幕流的字幕流改变请求消息提供给播放器控制模块212时,其检查在图30中步骤S125中已经被识别的、要被再现的基本流的字幕流的数量。
当播放器控制模块212已经检查的字幕流的数量为1或者更少时,播放器控制模块212忽略字幕流改变请求消息。因此,播放器控制模块212不执行从步骤S192到步骤S194的处理。
相反地,当字幕流的数量是二或者更多时,流程前到S192到S194。在这些步骤中,播放器控制模块212将正在被再现的字幕流改变为另一个字幕流。
换句话说,在步骤S192,播放器控制模块212在剪切片段信息文件上识别正在被再现的字幕流。具体地说,假设与组成如图25所示的第一PlayList#0的第二PlayItem#1对应地正在再现其stream_id为0xBD而private_stream_id为0x80、并且与包括第一PlayList#0的剪切片段流文件“00002.PS”复用的字幕流,播放器控制模块212在步骤S192将正在被再现的字幕流标识为与剪切片段流文件“00002.PS”复用的两个字幕流的stream#2,其是剪切片段流文件“00002.PS”的第三字幕流。
之后,流程前进到步骤S193。在步骤S193,播放器控制模块212将在步骤S192中所标识的剪切片段信息文件的下一个字幕流识别(标识)为下一个要被再现的字幕流。在图26A和图26B中,第三字幕流stream#2的下一个字幕流是第四字幕流stream#3。因此,在步骤S193,播放器控制模块212将第四字幕流stream#3识别为要下一个被再现的字幕流。
当在与剪切片段流文件“00002.PS”复用的两个字幕流中,将正在被再现的字幕流标识为作为图26A和图26B中所示的剪切片段信息文件“00002.CLP”中的第四字幕流的stream#3时,播放器控制模块212将例如第三字幕流stream#2识别为要下一个被再现的字幕流。
之后,流程前进到步骤S194。在步骤S194,播放器控制模块212将在步骤S193被识别为要下一个被再现的字幕流的字幕的stream_id和private_stream_id提供给缓存器控制模块模块215(图3)的字幕读取功能部分235,以便字幕读取功能部分235从缓存器215A中读取由stream_id和private_stream_id所标识的下一个字幕存取单元。
缓存器控制模块215(图3)的字幕读取功能部分235在步骤S194将从播放器控制模块212提供来的stream_id和private_stream_id分别重新设置到stream_id寄存器263和private_stream_id寄存器264中。字幕读取功能部分235读取由分别重新设置到stream_id寄存器263和private_stream_id寄存器264中的stream_id和private_stream_id所标识的下一个字幕存取单元。
以上述方式,将正在被再现的字幕流改变为下一个被再现的另一个字幕流。
[缓存器控制模块215的处理]
随后,将参照图34到图38描述向和从缓存器215A进行的数据写处理和数据读处理。
如图3中所述,缓存器控制模块215具有用于从缓存器215A读取和向缓存器215A写入数据的五个指针。
换句话说,如图34和图35中所示,缓存器控制模块215具有在数据开始指针存储部分231中所存储的数据开始指针、在数据写指针存储部分232中存储的数据写指针、在视频读取指针存储部分241中存储的视频读取指针、在音频读取指针存储部分251中存储的音频读取指针和在字幕读取指针存储部分262中存储的字幕读取指针。
在图34和图35中,省略了图3中所示的视频读取功能部分233的stream_id寄存器242和au_information()寄存器243、音频读取功能部分234的stream_id寄存器252和private_stream_id寄存器253、和字幕读取功能部分235的字幕读取功能标志存储部分261、stream_id寄存器263和private_stream_id寄存器264。
在数据开始指针存储部分231中所存储的数据开始指针表示在缓存器215A中所存储的最旧的(需要被读取和不需要被读取的)数据。在数据写指针存储部分232中所存储的数据写指针标识在缓存器215A中的数据的写位置。该位置是写入最新数据的位置。
在视频读取指针存储部分241中所存储的视频读取指针表示从缓存器215A读取的视频流的位置。在音频读取指针存储部分251中所存储的音频读取指针表示从缓存器215A读取的音频流的位置。在字幕读取指针存储部分262中所存储的字幕读取指针表示从缓存器215A中读取的字幕流的位置。
如图3中所示,在缓存器215A中顺时针方向地移动数据开始指针、数据写指针、视频读取指针、音频读取指针、和字幕读取指针。
如图35中所示,根据本实施方式,总更新数据开始指针以使其表示与视频读取指针、音频读取指针和字幕读取指针的最旧数据位置相同的位置。在图35中,音频读取指针表示在视频读取指针、音频读取指针和字幕读取指针中的最旧数据的位置。数据开始指针匹配音频读取指针。
在具有数据开始指针、数据写指针、视频读取指针、音频读取指针和字幕读取指针的缓存器控制模块215中,当从盘101读取新数据并且写入到缓存器215A时,顺时针方向地更新数据写指针,从而数据写指针表示在新写的数据之后紧邻的位置。
当从缓存器215A中读取视频流、音频流或者字幕流时,以所读取的数据量在顺时针方向上更新视频读取指针、音频读取指针或者字幕读取指针。所读取的数据量是实际读取的视频数据、音频数据或者字幕数据与在被读取的数据中插入的、并且它们被读取时被省略的另一个流的数据部分之和。
当更新视频读取指针、音频读取指针或者字幕读取指针时,更新数据开始指针,从而其表示由视频读取指针、音频读取指针或者字幕读取指针所表示的最旧数据的位置。
缓存器控制模块215控制缓存器215A的数据写操作,从而数据写指针不会超前于数据开始指针。
除非数据写指针超前于数据开始指针,否则缓存器控制模块215将从盘101读取的数据写到由数据写指针所表示的缓存器215A的位置,并且更新数据写指针。在另一方面,如果数据写指针将要超前于数据开始指针,则缓存器控制模块215使得内容数据提供模块213停止从盘101读取数据,并且停止写数据到缓存器215A。因此,可以防止缓存器215A溢出。
如上所述,与数据开始指针和数据写指针这两个指针的位置的关系对应地,将从盘101读取的数据写到缓存器215A中。
在另一方面,缓存器控制模块215控制缓存器215A的数据读取操作,从而视频读取指针、音频读取指针和字幕读取指针以及数据开始指针部分超前于数据写指针。
换句话说,除非视频读取指针、音频读取指针或者字幕读取指针超前于数据写指针,否则缓存器控制模块215与从视频解码器控制模块216、音频解码器控制模块217或者字幕解码器控制模块218接收来的请求对应地,从视频读取指针、音频读取指针或者字幕读取指针所表示的缓存器215A的位置读取数据,并且更新视频读取指针、音频读取指针或者字幕读取指针并且在需要的时候更新数据开始指针。在另一方面,如果视频读取指针、音频读取指针或者字幕读取指针将要超前于数据写指针,则缓存器控制模块215使得视频解码器控制模块216、音频解码器控制模块217或者字幕解码器控制模块218停止发送请求,或者等待直到缓存器215A存储足够的数据为止。结果,可以防止缓存器215A下溢(under-flow)。
因此,缓存器215A将要被提供到视频解码器控制模块216、音频解码器控制模块217和字幕解码器控制模块218的数据,存储在顺时针方向上从数据开始指针所表示的位置到数据写指针所表示的位置的区域中(图34和图35的阴影部分)。此外,视频读取指针、音频读取指针和字幕读取指针也存在于该区域中。
在上述情况下,更新数据开始指针,以便其表示由视频读取指针、音频读取指针和字幕读取指针所表示的最旧数据的位置。替代地,可以更新数据开始指针,从而其表示比最旧数据的位置早预定时间(例如,一秒)的数据的位置。
可以假设视频读取指针和在视频读取指针中的音频读取指针、音频读取指针、和字幕读取指针表示最旧数据的位置。
因此,当更新数据开始指针以便其表示比视频读取指针或者音频读取指针表示的最旧数据的位置早例如一秒的数据的位置时,如图34中所示,可以将比视频读取指针或者音频读取指针表示的最旧数据早一秒的数据存储在缓存器215A中,在图34中,音频读取指针表示最旧数据的位置,而数据开始指针表示比最旧数据早一秒的数据的位置。
当更新数据开始指针以便其表示比最旧数据的位置早一秒的数据的位置时,可以提高盘设备的响应。
换句话说,如图35中所示,当更新数据开始指针以便其表示音频读取指针表示的最旧数据的位置时,如果发出例如反向再现命令之类的特殊再现命令,则需要从盘101中读取已经从缓存器215A中读取的数据。因此,在发出特殊再现命令之后直到执行该特殊再现命令为止,在某种程度上需要时间。
相反地,当更新数据开始指针以使其表示比音频读取指针表示的最旧数据的位置早一秒的数据的位置时,如果发出例如反向再现命令之类的特殊再现命令并且开始该特殊再现操作所需要的数据是在缓存器215A中所存储的、比最旧数据早一秒的数据,则可以快速开始特殊的再现操作而不必重新从盘101中读取数据。
当更新数据开始指针以使其表示比音频读取指针表示的最旧数据的位置早一秒的数据的位置时,可以不将开始特殊再现操作所需要的数据存储在缓存器215A中。在这种情况下,从盘101中重新读取开始特殊再现操作所需要的数据。
随后,将详细描述从缓存器215A中读取视频流、音频流和字幕流的操作。
在图30所示的步骤S127中,当开始剪切片段流文件的再现操作时,缓存器控制模块215初始化数据开始指针、数据写指针、视频读取指针、音频读取指针和字幕读取指针,以使它们表示缓存器215A中相同的位置。
当从盘101中读取在剪切片段流文件中所存储的节目流(MPEG2系统节目流)并且提供给缓存器控制模块215时,其将该节目流存储在缓存器215A的数据写指针表示的位置。此外,在顺时针方向上更新数据写指针。
此外,缓存器控制模块215(图3)的视频读取功能部分233语法分析(parse)在缓存器215A中所存储的节目流,与从解码器控制模块216接收来的请求对应地从缓存器215A中所存储的节目流中提取(分离)视频流(视频存取单元),并且将所提取的视频流提供给视频解码器控制模块216。
类似地,音频读取功能部分234语法分析在缓存器215A中所存储的节目流,与从音频解码器控制模块217接收来的请求对应地从缓存器215A中所存储的节目流中提取音频流(音频存取单元),并且将音频流提供给音频解码器控制模块217。字幕读取功能部分235语法分析在缓存器215A中所存储的节目流,与从字幕解码器控制模块218接收来的请求对应地从缓存器215A中所存储的节目流中提取字幕流(字幕存取单元),并且将字幕流提供给字幕解码器控制模块218。
[读取视频流]
随后,将参照图36中所示的流程图来详细描述用于视频读取功能部分233(图3)的缓存器215的视频流读取处理。
在步骤S211中,视频读取功能部分233搜索在缓存器215A中所存储的节目流以寻找private_stream_2的PES_packet()。如图20中所述,在private_stream_2的PES_packet()中,stream_id是10111111(=0xBF)。视频读取功能部分233搜索其stream_id为10111111B的PES_packet()。
假设与剪切片段流文件“00001.PS”中所存储的节目流复用的基本流是要被再现的基本流,当从盘101中读取节目流并且存储在缓存器215A中时,用关于剪切片段流文件“00001.PS”中的EP_map()(图27)中所描述的可解码开始点的信息将扇区305决定为再现开始位置。在图30中所示的步骤S128中,指定作为再现开始点的扇区305。视频读取功能部分233使得操作系统201从剪切片段流文件“00001.PS”中读取节目流。
关于视频流的EP_map()中所描述的可解码开始点的信息表示实际可解码开始点之后紧邻的private_stream_2的PES_packet()的位置。
因此,紧接着在从盘101中读取剪切片段流文件“00001.PS”中所存储的节目流并且存储在缓存器215A中之后,将private_stream_2的PES_packet()存储在缓存器215A中的数据开始指针和视频读取指针所表示的位置。
当视频读取功能部分233已经在步骤S211发现了private_stream_2的PES_packet()时,流程前进到步骤S212。在步骤S212,视频读取功能部分233从private_stream2_PES_payload()(图23)中提取video_stream_id,其是private_stream_2的PES_packet()的PES_packet_data_byte。在图30中所示的步骤S127中,视频读取功能部分233确定video_stream_id视频匹配在stream_id寄存器242(图3)中所存储的、要被再现的视频流的stream_id。
当步骤S212中的确定结果表示在private_stream2_PES_payload()中所描述的video_stream_id不匹配于stream_id寄存器242中所存储的stream_id时,即在步骤S211中所发现的private_stream_2的PES_packet()不处于要被再现的视频流的可解码开始点时,流程返回到步骤S211。在步骤S211,视频读取功能部分233搜索在缓存器215A中所存储的节目流以寻找private_stream_2的PES_packet(),并且重复相同的处理。
相反地,当在步骤S212的确定结果表示在private_stream2_PES_payload()中所描述的video_stream_id匹配于stream_id寄存器242中所存储的stream_id时,即在步骤S211中所发现的private_stream_2的PES_packet()处于要被再现的视频流的可解码开始点时,流程前进到步骤S213。在步骤S213,视频读取功能部分233从缓存器215A中读取在private_stream_2的PES_packet()的private_stream2_PES_payload()中所描述的au_information(),并且将au_information()存储到au_information()寄存器243(图3)。之后,流程前进到步骤S214。
在步骤S214,视频读取功能部分233以与stream_id寄存器242(图3)中所存储的stream_id匹配的、private_stream_2的PES_packet()的大小,来更新数据开始指针存储部分231中所存储的视频读取指针。
换句话说,在剪切片段流文件中,private_stream_2的PES_packet()之后紧接有其stream_id匹配于video_stream_id的视频流(PES_packet())。因此,在步骤S214,视频读取功能部分233更新视频读取指针以便其表示视频流的可解码开始点的位置。
之后,流程从S214前进到S215。视频读取功能部分233确定视频解码器控制模块216是否发出了数据请求。当步骤S215处的确定结果表示视频读取功能部分233还没有发出数据请求时,流程返回到步骤S215。在步骤S215,视频解码器控制模块216重复相同的处理。
相反地,当在步骤S215的确定结果表示视频解码器控制模块216已经发出了数据请求时,流程前进到步骤S216。在步骤S216,视频读取功能部分233语法分析在缓存器215A中的视频读取指针,从缓存器215A中读取在au_information()寄存器243中所存储的au_information()的AU_length所描述的字节的数据,即一个视频存取单元,将该数据提供给视频解码器控制模块216,并且以已经从缓存器215A中读取的视频存取单元的大小更新视频读取指针。
换句话说,如图24中所述,au_information()描述表示从包含au_information()的、private_stream_2的PES_packet()到下一个private_stream_2的PES_packet()所包含的视频存取单元(画面)的数量。
此外,如图24中所示,au_information()描述pic_struct_copy、au_ref_flag和AU_length作为关于由number_of_access_unit所表示的数量的视频存取单元的每一个信息。
如图24中所示,由于在与number_of_access_unit对应的au_information()中所描述的每个AU_length表示从private_stream_2的PES_packet()到下一个private_stream_2的PES_packet()的、由number_of_access_unit所表示的数量的视频存取单元的每一个的大小,所以视频读取功能部分233以AU_length来提取存取单元而不需要语法分析视频流。
换句话说,当提取MEPG2视频或者MEPG4-AVC存取单元时,需要知道视频流的结构然后对其进行语法分析。然而,在盘101上所记录的剪切片段流文件中所存储的节目流包含private_stream_2的PES_packet(),其描述表示视频存取单元的大小的AU_length,并且其之后紧接着有至少一个视频流的可解码开始点。因此,视频读取功能部分233可以从缓存器215A中读取视频存取单元(作为视频存取单元的视频流),并且与private_stream_2的PES_packet()中所描述的AU_length对应地将该视频存取单元提供给视频解码器控制模块216,而不必对视频流进行语法分析。
在步骤S216,当视频读取功能部分233将视频存取单元提供给视频解码器控制模块216时,视频读取功能部分233还将au_information()中所描述的pic_struct_copy、au_ref_flag和AU_length,以及针对每个视频存取单元添加的时间戳(PTS和DTS)作为关于视频存取单元的信息提供给视频解码器控制模块216。
在视频读取功能部分233已经从缓存器215A中读取了一个视频存取单元并且将其提供给视频解码器模块216之后,流程前进到步骤S217。在步骤S217,视频读取功能部分233确定其是否已经处理了在au_information()寄存器243中所存储的au_information()(图24)的number_of_access_unit所表示的数量的存取单元。
当在步骤S217的确定结果表示视频读取功能部分233还没有处理由number_of_access_unit所表示的数量的存取单元时,即视频读取功能部分233还没有从缓存器215A中读取由number_of_access_unit所表示的数量的存取单元并且将它们提供给视频解码器控制模块216时,流程返回到步骤S215。在步骤S215,视频读取功能部分233重复相同的处理。
相反地,当步骤S217的确定结果表示视频读取功能部分233已经处理了number_of_access_unit所表示的数量的存取单元时,即视频读取功能部分233已经从缓存器215A中读取了由number_of_access_unit所表示的数量的存取单元并且将它们提供给视频解码器控制模块216时,流程返回到步骤S211。在步骤S211,视频读取功能部分233搜索private_stream_2的PES_packet()并且重复相同的处理。
[读取音频流]
随后,将参照图37中所示的流程图描述音频读取功能部分234(图3)的缓存器215A的音频流读取处理。
在步骤S230,音频读取功能部分234确定已经在步骤30所示的步骤S127被存储在stream_id寄存器252(图3)中的、要被再现的音频流的stream_id是否表示private_stream_1的PES_packet()。
当在步骤S230所确定的结果表示在stream_id寄存器252中所存储的stream_id不表示private_stream_1的PES_packet(),即如图20所示,在stream_id寄存器252中所存储的stream_id是否为被分配给已经与MPEG标准对应地编码的音频流的110xxxxxB,流程前进到步骤S231。在步骤S231,音频读取功能部分234搜索在缓存器215A中所存储的节目流,以寻找表示在MPEG音频中所定义的音频帧的开始的同步代码。由于同步代码的位置在音频帧的开始,所以音频读取功能部分234更新音频读取指针以便其表示音频帧的开始位置。之后,流程从步骤S231前进到步骤S232。在步骤S232,音频读取功能部分234搜索在缓存器215A中所存储的节目流,以寻找同与音频读取指针所表示的位置对应的stream_id寄存器252中所存储的stream_id匹配的PES_packet(),并且获得PES_packet()。之后,流程前进到步骤S233。
在步骤S233,音频读取功能部分234更新在引擎读取指针存储部分251中所存储的音频读取指针,从而音频读取指针表示已经在步骤S232中发现的、PES_packet()的PES_packet_data_byte(图16A和图16B到图18A和图18B)。之后,流程前进到步骤S237。
在步骤S237,音频读取功能部分234确定音频解码器控制模块217是否已经发出了数据请求。当在步骤S237的确定结果表示音频解码器控制模块217还没有发出数据请求时,流程返回到步骤S237。在步骤S237,音频读取功能部分234重复相同的处理。
相反地,当在步骤S237的确定结果表示音频解码器控制模块217已经发出了数据请求时,流程前进到步骤S238。在步骤S238,音频读取功能部分234从缓存器215A中的音频读取指针所表示的位置对节目流进行语法分析,从缓存器215A中读取具有预定固定长度的一个音频存取单元,而且将音频存取单元与添加到该音频存取单元的时间戳(PTS和DTS)一起提供到音频解码器控制模块217。
音频读取功能部分234以从缓存器215A中读取的一个音频存取单元的大小来更新音频读取指针。之后,流程前进到步骤S237。在步骤S237,音频读取功能部分234重复相同的处理。
相反地,当在步骤S230的确定结果表示在stream_id寄存器252中所存储的stream_id表示private_stream_1的PES_packet()时,即当stream_id寄存器252中所存储的stream_id是10111101B(=0xBD)并且表示如图20中所描述的private_stream_1的PES_packet()时,流程前进到步骤S234。在步骤S234,音频读取功能部分234搜索在缓存器215A中所存储的节目流以寻找private_stream_1的PES_packet(),并且获得PES_packet()。换句话说,音频读取功能部分234搜索其stream_id为10111101B的PES_packet()并且获得PES_packet()。
当音频读取功能部分234已经在步骤S234发现了private_stream_1的PES_packet()时,流程前进到步骤S235。在步骤S235,音频读取功能部分234从作为private_stream_1的PES_packet()的PES_packet_data_byte的private_stream1_PES_payload()(图21)中提取private_stream_id,并且确定private_stream_id是否与已经在图30中所示的步骤S127中被存储在private_stream_id寄存器253(图3)中的、要被再现的音频流的private_stream_id匹配。
当在步骤S235的确定结果表示在private_stream1_PES_payload()中所描述的private_stream_id与在private_stream_id寄存器253中所存储的private_stream_id不匹配时,即在步骤S234中所发现的private_stream_1的PES_packet()不是要被再现的音频流时,流程返回到步骤S234。在步骤S234,音频读取功能部分234搜索在缓存器215A中所存储的节目流以寻找private_stream_1的PES_packet()。之后,音频读取功能部分234重复相同的处理。
在另一方面,当在步骤S235的确定结果表示在program_stream_PES_payload()中描述的private_stream_id与private_stream_id寄存器253中所存储的private_stream_id匹配时,即在步骤S234中发现的private_stream_1的PES_packet()是要被再现的音频流时,流程前进到步骤S236。在步骤S236,音频读取功能部分234从缓存器215A中读取在private_stream1_PES_payload()(图21)中所描述的AU_locator,将AU_locator之后紧邻的位置和AU_locator表示的值相加,并且获得音频读取单元的开始位置。
换句话说,如图21中所述,AU_locator表示基于AU_locator之后紧邻的位置的、private_stream1_PES_payload()的private_payload()中所存储的音频存取单元(或者字幕存取单元)的开始位置。因此,通过将AU_locator的值与AU_locator之后紧邻的位置相加,可以获得音频存取单元的(绝对)开始位置。
在步骤S236,音频读取功能部分234更新在音频读取指针存储部分251中所存储的音频读取指针,从而音频读取指针表示已经获得的音频读取单元的开始位置。之后,流程前进到步骤S237。
在步骤S237,音频读取功能部分234确定音频解码器控制模块217是否已经发出了数据请求。当在步骤S237的确定结果表示音频解码器控制模块217已经发出了数据请求时,流程前进到步骤S237。在步骤S237,音频读取功能部分234重复相同的处理。
相反地,当步骤S237的确定结果表示音频解码器控制模块217已经发出了数据请求时,流程前进到步骤S238。在步骤S238,音频读取功能部分234从缓存器215A中的音频读取指针所表示的位置对节目流进行语法分析,从缓存器215A中读取具有预定长度的一个音频存取单元,并且将音频存取单元与被添加到该音频存取单元的时间戳一起提供到音频解码器控制模块217。
音频读取功能部分234以从缓存器215A读取的一个音频存取单元的大小来更新音频读取指针。之后,流程返回到步骤S237。在步骤S237,音频读取功能部分234重复相同的处理。
[读取字幕流]
随后,将参照图38中所示的流程图来描述针对字幕读取功能部分235(图3)的缓存器215A的字幕流读取处理。
在步骤S251,字幕读取功能部分235确定在图30中所示的步骤S127中已经被存储在视频解码器控制模块216中的字幕读取功能标志。当在步骤S251的确定结果表示字幕读取功能标志为0时,即与要被再现的基本流复用的剪切片段流文件不包含字幕流,而且在图30中所示的步骤S127中已经将0设置到字幕读取功能标志存储部分261中时,字幕读取功能部分235不执行任何处理。
相反地,当在步骤S251的确定结果表示字幕读取功能标志为1时,即与要被再现的基本流复用的剪切片段流文件包含字幕流,而且在图30中所示的步骤S127中已经将1设置到字幕读取功能标志存储部分261中时,流程前进到步骤S252。在步骤S252,字幕读取功能部分235搜索缓存器215A中所存储的节目流以寻找与要被再现的字幕流的、已经存储在stream_id寄存器263(图3)中的stream_id匹配的PES_packet()。
如图30中所示的步骤S127所述,要被再现的字幕流的stream_id存储在stream_id寄存器263(图3)中。在另一方面,如图20所述,字幕流的stream_id是10111101B(=0xBD),其表示private_stream_1的PES_packet()。
因此,在步骤S252,字幕读取功能部分235搜索在缓存器215A中所存储的节目流以寻找private_stream_1的PES_packet()。
当字幕读取功能部分235已经搜索了private_stream_1的PES_packet()并且获得它时,流程前进到步骤S253。字幕读取功能部分235从作为private_stream_1的PES_packet()的PES_packet_data_byte的private_stream1_PES_payload()(图21)中提取private_stream_id,并且确定private_stream_id是否与要被再现的字幕流的、在图30中所示的步骤S127中已经被存储在private_stream_id寄存器264(图3)的private_stream_id匹配。
当在步骤S253的确定结果表示在private_stream1_PES_payload()中所描述的private_stream_id与private_stream_id寄存器264中所存储的private_stream_id不匹配时,即当在步骤S252中已经获得的的private_stream_1的PES_packet()不是要被再现的字幕流时,流程返回到步骤S252。在步骤S252,字幕读取功能部分235搜索缓存器215A中所存储的节目流以寻找另一个private_stream_1的PES_packet()。之后,字幕读取功能部分235重复相同的处理。
相反地,当在步骤S253的确定结果表示在private_stream1_PES_payload()中所描述的private_stream_id匹配在private_stream_id寄存器264中所存储的private_stream_id时,即当已经在步骤S252中获得的private_stream_1的PES_packet()是要被再现的字幕流时,流程前进到步骤S254。在步骤S254,字幕读取功能部分235从缓存器215A中读取private_stream_1的PES_packet()的private_stream1_PES_payload()(图21)中所描述的AU_locator,将AU_locator之后紧邻的位置与AU_locator所表示的值相加,并且获得字幕存取单元的开始位置。
如图21中所述,AU_locator表示基于AU_locator之后紧邻的位置的、private_stream1_PES_payload()的private_load()中存储的字幕存取单元(或者音频存取单元)的开始位置。因此,通过将AU_locator表示的值和AU_locator之后紧邻的位置相加,可以获得字幕存取单元的(绝对)开始位置。
此外,在步骤S254中,字幕读取功能部分236更新字幕读取读取指针存储部分262中所存储的字幕读取指针,从而字幕读取指针表示所获得的字幕存取单元的开始位置。之后,流程前进到步骤S255。
在步骤S255,字幕读取功能部分235确定字幕解码器控制模块218是否已经发出了数据请求。当在步骤S255的确定结果表示字幕读取功能部分235还没有发出数据请求时,流程返回到步骤S255。在步骤S255,字幕读取功能部分235重复相同的处理。
相反地,当在步骤S255的确定结果表示字幕解码器控制模块218已经发出了数据请求时,流程前进到步骤S256。在步骤S256中,字幕读取功能部分235从缓存器215A中字幕读取指针所表示的位置对节目流进行语法分析,从缓存器215A中以字幕存取单元开始处所描述的大小读取一个字幕存取单元,并且将字幕存取单元与被添加到字幕存取单元的时间戳一同提供给字幕解码器控制模块218。如图2A和图2B中所述,在其开始处描述字幕存取单元的大小。字幕读取功能部分235从缓存器215A中字幕读取指针所表示的位置以该大小读取数据,并且将字幕存取单元与被添加到字幕存取单元的时间戳一同提供给字幕解码器控制模块218。
字幕读取功能部分235以从缓存器215A中读取的一个字幕存取单元的大小来更新字幕读取指针。之后,流程前进到步骤S255。在步骤S255,字幕读取功能部分235重复相同的处理。
[重新同步处理]
随后,将描述图2A和图2B中所示的解码控制模块214的视频数据和音频数据的同步控制。
如图30中所示的步骤S130中所述,解码控制模块214使得视频解码器控制模块216、音频解码器控制模块217和字幕解码器控制模块218开始解码它们的数据。如果需要,解码控制模块214使得这些模块开始以不同的定时来解码它们的数据以将它们同步。例如,当视频解码器116和音频解码器117执行它们的解码处理时,根据它们前进的程度,它们可以在不同的定时输出视频数据和音频数据。
因此,解码控制模块214执行补偿视频数据和音频数据的输出定时的差异的重新同步处理,并且使得视频解码器116和音频解码器117同步地输出视频数据和音频数据。
随后,将参照图39中所示的流程图来描述重新同步处理。
在重新同步处理中,在步骤S271,解码控制模块214确定从视频解码器控制模块216输出的视频存取单元的时间戳与从音频解码器控制模块217输出的音频存取单元的时间戳之间的差是否较大。
如在图30所示的步骤S129中所述,当视频解码器控制模块216从缓存器控制模块215接收到视频存取单元的任何时候,视频解码器控制模块216都将视频存取单元的时间戳提供给解码控制模块214。类似地,当音频解码器控制模块217从缓存器控制模块215接收到音频存取单元的任何时候,音频解码器控制模块217都将音频存取单元的时间戳提供给解码控制模块214。
在步骤S271,解码控制模块214在相同定时(在被认为时相同定时的预定时间段中),将从视频解码器控制模块216和音频解码器控制模块217接收来的时间戳进行比较,并且确定时间戳值差是否较大。
当在步骤S271中的确定结果表示从视频解码器控制模块216接收来的视频存取单元的时间戳与从音频解码器控制模块217接收来的音频存取单元的时间戳不大时,即视频存取单元的时间戳和音频存取单元的时间戳之间的差在可以认为存取单元是同步的预定范围内例如两个时间帧大约(66毫秒)时,流程返回到步骤S271。在步骤S271中,解码控制模块214确定(监测)时间戳的差。
相反地,当在步骤S271的确定结果表示从视频解码器控制模块216接收来的视频存取单元的时间戳和从音频解码器控制模块217接收来的音频存取单元的时间戳之间的差较大时,即当该差不在可以认为存取单元是同步的预定范围内时,流程前进到步骤S272。在步骤S272,解码控制模块214将从视频解码卡控制模块216接收来的视频存取单元的时间戳与从音频解码器控制模块217接收来的音频存取单元的时间戳进行比较,从而确定视频数据的输出和音频数据的输出哪一个更晚。
当在步骤S272中的确定结果表示视频数据的输出晚于音频数据的输出时,流程前进到步骤S273。在步骤S273,解码控制模块214使得视频解码器控制模块216停止解码和输出(显示)视频存取单元,即跳过用于视频存取单元的处理,以将处理前进一个视频存取单元。之后,流程前进到步骤S274。
在步骤S274,视频解码器控制模块216从解码控制模块214接收跳过请求,并且检查从缓存器控制模块215与视频存取单元一同提供来的au_ref_flag(图24)。
换句话说,在private_stream_2的PES_packet()的private_stream2_PES_payload()(图23)中所存储的au_information(图24)包含au_ref_flag作为关于存取单元的信息。如图30中所示的步骤S129和图36中所示的步骤S216所述,缓存器控制模块215将视频存取单元与其au_ref_flag一起提供给视频解码器控制模块216。
在步骤S274中,视频解码器控制模块216检查与存取单元一同提供的存取单元的au_ref_flag。
之后,流程从步骤S274前进到步骤S275。在步骤S275,视频解码器控制模块216确定视频存取单元是否为当与视频存取单元的au_ref_flag的检查结果对应地解码另一个画面时没有被参考的、已经从缓存器控制模块215提供来的非参考图像。
如图24中所述,视频存取单元的au_ref_flag表示存取单元是否为参考图像。当存取单元是参考图像时,au_ref_flag为1。相反地,当存取单元不是参考图像时,au_ref_flag为0。
当在步骤S275的确定结果表示从缓存器控制模块215提供来的视频存取单元不是非参考图像(其视频存取单元)时,即当从缓存器控制模块215提供来的视频存取单元是参考图像时,流程前进到步骤S276。在步骤S276,视频解码器控制模块216使得视频解码器116正常地处理视频存取单元。在视频解码器控制模块216已经从缓存器控制模块215接收了下一个视频存取单元之后,流程前进到步骤S274。
相反地,当在步骤S275的确定结果表示从缓存器控制模块215提供来的视频存取单元是非参考图像时,流程前进到步骤S277。在步骤S277,视频解码器控制模块216使得视频解码器116跳过用于视频存取单元的处理。在缓存器控制模块215已经提供了下一个视频存取单元之后,流程返回到步骤S271。
由于跳过了用于视频存取单元的处理,所以将处理前进几乎一个视频存取单元(较少处理时间)。结果,将晚于音频数据的输出的视频数据的输出推前。
相反地,如果在步骤S272中的确定结果表示视频数据的输出不晚于音频数据的输出时,即音频数据的输出晚于视频数据的输出时,流程前进到步骤S278。在步骤S278,解码控制模块214将连续输出命令输出到视频解码器控制模块216,以连续地输出与正在被解码的视频存取单元对应的视频数据,来使得视频解码器控制模块216等待用于下一个视频存取单元的处理。之后,流程前进到步骤S279。
在步骤S279,视频解码器控制模块216从解码控制模块214接收连续的输出请求,并且与连续输出请求对应地连续将正在被解码的视频存取单元的视频数据输出到图形处理模块219。在缓存器控制模块215已经提供了下一个视频存取单元之后,流程前进到步骤S271。
如上所述,解码控制模块214确定视频数据的输出是否晚于音频数据的输出。当视频数据的输出晚于音频输出的输出时,解码控制模块214使得视频解码器控制模块216跳过一个存取单元的处理。视频解码器控制模块216对应于存取单元的au_ref_flag,来确定要被跳过的存取单元是参考图像还是非参考图像。当存取单元是非参考图像时,解码控制模块214使得视频解码器116跳过用于该存取单元的处理。因此,可以容易地同步视频数据的输出和音频数据的输出。
换句话说,当要被跳过的存取单元是参考图像时,需要解码存取单元的视频数据,以便当解码另一个存取单元时参考视频数据。因此,当同步视频数据的输出和音频数据的输出时,如果跳过用于参考图像的存取单元的处理,则不能够解码参考该参考图像的另一个存取单元。结果,当显示与音频数据同步的视频数据时,出现噪声。
因此,最好跳过不是非参考图像的存取单元。
在另一方面,为了搜索用于作为非参考图像的存取单元的传统基本流,需要对基本流进行语法分析。与例如MPEG4-AVC系统对应地编码的基本流非常复杂。因此,当语法分析基本流时,需要非常高的开销。
相反地,除包含存取单元的、具有PES_packet_data_type的PES_packet()(图16A和图16B到图18A和图18B)之外,将包括private_stream2_PES_payload()(图23)(其是PES_packet_data_type的扩展)的private_stream_2的PES_packet()与在盘101上记录的剪切片段流文件中所存储的节目流复用。private_stream2_PES_payload()的au_information()(图24)描述au_ref_flag,其表示视频存取单元是参考图像还是非参考图像。从缓存器控制模块215将au_ref_flag和对应的视频存取单元提供到视频解码器控制模块216。因此,视频解码器控制模块216可以通过检查视频存取单元的au_ref_flag确定视频存取单元是参考图像还是非参考图像,而几乎不需要额外成本。
[标记处理]
随后,将参照图40的流程图来描述基于PlayListMark()(图7)中描述的Mark()的标记处理。
解码控制模块214总检查由内置时间计数部分214A所计数的当前时间。在步骤S301,解码控制模块214确定当前时间是否匹配于PlayListMark()(图7)中描述的任何Mark()的mark_time_stamp。
如图30中所示的步骤S124中所述,当播放器控制模块212再现图25中示出的第一PlayList#0的第一PlayItem#0时,播放器控制模块212识别在图28上部的表中的PlayListMark()中所包含的七个Mark()中的第一到第四Mark()的四个Mark()属于PlayList#0的第一PlayItem#0,并且将作为四个Mark()的mark_time_stamp的{180,090}、{5,580,090}、{10,980,090}和{16,380,090},与表示mark_time_stamp的表示是“mark_process(标记处理)”的时间属性的信息一同提供给解码控制模块214。
在步骤S301,解码控制模块214确定已经从播放器控制模块212提供来的、具有属性“mark process”的四个时间(多个mark_time_stamp)的哪一个匹配于当前时间。
当在步骤S301的确定结果表示当前时间不匹配于具有属性“mark process”的任何时间时,流程返回到步骤S301。在步骤S301,解码控制模块214重复相同的处理。
相反地,当在步骤S301的确定结果表示当前时间匹配于具有属性“markprocess”的四个时间之一时,解码控制模块214将表示当前时间变为具有属性“mark process”的时间的消息与具有属性“mark process”的所匹配的时间一同提供给播放器控制模块212。之后,流程前进到步骤S302。
在步骤S302,播放器控制模块212从解码控制模块214接收表示当前时间变为具有属性“mark process”的时间的消息和具有属性“mark process”的所匹配的时间,并且识别其mark_time_stamp匹配于当前时间的Mark()作为要被处理的Mark()用于标记处理(之后,有时将该Mark()称为目标标记)。
换句话说,播放器控制模块212已经识别了正在被再现的PlayList()的PlayItem()。通过用PlayList()、PlayItem()和属性为“mark process”的所匹配的时间(mark_time_stamp)(后面有时将该时间称为标记时间)参考“PLAYLIST.DAT”文件(图5)的PlayListMark()(图7),播放器控制模块212识别目标标记。
具体地说,假设正在再现图25中所示的第一PlayList#0的第一PlayItem#0,则播放器控制模块212识别作为图28上部的表中的PlayListMark()中所包含的七个Mark()中的第一到第四Mark()的四个Mark()的任何一个的mark_time_stamp。
当从解码控制模块214提供到播放器控制模块212的标记时间时例如16,380,090时,播放器控制模块212将作为图28上部的表中所示PlayListMark()中所包含的第一到第四Mark()的四个Mark()中,其mark_time_stamp为作为标记时间的16,380,090的第四Mark()作为目标标记。
当播放器控制模块212已经识别了目标标记时,流程从步骤S302前进到步骤S303。在步骤S303,播放器控制模块212确定目标标记是否描述标识基本流的entry_ES_stream_id和entry_ES_private_stream_id(图7)。
当步骤S303中的确定结果表示目标标志不描述表示基本流的entry_ES_stream_id和entry_ES_private_stream_id(图7)时,即当entry_ES_stream_id和entry_ES_private_stream_id都为0x00时,流程前进到步骤S305,跳过步骤S304。在步骤S305,解码控制模块214执行用于目标标志的处理。
相反地,当在步骤S303的确定结果表示目标标志描述标识基本流的entry_ES_stream_id和entry_ES_private_stream_id(图7)时,流程前进到步骤S304。在步骤S304,播放器控制模块212确定正在被再现的基本流包含由entry_ES_stream_id和在必要时entry_ES_private_stream_id所标识的基本流。
当步骤S304的确定结果表示正在被再现的基本流包含由目标标志的entry_ES_stream_id和entry_ES_private_stream_id所标识的基本流时,流程返回到步骤S301。换句话说,当不是正在再现由目标标记的entry_ES_stream_id和entry_ES_private_stream_id所表示的基本流时,忽略目标标记。
相反地,当在步骤S304的确定结果表示正在被再现的基本流包含由目标标记的entry_ES_stream_id和entry_ES_private_stream_id所标识的基本流时,即当正在再现由目标标记的entry_ES_stream_id和entry_ES_private_stream_id所标识的基本流时,确定目标标记有效。之后,流程前进到步骤S305。在步骤S305,播放器控制模块212执行用于目标标记的处理。
换句话说,在步骤S305,通过参考目标标记的mark_type(图7),播放器控制模块212确定目标标记。
当在步骤S305的确定结果表示目标标记是章节标记还是索引标记时,即当目标标记的mark_type是“Chapter”或者“Index”时,流程前进到步骤S306。在步骤S306,播放器控制模块212使得图形处理模块219用目标标记的章节号码和索引号码来更新章节号码和索引号码。之后,流程返回到步骤S301。
当在步骤S305的确定结果表示目标标记是事件标记时,即当目标标记的mark_type是“Event”时,流程前进到步骤S307。在步骤S307,播放器控制模块212将表示事件已经发生的事件消息和目标标记的mark_data都通知给脚本控制模块211。之后,流程前进到步骤S308。
在步骤S308,脚本控制模块211从播放器控制模块212接收事件消息和mark_data,并且用与事件消息的中断请求对应的mark_data作为参数执行在“SCRIPT.DAT”文件中所描述的处理序列。之后,流程返回到步骤S301。
换句话说,脚本控制模块211执行与mark_data对应的处理。
具体地说,在图28下部的表中的PlayList#1的PlayListMark()中,第二Mark()(Mark#1)和第三Mark()(Mark#2)的每一个的mark_type是“Event”而Mark#1的mark_data与Mark#2的mark_data不同。
当脚本控制模块211接收到与第二Mark()对应的事件消息和与第三Mark()对应的事件消息时,脚本控制模块211用相同的事件处理程序(中断处理例程)执行与所接收到的事件消息对应的处理。脚本控制模块211检查与事件消息一同提供来的mark_data并且执行与mark_data对应的处理。
具体地说,当mark_data是例如1时,脚本控制模块211控制图形处理模块219以显示第一类型图标。当mark_data是例如2时,脚本控制模块211控制图形处理模块219来显示第二类型图标。
mark_data不限于1和2。此外,与mark_data对应的处理不限于简单图标的显示。
换句话说,当mark_data在从3到18的范围内时,脚本控制模块211控制图形处理模块219以用与从mark_data中减去2的值(在范围1到16中的值)对应的强度来显示第一类型图标。在另一方面,当mark_data在19到34的范围内时,脚本控制模块211控制图形处理模块219用与从mark_data中减去18的值(范围从1到16的值)对应的强度来显示第二类型图标。
当用户操作的控制器连接到输入接口115(图1)并且控制器具有振动电机(该振动电机是带有安装在电机轴上的偏心重量的直流(DC)电机并且当驱动该电机时振动)时,如果mark_data的值在35到42的范围内,可以在与从mark_data中减去34的值(在范围1到8中的值)对应的操作时间段中驱动振动电机。
mark_data是数值。可以用脚本控制模块211执行的脚本程序来描述mark_data的使用和算法。因此,可以与预定规则、或者盘101的制造商或者提供盘101上所记录的数据的内容提供商所指定的原始规则对应地使用mark_data。
在当前事件匹配于具有属性“mark process”的时间时,从标记时间中识别作为具有属性“mark process”的时间的目标标记。当目标标记不描述标识基本流的entry_ES_stream_id和entry_ES_private_stream_id时,执行与目标标记的mark_type对应的处理。即使目标标记描述标识基本流的entry_ES_stream_id和entry_ES_private_stream_id,同时正在再现由entry_ES_stream_id和entry_ES_private_stream_id所标识的基本流时,也执行与目标标记的mark_type对应的处理。
当正在再现与图25中所示的第二PlayList#1时,执行下面的标记处理。
换句话说,如图28下部的表中所示,第二PlayList#1的PlayListMark()描述第一Mark()(Mark#0)、第二Mark()(Mark#1)和第三Mark()(Mark#2),它们的mark_time_stamp分别是90,000、27,090,000和27,540,000。
此外,由于在图28下部的表中的PlayListMark()的第二Mark()和第三Mark()的entry_ES_stream_id描述0xE0和0xE1,所以将第二Mark()和第三Mark()分别与0xE0和0xE1的stream_id所标识的基本流相关联。
如图25中所述,第二PlayList#1只描述一个PlayItem()(PlayItem#0)。用PIayItem#0,再现剪切片段流文件“00003.PS”。如图26A和图26B中所示的剪切片段信息文件“00003.CLP”(其对应于剪切片段流文件“00003.PS”)中所述,三个基本流与剪切片段流文件“00003.PS”复用,这三个基本流是由0xE0的stream_id标识的视频流stream#0、由0xE1的stream_id标识的视频流stream#1和由0x00的private_stream_id标识的音频流stream#2。
因此,在图28下部的表中的PlayListMark()的第二Mark()相关于其stream_id为0xE0的、与剪切片段流文件“00003.PS”复用的视频流文件stream#0。第三Mark()相关于其stream_id为0xE1的、与剪切片段流文件“00003.PS”复用的视频流文件stream#1。
当再现图25中所示的第二PlayItem#1的PlayItem#0时,如图30中所示的步骤S124中所述,播放器控制模块212识别在图28下部的表中的PlayListMark()中所包含的三个Mark()属于PlayList#1的PlayItem#0,并且将作为三个Mark()的mark_time_stamp的{90,000}、{27,090,000}和{27,540,000}与表示具有属性“mark process”的时间的信息一同提供给解码控制模块214。
在标记处理中,当正在再现PlayList#1的PlayItem#0时,解码控制模块214总确定时间{90,000}、{27,090,000}和{27,540,000}中的哪个匹配于由时间计数部分214A所计数的当前时间(在步骤S301)。当当前时间匹配于具有属性“markprocess”的时间时,解码控制模块214将作为具有属性“mark process”的时间的、匹配于当前时间的标记时间,与标识当前时间变为具有属性“mark process”的时间的消息一同提供给播放器控制模块212。
在当前时间匹配于具有属性“mark process”的时间{90,000}、{27,090,000}和{27,540,000}中的27,090,000时,解码控制模块214将具有属性“mark process”的标记时间27,090,000,与表示当前时间变为具有属性“mark process”的时间的消息一同提供给播放器控制模块212。
播放器控制模块已经识别正在被再现PlayList#1的PlayItem#0。播放器控制模块212将作为属于图28下部的表中的PlayListMark()中所描述的Mark()的PlayItem#0的三个Mark()的mark_time_stamp的90,000、27,090,00和27,540,000,与作为从解码控制模块214提供来的标记时间的27,090,00进行比较,并且识别其mark_time_stamp匹配于作为标记时间的27,090,000的Mark(),即图28下部的表的PlayListMark()中所描述的第二Mark()(Mark#1)是目标标记(在步骤S302)。
在图28下部的表中的PlayListMark()中所描述的、作为目标标记的第二Mark()中,entry_ES_stream_id是0xE0。如上所述,0xE0的entry_ES_stream_id表示其stream_id为0xE0的、与剪切片段流文件“00003.PS”复用的视频流stream#0(图26A和图26B)。播放器控制模块212确定正在被再现的基本流是否包含视频流stream#0(在步骤S303和S304)。
当正在被再现的基本流不包含视频流stream#0时,播放器控制模块212忽略目标标记(在步骤S304)。
相反地,当正在被再现的基本流包含视频流stream#0时,播放器控制模块211认为目标标记有效并且执行与目标标记对应的处理(在步骤S305到S308)。
在这种情况下,在作为目标标记的、在图28下部的表中的PlayListMark()中所描述的第二Mark()中,mark_type是“Event”。因此,第二Mark()是事件标记。播放器控制模块212将表示事件已经发生的事件消息和目标标记的mark_data提供给脚本控制模块211(在步骤S305和S307)。脚本控制模块211用与从播放器控制模块212接收来的事件消息的中断请求对应的mark_data的参数来执行“SCRIPT.DAT”中所描述的处理序列(在步骤S308)。
如上所述,在标记处理中,播放器控制模块确定作为与在PlayList()的事件轴上表示一个再现时间的mark_time_stamp、表示Mark()的类型的mark_type、和包含具有一个Mark()或者多于一个Mark()(其包含mark_data作为事件标记的自变量)的PlayListMark()(图7)的PlayList()对应地再现的剪切片段流文件的再现时间的当前时间是否匹配于mark_time_stamp。在当前时间匹配于mark_time_stamp时,播放器控制模块212将具有等于作为当前时间的标记时间的mark_time_stamp的Mark()识别为目标标记。当具有目标标记的mark_type表示事件发生的类型时,即目标标记为事件标记时,提供目标标记所具有的mark_type和事件消息。播放器控制模块212执行与mark_data对应的处理。因此,播放器控制模块212可以在剪切片段流文件的再现事件中执行与mark_data对应的处理。
[输出属性控制处理]
随后,将参照图41中所示的流程图来描述图30中步骤S126所执行的输出属性控制处理。
如图30中的步骤S126中所示,播放器控制模块212检查表示描述要被再现的至少一个基本流的输出属性的DynamicInfo()(图13)的数量的number_ofDynamicInfo(),即在步骤S125已经决定的要被再现的至少一个基本流。
当要被再现的至少一个基本流的每一个的number_of_DynamicInfo()为0时,播放器控制模块212不执行任何处理。
相反地,当要被再现的至少一个基本流的每一个的number_ofDynamicInfo()不为0时,播放器控制模块212执行与图41中所示的流程图对应的输出属性控制处理。
因此,当在盘101上记录的三个剪切片段信息文件“00001.CLP”、“00002.CLP”和“00003.CLP”如图26A和图26B中所示并且再现与剪切片段信息文件“00001.CLP”对应的剪切片段流文件“00001.PS”(再现剪切片段流文件“00001.PS”的第一PlayList#0的第一PlayItem#0)时,由于作为stream#0到stream#3的所有四个基本流的number_of_DynamicInfo()为0,所以播放器控制模块212不执行输出属性控制处理。
类似地,当再现与剪切片段信息文件“00002.CLP”剪切片段流文件“00002.PS”(再现剪切片段流文件“00002.PS”的第一PlayList#0的第二PlayItem#1)时,由于作为steam#0到stream#3的、与剪切片段流文件“00002.PS”复用的四个基本流的所有number_of_DynamicInfo()为0,所以播放器控制模块212不执行输出属性控制处理。
相反地,当再现与剪切片段信息文件“00003.CLP”对应的剪切片段流文件“00003.PS”(再现剪切片段流文件“00003.PS”的第二PlayList#1的PlayItem#0)时,由于作为第一基本流的的视频流steam#0和作为第三基本流的音频流stream#2的所有number_of_DynamicInfo()分别为2和3,所以播放器控制模块212执行输出属性控制处理。
换句话说,在输出属性控制处理中,在步骤S320,播放器控制模块212将与要被再现的剪切片段流文件对应的剪切片段信息文件Clip()(图10)中所描述的pts_change_point,与表示具有属性“DynamicInfo()process”的时间的信息一同提供给解码控制模块214。解码控制模块214从播放器控制模块212接收作为具有属性“DynamicInfo()process”的时间的pts_change_point。之后,流程前进到步骤S321。
在步骤S321,解码控制模块214确定由时间计数部分214A所计数的当前时间是否匹配于作为具有属性“DynamicInfo()process”的时间的pts_change_point之一。当在图中S321的确定结果表示当前时间不匹配于任何pts_change_point时,流程返回到步骤S321。
相反地,当在步骤S321的确定结果表示当前时间匹配于具有属性“DynamicInfo()process”的任何一个时间时,解码控制模块214将表示当前时间变为具有属性“DynamicInfo()process”的时间的信息、和具有属性“DynamicInfo()process”的所匹配的时间(后面有时称为DynamicInfo时间)提供给播放器控制模块212。之后,流程前进到步骤S322。
在步骤S322,播放器控制模块212从解码控制模块214接收表示当前时间变为具有属性“DynamicInfo()process”的时间的信息和DynamicInfo时间,并且将与匹配于DynamicInfo时间的pts_change_point(图10)配对的DynamicInfo()识别为目标DynamicInfo()。之后,流程前进到步骤S323。
在步骤S323,播放器控制模块212将作为目标DynamicInfo()的DynamicInfo()(图13)中所描述的输出属性提供给图形处理模块219或者音频输出模块221。之后,流程前进到步骤S324。
在步骤S324,图形处理模块219或者音频输出模块221与从播放器控制模块212在步骤S323中已经提供来的输出属性对应地开始控制视频数据或者音频数据的输出。之后,流程返回到步骤S321。
因此,与例如被描述为输出属性(显示模式)的宽高比对应地输出视频数据。替代地,与例如被描述为输出属性的立体声模式或者双(双语)模式对应地输出音频数据。
随后,将参照图42来描述输出属性控制处理。
图42示出在图26A和图26B中所示的剪切片段信息文件“00003.CLP”中所描述的pts_change_point和DynamicInfo()(图10)对。
如上所述,在图26A和图26B中所示的剪切片段信息文件“00003.CLP”中,作为与剪切片段流文件“00003.PS”复用的三个基本流stream#0到stream#2的第一基本流和第三基本流的视频流stream#0和音频stream#2的number_of_DynamicInfo()分别为2和3。因此,剪切片段信息文件“00003.CLP”描述用于剪切片段流文件“00003.PS”的第一视频流stream#0的两组pts_change_point和DynamicInfo()、以及用于剪切片段流文件“00003.PS”的第三音频流stream#2的三组pts_change_point和DynamicInfo()。
图42上部的表示出了剪切片段流文件“00003.PS”的第一视频流stream#0的两组pts_change_point和DynamicInfo()。在图42下部的表中示出了剪切片段流文件“00003.PS”的第三音频流stream#2的三组pts_change_point和DynamicInfo()。
除第一视频流stream#0的两组pts_change_point和DynamicInfo()之外,图42上部的表中还表示第一视频流stream#0的、图26A和图26B中所示的、剪切片段信息文件“00003.CLP”的stream_id(=0xE0)、private_stream_id(=0x00)和number_of_DynamicInfo()(=2)。类似地,除第三音频流stream#2的三组pts_change_point和DynamicInfo()之外,图42下部的表中还表示音频流stream#2的、图26A和图26B中所示的、剪切片段信息文件“00003.CLP”的stream_id(=0xBD)、private_stream_id(=0x00)和number_of_DynamicInfo()(=3)。
在图42上部的表中,视频流stream#0的两组pts_change_point和DynamicInfo()的第一组的pts_change_point为90,000,而其DynamicInfo()的display_aspect_ratio(图13)为“4∶3”。第二组的pts_change_point为54,090,000而其DynamicInfo()的display_aspect_ratio为“16∶9”。
在图42下部的表中,音频流stream#2的三组pts_change_point和DynamicInfo()的第一组的pts_change_point为90,000,而其DynamicInfo()的channel_assigment(图13)是“Dual(双)”。第二组的pts_change_point为27,090,000而其DynamicInfo()的channel_assignment是“Stereo(立体声)”。第三组的pts_change_point为32,490,000而其DynamicInfo()的channel_assigment为“Dual”。
现在,假设在图30中所示的步骤S125中,已经将由0xE0的stream_id所标识的第一视频流stream#0和由0xBD的stream_id以及0x00的private_stream_id所标识的第三音频流stream#2,决定为要从剪切片段流文件“00003.PS”中再现的流。
在这种情况下,播放器控制模块212针对由为0xE0的stream_id所标识的视频流stream#0检查图42上部的表中两组pts_change_point和DynamicInfo(),并且针对由为0xBD的stream_id以及为0x00的private_stream_id所标识的音频流stream#2检查图42下部的表中三组pts_change_point和DynamicInfo(),并且识别初始值。
换句话说,针对由为0xE0的stream_id所标识的视频流stream#0的图42上部的表中两组pts_change_point和DynamicInfo()的第一组的pts_change_point为90,000。90,000匹配于presentation_start_time中所描述的90,000,其表示在图26A和图26B中所示的、与已经用其复用了视频流stream#0的剪切片段流文件“00003.PS”对应的剪切片段信息文件“00003.CLP”中的剪切片段流文件“00003.PS”的开始时间。
类似地,针对由为0xBD的stream_id以及为0x00的private_stream_id所标识的音频流stream#2的图42下部的表中三组pts_change_point和DynamicInfo()的第一组的pts_change_point为90,000。90,000匹配于presentation_start_time中所描述的90,000,其表示在图26A和图26B中所示的、与已经用其复用了音频流stream#2的剪切片段流文件“00003.PS”对应的剪切片段信息文件“00003.CLP”中的剪切片段流文件“00003.PS”的开始时间。
播放器控制模块212将匹配于表示剪切片段流文件“00003.PS”的开始时间的、在presentation_start_time中所描述的90,000的pts_change_point识别为初始值。因此,播放器控制模块212将图42上部的表中的两组pts_change_point和DynamicInfo()的第一组的pts_change_point、以及图42下部的表中的三组pts_change_point和DynamicInfo()的第一组的pts_change_point识别为初始值。
在再现剪切片段流文件“00003.PS”(图30中所示的步骤S126)之前,播放器控制模块212指定与被识别为初始值的pts_change_point配对的DynamicInfo()对应的基本流的输出属性。
对于图42上部的表中、由为0xE0的stream_id所标识的视频流stream#0来说,与以90,000作为初始值的pts_change_point配对的DynamicInfo()的display_aspect_ratio为“4∶3”。在这种情况下,播放器控制模块212用表示display_aspect_ratio为“4∶3”的信息,即关于表示视频流stream#0是其宽高比为4∶3的视频数据的输出属性的信息,来控制图形处理模块218。
对于图42下部的表中、由为0xBD的stream_id以及为0x00的private_stream_id所标识的音频流stream#2来说,与90,000作为初始值的pts_change_point配对的DynamicInfo()的channel_assigment是“Dual”。在这种情况下,播放器控制模块将表示channel_assignment是“Dual”的信息,即关于表示音频流stream#2是双音频数据的输出属性的信息,提供给音频输出模块221。
在图30的步骤S126中,播放器控制模块212执行针对pts_change_point为初始值的输出属性控制处理。
之后,播放器控制模块212将针对图42上部的表中的视频流stream#0的、作为两个pts_change_point的90,000和54,090,000,和针对图42下部的表中的音频流stream#2的、作为三个pts_change_point的时间的90,000、27,090,000和32,490,00中除了作为初始值的90,000之外的{27,090,000}和{32,490,000},与表示这些时间具有属性“DynamicInfo()process”的信息一同提供给解码控制模块214(在步骤S320)。
解码控制模块214从播放器控制模块212接收具有属性“DynamicInfo()process”的时间{27,090,000}、{32,490,000}和{54,090,000}。在开始再现视频流stream#0和音频流stream#2(再现剪切片段流文件“00003.PS”的第二PlayList#1的PlayItem#0)之后,解码控制模块开始监测由时间计数部分214A所计数的当前时间。
当当前时间匹配于具有属性“DynamicInfo()process”的时间{27,090,000}、{32,490,000}和{54,090,000}之一时,解码控制模块214将作为具有属性“DynamicInfo()process”的时间并且匹配于当前时间的DynamicInfo时间提供给播放器控制模块212(在步骤S321)。
当当前时间变为例如27,090,000时,解码控制模块214提供匹配于当前时间的并且是具有属性“DynamicInfo()process”的时间之一的27,090,000给播放器控制模块212。
播放器控制模块212从解码控制模块214接收作为DynamicInfo时间的27,090,000,从图42上部的表中的视频stream#0的两个pts_change_point和图42下部的表中音频stream#2的三个pts_change_point中检查匹配于作为DynarnicInfo时间的27,090,000的pts_change_point,并且将与匹配于27,090,000的pts_change_point配对的DynamicInfo(),即图42下部的表中的音频流stream#2的第二DynamicInfo(),识别为目标DynamicInfo()(在步骤S322)。
当目标DynamicInfo()为视频流的DynamicInfo()时,播放器控制模块212将目标DynamicInfo()中所描述的输出属性提供给图形处理模块219(在步骤S323)。当目标DynamicInfo()是音频流的DynamicInfo()时,播放器控制模块212将目标DynamicInfo()中所描述的输出属性提供给音频输出模块221(在步骤S323)。
当图形处理模块219已经从播放器控制模块212接收到输出属性时,图形处理模块219与输出属性对应地开始控制视频数据的输出(在步骤S324)。
换句话说,图形处理模块219把要输出到视频输出模块220的视频数据的宽高比,与从例如播放器控制模块212接收来的输出属性所表示的视频数据的宽高比(display_aspect_ratio(图13))和连接到图1中所示的视频输出端120的视频输出设备的宽高比对应地进行转换。
具体地说,当视频输出设备的宽高比为例如16∶9而输出属性所表示的视频数据的宽高比为4∶3时,图形处理模块219在水平方向执行用于要被输出到视频输出模块220中的视频数据的挤压处理(squeeze process),并且使得视频数据的左右两侧为黑色。当视频输出设备的视频数据的宽高比为例如4∶3而输出属性所表示的视频数据的宽高比为16∶9时,图形处理模块219在垂直方向中执行用于要被输出到视频输出模块220的视频数据的挤压处理,并且使得视频数据的上下两边为黑色。当视频输出设备的宽高比和作为输出属性的视频数据的宽高比相同时,例如4∶3或者16∶9时,图形处理模块219将视频数据输出到视频输出模块220而不执行针对视频数据的挤压处理。
用图42上部的表中的、针对由为0xE0的stream_id所标识的视频流stream#0的两组pts_change_point和DynamicInfo(),在时间54,090,000之前,在作为视频流stream#0的再现开始时间的时间90,000之后获得具有宽高比4∶3的视频数据。在时间54,090,000之后,获得具有宽高比16∶9的视频数据。
因此,假设连接到图1中所示的视频输出端120的视频输出设备的宽高比为4∶3,在时间90,000之后在时间54,090,000之前,图形处理模块219将从视频流stream#0中获得的具有宽高比4∶3的视频数据提供给其宽高比为4∶3的视频输出设备。视频输出设备显示所接收到的视频数据。
在时间54,090,000之后,图形处理模块219在垂直方向上执行针对具有宽高比16∶9的视频数据的挤压处理,并且使得视频数据的上下两边为黑色,以将具有宽高比16∶9的视频数据转换为具有宽高比4∶3的视频信号。将经转换的视频信号提供给视频输出设备。视频输出设备显示经转换的视频数据。
当视频输出模块221从播放器控制模块212接收到输出属性时,音频输出模块221开始与输出属性对应地控制音频数据的输出(在步骤S324)。
换句话说,音频输出模块221与从播放器控制模块212接收来的输出属性所表示的音频数据的声道分配(channel_assignment(图13))对应地、并且与通过用户操作遥控器的输入接口115(图1)从播放器控制模块212接收来的音频输出模式对应地,处理从音频解码器控制模块217接收来的音频数据,并且将经处理的音频数据输出到音频输出端121(图1)。
具体地说,当针对输出属性所表示的音频数据的声道分配是其左声道为“main audio(主音频)”数据而右声道为“sub audio(副音频)”数据的双(双语)模式时,音频输出模块221与从播放器控制模块212提供来的音频输出模式对应地处理从音频解码器控制模块217提供来的音频数据,并且将经处理的音频数据提供给音频输出端121。
换句话说,如果已经将“main sound(主声音)”指定为音频输出模式,则音频输出模块221复制从音频解码器控制模块217接收来的音频数据的左声道作为音频数据的右声道,并且将音频数据(“main audio”数据)的左右声道输出到音频输出端121。如果已经将“sub audio”指定为音频输出模式,则音频输出模块211复制从音频解码器控制模块217接收来的音频数据的右声道作为左声道,并且将左右声道(“sub audio”数据)输出到音频输出端121。如果已经将“main and sub audios(主和副音频)”都指定为音频输出模式,则音频输出模块221将从音频解码器控制模块217接收来的音频数据直接输出到音频输出端121。
如果输出属性所表示的音频数据的声道分配是例如立体声模式,则音频输出模块221将从音频解码器控制模块217接收来的音频数据直接输出到音频输出端121,而不管已经指定了什么样的音频输出模式。
用图42下部的表中的、并对由为0xBD的stream_id以及为0x00的private_stream_id所标识的音频流stream#2的三组pts_change_point和DynamicInfo(),在作为再现开始时间的时间90,000在之后、时间27,090,000之前,从音频流stream#2中获得双音频数据。此外,在时间27,090,000之后、在时间32,490,000之前从音频流stream#2中获得立体声音频数据。此外,在时间32,490,000之后从音频流stream#2中获得双音频数据。
因此,当已经将“main audio”指定为音频输出模式时,音频输出模块221在时间90,000之后、时间27,090,000之前,复制从音频流stream#2获得的双音频数据的左声道的音频数据作为音频数据的右声道。将音频数据的左右声道示出到音频输出端121。
将在时间27,090,000之后、在时间32,490,000之前从音频流stream#2获得的立体声音频数据输出到音频输出端121。
将时间32,490,000之后从音频流stream#2获得的双音频数据的左声道复制为音频数据的右声道。将音频数据的左右声道输出到音频输出端121。
如上所述,在输出属性控制处理中,确定正在被再现的基本流的再现时间是否匹配于与剪切片段信息文件Clip()(图10)对应的pts_change_point,该剪切片段信息文件Clip()包含n组表示用剪切片段流文件所复用的每个基本流的再现时间的pts_change_point和表示基本流的输出属性的DynamicInfo()(其中n是0或者更大的任何整数)。当正在被再现的基本流的再现时间匹配于pts_change_point时,识别与pts_change_point配对的DynamicInfo()。与DynamicInfo()中所描述的输出属性对应地控制正在被再现的基本流的输出。因此,可以与基本流的再现时间和输出属性对应地控制基本流的输出。
[字幕显示控制处理]
随后,将参照图43的流程图来描述控制与字幕对应的字幕数据的显示的字幕显示控制处理。
当开始PlayList()(图5)(其PlayList())的再现时,播放器控制模块212在步骤S341针对图形处理模块219初始化字幕数据显示模式。换句话说,播放器控制模块212控制图形处理模块219以将字幕数据显示模式改变为默认显示模式。在步骤S341所执行的显示模式的初始化对应于在图30中步骤S127中所执行的显示模式的初始化。
在步骤S341之后,流程前进到步骤S342。在步骤S342,播放器控制模块212确定用户是否已经通过遥控器输入新的字幕数据显示模式命令到输入接口115。
当在步骤S342的确定结果表示已经输入新的显示模式命令时,流程前进到步骤S343。在步骤S343,播放器控制模块212确定是否正在再现字幕流(与其对应的字幕数据)。
当在步骤S343中的确定结果表示没有正在再现字幕流时,流程返回到步骤S343。
相反地,当在步骤S343的确定结果表示正在再现字幕流时,流程前进到步骤S345。在步骤S345,播放器控制模块212确定新的显示模式命令是否为默认显示模式命令。当在步骤S343的确定结果表示新的显示模式命令是默认显示模式命令时,流程返回到步骤S341。在步骤S341,如上所述,播放器控制模块212控制图形处理模块219来将字幕数据显示模式改变到默认显示模式。
相反地,当在步骤S345的确定结果表示新的显示模式命令不是默认的显示模式命令时,即新的显示模式命令是例如字幕数据放大命令、字幕数据缩小命令或者亮度增加命令的非默认显示模式命令时,流程前进到步骤S346。在步骤S346,播放器控制模块212获得对应于与正在被再现的字幕流复用的剪切片段流文件对应的剪切片段信息文件Clip()(图10)的StaticInfo()(图12)中、正在被再现的字幕流的StaticInfo()。之后,流程前进到步骤S347。
在步骤S347,播放器控制模块212确定在步骤S346所获得的StaticInfo()的configurable_flag。
当步骤S347的确定结果表示configurable_flag为0时,其表示不允许改变字幕数据显示模式,流程前进到步骤S348。在步骤S348,播放器控制模块212控制图形处理模块219以用表示不能改变字幕数据显示模式的信息重叠输出的视频数据。之后,流程前进到步骤S342。在步骤S342,显示错误信息。
相反地,当在步骤S347的确定结果表示configurable_flag为1时,其表示允许改变字幕数据显示模式,流程前进到步骤S349。在步骤S349,播放器控制模块212将已经由用户通过输入接口115从遥控器输入的新的显示模式命令提供给图形处理模块219。之后,流程前进到步骤S350。
在步骤S350,图形处理模块219与已经在步骤S349从播放器控制模块212提供来的显示模式命令对应地,对从字幕解码器控制模块218提供来的字幕数据执行放大处理、缩小处理或者亮度改变处理。之后,流程返回到步骤S342。因此,以与由用户通过遥控器已经输入的显示模式命令对应的显示大小、显示位置或者显示颜色,来显示字幕数据。
相反地,当步骤S342的确定结果表示还没有输入新的显示模式命令时,流程前进到步骤S351。在步骤S351,播放器控制模块212确定是否已经如图31中所示地改变了PlayItem()。当在步骤S342的确定结果表示还没有改变PlayItem()时,流程返回到步骤S342。
相反地,当在步骤S351的确定结果表示已经改变了PlayItem()时,流程返回到步骤S341。在步骤S341,如上所述,播放器控制模块212控制图形处理模块219以将字幕数据显示模式改变到默认显示模式。换句话说,当已经改变了PlayItem()时,将字幕数据显示模式恢复到默认显示模式。
如上所述,只有当字幕流的configurable_flag为1时,其表示允许改变显示模式,才与用户通过遥控器输入的显示模式命令对应地改变字幕流的字幕数据显示模式。
因此,例如在图26A和图26B中所示的剪切片段信息文件“00001.CLP”中,由于作为与剪切片段流文件“00001.PS”复用的四个基本流的第三基本流的字幕流stream#2的configurable_flag为0,其表示当正在显示字幕流stream#2的同时不允许改变显示模式,所以即使用户操作遥控器来改变字幕显示模式,也不改变显示模式。
相反地,由于作为与剪切片段流文件“00001.PS”复用的四个基本流的第四基本流的字幕流stream#3的configurable_flag为1,其表示当正在显示字幕流stream#3的同时允许改变显示模式,所以当用户操作遥控器以改变字幕显示模式时,改变字幕的显示大小。
现在,假设与图25中所示的第一PlayList#1的第一PlayItem#1对应地正在再现剪切片段流文件“00001.PS”。此外,在图26A和图26B中所描述的剪切片段信息文件“00001.CLP”中,假设与剪切片段流文件“00001.PS”复用的四个基本流的第三和第四基本流是字幕流,而且正在再现第三和第四字幕流stream#2和stream#3的第三字幕流stream#2。
当用户操作遥控器以输入字幕显示模式命令时(在步骤S342),将显示模式命令从输入接口115(图1)提供给播放器控制模块212。当播放器控制模块212接收到显示模式命令时,播放器控制模块212搜索剪切片段信息文件以寻找与正在被再现的字幕流对应的StaticInfo()(图10)(在步骤S346)。
换句话说,正在被再现的字幕流是与剪切片段流文件“00001.PS”复用的第三字幕流stream#2。播放器控制模块212搜索对应的剪切片段信息文件“00001.CLP”以寻找第三字幕流stream#2的StaticInfo()。
此外,播放器控制模块212确定在图26A和图26B中所示的第三字幕流stream#2的StaticInfo()中所描述的为0的configurable_flag(在步骤S347)。因此,播放器控制模块212识别为不允许改变第三字幕流stream#2的显示模式。
在这种情况下,播放器控制模块212确定正在被再现的字幕流(与其对应的字幕数据)不对应于放大和缩小模式,并且控制图形处理模块218产生对应的错误消息(在步骤S348),用视频数据重叠错误消息,并且将经重叠的视频数据输出。
当正在再现与剪切片段流文件“00001.PS”复用的四个基本流的第三和第四字幕流stream#2和stream#3的第四字幕流stream#3的同时,当播放器控制模块212接收到用户通过遥控器已经输入的显示模式命令时,播放器控制模块212搜索对应剪切片段信息文件“00001.CLP”以寻找第四字幕流stream#3的StaticInfo()。
播放器控制模块212确定在图26A和图26B中所示的第四字幕流stream#3的StaticInfo()中所描述的作为1的configurable_flag(在步骤S347)。因此,播放器控制模块212识别为已经允许改变第四字幕流stream#3的显示模式。
在这种情况下,播放器控制模块212确定正在被再现的字幕流(与其对应的字幕数据)对应于放大模式或者缩小模式,并且将用户已经通过遥控器输入的显示模式命令提供给图形处理模块219(在步骤S349)。
因此,图形处理模块219与从播放器控制模块212接收来的显示模式命令对应地对从字幕解码器控制模块218接收来的字幕数据进行例如放大或者缩小,用从视频解码器控制模块212提供来的视频数据重叠所产生的字幕数据,并且输出经重叠的数据。
当播放器控制模块212开始再现PlayList()的第一PlayItem()时,播放器控制模块212初始化用于图形处理模块219的字幕数据显示模式(在步骤S341)。换句话说,播放器控制模块212控制图形处理模块219以将字幕数据显示模式改变为默认显示模式。
当改变PlayItem()时,播放器控制模块212初始化用于图形处理模块219的字幕数据显示模式(在步骤S341和S351)。
当改变PlayItem()时,播放器控制模块212检查与新再现的PlayItem()对应的要被再现的新字幕流的configurable_flag。当configurable_flag为0时,播放器控制模块212初始化用于图形处理模块219的字幕数据显示模式。当configurable_flag为1时,播放器控制模块212使得图形处理模块219保持用于PlayItem()的显示模式。
在图43中所示的字幕显示控制处理中,当用户通过遥控器输入新的显示模式命令时,将新的显示模式命令提供给图形处理模块219(在步骤S349)。可以将显示模式命令存储在例如包括存储器113(图1)的非易失存储器中。可以将非易失存储器中所存储的显示模式命令提供给图形处理模块219。
假设将用户已经设置的显示模式命令存储在非易失存储器中作为图1中所示的盘设备的初始设置,当用户用遥控器输入新的显示模式命令时,用新的显示模式命令代替在非易失存储器中所存储的显示模式命令,并且将非易失存储器中所存储的新的显示模式命令提供给图形处理模块219。在这种情况下,由于非易失存储器存储在最后的再现完成时已经被设置的显示模式命令,所以当再现下一个PlayList()时,用显示模式命令来显示字幕数据而不必通过遥控器输入显示命令。
在这种情况下,假设在非易失存储器中所存储的显示模式命令包括例如放大或者缩小字幕流的放大速率或者缩小速率。
如上所述,在字幕显示控制处理中,当正在再现剪切片段信息文件Clip()(图10)中所包含的基本流的同时,针对没有改变的字幕数据,与StaticInfo()中所包含的configurable_flag对应地确定是否允许将字幕数据显示模式从默认显示模式进行改变。当允许改变正在被再现的字幕数据的默认显示模式时,执行例如针对字幕数据的放大处理、缩小处理或者颜色改变处理的显示处理。因此,可以控制字幕数据显示模式。
[捕获控制处理]
随后,将参照图44中所示的流程图来描述控制捕获与视频流对应的视频数据的捕获控制处理。图44还示出描述辅助地使用已经在捕获控制处理中被捕获的视频数据的背景/屏幕保护程序处理的流程图。
当用户通过输入接口115(图1)从遥控器输入视频数据捕获命令到播放器控制模块212时,开始捕获控制处理。
换句话说,在捕获控制处理中,在步骤S371,播放器控制模块212确定是否正在再现视频流。当在步骤S371的确定结果表示没有正在再现视频流时,播放器控制模块212完成捕获控制处理。
相反地,当在步骤S371的确定结果表示正在再现视频流时,流程前进到步骤S372。播放器控制模块212从与正在再现的视频流对应的PlayList()(图5)中获得capture_enable_flag_PlayList,并且从与正在被再现的视频流对应的剪切片段信息文件Clip()中获得capture_enable_flag_Clip()(图10)。
如图5中所述,PlayList()的capture_enable_flag_PlayList表示是否允许辅助使用在与PlayList()对应地再现的视频流对应的视频数据(在PlayList()中所包含的视频数据)。在另一方面,如图10中所述,剪切片段信息文件Clip()的capture_enable_flag_Clip()表示是否允许辅助使用与剪切片段信息文件Clip()对应的剪切片段流文件中所存储的视频流对应的视频数据。
在步骤S372之后,流程前进到步骤S373。播放器控制模块212与在步骤S373中已经获得的capture_enable_flag_PlayList和capture_enable_flag_Clip对应地,确定是否允许捕获当从输入接口115(图1)输入捕获命令时正在被再现的视频数据的画面。
当步骤S373的确定结果表示不允许捕获当从输入接口115输入捕获命令时正在被再现的视频数据的画面时,即在步骤S373所获得的capture_enable_flag_PlayList和capture_enable_flag_Clip中的至少一个为0时,其表示不允许辅助使用视频数据,流程前进到步骤S374。在步骤S374,播放器控制模块212控制图形处理模块219以将表示不允许捕获视频数据的错误信息与视频数据重叠,并且完成捕获控制处理。作为结果,显示错误消息。
相反地,当在步骤S373的确定结果表示允许捕获当从输入接口115输入捕获命令时正在被再现的视频数据的画面时,即在步骤S373已经获得的capture_enable_flag_PlayList和capture_enable_flag_Clip都为1时,其表示允许辅助使用视频数据,流程前进到步骤S375。在步骤S375,播放器控制模块212将用于当从输入接口115输入捕获命令时正在被再现的视频数据的捕获命令提供给图形处理模块219。之后,流程前进到步骤S376。
在步骤S376,图形处理模块219与从播放器控制模块212接收来的捕获命令对应地,从视频解码器控制模块216捕获视频数据的画面,将画面存储在存储器113(图1)中,并且完成捕获控制处理。当capture_enable_flag由多个比特组成并且指定了它们的使用条件时,在该点上,执行对应的操作。换句话说,当限制了捕获画面的大小时,捕获缩小了其大小的画面。当限制所使用的应用时,还记录表示该限制的标志。
如上所述,在捕获控制处理中,将与用户输入捕获命令时正在被再现的视频流对应的剪切片段信息文件Clip()(图10)以及PlayList()(图5)的capture_enable_flag_PlayList和capture_enable_flag_Clip进行“与”操作(AND)。当“与”操作的结果为1时,即capture_enable_flag_PlayList和capture_enable_flag_Clip都为1时,其表示允许辅助使用视频数据,就确定可以辅助使用视频数据。作为结果,捕获视频数据。
当与图25中所示的第一PlayList#0的第一PlayItem#0对应地再现视频流时,即正在再现用剪切片段流文件“00001.PS”复用的视频流时,如果用户输入捕获命令,由于第一PlayList#0的capture_enable_flag_PlayList为1,而与第一PlayItem#0所再现的剪切片段流文件“00001.PS”对应的、图26A和图26B中所示的剪切片段信息文件“00001.CLP”的capture_enable_flag_Clip为1,所以确定可以辅助使用正在被再现的视频数据(与用剪切片段流文件“00001.PS”复用的视频流对应的视频数据),并且捕获视频数据。
在正在与图25中所示的第一PlayList#0的第二PlayItem#1对应地再现视频流的同时,即正在再现与剪切片段流文件“00002.PS”复用的视频流的同时,当用户输入捕获命令时,由于第一PlayList#0的capture_enable_flag_PlayList为1,而与第二PlayItem#1对应地表示的剪切片段流文件“00002.PS”所对应的、图26A和图26B中所示的剪切片段信息文件“00002.CLP”的capture_enable_flag_Clip为0,所以确定不能辅助使用正在被再现的视频数据(与用剪切片段流文件“00002.PS”复用的视频流对应的视频数据),并且不捕获视频数据。
在正在与图25中所示的第二PlayList#1的PlayItem#0对应地再现视频流的同时,即在正在再现用剪切片段流文件“00003.PS”复用的视频流的同时,当用户输入捕获命令时,由于第二PlayList#1的capture_enable_flag_PlayList为0,而与第二PlayList#1的PlayItem#0对应地再现剪切片段流文件“00003.PS”所对应的、图26A和图26B中所示的剪切片段信息文件“00003.CLP”的capture_enable_flag_Clip为1,所以确定不能辅助使用正在被再现的视频数据(与用剪切片段流文件“00003.PS”复用的视频流对应的视频数据)。因此,不捕获视频数据。
在这种情况下,当已经检查到第二PlayList#1的capture_enable_flag_PlayList为0时,可以确定不允许辅助使用视频数据。因此,可以省略对与第二PlayList#1的PlayItem#0对应地再现的剪切片段流文件“00003.PS”所对应的、图26A和图26B中所示的剪切片段信息文件“00003.CLP”的capture_enable_flag_Clip的检查。
可以在背景/屏幕保护处理中辅助使用在捕获控制处理中捕获并且存储在存储器113中的画面。
在例如正在操作播放器控制模块212,但是没有正在再现基本流的同时,即还没有将盘101插入到盘驱动器102(图1)或者已经再现了基本流的同时,执行背景/屏幕保护处理。
在背景/屏幕保护处理中,在步骤S381,播放器控制模块212控制图形处理模块219以显示在捕获控制处理中已经被存储在存储器113中的画面。图形处理模块219在播放器控制模块212的控制下,显示已经在捕获控制处理中被存储在存储器113中的画面。
当图形处理模块219将存储器113中所存储的画面显示为静止画面时,实现所谓的墙纸(背景)。当正在被放大、缩小和移动的同时显示画面时,完成屏幕保护。可以由除播放器控制模块212之外的另一个独立应用程序来执行背景/屏幕保护处理,其显示在捕获控制处理中存储在存储器113中的画面。
当将表示限制的标记添加到存储在存储器113中的画面中时,与标记对应地限制所显示的画面。
如上所述,与例如大于视频存取单元的PlayList()或PlayItem()对应地获得capture_enable_flag_PlayList和capture_enable_flag_Clip,其表示是否允许辅助使用正在被再现的视频数据。与capture_enable_flag_PlayList和capture_enable_flag_Clip对应地确定是否允许辅助使用正在被再现的视频数据。当确定结果表示允许辅助使用正在被再现的视频数据时,捕获正在被再现的视频数据并且执行使用所捕获的视频数据的背景/屏幕保护程序处理。因此,可以控制对视频数据的辅助使用。
在图44中所示的捕获控制处理中,PlayList()(图5)包含capture_enable_flag_PlayList而与PlayItem()所再现的剪切片段流文件对应的剪切片段信息文件(图10)包含capture_enable_flag_Clip。用capture_enable_flag_PlayList和capture_enable_flag_Clip两者,确定是否允许辅助使用视频数据。替代地,当PlayList()(图5)包含capture_enable_flag_PlayList并且与PlayItem()所再现的剪切片段流文件对应的剪切片段信息文件Clip()(图10)包含capture_enable_flag_Clip时,用capture_enable_flag_PlayList或者capture_enable_flag_Clip,就可以确定是否允许辅助使用视频数据。
在图44中所示的捕获控制处理中,在步骤S376,图形处理模块219与从播放器控制模块212接收来的捕获命令对应地,捕获来自视频解码器控制模块216的视频数据的仅仅一个画面。替代地,图形处理模块219可以捕获来自视频解码器控制模块216的多个画面。换句话说,可以捕获视频解码器控制模块216输出的多个画面(作为运动图像的一系列多个画面)。在这种情况下,可以预先指定在某时间所捕获的画面数量。替代地,可以为表示在某时间能够被捕获的画面的数量的信息扩展capture_enable_flag_PlayList和capture_enable_flag_Clip的比特。
在上述情况中,表示是否允许辅助使用视频数据的使用允许信息描述在PlayList()和剪切片段信息文件Clip()中,它们是capture_enable_flag_PlayList和capture_enable_flag_Clip。用该使用允许信息,确定是否允许辅助使用与PlayList()对应地再现的整个视频数据以及与用对应于剪切片段信息文件Clip()的剪切片段流文件复用的视频流对应的整个视频数据。使用允许信息可以描述任何单元的视频数据。用该使用允许信息,可以确定是否允许辅助使用任何单元的视频数据。
图45示出了包含使用允许信息的private_stream2_PES_payload()的语法。图46示出了包含使用允许信息的au_information()的语法。
除了video_stream_id之前紧邻着作为使用允许信息的capture_enable_flag_ps2以外,在图45中所示的private_stream2_PES_payload()与图23中所示的相同。类似地,除了pic_struct_copy之前紧邻着capture_enable_flag_AU作为使用允许信息以外,图46中所示的au_information()与图24中所示的相同。
在图45中所示的private_stream2_PES_payload()中所包含的capture_enable_flag_ps2表示是否允许辅助使用在包含prlvate_stream2_PES_payload()的private_stream_2的PES_packet()之后在下一个private_stream_2的PES_packet()之前的视频流的视频数据。因此,用图45中所示的private_stream2_PES_payload()中所包含的capture_enable_flag_ps2,可以确定是否允许辅助使用在特定可解码开始点之后在下一个可解码开始点之前的视频数据。
此外,在图46中所示的au_information()中所包含的capture_enable_flag_AU表示是否允许辅助使用在与capture_enable_flag_AU对应的每个视频存取单元中的视频数据。因此,用图46中所示的au_information()中所包含的capture_enable_flag_AU,可以确定是否允许辅助使用在每个视频存取单元,即在每个画面中的视频数据。
可以同时使用作为PlayList()(图5)的使用允许信息的capture_enable_flag_PlayList,作为剪切片段信息文件Clip()(图10)的使用允许信息的capture_enable_flag_Clip,作为private_stream2_PES_payload()(图45)的使用允许信息的capture_enable_flag_ps2,以及作为au_information()(图46)的使用允许信息的capture_enable_flag_AU中的至少两个。在这种情况下,用户作为使用允许信息的它们之中的至少两个的“与”运算结果,可以确定是否允许辅助使用视频数据的画面。
如图36中所示的步骤S211所述,视频读取功能部分233搜索在缓存器215A中所存储的程序流,以寻找包含如图23或者图34中所示的、包含图46中所示的au_information()的private_stream2_PES_payload()的private_stream_2的PES_packet(),并且使用包含capture_enable_flag_AU的、图45中所示的au_information(),播放器控制模块212需要向视频读取功能部分233询问capture_enable_flag_ps2和capture_enable_flag_AU,以确定是否允许辅助使用视频数据。
根据上述实施方式,由软件执行处理序列。替代地,可以由专用硬件来执行这些处理。
此外,根据本实施方式,视频解码器116(图1)是硬件解码器。替代地,视频解码器116可以是软件解码器。可以将这种关系应用于音频解码器117(图1)。
此外,根据本实施方式,字幕解码器是软件解码器。替代地,字幕解码器可以是硬件解码器。

Claims (3)

1.一种处理在数据记录介质上所记录的记录数据的数据处理设备,
所述记录数据包含:
已经复用了至少字幕数据的经复用数据,和
关于所述经复用数据的元数据,
所述元数据包含针对在所述经复用数据中所复用的数据的每个单元指定的静态信息,所述静态信息当正在再现所述经复用数据中所复用的数据的每个单元的同时不变化,
所述字幕数据的所述静态信息包含表示是否已经允许所述字幕数据的显示模式从默认显示模式进行改变的允许信息,
所述数据处理设备包括:
捕获装置,用于在正在再现所述字幕数据的同时捕获所述字幕数据的所述静态信息;
确定装置,用于与所述捕获装置所捕获的所述静态信息中所包含的允许信息对应,来确定是否允许用于正在被再现的所述字幕数据的显示模式从默认显示模式变化;和
显示处理装置,用于当所述确定装置的确定结果表示已经允许正在被再现的所述字幕数据的所述显示模式从所述默认显示模式变化时,与显示模式变化命令对应执行用于所述字幕数据的显示处理,
其中,当改变正在再现的单元时,所述确定装置检查与新再现的单元对应的要被再现的新字幕数据的允许信息,如果检查结果表示不允许改变字幕数据的显示模式,则将字幕数据的显示模式初始化为默认显示模式,而如果检查结果表示允许改变字幕数据的显示模式,则保持字幕数据的显示模式。
2.根据权利要求1所述的数据处理设备,
其中所述显示处理装置与字幕数据放大命令、字幕数据缩小命令或者字幕数据显示位置改变命令对应地执行所述字幕数据的所述显示处理。
3.一种处理在数据记录介质上所记录的记录数据的数据处理方法,
所述记录数据包含:
已经复用了至少字幕数据的经复用数据,和
关于所述经复用数据的元数据,
所述元数据包含针对在所述经复用数据中所复用的数据的每个单元指定的静态信息,所述静态信息当正在再现所述经复用数据中所复用的数据的每个单元的同时不变化,
所述字幕数据的所述静态信息包含表示是否已经允许所述字幕数据的显示模式从默认显示模式进行改变的允许信息,
所述数据处理方法包括:
在正在再现所述字幕数据的同时捕获所述字幕数据的所述静态信息;
与所述捕获步骤所捕获的所述静态信息中所包含的允许信息对应,来确定是否允许用于正在被再现的所述字幕数据的显示模式从默认显示模式变化;和
当所述确定步骤的确定结果表示已经允许正在被再现的所述字幕数据的所述显示模式从所述默认显示模式变化时,与显示模式变化命令对应执行用于所述字幕数据的显示处理,
其中,当改变正在再现的单元时,检查与新再现的单元对应的要被再现的新字幕数据的允许信息,如果检查结果表示不允许改变字幕数据的显示模式,则将字幕数据的显示模式初始化为默认显示模式,而如果检查结果表示允许改变字幕数据的显示模式,则保持字幕数据的显示模式。
CNB2005800272310A 2004-06-11 2005-06-08 数据处理设备、数据处理方法、程序、程序记录介质、数据记录介质和数据结构 Expired - Fee Related CN100556116C (zh)

Applications Claiming Priority (2)

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

Publications (2)

Publication Number Publication Date
CN101002465A CN101002465A (zh) 2007-07-18
CN100556116C true CN100556116C (zh) 2009-10-28

Family

ID=35503506

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2005800272310A Expired - Fee Related CN100556116C (zh) 2004-06-11 2005-06-08 数据处理设备、数据处理方法、程序、程序记录介质、数据记录介质和数据结构

Country Status (7)

Country Link
US (1) US20080044164A1 (zh)
EP (1) EP1761057A4 (zh)
JP (1) JP4692950B2 (zh)
CN (1) CN100556116C (zh)
CA (1) CA2569794A1 (zh)
TW (1) TW200606830A (zh)
WO (1) WO2005122569A1 (zh)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8194692B2 (en) * 2004-11-22 2012-06-05 Via Technologies, Inc. Apparatus with and a method for a dynamic interface protocol
US8873932B2 (en) * 2007-12-11 2014-10-28 Cisco Technology, Inc. Inferential processing to ascertain plural levels of picture interdependencies
JP4962009B2 (ja) 2007-01-09 2012-06-27 ソニー株式会社 情報処理装置、情報処理方法、プログラム
US8886022B2 (en) 2008-06-12 2014-11-11 Cisco Technology, Inc. Picture interdependencies signals in context of MMCO to assist stream manipulation
US8971402B2 (en) 2008-06-17 2015-03-03 Cisco Technology, Inc. Processing of impaired and incomplete multi-latticed video streams
US8949883B2 (en) 2009-05-12 2015-02-03 Cisco Technology, Inc. Signalling buffer characteristics for splicing operations of video streams
BRPI1005171A2 (pt) * 2009-06-17 2019-07-02 Panasonic Corp meio de gravação de informações e dispositivo de reprodução destinado à reprodução de imagens em 3d
US9661104B2 (en) * 2011-02-07 2017-05-23 Blackberry Limited Method and apparatus for receiving presentation metadata
US9173004B2 (en) * 2013-04-03 2015-10-27 Sony Corporation Reproducing device, reproducing method, program, and transmitting device
JP2016092769A (ja) * 2014-11-11 2016-05-23 シャープ株式会社 受信機

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5850500A (en) * 1995-06-28 1998-12-15 Kabushiki Kaisha Toshiba Recording medium comprising a plurality of different languages which are selectable independently of each other
US5684542A (en) * 1993-12-21 1997-11-04 Sony Corporation Video subtitle processing system
ATE188327T1 (de) * 1994-12-14 2000-01-15 Koninkl Philips Electronics Nv Übertragungssystem für untertitel
JP3816571B2 (ja) * 1996-03-15 2006-08-30 パイオニア株式会社 情報記録装置及び情報記録方法並びに情報再生装置及び情報再生方法
EP0831647B9 (en) * 1996-04-05 2002-11-27 Matsushita Electric Industrial Co., Ltd. Multimedia optical disk on which audio data of a plurality of channels and sub-video data together with time-varying image data, and device and method of reproducing the data
JPH11225307A (ja) * 1998-02-05 1999-08-17 Sony Corp 映像データ記録媒体および映像データ再生装置
JPH11353790A (ja) * 1998-06-08 1999-12-24 Yamaha Corp ディジタルビデオ信号送信装置及び受信装置
JP4292654B2 (ja) * 1999-03-19 2009-07-08 ソニー株式会社 記録装置および方法、再生装置および方法、並びに記録媒体
JP3069859B1 (ja) * 1999-04-30 2000-07-24 新生化学工業株式会社 発光式表示器の外装ケ―スの製造方法、及び、発光式表示器の外装ケ―ス
CN1206853C (zh) * 1999-07-09 2005-06-15 松下电器产业株式会社 光盘及其记录器、重放器、记录方法和重放方法
JP2001078149A (ja) * 1999-09-08 2001-03-23 Toshiba Corp メディア再生装置とメディア再生方法
JP2001291308A (ja) * 2000-04-10 2001-10-19 Alpine Electronics Inc Dvdビデオプレーヤ
EP1173031A1 (en) 2000-07-14 2002-01-16 Deutsche Thomson-Brandt Gmbh Method and device for recording sub-titles
JP2002044590A (ja) * 2000-07-21 2002-02-08 Alpine Electronics Inc Dvdビデオ再生装置
JP2002091409A (ja) * 2000-09-19 2002-03-27 Toshiba Corp 副映像処理機能付き再生装置
JP2002197795A (ja) * 2000-12-26 2002-07-12 Pioneer Electronic Corp 情報再生装置
US20020194618A1 (en) * 2001-04-02 2002-12-19 Matsushita Electric Industrial Co., Ltd. Video reproduction apparatus, video reproduction method, video reproduction program, and package media for digital video content
JP2002313029A (ja) * 2001-04-11 2002-10-25 Alpine Electronics Inc Dvd再生装置
US20060146660A1 (en) * 2002-10-10 2006-07-06 Wataru Ikeda Optical disc, reproducing device, program, reproducing method, recording method
US8150237B2 (en) * 2002-11-28 2012-04-03 Sony Corporation Reproducing apparatus, reproducing method, reproducing program, and recording medium
JP2004194131A (ja) * 2002-12-13 2004-07-08 Hitachi Ltd 字幕表示方法、再生装置、記録装置、記録媒体及び出力装置
KR100553952B1 (ko) * 2003-03-14 2006-02-24 주식회사 케브스멀티미디어 Mcg 그래픽 데이터 파일 생성 및 재생 방법과 그파일이 담긴 매체 및 그 파일의 재생 장치
US7505050B2 (en) * 2003-04-28 2009-03-17 Panasonic Corporation Recording medium, reproduction apparatus, recording method, reproducing method, program and integrated circuit for recording a video stream and graphics with window information over graphics display
CN101729914B (zh) * 2003-07-03 2013-05-08 松下电器产业株式会社 再现装置、记录方法、集成电路和再现方法
EP1728252B1 (en) * 2004-03-18 2009-12-23 LG Electronics Inc. Recording medium and method and apparatus for reproducing text subtitle stream recorded on the recording medium

Also Published As

Publication number Publication date
WO2005122569A1 (ja) 2005-12-22
EP1761057A1 (en) 2007-03-07
CN101002465A (zh) 2007-07-18
CA2569794A1 (en) 2005-12-22
TWI329304B (zh) 2010-08-21
TW200606830A (en) 2006-02-16
JP2005353213A (ja) 2005-12-22
EP1761057A4 (en) 2009-05-27
JP4692950B2 (ja) 2011-06-01
US20080044164A1 (en) 2008-02-21

Similar Documents

Publication Publication Date Title
CN100556116C (zh) 数据处理设备、数据处理方法、程序、程序记录介质、数据记录介质和数据结构
CN101112086B (zh) 数据记录设备、数据记录方法、数据处理设备和数据处理方法
CN101111896B (zh) 数据记录装置、数据记录方法、数据处理装置、数据处理方法
CN1965365B (zh) 数据处理设备和数据处理方法
CN100518277C (zh) 数据处理装置及数据处理方法
CN101111897B (zh) 数据处理装置和数据处理方法
CN101002467B (zh) 数据处理设备和方法
CN101002268B (zh) 数据处理设备和数据处理方法
CN100563320C (zh) 数据处理设备和数据处理方法
KR20070028410A (ko) 데이터 처리 장치 및 데이터 처리 방법, 프로그램 및프로그램 기록 매체, 데이터 기록 매체 및 데이터 구조
KR101169488B1 (ko) 데이터 처리 장치, 데이터 처리 방법, 프로그램 기록 매체 및 데이터 기록 매체

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
C17 Cessation of patent right
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20091028

Termination date: 20130608