再现装置、再现方法、再现程序、记录介质以及数据结构的制作方法

文档序号:6773842阅读:165来源:国知局
专利名称:再现装置、再现方法、再现程序、记录介质以及数据结构的制作方法
技术领域
本发明涉及一种允许对记录在大容量记录介质上的程序方便地执行再现控制的再现装置,以及其再现方法、再现程序、记录介质以及数据结构。
背景技术
截至目前,在供用户数据输入的菜单屏幕上显示各种设置的菜单屏幕和子菜单屏幕和按钮(按钮图像)并且执行选定功能的交互式功能已经实现,其用于售卖的程序包,该程序包为例如记录在如DVD的记录介质上的电影、戏剧、音乐会等等的视频数据和音频数据包。
例如,在DVD视频中,通过与运动图像专家组2(MPEG2)节目流的视频流多路0复用的子图像数据以及在与MPEG2节目流多路复用的导航包中的高亮显示数据,实现菜单屏幕、按钮等等的功能。换句话说,按钮的位映象图像采用与子图像数据的字幕相同的方式显示。针对由用户选定的按钮(通过其执行一命令),例如,位映象图像的颜色改变为高亮显示数据的另一个颜色,从而实现视觉效果。
高亮显示数据中描述的是例如每一按钮的上、下、左和右的位置关系,即表示当用户用光标键等选择按钮时最新指定的按钮是否处于选定状态的信息,以及处于选定状态和执行状态的按钮的颜色信息。高亮显示数据中描述的还有当按钮处于执行状态时所执行的导航命令(按钮命令)。换句话说,在DVD视频中,一旦对显示在屏幕上的按钮进行操作即可执行的程序(导航命令)与MPEG2节目流分散地多路复用。
以这种方式,高亮显示数据与MPEG2节目流分散地多路复用。当显示菜单屏幕时,该高亮显示数据与视频流和音频流一起被读取。当显示菜单屏幕时,已读取的视频流被用作菜单屏幕背景中的运动图像。音频流被用作背景音乐(BGM)。下述专利文件1描述了与流多路复用按钮图像等等的技术。
日本专利公开待审No.2004-304767根据该方法,无论何时再现菜单屏幕,用于再现菜单屏幕等等的如按钮图像数据、视频流以及音频流的部分数据就被再现并从盘中读取。因此,比现有技术的优势在于,可以降低暂存部分数据的播放器的内部存储器的存储容量。

发明内容
然而,在将高亮显示数据与MPEG2节目流分散地多路复用而实现交互式功能的方法中,存在如下各种限制。
第一,由于如按钮图像和菜单屏幕的交互式功能的形成(creation)不独立于MPEG2基本流的形成(编码)以及多路复用,因此难以独立地形成菜单屏幕以及视频数据。
第二,由于导航命令与MPEG2流分散地多路复用,因此当程序被形成时难以调试(debug)。
第三,由于导航命令与MPEG2流分散地多路复用,因此程序的执行在播放器中受到限制。换句话说,现有技术的方法中,将在特定时间与视频数据和音频数据一起执行的导航命令嵌入多路复用的视频数据和音频数据附近。因此,难以预先读取及执行导航命令来加速菜单屏幕的显示以及对用户操作的响应。
第四,现有技术中,当调用菜单屏幕时,中断运动图像的再现。这是因为,当调用菜单屏幕时,控制跳转至构成菜单屏幕的子图像数据被多路复用的位置。因此,正在再现的运动图像的再现被中断。当菜单屏幕被反复地再现时,在反复点处,发生上述跳转。在这种情况中,运动图像的再现被中断。
第五,难以重复应用实现菜单屏幕等交互式功能的程序。包括子图像流和高亮显示数据的导航包与MPEG2流多路复用的位置受到视频流的较大影响。因此,当程序用于另一视频流时,该子图像流和该导航包需要被重新多路复用。
为了解决这些问题,构成菜单屏幕和程序的数据可以不与视频流和音频流多路复用,而是存储在另一数据文件中。当视频数据被再现时,该数据文件可以与再现的视频流和音频流一起被读取并执行。
然而,该方法具有下述问题。从盘中读取数据的数据率(读取速度)受到限制。当再现视频数据期间从盘中读取多路复用流时,读取速度达到上限。因此,实现交互式功能的数据文件需要在流被读取之前预先读取。换句话说,在视频数据被再现之前,读取实现交互式功能的数据文件,存储于存储器中,然后读取多路复用流。
另一方面,播放器的内部存储器的容量具有上限。该存储器容量的局限性限制了数据文件的大小。结果,内容形成的自由度受到限制。例如,按钮图像的数目受到限制。因此,难以提供丰富的菜单屏幕。此外,多种颜色的按钮图像以及高分辨率的图像数据受到存储器容量的限制。
考虑到上述情况,希望提供一种允许比现有技术以更高自由度实现交互式功能的再现装置、再现方法、再现程序、记录介质以及数据结构。
根据本发明的实施例,提供了一种计算机装置可读的记录介质,该记录介质可由计算机装置读取,其上记录内容数据,包括视频流和音频流的至少一个;以及至少一个资源文件,包括控制内容数据再现的再现控制程序和由再现控制程序使用的数据。资源文件的文件名包括表示当再现内容数据时正常使用的语言的信息,以及表示资源文件的语言属性的信息。
根据本发明的实施例,提供了一种从记录介质中再现内容数据的再现装置,该再现装置包括读取部件、存储部件以及播放器部件。读取部件从记录介质中读取数据,该记录介质上记录内容数据,包括视频流和音频流的至少一个;以及至少一个资源文件,包括控制内容数据再现的再现控制程序和由再现控制程序使用的数据。存储部件存储由读取部件读取的资源文件。播放器部件,根据再现控制程序再现内容数据。当在记录介质上记录多个资源文件时,读取部件选择并读取播放器部件根据资源文件的文件名从多个资源文件中首先使用的资源文件,从而从起点再现内容数据。
根据本发明的实施例,提供了一种从记录介质中再现内容数据的再现方法,该记录介质上记录内容数据,包括视频流和音频流的至少一个;以及至少一个资源文件,包括使播放器部件控制内容数据再现的再现控制程序和由再现控制程序使用的数据。当在记录介质上记录多个资源文件时,选择并读取播放器部件根据资源文件的文件名从多个资源文件中首先使用的资源文件,从而从起点再现内容数据。
根据本发明的实施例,提供了一种使计算机装置执行从记录介质中再现内容数据的再现方法的再现程序,该记录介质上记录内容数据,包括视频流和音频流的至少一个;以及至少一个资源文件,包括使播放器部件控制内容数据再现的再现控制程序和由再现控制程序使用的数据。当在记录介质上记录多个资源文件时,选择并读取播放器部件根据资源文件的文件名从多个资源文件中首先使用的资源文件,从而从起点再现内容数据。
根据本发明的实施例,提供了一种计算机装置可读并且其上记录再现程序的记录介质,该再现程序使计算机装置执行从记录介质中再现内容数据的再现方法,该记录介质上记录内容数据,包括视频流和音频流的至少一个;以及至少一个资源文件,包括使播放器部件控制内容数据再现的再现控制程序和由再现控制程序使用的数据。当在记录介质上记录多个资源文件时,选择并读取播放器部件根据资源文件的文件名从多个资源文件中首先使用的资源文件,从而从起点再现内容数据。
根据本发明的实施例,提供了一种从记录介质中再现内容数据的再现装置,该再现装置包括读取装置、存储装置、播放器装置以及资源文件转换控制装置。读取装置从记录介质中读取数据,该记录介质上记录内容数据,包括视频流和音频流的至少一个;以及多个资源文件,包括控制内容数据再现的再现控制程序和由再现控制程序使用的数据。存储装置存储由读取装置读取的资源文件。播放器装置根据再现控制程序再现内容数据,并基于四种状态控制内容数据的再现,该四种状态定义为依据内容数据是否正在被再现而分类的两种状态以及依据与用户操作相应的控制命令是否被接受而分类的两种状态的组合。资源文件转换控制装置,当内容数据正在被再现时,根据再现控制程序的命令,控制多个资源文件中将一个资源文件转换为另一个资源文件。在四种状态中,在控制命令不被接受的状态以及内容数据再现期间的暂停状态或者在内容数据不是正在被再现的状态,资源文件转换控制装置将一个资源文件转换为另一个资源文件。
根据本发明的实施例,提供了一种从记录介质中再现内容数据的再现方法。从记录介质中读取数据,该记录介质上记录内容数据,包括视频流和音频流的至少一个;以及多个资源文件,包括控制播放器装置再现内容数据的再现控制程序和由再现控制程序使用的数据。控制播放器装置根据再现控制程序基于四种状态再现内容数据,该四种状态定义为依据内容数据是否正在被再现而分类的两种状态以及依据与用户操作相应的控制命令是否被接受而分类的两种状态的组合。当内容数据正在被再现时,根据再现控制程序的命令,控制多个资源文件中将一个资源文件转换为另一个资源文件。在四种状态中,在控制命令不被接受的状态以及内容数据再现期间的暂停状态或者在内容数据不是正在被再现的状态,将一个资源文件转换为另一个资源文件。
根据本发明的实施例,提供了一种使计算机装置执行从记录介质中再现内容数据的再现方法的再现程序。从记录介质中读取数据,该记录介质上记录内容数据,包括视频流和音频流的至少一个;以及多个资源文件,包括控制播放器装置再现内容数据的再现控制程序和由再现控制程序使用的数据。控制播放器装置根据再现控制程序基于四种状态再现内容数据,该四种状态定义为依据内容数据是否正在被再现而分类的两种状态以及依据与用户操作相应的控制命令是否被接受而分类的两种状态的组合。当内容数据正在被再现时,根据再现控制程序的命令,控制多个资源文件中将一个资源文件转换为另一个资源文件。在四种状态中,在控制命令不被接受的状态以及内容数据再现期间的暂停状态或者在内容数据不是正在被再现的状态,将一个资源文件转换为另一个资源文件。
根据本发明的实施例,提供了一种计算机装置可读并且其上记录再现程序的记录介质,该再现程序使计算机装置执行从记录介质中再现内容数据的再现方法。从记录介质中读取数据,该记录介质上记录内容数据,包括视频流和音频流的至少一个;以及多个资源文件,包括控制播放器装置再现内容数据的再现控制程序和由再现控制程序使用的数据。控制播放器装置根据再现控制程序基于四种状态再现内容数据,该四种状态定义为依据内容数据是否正在被再现而分类的两种状态以及依据与用户操作相应的控制命令是否被接受而分类的两种状态的组合。当内容数据正在被再现时,根据再现控制程序的命令,控制多个资源文件中将一个资源文件转换为另一个资源文件。在四种状态中,在控制命令不被接受的状态以及内容数据再现期间的暂停状态或者在内容数据不是正在被再现的状态,将一个资源文件转换为另一个资源文件。
根据本发明的实施例,提供了一种计算机装置可读的记录介质,该记录介质上记录内容数据,包括视频流和音频流的至少一个;以及多个资源文件,包括使播放器装置控制内容数据再现的再现控制程序和由再现控制程序使用的数据。播放器装置通过再现控制命令基于四种状态控制内容数据的再现,该四种状态定义为依据内容数据是否正在被再现而分类的两种状态以及依据与用户操作相应的控制命令是否被接受而分类的两种状态的组合。播放器装置,在四种状态中,在控制命令不被接受的状态以及内容数据再现期间的暂停状态或者在内容数据不是正在被再现的状态,当内容数据正在被再现时,根据再现控制程序的命令,在多个资源文件中将一个资源文件转换为另一个资源文件。
根据本发明的实施例,提供了一种具有数据结构的信号,该数据结构具有内容数据,包括视频流和音频流的至少一个;以及至少一个资源文件,包括控制内容数据再现的再现控制程序和由再现控制程序使用的数据。资源文件的文件名包括表示当再现内容数据时正常使用的语言的信息,以及表示资源文件的语言属性的信息。
根据本发明的实施例,提供了一种计算机装置可读的记录介质,该记录介质上记录内容数据,包括视频流和音频流的至少一个;以及至少一个资源文件,包括控制内容数据再现的再现控制程序和由再现控制程序使用的数据。资源文件的文件名包括表示当再现内容数据时正常使用的语言的信息,以及表示资源文件的语言属性的信息。因此,可以根据文件名从多个资源文件中选择一个允许内容数据以适当的语言显示的资源文件。此外,内容数据以及资源文件可以独立地记录在记录介质上。
根据本发明的实施例,内容数据可以从记录介质中再现,该记录介质上记录内容数据,包括视频流和音频流的至少一个;以及至少一个资源文件,包括使播放器装置控制内容数据再现的再现控制程序和由再现控制程序使用的数据。当在记录介质上记录多个资源文件时,选择并读取播放器装置根据资源文件的文件名从多个资源文件中首先使用的资源文件,从而从起点再现内容数据。因此,即使记录介质上记录多个资源文件,也可以自动执行资源文件的初始选择。此外,内容数据和资源文件可以独立地记录在记录介质上。
根据本发明的实施例,内容数据从记录介质中再现。从记录介质中读取数据,该记录介质上记录内容数据,包括视频流和音频流的至少一个;以及多个资源文件,包括控制播放器装置再现内容数据的再现控制程序和由再现控制程序使用的数据。控制播放器装置根据再现控制程序基于四种状态再现内容数据,该四种状态定义为依据内容数据是否正在被再现而分类的两种状态以及依据与用户操作相应的控制命令是否被接受而分类的两种状态的组合。当内容数据正在被再现时,根据再现控制程序的命令,控制多个资源文件中将一个资源文件转换为另一个资源文件。在四种状态中,在控制命令不被接受的状态以及内容数据再现期间的暂停状态或者在内容数据不是正在被再现的状态,将一个资源文件转换为另一个资源文件。因此,内容再现期间使用的现有资源文件可以安全地转换为另一个资源文件。
根据本发明的实施例,提供了一种计算机装置可读的记录介质,该记录介质上记录内容数据,包括视频流和音频流的至少一个;以及多个资源文件,包括使播放器装置控制内容数据再现的再现控制程序和由再现控制程序使用的数据。播放器装置通过再现控制命令基于四种状态控制内容数据的再现,该四种状态定义为依据内容数据是否正在被再现而分类的两种状态以及依据与用户操作相应的控制命令是否被接受而分类的两种状态的组合。播放器装置,在四种状态中,在控制命令不被接受的状态以及内容数据再现期间的暂停状态或者在内容数据不是正在被再现的状态,当内容数据正在被再现时,根据再现控制程序的命令,在多个资源文件中将一个资源文件转换为另一个资源文件。因此,再现装置可以将内容再现期间使用的资源文件安全地转换为另一资源文件。
根据本发明的实施例,提供了一种数据结构,该数据结构具有内容数据,包括视频流和音频流的至少一个;以及至少一个资源文件,包括控制内容数据再现的再现控制程序和由再现控制程序使用的数据。资源文件的文件名包括表示当再现内容数据时正常使用的语言的信息,以及表示资源文件的语言属性的信息。因此,可以根据文件名从多个资源文件中选择一个允许内容数据以适当的语言显示的资源文件。此外,可以独立提供内容数据以及资源文件。
根据本发明的实施例,由于资源文件的文件名的命名规则根据语言代码、缺省语言、期望的显示装置的纵横长度比、标识序号等等指定,因此可以将多个资源文件置于同一目录中。此外,当盘载入盘再现装置中时,可以自动确定需要首先载入的资源文件。因此,作为本发明的实施例的效果,内容和资源文件可以独立地记录于记录介质上。
根据本发明的实施例,获取将内容再现期间使用的现有资源文件转换为另一资源文件的播放器的状态。当在内容再现期间将现有资源文件转换为另一资源文件时,确定播放器的状态是否为所获取的状态。因此,当内容正在被再现时,现有的资源文件可以转换为另一资源文件。结果,由于可以减轻存储播放器的资源文件的存储器的存储容量的限制,因此内容可以以高于现有技术的自由度形成。
此外,由于资源文件和流文件独立地记录于盘上,因此资源文件可以从被编码及多路复用的基本流中独立形成。因此,作为本发明的实施例的效果,视频数据和菜单可以并行形成。
此外,使菜单等显示的程序记录为盘中的文件并且不和流分散地多路复用。因此,作为本发明的实施例的效果,程序可以容易地进行调试。
此外,使菜单等显示的程序记录为盘中的文件并且不和流分散地多路复用。因此,本发明的实施例的结果是,视频数据的再现和程序的执行可以独立地执行。因此,当背景视频图像正在被再现时,菜单屏幕可以叠加于背景视频图像上。
此外,由于使菜单等显示的程序独立于流,因此程序可以容易地重复使用。仅仅通过指定流序号以及重写指定时间的链接信息,现有的程序就可以用于另一个流。
根据下面对如相关附图中所示的本发明的最佳实施方式的详细描述,本发明的这些以及其它目的、特征以及优势将会变得更为明显。


