再现设备、再现方法、再现程序、记录介质和数据结构的制作方法

文档序号:6758962阅读:244来源:国知局
专利名称:再现设备、再现方法、再现程序、记录介质和数据结构的制作方法
技术领域
本发明涉及一种再现装置、再现方法、再现程序、记录介质和数据结构,其允许用户交互地操作记录在大容量记录介质上的节目,并且允许容易地限制预定的用户操作。
背景技术
作为可被随机存取和附加/分离的记录介质,自从DVD(数字多用途盘)出现以来已经过去了较长的时间。近年来,已开发与DVD相比具有更大存储容量并且更小和更方便的盘形记录介质。
在传统的只再现DVD视频标准中,利用出现在菜单屏幕上的按钮图像等,实现了交互功能。例如,当正在从DVD视频盘再现电影时,利用遥控器等来调用菜单屏幕。通过选择出现在菜单屏幕上的按钮图像,可以改变所再现的场面。
在DVD视频标准中,利用在该DVD视频标准中定义的固有命令来描述实现交互功能的控制程序。此外,将实现交互功能的控制程序分散地嵌入到多个文件、数据文件和AV流文件的多个位置上。在DVD视频标准中定义了执行所述控制程序的条件和顺序。
传统上,难以创建通用的内容创建系统。因此,使用根据预先写入的场景来创建故事的所谓的模板来创建内容。当创建具有复杂结构的内容时,由于不能根据预先写入的模板来创建该内容,因此内容创建系统是定制的。
当从DVD视频盘再现电影的主要部分时,用户可以自由地进行诸如章间跳转操作的再现控制操作(在下文中将这些操作称为用户的操作)。然而,在其再现控制较为复杂的内容中,例如,在故事在预定条件下分支的多故事内容中,或者在其场景根据用户的选择而前进的问答游戏内容中,出现需要限制用户的操作的情形。
例如,在多故事内容中,过去的再现历史可影响下一个故事。在这一情况下,可能有必要限制诸如章改变操作的用户操作,使得它们不改变预先指定的故事。
作为另一示例,可以为问答游戏指定时间限制,用户需要在该时间限制内回答问题。在这一情况下,需要限制用户的操作,使得禁止用户暂停再现。在问答游戏的情况下,禁止用户在没有回答问题的情况下跳转到内容的答案场面也是有必要的。
当存在用户和内容之间的交互时,有必要限制用户的操作,使得根据内容创建者的意愿来再现该内容。
此外,在再现内容的主要部分之前,向用户呈现预定的警告消息可能是有必要的。在这一情况下,有必要限制用户的操作,使得他或她不会跳过警告消息并且使其快进。
在传统的DVD视频标准中,如图1所示,提供允许或者不允许执行诸如再现、章跳转等的用户操作的标志。利用该标志,允许或者不允许用户的操作。日本专利公开公告说明书第2003-203433号描述了一种技术,其中,在PGCI(程序链信息)或PCI(呈现控制信息)中描述根据DVD视频标准的PGC(程序链)的单元中的禁止标志,所述禁止标志允许或不允许进行信息再现装置的预定操作。
然而,内容创建者一侧不能容易地使用指定用于用户可以使用的用户操作的标志的方法。
当内容创建者一侧不希望允许特定用户操作时,预计它将不允许关于该特定用户操作的其它用户操作。例如,当内容创建者一侧不希望允许用户操作“快进”时,预计内容创建者一侧将不希望允许用户操作“快退”。然而,在传统的DVD视频标准中,由于标志“快进”独立于标志“快退”,因此内容创建者一侧需要指定不同的用于这些用户操作的标志。
在传统的标志指定方法中,将存在允许和不允许用户操作的很多组合。因此,当利用标志来限制用户操作时,对某些用户操作的限制可能被遗漏或者可能变得不一致。
在出现对于用户的警告消息等的情景中,当不允许用户操作“快进”和“快退”而允许用户操作“章跳转”时,如果用户执行用户操作“章跳转”,则他或她能够跳过该警告消息。
另一方面,所认为的是将根据内容创建者意愿的对于用户操作的允许和不允许的组合限制为经常使用的若干组合。因此,指定对于每个用户操作的允许和不允许的方法具有过大的灵活性。结果,所认为的是对某些用户操作的限制可能被遗漏并且变得不一致,这是因为内容创建者一侧忘记指定它们。
此外,根据DVD视频标准,限制用户操作的标志存在于从靠近AV流的底层层级到靠近应用程序的上层层级的多个分层层级中。因此,当指定标志时,有必要考虑这些分层层级中的标志的组合。因此,难以指定用于用户操作的标志。
此外,内容创建者一侧必须检查是否根据内容创建者一侧的意愿而利用标志限制了用户操作。这增加了内容创建者一侧的负担。
此外,由于可以指定对于每个用户操作的允许或不允许,因此播放器制造商一侧需要检查播放器是否在所有组合中正确地操作。因此,这增加了播放器制造商一侧的负担。

发明内容
因此,本发明的目的是要提供一种再现装置、再现方法、再现程序、记录介质、以及数据结构,其允许容易地限制再现记录在大容量记录介质上的节目的用户操作。
本发明是一种从盘形记录介质再现内容数据的再现装置,包括读取部件,用于从记录介质读取数据,在所述记录介质上至少记录内容数据、再现指定信息、以及控制内容数据的再现的再现控制程序,所述再现指定信息指定内容数据的再现路径并且包含作为对内容数据的再现控制指定的属性信息的表示限制模式的值;播放器部件,用于根据再现控制程序再现内容数据;以及控制命令产生部件,用于对应于执行内容数据的再现控制指定的用户操作而产生对播放器部件的控制命令,其中,播放器部件从记录介质读取再现指定信息的表示限制模式的值,创建再现指定信息的表示限制模式的值的表,并且根据该表来控制对于执行由控制命令产生部件产生的控制命令的允许或不允许。
本发明是一种从盘形记录介质再现内容数据的再现方法,包括以下步骤从记录介质读取数据,在所述记录介质上至少记录内容数据、再现指定信息、以及控制内容数据的再现的再现控制程序,所述再现指定信息指定内容数据的再现路径并且包含作为对内容数据的再现控制指定的属性信息的表示限制模式的值;根据再现控制程序再现内容数据;以及对应于执行内容数据的再现控制指定的用户操作而产生对播放器步骤的控制命令,其中,通过从记录介质读取再现指定信息的表示限制模式的值,创建再现指定信息的表示限制模式的值的表,并且根据该表来控制对于执行在控制命令产生步骤产生的控制命令的允许或不允许,来执行播放器步骤。
本发明是一种使计算机设备执行从盘形记录介质再现内容数据的再现方法的再现程序,该再现方法包括以下步骤从记录介质读取数据,在所述记录介质上至少记录内容数据、再现指定信息、以及控制内容数据的再现的再现控制程序,所述再现指定信息指定内容数据的再现路径并且包含作为对内容数据的再现控制指定的属性信息的表示限制模式的值;根据再现控制程序再现内容数据;以及对应于执行内容数据的再现控制指定的用户操作而产生对播放器步骤的控制命令,其中,通过从记录介质读取再现指定信息的表示限制模式的值,创建再现指定信息的表示限制模式的值的表,并且根据该表来控制对于执行在控制命令产生步骤产生的控制命令的允许或不允许,来执行播放器步骤。
本发明是一种记录介质,在其上至少记录内容数据、再现指定信息、以及控制内容数据的再现的再现控制程序,所述再现指定信息指定内容数据的再现路径并且包含作为对内容数据的再现控制指定的属性信息的表示限制模式的值。
本发明是一种由内容数据和用于控制内容数据的再现的信息组成的数据结构,包括内容数据;再现指定信息,其指定内容数据的再现路径,并且包含作为对内容数据的再现控制指定的属性信息的表示限制模式的值;以及再现控制程序,其控制内容数据的再现。
如上所述,根据本发明,从记录介质读取数据,在所述记录介质上至少记录内容数据、再现指定信息、以及控制内容数据的再现的再现控制程序,所述再现指定信息指定内容数据的再现路径并且包含作为对内容数据的再现控制指定的属性信息的表示限制模式的值。再现设备根据再现控制程序来再现内容数据,创建再现指定信息的表示限制模式的值的表,并且根据该表来控制对于执行控制命令的允许或不允许。因此,当创建所述内容时,可以根据再现指定信息的单元中的限制模式而容易地指定对用户操作的限制。此外,再现装置一侧可以容易地检查是否根据限制模式限制了用户操作。
此外,根据本发明,在记录介质上记录至少内容数据、再现指定信息、以及控制内容数据的再现的再现控制程序,所述再现指定信息指定内容数据的再现路径,并且包含作为对内容数据的再现控制指定的属性信息的表示限制模式的值。因此,当创建所述内容时,可以根据限制模式而容易地进行根据对于从记录介质再现数据的再现装置的用户操作而进行的对内容数据的再现控制指定。此外,再现装置一侧可以根据限制模式而容易地检查对用户操作的限制。
此外,根据本发明,一种由内容数据和用于控制该内容数据的再现的信息组成的数据结构具有内容数据、再现指定信息、以及控制内容数据的再现的再现控制程序,所述再现指定信息指定内容数据的再现路径,并且包含作为对内容数据的再现控制指定的属性信息的表示限制模式的值。因此,当创建所述内容时,可以根据限制模式而容易地进行根据对于再现具有所述数据结构的数据的再现装置的用户操作而进行的对内容数据的再现控制指定。此外,再现装置一侧可以根据限制模式而容易地检查对用户操作的限制。
根据本发明,将对用户操作的限制的组合定义为模式。播放器一侧具有经常预先使用的多组用户操作。内容创建者一侧从那些模式中选择作为用户操作组合的模式来控制它们。
因此,仅仅通过从播放器一侧具有的模式中选择一个模式,内容创建者一侧可以限制用户操作。结果,内容创建者一侧可以更容易地控制用户操作。此外,创建并且检查它所创建的内容的内容创建者一侧的负担减小。