从下面结合附图的详细描述中,本发明将会变得更为全面地被理解,其中相似的附图标记表征相似的元件,附图中图1是显示根据UMD视频标准的层结构的示意图;图2是显示根据本发明的实施例的播放器模型的示例的示意图;图3是显示电影播放器的内部结构的示例的示意图;图4是描述电影播放器的播放状态和停止状态的示意图;图5是显示根据本发明的实施例的电影播放器的事件模型的示意图;图6是显示播放列表再现期间发生的事件的示例的示意图;图7A和图7B是电影播放器对象所具有的属性的示例的列表;图8是电影播放器对象所具有的方法的示例的列表;图9是用户按键输入的示例的列表;图10是用户按键输入的示例的列表;图11A-11C是根据按键输入的控制命令的示例的列表;图12是根据按键输入的事件的示例的列表;图13是事件处理程序的示例的列表;
图14是事件处理程序的示例的列表;图15是显示当用户输入事件发生时提供的程序执行的处理的示例的流程图;图16是描述脚本程序的示例的示意图;图17是显示脚本程序的示例的示意图;图18是显示根据UMD视频标准的文件的管理结构的示例的示意图;图19是表示文件“PLAYLIST.DAT”的整体结构的语法的示例;图20是块PlayItem()的内部结构的示例;图21是块PlayListMark()的内部结构的示例;图22是描述块Mark()的字段mark_type的列表;图23是描述剪辑(clip)AV流文件中标记时刻的指定的示意图;图24是表示剪辑AV流文件“XXXXX.CLP”的整体结构的语法的示例的列表;图25是描述块StreamInfo()的基本流的相关性的列表;图26是块StaticInfo()的内部结构的示例的列表;图27是块DynamicInfo()的内部结构的示例的列表;图28是块EP_map()的内部结构的示例的列表;图29是显示根据本发明的实施例的盘再现装置的结构的示例的方框图;图30(30A和30B)是详述盘再现装置的操作的功能方框图;图31是显示根据本发明的实施例的电影播放器的状态的定义的示意图;图32是现有状态和由用于电影播放器的四种状态的每一个的方法转换的状态的结合的列表;图33A至图33E是描述当执行方法play()时电影播放器的状态转换示例的示意图;图34是描述播放项的再现方法的示意图;图35是当电影播放器再现的播放列表到达起点或终点时电影播放器的操作示例的列表;图36是描述播放列表之间的再现的示意图;图37是显示播放列表的终点的脚本层中的处理以及电影播放器的操作的示例的流程图;图38是描述UMD视频播放器所具有的三种存储器区域的示意图;
图39是描述播放器状态的备份的示意图;图40是播放器状态的备份的列表;图41是描述恢复信息的恢复和放弃的示意图;图42是描述恢复信息的恢复和放弃的列表;图43是描述恢复信息的恢复和放弃的列表;图44是描述恢复信息的恢复和放弃的列表;图45是显示应用方法stop()的变量resumeInfoClearFlag的UMD视频播放器的操作示例的流程图;图46是播放器状态的生存周期的示例的列表;图47(47A和47B)是恢复信息的生存周期的示例的列表;图48是用户数据的生存周期的示例的列表;图49是显示盘中资源文件位置的示例的示意图;图50是描述资源文件的文件名的命名规则的示意图;图51是显示初始选择资源文件的处理的示例的流程图;图52是显示资源文件中包括的脚本文件的内容的示例的示意图;图53是显示在脚本的首次执行之后选择并执行第一事件处理程序的处理示例的流程图;以及图54是显示从现有资源文件转换为另一资源文件的处理的示例的流程图。
具体实施例方式
下面,将以下述次序描述本发明的实施例。
1.UMD视频标准2.根据UMD视频标准的播放器模式3.电影播放器的事件模型4.电影播放器对象5.脚本程序的示例6.文件管理结构7.显示再现装置8.电影播放器的状态转换模型8-1.电影播放器状态的定义
8-2.使电影播放器转换状态的方法8-3.播放列表再现期间的电影播放器的操作8-4.电影播放器的再现恢复功能8-5.个别数据的生存周期9.资源文件的转换(Changing)1.UMD视频标准为了便于理解,将描述根据本发明的实施例的系统。根据本发明的该实施例,以称为ECMA脚本的脚本语言描述播放器模型。ECMA脚本是基于由欧洲计算机制造商协会(ECMA)定义的JavaScript(Sun Microsystems,Inc.的注册商标)的跨平台脚本语言。ECMA脚本具有与HTML文件的高兼容性并且可以定义初始对象。因此,ECMA脚本适合于本发明的该实施例的播放器模型。
换句话说,现有技术的DVD视频应用DVD视频标准中定义的非通用命令描述实现交互式功能的控制程序。控制程序被分散地嵌入多个文件,一个数据文件的多个位置或一个AV文件中。执行嵌入的控制程序的顺序和条件在DVD标准中被定义。
DVD视频系统中,难以构造通用的内容形成系统。因此,应用根据准备的情景形成记事的模板而形成内容。当形成复杂的内容时,需要应用定制的内容形成系统而代替模板。根据本发明的该实施例,为了解决这样的问题,作为通用可扩展的脚本语言的ECMA脚本用于控制AV内容。
在下面的描述中,本发明的该实施例的标准称为通用媒体盘视频标准(UMD是Sony Computer Entertainment Inc.的注册商标)。UMD视频标准的脚本部分称为UMD视频脚本标准。
下面,将简要描述UMD视频标准。图1显示了UMD视频标准的层结构。UMD视频标准定义了三层—脚本层、播放列表层以及剪辑层。根据该结构,管理流。
该UMD视频标准处理视频数据、音频数据以及字幕数据的MPEG2打包的基本流,其中视频数据、音频数据以及字幕数据已经数字编码为多路复用的MPEG2流。多路复用视频数据、音频数据以及字幕数据的基本流的MPEG2流称为剪辑AV流。剪辑AV流包括在剪辑AV流文件中。当记录剪辑AV流时,剪辑信息文件以一对一的关系相应地形成。与剪辑信息文件相应的一组剪辑信息文件和剪辑AV文件称为一个剪辑。
剪辑(clip)是盘上一次记录的数据单元。在作为剪辑层的上层的播放列表层中管理剪辑的再现次序。播放列表层是指定剪辑的再现路径的层。播放列表层包括至少一个播放列表(PlayList)。播放列表是一组播放项(PlayItems)。播放项包括一对表示剪辑的再现范围的入点和出点。利用多个播放项,剪辑可以以任意次序再现。播放项可以指定同一剪辑。由时间标记(剪辑内部时间)指定剪辑AV流文件的入点和出点。时间标记(time stamp)利用剪辑信息文件的信息转换为剪辑AV流的字节位置。
播放列表仅仅是以指定次序再现表示所有或部分剪辑的播放项的结构。仅仅通过播放列表,难以实现剪辑再现的分支以及与用户的交互。根据本发明的该实施例,一个文件“PLAYLIST.DAT”中总共包括多个播放列表。
脚本层以作为扩展的语言规范ECMA脚本的UMD视频脚本描述。UMD视频脚本是ECMA脚本被扩展以实现UMD视频的初始功能的脚本。
脚本层是播放列表层的上层。脚本层由使播放器再现播放列表并设置播放器的命令序列构成。由脚本层中的命令,播放列表再现可以以这样的方式实现,其中选定根据多种语言的一个流或者根据基于预定条件选定的播放列表再现播放项。应用具有这样的条件分支的播放列表再现的应用的示例是多记事(story)。脚本层实现对用户的交互式功能。
根据本发明的该实施例,脚本层由称为资源文件的文件构成。资源文件包括根据实际的ECMA脚本描述的脚本数据(脚本程序)、用于按钮操作的音效的声音数据、由用于菜单屏幕的背景图像的图像数据构成的屏幕图案以及用于显示如按钮图像的GUI部分的图像数据(位映象数据)。
可能具有多个资源文件。根据本发明的该实施例,根据下面将要描述的预定的命名规则为资源文件指定文件名。例如,文件名的扩展名“RCO”表示文件是资源文件。
2.根据UMD视频标准的播放器模型下面,将要描述根据UMD视频标准再现数据的再现装置(播放器)的模型(该模式称为播放器模型)。播放器从盘中读取资源文件、播放列表文件以及剪辑信息文件。此后,播放器按照资源文件、播放列表文件和剪辑信息文件中定义的再现次序从盘中读取剪辑AV流文件,并且从剪辑AV流文件中再现视频数据、音频数据、字幕数据等等。
根据脚本程序的语言规范,再现播放列表的功能块实施为脚本程序的对象。在UMD视频标准中,再现播放列表的对象称为电影播放器对象。使播放器再现播放列表并设置播放器的命令是电影播放器对象具有的方法。电影播放器对象由脚本层中的方法控制。在这一点上,需要允许电影播放器对象将状态转换和再现位置通知脚本层的功能。该功能与电影播放器对象将事件发出至脚本程序的操作相应。与事件相应的处理描述为事件处理程序(handler)。
当模型形成的时候,该脚本程序可以控制剪辑AV流的再现,其中该模型的信息通过事件从电影播放器对象发送至脚本程序而脚本程序通过对象控制电影播放器对象。
图2示意地显示了本发明的该实施例的播放器模型的示例。电影播放器300是根据UMD视频标准再现视频数据、音频数据和字幕数据的模块。上述电影播放器对象是包括在操作电影对象的脚本程序中的对象。换句话说,电影播放器对象是实现电影播放器功能并且由脚本程序处理的抽象实现模块。
此外,由于电影播放器300和电影播放器对象被认为基本上相同,因此将采用同一附图标记描述它们。
图2中,电影播放器300根据用户输入310采用从低层(图2中所示的本地实现平台301)接收的方法及根据剪辑信息和播放列表的数据库采用从上层(脚本层)接收的方法读取剪辑AV流文件,解码并显示该剪辑AV流。
电影播放器对象300的内部取决于再现UMD视频的UMD视频播放器的实现。脚本层302通过应用方法和属性的应用程序接口(API)将电影播放器对象300提供为黑盒子对象。在该示例中,UMD视频播放器表示实施电影播放器的实际装置。全部UMD视频播放器实施根据UMD视频标准的电影播放器并且与其具有再现兼容性。
如图2中所示,电影播放器对象300具有三条输入/输出路径,一条是从本地实现平台301中接受控制命令311的路径,一条是将事件312通知脚本层302的路径,以及一条是从脚本层302中接受方法313的路径。
控制命令311是控制电影播放器300的操作的命令,从本地实现平台301中接收该命令。本地实现平台301是作为实际装置的UMD视频播放器的装置唯一部分和电影播放器300之间的接口。事件312是从电影播放器300发送至脚本层302的脚本事件。方法313是脚本层302的脚本程序用来将命令发出至电影播放器300的方法。
电影播放器对象300包括根据UMD视频标准的播放列表和剪辑信息的数据库320。电影播放器300根据数据库320无效(屏蔽)用户输入310并将由时间指定的再现位置转换为剪辑AV流的字节位置。
电影播放器对象300中的重放模块321解码剪辑AV流,该剪辑AV流是视频数据、音频数据以及字幕数据被多路复用的MPEG2节目流(PS)。重放模块321具有播放状态和停止状态两种状态,并且用控制命令和方法从一种状态转换为另一状态(参见图3)。应该注意的是,剪辑AV流不限于MPEG2PS。例如,模型可以将MPEG2传送流(TS)视为与MPEG2PS相同。
脚本层302是根据UMD视频标准执行脚本程序,控制电影播放器对象300并显示屏幕的层。脚本层302实现内容形成器一侧计划形成的情景。脚本程序302将方法313发送至电影播放器对象300并且从其接收事件312。脚本层302通过本地实现平台301将对应于与用户输入310的按键事件314和使本地实现平台301显示屏幕的方法315相交换。
本地实现平台301还具有未在UMD视频标准中定义的各种功能。根据本发明的该实施例,具有方法315,通过该方法315脚本层302将命令发出至本地实现平台301,抽象功能的对象在本地实现平台301中定义。该脚本程序认为方法315包括于对象中。这是因为方法包括于对象中。因此,在本地实现平台301中定义控制器对象330。将方法315定义为控制器对象330的方法。
例如,采用从脚本层302的脚本程序提供至本地实现平台301的方法315本地实现平台301显示菜单屏幕上的按钮。当用户选择或确定按钮之一时,本地实现平台301将与用户输入310相应的按键事件314通知脚本层302。脚本层302中的脚本程序执行用于与用户输入310相应的按键事件314的处理。
指定电影播放器300和脚本层302的作用,从而当电影播放器300解码视频数据、音频数据及字幕数据,并且控制对解码数据的显示时,脚本层302放置并显示构成如按钮的图形用户接口(GUI)的部分图像(下文中称为GUI部分),并且进行与GUI部分的选择和确定相应的处理。
本地实现平台301是电影播放器对象300和脚本程序操作的平台。当实际UMD视频播放器是硬件装置时,UMD视频播放器实现本地实现平台301,以在硬件和电影播放器300之间传递处理。
例如,本地实现平台301接受来自于用户的用户输入310,并确定所接受的用户输入310是用于电影播放器对象300的命令还是用于脚本层302中所显示的按钮的命令。当确定的结果表示用户输入310是用于电影播放器300的命令时,本地实现平台301将用户输入310转换为作为用于电影播放器300的内部控制命令的控制命令311并且将该控制命令发出至电影播放器300。
另一方面,当确定结果表示用户输入310是用于脚本层302中所显示的GUI部分的命令时,本地实现平台301将与用户输入310相应的按键事件314通知脚本层302。本地实现平台301可以根据用户输入310通过从脚本层302发出的方法315在屏幕上显示按钮图像。换句话说,本地实现平台301和脚本层302可以直接交换事件和方法,而非通过电影播放器300。
此外,本地实现平台301可以存取电影播放器300的属性并且检查电影播放器300的状态。
下面,将详细描述电影播放器300。图3显示了电影播放器300的内部结构的示例。如上所述,电影播放器300由数据库320和重放模块321构成。数据库320是存储从盘中读取的播放列表的信息和剪辑的信息、即剪辑信息的区域。
重放模块321由解码器引擎322和属性323所构成。属性323是表示重放模块321的状态的值。属性323具有两种类型,值取决于如语言代码的电影播放器300的初始设置如语言代码的属性323A(只读参数)和值的变化取决于重放模块321的状态的属性323B(播放器状态)。
值取决于初始设置的属性323A的值由例如实际装置的本地系统进行设置。因此,属性323A的值不会由播放列表、剪辑信息和脚本程序改变。属性323A的值可以仅仅从脚本程序中读取。相反,表示重放模块321的状态的属性323B的值可以从脚本程序中读取。此外,属性323B的值可以从特定的脚本程序中写。
在该操作模型中,假定播放列表和剪辑信息在再现剪辑AV流之前从盘中预先载入。代替地,电影播放器模型的操作可以以另一种实现完成。
电影播放器对象300再现由脚本层302或本地实现平台301指定的播放列表。例如,电影播放器300参照数据库320,根据指定的播放列表获取剪辑AV流的再现位置作为文件的字节位置。在重放模块321中,解码器引擎322根据再现位置的信息控制剪辑AV流的解码。
如图4中所示,电影播放器300取决于播放列表的再现状态具有播放状态和停止状态两种状态。播放状态表示播放列表被指定并且正在进行再现。播放状态包括正常再现、如为双倍速再现及1/2速再现的变速再现、快进、快退以及暂停。其中每一帧被向前再现及向后再现的所谓步进再现是反复暂停状态和播放状态的状态。停止状态表示播放列表不是正在被再现。在停止状态中,播放列表不被选择并且表示“当前再现的播放列表序号”的播放器状态的值不确定。
电影播放器300的状态取决于电影播放器300的解码器引擎322的播放状态和停止状态之间的状态转换。属性323B的值根据解码器引擎322的状态转换进行更新。
恢复信息324存储紧接在停止状态出现之前存在的状态。电影播放器300解码播放列表之后,当电影播放器300处于播放状态时,如果电影播放器300的状态转换为停止状态,则恢复信息324存储紧接停止状态出现之前存在的状态。此外,对盘的每一标题,恢复信息324可以存储于作为硬件的播放器的非易失性存储器中。盘具有用于每一标题的唯一标识信息(称为标题ID)。恢复信息324和标识信息相关地存储。因此,当具有基于标识信息的标题的盘的状态从停止状态转换为播放状态时,数据可以根据恢复信息324从停止状态出现的位置处再现。
3.电影播放器的事件模型下面,将要描述电影播放器300的事件模型。在电影播放器300再现播放列表的播放状态中,电影播放器300生成各种事件。事件执行描述为脚本并且称为事件处理程序的处理程序。事件处理程序是事件出现时调用的方法。一旦事件出现就开始执行处理程序的程序执行模型称为事件驱动模型。在事件驱动模型中,出现不规则事件。当该事件出现时,执行预定程序。根据本发明的该实施例,脚本程序用事件处理程序组控制电影播放器对象300的操作。
图5示意性地显示了本发明的该实施例的电影播放器300的事件模型。图5中,事件处理程序onEventA()、onEventB()和onEventC()是接口。事件处理程序的内容描述为脚本。由例如内容形成器一侧形成并实现事件处理程序的内容。UMD视频脚本标准中,为电影播放器300通知脚本程序的每一事件提供事件处理程序。图5中所示的示例中,确定事件A出现时执行的处理程序是事件处理程序onEventA()。这应用于事件B和事件C。因此,当事件B出现时,执行与之相应的事件处理程序onEventB()。当事件C出现时,执行与之相应的事件处理程序onEventC()。
系统一侧选择事件出现时调用的事件处理程序,因此内容形成器一侧不需要描述确定脚本程序中出现什么事件的处理。
图6显示了当播放列表正在再现时出现的事件的示例。由于在播放列表PlayList的起点描述章节标记ChapterMark,因此当从起点再现播放列表时,出现与章节标记相应的事件Chapter。无论何时现有章节转换为另一章节,则向脚本层302通知事件Chapter并执行相应的事件处理程序onChapter。当经过用于事件标记EventMark的再现时间时,出现相应的标记事件。在播放列表的终点,电影播放器300暂停对播放列表的再现并将事件PlayListEnd通知脚本层302。脚本层302一侧使电影播放器300通过相应事件处理程序onPlayListEnd()开始再现另一播放列表。以这样的方式,电影播放器300继续按照内容形成器一侧计划的次序再现播放列表序列。
以这样的方式,当操作播放器时,出现各种事件。当将事件的出现通知上级程序时,上级程序可以知道播放器的状态。当上级程序提供与通知的事件相应的被执行的程序(事件处理程序)时,其能够处理各种事件。下面将描述事件和事件处理程序。
当内容形成器一侧未描述事件处理程序时,上级程序执行在播放器中构建及在标准中定义的操作(缺省事件处理程序)或者忽略该事件。当对特定事件不需要执行任何处理时,如果未描述基于事件的事件处理程序,则事件可以被主动忽略。
作为事件模型,可能存在事件侦听器模型、单一方法模型等等。在事件侦听器模型中,对象基于播放器对象的预定事件登记侦听器。当播放器对象中出现的事件是已经登记的事件时,播放器对象将事件传送至已经登记该事件的对象。该对象执行与该事件相应的方法。在单一方法模型中,一旦出现事件就调用一种方法。
本发明的该实施例的事件模型比需要例如事件登记处理和事件取消处理的处理的事件侦听器模型更为简单。单一方法模型需要知道出现何种事件并在方法中描述转换为出现的每一事件准备的处理例程的预处理。由于该方法由内容形成器一侧实现,因此即使该模型简单,内容形成器一侧的载入也增多。此外,一旦事件出现,由于调用一个大处理程序(方法),因此将会应用大存储区域,并且执行速度将会变慢。因此,由于本发明的该实施例的模型提供各个事件的处理程序(事件处理程序),所以可以说该模型在这些方面优于其它模型。
4.电影播放器对象下面,将要描述电影播放器对象300的外部规范。一般地,根据ECMA脚本语言规范定义的对象具有属性和方法。像该对象,如图2和图3中所示,本发明的该实施例的电影播放器对象300具有属性和方法。当外部对象指定目标对象的对象名和属性名时,外部对象可以直接读取并写入目标对象的指定属性。代替地,当设置属性值的方法setXXX()(其中“XXX”表示属性名)和读取属性值的方法getXXX()被定义时,该方法可以读取和写入其它对象的该属性。
图7A和图7B显示电影播放器对象300具有的属性示例的列表。这些属性与图3中所示的属性323相应。图7A显示了属于图3中所示的只读参数323A的属性的示例。属性scriptVersion表示UMD视频脚本的版本。属性audioChannelCapability表示UMD视频播放器可以再现的音频通道的数目。属性languageCode表示对UMD视频播放器设置的菜单显示语言的语言代码。属性audioLanguageCode表示对UMD视频播放器设置的音频语言的语言代码。属性subtitleLanguageCode表示对UMD视频播放器设置的字幕语言的语言代码。
当盘载入电影播放器300时,从盘中读取的脚本文件根据只读参数323A中设置的属性languageCode所表示的语言代码确定。如果载入电影播放器300中的盘不具有基于语言的脚本文件,则从盘中读取缺省的脚本文件。例如,在多个脚本文件起点的文件作为缺省的脚本文件从盘中读取。
图7B显示了属于图3中所示的播放器状态323B的属性的示例。属性playListNumber表示当前正在再现的播放列表的播放列表序号。属性ChapterNumber表示当前正在再现的章节的章节序号。属性videoNumber表示当前正在再现的视频流的视频流的序号。属性audioNumber表示当前正在再现的音频流的音频流序号。属性subtitleNumber表示当前正在再现的字幕流的字幕流序号。属性playListTime表示当播放列表的起点是0时播放列表被再现之后经过的时间。属性audioFlag表示音频再现的开启/关闭以及双单声道LR。属性subtitleFlag表示字幕显示的开启/关闭。
双单声道是立体声音频的左和右(L,R)通道独立地用作单声道音频通道的模式。
当电影播放器300处于播放状态或暂停状态时,属于播放器状态323B的每一属性表示这些信息。当电影播放器300被转换为停止状态时,属于播放器状态323B的每一属性被备份为恢复信息324。在这一点,可以清除播放器状态323B的内容。
图8显示了电影播放器对象300所具有的方法的示例的列表。各方法与图2中所示的方法313相应。方法play()再现视频数据。方法playChapter()指定章节并再现指定章节的视频数据。方法resume()用恢复信息324开始再现视频数据。方法stop()停止再现视频数据。方法pause()暂停再现视频数据。方法playStep()逐帧地再现视频数据。方法changeStream()将视频流、音频流和/或字幕流的现有流转换为另一流。方法getPlayerStatus()获取电影播放器300的播放状态、停止状态、暂停状态等。方法changeResumeInfo()改变恢复信息324的内容。方法reset()停止再现视频数据并清除恢复信息324的内容。
根据UMD视频标准,视频数据可以显示于显示屏幕的一部分。下述四种方法是在显示屏幕的一部分显示视频数据的方法。方法setPos()设置视频数据的显示位置。方法getPos()获取视频数据的显示位置。方法setSize()设置视频数据的显示尺寸。方法getSize()获取视频数据的显示尺寸。
实际中,电影播放器300和本地实现平台301集成。换句话说,电影播放器300UMD和本地实现平台301与作为载入盘及从盘再现视频数据的UMD播放器的硬件以及控制UMD播放器的软件相应。哪一部分是硬件和软件取决于所实现的结构。例如,当UMD播放器是个人计算机等等时,除盘驱动器以外的其它部分由软件构成。当应用单一的UMD播放器时,除盘驱动器以外,例如视频解码器、音频解码器等等可以由硬件构成。因此,方法、命令和事件不总是在如图2中所示的电影播放器300和本地实现平台301之间明确地进行交换。
另一方面,关于用户的按键输入,如图2中所示,本地实现平台301首先接收用户输入310。换句话说,本地实现平台301接收作为用户输入310的用户按键输入。本地实现平台301确定用户输入310是对电影播放器300的命令还是对脚本层302中的脚本程序的事件。根据确定的结果,本地实现平台301发出控制命令311或按键事件314,并将发出的控制命令311或按键事件314通知相应的上层(电影播放器300或脚本层302)。
图9和图10显示了作为用户输入310的按键输入的示例。图9和图10中,具有前缀“VM”的按键是虚拟按键。
图9显示了关于电影播放器300的操作的按键输入的示例。按键VK_PLAY提供与开始再现的播放按键相应的功能。按键VK_STOP提供与停止再现的停止按键相应的功能。按键VK_PAUSE提供与暂停再现的暂停按键相应的功能。按键VK_FAST_FORWARD提供与执行快进再现的快进按键相应的功能。按键VK_FAST_REVERSE提供与执行快退再现的快退按键相应的功能。按键VK_SLOW_FORWARD提供与执行慢进再现的慢(前进)按键相应的功能。按键VK_SLOW_REVERSE提供与执行慢退再现的慢(后退)按键相应的功能。按键VK_STEP_FORWARD提供与执行步进前进再现的步进(前进)按键相应的功能。按键VK_STEP_REVERSE提供与执行步进后退再现的步进(后退)按键相应的功能。
按键VK_NEXT提供与输入表示“下一章节”的值的下一章节指定按键相应的功能。按键VK_PREVIOUS提供与输入表示“上一章节”的值的上一章节指定按键相应的功能。通过按键VK_NEXT和按键VK_PREVIOUS,用户可以分别指定例如至下一章节和上一章节的跳转。
按键VK_ANGLE提供与对多角度视频数据指定角度改变的角度改变按键相应的功能。按键VK_SUBTITLE提供与指定英语字幕、日语字幕以及字幕开启/关闭的字幕改变按键相应的功能。按键VK_AUDIO提供与指定如环绕模式或双语模式的音频模式的音频改变按键相应的功能。按键VK_VIDEO_ASPECT提供与改变视频数据的纵横长度比的纵横长度改变按键相应的功能。
图10显示关于菜单操作的按键输入的示例。按键VK_UP提供与输入表示“向上”的值的向上方向指定按键相应的功能。按键VK_DOWN提供与输入表示“向下”的值的向下方向指定按键相应的功能。按键VK_RIGHT提供与输入表示“向右”的值的向右方向指定按键相应的功能。按键VK_LEFT提供与输入表示“向左”的值的向左方向指定按键相应的功能。按键VK_UP_RIGHT提供与输入表示“上右”的值的上右方向指定按键相应的功能。按键VK_UP_LEFT提供与输入表示“上左”的值的上左方向指定按键相应的功能。按键VK_DOWN_RIGHT提供与输入表示“下右”的值的下右方向指定按键相应的功能。按键VK_DOWN_LEFT提供与输入表示“下左”的值的下左方向指定按键相应的功能。通过这些方向按键,用户可以使得例如光标在显示屏上移动。
按键VK_MENU提供与显示菜单的菜单按键相应的功能。按键VK_ENTER提供与完成命令输入或数据输入的输入按键相应的功能。按键VK_RETURN提供通过一个步骤返回处理的功能。
按键VK_COLORED_KEY_1提供与色彩的功能按键1相应的功能。按键VK_COLORED_KEY_2提供与色彩的功能按键2相应的功能。按键VK_COLORED_KEY_3提供与色彩的功能按键3相应的功能。按键VK_COLORED_KEY_4提供与色彩的功能按键4相应的功能。按键VK_COLORED_KEY_5提供与色彩的功能按键5相应的功能。按键VK_COLORED_KEY_6提供与色彩的功能按键6相应的功能。
由于图9中所示的按键输入的功能与图10中所示的按键输入的功能在作用上不同,因此本地实现平台301需要选择被通知按键输入的指定。如上所述,图9中所示的按键输入指定视频数据、音频数据和字幕数据的再现操作。当本地实现平台301接收图9中所示的按键输入之一作为用户输入310时,本地实现平台301将接收的按键输入转换为图11中所示的命令并将转换的命令通知电影播放器300。
另一方面,由于图10中所示的按键输入是至GUI的用户输入310,因此需要将这些输入通知构成屏幕和放置按钮的脚本层302。当本地实现平台301接收作为用户输入310的图10中所示的按键输入时,本地实现平台301将按键输入转换为图2中所示的事件314,并将事件314通知脚本层302。图12显示了基于按键输入的事件314的示例。
图9和图10也显示了关于流改变的按键输入,例如按键VK_ANGLE、按键VK_SUBTITLE和按键VK_AUDIO。首先,通过这些按键,将用户输入310通知用户输入310。电影播放器300将表示电影播放器300已经发出流转换请求的事件通知脚本程序。脚本程序使电影播放器300通过流转换方法将现有的流,例如音频流或字幕流转换为另一个流。因此,这些按键是本地实现平台301需要通知电影播放器300的按键输入。
下面,将详细描述图11(图11A-11C)中所示的命令。命令uo_timeSearch(playListTime)从正在再现的播放列表的指定的时间开始再现。自变量playListTime表示当播放列表的起点为0时播放列表的时间。由于该命令未指定播放列表序号,因此由自变量playListTime表示的时间是在正在再现的播放列表的范围内的指定时间。命令uo_play()以正常再现速度开始再现。开始位置根据恢复信息324确定。当不存在恢复信息324时,使该用户操作无效。该命令与无播放列表序号的方法play()的执行相应。通过该命令,用户不能指定播放列表序号。
命令uo_playChapter(ChapterNumber)从正在再现的播放列表中的自变量ChapterNumber指定的章节开始再现。无章节序号,该命令从正在再现的章节的起点开始再现。该命令与无章节序号的方法playChapter()相应。命令uo_playPrevChapter()从紧邻的前一章节开始再现。命令uo_playNextChapter()从紧邻的下一章节开始再现。
命令uo_jumpToEnd()跳转至播放列表的终点。该命令与停止再现并生成事件playListEnd的用户操作相应。通过该命令,脚本层302执行事件处理程序onPlayListEnd。命令uo_forwardScan(speed)以自变量speed指定的再现速度开始向前再现。命令uo_backwardScan(speed)以自变量speed指定的再现速度开始向后再现。这些命令uo_forwardScan(speed)和uo_backwardScan(speed)的自变量speed取决于UMD视频播放器的实现。
命令uo_playSetp(向前)开始步进前进再现。命令uo_playSetp(向后)开始步进后退再现。命令uo_pauseOn()暂停再现。命令uo_pauseOff取消再现的暂停状态。
命令uo_setAudioEnabled(布尔值)开启/关闭音频流。当执行该命令时,标志audioFlag的值相应地被改变。命令uo_setSubtitleEnabled(布尔值)开启/关闭字幕流。当执行该命令时,标志subtitleFlag的值相应地被改变。命令uo_angleChange()改变显示角度。当将与用户操作相应的该命令通知电影播放器300时,电影播放器300将事件angleChange通知脚本层302。命令uo_audiochange(audioStreamNumber)改变要再现的音频流。命令uo_changeAudioChannel(值)改变音频通道的数目或者在双单声道再现中将一个通道改变为另一通道。当执行该命令时,标志audioFlag的值相应地被改变。命令uo_subtitleChange(subtitleStreamNumber)将现有的字幕流转换为另一字幕流。
下面,将详细描述图12中所示的事件与电影播放器300的方法之间的关系。事件menu跳转至菜单。本地实现平台301将该事件通知脚本层302而非电影播放器300。当脚本层302接收事件menu时,脚本层302执行事件处理程序onMenu。事件exit是当完成UMD视频应用时本地实现平台301发出的事件。当脚本层302接收事件exit时,脚本层302执行事件处理程序onExit。
事件resourceChanged是当现有资源文件转换为另一资源文件时本地实现平台301生成的事件。当脚本层302接收事件resourceChanged时,脚本层302执行事件处理程序OnResourceChanged。
事件up、事件down、事件left、事件right、事件focusIn、事件focusOut、事件push以及事件cancel是当屏幕上作为GUI部分的按钮图像被聚焦(focus)时出现的事件。本地实现平台301将这些事件通知脚本层302而非电影播放器300。当按钮图像被聚焦时,例如在屏幕上显示的光标表示按钮图像的坐标,从而按钮图像可以被选定。当向上按钮图像、向下按钮图像、向左按钮图像和向右按钮图像分别被聚焦时,出现事件up、事件down、事件left、事件right。当任何按钮图像被聚焦时,出现事件focusIn。当任何聚焦的按钮图像解除聚焦时,出现事件focusOut。当对任何聚焦的按钮图像执行按下操作时,出现事件push。当对任何按钮图像执行与按下操作相对的取消操作时,出现事件cancel。
事件autoPlay和事件continuePlay是使脚本层302开始执行脚本的事件。事件autoPlay是当载入盘时使脚本自动开始执行的事件。当载入盘时,事件continuePlay根据例如恢复信息324使脚本在停止脚本执行的位置恢复执行。
存在如图12中所示的事件出现时所执行的程序。与事件相应的这些程序称为事件处理程序。事件和事件处理程序可以应用例如名称而相关。通过将前缀“on”加入相应的事件名而形成事件处理程序名。图13和图14显示了事件处理程序的示例。当内容形成器描述事件处理程序的内容时,UMD视频播放器可以执行内容形成器计划的各种操作。
图13显示了电影播放器300所具有的事件和与其相应的事件处理程序的示例。图13中所示的事件与图2中所示的事件312相应。电影播放器300将图13中所示的事件通知脚本层302。事件处理程序是各种接口。由应用例如脚本语言的内容形成器实现事件处理程序的内容。由于事件处理程序具有这样的结构,当事件出现时,可以完成内容形成器计划的操作。
当检测到事件mark时,执行事件mark和事件处理程序onMark()。事件mark被嵌入例如播放列表中。当电影播放器300再现播放列表时,电影播放器300从播放列表中检测事件mark。当电影播放器300检测事件mark时,电影播放器300将事件mark通知脚本层302。脚本层302执行与事件mark相应的事件处理程序onMark()。同样,当完成对播放列表的再现时,执行事件playListEnd和事件处理程序onPlayListEnd()。当检测到chapter-mark时,执行事件chapter和事件处理程序onChapter()。当正在再现播放列表时,章节标记(chapter mark)嵌入例如播放列表中,并由电影播放器300检测。
当由用户操作指定角度改变时,执行事件angleChange和事件处理程序onAngleChange()。例如,当通过作为用户输入310的用户操作将按键输入VK_ANGLE输入本地实现平台301时,本地实现平台301将用户输入310转换为命令uo_angleChange(),并将其提供至电影播放器300。电影播放器300生成与命令uo_angleChange相应的事件angleChange,并且将事件angleChange提供至脚本层302。脚本层302执行与事件angleChange相应的事件处理程序onAngleChange()。同样,当通过用户操作指定音频改变时,执行事件audioChange和事件处理程序onAudioChange()。当通过用户操作指定字幕改变时,执行事件subtitleChange和事件处理程序onSubtitleChange()。
图14显示了控制器对象330所具有的事件处理程序的示例。图14中所示的事件处理程序是属于本地实现平台301的控制器对象330的事件处理程序。当本地实现平台301将事件处理程序通知脚本层302时,脚本层302执行它们。
事件menu和事件处理程序onMenu跳转至菜单。事件menu是当菜单按钮通过用户操作被按下时本地实现平台301通知脚本层302的事件。脚本层302接收该事件,执行与其相应的事件处理程序onMenu(),用事件处理程序onMenu()安排并显示构成菜单屏幕的GUI部分。事件exit和事件处理程序onExit()是事件以及相应的事件处理程序。当本地实现平台301完成UMD视频应用时,本地实现平台301生成事件exit。
当通过例如用户操作指定完成UMD视频播放器的操作时,本地实现平台301将事件exit通知脚本层302。当脚本层302接收事件exit时,脚本通过事件处理程序onExit()执行退出处理。
事件resourceChanged和事件处理程序onResourceChanged()是事件和相应的事件处理程序。本地实现平台301已经将现有资源文件改变为另一资源文件之后,本地实现平台301生成事件resourceChanged。
事件autoPlay、事件处理程序onAutoPlay()、事件continuePlay以及事件处理程序onContinuePlay()使脚本开始执行。
除了用于控制器对象330的事件处理程序,还具有用于按钮的事件处理程序。然而,用于按钮的事件处理程序不是与本发明的该实施例密切相关,则省略对它们的描述。
下面,将参照图15中所示的流程图,简要描述当用户输入的事件出现时执行所提供程序的处理的示例。图15显示了在UMD视频播放器正在从盘正常再现数据时,当用户按下按键而使得UMD视频播放器再现下一章节(例如,“下一章节”按键)时,UMD视频播放器根据按键输入跳转至下一章节、从下一章节开始再现数据并在屏幕上显示所提供的消息的示例。
在UMD视频播放器正在从盘正常再现数据时,当用户在UMD视频播放器的遥控器上按下按键“下一章节”时(在步骤S10中),按键VK_NEXT作为用户输入310提供至本地实现平台301。本地实现平台301生成与用户输入310相应的用户命令uo_playNextChapter()(在步骤S11中)。本地实现平台301将用户命令uo_playNextChapter()通知电影播放器300。
当电影播放器300接收命令uo_playNextChapter()时,电影播放器300根据播放列表信息基于当前再现位置在数据库320搜索下一章节标记的位置(在步骤S12)。在步骤S13中,确定是否存在下一章节标记。当确定的结果表示不存在下一章节标记时,电影播放器300不跳转至下一章节,而是继续当前的再现操作。
相反地,当在步骤S13中确定的结果表示存在下一章节标记时,流程前进至步骤S14。在步骤S14中,电影播放器300停止当前再现,并从数据库320的剪辑信息文件的特征点信息中获取剪辑AV流文件中下一章节标记的字节位置。在步骤S15中,电影播放器300存取获取的文件的字节位置并从该位置开始再现流。
步骤S16之后,执行显示消息的处理,其中该消息通知用户在屏幕上将现有章节转换为下一章节。当现有章节转换为下一章节时,并从下一章节的起点开始再现时,出现事件chapter(在步骤S16中)。例如,电影播放器300在章节起点检测章节标记并生成事件chapter。电影播放器300将事件chapter通知脚本层302。此外,电影播放器300将要跳转的章节的章节序号通知脚本层302。脚本层302开始执行与通知的事件相应的事件处理程序,例如事件处理程序onChapter()(在步骤S17中)。
在该示例中,假定在事件处理程序中描述将表示章节已经转换的消息显示在屏幕上的操作。当出现事件时,脚本层302中的脚本执行事件处理程序,获取电影播放器300通知脚本层302的章节序号(在步骤S18中),并使本地实现平台301在屏幕上显示表示例如获取的章节序号的章节起点的预定消息。因此,本地实现平台301在屏幕上显示消息(在步骤S19中),并完成事件处理程序的处理(在步骤S20中)。
在前述处理中,当用户操作使电影播放器300从下一章节开始再现数据的按键“下一章节”时,电影播放器300跳转至下一章节。当电影播放器300开始再现下一章节时,电影播放器300在屏幕上显示表示下一章节起点的消息。
因此,用户输入的事件使电影播放器300的状态转换并出现新事件。通过新事件,电影播放器300可以执行各种处理。
播放器模型可以再现视频数据、音频数据以及字幕数据。通过内容形成器需要以使它们在再现期间多次出现的事件以及与事件相应执行的相应事件处理程序,可以实现他或她需要的操作。此外,当播放器正在再现播放列表时执行播放器的用户操作时,本地实现平台301向电影播放器300提供与作为用户操作的用户输入310相应的控制命令,从而播放器的现有状态转换为用户所需的另一状态。此外,本地实现平台301将与作为对播放器的用户操作的用户输入310相应的事件通知脚本层302中的脚本。因此,与用户操作相应可以实现内容形成器所提供的播放器的操作。
由于播放器模型具有这样的结构,因此用户可以再现视频数据、音频数据以及字幕数据并且交互地操作它们。
5.脚本程序的示例下面,将要描述脚本层302中的脚本程序的示例。假定内容形成器形成内容的再现流,如图16中所示。图16中所示的内容具有作为显示部件的播放列表400和401、顶菜单402以及消息403。播放列表400用于显示当盘载入时自动显示的警告消息。播放列表401是作为内容示例的电影的主部分。顶菜单402具有如按钮的GUI部分,通过例如该按钮用户使脚本再现播放列表401。在播放列表401再现期间的任何时间显示消息403。
此外,在图16中所示的结构中,提供几个事件处理程序。当盘载入UMD视频播放器时,事件处理程序onAutoPlay()自动从盘中再现播放列表400,并在屏幕上显示警告消息。事件处理程序onPlayListEnd()是当完成对播放列表的再现时调用的事件处理程序。在图16中所示的示例中,当完成对播放列表400或播放列表401的再现时,调用事件处理程序onPlayListEnd()。换句话说,事件处理程序onPlayListEnd()确定播放列表的再现是否完成。当完成播放列表400的再现时,事件处理程序onPlayListEnd()开始播放列表401的再现。当完成播放列表401的再现时,事件处理程序onPlayListEnd()调用顶菜单402。
当用户操作菜单按键时调用事件处理程序onMenu()。事件处理程序onMenu()调用顶菜单402并将其显示在屏幕上。当在播放列表的执行期间经过由标记Mark指定的时间时,执行事件处理程序onMark()。在图16中所示的示例中,标记Mark在播放列表401中设置。在播放列表401的执行期间,当经过由标记Mark指定的时间时,消息403显示在屏幕上。
在图16中所示的示例中,当盘载入UMD视频播放器时,调用事件处理程序onAutoPlay。事件处理程序onAutoPlay再现播放列表400并且在屏幕上显示警告消息。在已经经过播放列表400的再现时间之后,播放列表400到达终点,调用事件处理程序onPlayListEnd。事件处理程序onPlayListEnd确定播放列表400已经完全再现,并再现下一播放列表401。当正在再现播放列表401时用户操作菜单按键时,调用事件处理程序onMenu。事件处理程序onMenu将顶菜单402显示在屏幕上。事件处理程序onMenu从与顶菜单402上的预定操作相应的起点开始再现播放列表401。当播放列表401的再现时间已经经过由标记Mark指定的时间时,调用事件处理程序onMark。事件处理程序onMark在屏幕上显示消息403。当播放列表401已经完全再现时,调用事件处理程序onPlayListEnd。事件处理程序onPlayListEnd确定播放列表401完全再现并在屏幕上显示顶菜单402。
图17显示了实现图16中所示的操作的脚本程序的示例。如上所述,脚本程序具有事件处理程序并且一旦出现相应事件就执行它们。脚本程序存储于扩展名为“RCO”的资源文件“SCRIPT.DAT”中。
方法“movieplayer.play()”使电影播放器300再现播放列表。作为自变量在parentheses()中描述要再现的播放列表的播放列表序号。当播放列表已经完全再现时,出现事件playListEnd。当出现事件playListEnd时,脚本调用事件处理程序movieplayer.onPlayListEnd()。在这一点上,将事件playListEnd和对象event_info提供给脚本。在对象event_info中存储已经完全再现的播放列表的播放列表序号等等。脚本可以改变与对象event_info的内容相应的下一操作。
6.文件管理结构下面,将参照图18描述基于UMD视频标准的文件管理结构。文件在目录结构中分层次管理并且记录于盘上。可以应用由国际标准化组织(ISO)9660、通用盘格式(UDF)等等标准化的盘文件系统。
将文件“TITLEID.DAT”和目录“VIDEO”置于根(root)目录下。目录“RESOURCE”、目录“CLIP”、目录“STREAM”和文件“PLAYLIST.DAT”置于目录“VIDEO”下。
文件“TITLEID.DAT”是存储每一标题中(内容类型)不同的标题标识符的文件。一个盘具有一个文件“TITLEID.DAT”。
资源文件“JA000000.RCO”置于目录“RESOURCE”下。如上所述,除构成脚本层302的脚本程序之外,构成菜单屏幕的数据,例如部分数据如图像数据和声音数据,包括于资源文件中。至少一个资源文件置于目录“RESOURCE”下。代替地,可以将多个文件“SCRIPT.DAT”置于目录“RESOURCE”下。形成用于不同语言的多个菜单的多个资源文件。然而,在这种情况中,一次可以应用一个资源文件。
至少一个剪辑信息文件置于目录“CLIP”下。剪辑信息文件具有一文件名,其中该文件名包括具有五个到几个字符,如“00001”(在该示例中,数字)的字符串部分、作为定界符的点号以及如“CLP”的扩展名部分。扩展名部分“CLP”表示文件是剪辑信息文件。
至少一个剪辑AV流文件置于目录“STREAM”下。剪辑AV流文件具有一文件名,其中该文件名由具有五个到几个字符,如“00001”(在该示例中,数字)的字符串部分、作为定界符的点号以及如“PS”的扩展名部分。扩展名部分“PS”表示文件是剪辑AV流文件。根据本发明的该实施例,剪辑AV流文件是运动图象专家组2(MPEG2)节目流,其中视频流、音频流和字幕流被多路复用,并且包括于扩展名部分“PS”标识的文件中。
如上所述,剪辑AV流文件是其中视频数据和音频数据被压缩编码以及时分复用的文件。因此,当剪辑AV流文件被读取并解码时,获取视频数据和音频数据。剪辑信息文件是描述剪辑AV流文件的特性的文件。因此,剪辑信息文件和剪辑AV流文件相关。根据本发明的该实施例,由于剪辑信息文件和剪辑AV流文件的文件名的具有几个到五个字符的字符串部分相同,因此可以容易地获取二者之间的关系。
如上所述,资源文件包括描述脚本程序的脚本文件。资源文件包括根据本发明的该实施例使盘的再现状态被交互式改变的程序。在其它文件从盘读取之前读取资源文件。
文件“PLAYLIST.DAT”是描述指定剪辑AV流的再现次序的播放列表的播放列表文件。下面,将参照图24到图26描述文件“PLAYLIST.DAT”的内部结构。图24显示了表示文件“PLAYLIST.DAT”的整体结构的语法的示例。在该示例中,语法以C语言描述,其用作用于计算机装置的程序的描述语言。这应用于表示其它语法的表。
字段name_length具有8比特的数据长度,表示分配给播放列表文件的名称的长度。字段name_string具有255字节的数据长度,表示分配给播放列表文件的名称。在字段name_string中,从用于由字段name_length表示的字节长度的起点开始的区域用作有效名称。当字段“name_length”的值为“10”时,从字段name_string起点开始的10字节解译为有效名称。
字段number_of_PlayLists具有16比特的数据长度,表示后面的块PlayList()的数目。字段number_of_PlayLists后接一个for循环。该for循环描述与字段number_of_PlayLists相应的块PlayList()。块PlayList()是播放列表本身。
下面,将要描述块PlayList()的内部结构的示例。块PlayList()以字段PlayList_data_length开始。字段PlayList_data_length具有32比特的数据长度,表示包括字段PlayList_data_length的块PlayList()的数据长度。字段PlayList_data_length后接具有15比特的数据长度的字段reserved_for_word_alignment以及具有1比特的数据长度的标志capture_enable_flag_PlayList。字段reserved_for_word_alignment以及具有1比特的数据长度的标志capture_enable_flag_PlayList在块PlayList()中以16比特对齐数据。
标志capture_enable_flag_PlayList是表示属于块PlayList()的运动图像是否允许被辅助应用的标志,其中块PlayList()包括标志capture_enable_flag_PlayList。当标志capture_enable_flag_PlayList的值为例如“1”时,它表示属于PlayList()的运动图像被允许在播放器中辅助应用。
在前述示例中,标志capture_enable_flag_PlayList具有1比特的数据长度。代替地,标志capture_enable_flag_layList可以具有描述多个辅助应用允许级的多个比特的数据长度。例如,标志capture_enable_flag_PlayList可以具有2比特的数据长度。在这种情况中,当标志的值为“0”时,运动图像可能不被完全禁止辅助应用。当标志的值为“1”时,在运动图像以如64像素×64行的预定分辨率或更低压缩编码的情况下,运动图像可以允许被辅助应用。当标志的值为“2”时,运动图像可以完全被允许辅助应用,而无任何限制。代替地,当标志的比特0的值为“0”时,运动图像可以在内容再现应用中被允许辅助应用。当标志的比特1的值为“1”时,运动图像可以在电影播放器中的另一应用(例如,墙纸图像或屏幕保护程序)中被允许辅助应用。在这种情况中,标志的比特0和1的值可以组合应用。
字段PlayList_name_length具有8比特的数据长度,表示分配给块PlayList()的名称的长度。字段PlayList_name_string具有255比特的数据长度,表示分配给块PlayList()的名称。在字段PlayList_name_string中,从由字段PlayList_name_string表示的字节长度的起点开始的区域用作为有效名称。
字段number_of_PlayItems具有16比特的数据长度,表示后面的块PlayItem()的数目。字段number_of_PlayItems后接一个for循环。该for循环描述与字段number_of_PlayItems相应的块PlayItem()。块PlayItem()是播放项自身。
向块PlayList的块PlayItem()分配标识信息(ID)。例如,向在块PlayList()起点所描述的块PlayItem()分配例如0。以例如1、2等等出现的次序向块PlayItem()分配序列号。序列号用作为块PlayItem()的标识信息。对块PlayItem()所重复的for循环的自变量i可以被用作块PlayItem()的标识信息。块PlayItem()后接块PlayListMark()。
下面,将参照图20描述块PlayItem()的内部结构的示例。块PlayItem()以字段length开始。字段length具有16比特的数据长度,表示块PlayItem()的长度。字段length后接字段Clip_Information_file_name_length。字段Clip_Information_file_name_length具有16比特的数据长度,表示与块PlayItem()相应的剪辑信息文件名称的长度。字段Clip_Information_file_name具有字节上可变的数据长度,表示与块PlayItem()相应的剪辑信息文件的名称。在字段Clip_Information_file_name中,从由字段Clip_Information_file_name所表示的字节长度起点开始的区域用作为有效名称。当字段Clip_Information_file_name指定剪辑信息文件时,与剪辑信息文件相应的剪辑AV流文件可以根据文件名称的上述关系进行标识。
字段IN_time和字段OUT_time每个具有33比特的数据长度。字段IN_time和字段OUT_time是指定剪辑AV流文件的再现起点位置和再现终点位置的时间信息,其中剪辑AV流文件与块PlayItem()中字段Clip_Information_file_name指定的剪辑信息文件相应。通过字段IN_time和字段OUT_time的信息,可以指定再现起点位置而非剪辑AV流文件的起点。同样地,通过字段IN_time和字段OUT_time的信息,可以指定再现终点位置而非剪辑AV流文件的终点。字段reserved_for_word_alignment是使数据结构的数据长度变为16比特的整数倍的调整字段。字段reserved_for_word_alignment具有15比特的数据长度。
下面,将参照图21描述块PlayListMark()的内部结构的示例。块PlayListMark()以字段length开始。字段length具有32比特的数据长度,表示块PlayListMark()的长度。字段length后接字段number_of_PlayList_marks。字段number_of_PlayList_marks具有16比特的数据长度,表示块Mark()的数目。字段number_of_PlayList_marks后接一个for循环。for循环描述与字段number_of_PlayList_marks相应的块Mark()。
下面,将要描述块Mark()的内部结构的示例。块Mark()以字段mark_type开始。字段mark_type具有8比特的数据长度,表示包括字段mark_type的块Mark()的类型。根据本发明的该实施例,如图22中所示,定义了两种类型的标记、章节标记以及事件标记。章节是分割播放列表(块PlayList())的搜索单位。章节标记表示具有时间信息的章节位置。事件标记是使事件出现的标记。
字段mark_name_length具有8比特的数据长度,表示分配给块Mark()的名称的长度。块Mark()最后一行的字段mark_name_string表示分配给块Mark()的名称。在字段mark_name_string中,从由字段mark_name_length表示的字节长度的起点开始的区域用作为有效名称。
字段ref_to_PlayItem_id、字段mark_time_stamp、字段entry_ES_stream_id以及字段entry_ES_private_stream_id的四个元素通过剪辑AV流文件与块PlayList()中定义的块Mark()相关。换句话说,字段ref_to_PlayItem_id具有16比特的数据长度,表示块PlayItem()的标识信息。因此,字段ref_to_PlayItem_id标识剪辑信息文件和剪辑AV流文件。
字段mark_time_stamp具有33比特的数据长度,指定在剪辑AV流文件中的标记的时间。下面,将参照图23简要描述字段mark_time_stamp。在图23中,播放列表由分配为序号0、1和2的三个播放项(播放项(#0))、(播放项(#1))以及(播放项(#2))构成。假定播放列表的时间t0包括于播放项1(播放项(#1))中。此外,假定播放项0、1和2分别通过剪辑信息文件对应于剪辑AV流文件的节目流A、B和C。
在这种情况中,当标记指定于播放列表的时间t0时,字段ref_to_PlayItem_id的值为“1”,其表示包括时间t0的播放项。此外,在相应的剪辑AV流文件中与时间t0相应的时间在字段mark_time_stamp中描述。
返回至图21的描述,字段mark_time_stamp后接字段entry_ES_stream_id和字段entry_ES_private_stream_id。字段entry_ES_stream_id和字段entry_ES_private_stream_id每个具有8比特的数据长度。当块Mark()与预定基本流相关时,字段entry_ES_stream_id和字段entry_ES_private_stream_id标识基本流。字段entry_ES_stream_id和字段entry_ES_private_stream_id分别表示多路复用基本流的包(packet())的流ID(stream_id)以及专用包头(private_packet_header())的专用流ID(private_stream_id)。
包(packet())的流ID(stream_id)和专用包头(private_packet_header())的专用流ID(private_stream_id)基于例如MPEG2系统的节目流的规定。
当剪辑AV流#0的章节结构不同于剪辑AV流#1时,应用字段entry_ES_stream_id和字段entry_ES_private_stream_id。当块Mark()与预定基本流不相关时,这两个字段的值为“0”。
下面,将参照图24到图28描述剪辑信息文件的内部结构。如上所述,剪辑信息文件“XXXXX.CLP”描述置于目录“STREAM”下的相应剪辑AV流文件“XXXXX.PS”的特性等等。
图24显示了表示剪辑AV流文件“XXXXX.CLP”的整体结构的语法的示例。剪辑AV流文件“XXXXX.CLP”以字段presentation_start_time和字段presentation_end_time开始。字段presentation_start_time和字段presentation_end_time每个具有33比特的数据长度,表示相应的剪辑AV流文件的起点和终点的时间。作为时间信息,可以应用MPEG2系统的呈现时间标记(PTS)。PTS具有90kHz的精确度。
字段presentation_start_time和字段presentation_end_time后接具有7比特的数据长度的字段reserved_for_word_alignment和具有1比特的数据长度的标志capture_enable_flag_Clip。字段reserve_for_word_alignment和具有1比特的数据长度的标志capture_enable_flag_Clip在文件“XXXXX.CLP”中以16比特对齐数据。标志capture_enable_flag_Clip是表示与文件“XXXXX.CLP”相应的剪辑AV流文件中包括的运动图像是否允许被辅助应用的标志。例如,当标志capture_enable_flag_Clip的值为例如“1”时,它表示与文件“XXXXX.CLP”相应的剪辑AV流文件的运动图像允许在视频播放器中被辅助应用。
字段number_of_stream具有8比特的数据长度,表示之后的块StreamInfo()的数目。字段number_of_streams后接一个for循环。for循环描述与字段number_of_streams相应的块StreamInfo()。for循环后接块EP_map()。
下面,将描述块StreamInfo()的内部结构的示例。块StreamInfo()以字段length开始。字段length具有16比特的数据长度,表示块StreamInfo()的长度。字段length后接每个具有8比特的数据长度的字段stream_id和字段private_stream。如图25中所示,块StreamInfo()与基本流相关。在图25中所示的示例中,当块StreamInfo()的字段stream_id的值处于从“0×E0”到“0×EF”的范围之中时,块StreamInfo()与视频流相关。当块StreamInfo()的字段stream id的值为“0×BD”时,块StreamInfo()与自适应变换声编码(ATRAC)音频流、线性脉冲编码调制(LPCM)音频流或字幕流相关。当块StreamInfo()的字段private_stream_id的值处于从“0×00”到“0×0F”、从“0×10”到“0×1F”、和从“0×80”到“0×9F”的范围之中时,块StreamInfo()分别与ATRAC音频流、LPCM音频流以及字幕流相关。
图25中,“0×”表示十六进制符号。该符号应用于下述描述。
块StreamInfo()主要描述两种类型的信息,第一种类型在流中不变化,第二种类型在流中变化。不在流中变化的信息在块StaticInfo()中描述,而在流中变化的信息在块DynamicInfo()中由时间信息指定的改变点描述。
块StaticInfo()以具有8比特的数据长度的字段reserved_for_word_alignment开始。字段reserved_for_word_alignment在块StreamInfo()中以字节对齐数据。字段reserved_for_word_alignment后接字段number_of_DynamicInfo。字段number_of_DynamicInfo具有8比特的数据长度,表示之后的块DynamicInfo()的数目。字段number_of_DynamicInfo后接一个for循环。for循环描述对应于字段number_of_DynamicInfo重复的字段pts_change_point和块DynamicInfo()。
字段pts_change_point具有33比特的数据长度,表示块DynamicInfo()的信息变为PTS有效的时间。每一流开始的时间由字段pts_change_point表示,并且与文件“XXXXX.CLP”中定义的字段presentation_start_time相同。
下面,将参照图26描述块StaticInfo()的内部结构的示例。块StaticInfo()的内容取决于相应的基本流的类型。相应的基本流的类型可以由图25中所示的字段stream_id和字段private_stream_id的值标识。图26显示块StaticInfo(),其内容应用if语句根据作为视频流、音频流或字幕流的基本流的类型变化。下面,将根据基本流的类型描述块StaticInfo()。图26显示了应用if语句表示基本流的类型是视频流、音频流还是字幕流的块StaticInfo()。下面,将根据基本流的类型描述块StaticInfo()。
当基本流是视频流时,块StaticInfo()由具有4比特的数据长度的字段picture_size、具有4比特的数据长度的字段frame_rate和具有1比特的数据长度的标志cc_flag构成。字段picture_size和字段frame_rate表示视频流的图像尺寸和帧频率。标志cc_flag表示视频流是否包括关闭的字幕(caption)。当标志cc_flag的值为例如“1”时,视频流包括关闭的字幕。字段reserved_for_word_alignment将数据对齐为16比特。
当基本流是音频流时,块StaticInfo()包括具有16比特的数据长度的字段audio_language_code、具有8比特的数据长度的字段channel_configuration、具有1比特的数据长度的标志lfe_existance和具有4比特的数据长度的字段sampling_frequency。字段audio_language_code表示包括于音频流中的语言代码。字段channel_configuration表示音频数据的声道属性,如单声道、立体声、多声道等等。字段lfe_existance表示音频流是否包括低频加强声道。当字段lfe_existance的值为例如“1”时,音频流包括低频加强声道。字段sampling_frequency表示音频数据的采样频率。字段reserved_for_word_alignment将数据对齐为16比特。
当基本流是字幕流时,块StaticInfo()由具有16比特的数据长度的字段subtitle_language_code和具有1比特的数据长度的标志configurable_flag构成。字段subtitle_language_code表示包括于字幕流中的语言代码。标志configurable_flag表示显示的字幕流的字符的大小和位置是否允许改变。当标志configurable_flag的值为例如“1”时,它表示显示的字幕流的字符的大小和位置允许改变。字段reserved_for_word_alignment将数据对齐为16比特。
下面,将参照图27描述块DynamicInfo()的内部结构的示例。块DynamicInfo()以具有8比特的数据长度的字段reserved_for_word_alignment开始。前接字段reserved_for_word_alignment的元素取决于基本流的类型。基本流的类型可以由参照图25描述的字段stream_id和字段stream_private_id的值标识。图27显示了块DynamicInfo(),其内容应用if语句根据作为视频流、音频流或字幕流的基本流的类型变化。下面,将根据基本流的类型描述块DynamicInfo()。
当基本流是视频流时,块DynamicInfo()由具有4比特的数据长度的字段display_aspect_ratio构成。字段display_aspect_ratio表示视频数据的显示输出纵横长度比是16∶9还是4∶3。字段reserved_for_word_alignment将数据对齐为16比特。
当基本流是音频流时,块DynamicInfo()由具有4比特的数据长度的字段channel_assignment构成。当音频流由两声道构成时,字段channel_assignment表示输出是立体声还是双单声道。双单声道用于再现例如两种语言的音频数据。字段reserved_for_word_alignment将数据对齐为16比特。
当基本流是字幕流时,块DynamicInfo()由字段reserved_for_word_alignment构成。字段reserved_for_word_alignment将数据对齐为16比特。换句话说,关于字幕流,块DynamicInfo()未定义动态变化的属性。
下面,将参照图28描述块EP_map()的内部结构的示例。块EP_map()由时间信息和位置信息表示每一基本流的比特流的有效解码起点位置(称为入口点或随机存取点(RAP))。位置信息可以为用于其中记录基本流的记录介质的最小存取单元。每一基本流可以从块EP_map()表示的位置中解码。
由于可以计算固定速率流的有效解码起点位置,因此不需要如块EP_map()的信息。另一方面,对于可变速率流和其数据大小在每一存取单元中变化的流,如基于MPEG视频压缩编码系统的流,块EP_map()是对随机存取数据必需的重要信息。
块EP_map()以具有8比特的数据长度的字段reserved_for_word_alignment开始。字段reserved_for_word_alignment将数据对齐为16比特。字段reserved_for_word_alignment后接字段number_of_stream_id_entries。字段number_of_stream_id_entries具有8比特的数据长度,表示块EP_map()中描述的基本流的数目。第一for循环描述与字段number_of_stream_id_entries相应重复的字段stream_id、字段private_stream_id和字段number_of_EP_entries。在第一for循环中,第二for循环描述与字段number_of_EP_entries相应重复的字段PTS_EP_start以及字段RPN_EP_start。
第一for循环描述字段stream_id和字段private_stream_id,其每个具有8比特的数据长度,并标识图25中所示的基本流的类型。字段stream_id和字段private_stream_id后接字段number_of_EP_entries。字段number_of_EP_entries具有32比特的数据长度,表示基本流中描述的入口点的数目。第二for循环描述与字段number_of_EP_entries相应重复的字段PTS_EP_start和字段RPN_EP_start。
字段PTS_EP_start和字段RPN_EP_start每个具有33比特的数据长度,表示自身的入口点。字段PTS_EP_start通过PTS表示剪辑AV流文件中入口点的时间。另一方面,字段RPN_EP_start以2048字节单位表示剪辑AV流文件中入口点的位置。
根据本发明的该实施例,作为盘存取单位的一个扇区是2048字节。因此,字段RPN_EP_start表示扇区中的剪辑AV流文件的入口点的位置。
视频流的有效再现起点位置紧接在包private_stream_2后面。包private_stream_2是包括可以用于解码视频流的信息的包。因此,视频流的入口点的位置是包括包private_stream_2的包(pack)pack()的位置。
块EP_map将剪辑AV流的时间和剪辑AV流文件的位置相关。因此,通过剪辑AV流的存取点的时间信息(时间标记),剪辑AV流文件可以容易地搜索读取数据的数据地址。因此,盘可以平滑地进行随机存取。
根据本发明的该实施例,在块EP_map()中,每一基本流的时间信息和位置信息的集合(第二for循环中的字段PTS_EP_start和字段RPN_EP_start的集合)以升序(降序)预先登记。换句话说,时间信息和位置信息已经以预定方向重新安排。因此,可以对数据执行二进制搜索(binary search)。
根据本发明的该实施例,如上所述,视频数据的基本流是基于MPEG2视频标准的基本流。然而,本发明的该实施例不限于该示例。例如,视频数据的基本流可以是基于MPEG4视频标准或MPEG4-AVC标准的基本流。同样地,根据本发明的该实施例,如上所述,音频数据的基本流是基于ATRAC音频系统的基本流。然而,本发明的该实施例不限于这样的示例。代替地,音频数据的基本流可以是基于例如MPEG1/2/4音频系统的基本流。
7.盘再现装置下面,将描述根据本发明的实施例的盘再现装置。图29显示了根据本发明的实施例的盘再现装置100的结构的示例。中央处理单元(CPU)112、存储器113、驱动接口114、输入接口115、视频解码器116、音频解码器117、视频输出接口118和音频输出接口119连接于总线111。盘再现装置100的每一个部件可以通过总线111与其它部件交换视频流、音频流、各种命令、数据等等。
此外,盘驱动器102连接于驱动接口114。盘驱动器102通过驱动接口114与总线111交换数据和命令。
CPU 112具有只读存储器(ROM)和随机存储器(RAM)(未示出)。CPU 112根据ROM中预存储的程序和数据通过总线111与盘再现装置100的每一个部件交换数据和命令,并且控制整个盘再现装置100。RAM用作为CPU 112的工作存储器。
尽管在图29中被省略,然而盘再现装置100可以具有可以重写数据并在关闭盘再现装置100的电源之后对其进行保持的如闪存的非易失性存储器。非易失性存储器连接于例如总线111,从而CPU 112将数据写入非易失性存储器并从其读取数据。
将从用户执行输入操作的输入装置输入的输入信号提供给输入接口115。输入装置是例如用户应用例如红外信号远程操作盘再现装置100的遥控器和置于盘再现装置100上的按键。输入接口115将从输入装置提供的输入信号转换为用于CPU 112的控制信号并输出该控制信号。
播放列表、脚本程序、剪辑信息文件、剪辑AV流文件等等以图18到图28中所示的格式记录于盘101中。当将盘101载入盘驱动器102时,它自动或基于用户的输入操作从盘101中再现它们。将从盘101中读取的脚本文件、播放列表文件和剪辑信息文件提供给CPU 112,并且存储于例如CPU 112的RAM中。CPU 112基于存储于RAM中的数据和脚本程序,从盘101中读取剪辑AV流文件。
将从盘101中读取的剪辑AV流文件暂存于存储器113中。视频解码器116基于从CPU 112接收的命令,解码存储于存储器113中的剪辑AV流文件的视频流和字幕流。CPU 112执行图像处理,如对解码的视频数据和字幕数据的放大处理或缩小处理、对视频流和字幕流的合成处理或附加处理,并且获取视频数据的一个流。可以由视频解码器116和视频输出接口118执行图像处理。将视频数据缓存于存储器113中并提供给视频输出接口118。视频输出接口118将所提供的视频数据转换为模拟视频信号,并将该模拟视频信号提供给视频输出端120。
同样地,音频解码器117基于从CPU 112接收的命令,解码存储于存储器113中的剪辑AV流文件的音频流。将解码的音频数据缓存于存储器113中,并提供至音频输出接口119。音频输出接口119将所提供的音频数据转换为例如模拟音频信号并将该模拟音频信号提供给音频输出端121。
在示例中,图29中所示的每一部件由独立的硬件构成。然而,本发明的该实施例不限于该示例。换句话说,视频解码器116和/或音频解码器117可以由CPU 112上操作的软件构成。
盘再现装置100具有CPU 112和存储器,并基于程序进行操作。因此,可以认为盘再现装置100是一种计算机装置。
图30(30A和30B)是详细描述图29中所示的盘再现装置100的操作的功能性方块图。盘再现装置100主要由操作系统201和视频内容再现部件210构成。视频内容再现部件210基本上是在操作系统201上操作的软件程序。代替地,视频内容再现部件210可以由集成操作的软件和硬件构成。在下面的描述中,假定视频内容再现部件210由软件构成。图30中,省略盘驱动器102。
当盘再现装置100的电源开启时,操作系统201开始在CPU 112上启动,并执行必要的处理,如每一部件的初始设置,并从ROM中读取应用程序(在该示例中,视频内容再现部件210)。操作系统201提供基本服务,如当操作视频内容再现部件210时,从盘101读取文件,以及对视频内容再现部件210的文件系统进行解释。例如,操作系统201与从视频内容再现部件210提供的文件读取请求相应,通过驱动接口114控制盘驱动器102,并从盘101读取数据。在操作系统201的控制下,将从盘101读取的数据提供至视频内容再现部件210。
操作系统201具有虚拟并行地时分控制多个软件模块的多任务处理功能。换句话说,构成图30中所示的视频内容再现部件210的每一模块可以通过操作系统201的多任务处理功能并行操作。
下面,将更具体地描述视频内容再现部件210的操作。视频内容再现部件210具有其它几个内部模块,实现下述功能。
(1)视频内容再现部件210确定载入的盘101是否是基于UMD视频标准的盘(此后该盘称为UMD视频盘)。
(2)当确定的结果表示载入的盘101是UMD视频盘时,视频内容再现部件210从盘101中读取资源文件,并将脚本文件提供给脚本控制模块211。
(3)当确定的结果表示载入的盘101是UMD视频盘时,视频内容再现部件210也读取构成数据库(即,播放列表、剪辑信息文件等等)的文件,并且将文件提供给播放器控制模块212。
下面,将要描述视频内容再现部件210的模块的操作。
脚本控制模块211将接收的资源文件存储于例如CPU 112的RAM(未示出)的预定区域中。CPU 112(脚本控制模块211)从RAM中读取资源文件,解译资源文件并执行它。代替地,资源文件可以存储于存储器113的预定区域中,当必须时,资源文件可以写入CPU 112的RAM(未示出)中。
如播放器模型中所描述的,形成并输出菜单屏幕的图像,对应于用户的输入移动光标,并改变菜单屏幕的GUI,由基于脚本程序控制的图形处理模块219实现。在这一点上,通过存储器113中存储的资源文件中包括的图像数据和声音数据形成菜单屏幕等。通过执行脚本程序,脚本控制模块211可以控制播放器控制模块212。
播放器控制模块212参照包含于文件之中的数据库信息,文件如从盘101中读取的播放列表文件“PLAYLIST.DAT”和剪辑信息文件“XXXXX.CLP”,并执行下述控制来从盘101中再现视频内容。
(1)播放器控制模块212分析数据库信息,如播放列表和剪辑信息。
(2)播放器控制模块212控制内容数据提供模块213、解码控制模块214和缓冲控制模块215。
(3)播放器控制模块212执行播放器状态转换控制,如播放状态、停止状态和暂停状态,以及再现控制处理,如基于从脚本控制模块211或输入接口115接收的命令的流转换。
(4)播放器控制模块212获取正在从解码控制模块214再现的视频流的时间信息,显示时间并生成标记事件。
内容数据提供模块213根据从播放器控制模块212接收的命令,从盘101中读取如剪辑AV流文件的内容数据,并将内容数据提供给缓冲控制模块215。缓冲控制模块215将数据存储于存储器113作为缓冲区215A。内容数据提供模块213控制缓冲控制模块215,将存储于存储器113中的内容数据提供给视频解码器控制模块216、音频解码器控制模块217和字幕解码器控制模块218(根据来自其的请求)。此外,内容数据提供模块213从盘101中读取内容数据,从而在缓冲控制模块215的控制下存储的内容数据变为预定量。
解码控制模块214根据从播放器控制模块212接收的命令,控制视频解码器控制模块216、音频解码器控制模块217和字幕解码器控制模块218的操作。解码控制模块214具有内部时钟功能,控制视频解码器控制模块216、音频解码器控制模块217和字幕解码器控制模块218的操作,从而视频数据和音频数据同步输出。
缓冲控制模块215专门地应用存储器113的一部分作为缓冲区215A。缓冲控制模块215存储数据起点指针和数据写入指针。缓冲控制模块215还具有作为内部模块的视频读取功能、音频读取功能和字幕读取功能。视频读取功能具有视频读取指针。视频读取功能具有存储作为存取单元信息的信息au_information()的寄存器。音频读取功能具有音频读取指针。字幕读取功能具有字幕读取指针以及字幕读取功能标志。字幕读取功能标志根据其值控制字幕读取功能的启用/禁止。当例如将“1”写入字幕读取功能标志时,字幕读取功能启用。当例如将“0”写入字幕读取功能标志时,字幕读取功能禁止。
作为缓冲控制模块215的内部模块的视频读取功能、音频读取功能和字幕读取功能具有解复用器功能,其将多路复用的剪辑AV流解复用,并获取视频流、音频流和字幕流,其中剪辑AV流中将视频流、音频流和字幕流多路复用。根据本发明的该实施例,剪辑AV流由基于MPEG2系统节目流格式时分复用的多个基本流形成。因此,视频读取功能、音频读取功能和字幕读取功能具有用于MPEG2系统节目流的解复用器功能。
因此,视频读取功能读取置于视频流的预定位置的字段stream_id(参见图25)的值并且保持该值。同样地,音频读取功能和字幕读取功能读取字段stream_id和字段private_stream_id的值(参见图25)的值并保持该值。字段stream_id和字段private_stream_id的值用于分析所提供的比特流。
视频解码器控制模块216使缓冲控制模块215的视频读取功能从存储器113中读取视频流的一个视频存取单元,并且将视频存取单元提供给视频解码器116。视频解码器控制模块216控制视频解码器116解码存取单元中的提供给视频解码器116的视频流,并生成视频数据。将视频数据提供给图形处理模块219。
同样地,音频解码器控制模块217使缓冲控制模块215的音频读取功能从存储器113中读取音频流的一个音频存取单元并且将音频流单元提供给音频解码器117。根据本发明的该实施例,构成音频流的存取单元(音频帧)具有预定的固定长度。音频解码器控制模块217控制音频解码器117解码存取单元中的提供给音频解码器117的音频流,并生成音频数据。将音频数据提供给音频输出模块242。
字幕解码器控制模块218使缓冲控制模块215的字幕读取功能从存储器113中读取字幕流的一个字幕存取单元,并且将字幕存取单元提供给字幕解码器控制模块218。根据本发明的该实施例,构成字幕流的字幕存取单元包括在起点处的长度信息。字幕解码器控制模块218具有可以解码所提供的字幕流并生成字幕图像数据的字幕解码功能。将字幕图像数据提供给图形处理模块219。
如上所述,将在视频解码器控制模块216控制下由视频解码器116解码的视频数据以及由字幕解码器控制模块218解码的字幕图像数据提供给图形处理模块219。图形处理模块219以预定的方式将字幕图像数据加到所提供的视频数据中并生成输出的视频信号。图形处理模块219根据从脚本控制模块211和播放器控制模块212接收的命令,生成菜单图像和消息图像,并通过输出的视频信号将它们重叠。
例如,图形处理模块219根据从脚本控制模块211接收的命令,对提供的字幕图像数据执行放大处理和缩小处理,并且以预定方式将处理的图像数据加到视频数据。
此外,图形处理模块219根据预定的输出视频装置的纵横长度比和从盘101再现的内容中指定的输出纵横长度比,转换输出信号的纵横长度比。当输出视频装置的纵横长度比为16∶9并且输出纵横长度比为16∶9时,图形处理模块219直接输出视频数据。当输出视频装置的纵横长度比为16∶9并且输出纵横长度比为4∶3时,图形处理模块219执行使图像的高度和输出视频装置的屏幕的高度相匹配的压缩(squeezing)(缩小)处理,将黑色部分插入图像的左侧和右侧,并且输出结果图像。当输出视频装置的纵横长度比为4∶3并且输出纵横长度比为4∶3时,图形处理模块219直接输出视频数据。当输出视频装置的纵横长度比为4∶3并且输出纵横长度比为16∶9时,图形处理模块219执行使图像的宽度和输出视频装置的屏幕的宽度相匹配的压缩(缩小)处理,将黑色部分插入图像的上部和下部区域,并且输出结果图像。
图形处理模块219还执行基于来自于播放器控制模块212的请求捕获正在处理的视频信号并且向其提供请求的视频信号的处理。
视频输出模块241专门应用存储器113的一部分作为先进先出(FIFO)缓存(buffer)。视频输出模块241暂时地在缓存中存储图形处理模块219所处理的视频数据,并且以预定的定时从其读取视频数据。从缓存中读取的视频数据从视频输出接口118中输出。
音频输出模块242专门地应用存储器113的一部分作为FIFO缓存。音频输出模块242存储从音频输出接口119输出至缓存的音频数据,并且以预定的定时从其读取音频数据。从缓存中读取的音频数据从音频输出接口119中输出。
当内容的音频模式为双单声道模式(例如双语)时,音频输出模块242根据预定的音频输出模式输出音频数据。当音频输出模式是“主音频”时,音频输出模块242将例如存储器113中的左声道的音频数据进行复制,并且输出左声道的音频数据和存储器113的音频数据。因此,音频输出模块242输出仅为左声道的音频数据。当音频输出模式是“子音频”时,音频输出模块242将例如存储器113中的右声道的音频数据进行复制,并且输出右声道的音频数据和存储器113的音频数据。因此,音频输出模块242输出仅为右声道的音频数据。当音频输出模式是“主和子音频”或内容为立体声时,音频输出模块242直接输出音频数据。
用户可以在例如视频内容再现部件210生成的菜单屏幕上交互地设置音频输出模式。
非易失性存储器控制模块250根据从播放器控制模块212接收的命令,将数据写入在视频内容再现部件210的操作完成之后数据不被擦除的区域(该区域称为非易失性区域),并且从其读取数据。非易失性存储器控制模块250具有存储多组带有标题标识符ID(Title_ID)的关键码(key)的数据Saved_Player_Status和数据Saved_Player_Data的功能。非易失性存储器控制模块250存储播放器控制模块212具有的作为数据Saved_Player_Status数据的Backup_Player_Status。数据Backup_Player_Status相应于例如紧接在完成播放器控制模块212的操作之前存在的播放器状态323B的数据。数据Saved_Player_Status与恢复信息324相应。此外,非易失性存储器控制模块250存储播放器控制模块212具有的作为数据Saved_User_Data的数据User_Data。数据User_Data是用户对播放器控制模块212设置的预定数据。
非易失性存储器控制模块250在盘再现装置100的闪存的预定区域中相关地存储一组具有盘101的标题ID的数据Saved_Player_Status和数据Saved_User_Data。非易失性存储器控制模块250存储数据于其中的存储介质不限于闪存,而是硬盘等等。
8.电影播放器的状态转换模式8-1.电影播放器的状态的定义下面,将根据本发明的实施例详细描述电影播放器300的状态转换模式。根据本发明的该实施例,仅仅定义电影播放器300的内部状态。换句话说,根据本发明的该实施例,电影播放器300的状态基于其操作和功能定义。
更具体地,关于电影播放器300的操作,从播放列表的再现的角度,定义电影播放器300处于播放状态或停止状态的两种状态。此外,关于电影播放器300的功能,定义电影播放器300是否从本地实现平台301接受控制命令的两种状态。
图31概念性地显示了根据本发明的该实施例的电影播放器300的状态的定义。第一,将要相对电影播放器300的操作描述其状态。参照图3,从播放列表的再现的角度,电影播放器300处于播放状态或停止状态。播放状态中,电影播放器300已经选定播放列表并且正在再现所选定的播放列表。停止状态中,电影播放器300不是正在再现播放列表。停止状态中,电影播放器300没有选定播放列表。换句话说,可以说电影播放器300的重放模块321正在解码剪辑AV流的状态是播放状态,重放模块321不在解码剪辑AV流的状态是停止状态。
播放状态被再分割为几种状态。换句话说,播放状态被再分割为前进的正常速度的正常再现、前进方向和后退方向非正常速度的变速再现以及暂停。步进前进和步进后退再现通过交替地执行正常再现和暂停而实现。电影播放器300正在再现播放列表的状态具有与电影播放器300处于播放状态相同的含义。
下面,将相对电影播放器300的功能描述它们的状态。关于电影播放器300的功能,它具有电影播放器300从本地实现平台301接受控制命令311的模式(该模式称为正常模式)以及电影播放器300忽略控制命令311的模式(该模式称为菜单模式)。电影播放器300的两种操作模式定义为其状态。
正常模式中,电影播放器300的操作可以由用户输入310而非通过脚本层302中的脚本程序控制。
另一方面,菜单模式中,电影播放器300不接受控制命令311。电影播放器300仅仅从脚本层302接受方法313。因此,电影播放器300的操作可以由脚本层302中的脚本程序控制。例如,用户输入310作为事件314从本地实现平台301提供给脚本层302。脚本层302中的脚本程序通过与按键事件314相应的方法313控制电影播放器300的操作。
换句话说,通过菜单模式,内容形成器一侧可以控制电影播放器300的操作。此外,通过菜单模式,可以利用少种类的按键实现各种控制。
因此,对于操作,电影播放器300具有播放状态和停止状态两种状态。此外,对于功能,电影播放器300具有正常模式和菜单模式两种模式。因此,在电影播放器300中,定义两种操作状态和两种功能状态相集合的四种状态。换句话说,在生成电影播放器300之后直到它被消除,电影播放器300处于该四种状态之一。下面将描述电影播放器300的生成和消除。
当发出使电影播放器300将现有状态转换为另一状态的方法313时,在模型中,电影播放器300根据方法313迅速地将现有状态转换为另一状态。在实际装置中,在将方法313发出至电影播放器300之后直到电影播放器300已经根据方法313将现有状态转换为另一状态的时间取决于装置的实现。
当方法313使特定状态中的电影播放器300将现有状态转换为相同的状态时,电影播放器300的状态不转换。例如,当电影播放器300处于正常模式和停止状态时,即使方法313使电影播放器300将现有模式和状态转换为正常模式和停止状态,电影播放器300的现有模式和状态也不转换。
播放状态中包括暂停状态。为了使电影播放器300将停止状态转换为暂停状态,应用具有指定暂停的值pauseMode的自变量的方法play()。
下面,将描述电影播放器300的两种状态和两种操作模式相组合的四种状态以及四种状态之间的状态转换。在下面的描述中,电影播放器300的功能模式的正常模式和菜单模式分别称为“正常”和“菜单”。另一方面,电影播放器300的操作状态的播放状态和停止状态分别称为“播放”和“停止”。电影播放器300的模式和状态的组合由状态{模式,状态}而方便地表征。在下面的描述中,电影播放器300的状态和模式的转换称为状态转换。
如图31中清楚所示,电影播放器300具有包括从现有状态到相同状态的状态转换的总共16种状态转换,即4×4=16种状态转换。这些状态转换通过从脚本层302提供给电影播放器300的方法313执行。换句话说,在电影播放器300之外执行电影播放器300的状态转换。换句话说,状态转换并不是在电影播放器300中自动执行而不需从脚本层302提供的方法。此外,状态转换并不是在电影播放器300中通过本地实现平台301提供的控制命令执行。
根据本发明的该实施例,由于方法313的自变量的组合受到限制,因此不可能在具有该方法的电影播放器300中执行可能的全部16种状态转换。
下面,将逐个地描述在电影播放器300中可能的四种状态,状态{菜单,停止}、状态{正常,停止}、状态{菜单,播放}以及状态{正常,播放}。
(1)状态{菜单,停止}电影播放器300不是正在再现播放列表(处于停止状态中)并且不从本地实现平台301中接受控制命令311。该状态用于菜单屏幕等,其上未在背景中再现运动图像。
为了允许脚本程序安全地控制刚刚生成的电影播放器300,电影播放器300不从本地实现平台301接受控制命令311是有效的。因此,在生成电影播放器300之后立即将它置于状态{菜单,停止}中。
(2)状态{正常,停止}电影播放器300不是正在再现播放列表(处于停止状态中)并且正在从本地实现平台301接受控制命令311。当电影播放器300不是正在再现例如运动图像时应用该状态。由于电影播放器300在该状态中接受控制命令311,因此最后不在生成电影播放器300之后立即应用该状态。
(3)状态{菜单,播放}电影播放器300正在再现播放列表(处于播放状态中)并且不是正在从本地实现平台301接受控制命令311。该状态用于菜单屏幕等,其上在背景中正在再现运动图像。
(4)状态{正常,播放}电影播放器300正在再现播放列表(处于播放状态中)并且正在从本地实现平台301接受控制命令311。当电影播放器300正在再现视频内容的主部分时,应用该状态。
下面,将简要描述生成电影播放器300的模型。例如,当盘再现装置100的电源开启并且CPU 112开启操作系统201时执行必要的处理,如各个部件的初始设置。此外,视频内容再现部件210从ROM中调用。视频内容再现部件210由CPU 112执行。因此,生成电影播放器300。当盘再现装置100的电源关闭时,电影播放器300被消除。
电影播放器300被假定为隐含对象。因此,脚本程序不需要显式地生成电影播放器300。
如上所述,在生成电影播放器300之后立即将它置于菜单模式以及停止状态中(状态{菜单,停止})。在生成电影播放器300之后电影播放器300具有的下列属性立即变为不确定。
属性audioFlag属性audioNumber属性chapterNumber属性playListNumber属性playSpeed属性subtitleNumber属性videoNumber当电影播放器300被初始化时,具有恢复对前一停止位置的再现的“恢复再现功能”的UMD视频播放器可以设置存储于非易失性存储器中的值代替属性的缺省值。例如,可以应用恢复信息324。
8-2.使电影播放器转换状态的方法下面,将描述使电影播放器将现有状态转换为另一状态的方法313。图32显示了相对现有状态{模式,状态}以及由方法313转换的状态{模式,状态}的电影播放器300的四种状态的结合。如图32中可见,如使电影播放器300将现有状态转换为另一状态的方法313,存在方法stop()、方法play()以及方法resume()。由方法resume()引起的电影播放器300的操作取决于是否存在恢复信息324。
下面,将描述方法stop()。方法stop()使电影播放器300将现有状态转换为停止状态,不管现有模式。方法stop()具有用于模式的自变量。具有自变量的方法stop()允许电影播放器300将现有状态和模式转换为停止状态和由自变量指定的模式。如下面将要描述的,当满足特定条件而执行方法stop()时,播放器状态323B被备份并且保持为恢复信息324。
下面,将要描述方法play()。方法play()使电影播放器300将现有状态转换为播放状态。方法play()可以具有用于模式的自变量。方法play()允许电影播放器300将现有状态和模式转换为播放状态和由自变量指定的状态。如下面将要描述的,当满足特定条件而执行方法play()时,播放器状态323B被备份并且保持为恢复信息324。
下面,将要描述方法resume()。方法resume()是将恢复信息324恢复于播放器状态323B并且恢复电影播放器300的再现的方法。换句话说,方法resume()使电影播放器300从恢复信息324表示的位置恢复再现。当不用恢复信息324而执行方法resume()时,电影播放器300不进行转换。
方法resume()使电影播放器300恢复恢复信息324的条件如下。当执行方法resume()时,如果存在恢复信息324并且现有状态不是状态{正常,播放},那么电影播放器300恢复恢复信息324。换句话说,当执行方法resume()时,如果存在恢复信息324并且现有状态是状态{菜单,停止}、状态{正常,停止}以及状态{菜单,播放}之一,那么方法resume()使电影播放器300将现有状态转换为状态{正常,播放}并且恢复恢复信息324。
方法play()具有多个自变量。为简单起见,假定方法play()具有三种自变量自变量pauseMode、自变量menuMode以及自变量playListNumber。特别地,定义用于方法play()的更多自变量。
自变量pauseMode指定播放状态中的再现模式。自变量pauseMode具有值“×1”、值“pause”或值“-1”。值“×1”指定正常前进再现。值“pause”指定暂停。值“-1”指定现有再现速度的保持。因此,自变量pauseMode指定执行方法play()之后电影播放器300的播放状态的细节。当指定值“pause”时,显示由自变量指定的图像并且暂停电影播放器300。在这种情况中,如果不由自变量指定图像,那么显示根据预定的选择规则指定的图像并且暂停电影播放器300。
自变量menuMode指定电影播放器300的模式(正常模式或菜单模式),并且具有值“Normal”、值“Menu”和值“-1”之一。值“Normal”指定正常模式。值“Menu”指定菜单模式。值“-1”指定现有模式的保持。
自变量playListNumber指定要再现的播放列表的序号。可以省略自变量playListNumber。在这种情况中,不转换当前选定的播放列表。
下面,将参照图33A到33E描述当执行方法play()时电影播放器300的状态转换的示例。图33A到33E中,左侧表示电影播放器300的现有状态340A,而右侧表示脚本程序发出方法313使电影播放器300将现有状态340A转换之后的转换状态340B。状态340A和状态340B之下指示的是在这些状态中已经指定的播放列表序号(PL1和PL2)。
图33A显示了将方法play(×1,Normal,PL2)发出至处于状态{正常,停止}中的电影播放器300的情况的示例。方法play(×1,Normal,PL2)使电影播放器300在正常模式中以正常速度再现播放列表序号为“PL2”的播放列表。电影播放器300已经将状态{正常,停止}转换为状态{正常,播放}。
图33B是将方法play(×1,Normal,PL2)发出至处于状态{正常,播放}中的电影播放器300的情况的示例,其中电影播放器300在播放列表序号为“PL1”的播放列表的再现期间处于暂停状态。方法play(×1,Normal,PL2)使电影播放器300将现有状态转换为电影播放器300在正常模式中以正常速度开始再现播放列表序号为“PL2”的播放列表的状态。在这种情况中,尽管电影播放器300的再现操作从暂停转换为正常前进再现,在方法play(×1,Normal,PL2)发出之前和之后,状态还是保持于状态{正常,播放}。因此,电影播放器300没有将现有状态转换为另一状态。
图33C是将方法play(-1,-1,PL2)发出至处于状态{正常,播放}中的电影播放器300的情况的示例,其中电影播放器300正在前进方向以正常的速度再现播放列表序号为“PL1”的播放列表。方法play(-1,-1,PL2)使电影播放器300将现有状态转换为电影播放器300在正常模式中以正常速度再现播放列表序号为“PL2”的播放列表的状态。在这种情况中,尽管电影播放器300正在再现的播放列表发生转换,状态还是保持于状态{正常,播放}。因此,电影播放器300没有将现有状态转换为另一状态。
图33D是将方法play(pause,-1,PL2)发出至处于状态{正常,播放}中的电影播放器300的情况的示例,其中电影播放器300正在前进方向以正常速度再现播放列表序号为“PL1”的播放列表。方法play(pause,-1,PL2)使电影播放器300在正常模式中选择播放列表序号为“PL2”的播放列表并且在播放列表序号为“PL2”的播放列表的起点暂停。在这种情况中,尽管电影播放器300的再现操作从前进正常速度再现转换为暂停,状态还是保持于状态{正常,播放}。因此,电影播放器300没有将现有状态转换为另一状态。
图33E是将方法play(-1,menu)发出至处于状态{正常,播放}中的电影播放器300的情况的示例,其中电影播放器300在播放列表序号为“PL1”的播放列表的再现期间暂停。方法play()中,省略自变量playListNumber。方法play(-1,menu)使电影播放器300在菜单模式中选择播放列表序号为“PL1”的播放列表,并且在播放列表序号为“PL1”的播放列表的起点暂停。电影播放器300已经将状态{正常,播放}转换为状态{菜单,停止}。
因此,电影播放器300从脚本程序接收方法play(),电影播放器300执行各种操作。在这一点上,依赖于条件,电影播放器300将现有状态转换为另一状态。当内容生成器用脚本程序中的不同自变量描述方法play()时,可以实现电影播放器300的各种操作。
仅仅当电影播放器300执行从脚本程序接收的方法play()时,电影播放器300开始再现选定的播放列表序号的播放列表。当开始播放列表的再现时,处于停止状态中的电影播放器300可以开始再现播放列表,或者正在再现播放列表的电影播放器300可以停止对其再现,选择新的播放列表并开始再现新的播放列表。
当脚本程序将具有自变量的方法play()发出至电影播放器300时,自变量的值设置为播放器状态323B。当省略方法play()的自变量时,基于对每一参数的规则的预定值或者缺省值被设置为播放器状态323B。
不希望允许以内容形成器不需要的次序再现播放列表。因此,与用户操作相应的控制命令311禁止使播放列表通过播放列表序号再现。这是根据本发明的该实施例的电影播放器300的操作模型的特征之一。
如果对方法play()的自变量的值指定无效的播放列表和非现有的时间,则方法play()的执行将会失败。这意味着脚本程序包括错误以及违背标准。在这一点的错误处理取决于电影播放器300的实现。
下面,将描述多个播放项的再现。一旦电影播放器300开始再现播放列表,电影播放器300继续对其进行再现直到它到达终点。从起点到终点的播放列表的再现不需要用户的操作以及脚本程序的控制。如图34中所示,电影播放器300再现构成如播放列表文件“PLAYLIST.DAT”中指定的播放列表的播放项(参见图19)。依次再现构成播放列表的播放项,不需要事件处理程序的控制。
在它再现一个播放项直到它再现下一播放项之后的电影播放器300的操作取决于其实现,未在格式中定义。例如,是连续地显示播放项的最后图像还是显示黑图像,取决于电影播放器300的实现。然而,当执行例如将播放项的入点设置为随机存取点(入口点,参见图28)的制作(authoring)处理时,两个播放项的间隔时间可以尽可能地减少。
8-3.播放列表再现期间电影播放器的操作下面,将描述播放列表再现期间电影播放器300的操作。用于高速再现,如双倍速再现或三倍速再现,低速再现如1/2速再现,以及后退再现,用户的变速再现命令,输入至本地实现平台301作为用户输入310。与用户输入310相应,取决于电影播放器300的实现的控制命令311,从本地实现平台301提供给电影播放器300。
变速再现的速度取决于电影播放器300的实现。将具有可以指定速度的“faster”或“slower”的自变量的命令从本地实现平台301提供给电影播放器300。电影播放器300将命令转换为实际速度。实现变速再现的方法取决于电影播放器300的实现。脚本程序可以了解已经由方法getPlayerStatus()指定电影播放器300的速度。
相反地,脚本程序发送至电影播放器300的方法play()并未由自变量指定速度。方法play()仅仅指定暂停(通过自变量“pause”)以及正常速度再现(通过自变量“×1”)。
电影播放器300在前进的方向以可变再现速度再现播放列表之后,当现有播放项到达终点时,电影播放器300再现下一播放项。在这一点上,电影播放器300向同一方向以及以同一再现速度再现下一播放项,从而继续变速再现。
图35显示当电影播放器300正在再现的播放列表到达起点或结尾时,电影播放器300的操作的示例。电影播放器300向前进方向再现播放列表之后,当播放列表到达结尾时,电影播放器300显示最后图像并且暂停。为了清除最后图像,需要明确地采用事件处理程序onPlayListEnd中描述的方法stop()使电影播放器300停止。
当电影播放器300以高于正常速度的速度执行高速再现时,在播放列表的终点,即使播放列表的最后图像不是跳转点,电影播放器300也显示播放列表的最后图像。
电影播放器300以反向再现播放列表之后,当现有播放列表到达起点时,电影播放器300再现前一播放项,即按照时间次序前进方向的前一播放项。电影播放器300以同样的再现速度从终点到起点反向再现前一播放项。当电影播放器300正在再现的播放列表在反向到达起点时,电影播放器300取消变速再现并在播放列表的起点暂停。
此外,电影播放器300通过使电影播放器300暂停的控制命令300暂停。当电影播放器300的暂停状态被取消时,播放列表的再现方向和再现速度取决于电影播放器300的实现。
下面,将要描述播放列表再现期间出现的事件。如参照图13所述,播放列表再现期间出现的事件是与用户操作相应的事件angleChange、事件audioChange和事件subtitleChange以及与嵌入播放列表中的标记相应的事件chapter和事件mark。参照图15描述事件出现时的操作的示例。
下面,将要描述在播放列表的终点执行的处理。如上所述,电影播放器300再现由方法play()指定的播放列表序号的播放列表。一旦电影播放器300开始再现播放列表,电影播放器300就继续再现播放列表直到到达终点,不需要脚本程序和控制命令311的控制。当电影播放器300再现的播放列表到达终点时,无论播放列表怎样到达终点,电影播放器300都将事件playListEnd通知脚本程序。换句话说,当播放列表到达终点时,不管电影播放器300是执行正常再现、快进再现还是从另一播放列表的跳转再现,电影播放器300都生成事件playListEnd。
当电影播放器300正在再现的播放列表到达终点并且出现事件playListEnd时,电影播放器300暂停,并且电影播放器300存储的播放列表的再现时间匹配播放列表的最后时间。播放列表的最后时间是播放列表的最后图像的再现终点时间,并与再现时间轴上的最后播放项的OUT点相匹配。
事件playListEnd可以用于连续再现播放列表并在多记事分支点显示菜单。
当脚本程序具有作为一旦事件playListEnd出现就执行的程序的事件处理程序onPlayListEnd时,脚本程序执行事件处理程序onPlayListEnd。当事件处理程序onPlayListEnd描述使电影播放器300开始再现另一播放列表的方法play()时,电影播放器300开始再现播放列表。以这样的方式,电影播放器300继续再现播放列表。
下面,参照图36,更为具体地描述该操作。当电影播放器300已经再现播放列表序号为“PL1”的播放列表时,出现事件playListEnd。当事件playListEnd出现时,执行脚本程序所具有的事件处理程序onPlayListEnd。事件处理程序onPlayListEnd指定再现播放列表序号为“PL2”的播放列表。电影播放器300接收事件处理程序onPlayListEnd,并再现已经指定的播放列表序号为“PL2”的播放列表。
因此,再现路径暂时地从播放列表序号为“PL1”的播放列表的终点转换至事件处理程序onPlayListEnd,然后至播放列表序号为“PL2”的播放列表的起点。
当在多记事分支点显示菜单时,在终点通过分支点再现显示菜单屏幕的播放列表的命令,可以在与事件playListEnd相应的事件处理程序onPlayListEnd中描述。
图37详细显示了在播放列表的终点的脚本层302的处理的流程以及电影播放器300的操作的示例。图37中,步骤S30至步骤S33表示脚本层302一侧的处理,而步骤S40至步骤S44表示电影播放器300一侧的处理。
电影播放器300正在再现的播放列表到达终点后,为了再现下一播放列表,脚本程序需要明确地发出相应命令。由于播放列表的再现次序由脚本程序确定,电影播放器300一侧不能自主确定下一个要再现的播放列表。
当电影播放器300正在再现的播放列表到达终点(步骤S40)时,电影播放器300将事件playListEnd通知脚本层302(步骤S41)。电影播放器300继续显示到达终点的播放列表的最后图像,并将现有状态转换为暂停状态(步骤S42)。
当脚本层302接收事件playListEnd时,脚本程序302执行事件处理程序onPlayListEnd(步骤S30)。电影播放器300下面要执行的操作取决于事件处理程序onPlayListEnd中的脚本程序的描述。
步骤S40之后,即使暂停的电影播放器300接收取消暂停状态或使电影播放器300开始前进方向的再现的方法或控制命令311,电影播放器300也忽略该方法或控制命令311。使电影播放器300开始前进方向的再现的方法是方法play()及具有指定前进再现的自变量的方法playStep()。使电影播放器300开始前进方向的再现的控制命令311包括命令uo_play()、命令uo_playNexChapter()、命令uo_forwardScan()、命令uo_playStep()、命令uo_pauseOn()以及命令uo_pauseOff()。当电影播放器300在播放列表的终点暂停时,电影播放器300忽略这些命令。
当电影播放器300在播放列表的终点暂停时,方法stop()和方法resume()有效。当电影播放器300在播放列表的终点暂停时,模式转换有效。
事件playListEnd出现之后,在正常模式中操作的电影播放器300可以接受而不是使电影播放器300开始前进方向的再现的控制命令311。在该情况下,当脚本程序执行用于电影播放器300的方法313时,它根据方法313进行操作。
在图31中所示的示例中,事件处理程序onPlayListEnd使脚本层302执行方法stop()(步骤S31)。当脚本层302执行方法stop()时,电影播放器300取消方法311所引起的操作并将现有状态转换为停止状态(步骤S43)。在停止状态中,电影播放器300清除电影播放器300已经再现的播放列表的最后图像并显示黑屏。
事件处理程序onPlayListEnd使脚本层302执行使电影播放器300再现下一播放列表的方法313(步骤S32)。例如,方法play()中,分别指定值“×1”作为自变量pauseMode、值“Menu”作为自变量menuMode以及下一要再现的播放列表序号作为自变量playListNumber。这些值使电影播放器300将现有模式转换为菜单模式,并按照正常再现由自变量playListNumber指定的播放列表序号的播放列表。此后,脚本层302完成事件处理程序onPlayListEnd(步骤S33)。根据在步骤S32指定的方法play(),电影播放器300一侧将现有模式转换为另一模式。此外,电影播放器300以指定速度再现指定的播放列表(步骤S44)。
内容形成器需要制作(描述)下一操作,已经再现一个播放列表的电影播放器300为了改进用户可操作性而在事件处理程序onPlayListEnd中执行该下一操作,从而电影播放器300已经再现播放列表之后,电影播放器300将现有状态转换为停止状态,通过方法play()再现下一播放列表或显示菜单屏幕。
8-4.电影播放器的再现恢复功能下面,将要描述电影播放器300的状态转换和再现恢复功能。首先,参照图38,描述UMD视频播放器所具有的三种存储区域。在UMD视频播放器模型中,将播放器状态区501、恢复信息区502以及用户数据区503定义为三种基本存储区域。这三种存储区501、502和503形成于例如存储器113中。代替地,这些存储区501、502和503可以形成于RAM中,它们是CPU112的工作存储器。
播放器状态区501是存储表示电影播放器300的再现状态的信息的存储区域。换句话说,播放器状态区501存储图3中所示的播放器状态323B。播放器状态区501的内容可以通过方法getPlayerStatus()从脚本程序500中读取。
恢复信息区502是暂时备份播放器状态区501中保持的部分信息的存储区。换句话说,播放器状态区501的部分的信息在恢复信息区502中存储为图3中所示的恢复信息324。当需要时,在恢复信息区502中备份的播放器状态区501的部分信息,恢复为播放器状态区501。信息的备份和恢复由本地实现平台301执行。恢复信息区502中存储的信息用于从前一再现停止位置开始再现的恢复再现功能。
脚本程序500可以通过方法getResumeInfo()读取恢复信息区502的内容。脚本程序500可以通过方法changeResumeInfo()改变关于恢复信息区502中存储的恢复信息324中的流的参数。
当需要时,恢复信息区502中存储的信息通过本地实现平台301保存于非易失性存储器510。同样,当需要时,从恢复信息区502保存于非易失性存储器510中的信息通过本地实现平台301从非易失性存储器510中载入,并且存储于恢复信息区502中。
从播放器状态区501到恢复信息区502的信息的备份以及从恢复信息区502到播放器状态区501的信息的恢复是在通过预定方法将现有状态转换为预定状态时电影播放器300自动执行的处理。
用户数据区503是存储取决于内容的信息的区域。内容形成器可以自由应用用户数据区503。用户数据区503可以自由用于如电影播放器300的播放列表的再现路径的历史,以及与内容相应的正确和错误响应。
脚本程序500可以通过方法setUserData()保存数据于用户数据区503。脚本程序500可以通过方法setUserData()读取用户数据区503的内容。当需要时,本地实现平台301将用户数据区503中存储的信息保存于非易失性存储器510中。同样,当需要时,本地实现平台301从非易失性存储器510中载入信息,并将信息存储于用户数据区503中。
下面,将要根据本发明的实施例描述实现再现恢复功能的UMD视频播放器模型。
首先,将要简要描述恢复操作。通过恢复信息区502中备份的信息恢复再现状态的操作称为恢复操作。恢复操作通过方法resume()执行。
更具体地,根据方法resume(),播放器状态323B从播放器状态区501备份于恢复信息区502中,并且通过恢复信息区502中备份的恢复信息324恢复再现状态。播放器状态323B包括电影播放器300的状态,即电影播放器300当前正在再现的播放列表的序号及章节的序号、选择的流序号等。
方法resume()发向的电影播放器300的操作取决于恢复信息324是否存储于恢复信息区502中。当恢复信息324存储于恢复信息区502中时,恢复信息324作为播放器状态323B恢复于播放器状态区501。在这一点上,放弃恢复信息区502中存储的恢复信息324。
当内容再现期间调用的菜单上的再现流转换时,应用方法changeResumeInfo()。通过方法changeResumeInfo()将恢复信息区502中存储的恢复信息324转换为指定信息之后,当通过方法resume()执行恢复操作时,现有再现流可以转换为指定的再现流,可以开始指定再现流的再现。
当执行方法resume()时,电影播放器300可以执行恢复操作。代替地,当通过方法getResumeInfo()获取恢复信息324并且执行指定自变量的方法play()时,可以实现恢复操作。
下面,将要参照图39和图40描述播放器状态323B到恢复信息区502的备份。图39显示了状态转换,其中在电影播放器300中定义的四种状态转换中,播放器状态区501中存储的播放器状态323B备份于恢复信息区502。图40显示了播放器状态323B备份于恢复信息区502的条件。
当在正常模式和播放状态中(状态{正常,播放})正在再现播放列表的电影播放器300将现有状态转换为停止状态时,播放器状态区501中存储的播放器状态323B备份于恢复信息区502并存储为恢复信息324。在停止状态中,播放器状态323B的某些值变为不确定。
此外,当电影播放器300将现有状态状态{正常,播放}转换为状态{菜单,播放}时,播放器状态区501中存储的播放器状态323B也备份于恢复信息区502。
相反地,当在菜单模式正在再现播放列表的电影播放器300将现有状态转换为另一状态时,播放器状态区501中存储的播放器状态323B不备份于恢复信息区502。
换句话说,播放器状态323B作为恢复信息324备份于恢复信息区502。
(1)当电影播放器300的现有状态是状态{正常,播放},并且电影播放器300通过方法stop()的执行直接将现有状态状态{正常,播放}转换为状态{正常,播放},或(2)当电影播放器300的现有状态是状态{正常,播放},并且电影播放器300通过方法stop()的执行将现有状态状态{正常,播放}转换为状态{正常,停止}或状态{菜单,停止}。在这种情况中,方法stop()的自变量resumeInfoClearFlag的值为“false”。
期望播放器状态323B备份于恢复信息区502,以便存储内容的主部分的返回位置。例如,当再现内容的主部分的操作序列跳转至运动图像菜单,返回内容的主部分,并从完成的再现停止位置再现内容的主部分,期望应用作为恢复信息区502中备份的播放器状态323的数据的恢复信息324。
因此,当内容的主部分正在再现时,即电影播放器300的现有状态是状态{正常,播放}时,恢复信息区502中存储的恢复信息324已经被放弃。当电影播放器300将现有状态,状态{正常,播放}转换为另一状态时,播放器状态323B作为恢复信息324备份于恢复信息区502。
因此,为了实现恢复再现,在电影播放器300将现有状态转换为另一状态时,播放器状态323B备份于恢复信息区502,恢复信息区502中存储的恢复信息324被放弃。当脚本层302指定方法resume()时,如果恢复信息324存储于恢复信息区502,就将恢复信息324作为播放器状态323B恢复于播放器状态区501。
脚本层302可以通过方法getResumeInfo()从恢复信息区502载入恢复信息324。关于恢复信息区502中存储的恢复信息324中的流的参数,可以通过方法changeResumeInfo()进行转换。此外,通过方法stop()的自变量,可以放弃恢复信息区502中存储的恢复信息324。
下面,将要参照图41到图44描述恢复信息区502中存储的恢复信息324到播放器状态区501的恢复及其放弃。存储为内容的主部分的返回位置的恢复信息324,在电影播放器300返回主部分再现状态即状态{正常,播放}之后被放弃。在这一点上,有两种情况。在第二种情况中,恢复信息324作为播放器状态323B恢复于播放器状态区501然后被放弃。在第二种情况中,恢复信息324被放弃,不被恢复。
换句话说,在该模型中,当电影播放器300返回状态{正常,播放}时,恢复信息区502中存储的恢复信息324被放弃。在这一点上,当电影播放器300等满足预定条件时,恢复信息区502中存储的恢复信息324恢复于播放器状态区501然后被放弃。当恢复信息324恢复于播放器状态区501时,从恢复信息324指定的位置开始再现。该操作是恢复再现。
图41显示了在电影播放器300中定义的四种状态转换中恢复信息324恢复于播放器状态区501然后被放弃的状态转换。
当满足下列三种条件(1)到(3)时,恢复信息324被恢复然后被放弃(1)当电影播放器300的现有状态是状态{菜单,停止}、状态{正常,停止}或状态{菜单,播放}时,(2)当恢复信息324存储于恢复信息区502时,以及(3)当电影播放器300将现有状态通过方法resume()的执行转换为状态{正常,播放}时。
图42是这些条件的表。当电影播放器300的现有状态是状态{正常,播放}时,由于恢复信息324未被存储,因此这一状态中的操作未在图42中定义。
当恢复信息324存储于恢复信息区502中时,如果执行方法resume(),电影播放器300将现有状态转换为状态{正常,播放}。当恢复信息324未存储于恢复信息区502中时,如果执行方法resume(),电影播放器300没有将现有状态转换为另一状态。在这一点上,电影播放器300保持紧接在执行方法resume()之前出现的状态{模式,状态},并且播放器状态323B未转换。
相反地,当满足下列三种条件(4)到(6)时,恢复信息324不被恢复,而是被放弃(4)当电影播放器300的现有状态是状态{菜单,停止}、状态{正常,停止}或状态{菜单,播放}时,(5)当恢复信息324存储于恢复信息区502时,以及(6)当电影播放器300将现有状态通过方法play()的执行转换为状态{正常,播放}时。
图43是这些条件的表。当电影播放器300的现有状态是状态{正常,播放}时,由于恢复信息324未存储于恢复信息区502中,因此这一状态中的操作未在图43中定义。
当恢复信息324未存储于恢复信息区502中时,如果执行方法play(),那么电影播放器300将现有状态转换为状态{正常,播放}。因此,恢复信息324未存储于恢复信息区502中的状态保持不变。
存储于恢复信息区502中的恢复信息324可以通过设置方法stop()的自变量而放弃。特别地,根据本发明的该实施例,作为方法stop()的自变量,定义指定是否放弃存储于恢复信息区502中的恢复信息324的自变量resumeInfoClearFlag。如图44中所示,当执行方法stop()时,如果自变量resumeInfoClearFlag通过值“true”指定时,恢复信息324被放弃。
当电影播放器300再现的电影的主部分到达终点,并且电影播放器300的再现停止时,电影的主部分的终点位置记录为恢复信息324。此后,当用户操作电影播放器300执行再现操作(恢复再现操作)时,电影播放器300跳转至电影的主部分的终点并暂停。因此,电影播放器300中的恢复再现操作的可操作性变差。
为了改进电影播放器300中的恢复再现操作的可操作性,需要提供放弃自动记录为模型的特性的恢复信息324的部件。由于仅仅电影形成器知道电影的主部分的终点,脚本程序500可以通过方法stop()的自变量resumeInfoClearFlag指定用于电影播放器300的恢复信息324的放弃。
图45显示了当通过自变量resumeInfoClearFlag执行方法stop()时执行UMD视频播放器的操作的示例。图45中,步骤S50到步骤S54显示脚本层302一侧的处理,而步骤S60到步骤S64显示电影播放器300一侧的处理。
当电影播放器300正在再现的播放列表到达终点时(步骤S60),电影播放器300将事件playListEnd通知脚本层302(步骤S61)。电影播放器300继续显示步骤S60中到达终点的播放列表的最后图像并暂停(步骤S62)。
当脚本层302接收事件playListEnd时,脚本层302执行事件处理程序onPlayListEnd(步骤S50)。步骤S51中,脚本层302确定与事件playListEnd相应的播放列表是否作者情景(author scenario)的最后。此外,脚本层302可以确定特定的播放列表是否基于例如脚本程序500的情景的最后播放列表。
当确定的结果表示播放列表不是最后的播放列表时,流程前进至步骤S53。在步骤S53中,脚本层302将方法stop()的自变量resumeInfoClearFlag设置为值“false”并向电影播放器300发出不放弃恢复信息324的方法stop()。当电影播放器300接收方法stop()时,电影播放器300将现有状态转换为停止状态。此外,电影播放器300将播放器状态323B备份于恢复信息区(在步骤S64)。
相反地,当在步骤S51中确定的结果表示播放列表是情景中的最后播放列表时,流程前进至步骤S52。在步骤S52中,脚本层302将方法stop()的自变量resumeInfoClearFlag设置为值“true”并将放弃恢复信息324的方法stop()通知电影播放器300。当电影播放器300接收方法stop()时,电影播放器300将现有状态转换为停止状态。此外,电影播放器300放弃(清除)恢复信息区502中存储的恢复信息324(在步骤S63中)。
步骤S52之后,脚本层302执行取决于脚本程序500中的描述的方法end()。
8-5.各个数据的生存周期下面,将描述播放器状态323B、恢复信息324以及用户数据的生存周期。
图46显示了播放器状态323B的生存周期的示例。当生成电影播放器300时,也生成播放器状态323B。当消除电影播放器300时,也消除播放器状态323B。当电影播放器300时,初始化播放器状态323B。当生成生成播放器状态323B时,表示电影播放器300的状态的属性表示停止状态。其它属性变为不确定。播放器状态323B的值根据电影播放器300的再现状态的转换而转换。当恢复信息区502的内容被恢复时转换播放器状态323B的值。播放器状态323B可以通过从脚本层302发出的方法getPlayerStatus()载入。
播放器状态323B的存储状态取决于电影播放器300的实现。只要播放器状态323B可以由脚本层发出的方法getPlayerStatus()获取,播放器状态323B就可以以任何格式存储。
图47(47A和47B)显示了恢复信息324的线周期的示例。当生成电影播放器300时,分配用于恢复信息324的存储区域。当生成电影播放器300时,初始化恢复信息324。当初始化恢复信息324时,恢复信息324的内容被放弃。当初始化电影播放器300时,容纳非易失性存储器的UMD视频播放器从非易失性存储器载入恢复信息324。在这一点上,也载入用户数据。
当电影播放器300将现有状态,状态{正常,播放}转换为另一状态时,播放器状态323B备份于恢复信息区502。
关于恢复信息324的流的参数videoNumber、audioNumber、audioFlag、subtitleNumber和subtitleFlag可以由从脚本层302发出的方法changeResumeInfo()转换。
当电影播放器300开始在正常模式再现播放列表时,恢复信息324的内容被放弃。在这一点上,具有两种情况。在第一种情况中,在恢复信息324的内容被放弃之前,它恢复于播放器状态323B。在第二种情况中,在恢复信息324的内容被放弃之前,它不恢复于播放器状态323B。当由自变量resumeInfoClearFlag=“true”执行方法stop()时,恢复信息324的内容被放弃。
当恢复信息324被存储时,它由方法resume()恢复于播放器状态323B。
通过方法getResumeInfo(),恢复信息324的内容可以从脚本层302中读取。当读取已经放弃的恢复信息324时,由于值“0”被返回为返回值playStatus,因此它可以确定恢复信息324是否被存储。
当电影播放器300被完成(消除)时,也消除恢复信息324。当电影播放器300被完成(消除)时,容纳非易失性存储器的UMD视频播放器将恢复信息324保存于非易失性存储器。在这一点上,UMD视频播放器也将用户数据保存于非易失性存储器。
图48显示了用户数据的生存周期的示例。当生成电影播放器300时,分配用于用户数据的存储区域。当生成电影播放器300时,初始化用户数据。当初始化用户数据时,清除用户数据的内容(通过方法getUserData(),返回具有“0”长度的阵列)。当初始化电影播放器300时,容纳非易失性存储器的UMD视频播放器从非易失性存储器载入用户数据。在这一点上,UMD视频播放器也从非易失性存储器载入恢复信息。
当执行方法setUserData()时,将用户数据保存于用户数据区503。通过方法setUserData(),将具有64比特(最大)的数据长度的整数型阵列排列于用户数据区503。用户数据区503中存储的数据可以通过从脚本层302发出的方法getUserData()读取。当用户数据未被存储时,返回具有0长度的阵列。
脚本层302不具有清除用户数据区503的内容的方法。当用户数据区503的内容被覆写(overwritten)时,可以改变内容。
当电影播放器300被完成(消除)时,用户数据区503也被消除。当电影播放器300被完成(消除)时,容纳非易失性存储器的UMD视频播放器将存储于用户数据区503的数据保存于非易失性存储器。在这一点上,UMD视频播放器也将恢复信息324保存于非易失性存储器。
9.转换资源文件下面,将要描述根据本发明的实施例的资源文件的转换。根据本发明的该实施例,在盘上记录包括关于如脚本程序和构成菜单屏幕的图像数据的内容的再现控制的数据的多个资源文件。当开始对盘的再现时,从那些资源文件中自动选择适当的资源文件。此外,对盘的再现期间,在流的读取被中断时,现有资源文件可以适当地转换为另一资源文件。
因此,超出盘再现装置100的存储器113的容量的资源文件可以用于记录在盘上的内容。因此,具有交互式功能的内容可以高于现有技术的自由度形成。
当资源文件对如日语和英语的语言准备并显示如4∶3和16∶9的纵横长度比时,不用于再现环境中的数据可以被防止从盘中读取。
如图49中所示,资源文件置于目录“RESOURCE”之下,其中目录“RESOURCE”置于根(root)目录下的目录“VIDEO”之下。如上所述,控制内容再现的脚本程序和脚本程序中应用的数据包括于资源文件中。脚本程序中应用的数据是例如按钮图像数据、纹理(texture)信息、图形用户界面(GUI)的布局信息以及声音数据。
根据本发明的该实施例的资源文件是包括各种文件的文件,各种文件如用于脚本程序的脚本文件和用于脚本程序中应用的数据的文件。换句话说,资源文件具有包括多个文件的结构。
如上所述,由于盘中作为不同文件包括资源文件和流文件,因此当基本流被形成(编码)并多路复用时,资源文件可以独立地形成。因此,视频数据和菜单可以并行形成。
此外,由于盘中作为独立文件包括用于菜单等的程序,并且文件和流不分散地多路复用,因此程序可以容易地被调试。
因此,当程序正在执行时,视频数据可以被再现。结果,当背景中的视频数据正在被再现时,菜单屏幕可以叠加于背景视频图像中,不需要中断视频数据的再现。
此外,由于用于菜单等的程序独立于流,因此程序可以容易地重用。当现有程序用于另一流时,仅仅需要重写指定流序号和时间的链接信息。
当多个文件置于一个目录下时,需要唯一地分配它们的文件名。当具有多个资源文件时,盘再现装置100需要识别开始来自于盘的数据的再现时首先读取的资源文件。
为了解决这样的问题,根据本发明的该实施例,资源文件的命名规则如下指定。如图50中所示,资源文件的文件名具有“CCdannnn.RCO”的格式。下面,将要描述资源文件的文件名的每一部分。
资源文件的文件名由总数12字符构成。定界符(点号)之后的字符串是扩展名。扩展名的字符串是“RCO”,表示该文件是资源文件。
文件名的前两个字符“CC”表示资源文件的语言属性。国际标准化组织(ISO)639-1中定义的由两个字符表示的语言代码转换为大写字母字符,例如日语由“JA”表征而英语由“EN”表征。
第三个字符“d”表示该资源文件是否指定为缺省语言的资源文件。缺省语言是与资源文件相应的内容被再现时通常选择的语言。当“d”是“1”时,它表示该资源文件指定为缺省语言。当“d”是“0”时,它表示该资源文件并未指定为缺省语言。
第四个字符“a”表示资源文件所期望的显示装置的纵横长度比。当“a”是“0”时,它表示期望的纵横长度比为16∶9。当“a”是“1”时,它表示期望的纵横长度比为4∶3。
第五到第八字符“nnnn”表示标识序号。“n”是范围从0到9的任何数字符。在存在多个资源文件,其第二和第三字符是“CC”并且其第四字符“a”相同时,这些资源文件可以由不同的标识序号而标识。当具有第一和第二字符“CC”以及第四字符“a”相同的多个资源文件时,标识序号需要不同。然而,它们不需要是连续的数。当具有前两个字符“CC”以及第四字符“a”相同的多个资源文件时,这些文件之一需要是“0000”。
指定为缺省语言的一个或两个资源文件置于目录“RESOURCE”中。当具有纵横长度比不同(16∶9以及4∶3)的资源文件时,具有指定为缺省语言的两个资源文件。当具有指定为缺省语言的两个资源文件时,两个资源文件的语言属性相同。“d”是“1”的资源文件需要是标识序号是“0000”的文件。当语言是“CC”的资源文件中的“d”是“1”时,“d”是“0”以及标识序号是“0000”的资源文件不被允许。
资源文件文件名的命名规则不限于上述示例。换句话说,只要包括表示资源文件的语言属性的信息、表示资源文件是否指定为缺省语言的信息以及表示资源文件期望的显示装置的纵横长度比的信息,并且置于同一目录中的多个资源文件唯一地标识,那么资源文件的文件名可以基于另一命名规则指定。例如,文件名的长度不限于包括定界符的12个字符。此外,只要系统可以将其识别为资源文件,那么扩展名可不限于“RCO”。
如下面将描述的,当资源文件文件名的命名规则如上指定时,可以初始选择资源文件。下面,将要描述在再现装置即UMD视频播放器中初始选择资源文件的方法。如上所述,盘中包括至少一个资源文件。当UMD视频播放器接收命令“再现从内容的起点开始”时,UMD视频播放器从盘上的多个资源文件中选择最合适的文件,并且执行所选择的文件。
可能具有与盘的目录“RESOURCE”下的语言相应的多个资源文件。在这些文件中,可能具有至少一个文件,至多两个文件,作为根据资源文件文件名的命名规则指定为缺省语言的资源文件。当具有指定为缺省语言的两个文件时,它们对不同的显示纵横长度比准备。
图51是显示初始选择资源文件的处理的示例的流程图。流程图的处理通过例如视频内容再现部件210执行。当盘101载入盘再现装置100并且将命令“再现从内容的起点开始”发出至盘再现装置100时,流程前进至步骤S70。在步骤S70中,盘搜索目录。从置于目录“RESOURCE”下的文件中选择扩展名是“RCO”以及文件名的标识序号是“0000”的资源文件。换句话说,在初始选择资源文件的处理中,选择文件名的标识序号是“0000”的文件。
例如,每一文件的文件名对点号位置搜索。(followed by)点号之前的三个字符被提取。选择提取出的三个字符的字符串是“RCO”的文件。此外,由(preceded by)点号在前的四个字符从每一文件的文件名中提取。选择提取的四个字符的字符串是“0000”的文件。
此后,流程前进至步骤S71。在步骤S71中,获取文件名部分“CC”的语言属性。例如,获取文件名的点号在前的第八和第七字符。这两个字符表示资源文件的语言属性。根据语言属性确定是否具有播放器的设置语言与语言属性相匹配的资源文件。当确定的结果表示具有它们匹配的资源文件时,流程前进至步骤S72。在步骤S72中,选择播放器的设置语言与语言属性相匹配的资源文件。当选择文件时,流程前进至步骤S74。
相反地,当在步骤S71中确定的结果表示不具有播放器的设置语言与语言属性相匹配的文件时,流程前进至步骤S73。在步骤S73中,选择指定为缺省语言的资源文件。换句话说,部分“d”的字符从文件名中提取。例如,获取点号之前的第六字符。选择“d”是1的文件。当已经选择文件时,流程前进至步骤S74。
在步骤S74中,确定在步骤S72或步骤S73中是否已经选择的两个文件。当确定的结果表示已经选择一个文件时,文件读取为初始选择的资源文件。
相反地,当在步骤S74中确定的结果表示在步骤S72或步骤S73中已经选择两个文件时,流程前进至步骤S75。在步骤S75中,部分“a”的字符从文件名中提取。例如,提取点号之前的第五字符。选择由提取的字符表示的纵横长度比与播放器的显示装置的纵横长度比的设置相匹配的资源文件。
在前述示例中,对点号位置搜索文件名从而从资源文件的文件名中获取预定字符或字符串。另一其它字符或字符串的位置与点号的位置相应地标识。这是实现从文件名中获取预定字符或字符串的处理的方法的示例。应该注意的是,这一方法仅仅是示例。换句话说,可以从起点或者终点对字符串搜索文件名。
具有与盘中的播放器的设置语言相匹配的语言属性的一个或两个资源文件。通过执行图51的流程图中所示的处理,可以选择适当的资源文件。
当执行流程图的处理以及不具有可以选择的资源文件时,假定在盘上出现格式违规或盘错误。在这种情况中,防止错误的对策取决于播放器的实现。例如,可以选择并再现可以读取的资源文件。代替地,可以假定盘是不可再现盘并且盘的再现不被执行。
已经以前述方式初始选择的资源文件通过视频内容再现部件210读取,并提供至脚本控制模块211。脚本控制模块211根据资源文件中包括的脚本程序开始再现内容。开始内容再现之后,脚本程序明确地指定下一次读取的资源节目。因此,仅仅当开始再现时,需要确定资源文件的选择规则。
下面,将要描述对资源文件的选择之后执行的处理。在该处理中,执行资源文件中包括的脚本程序,并且操作事件驱动模型。图52显示了资源文件中包括的脚本文件的内容的示例。脚本文件由事件处理程序组和主处理部分构成。事件处理程序组具有一个或多个事件处理程序。在执行脚本程序之前,脚本文件从起点评价。在评价期间,登记事件处理程序,解决引用,例如定义变量,并生成对象。脚本程序执行之前执行的处理序列称为初始执行。初始执行通过本地实现平台301执行。
当执行初始执行时,脚本文件的主处理部分被评价一次。在主处理部分中,可以定义作为通常在整个脚本文件中应用的变量的全局变量(描述为图52中的“var a,b;”)。当执行初始执行时,具有事件不排队以及用户操作不被接受的限制。因此,电影播放器300的方法和控制器对象330以及构成屏幕的部件(窗口小部件)的方法被禁止在主处理部分中描述。
在已经完成脚本程序的初始执行之后,它可以接受事件。另一方面,本地实现平台301抑制其它事件的出现直到它生成事件autoPlay或事件continuePlay。在已经完成脚本程序的初始执行之后,本地实现平台301的控制器对象330生成事件autoPlay或事件continuePlay之一。生成的事件提供至脚本层302。
图53是显示执行脚本程序的初始执行、选择事件处理程序并执行所选择的事件处理程序的处理示例的流程图。首先,盘101载入盘再现装置100。用户选择从盘101的起点再现数据的操作(此后该操作称为“从起点再现”)或从盘101的前一停止位置再现数据的操作(此后该操作称为“恢复再现”)(在步骤S80中)。当用户已经选择“恢复再现”时,流程前进至步骤S81。当用户已经选择“从起点再现”时,流程前进至步骤S86。
在步骤S81中,本地实现平台301确定与盘101相应的恢复信息324是否被存储。当确定的结果表示恢复信息324未被存储时,由于未执行“恢复再现”,因此流程前进至步骤S86。相反地,当确定的结果表示与盘101相应的恢复信息324被存储,流程前进至步骤S82。
在步骤S82中,控制器对象330将事件continuePlay通知脚本层302。当控制器对象330已经通知事件continuePlay,流程前进至步骤S83。在步骤S83中,脚本层302确定脚本程序中是否存在与事件continuePlay相应的事件处理程序onContinuePlay。当确定的结果表示脚本程序中存在与事件continuePlay相应的事件处理程序onContinuePlay时,流程前进至步骤S84。在步骤S84中,执行事件处理程序onContinuePlay。
相反地,当在步骤S83中确定的结果表示脚本程序中不存在与事件continuePlay相应的事件处理程序onContinuePlay时,流程前进至步骤S85。在步骤S85中,执行缺省的事件处理程序onContinuePlay。缺省的事件处理程序onContinuePlay预先构建在例如盘再现装置100中。事件处理程序onContinuePlay通过恢复信息324执行恢复再现。换句话说,与盘101相应的恢复信息324恢复为播放器状态323B。电影播放器300通过播放器状态323B再现内容。
如上所述,当用户已经在步骤S80中选择“从起点再现”或在步骤S81中确定的结果表示与盘101相应的恢复信息324未被存储时,流程前进至步骤S86。在步骤S86中,控制器对象330生成事件autoPlay并将事件autoPlay通知脚本层302。在步骤S87中,确定脚本程序是否具有与事件autoPlay相应的事件处理程序onAutoPlay。当确定的结果表示脚本程序具有事件处理程序onAutoPlay时,流程前进至步骤S88。在步骤S88中,脚本层302执行事件处理程序onAutoPlay。
相反地,当在步骤87中确定的结果表示脚本程序不具有事件处理程序onAutoPlay时,流程前进至步骤S89。在步骤S89中,不执行处理。以这种方式,可以有意生成不执行处理的状态。在这种情况中,通过菜单按键,生成相应事件。
内容形成器以一侧可以确定脚本程序是否具有事件处理程序onAutoPlay。当脚本程序不具有事件处理程序onAutoPlay时,即使用户将盘101载入盘再现装置100时,数据也不从盘101自动再现。从用户方便的角度来看,最好提供事件处理程序onAutoPlay。
下面,将要描述内容执行期间将现有资源文件转换为另一资源文件的方法。由于播放器的存储器113等容量的限制,包括脚本程序、用于菜单屏幕的静止图像以及声音数据的资源文件的数据大小受限制。当将资源文件分割为几部分,并且在内容再现期间将一个分割的部分转换为另一部分时,可以处理更多的脚本程序和静止图像以及许多声音数据。
图54是显示将现有资源文件转换为另一资源文件的处理示例的流程图。通过从脚本层302发出至本地实现平台301的方法changeResource()将现有资源文件转换为另一资源文件。方法changeResource()是本地实现平台301中的控制器对象330的方法。内容形成器一侧在脚本程序中资源转换位置描述方法changeResource()。
在步骤S100中,脚本程序将方法changeResource()发出至本地实现平台301。当本地实现平台301接收方法changeResource()时,它参照电影播放器300的播放器状态323B并且确定电影播放器300的操作模式是否菜单模式(在步骤S101)。当确定的结果表示操作模式不是菜单模式时,流程前进至步骤S111。在步骤S111中,本地实现平台301的控制器对象330返回值“假”作为方法changeResource()至脚本程序的返回值,以便将转换资源文件失败通知脚本程序(在步骤S112)。步骤S112之后,流程可以返回至步骤S100。
当在步骤S101中确定的结果表示电影播放器300的操作模式是菜单模式时,流程前进至步骤S102。在步骤S102中,确定电影播放器300的状态是停止状态还是播放状态中的暂停状态。换句话说,在步骤S102中,确定电影播放器300的内容中是否已经过时间。当电影播放器300的状态是停止状态或播放状态中的暂停状态时,不必从盘读取流。播放状态中的暂停状态可以通过从缓存中反复读视频数据的一帧的视频输出模块241实现。
当电影播放器300的状态既不是停止状态也不是播放状态中的暂停状态时,即在播放状态中再现的内容中没有经过时间,流程前进至步骤S111。在步骤S111中,控制器对象330将值“假”返回为返回值。在步骤S112中,资源文件的转换失败。
相反地,当在步骤S112中确定的结果表示电影播放器300的状态是停止状态或播放状态中的暂停状态时,流程前进至步骤S103。在步骤S103中,本地实现平台301的控制器对象330将值“真”作为返回值返回至脚本程序。此后,流程前进至步骤S104。在步骤S104中,本地实现平台301抑制新事件的生成。换句话说,在步骤S104中,本地实现平台301抑制发出至脚本层302的事件314生成。在步骤S105中,本地实现平台301放弃全部已经排队的事件314。
在步骤S106中,清除当前显示的屏幕(页)。将与没有转换的现有资源文件相应显示的屏幕(页)的数据从例如视频输出模块241存储视频数据的缓存删除。该处理擦除与未转换的现有资源文件相应显示的图像数据。在这一点上,擦除与现有资源文件相应生成并与视频图像叠加的图形图像。当电影播放器300的状态是播放状态中的暂停状态时,尽管在背景中显示暂停的视频图像,然而该视频静止图像连续地显示。
可以忽略处理的步骤S106。换句话说,当现有资源文件正在转换为另一资源文件时或紧接在现有资源文件已经转换为另一资源文件之后,如果图像数据存储于缓存中,当视频输出模块241重复地读取图像数据时,可以连续显示屏幕(页)。
在步骤S107中,本地实现平台301放弃现有资源文件并从盘读取新的资源文件。下一个要读取的资源文件在前一个资源文件中描述。当读取新的资源文件时,流程前进至步骤S108。在步骤S108中,本地实现平台301执行已经读取的资源文件的初始执行。本地实现平台301将事件resourceChanged发出至新脚本文件的脚本层302。与事件resourceChanged相应,脚本层302执行事件处理程序onResourceChanged。在这一点上,允许新事件的生成。
在事件驱动模型中,抑制新事件并对排队的事件处理程序进行处理的定时是重要的。因此,当它们不被适当地处理时,可能出现不期望的事件并且可能执行排队的事件处理程序。结果,可能不完成打算的操作。
根据本发明的该实施例,在前述流程图的步骤S101中,确定是否从本地实现平台301接受对应于用户输入310的控制命令。在步骤S102,确定流是否已经从盘读取。换句话说,根据本发明的该实施例,执行对内容再现期间将现有流转换为另一个流的所需的这些处理。因此,现有资源文件可以安全地转换为另一资源文件。
特别地,在执行步骤S101和步骤S102之前,在出现方法changeResource()之前,最好电影播放器300的操作模式明确为菜单模式,其状态是停止状态。
为了实现将现有资源文件转换为另一资源文件,存储于播放器的存储器中的两种信息需要被适当地控制。第一种类型的信息需要被保持直到现有资源文件已经转换为另一资源文件。第二种信息需要当现有资源文件转换为另一资源文件时被放弃。
播放器状态323B、恢复信息324和用户数据(存储于用户数据区503中的数据)是需要保持到已经将现有资源文件转换为另一资源文件的数据。
相反地,脚本层302中保存的全局变量和代入事件处理程序的属性的值是,在已经将现有资源文件转换为另一资源文件后不保持的数据。
紧接在现有资源文件转换为另一资源文件之前,擦除作为菜单、按钮图像等等显示的页(屏幕)。即使这些图像数据等等留在视频输出模块241的缓存中并且连续地被显示,构成菜单显示页(屏幕)的数据从存储资源文件的存储器中擦除。同样,紧接在现有资源文件转换为另一资源文件之前,放弃所有排队的事件处理程序。结果,在将现有资源文件转换为另一资源文件之后,事件处理程序不排队。
因此,根据本发明的该实施例,定义在现有资源文件转换为另一资源文件之后要保持的信息和在现有资源文件转换为另一资源文件之后将不保持的信息。紧接在现有资源文件转换为另一资源文件之前,放弃事件处理程序。因此,现有资源文件可以转换为另一资源文件。
本发明的前述实施例应用于处理音频流和视频流的盘再现装置100。代替地,本发明的这些实施例可以应用于再现音频流或视频流的盘再现装置100。
在本发明的前述实施例中,作为内容数据的记录介质,描述了盘型记录介质。代替地,可以应用作为内容数据的记录介质的半导体存储器。
在本发明的前述实施例中,盘再现装置100由专用硬件构成。代替地,除盘驱动器之外的盘再现装置100的结构可以由运行在计算机装置上的软件实现。在这种情况中,实现盘再现装置100的软件可以由如致密盘只读存储器(CD-ROM)或数字通用盘ROM(DVD-ROM)的记录介质提供。在这种情况中,用于实现盘再现装置100的软件的记录介质载入计算机装置的盘驱动器中,并且记录在记录介质上的软件安装于计算机装置。当基于UMD的盘驱动装置连接至计算机装置时,可以实现与根据本发明的前述实施例的盘再现装置100相同的结构。可以将软件记录于UMD视频内容的记录介质上。
本领域技术人员应该理解,依据设计要求和在处于如权利要求或其等效的范围内的范围的其它因素,可以进行各种改进、组合、子组合以及替换。
权利要求
1.一种计算机装置可读的记录介质,其上记录内容数据,包括视频流和音频流的至少一个;以及至少一个资源文件,包括控制内容数据再现的再现控制程序和由再现控制程序使用的数据,其中资源文件的文件名包括表示当再现内容数据时正常使用的语言的信息,以及表示资源文件的语言属性的信息。
2.如权利要求1所述的记录介质,其中在计算机装置读取资源文件之后,当正在再现记录介质的预定区域时,资源文件存储于计算机装置的存储器中。
3.如权利要求1所述的记录介质,其中资源文件的文件名进一步包括表示根据资源文件控制内容数据的再现时所期望的显示纵横长度比的信息。
4.一种从记录介质中再现内容数据的再现装置,该再现装置包括读取装置,从记录介质中读取数据,该记录介质上记录内容数据,包括视频流和音频流的至少一个;以及至少一个资源文件,包括控制内容数据再现的再现控制程序和由再现控制程序使用的数据,存储装置,用于存储由读取装置读取的资源文件;以及播放器装置,根据再现控制程序再现内容数据,其中当在记录介质上记录多个资源文件时,读取装置选择并读取播放器装置根据资源文件的文件名从多个资源文件中首先使用的资源文件,从而从起点再现内容数据。
5.如权利要求4所述的再现装置,其中资源文件的文件名至少包括表示当再现内容数据时正常使用的语言的信息,以及表示资源文件的语言属性的信息,其中当播放器装置从起点再现内容数据时,读取装置确定是否存在根据资源文件的文件名其语言属性与记录介质上的设置语言相匹配的资源文件;其中当确定的结果表示存在其语言属性与记录介质上的设置语言相匹配的资源文件时,读取装置选择并读取资源文件;以及当确定的结果表示不存在其语言属性与记录介质上的设置语言相匹配的资源文件时,读取装置选择并读取其文件名包括表示正常使用于再现内容数据的语言的信息的资源文件。
6.如权利要求5所述的再现装置,其中资源文件的文件名进一步包括表示当根据资源文件控制内容数据的再现时所期望的显示纵横长度比的信息,以及其中当存在其语言属性与设置语言相匹配或其文件名包括表示正常使用于记录介质上的语言的信息的多个资源文件时,根据表示文件名中包括的显示纵横长度比的信息,读取装置从多个资源文件中选择并读取资源文件。
7.一种从记录介质中再现内容数据的再现方法,该记录介质上记录内容数据,包括视频流和音频流的至少一个;以及至少一个资源文件,包括使播放器装置控制内容数据再现的再现控制程序和由再现控制程序使用的数据,该再现方法包括以下步骤当在记录介质上记录多个资源文件时,选择并读取播放器装置根据资源文件的文件名从多个资源文件中首先使用的资源文件,从而从起点再现内容数据。
8.一种使计算机装置执行从记录介质中再现内容数据的再现方法的再现程序,该记录介质上记录内容数据,包括视频流和音频流的至少一个;以及至少一个资源文件,包括使播放器装置控制内容数据再现的再现控制程序和由再现控制程序使用的数据,该再现方法包括以下步骤当在记录介质上记录多个资源文件时,选择并读取播放器装置根据资源文件的文件名从多个资源文件中首先使用的资源文件,从而从起点再现内容数据。
9.一种计算机装置可读并且其上记录再现程序的记录介质,该再现程序使计算机装置执行从记录介质中再现内容数据的再现方法,该记录介质上记录内容数据,包括视频流和音频流的至少一个;以及至少一个资源文件,包括使播放器装置控制内容数据再现的再现控制程序和由再现控制程序使用的数据,该再现方法包括以下步骤当在记录介质上记录多个资源文件时,选择并读取播放器装置根据资源文件的文件名从多个资源文件中首先使用的资源文件,从而从起点再现内容数据。
10.一种从记录介质中再现内容数据的再现装置,该再现装置包括读取装置,从记录介质中读取数据,该记录介质上记录内容数据,包括视频流和音频流的至少一个;以及多个资源文件,包括控制内容数据再现的再现控制程序和由再现控制程序使用的数据,存储装置,用于存储由读取装置读取的资源文件;以及播放器装置,根据再现控制程序再现内容数据,并基于四种状态控制内容数据的再现,该四种状态定义为依据内容数据是否正在被再现而分类的两种状态以及依据与用户操作相应的控制命令是否被接受而分类的两种状态的组合;以及资源文件转换控制装置,当内容数据正在被再现时,根据再现控制程序的命令,控制多个资源文件中将一个资源文件转换为另一个资源文件,其中,在四种状态中,在控制命令不被接受的状态以及内容数据再现期间的暂停状态或者在内容数据不是正在被再现的状态,资源文件转换控制装置将一个资源文件转换为另一个资源文件。
11.如权利要求10所述的再现装置,其中再现控制程序根据事件驱动模型控制内容数据的再现。
12.一种从记录介质中再现内容数据的再现方法,该再现方法包括以下步骤从记录介质中读取数据,该记录介质上记录内容数据,包括视频流和音频流的至少一个;以及多个资源文件,包括控制播放器装置再现内容数据的再现控制程序和由再现控制程序使用的数据,控制播放器装置根据再现控制程序基于四种状态再现内容数据,该四种状态定义为依据内容数据是否正在被再现而分类的两种状态以及依据与用户操作相应的控制命令是否被接受而分类的两种状态的组合;以及当内容数据正在被再现时,根据再现控制程序的命令,控制多个资源文件中将一个资源文件转换为另一个资源文件,其中,在四种状态中,在控制命令不被接受的状态以及内容数据再现期间的暂停状态或者在内容数据不是正在被再现的状态,将一个资源文件转换为另一个资源文件。
13.一种使计算机装置执行从记录介质中再现内容数据的再现方法的再现程序,该再现方法包括以下步骤从记录介质中读取数据,该记录介质上记录内容数据,包括视频流和音频流的至少一个;以及多个资源文件,包括控制播放器装置再现内容数据的再现控制程序和由再现控制程序使用的数据,控制播放器装置根据再现控制程序基于四种状态再现内容数据,该四种状态定义为依据内容数据是否正在被再现而分类的两种状态以及依据与用户操作相应的控制命令是否被接受而分类的两种状态的组合;以及当内容数据正在被再现时,根据再现控制程序的命令,控制多个资源文件中将一个资源文件转换为另一个资源文件,其中,在四种状态中,在控制命令不被接受的状态以及内容数据再现期间的暂停状态或者在内容数据不是正在被再现的状态,将一个资源文件转换为另一个资源文件。
14.一种计算机装置可读并且其上记录再现程序的记录介质,该再现程序使计算机装置执行从记录介质中再现内容数据的再现方法,该再现方法包括以下步骤从记录介质中读取数据,该记录介质上记录内容数据,包括视频流和音频流的至少一个;以及多个资源文件,包括控制播放器装置再现内容数据的再现控制程序和由再现控制程序使用的数据,控制播放器装置根据再现控制程序基于四种状态再现内容数据,该四种状态定义为依据内容数据是否正在被再现而分类的两种状态以及依据与用户操作相应的控制命令是否被接受而分类的两种状态的组合;以及当内容数据正在被再现时,根据再现控制程序的命令,控制多个资源文件中将一个资源文件转换为另一个资源文件,其中,在四种状态中,在控制命令不被接受的状态以及内容数据再现期间的暂停状态或者在内容数据不是正在被再现的状态,将一个资源文件转换为另一个资源文件。
15.一种计算机装置可读的记录介质,该记录介质上记录内容数据,包括视频流和音频流的至少一个;以及多个资源文件,包括使播放器装置控制内容数据再现的再现控制程序和由再现控制程序使用的数据,该再现控制程序使得播放器装置通过再现控制命令基于四种状态控制内容数据的再现,该四种状态定义为依据内容数据是否正在被再现而分类的两种状态以及依据与用户操作相应的控制命令是否被接受而分类的两种状态的组合;以及播放器装置,在四种状态中,在控制命令不被接受的状态以及内容数据再现期间的暂停状态或者在内容数据不是正在被再现的状态,当内容数据正在被再现时,根据再现控制程序的命令,在多个资源文件中将一个资源文件转换为另一个资源文件。
16.如权利要求15所述的记录介质,其中再现控制程序使播放器装置根据事件驱动模型控制内容数据的再现。
17.一种具有数据结构的信号,该数据结构具有内容数据,包括视频流和音频流的至少一个;以及至少一个资源文件,包括控制内容数据再现的再现控制程序和由再现控制程序使用的数据,其中资源文件的文件名包括表示当再现内容数据时正常使用的语言的信息,以及表示资源文件的语言属性的信息。
18.一种从记录介质再现内容数据的再现装置,该再现装置包括读取部件,配置为从记录介质中读取数据,该记录介质上记录内容数据,包括视频流和音频流的至少一个;以及至少一个资源文件,包括控制内容数据再现的再现控制程序和由再现控制程序使用的数据,存储部件,配置为存储由读取部件读取的资源文件;以及播放器部件,配置为根据再现控制程序再现内容数据,其中,当在记录介质上记录多个资源文件时,读取部件选择并读取播放器部件根据资源文件的文件名从多个资源文件中首先使用的资源文件,从而从起点再现内容数据。
19.一种从记录介质再现内容数据的再现装置,该再现装置包括读取部件,配置为从记录介质中读取数据,该记录介质上记录内容数据,包括视频流和音频流的至少一个;以及多个资源文件,包括控制内容数据再现的再现控制程序和由再现控制程序使用的数据,存储部件,配置为存储由读取部件读取的资源文件;以及播放器部件,配置为根据再现控制程序再现内容数据,并基于四种状态控制内容数据的再现,该四种状态定义为依据内容数据是否正在被再现而分类的两种状态以及依据与用户操作相应的控制命令是否被接受而分类的两种状态的组合;以及资源文件转换控制部件,配置为当内容数据正在被再现时,根据再现控制程序的命令,控制多个资源文件中将一个资源文件转换为另一个资源文件,其中,在四种状态中,在控制命令不被接受的状态以及内容数据再现期间的暂停状态或者在内容数据不是正在被再现的状态,资源文件转换控制部件将一个资源文件转换为另一个资源文件。
全文摘要
本发明公开了一种记录介质。该记录介质可由计算机装置读取,其上记录内容数据,包括视频流和音频流的至少一个;以及至少一个资源文件,包括控制内容数据再现的再现控制程序和由再现控制程序使用的数据。资源文件的文件名包括表示当再现内容数据时正常使用的语言的信息,以及表示资源文件的语言属性的信息。
文档编号G11B20/12GK1822175SQ20051012167
公开日2006年8月23日 申请日期2005年12月2日 优先权日2004年12月2日
发明者浜田俊也, 藤波靖, 各务辰哉, 井原宏二, 内海秀介 申请人:索尼株式会社, 索尼计算机娱乐公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1