图1是描述根据传统的DVD视频标准的用户操作控制的示意图;图2是示出根据UMD视频标准的层的结构的示意图;图3是示出根据本发明实施例的播放器模型的示例的示意图;图4是示出电影播放器的内部结构的示例的示意图;图5是示出电影播放器的内部结构的示例的示意图;图6是示出根据本发明实施例的电影播放器的事件模型的示意图;图7是示出当正在再现播放列表时发生的事件示例的示意图;图8是示出电影播放器对象的性质示例的列表的示意图;图9是示出电影播放器对象的方法示例的列表的示意图;
图10是示出作为用户输入的键输入的示例的示意图;图11是示出作为用户输入的键输入的示例的示意图;图12A、图12B和图12C是示出根据键输入的控制命令示例的示意图;图13是示出根据键输入的事件示例的示意图;图14是示出事件句柄的示例的示意图;图15是示出事件句柄的示例的示意图;图16是示出根据用户输入事件执行预定程序的处理示例的流程图;图17是示出在将盘加载到UMD视频播放器中之后直到从中弹出该盘为止执行的处理的流程图;图18是示出脚本文件的结构示例的示意图;图19是示出执行事件句柄onAutoPlay()的过程示例的流程图;图20是示出执行事件句柄onContinuePlay()的过程示例的流程图;图21是示出当再现完成时执行的处理的示例的流程图;图22是描述脚本程序的示例的示意图;图23是示出脚本程序的示例的示意图;图24是描述根据UMD视频标准的文件管理结构的示意图;图25是示出文件“PLAYLIST.DAT”的整个结构的语法示例的示意图;图26是示出块PlayItem()的内部结构示例的示意图;图27是示出块PlayListMark()的内部结构示例的示意图;图28是描述块Mark()的字段mark_type的示意图;图29是描述剪辑AV流文件中的标记时间的指定的示意图;图30是示出表示剪辑AV流文件“XXXXX.CLP”的整个结构的语法示例的示意图;图31是描述块StreamInfo()和基本流的相关性的示意图;图32是示出块StaticInfo()的内部结构示例的示意图;图33是示出块DynamicInfo()的内部结构示例的示意图;图34是示出块EP_map()的内部结构示例的示意图;图35是示出根据本发明的盘再现装置的结构示例的框图;图36A和图36B是详细描述盘再现装置的操作的功能框图;图37是示出根据本发明实施例的文件“PLAYLIST.DAT”的语法示例的示意图;
图38是示出字段UOP_mask_mode的值的含义的示例的示意图;图39是示出电影播放器中的用户操作限制功能示例的功能框图;图40是示出创建命令过滤器表的过程示例的流程图;图41是示出根据用户操作屏蔽模式“1”的命令过滤器表的示例的示意图;图42是示出根据用户操作屏蔽模式“2”的命令过滤器表的示例的示意图;以及图43是示出利用命令过滤器表来限制用户操作的处理示例的流程图。
具体实施例方式
接下来,将按照以下顺序来描述本发明的实施例。
1.UMD视频标准2.根据UMD视频标准的播放器模型3.电影播放器的事件模型4.电影播放器对象5.脚本程序的示例6.文件管理结构7.盘再现装置8.用户操作的控制1.UMD视频标准为了容易理解本发明,将描述根据本发明实施例的系统。根据本发明的实施例,利用被称为ECMA脚本的脚本语言来描述播放器模型。ECMA脚本是基于JavaScript(注册商标)并且由欧洲计算机制造者联合会(ECMA)标准化的跨平台的脚本语言。ECMA脚本与HTML文档具有更高的兼容性。此外,由于ECMA脚本允许定义固有对象,因此可以适当地将ECMA脚本用于根据本发明的播放器模型。
在以下描述中,将使用基于ECMA脚本的脚本语言并且根据本发明实施例的标准称为UMD(通用介质盘注册商标)视频标准。将UMD视频标准的脚本部分称为UMD视频脚本标准。
接下来,将简要描述UMD视频标准。图2示出了UMD视频标准的层的结构。UMD视频标准定义了由脚本层、播放列表层、和剪辑层组成的三层结构。根据这一层结构来管理流。
根据UMD视频标准,将数字编码的视频数据、音频数据和字幕数据作为MPEG2流,其中已经根据MPEG2(运动图像专家组2)系统而将它们复用为基本流。将其中复用了视频数据、音频数据和字幕数据的基本流的MPEG2流称为剪辑AV流。将剪辑AV流存储在剪辑AV流文件中。当记录剪辑AV流文件时,根据剪辑AV文件而以1比1的关系创建剪辑信息文件。将剪辑信息文件和与其相对应的剪辑AV流文件二者称为剪辑。
剪辑是盘的记录单元。在比剪辑层高的播放列表层中管理剪辑的再现顺序。播放列表层是指定剪辑的再现路径的层。播放列表层包含一个或多个播放列表。播放列表由一组播放项目组成。播放项目包含表示剪辑的再现范围的一对IN(进入)点和OUT(退出)点。当放置播放项目时,可以以任何顺序来再现剪辑。播放项目可以冗余地指定剪辑。利用时间戳(剪辑内时间)来指定剪辑AV流的IN点和OUT点。根据剪辑信息文件的信息,将时间戳转换为剪辑AV流文件的字节位置。
播放列表具有以预定顺序再现表示全部或部分剪辑的播放项目的结构。仅仅利用播放列表,不能改变剪辑的再现顺序。此外,播放列表不向用户提供交互功能。根据本发明的实施例,将多个播放列表共同存储在一个文件“PLAYLIST.DAT”中。
脚本层是由UMD视频脚本组成的层,所述UMD视频脚本是作为语言规范的ECMA脚本的扩展。UMD视频脚本是基于UMD视频标准而扩展ECMA脚本以便实现特殊功能的脚本。
脚本层是播放列表层的上层。脚本层由指定播放列表的再现和设置播放器的命令序列组成。脚本层中的命令实现包括条件分支的播放列表再现,使得可以选择根据多个语言的流之一,或者可以根据在预定条件下选择的播放列表来再现流。使用包括条件分支的播放列表再现的应用的一个示例是多故事内容。脚本层向用户提供交互功能。
根据本发明的实施例,脚本层由一个文件“SCRIPT.DAT”组成。将文件“SCRIPT.DAT”作为源来管理。文件“SCRIPT.DAT”包含根据真实的ECMA脚本描述的脚本数据、用于按钮操作中的声音效果等的声音数据、菜单屏幕的由用于背景图像等的图像数据组成的屏幕设计、以及用于诸如按钮图像的GUI部分的图像数据(位图数据)。
2.根据UMD视频标准的播放器模型接下来,将描述根据UMD视频标准的再现数据的再现装置(播放器)的模型,即播放器模型。播放器从盘读取脚本程序、播放列表、以及剪辑信息文件。随后,播放器根据那些文件以再现顺序读取剪辑AV流文件,并且再现视频数据、音频数据、字幕数据等。
在脚本程序的语言规范中,作为脚本程序中的对象来实现再现播放列表的功能块。根据UMD视频标准,将再现播放列表的对象称为电影播放器对象。指定播放列表的再现和设置播放器的命令是电影播放器对象的方法。电影播放器对象由脚本层的方法控制。在这一点上,电影播放器对象需要向脚本层通知状态改变、再现位置等的功能。这一功能与电影播放器对象向脚本程序发送事件的操作相对应。与事件相对应的处理被描述为事件句柄。
当形成电影播放器对象将信息作为事件传递到脚本程序并且该脚本程序利用方法来控制电影播放器对象的模型时,脚本程序可以控制剪辑AV流的再现。
图3示意性地示出了根据本发明实施例的播放器模型的示例。电影播放器300是根据UMD视频标准再现视频数据、音频数据和字幕数据的模块。电影播放器对象是脚本程序中的对象,使得该脚本程序操作电影对象。换言之,电影播放器对象是实现电影播放器的功能的脚本程序。
由于认为电影播放器300和电影播放器对象基本相同,因此在以下描述中,利用相同的参考标号来表示它们。
在图3中,电影播放器300根据播放列表或剪辑信息的数据库,利用作为用户输入310等的底层(图3所示的示例中的本地实现平台(nativeimplementation platform)301)的方法或作为上层的脚本层302的方法,来读取剪辑AV流文件,并且解码和显示该剪辑AV流。
电影播放器对象300的内部取决于从UMD视频盘再现数据的UMD视频播放器的实现。脚本层302提供API(应用编程接口),所述API是作为黑盒对象的方法和性质。在此情况下,UMD视频播放器表示实现电影播放器的真实设备。所有UMD视频播放器实现根据UMD视频标准的电影播放器,并且与其它UMD视频播放器具有再现兼容性。
如图3所示,电影播放器300具有3个输入/输出路径,它们是借以从本地实现平台301接收控制命令311的路径、借以向脚本层302通知事件312的路径、以及借以从脚本层302接收方法313的路径。
控制命令311是从本地实现平台301接收并且控制电影播放器对象300的操作的命令。本地实现平台301是作为真实设备的UMD视频播放器的固有部分与电影播放器300之间的接口。事件312是从电影播放器300发送到脚本层302的脚本事件。方法313是脚本层302的脚本程序向电影播放器300指定的方法。
电影播放器对象300具有根据UMD视频标准的播放列表和剪辑信息的数据库320。电影播放器对象300屏蔽用户输入310。此外,电影播放器对象300执行例如利用数据库320将通过时间指定的再现位置转换为剪辑AV流的字节位置的处理。
电影播放器对象300的重放模块321将剪辑AV流解码,所述剪辑AV流是其中复用了视频数据、音频数据和字幕数据的MPEG2 PS(节目流)。重放模块321具有三个状态,它们是播放、停止和暂停。重放模块321利用控制命令和方法而在这些状态之中改变(参见图4)。
脚本层302是执行根据UMD视频脚本标准的脚本程序、控制电影播放器对象300、并且在显示器上显示数据的层。脚本层302实现内容创建者一侧想要的场景。脚本层302将方法313发送给电影播放器对象300。脚本层302从电影播放器对象300接收事件312。脚本层302与本地实现平台301交换根据用户输入310的键事件314以及使本地实现平台301在显示器上显示数据的方法315。
例如,本地实现平台301根据从脚本层302的脚本程序提供给本地实现平台301的方法315来产生菜单屏幕上的按钮。当用户对按钮之一执行诸如选择或决定的操作时,将根据用户输入310的键事件314从本地实现平台301发送到脚本层302。脚本层302的脚本程序利用根据用户输入310的键事件314执行处理。
因此,电影播放器300对视频数据、音频数据和字幕数据执行解码和显示控制。另一方面,脚本层302执行对诸如按钮的组成图形用户界面的部件(part)图像(在下文中,将这些部件图像称为GUI部件)的排列和显示处理、以及针对GUI部件的选择和决定操作的处理。
本地实现平台301是用于电影播放器对象300和脚本程序的操作的平台。当真实的UMD视频播放器是硬件时,作为硬件来实现本地实现平台301,使得本地实现平台301协调硬件和播放器模型之间的处理。
本地实现平台301从用户接收用户输入310,并且确定所接收的用户输入310是对电影播放器300的命令还是对在脚本层302中产生和显示的按钮的命令。当所确定的结果表示用户输入310是对电影播放器300的命令时,本地实现平台301将用户输入310转换为作为对电影播放器300的内部控制命令的控制命令311,并且将该控制命令发送给电影播放器300。
当所确定的结果表示用户输入301是对在脚本层302中产生和显示的GUI部件的命令时,本地实现平台301向脚本层302通知根据用户输入310的键事件314。例如,本地实现平台301可以按照脚本层302根据键事件314指定的方法315而在显示器上显示例如按钮图像。换言之,本地实现平台301和脚本层302可以不通过电影播放器300而直接交换事件和方法。
接下来,将详细描述电影播放器300。图4示出了电影播放器300的内部结构的示例。如上所述,电影播放器300由数据库320和重放模块321组成。数据库320是存储从盘读取的播放列表的信息以及剪辑的信息(即,剪辑信息)的区域。
重放模块321由解码器引擎322和性质323组成。性质323是表示重放模块321的状态的值。性质323具有性质323A(只读参数)和性质323B(播放器状态)两种类型,性质323A的值取决于诸如语言代码的电影播放器300的初始设置,性质323B的值取决于重放模块321的状态。
利用诸如真实设备的本地设备来设置其值取决于所述初始设置的性质323A的值。因此,性质323A的值不会被播放列表、剪辑信息和脚本程序改变。可以从脚本程序读取性质323A的值。相比之下,可以从脚本程序读取表示重放模块321的状态的性质323B的值。此外,可以从某些脚本程序写入性质323B的值。
在这一操作模型中,假设在再现剪辑AV流之前从盘预先加载播放列表和剪辑信息。作为替代,可以在另一实现方式中实现电影播放器模型的操作。
电影播放器对象300再现由脚本层302或本地实现平台301指定的播放列表。例如,电影播放器300查询数据库320,并且根据所指定的播放列表而获得作为文件的字节位置的剪辑AV流的再现位置。在重放模块321中,解码器引擎322根据再现位置的信息而控制剪辑AV流的解码。
如图5所示,电影播放器300根据播放列表的再现状态而具有播放、停止和暂停3个状态。播放状态表示正在再现播放列表并且时间已经过去。播放状态包括常规再现、诸如双倍速再现和1/2倍速再现的可变速度再现、快进、和快退。暂停状态表示正在再现播放列表,并且时间轴停止。正向或反向再现帧的所谓的帧再现是重复暂停状态和播放状态的状态。停止状态表示没有再现播放列表。
电影播放器300的状态取决于电影播放器300的解码器引擎322在播放、暂停和停止之中的状态改变。性质323B的值根据解码器引擎322的状态改变而被更新。
恢复信息324存储紧接在停止状态出现之前而存在的状态。在电影播放器300将播放列表解码之后,当电影播放器300处于播放状态下时,如果电影播放器300的状态改变为停止状态,则恢复信息324存储紧接在停止状态出现之前而存在的状态。此外,可以将用于盘的每个标题(title)的恢复信息324存储在作为硬件的播放器的非易失性存储器中。盘具有用于盘的每个标题的唯一的标识信息(被称为标题ID)。恢复信息324和该标识信息被相关联地存储。因此,当具有根据标识信息的标题的盘的状态从停止状态改变为播放状态时,可以从停止状态出现的位置起再现数据。
3.电影播放器的事件模型接下来,将描述电影播放器300的事件模型。在播放状态下,电影播放器300再现播放列表并且产生各种事件。所述事件执行被描述为脚本并且被称为事件句柄的处理程序。事件句柄是在事件发生时调用的方法。当事件发生时开始执行处理程序的程序执行模型被称为事件驱动模型。在事件驱动模型中,发生非常规的事件。当该事件发生时,执行预定程序。根据本发明的实施例,脚本程序利用事件句柄组来控制电影播放器对象300的操作。
图6示意性地示出了根据本发明实施例的电影播放器300的事件模型。在图6中,事件句柄onEventA()、onEventB()和onEventC()是接口。事件句柄的内容被表述为脚本。事件句柄的内容由例如内容创建者一侧创建和实现。在UMD视频脚本标准中,为电影播放器对象300向脚本程序通知的每个事件提供事件句柄。在图6所示的示例中,确定当事件A发生时执行的处理程序是事件句柄onEventA()。这适用于事件B和事件C。因此,当事件B发生时,执行对应的事件句柄onEventB()。当事件C发生时,执行对应的事件句柄onEventC()。
由于系统一侧选择当事件发生时调用的事件句柄,因此内容创建者一侧不需要在脚本程序中描述确定发生什么事件的处理。
图7示出了当正在再现播放列表时发生的事件示例。由于在播放列表PlayList的开头描述了章标记ChapterMark,因此当从开头起再现播放列表时,发生与该章标记相对应的事件Chapter。无论该章何时改变为另一章,都向脚本层302通知事件Chapter,并且执行对应的事件句柄onChapter。当用于事件标记EventMark的再现时刻过去时,发生对应的标记事件。在播放列表的末尾,电影播放器300暂停播放列表的再现,并且向脚本层302通知事件PlayListEnd。脚本层302一侧在对应的事件句柄onPlayListEnd()中使电影播放器300开始再现另一播放列表。以这样的方式,电影播放器300按照内容创建者一侧所希望的顺序再现播放列表序列。
以这样的方式,当播放器正在操作时,发生各种事件。当向上层程序通知事件的发生时,上层程序可以掌握播放器的状态。当上层程序提供根据它所被通知的事件而执行的程序(事件句柄)时,它可以处理各种程事件。稍后将描述事件和事件句柄。
当内容创建者一侧尚未描述事件句柄时,上层程序执行内置于播放器中并且在所述标准中定义的操作(默认事件句柄)或者忽略该事件。当不需要处理时,如果没有描述根据该事件的事件句柄,则可以主动忽略该事件。
作为事件模型,可以有事件收听者模型、单一方法模型等。在事件收听者模型中,对象向播放器对象登记根据预定事件的收听者。当在播放器对象中发生的事件是已经登记的事件时,播放器对象将该事件传送给已经登记了该事件的对象。该对象执行对应的方法。在单一方法模型中,无论发生什么事件都调用一个方法。
根据本发明实施例的事件模型比需要诸如事件登记处理和事件删除处理的处理的事件收听者模型更简单。单一方法模型需要知道发生了什么事件并且在方法中描述根据发生的每个事件而改变处理例程的预处理。由于所述方法是由内容创建者一侧执行的,因此即使该模型较为简单,内容创建者一侧的负担也会增大。此外,无论事件何时发生,由于调用一个大的处理程序(方法),因此将使用大存储区域,并且执行速度将变慢。因而,由于根据本发明实施例的模型提供根据各个事件的处理程序(事件句柄),因此该模型在这些点上优于其它模型。
4.电影播放器模型接下来,将描述电影播放器对象300的外部规范。通常,根据ECMA脚本语言规范定义的对象具有性质和方法。像此对象一样,如图3和图4所示,根据本发明实施例的电影播放器对象300具有属性和方法。当外部对象指定对象名称和属性名称时,该对象可以直接读取和写入性质。作为替代,当定义设置性质值的方法setXXX()(其中“XXX”表示性质名称)和读取性质值的方法getXXX()时,所述方法可以读取和写入其它对象的性质。
图8示出了电影播放器对象300具有的性质示例的列表。这些性质对应于图4所示的性质323。属于图4所示的只读参数323A的性质如下。性质scriptVersion表示UMD视频脚本的版本。性质languageCode表示被设置到UMD视频播放器的菜单显示语言的语言代码。性质audioLanguageCode表示被设置到UMD视频播放器的音频语言的语言代码。性质subtitleLanguageCode表示被设置到UMD视频播放器的字幕语言的语言代码。
当将盘加载到电影播放器300中时,根据在只读参数323A中设置的性质languageCode所表示的语言代码来决定从盘读取的脚本文件。当加载到电影播放器300中的盘不具有符合该语言的脚本文件时,从盘读取默认脚本文件。例如,作为默认脚本文件而读取记录在多个脚本文件的开头的文件。
属于图4所示的播放器状态323B的性质如下。性质playListNumber表示当前正被再现的播放列表的播放列表号。性质chapterNumber表示当前正被再现的章的章号。性质videoNumber表示当前正被再现的视频流的视频流号。性质audioNumber表示当前正被再现的音频流的音频流号。性质subtitleNumber表示当前正被再现的字幕流的字幕流号。性质playListTime表示当播放列表的开头为0时的播放列表的时刻。性质audioFlag指定音频再现的开/关和双单声道LR。性质subtitleFlag表示字幕指示的开/关。
双单声道是作为单声道音频声道而独立地使用立体声音频的左和右(L,R)声道的模式。
当电影播放器300处于播放状态或暂停状态下时,属于播放器状态323B的每个性质表示这些信息。当电影播放器300改变为停止状态时,属于播放器状态323B的每个性质被备份为恢复信息324。此时,可以清除播放器状态323B的内容。
图9示出了电影播放器对象300所具有的方法示例的列表。该方法对应于图3所示的方法313。方法play()再现视频数据。方法playChapter()指定章并且再现所指定的章的视频数据。方法stop()停止再现视频数据。方法pause()暂停视频数据的再现。方法playStep()逐步地再现视频数据。方法changeStream()改变视频流、音频流、和/或字幕流。方法getPlayerStatus()获得电影播放器300的播放状态、停止状态、暂停状态等。方法reset()停止视频数据的再现并且清除恢复信息324的内容。
根据UMD视频标准,可以在显示屏的一部分上显示视频数据。以下四个方法是在显示屏的一部分上显示视频数据的方法。方法setPos()设置视频数据的显示位置。方法getPos()获得视频数据的显示位置。方法setSize()设置视频数据的显示尺寸。方法getSize()获得视频数据的显示尺寸。
实际上,电影播放器300和本地实现平台301被集成在一起。换言之,电影播放器300 UMD和本地实现平台301作为硬件、加载盘并从该盘再现视频数据的UMD播放器、以及控制该UMD播放器的软件而相关联。哪一部分是硬件以及哪一部分是软件取决于所实现的结构。例如,当UMD播放器是个人计算机等时,除了盘驱动器以外的其它部分由软件组成。当使用单独的UMD播放器时,除了盘驱动器以外,例如视频解码器、音频解码器等可以由硬件组成。因此,在电影播放器300和本地实现平台301之间交换的方法、命令和事件不限于在图3中明确示出的那些。
另一方面,对于用户的键输入,如图3所示,首先由本地实现平台301接收用户输入310。换言之,本地实现平台301接收作为用户输入310的用户的键输入。本地实现平台301确定用户输入310是对电影播放器300的命令还是对脚本层302的脚本程序的事件。根据确定结果,本地实现平台301产生控制命令311或键事件314,并且向对应的上层(电影播放器300或脚本层302)通知所产生的控制命令311或键事件314。
图10和图11示出了用户输入310的键输入的示例。在图10和图11中,具有前缀“VK”的键是抽象的虚拟键,其不依赖于实现方式。图10示出了关于电影播放器300的操作的键输入的示例。键VK_POWER提供与电源键相对应的功能。键VK_POWER_ON提供与电源接通键相对应的功能。键VK_POWER_OFF提供与电源切断键相对应的功能。键VK_MENU提供与显示菜单的菜单键相对应的功能。键VK_ENTER提供与结束命令或数据输入的回车键相对应的功能。键VK_RETURN提供使所述处理返回一步的功能。
键VK_PLAY提供与开始再现操作的播放键相对应的功能。键VK_STOP提供与停止再现操作的停止键相对应的功能。键VK_PAUSE提供与暂停再现操作的暂停键相对应的功能。键VK_ FAST_FORWARD提供与执行快进再现操作的快进键相对应的功能。键VK_FAST_REVERSE提供与执行快退再现操作的快退键相对应的功能。键VK_SLOW_FORWARD提供与执行正向慢速再现操作的慢速(正向)键相对应的功能。键VK_SLOW_REVERSE提供了与执行反向慢速再现操作的慢速(反向)键相对应的功能。键VK_STEP_FORWARD提供与执行正向步进再现操作的步进(正向)键相对应的功能。键VK_STEP_REVERSE提供与执行反向步进再现操作的帧(反向)键相对应的功能。
图11示出了关于菜单操作的键输入。键VK_NEXT提供与输入表示“下一个”的值的下一个指定键相对应的功能。键VK_PREVIOUS提供与输入表示“前一个”的值的前一个指定键相对应的功能。利用键VK_NEXT和键VK_PREVIOUS,用户可以分别指定例如向下一章和前一章的移动。
键VK_UP提供与输入表示“上”的值的上方向指定键相对应的功能。键VK_DOWN提供与输入表示“下”的值的下方向指定键相对应的功能。键VK_RIGHT提供与输入表示“右”的值的右方向指定键相对应的功能。键VK_LEFT提供与输入表示“左”的值的左方向指定键相对应的功能。键VK_UP_RIGHT提供与输入表示“右上”的值的右上方向指定键相对应的功能。键VK_UP_LEFT提供与输入表示“左上”的值的左上方向指定键相对应的功能。键VK_DOWN_RIGHT提供了与输入表示“右下”的值的右下方向指定键相对应的功能。键VK_DOWN_LEFT提供与输入表示“左下”的值的左下方向指定键相对应的功能。利用这些方向键,用户可以指定例如光标在显示器上的移动。
键VK_ANGLE提供与指定对于多角度视频数据的角度改变操作的角度改变键相对应的功能。键VK_SUBTITLE提供与指定英语字幕、日语字幕、以及字幕开/关的字幕改变键相对应的功能。键VK_AUDIO提供与指定诸如环绕模式或双语模式的音频模式的音频改变键相对应的功能。键VK_VIDEO_ASPECT提供与改变视频数据的高宽比的外观改变键相对应的功能。键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相对应的功能。
由于图10所示的键输入的功能在其作用上与图11所示的键输入的功能不同,因此本地实现平台301需要选择被通知键输入的目标。如上所述,图10示出的键输入指定视频数据、音频数据和字幕数据的再现操作。当本地实现平台301接收到作为用户输入310的图10所示的键输入之一时,本地实现平台301将所接收的键输入转换为图12A、图12B和图12C示出的命令,并且向电影播放器300通知转换后的命令。
另一方面,由于图11所示的键输入是向GUI的用户输入310,因此需要向构造屏幕并且产生按钮的脚本层302通知这些输入。当本地实现平台301接收到作为用户输入310的图11所示的键输入之一时,本地实现平台301将该键输入转换为图3所示的事件314,并且向脚本层302通知事件314。图13示出了根据键输入的键事件314的示例。
图10和图11还示出了关于流改变操作的键输入,例如键VK_ANGLE、键VK_SUBTITLE和键VK_AUDIO。这些键输入是实现与脚本程序对电影播放器300执行的流改变方法相同的功能的键输入。
接下来,将详细描述图12A、图12B和图12C所示的命令。命令uo_timeSearch(playListTime)指定正从指定时刻起再现的播放列表的再现。自变量playListTime表示当播放列表的开头为0时的播放列表的时刻。由于这一命令不指定播放列表号,因此自变量playListTime所表示的时刻是在正在再现的播放列表的范围内的指定时刻。命令uo_play()指定以诸如常规再现速度的预定再现速度进行的再现的开始。根据恢复信息324来决定播放列表的开始位置。当不存在与恢复信息324相对应的信息时,用户的操作无效。在不指定播放列表号的情况下,这一命令对应于方法play()的执行。利用这一命令,用户不能指定播放列表号。
命令uo_playChapter(chapterNumber)从由自变量chapterNumber指定的章起开始再现正被再现的播放列表。在不指定章号的情况下,这一命令从正被再现的章的开头起开始再现播放列表。在不指定章号的情况下,这一命令对应于方法playChapter()。命令uo_playPrevChapter()从紧接在前面的章起开始再现播放列表。命令uo_playNextChapter()从紧接在下面的章起开始再现播放列表。命令uo_stop()停止再现播放列表。
命令uo_jumpToEnd()跳转到播放列表的末尾。这一命令对应于使电影播放器300停止再现并且产生事件playListEnd的用户操作。根据这一命令,脚本层302执行事件句柄onPlayListEnd。命令uo_forwardScan(speed)以由自变量speed指定的再现速度来正向再现播放列表。命令uo_backwardScan(speed)以由自变量speed指定的再现速度来反向再现播放列表。这些命令uo_forwardScan(speed)和uo_backwardScan(speed)的自变量speed取决于UMD播放器的实现方式。
命令uo_playStep(forward)逐步地正向再现播放列表。命令uo_playStep(backward)逐步地反向再现播放列表。命令uo_pauseOn()根据用户的操作而暂停播放列表的再现。命令uo_pauseOff()根据用户的操作而取消播放列表的再现的暂停状态。
命令uo_changeAudioChannel(value)改变音频数据的信道或双单声道再现的一个声道。当执行这一命令时,需要相应地改变标志audioFlag的值。命令uo_setAudioEnabled(Boolean)打开/关闭音频流。当执行这一命令时,需要相应地改变标志audioFlag的值。命令uo_setSubtitleEnabled(Boolean)打开/关闭字幕流。当执行这一命令时,需要相应地改变标志subtitleFlag的值。命令uo_angleChange()改变显示角度。当向电影播放器300通知了对于此命令的用户操作时,电影播放器300向脚本层302通知事件angleChange。命令uo_audioChange(audioStreamNumber)改变要再现的音频流。命令uo_subtitleChange(subtitleStreamNumber)改变要再现的字幕流。
接下来,将详细描述图13所示的事件和电影播放器300的方法之间的关系。事件menu跳转到菜单。本地实现平台301向脚本层302而不是电影播放器300通知这一事件。当脚本层302接收到事件menu时,脚本层302执行事件句柄onMenu。事件exit是本地实现平台301在其完成UMD视频应用时发送的事件。当脚本层302接收到事件exit时,脚本层302执行事件句柄onExit。
事件up、事件down、事件left、事件right、事件focusIn、事件focusOut、事件push、以及事件cancel是在使屏幕上作为GUI部件的按钮图像聚焦时发生的事件。本地实现平台301向脚本层302而不是电影播放器300通知这些事件。当使按钮图像聚焦时,例如显示在屏幕上的光标表示该按钮图像的坐标,使得可以选择该按钮图像。当使上按钮图像、下按钮图像、左按钮图像和右按钮图像聚焦时,分别发生事件up、事件down、事件left和事件right。当使任何按钮图像聚焦时,发生事件focusIn。当使任何聚焦的按钮图像散焦时,发生事件focusOut。当对任何聚焦的按钮图像执行按压操作时发生事件push。当针对对于任何按钮图像的按压操作执行取消操作时,发生事件cancel。
事件autoPlay和事件continuePlay是使脚本层302开始执行脚本的事件。事件autoPlay是使脚本在盘被加载时自动开始执行的事件。事件continuePlay在盘被加载时根据例如恢复信息324而使脚本从停止该脚本的位置起恢复执行。
存在当图13所示的事件发生时执行的程序。这些与所述事件相对应的程序被称为事件句柄。可以使用例如名称来关联事件和事件句柄。例如,通过将前缀“on”加到事件名称上来创建事件句柄名称。图14和图15示出了事件句柄的示例。当内容创建者描述事件句柄的内容时,UMD视频播放器可以执行内容创建者所希望的各种操作。
图14示出了电影播放器300所具有的事件以及对应的事件句柄的示例。图14所示的事件对应于图3所示的事件312。电影播放器300向脚本层302通知图14所示的事件。事件句柄是各种接口。内容创建者使用脚本语言来实现事件句柄的内容。由于事件句柄具有这样的结构,因此当事件发生时,可以实现内容创建者希望的操作。
当检测到事件标记时,执行事件mark和事件句柄onMark()。事件标记被嵌入在例如播放列表中。当电影播放器300再现播放列表时,电影播放器300从该播放列表检测播放列表。当电影播放器300检测到事件标记时,电影播放器300向脚本层302通知事件mark。脚本层302执行与事件mark相对应的事件句柄onMark()。同样,当播放列表的再现完成时,执行事件playListEnd和事件句柄onPlayListEnd()。当检测到章标记时执行事件chapter和事件句柄onChapter()。章标记被嵌入在例如播放列表中,并且电影播放器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()。
图15示出了系统对象所具有的事件句柄的示例。图15所示的事件句柄是本地实现平台301事先具有的事件句柄。本地实现平台301向脚本层302通知这些事件句柄。
事件menu和事件句柄onMenu()跳转到菜单。事件menu是当通过用户操作按压菜单键时本地实现平台301向脚本层302通知的事件。脚本层302接收该事件,执行对应的事件句柄onMenu(),并且利用事件句柄onMenu()排列和显示组成菜单屏幕的GUI部件。事件exit和事件句柄onExit()是本地实现平台301在它完成UMD视频应用时产生的事件和对应的事件句柄。
当用户操作等指定UMD视频播放器的操作的完成时,本地实现平台301向脚本层302通知事件exit。当脚本层302接收到事件exit时,脚本利用事件句柄onExit()执行退出处理。事件autoPlay、事件句柄onAutoPlay()、事件continuePlay、以及事件句柄onContinuePlay()开始执行对应的脚本。
除了用于系统对象的事件句柄以外,还有用于按钮的事件句柄。然而,用于按钮的事件句柄与本发明关系不大,将省略对它们的描述。
接下来,将参照图16所示的流程图来简要地描述当用户输入事件发生时执行所提供的程序的处理的示例。图16示出了这样的示例,其中,在UMD视频播放器正常地从盘再现数据的时候,当用户按压“下一个”键以使UMD视频播放器再现下一章时,UMD视频播放器根据该键输入而跳转到下一章,开始再现该下一章,并且在屏幕上显示所准备的消息。
在UMD视频播放器正常地从盘再现数据的同时,当用户按压UMD视频播放器的遥控器上的键“下一个”(在步骤S10)时,将键VK_NEXT作为用户输入310提供给本地实现平台301。本地实现平台301产生与用户输入310相对应的用户命令uo_playNextChapter()(在步骤S11)。本地实现平台301向电影播放器300通知用户命令uo_playNextChapter()。
当电影播放器300接收到命令uo_playNextChapter()时,电影播放器300基于与播放列表信息相对应的当前再现位置而在数据库320中搜索下一章表标记的位置(在步骤S12)。在步骤S13,确定下一章标记是否存在。当所确定的结果表示下一章标记不存在时,电影播放器300不执行章跳转操作,而是继续当前的再现操作。
相反,当步骤S13处的所确定的结果表示下一章标记存在时,该流程前进到步骤S14。在步骤S14,电影播放器300停止当前的再现操作,并且从数据库320的剪辑信息文件的特征点信息获得剪辑AV流文件中的下一章标记的字节位置。在步骤S15,电影播放器300访问所获得的文件的字节位置,并且从该位置起开始再现所述流。
在步骤S16之后,执行在屏幕上显示消息的处理,所述消息向用户通知所述章已被改变。当所述章被改变并且从所述章的开头开始再现时,事件chapter发生(在步骤S16)。例如,电影播放器300在章的开头检测到章标记,事件chapter发生。电影播放器300向脚本层302通知事件chapter。除了该事件以外,电影播放器300还向脚本层302通知要跳转的章的章号。脚本层302开始执行对应于所通知的事件的事件句柄,例如事件句柄onChapter()(在步骤S17)。
在此示例中,假设在事件句柄中描述了在屏幕上显示表示所述章已被改变的消息的操作。脚本层302的脚本执行该事件句柄,获得当该事件发生时电影播放器300向脚本层302通知的章号(在步骤S18),并且使本地实现平台301在屏幕上显示预定消息,所述预定消息表示例如所获得的章号的开始。根据该命令,本地实现平台301在屏幕上显示所述消息(在步骤S19)并且完成该事件句柄的处理(在步骤S20)。
在前述处理中,当用户操作使电影播放器300开始再现下一章的键“下一个”时,电影播放器300执行章跳转操作,并且当电影播放器300开始再现要跳转的下一章时,在屏幕上显示表示章的开始的消息。
因此,用户输入事件使得电影播放器300的状态改变。此外,用户输入事件使得新事件发生。利用新事件,电影播放器300可以执行各种处理。
图1 7示出了在将盘加载到UMD视频播放器之后直到从中弹出盘为止的处理。在图7中,带阴影线的步骤表示其中正在执行脚本的状态。
当用户将盘置于UMD视频播放器的预定位置上时,它根据预定操作加载该盘,使得UMD视频播放器可以从该盘再现视频数据(在步骤S30)。当盘被加载时,本地实现平台301查询恢复消息324,并且从恢复消息324加载与该盘相对应的继续再现信息(在步骤S31)。
随后,查询与该盘相对应的恢复信息324。确定继续再现信息是否存在(在步骤S32)。当继续再现信息存在时,本地实现平台301向脚本层通知事件continuePlay。脚本层302执行与所通知的事件continuePlay相对应的事件句柄onContinuePlay(在步骤S33)。当步骤S32处的所确定的结果表示与该盘相对应的继续再现信息不存在时,该流程前进到步骤S34。在步骤S34,本地实现平台301向脚本层302通知事件autoPlay。脚本层302执行与事件autoPlay相对应的事件句柄onAutoPlay。
在步骤S35,根据事件句柄onAutoPlay和事件句柄onContinuePlay的内容来执行对盘的再现操作和其它操作。执行对应于对盘的再现操作而发生的事件和与该事件相对应的事件句柄。
当本地实现平台301产生事件exit时,该流程前进到步骤S36。在步骤S36,脚本层302执行对应于事件exit的事件句柄onExit。事件句柄onExit执行完成UMD视频应用的处理。本地实现平台301根据例如作为在例如遥控器上的预定操作的用户输入310而产生事件exit。
当根据事件句柄onExit的脚本处理完成时,本地实现平台301操作。在步骤S37,电影播放器300执行停止再现操作的处理。此时,将紧接在电影播放器300停止再现操作之前而存在的状态作为继续再现信息存储在恢复信息324中。对盘的再现操作完成(在步骤S38)。当不执行对同一张盘的再现操作(在步骤S39)时,该流程前进到步骤S40。在步骤S40,本地实现平台301将盘弹出,并且完成该处理的步骤序列。当执行对同一张盘的再现操作时,该流程前进到步骤S31。
图18示出了脚本文件的结构示例。如图2所示,脚本文件是组成脚本层302的文件“SCRIPT.DAT”。脚本文件由事件句柄组和主处理部分组成。事件句柄组由一个或多个事件句柄组成。无论何时向脚本层302通知了事件的发生,都检索和执行对应于所通知的事件的事件句柄。主处理部分描述在事件句柄中使用的全局变量的定义。主处理部分在最初执行一次。
图19示出了执行事件句柄onAutoPlay()的过程示例。当用户将盘加载到UMD视频播放器300中并且使其从开头起执行对盘的再现操作(在步骤S50)时,电影播放器300执行这一过程。在步骤S51,本地实现平台301确定脚本是否包含事件句柄onAutoPlay()。当脚本包含事件句柄onAutoPlay()时,本地实现平台301向脚本层302通知事件autoPlay(在步骤S52)。在步骤S54,脚本层302执行事件句柄onAutoPlay()。因此,电影播放器300自动地开始从所加载的盘再现数据。
相反,当步骤S51处的所确定的结果表示脚本不包含事件句柄onAutoPlay()时,该流程前进到步骤S53。本地实现平台301向脚本层302通知事件exit。在此情况下,当用户操作在本地实现平台301中实现的菜单屏幕上的用于再现操作的菜单键时,电影播放器300开始从盘再现数据。当脚本层302具有事件句柄onExit()时,脚本层302执行事件句柄onExit()。
图20示出了执行事件句柄onContinuePlay()的过程示例。当用户将盘加载到UMD视频播放器中并且使电影播放器300执行继续再现操作(在步骤S60)时,电影播放器300执行这一过程。在步骤S61,本地实现平台301确定与所加载的盘相对应的恢复信息324是否存在。当恢复信息324不存在时,该流程前进到步骤S62。在步骤S62,电影播放器300从开头起执行对盘的再现操作。
当与所加载的盘相对应的恢复信息324存在时,该流程前进到步骤S63。在步骤S63,本地实现平台301确定脚本是否包含事件句柄onContinuePlay()。当脚本包含事件句柄onContinuePlay()时,本地实现平台301向脚本层302通知事件句柄onContinuePlay()。相应地,脚本层302执行事件句柄onContinuePlay()(在步骤S64)。因此,电影播放器300根据事件句柄onContinuePlay()恢复对所加载的盘的再现。
相反,当步骤S63处的所确定的结果表示脚本不包含事件句柄onContinuePlay()时,该流程前进到步骤S65。在步骤S65,本地实现平台301执行默认事件句柄onContinuePlay()。默认事件句柄onContinuePlay()根据例如恢复信息324而简单地从上一次的再现结束位置开始再现操作。
事件句柄onAutoPlay和事件句柄onContinuePlay的用户接口不限于那些示例。作为替代,可以使用各种方法。例如,在图20中,在步骤S60,在用户使电影播放器300执行继续再现操作之后,本地实现平台301确定与所加载的盘相对应的恢复信息324是否存在。作为替代,反之,首先,本地实现平台301可以确定与所加载的盘相对应的恢复信息324是否存在。当恢复信息324存在时,本地实现平台301可以询问用户是否执行继续再现操作。
图21示出了当完成再现操作时执行的处理的示例。在电影播放器300正在执行对盘的再现操作的时候,当用户使电影播放器300停止再现操作(在步骤S70)时,电影播放器300执行该处理。当使得电影播放器300停止再现操作的用户输入310被输入到本地实现平台301时,其开始退出处理(在步骤S71)。该退出处理由例如以下三个步骤组成(1)限制新事件发生,(2)丢弃已经排队的事件句柄,以及(3)将控制命令uo_stop()发送给电影播放器300。
本地实现平台301在步骤S71执行退出处理。在本地实现平台301停止执行当前事件句柄(在步骤S72)之后,该流程前进到步骤S73。在步骤S73,本地实现平台301向脚本层302通知事件exit。相应地,脚本层302执行onExit()(在步骤S74)。事件句柄onExit()执行例如当再现操作完成时进行的预定后处理以及存储用户的设置数据的方法setUserData。
在步骤S75,本地实现平台301执行退出处理。在退出处理中,本地实现平台301将继续信息存储到例如非易失性存储器中(即,将例如紧接在完成再现操作之前而存在的状态备份到恢复信息324中),并且使系统菜单出现在屏幕上。
所述播放器模型可以再现视频数据、音频数据和字幕数据。由于内容创建者希望的事件在他或她希望的再现时刻发生并且执行他或她希望的对应事件句柄,因此可以实现他或她希望的操作。此外,当用户操作正在执行对盘的再现操作的UMD视频播放器时,本地实现平台301向电影播放器300通知与用户操作相对应的命令,使得将播放器的状态改变为用户希望的状态。此外,本地实现平台301向脚本层302通知与该用户输入相对应的事件。结果,脚本层302可以实现与用户操作相对应的内容创建者希望的操作。当所述播放器模型具有这一结构时,用户可以交互地操作视频播放器以再现视频数据、音频数据和字幕数据。
5.脚本程序的示例接下来,将描述脚本层302的脚本程序的示例。假设内容创建者创建了如图22所示的内容再现流。图22所示的内容具有显示元素播放列表400和401、上级菜单402和消息403。播放列表400用来显示当加载盘时自动显示的警告消息。播放列表401是作为内容示例的电影的主要部分。上级菜单402具有诸如按钮的GUI部件,其中用户利用所述GUI部件而使得播放列表401被再现。在播放列表401的任何再现时刻显示消息403。
此外,在图22所示的结构中,提供了若干事件句柄。当将盘加载到UMD视频播放器中时,事件句柄onAutoPlay()自动地从盘再现播放列表400,并且在屏幕上显示警告消息。事件句柄onPlayListEnd()是当播放列表的再现完成时调用的事件句柄。在图22所示的示例中,当播放列表400和播放列表401的再现完成时,调用事件句柄onPlayListEnd()。换言之,事件句柄onPlayListEnd()确定完成什么播放列表的再现。当播放列表400的再现完成时,事件句柄onPlayListEnd()开始再现播放列表401。当播放列表401的再现完成时,事件句柄onPlayListEnd调用上级菜单402。
当用户操作菜单键时,调用事件句柄onMenu()。事件句柄onMenu()调用上级菜单402,并且将其显示在屏幕上。当由标记Mark指定的再现时刻过去时,执行事件句柄onMark()。在图22所示的示例中,在播放列表401中设置标记Mark。当再现播放列表401并且由标记Mark指定的再现时刻过去时,在屏幕上显示消息403。
在图22所示的示例中,当将盘加载到UMD视频播放器中时,调用事件句柄onAutoPlay。事件句柄onAutoPlay再现播放列表400,并且显示警告消息。在播放列表400的再现时间过去之后,在播放列表400的末尾,调用事件句柄onPlayListEnd。事件句柄onPlayListEnd确定播放列表400已经被完全再现,并且再现下一播放列表401。当用户在正在再现播放列表401的同时操作菜单键时,调用事件句柄onMenu。事件句柄onMenu在屏幕上显示上级菜单402。事件句柄onMenu对应于在上级菜单402上的预定操作而从开头开始再现播放列表401。当播放列表401的再现时间已经过去了由标记Mark指定的时间时,调用事件句柄onMark。事件句柄onMark在屏幕上显示消息403。当播放列表401已经被完全再现时,调用事件句柄onPlayListEnd。事件句柄确定播放列表401已被完全再现,并且在屏幕上显示上级菜单402。
图23示出了实现图22所示的操作的脚本程序的示例。如上所述,该脚本程序具有事件句柄,并且在对应的事件发生时执行所述事件脚本。该脚本程序被存储在将稍后描述的文件“SCRIPT.DAT”中。
方法“movieplayer.play()”使电影播放器300再现播放列表。在括号()中作为自变量来描述要再现的播放列表号。当播放列表已被再现时,事件playListEnd发生。当事件playListEnd发生时,该脚本调用事件句柄movieplayer.onPlayListEnd()。此时,除了事件playListEnd之外,还将对象event_info提供给脚本。将已经被完全再现的播放列表的播放列表号等存储在对象event_info中。脚本可以对应于对象event_info的内容而改变下一操作。
6.文件管理结构接下来,将参照图24描述根据UMD视频标准的文件管理结构。在目录结构中分等级地管理文件,并且将文件记录在盘上。可以使用由国际标准化组织(ISO)9660标准化的盘文件系统或通用盘格式(UDF)。
将文件“TITLEID.DAT”和目录“视频”放置在根目录下。将目录“资源”、目录“剪辑”、目录“流”和文件“PLAYLIST.DAT”放置在目录“视频”下。
文件“TITLEID.DAT”是存储在每个标题(内容类型)中不同的标题标识符的文件。一个盘具有一个文件“TITLEID.DAT”。
将文件“SCRIPT.DAT”放置在目录“资源”下。如上所述,文件“SCRIPT.DAT”存储组成脚本层302的脚本程序。通常,将文件“SCRIPT.DAT”作为一个文件放置在目录“资源”下。作为替代,可以将多个文件“SCRIPT.DAT”放置在目录“资源”下。在此情况下,改变文件名的一部分,使得它们变得唯一。将多个文件“SCRIPT.DAT”用于不同的显示语言。然而,在此情况下,一次使用一个文件“SCRIPT.DAT”。
将至少一个剪辑信息文件放置在目录“剪辑”下。剪辑信息文件具有由字符串部分、作为分隔符的句点、以及诸如“CLP”的扩展名部分组成的文件名,所述字符串部分具有几个到5个字符,例如“00001”(在此示例中为数字)。扩展名部分“CLP”表示该文件是剪辑信息文件。
将至少一个剪辑AV流文件放置在目录“流”下。剪辑AV流文件具有由字符串部分、作为分隔符的句点、以及诸如“PS”的扩展名部分组成,所述字符串部分具有几个到5个字符,例如“00001”(在此示例中为数字)。扩展名部分“PS”表示该文件是剪辑AV流文件。根据本发明的实施例,剪辑AV流文件是MPEG2(运动图像专家组2)节目流,其中,视频流、音频流和字幕流被复用和存储在利用扩展名部分“PS”标识的文件中。
如上所述,剪辑AV流文件是视频数据和音频数据被压缩编码和时分复用的文件。因此,当读取和解码剪辑AV流文件时,获得视频数据和音频数据。剪辑信息文件是描述剪辑AV流文件的特性的文件。因此,剪辑信息文件和剪辑AV流文件相关联。根据本发明的实施例,由于剪辑信息文件和剪辑AV流文件的具有几个到5个字符的字符串部分相同,因此可以容易地获得它们之间的关系。
文件“SCRIPT.DAT”是描述脚本程序的脚本文件。根据本发明的实施例,文件“SCRIPT.DAT”存储使得交互地改变盘的再现状态的程序。在从盘读取其它文件之前读取文件“SCRIPT.DAT”。
文件“PLAYLIST.DAT”是描述指定剪辑AV流的再现顺序的播放列表的播放列表文件。接下来,将参照图25至图27来描述文件“PLAYLIST.DAT”的内部结构。图25示出了表示文件“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。在块PlayList()中,字段reserved_for_word_alignment和具有1位的数据长度的标志capture_enable_flag_PlayList以16位的位置排列(align)数据。
标志capture_enable_flag_PlayList是表示是否允许二次使用属于包括标志capture_enable_flag_PlayList的块PlayList()的运动画面的标志。当标志capture_enable_flag_PlayList的值为例如“1”时,它表示允许在播放器中二次使用属于PlayList()的运动画面。
在上述示例中,标志capture_enable_flag_PlayList具有1位的数据长度。作为替代,标志capture_enable_flag_PlayList可以具有描述多个二次使用允许层级的多位的数据长度。例如,标志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_length表示的字节长度的区域作为有效名称。
字段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()。
接下来,将参照图26来描述块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_length表示的字节长度的区域作为有效名称。当利用字段Clip_Information_file_name指定剪辑信息文件时,可以根据文件名的上述关系来识别与该剪辑信息文件相对应的剪辑AV流文件。
字段IN_time和字段OUT_time每个具有32位的数据长度。字段IN_time和字段OUT_time是指定与块PlayItem()中的字段Clip_Information_file_name所指定的剪辑信息文件相对应的剪辑AV流文件的再现开始位置和再现结束位置的时间信息。利用字段IN_time和字段OUT_time,可以指定除了剪辑AV流文件的开头以外的再现开始位置。同样,利用字段IN_time和字段OUT_time,可以指定除了剪辑AV流文件的末尾以外的再现结束位置。
接下来,将参照图27来描述块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()的类型。根据本实施例,如图28所示,定义了三种类型的标记,即章标记、索引标记和事件标记。章是划分播放列表(块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 4个元素将在块PlayList()中定义的块Mark()与剪辑AV流文件相关联。换言之,字段ref_to_PlayItem_id具有16位的数据长度,并且表示块PlayItem()的标识信息。因此,字段ref_to_PlayItem_id标识剪辑信息文件和剪辑AV流文件。
字段mark_time_stamp具有32位的数据长度,并且指定剪辑AV流文件中的标记的时刻。接下来,将参照图29来简要描述字段mark_time_stamp。在图29中,播放列表由被分配了0、1和2的三个播放项目(PlayItem(#0)、PlayItem(#1)和PlayItem(#2))组成。播放列表的时刻t0被包括在播放项目1(PlayItem(#1))中。播放项目0、1和2分别通过剪辑信息文件而对应于剪辑AV流文件的节目流A、B和C。
在此情况下,当将标记指定给播放列表的时刻t0时,字段ref_to_PlayItem_id的值是表示包括时刻t0的播放项目1的“1”。此外,在字段mark_time_stamp中描述在对应的剪辑AV流文件中与时刻t0相对应的时刻。
返回图27的描述,字段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”。
接下来,将参照图30至图34来描述剪辑信息文件的内部结构。如上所述,剪辑信息文件“XXXXX.CLP”描述放置在目录“流”下面的对应剪辑AV流文件“XXXXX.PS”的特性等。
图30示出了表示剪辑AV流文件“XXXXX.CLP”的整个结构的语法示例。剪辑AV流文件“XXXXX.CLP”以字段presentation_start_time和字段presentation_end_time开始。字段presentation_start_time和字段presentation_end_time每个具有32位的数据长度,并且表示对应的剪辑AV流文件的开头和末尾的时刻。作为时间信息,可以使用MPEG2系统的呈现时间戳(PTS)。PTS具有90kHz的精度。
字段presentation_start_time和字段presentation_end_time之后是具有7位的数据长度的字段reserved_for_word_alignment和具有1位的数据长度的标志capture_enable_flag_Clip。在文件“XXXXX.CLP”中,字段reserved_for_word_alignment和具有1位的数据长度的标志capture_enable_flag_Clip以16位的位置排列数据。标志capture_enable_flag_Clip是表示是否允许二次使用在与文件“XXXXX.CLP”相对应的剪辑AV流文件中包含的运动画面的标志。例如,当标志capture_enable_flag_Clip的值为例如1时,它表示允许在视频播放器中二次使用对应于文件“XXXXX.CLP”的剪辑AV流文件的运动画面。
字段number_of_streams具有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。如图31所示,块StreamInfo()与基本流相关联。在图31所示的示例中,当块StreamInfo()的字段stream_id的值处于从“0xE0”到“0xEF”的范围内时,块StreamInfo()与视频流相关联。当块StreamInfo()的字段stream_id的值为“0xBD”时,块StreamInfo()与自适应变换声学编码(ATRAC)音频流、线性脉冲编码调制(LPCM)音频流或字幕流相关联。当块StreamInfo()的字段private_stream_id的值处于从“0x00”到“0x0F”、从“0x10”到“0x1F”以及从“0x80”到“0x9F”的范围内时,块StreamInfo()分别与ATRAC音频流、LPCM音频流和字幕流相关联。
在图31中,“0x”表示十六进制记数法。该记数法适用于以下描述。
块StreamInfo()主要描述两类信息,第一类在流中不变化,第二类在流中变化。在块StaticInfo()中描述在流中不变化的信息,而在块DynamicInfo()中描述在流中变化的信息,并且利用时间信息来指定改变点。
块StaticInfo()之后是字段reserved_for_word_alignment,其具有8位的数据长度。在块StreamInfo()中,字段reserved_for_word_alignment在一字节中排列数据。字段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具有32位的数据长度,并且利用PTS来表示块DynamicInfo()的信息变为有效的时刻。每个流开始的时刻由字段pts_change_point表示,并且等于在文件“XXXXX.CLP”中定义的字段presentation_start_time。
接下来,将参照图32来描述块StaticInfo()的内部结构示例。块StaticInfo()的内容取决于对应的基本流的类型。可以利用如图31所示的字段stream_id和字段private_stream_id的值来标识对应的基本流的类型。图32示出了使用if语句的块StaticInfo(),其内容根据作为视频流、音频流或字幕的基本流的类型而变化。接下来,将根据基本流的类型来描述块StaticInfo()。
当基本流是视频流时,块StaticInfo()由字段picture_size、字段frame_rate、以及标志cc_flag组成。字段picture_size和字段frame_rate每个具有4位的数据长度。标志cc_flag具有1位的数据长度。字段picture_size和字段frame_rate表示视频流的画面尺寸和帧频率。标志cc_flag表示该视频流是否包含内置字幕。当标志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表示该音频流是否包含低频强调(emphasis)声道。当字段lfe_existance的值是例如“1”时,该音频流包含低频强调声道。字段sampling_frequency表示音频数据的采样频率。以16位的位置排列字段reserved_for_word_alignment。
当基本流是字幕流时,块StaticInfo()由具有16位的数据长度的字段subtitle_language_code以及具有1位的数据长度的标志configurable_flag组成。字段subtitle_language_code表示在字幕流中包含的语言代码。标志configurable_flag表示是否允许改变所显示的字幕流的字符的大小和位置。当标志configurable_flag的值是例如“1”时,它表示允许改变显示的字幕流的字符的大小和位置。以16位的位置排列字段reserved_for_word_alignment。
接下来,将参照图33来描述块DynamicInfo()的内部结构示例。块DynamicInfo()以具有8位的数据长度的字段reserved_for_word_alignment开始。在字段reserved_for_word_alignment之后的元素取决于基本流的类型。可以利用图31中描述的字段stream_id和字段private_stream_id来标识基本流的类型。在图33中,示出了使用if语句的块DynamicInfo(),其内容根据作为视频流、音频流或字幕的基本流的类型而变化。接下来,将根据基本流的类型来描述块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()不定义动态变化的属性。
接下来,将参照图34来描述块EP_map()的内部结构示例。块EP_map()利用时间信息和位置信息来表示每个基本流的比特流的有效解码开始位置(进入点)。所述位置信息可以是在其上记录基本流的记录介质的最小存取单元。可以从由块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循环描述每个具有8位数据长度的字段stream_id和字段private_stream_id,并且标识基本流的类型,如图31所示。字段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每个具有32位的数据长度,并且表示进入点自身。字段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()的位置。
块EP_map()将剪辑AV流的时刻和剪辑AV流文件的位置相关联。因此,利用剪辑AV流的存取点的时间信息(时间戳),可以容易地在剪辑AV流文件中搜索读取数据所在的数据地址。结果,可以顺利地随机访问盘。
根据本实施例,在块EP_map()中,按照升序(降序)来预先登记每个基本流的时间信息和位置信息的组(第二for循环中的字段PTS_EP_start和字段RPN_EP_start的组)。换言之,已经沿预定方向重新排列了时间信息和位置信息。因此,可以对所述数据执行对分搜索。
根据本发明的实施例,如上所述,视频流的基本流是基于MPEG-视频标准的基本流。然而,本发明不限于此示例。例如,视频流的基本流可以是根据MPEG4-视频标准或MPEG4-AVC标准的基本流。同样,根据本实施例,如上所述,音频流的基本流是基于ATRAC音频系统的基本流。然而,本发明不限于这样的示例。作为替代,音频流的基本流可以是基于例如MPEG1/2/4音频系统的基本流。
7.盘再现装置接下来,将描述根据本发明实施例的盘再现装置。图35示出了根据本发明的盘再现装置100的结构示例。中央处理单元(CPU)112、存储器113、驱动器接口114、输入接口115、视频解码器116、音频解码器117、视频输出接口118以及音频输出接口119连接到总线111。盘再现装置100的每个部分可以通过总线111来与其它部分交换视频流、音频流、各种命令、数据等。
此外,盘驱动器102连接到驱动器接口114。盘驱动器102通过驱动器接口114来与总线111交换数据和命令。
CPU 112具有只读存储器(ROM)和随机存取存储器(RAM)(未示出)。CPU112根据预先存储在ROM中的程序和数据而通过总线111与盘再现装置100的每个部分交换数据和命令,并且控制整个盘再现装置100。使用RAM作为CPU 112的工作存储器。
从用户用来执行输入操作的输入设备输入的输入信号被提供给输入接口115。例如,该输入设备是使用例如红外信号的遥控器以及布置在盘再现装置100上的键,其中用户利用所述遥控器来远程操作盘再现装置100。输入接口115将从输入设备提供的输入信号转换为用于CPU 12的控制信号,并且输出该控制信号。
将播放列表、脚本程序、剪辑信息文件、剪辑AV流文件等以图24至图34所示的格式记录在盘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。
在该示例中,图35所示的每个部分由独立的硬件组成。然而,本发明不限于这一示例。例如,视频解码器116和/或音频解码器117可以由在CPU 112上运行的软件组成。
图36A和图36B是详细描述图35所示的盘再现装置100的操作的功能框图。盘再现装置100主要由操作系统201和视频内容再现部分210组成。视频内容再现部分210实质上是在操作系统201上运行的软件程序。作为替代,视频内容再现部分210可以由整体操作的软件和硬件组成。在以下描述中,假设视频内容再现部分210由软件组成。在图36A和图36B中,省略了盘驱动器102。
当接通盘再现装置100的电源时,操作系统201首先在CPU 112上启动,并对每个部分执行诸如初始设置的必要处理,并且从ROM读取应用程序(在此示例中为视频内容再现部分210)。在视频内容再现部分210操作的同时,操作系统201向视频内容再现部分210提供基本的服务,例如从盘101读取文件以及解释文件系统。例如,操作系统201对应于从视频内容再现部分210提供的文件读取请求而通过驱动器接口114控制盘驱动器102,并且从盘101读取数据。在操作系统201的控制下,将从盘101读取的数据提供给视频内容再现部分210。
操作系统201具有通过例如时分控制而虚拟地并行控制多个软件模块的多任务处理功能。换言之,可以通过操作系统201的多任务处理功能来并行地操作图36A和图36B所示的视频内容再现部分210的每个模块。
接下来,将更具体地描述视频内容再现部分210的操作。视频内容再现部分210具有更多的内部模块,并且实现以下功能。
(1)视频内容再现部分210确定所加载的盘101是否是根据UMD视频标准的盘(在下文中,将这个盘称为UMD视频盘)。
(2)当所确定的结果表示所加载的盘101是UMD视频盘时,视频内容再现部分210从盘101读取脚本文件,并且将该脚本文件提供给脚本控制模块211。
(3)当所确定的结果表示所加载的盘101是UMD视频盘时,视频内容再现部分210还读取组成数据库的文件(即,播放列表文件、剪辑信息文件等),并且将这些文件提供给播放器控制模块212。
接下来,将描述视频内容再现部分210的模块的操作。
脚本控制模块211解释在脚本文件“SCRIPT.DAT”中描述的脚本程序并且执行它。如在播放器模型中描述的那样,由根据脚本程序控制的图形处理模块219来实现创建和输出菜单屏幕图像、对应于用户的输入而移动光标、以及改变菜单屏幕的GUI。通过执行所述脚本程序,脚本控制模块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中,作为缓冲器的内容(substance)。内容数据提供模块213控制缓冲器控制模块215根据来自视频解码器控制模块216、音频解码器控制模块217和字幕解码器控制模块218的请求而将存储在存储器113中的内容数据提供给它们。此外,内容数据提供模块213从盘101读取内容数据,使得在缓冲器控制模块215的控制下存储的内容数据量变为预定量。
解码控制模块214根据从播放器控制模块212接收的命令而控制视频解码器控制模块216、音频解码器控制模块217以及字幕解码器控制模块218的操作。解码控制模块214具有内部时钟功能,并且控制视频解码器控制模块216、音频解码器控制模块217以及字幕解码器控制模块218的操作,使得同步地输出视频数据和音频数据。
仅由缓冲器控制模块215使用存储器113的一部分作为缓冲器的内容215A。缓冲器控制模块215存储数据开始指针和数据写入指针。缓冲器控制模块215还具有内部模块视频读取功能、音频读取功能和字幕读取功能。视频读取功能具有视频读取指针。视频读取功能具有存储作为存取单元信息的信息au_information()的寄存器。音频读取功能具有音频读取指针。字幕读取功能具有字幕读取指针和字幕读取功能标志。字幕读取功能标志根据写入值控制字幕读取功能的使能/禁止。当例如将“1”写入字幕读取功能标志时,字幕读取功能被使能。当例如将“0”写入字幕读取功能标志时,字幕读取功能被禁止。
作为缓冲器控制模块215的内部模块的视频读取功能、音频读取功能和字幕读取功能具有解复用器功能,该解复用器功能将其中复用了视频流、音频流和字幕流的复用的剪辑AV流解复用为这些流。根据本发明的实施例,根据时分复用系统和MPEG2系统节目流格式来复用多个基本流,从而形成剪辑AV流。因此,视频读取功能、音频读取功能和字幕读取功能具有用于MPEG2系统节目流的解复用器功能。
因此,视频读取功能读取置于视频流的预定位置上的字段stream_id(参见图31)的值,并且保持该值。同样,音频读取功能和字幕读取功能读取字段stream_id和字段private_stream_id(参见图31)的值,并且保持这些值。字段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。
如上所述,将由视频解码器116在视频解码器控制模块216的控制下解码的视频数据以及由字幕解码器控制模块218解码的字幕图像数据提供给图形处理模块219。图形处理模块219将字幕图像数据加到所提供的视频数据上,并且产生输出的视频信号。图形处理模块219对应于从脚本控制模块211和播放器控制模块212接收的命令而产生菜单图像和消息图像,并且将它们与输出视频信号叠加。
例如,图形处理模块219对所提供的字幕图像数据执行放大处理和缩小处理,并且根据从脚本控制模块211接收的命令而将处理后的图像数据加到视频数据上。
此外,图形处理模块219根据预定输出视频设备的高宽比以及在从盘101再现的内容中指定的输出高宽比而转换输出信号的高宽比。当输出视频设备的高宽比是16∶9并且输出高宽比是16∶9时,图形处理模块219直接输出视频数据。当输出高宽比是4∶3时,图形处理模块219执行使图像的高度与输出视频设备的屏幕高度匹配的挤压处理,将黑色部分插入图像的左侧和右侧,并且输出所得到的图像。当输出视频设备的高宽比是4∶3并且输出高宽比是4∶3时,图形处理模块219直接输出视频数据。当输出高宽比是16∶9时,图形处理模块219执行使图像的宽度与输出视频设备的屏幕宽度匹配的挤压处理,将黑色部分插入图像的上部和下部,并且输出所得到的图像。
图形处理模块219还根据来自播放器控制模块212的请求而执行捕捉正被处理的视频信号的处理,并且向其提供所请求的视频信号。
仅由视频输出模块241使用存储器113的一部分作为先入先出(FIFO)缓冲器。视频输出模块241将图形处理模块219处理的视频数据暂时存储在该缓冲器中,并且在预定的定时从中读取该视频数据。从视频输出接口118输出从缓冲器读取的视频数据。
仅由音频输出模块242使用存储器113的一部分作为FIFO缓冲器。音频输出模块242将从音频输出接口119输出的音频数据存储到该缓冲器中,并且在预定定时从中读取该音频数据。从音频输出接口119输出从缓冲器读取的音频数据。
当所述内容的音频模式是双单声道(例如,双语)时,音频输出模块242根据预定的音频输出模式输出音频数据。当音频输出模式是“主音频”时,音频输出模块242复制例如存储器113中的左声道的音频数据,并且输出该左声道的音频数据和来自存储器113的音频数据。这样,音频输出模块242仅输出左声道的音频数据。当音频输出模式是“副音频”时,音频输出模块242复制例如存储器113中的右声道的音频数据,并且输出该右声道的音频数据和来自存储器113的音频数据。这样,音频输出模块242仅输出右声道的音频数据。当音频输出模式是“主音频和副音频”或者所述内容是立体声的时,音频输出模块242直接输出该音频数据。
用户可以在例如由视频内容再现部分210产生的菜单屏幕上交互地设置音频输出模式。
非易失性存储器控制模块250将数据写入在视频内容再现部分210的操作完成之后其数据没有被擦除的区域(这一区域被称为非易失性区域),并且根据从播放器控制模块212接收的命令而从中读取数据。非易失性存储器控制模块250具有将多个数据Saved_Player_Status和数据Saved_Player_Data的组与标题ID(Title_ID)的键一起存储的功能。非易失性存储器控制模块250将播放器控制模块212所具有的数据Backup_Player_Status存储为数据Saved_Player_Status。数据Backup_Player_Status对应于例如紧接在播放器控制模块212的操作完成之前而存在的播放器状态323B的数据。数据Saved_Player_Status对应于恢复信息324。此外,非易失性存储器控制模块250将播放器控制模块212具有的数据User_Data存储为数据Saved_User_Data。数据User_Data是用户设置到播放器控制模块212的预定数据。
当盘再现装置100具有作为非易失性存储器的快闪存储器等时,非易失性存储器控制模块250将数据Saved_Player_Status和数据Saved_User_Data的组与盘101的标题ID相关联地存储在快闪存储器的预定区域中。非易失性存储器控制模块250存储数据的存储介质不限于快闪存储器,而是可以为硬盘等。
8.对用户操作的控制接下来,将描述根据本发明实施例的对用户操作的限制。根据本发明的实施例,将对用户操作的限制的组合定义为模式(称为用户操作屏蔽(mask)模式、UOP屏蔽模式)。换言之,不提供表示是否允许用户操作的标志。作为替代,在播放器一侧提供预计将被频繁使用的一组用户操作。内容创建者一侧选择所提供的模式来限制用户操作。
在播放列表的语法中,将用户操作屏蔽模式的信息定义为字段UOP_mask_mode。仅仅将用户操作屏蔽模式的信息放置在播放列表层中,而不放置在多个层中。
因此,对用户操作的限制的组合在播放器一侧被实现为用户操作屏蔽模式,并且被提供给内容创建者一侧。结果,验证所述操作的内容创建者一侧的负担减小。
当内容创建者需要限制用户的操作时,他或她只需要选择所准备的用户操作屏蔽模式。因此,可以更容易地控制用户的操作。结果,创建内容并且验证它们的操作的内容创建者一侧的负担减小。此外,验证所实现的操作的播放器一侧的负担也减小。
接下来,将描述根据本发明实施例的对用户操作的限制。图37示出了根据本发明实施例的文件“PLAYLIST.DAT”的语法示例。如图37所示,将字段UOP_mask_mode添加到图25所示的根据UMD视频标准的文件“PLAYLIST.DAT”中。在图37所示的示例中,将字段UOP_mask_mode插入图25所示的文件“PLAYLIST.DAT”的字段PlayList_data_length之后的字段reserved_for_word_alignment和字段capture_enable_flag_PlayList之间。因此,对于存储在文件“PLAYLIST.DAT”中的每个播放列表描述字段UOP_mask_mode。
字段UOP_mask_mode的位置是一个示例,并且不限于此。
如图4所示,当电影播放器300开始从盘101再现数据时,电影播放器300读取文件“PLAYLIST.DAT”。在电源播放器300正从盘101再现数据的同时,电影播放器300将从盘101读取的播放列表的信息存储在内部存储器中。因此,在电影播放器300正从盘101再现数据的同时,电影播放器300还将字段UOP_mask_mode的信息存储在存储器中。
字段UOP_mask_mode具有4位的数据长度,并且表示对于存储在文件“PLAYLIST.DAT”中的每个播放列表定义的用户操作屏蔽模式。图38示出了字段UOP_mask_mode的值的含义的示例。当字段UOP_mask_mode的值为“0x0”时,对于该播放列表,允许所有用户操作。
当字段UOP_mask_mode的值为“0x1”时,该播放列表的用户操作屏蔽模式是“1”。当播放列表的用户操作屏蔽模式是“1”时,只允许作为用户操作的再现停止。即使在正在再现播放列表的同时执行其它用户操作,播放器一侧也会忽略这些用户操作。
当播放列表的用户操作屏蔽模式是“1”并且执行在任何时刻开始再现该播放列表的所谓的“跳转再现”的用户操作时,不允许该跳转再现。作为替代,以预定速度(例如,常规再现速度)从开头起沿正向再现播放列表。换言之,在正在再现另一播放列表的同时,当对用户操作屏蔽模式为“1”的播放列表执行跳转再现时,以预定速度(例如常规再现速度)沿正向再现该播放列表。
当将播放列表用于表示未经允许禁止复制和广播内容的警告消息(FBI警告)时,期望将用户操作屏蔽模式“1”用于在从盘101再现电影内容之前再现的播放列表。
当字段UOP_mask_mode的值是“0x2”时,播放列表的用户操作屏蔽模式为“2”。当播放列表的用户操作屏蔽模式为“2”时,在正在再现该播放列表的同时禁止跳转到该播放列表末尾的用户操作,但是始终允许停止操作。此外,允许快进再现和快退再现的用户操作。
用户操作屏蔽模式“2”的限制比用户操作屏蔽模式“1“的限制弱。当将播放列表用于广告画面(宣传片)时,期望将户操作屏蔽模式“2”用于在从盘101再现出租内容之前或之后再现的播放列表。
字段UOP_mask_mode的值“0x3”至“0xF”是为以后预留的。
接下来,将描述根据字段UOP_mask_mode进行的用户操作控制。图39是示出电影播放器300的用户操作限制功能示例的功能框图。即,电影播放器300根据字段UOP_mask_mode的值,产生从盘101读取的播放列表的属性信息500。
另一方面,将用户操作作为用户输入310输入到本地实现平台301。本地实现平台301将用户输入310转换为控制命令311,并且将控制命令311提供给电影播放器300。将控制命令311提供给电影播放器300的命令过滤器502。命令过滤器502查询命令过滤器表501,并且确定是否将控制命令311提供给重放模块321。根据字段UOP_mask_mode限制的用户操作是与被命令过滤器表501过滤并且没有被提供给重放模块321的控制命令311相对应的用户操作。
图40是示出创建命令过滤器表501的过程示例的流程图。当将盘101加载到盘再现装置100中(在步骤S80)时,电影播放器300从盘101读取播放列表和剪辑信息文件。电影播放器300从播放列表的属性信息读取字段UOP_mask_mode(在步骤S81)。随后,电影播放器300根据在字段UOP_mask_mode中表示的用户操作屏蔽模式创建命令过滤器表501。电影播放器300为每个播放列表创建命令过滤器表501。
图41示出了根据用户操作屏蔽模式“1”的命令过滤器表501的示例。命令过滤器表501表示“禁止”在除了播放列表的开头以外的位置开始再现,并且所允许的控制命令311只有命令uo_stop()(参见图12A、图12B和图12C)。
图42示出了根据用户操作屏蔽模式“2”的命令过滤器表501的示例。命令过滤器表501表示“允许”在除了播放列表的开头之外的位置开始再现,并且在图12A、图12B和图12C中描述的控制命令311中,仅禁止命令uo_jumpToEnd()。换言之,当用户操作屏蔽模式是“2”时,允许除了命令uo_jumpToEnd()之外的所有控制命令311。
在图41和图42中描述的命令过滤器表501不是在内容创建者一侧提供的,而是在电影播放器300中产生的。对于播放器实现的命令过滤器表501不受限制。
图41和图42示出了根据用户操作屏蔽模式“1”和“2”的命令过滤器表501。然而,本发明不限于这些示例。换言之,命令过滤器表501可以具有用户操作屏蔽模式的列表或者利用if语句来描述它们。当使用if语句时,可以利用脚本来实现命令过滤器表501的功能。
图43是示出利用命令过滤器表501限制用户操作的处理示例的流程图。在根据该流程图开始所述处理之前,将盘101加载到播放器中。当盘101被加载到播放器中时,读取文件“PLAYLIST.DAT”。根据文件“PLAYLIST.DAT”,创建命令过滤器表501。
当在步骤S100对播放器执行用户操作时,将根据该用户操作的用户输入310输入到本地实现平台301。当本地实现平台301在步骤S101接收到用户输入310时,该流程前进到步骤S102。在步骤S102,本地实现平台301将所接收的用户输入310转换为对电影播放器300的控制命令311,并且向电影播放器300通知该控制命令311。
当电影播放器300接收到控制命令311时,电影播放器300查询正被再现的播放列表的命令过滤器表501(在步骤S103)。在步骤S104,电影播放器300根据命令过滤器表501来确定是否允许执行所通知的控制命令311。当所确定的结果表示不允许执行控制命令311时,该流程前进到步骤S105。在步骤S105,电影播放器300不执行控制命令311。
相反,当步骤S104处的所确定的结果表示允许执行控制命令311时,该流程前进到步骤S106。在步骤S106,电影播放器300确定控制命令311是否是在正被再现的播放列表中执行的命令。即,在步骤S106,电影播放器300确定控制命令311是在正被再现的播放列表中执行的命令(例如跳转到播放列表的另一章或改变流的章跳转命令或流改变命令),还是停止再现当前播放列表并且开始再现另一播放列表的预定章的命令。
当步骤S106处的所确定的结果表示控制命令311是在正被再现的播放列表中执行的命令时,该流程前进到步骤S107。在步骤S107,电影播放器300执行控制命令311。当电影播放器300执行控制命令311时,电影播放器300可以利用事件句柄来限制控制命令311。换言之,在通过用户操作屏蔽过滤了用户操作之后,可以通过利用事件句柄来过滤用户操作。
当步骤S106处的所确定的结果表示控制命令311是不在正被再现的播放列表中执行的命令时,该流程前进到步骤S108。在步骤S108,电影播放器300查询要新再现的另一播放列表的命令过滤器表501。当在步骤S102向电影播放器300通知的控制命令311是从正被再现的播放列表跳转到另一播放列表的命令时,电影播放器300查询要跳转的播放列表的命令过滤器表501。
随后,该流程前进到步骤S109。在步骤S109,电影播放器300根据要新再现的另一播放列表的命令过滤器表501确定是否允许从开头再现所述另一播放列表。当所确定的结果表示只允许从开头再现该播放列表时,该流程前进到步骤S110。即使控制命令311从除了开头以外的位置再现所述另一播放列表,电影播放器300也会使重放模块321从开头再现所述另一播放列表。
当所确定的结果表示允许从除了开头以外的位置再现所述另一播放列表时,该流程前进到步骤S111。在步骤S111,电影播放器300使重放模块321在根据控制命令311的时刻和章处再现所述另一播放列表。如上所述,根据本发明的实施例控制用户的操作。
权利要求
1.一种从盘形记录介质再现内容数据的再现装置,包括读取部件,用于从记录介质读取数据,在所述记录介质上至少记录内容数据、再现指定信息、以及控制内容数据的再现的再现控制程序,所述再现指定信息指定内容数据的再现路径并且包含作为对内容数据的再现控制指定的属性信息的表示限制模式的值;播放器部件,用于根据再现控制程序再现内容数据;以及控制命令产生部件,用于对应于执行对内容数据的再现控制指定的用户操作而产生对播放器部件的控制命令,其中,播放器部件从记录介质读取再现指定信息的表示限制模式的值,创建再现指定信息的表示限制模式的值的表,并且根据该表来控制对于执行由控制命令产生部件产生的控制命令的允许或不允许。
2.如权利要求1所述的再现装置,其中,限制模式是只允许控制命令使播放器部件停止再现内容数据的模式。
3.如权利要求1所述的再现装置,其中,当控制命令使播放器部件在对应于再现指定信息的再现区域中从任何时刻开始再现内容数据时,其中所述再现指定信息具有包含表示限制模式的值的属性信息,该限制模式控制播放器部件,使得它以预定的再现速度从再现区域的开头起再现内容数据。
4.如权利要求1所述的再现装置,其中,当在播放器部件正在再现对应于再现指定信息的内容数据的同时出现控制命令时,其中所述再现指定信息具有包含表示限制模式的值的属性信息,限制模式只允许该控制命令使播放器部件停止再现内容数据,以及其中,当出现使播放器部件在对应于再现指定信息的再现区域中从任何时刻起再现内容数据的控制命令时,其中所述再现指定信息具有包含表示限制模式的值的属性信息,限制模式控制播放器部件,使得它以预定再现速度从再现区域的开头再现内容数据。
5.如权利要求1所述的再现装置,其中,在播放器部件正在再现对应于再现指定信息的内容数据的同时,其中所述再现指定信息具有包含表示限制模式的值的属性信息,当控制命令使播放器部件停止再现对应于再现指定信息的内容数据并且跳转到对应于再现指定信息的再现区域的末尾时,限制模式禁止执行该控制命令。
6.如权利要求1所述的再现装置,其中,当出现控制命令时,播放器部件根据对应于播放器部件正在再现的内容数据的再现指定信息的属性信息中包含的表示限制模式的值的表,确定是否允许执行该控制命令,其中,当所确定的结果表示允许执行该控制命令时,播放器部件确定是否在对应于再现指定信息的第一再现区域中执行该控制命令,并且其中,当所确定的结果表示不在第一再现区域中执行该控制命令时,播放器部件根据对应于第二再现区域的再现指定信息的属性信息中包含的表示限制模式的值的表,确定该控制命令是否只允许播放器部件从第二再现区域的开头起再现内容数据,其中该控制命令使播放器部件从所述第二再现区域重新开始再现内容数据。
7.一种从盘形记录介质再现内容数据的再现方法,包括以下步骤从记录介质读取数据,在所述记录介质上至少记录内容数据、再现指定信息、以及控制内容数据的再现的再现控制程序,所述再现指定信息指定内容数据的再现路径并且包含作为对内容数据的再现控制指定的属性信息的表示限制模式的值;根据再现控制程序再现内容数据;以及对应于执行对内容数据的再现控制指定的用户操作而产生对播放器步骤的控制命令,其中,通过从记录介质读取再现指定信息的表示限制模式的值,创建再现指定信息的表示限制模式的值的表,并且根据该表来控制对于执行在控制命令产生步骤产生的控制命令的允许或不允许,来执行播放器步骤。
8.一种使计算机设备执行从盘形记录介质再现内容数据的再现方法的再现程序,该再现方法包括以下步骤从记录介质读取数据,在所述记录介质上至少记录内容数据、再现指定信息、以及控制内容数据的再现的再现控制程序,所述再现指定信息指定内容数据的再现路径并且包含作为对内容数据的再现控制指定的属性信息的表示限制模式的值;根据再现控制程序再现内容数据;以及对应于执行对内容数据的再现控制指定的用户操作而产生对播放器步骤的控制命令,其中,通过从记录介质读取再现指定信息的表示限制模式的值,创建再现指定信息的表示限制模式的值的表,并且根据该表来控制对于执行在控制命令产生步骤产生的控制命令的允许或不允许,来执行播放器步骤。
9.一种记录介质,在其上至少记录内容数据、再现指定信息、以及控制内容数据的再现的再现控制程序,所述再现指定信息指定内容数据的再现路径并且包含作为对内容数据的再现控制指定的属性信息的表示限制模式的值。
10.如权利要求9所述的记录介质,其中,再现设备从记录介质再现再现控制程序,根据该再现控制程序再现内容数据并且对应于执行对内容数据的再现控制指定的用户操作而产生控制内容数据再现的控制命令,以及其中,再现设备创建再现指定信息的表示限制模式的值的表,并且根据该表来控制对于执行所述控制命令的允许或不允许。
11.如权利要求9所述的记录介质,其中,限制模式是只允许再现设备停止再现内容数据的模式。
12.如权利要求9所述的记录介质,其中,当在对应于再现指定信息的再现区域中在任何时刻指定再现开始操作时,其中所述再现指定信息具有包含表示限制模式的值的属性信息,限制模式控制再现设备,使得它以预定再现速度从该再现区域的开头起再现内容数据。
13.如权利要求9所述的记录介质,其中,当对正在再现对应于再现指定信息内容数据的再现设备指定再现停止操作时,其中所述再现指定信息具有包含表示限制模式的值的属性信息,限制模式只允许再现设备停止再现内容数据,以及其中,当指定再现开始操作以便在对应于再现指定信息的再现区域中从任何时刻起再现内容数据时,其中所述再现指定信息具有包含表示限制模式的值的属性信息,限制模式控制再现设备,使得它以预定再现速度从该再现区域的开头起再现内容数据。
14.如权利要求9所述的记录介质,其中,在再现设备正在再现对应于再现指定信息的内容数据的同时,其中所述再现指定信息具有包含表示限制模式的值的属性信息,当指定跳转操作以使再现设备停止再现对应于再现指定信息的内容数据并且跳转到对应于该再现指定信息的再现区域的末尾时,限制模式禁止执行该跳转操作。
15.如权利要求10所述的记录介质,其中,当在再现设备上产生控制命令时,它根据在与该再现设备正在再现的内容数据相对应的再现指定信息的属性信息中包含的表示限制模式的值的表,确定是否允许执行该控制命令,其中,当所确定的结果表示允许执行该控制命令时,再现设备确定是否在对应于再现指定信息的第一再现区域中执行该控制命令,以及其中,当所确定的结果表示不在第一再现区域中执行该控制命令时,再现设备根据对应于第二再现区域的再现指定信息的属性信息中包含的表示限制模式的值的表,确定该控制命令是否只允许再现设备从第二再现区域的开头起再现内容数据,其中控制命令使再现设备从所述第二再现区域起重新开始再现内容数据。
16.一种数据结构,其由内容数据和用于控制该内容数据的再现的信息组成,该数据结构包括内容数据;再现指定信息,其指定内容数据的再现路径并且包含作为对内容数据的再现控制指定的属性信息的表示限制模式的值,和再现控制程序,其控制内容数据的再现。
全文摘要
可以在再现内容时容易地限制用户操作。预先设置用于限制用户操作以控制内容再现的限制模式,并且对于每个播放列表,将指示该限制模式的值作为属性信息记录在盘中。在盘的再现期间,播放器基于每个播放列表的限制模式产生表,并且由命令过滤器通过查询该表来对由用户操作产生的用于控制内容再现的控制命令进行过滤。所述限制模式是例如应当从头以诸如正常速度的预定速度再现播放列表的模式、以及禁止再现期间的播放列表的跳转的模式。因此,可以减小在内容创建一侧的对于用户操作限制的验证的负担以及在播放器一侧的操作的验证负担。
文档编号G11B20/10GK101044572SQ20058003592
公开日2007年9月26日 申请日期2005年8月2日 优先权日2004年8月19日
发明者浜田俊也, 藤波靖, 各务辰哉, 大岛武德 申请人:索尼株式会社, 索尼计算机娱乐公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1