1.一种播放设备,涉及其上记录有视频数据,多个程序,以及包括与该多个程序分别相关的多个索引的表的记录介质,包括:
用于分别执行该多个程序的多个模块,该多个模块包括与电影模式相对应的模块和与增强模式相对应的模块;以及
管理器,用于控制在该多个程序之间的转移,其中
该表是这样的信息,其示出该多个程序的每个属于电影模式或是属于增强模式;
使用经由该表的间接参照,对该多个程序中的每一个都描述了该转移,以及在该转移的时刻,通过参照该表,该管理器决定了用于执行转移目的地的程序的模块;
其中
在该表中,将标题号码分配给每对(1)该多个程序中每一个程序的识别信息和(2)示出该多个程序的每个属于电影模式或是属于增强模式的所述信息,该间接参照使用该标题号码指定该转移目的地的程序;
与该电影模式对应的模块具有虚拟机;以及
增强模式程序由面向虚拟机的编程语言进行描述。
2.一种播放方法,涉及其上记录有视频数据,多个程序,以及
包括与该多个程序分别相关的多个索引的表的记录介质,包括以下步骤:
多个执行步骤,在每一个执行步骤中执行多个程序中的一个程序,该多个执行步骤包括与电影模式相对应的执行步骤和与增强模式相对应的执行步骤,以及控制步骤,用于控制在该多个程序中的转移,其中
该表是这样的信息,其示出该多个程序中的每个属于电影模式或是属于增强模式;
对该多个程序中的每一个,该转移使用经由该表的间接参照进行描述;以及该控制步骤是这样的步骤:在该转移的时刻,通过参照该表,决定用于执行转移目的地的程序的执行步骤;
在该表中,将标题号码分配给每对(1)该多个程序中每一个程序的识别信息和(2)示出该多个程序的每个属于电影模式或是属于增强模式的所述信息,
该间接参照使用该标题号码指定该转移目的地的程序;
其中与该电影模式对应的模块具有虚拟机;以及
增强模式程序由面向虚拟机的编程语言进行描述。
3.一种记录介质的记录方法,包括以下步骤:
产生应用数据;以及
在该记录介质上记录该产生的应用数据,其中
该应用数据包括视频数据,多个程序和表;
该多个程序中的每一个程序都示出该视频数据的播放控制过程;
该表包括(1)该多个程序中每一个程序的识别信息,以及(2)示出多个程序中的每一个程序属于电影模式或是属于增强模式的信息;
多个程序中的一个程序包括用于转移的命令;以及
该转移命令使用通过该表的间接参照指定了转移目的地,
其中,在该表中,将标题号码分配给每对(1)该识别信息和(2)该信息,以及该间接参照使用该标题号码指定该转移目的地的程序。
播放设备、播放方法、以及记录介质的记录方法\n[0001] 发明领域 \n[0002] 本发明涉及一种视频数据记录介质,例如蓝光光盘(Blu-Ray Disc)只读存储器(下文中简称为“BD-ROM”),用于播放这种记录介质的播放设备,程序,播放方法,以及记录方法,特别是涉及利用该记录介质发行电影作品等的技术。 \n[0003] 技术背景 \n[0004] 利用记录介质进行电影作品的发行是电影制片人和供应商们重要的收入来源。电影作品的视频数据是通过聘请著名演员扮演角色,并花费多个成本进行制作而产生的,因此,电影作品的视频数据具有重要价值。当前,人们普遍认为,通过利用记录介质和播放设备的功能增加这些视频数据的附加值,对于用于发行电影作品的营销策略具有重要意义。\n用于增加DVD的附加值的一个策略是:在记录视频数据的DVD上,记录使用该视频数据的谜题与游戏,从而使得用户享用这些功能,获得乐趣。即使使用相同的视频数据,当用户将其作为电影观看和作为相应游戏中的一个场景中观看时,会对该视频数据获得非常不同的印象。虽然需要做一些工作,但是这可以保持给用户带来新鲜感,因此这种附加值的增加对于电影制作人是一件强有力的武器。 \n[0005] 现有技术中关于用于增加DVD附加值的方法包括在下面参照专利1中公开的已知技术。 \n[0006] 参照专利1:日本专利No.2813245号公报 \n[0007] 常规上,附加值的增加通过利用可绘制(renderable)的次级图像(即,字幕)以及对于DVD播放设备可解释(interpretable)的命令实现。 换句话说,这种附加值的增加是应用播放设备的功能的副产品。随着家用电器网络化的发展,播放设备的功能即将发生巨大的革命。随着网络的发展,家用电器,如播放设备,已经开始包括浏览器和Java虚拟机作为标准配置,并配备了由这些浏览器和Java虚拟机实现的操作模式,这样使得可以通过网络向用户提供各种服务。考虑到播放设备的发展,可以预见电影供应商将使得电器制造商利用Java虚拟机和浏览器的特性,创造用于增加实际视频数据附加值的新内容。尽管Java虚拟机和浏览器已经得到广泛应用,通过使用这些应用软件增加实际视频数据的附加值的方案目前还没有出现。即使存在这样的需求,有或者没有Java虚拟机和浏览器的各种播放设备都将出现在实际中的商用电器设备市场上。如果将经过增加附加值的记录介质装载入没有这些应用软件的播放设备时,不能保证操作,那么该记录介质可能被市场拒绝。 [0008] 并且,当上面记录有电影作品的记录介质的发行后,目标播放设备连接到家用网络上时,电影作品的版权将承受未知的风险。尽管使用Java虚拟机和浏览器的操作模式具有吸引力,但是未知的风险肯定会使得版权所有者深感焦虑。 \n发明内容\n[0009] 本发明的目标是提供一种记录介质和播放设备,在播放设备配备了Java虚拟机和浏览器的情况下,通过使用这些应用软件,能够在将实际视频数据的附加值增加时,对于任何类型的播放设备实现操作保证。 \n[0010] 利用在上面具有视频数据,多个程序,以及表的记录介质实现上述目标,其中多个程序中的每一程序表示视频数据的一种播放控制过程;该表包括(1)多个程序中每一程序的识别信息,以及(2)表示多个程序中的每一程序属于电影模式或者增强模式的信息;多个程序中的某一程序包括用于转移(Branching)的命令;该转移命令利用通过表的 间接参照指定转移目的地(branching destination)。使用用于转移的命令,可以在在电影模式中作为电影的视频数据播放和在增强模式中的控制之间动态地转换。在通过使用Java虚拟机和浏览器实现增强模式中的控制的情况下,记录在记录介质上的视频数据在用于播放普通电影的屏幕上或者在与该Java虚拟机和该浏览器相关的屏幕上播放。这样的屏幕转换实现了空前的和全新的虚拟效果。使用用于转移的命令,可以在在电影模式中作为电影的视频数据播放和在增强模式中的控制之间动态地转换。在通过使用Java虚拟机和浏览器实现增强模式中的控制的情况下,记录介质上记录的视频数据在用于播放普通电影的屏幕上或者在与该Java虚拟机和该浏览器相关的屏幕上播放。这样的屏幕转换实现了空前的和全新的虚拟效果。 \n[0011] 上述的结构使得播放设备能够运行使用控制动态模式转换的游戏等,其可以使得实际视频数据的附加值增加。对于从电影模式到增强模式的转移,利用通过表的间接参照指定转移目的地。通过设计表的描述性内容,可以实现用于改变转移目的地的操作,该操作从记录介质载入不具有Java虚拟机和浏览器的播放设备时的转移目的地转换到记录介质载入具有这些应用软件的播放设备时的转移目的地。转移目的地改变的结果是,可以在将记录介质载入没有Java虚拟机和浏览器的播放设备时,关闭用于向增强模式中程序转移的路径,从而实现对于任何类型的播放设备的操作保证(operation assurance)。 [0012] 这里,在记录介质中,该表可以包括与多个程序一一对应的多个索引;该多个索引可以表示分别属于电影模式或者增强模式的相应的多个程序;并且通过使用与索引相关的标签,间接参照指定转移目的地程序。 \n[0013] 从一个程序到另一个程序的转移是通过参照该索引实现的。因为每一条索引表示了应该在其中执行相应程序的模式,可以方便地使播 放设备进行包括模式转换的转移,这里,在进行模式转换后进行到另一程序的转移。 \n[0014] 这里,在记录介质中,索引可以包括保留索引;在用于只能运行电影模式的播放设备中,当命令向增强模式程序转移时,该保留索引可以对应于用于给增强模式程序做为选择的电影模式程序。 \n[0015] 当记录介质载入没有增强模式的播放设备中时,通过参照保留的索引进行转移。\n这样,在程序转移中通向电影模式中的程序成为可能。由于关闭了用于向增强模式的程序转移的路径,可以避免无意的错误操作。 \n[0016] 在记录介质中,可以利用两种或者更多的运行模块运行电影模式程序和增强模式程序;该两种或者更多的运行模块可以是在控制层次中的同一层上的常驻程序(resident programs);而播放控制过程可以利用由该控制分级层次(control hierarchy layer)提供的函数进行描述。 \n[0017] 这里,在记录介质中,提供的函数可以是(1)使得播放设备基于预定播放路径进行播放控制的函数,(2)用于将播放设备中的寄存器设定为预定值的函数,以及(3)用于获得寄存器设定值的函数,这三种函数中的一种。 \n[0018] 根据上述的结构,在增强模式中,可以实现提取电影模式中寄存器值并根据该设定值执行不同过程的控制。例如,增强模式中的程序是用于在屏幕上移动字符的过程,在此情况下,从电影模式中将寄存器设定值传送至增强模式,使得播放设备可以执行控制过程,在此控制过程中,视频数据的用户设置与CG字符的移动联系紧密。采用这样的控制过程的结果是,可以扩展用于电影作品制作的表现范围,并且对描述的播放控制进行少量投资,就能有效地增加视频数据的附加值。因此,该控制过程将成为电影制作人和供应商们强有力的武器。 \n[0019] 在通过制作游戏寻求附加值的显著提升的情况下,在记录介质中,增强模式可以是使虚拟机执行程序的模式;并且增强模式程序可 以用面向虚拟机的程序设计语言描述。 [0020] 通过实现包括模式转换的转移,建立起用于开发Java语言(注册商标)的环境,从而使得大量软件公司进入产品市场成为可能。结果,将创造出很多全新的电影作品风格,其中伴随着向Java模式的转换播放视频数据。从而使得电影作品市场活力增强。 [0021] 在寻求与DVD播放环境结合的情况下,在权利要求13所述的记录介质中,电影模式程序可以包括按钮命令;该按钮命令可以是用于向增强模式程序转移的命令,并可能以视频数据与字幕数据复用后的复用流的形式记录在记录介质上;每一块字幕数据可以是按钮的图像数据,并且在对按钮的图像数据进行确认操作时,可以执行按钮命令。 [0022] 按钮命令符合命令能够被DVD播放设备理解的命令,并且使用按钮命令对控制过程的描述使得控制过程与DVD兼容。保证兼容性的结果是,在用DVD和BD-ROM同时发布一部电影作品的情况下,可以使得控制结构标准化,以减少在用BD-ROM发布电影作品时授权的需求。 \n[0023] 进一步地,从类DVD的电影模式转移到使用Java虚拟机和浏览器的增强模式的模式转换成为可能,这样使得播放控制包括DVD功能和Java虚拟机/浏览器功能。 \n[0024] 在采用浏览器的情况下,电影作品可能在对该电影作品有不良影响的网站上播放。如果允许这种播放,就存在着使得电影作品名誉受损的危险。对于电影制作人和供应商而言,他们努力制作的电影作品受到侮辱是无法容忍的,并且这将导致电影制作人和供应商与设备制造商之间产生摩擦。 \n[0025] 为了避免这种摩擦,理想的方法是在增强模式中用标记语言(markup language)描述程序。 \n[0026] 由于使用标记语言描述控制过程,使得可以利用控制包含从网站 检索的信息的控制过程,增加视频数据的附加值。由于来自网站的信息由创建者一方决定,使得可以避免通过互联网使得电影作品处于来自公众的诽谤与中伤之下。 \n[0027] 利用通过表的间接参照实现模式转换的技术重要性并不局限于上述的操作保证。\n在播放设备方遇到某种情况时,可能关闭从电影模式向增强模式的转移路径,因此,当播放设备在下列情况下,这是有重要意义的: \n[0028] (1)当用于保护电影作品版权的密钥在播放设备中暴露,并且播放设备被钥管理中心认为无效时; \n[0029] (2)当存在这样的可能性时:用户通过使用解密软件(rippersoftware)将电影作品的非授权复制记录在记录介质上,从而使得电影作品的复制在网络上传播; \n[0030] (3)尽管需要支付额外费用以执行增强模式,而没有付费时; \n[0031] (4)当由于在播放设备的系统中发生故障而希望将播放设备与网络断开时; [0032] (5)当在Java虚拟机和浏览器中发生版本冲突时; \n[0033] (6)当可能发生个人信息的泄露或者病毒软件的感染,并希望将播放设备与网络断开时;以及 \n[0034] (7)当希望将播放设备与网络断开时,用以阻止未授权的设备通过网络试图读取记录介质上记录的内容而保护记录介质上的电影作品。 \n[0035] 当在播放设备中存在(1)到(7)此类情况中的一种的时候,可能会断开模式转换。 [0036] 即使当播放设备置于能够与网络永久连接的环境中时,也可能将电影模式中的程序进行描述,以阻止在此情况下向Java虚拟机和浏览器的转换,例如,在不能确保对播放设备的操作和视频数据的版权保护时,以及用户为欠费违约时。这样,可以在版权所有者们将其电 影作品针对与家用网络相连的播放设备发行时,消除他们的担忧。 \n[0037] 此外,通过上述的间接参照的转移命令为电影作品的发行者们提供了显著有利条件,即,在以后可以容易地实现替换。当记录在记录介质上的某些视频数据块存在道德和伦理上的问题时,通过让播放设备下载表和替换的视频,并使播放设备在播放时利用新的表进行间接参照,本发明可以让用户观看替换的视频,取代存在问题的视频。当希望进行部分替换时,不需要重写所有记录在记录介质上的所有节目,这避免了当出现此类问题时需要召回记录介质的风险。 \n[0038] 除了希望替换视频的情况外,当希望播放设备不播放在记录介质上记录的多块视频数据中的某些视频数据块时,或者当希望改变记录在记录介质上的视频的顺序时,所有的要求就是下载一个表。因此,不需要重写记录介质上的程序,所以当发现问题时,可以减轻发行者的负担。 \n[0039] 根据本发明的记录介质最广泛的方案可以表述如下。 \n[0040] 一种上面记录有视频数据和程序的记录介质,其中的程序表明了视频数据的播放控制过程, \n[0041] 在播放设备中视频数据播放期间发生的事件触发播放控制过程的运行,以及 [0042] 该事件是下列事件之一:(i)表明当前播放位置已经达到视频数据的播放时间轴上预定时间点的事件,以及 \n[0043] (ii)表明当前播放位置已经进行到在播放轴上的预定时间间隔的事件。 [0044] 根据本发明的记录介质最广泛的方案可以表述如下。一种播放设备,涉及上面记录有视频数据和程序的记录介质,包括播放控制引擎,用于引起与视频数据播放和播放过程同步的事件发生,以及 \n[0045] 运行模块,用于在播放控制引擎导致事件发生时执行事件处理程序, \n[0046] 该事件是下列事件之一:(i)表明当前播放位置已经达到视频数据的播放时间轴上预定时间点的事件,以及 \n[0047] (ii)表明当前播放位置已经进行到在播放轴上的预定时间间隔的事件。 [0048] 由于与视频数据播放同步的程序可以以事件处理程序的形式创建,使得程序员能够方便的进行开发。 \n[0049] 附图简述 \n[0050] 图1示出了根据本发明的记录介质的应用; \n[0051] 图2示出了BD-ROM的结构; \n[0052] 图3使用目录结构示出了BD-ROM的应用层的格式; \n[0053] 图4为分类图,其中文件按照功能的角度进行了分类; \n[0054] 图5示出了BD-ROM作为目标的软件的层模型; \n[0055] 图6示意性地示出了AV流是如何构成的; \n[0056] 图7示意性地示出了AV流是如何记录在BD-ROM上的; \n[0057] 图8示出了流管理信息(Stream Management Information)的内部结构; [0058] 图9示出了PL信息的内部结构; \n[0059] 图10示意性地示出了通过使用PL信息的间接参照; \n[0060] 图11示出了当定义与图10所示的PL不同的PL时的例子; \n[0061] 图12示出了在层模型层4(动态脚本)上的播放模式; \n[0062] 图13示出了通过三种模式的动态播放控制创作的电影作品; \n[0063] 图14示出了导航按钮(导航按钮)信息的结构; \n[0064] 图15示出了当利用复用在AV流上的导航按钮信息实现按钮控制时的例子; [0065] 图16示出了在AV流中的导航按钮信息如图15所示设置的情况下,电影对象的一个例子; \n[0066] 图17示出了在利用图16的电影对象的命令进行转移的情况下, 对Java对象的示例性描述; \n[0067] 图18示出了电影对象与Java对象之间的联系; \n[0068] 图19示意性地示出了由电影模式中的角色介绍和Java模式中的游戏构成的标题(Title); \n[0069] 图20示意性地示出了利用Java对象进行的PL播放; \n[0070] 图21示出了利用与电影模式中使用的PL不同的PL进行的场景提取; \n[0071] 图22示出了对WebPage对象的示例性描述; \n[0072] 图23A示出了INFO.BD-ROM的内部结构; \n[0073] 图23B示出了索引表(Index Table)中的索引(Index); \n[0074] 图24A示出了上面记录有多个动态脚本(001.MOVIE,002.MOVIE,003.MOVIE,…,\n001.CLASS,002.CLASS,003.CLASS)的BD-ROM; \n[0075] 图24B示出了当在BD-ROM中描述了多个如图24A所示的动态脚本时,对索引表的示例性描述; \n[0076] 图25A示出了当如图24B描述索引表时;在完整系统中的间接参照; \n[0077] 图25B示出了在核心系统中的间接参照; \n[0078] 图26示意性地示出了从图18所示的电影对象到Java对象的转移是如何进行的; [0079] 图27示出了当上面记录有图18所示的脚本的BD-ROM载入播放设备的核心系统时,进行何种转移; \n[0080] 图28示出了根据本发明的播放设备的内部结构; \n[0081] 图29为示出了由模块管理器20进行的处理过程的流程图; \n[0082] 图30为示出了由模块管理器20进行的处理过程的另一流程图; \n[0083] 图31为示出了由播放控制引擎12进行的PLPlay函数的执行过程的流程图; [0084] 图32示出了根据第二实施例的BD-ROM的文件结构; \n[0085] 图33示出了PLMark和ClipMark共同的数据结构; \n[0086] 图34A和34B示出了对于用于定义在PL#1播放过程中出现的TimeEvent的PLMark的示例性描述; \n[0087] 图35示出了对于用于定义在PL#1播放中出现的UserEvent的PLMark的示例性描述; \n[0088] 图36示出了由TimeEvent驱动的事件处理程序的例子; \n[0089] 图37示出了由UserEvent驱动的事件处理程序的例子; \n[0090] 图38示出了利用将PL中播放的图片和图36和37的事件处理程序所绘制\n(render)的图像相结合,作为事件处理程序结果的条件转移; \n[0091] 图39示出了根据第二实施例的播放控制引擎12的处理过程; \n[0092] 图40为用于表明后退事件的技术重要性的示意图; \n[0093] 图41A为当Java模式中的PL播放开始时,获得屏幕显示的例子; \n[0094] 图41B为当PL播放点达到时间t1时,屏幕显示的例子; \n[0095] 图41C为当PL播放点达到时间t2时,屏幕显示的例子; \n[0096] 图42A示出了在快退后,当PL播放点达到时间t1时,屏幕显示的例子; \n[0097] 图42B示出了在快退后,当PL播放点达到时间t0时,屏幕显示的例子; \n[0098] 图42C示出了当PL播放点再次达到时间t1时,屏幕显示的例子; \n[0099] 图43示意性地示出了在快进过程中发生的TimeEvent; \n[0100] 图44A为当在Java模式中PL播放开始时,获得屏幕显示的例子; \n[0101] 图44B为当PL播放点达到时间t1时,屏幕显示的例子; \n[0102] 图44C示出了在已经达到时间t2的PL播放点进行快进时,屏幕 显示的例子; [0103] 图45示意性地示出了暂停事件的发生; \n[0104] 图46示出了由BD-ROM实现的菜单层次; \n[0105] 图47示出了用于操作具有此层次的菜单的电影对象; \n[0106] 图48示出了由根据第四实施例的模块管理器20进行的处理过程; \n[0107] 图49示出了属于Java模式的类的成员函数; \n[0108] 图50示出了通过在Java模式中的成员函数的进行的控制; \n[0109] 图51示出了根据第六实施例的菜单层次; \n[0110] 图52示出了根据第六实施例的电影对象和索引表; \n[0111] 图53示出了日程表的例子; \n[0112] 图54示出了根据第七实施例的PL信息的结构; \n[0113] 图55示出了分层共享,这里,当数字流被电影模式和Java模式共享时,每一块PL信息被电影模式或者Java模式独占使用; \n[0114] 图56为示出了根据第八实施例的BD-ROM的生产过程的流程图;以及 \n[0115] 图57示出了用于从AV流的导航按钮信息直接转移到Java对象的播放控制的例子。 \n[0116] 发明详述 \n[0117] 1、第一实施例 \n[0118] 下面给出了对根据本发明的记录介质的优选实施例的说明。首先,描述了关于本发明的记录介质的实现的应用。图1示出了根据本发明的记录介质的应用。图1中的BD-ROM \n100为本发明的记录介质。BD-ROM 100用于向包括播放设备200,电视机300和遥控器400的家庭影院系统提供电影作品。 \n[0119] 然后,关于本发明的记录介质的实现描述了产品应用。本发明的记录介质可以作为BD-ROM的应用层的改进结果而实现。图2示出 了BD-ROM的结构。 \n[0120] 图中的级4示出了BD-ROM,级3示出了BD-ROM上的轨道。图中以横向拉伸的形式描绘了轨道,尽管实际上轨道是在BD-ROM上从内到外螺旋盘绕的。轨道由导入区,容量区(volume area),以及导出区组成。图中的容量区具有由物理层,文件系统层,以及应用层构成的层模型。本发明的记录介质通过在BD-ROM的应用层上形成图2所示的数据格式而进行工业生产。 \n[0121] 图3示出了通过使用目录结构的BD-ROM应用层(应用)的格式。在该BD-ROM中,如图所示,JCLASS目录与BROWSER目录位于BD-ROMAV目录之下,BD-ROMAV目录在ROOT目录下。 \n[0122] 在BD-ROMAV目录下,有名为INFO.BD-ROM,XXX.M2TS,XXX.CLPI,YYY.PL,以及ZZZ.MOVIE的文件。在JCLASS目录与BROWSER目录下,分别有单独的名为ZZZ.CLASS与ZZZ.HTM的文件。 \n[0123] 图4为分类图,其中文件按照功能的角度进行了分类。如图4所示,包括层1到4的分层结构象征表示图中的分类。在图中XXX.M2TS被归入层2。XXX.CLPI和YYY.PL被归入层3(静态脚本)。BD-ROMAV目录下的ZZZ.MOVIE,JCLASS目录下的ZZZ.CLASS与BROWSER目录下的ZZZ.HTM都被归入层4。 \n[0124] 图4分类(层1至4)的目标是如图5所示的层模型。下面参照图5,描述了作为BD-ROM目标的控制软件的层模型。 \n[0125] 图5中的层1为物理层,其中实现了与用于处理的流相关的供应控制。如层1中所示,处理目标流不仅以BD-ROM,而且以其他各种记录和通信介质,包括HD(硬盘),存储卡,以及网络作为它们的来源。对于这些来源的直控制(磁盘访问,卡访问,网络通信)通过层\n1实现,这些来源诸如有HD,存储卡,以及网络等。 \n[0126] 层2为解码格式层。层2定义了用于对由层1提供的流进行解码 的解码格式。在本实施例中采用了MPEG-2解码格式。 \n[0127] 层3(静态脚本)定义了流的静态脚本。静态脚本是由光盘创建者预先定义的播放路径和流管理信息,基于这些静态脚本的播放控制在层3(静态脚本)中定义。 \n[0128] 层4用于实现流的动态脚本。动态脚本是作为操作和播放设备状态的结果用于动态地改变播放过程的脚本,并且在层4中定义基于这些动态脚本的播放控制。按照此层模型下面描述了,相应于实际流的,静态脚本,以动态脚本的文件。 \n[0129] 首先,描述了属于层2的流(XXX.M2TS)。 \n[0130] AV流(XXX.M2TS)是MPEG-TS(传输流)格式的数字流,并通过将视频流,一个或者更多的音频流,一个或者更多的字幕流,以及导航按钮信息进行复用而获得。该视频流表示电影的视频部分,该音频流表示电影的音频部分,字幕流表示电影的字幕部分,而导航按钮信息表示用于菜单的动态播放控制的过程。图6示意性地示出了AV流是如何配置的。 [0131] AV流(级4)由(i)将包含多个视频帧(图片pj1,pj2,以及pj3)的视频流和包含多个音频帧(级1)的音频流分别转化为PES包序列(级2),然后其中的每一个包转化为TS包(级3),(ii)类似地,将导航按钮信息(级7)转化为PES包序列(级6),然后转化为TS包(级5),(iii)然后复用所有的TS包。复用包括排列存储视频帧的TS包和存储音频帧的TS包,从而使得音频帧位置靠近将与音频帧同时从BD-ROM上读出的视频帧。由于导航按钮涉及动态播放控制,此处省略了说明。此外,本实施例中较少涉及字幕流,因此在图\n6中略去。 \n[0132] 与普通计算机文件一样,通过上述过程产生的AV流被分为多个盘区(extent),并记录在BD-ROM的区域上。图7示意性地示出了AV流如何记录在BD-ROM上。 \n[0133] 文件管理信息fk1中描述了组成AV流的每一盘区的长度和表明 在BD-ROM上盘区记录位置的地址。 \n[0134] 可以看到,对于通过分割AV流获得的三个盘区(盘区1,盘区2,和盘区3)中的每一个,它的地址(分别为adr1,adr2,和adr3)以及长度(length1,length2,length3)在文件管理信息fk1中进行了描述。该AV流包含了一个或者更多的ACCESS UNIT,并且可以在这些ACCESS UNIT中被提示(be cued)。ACCESS UNIT是最小的解码单元,包括单个GOP(图片组)以及与GOP同时读取的音频帧。GOP包括:双向预测(B)图片,其利用在过去方向上和在将来方向上播放的图像的时间相关特征进行压缩;预测(P)图片,其利用在过去方向上播放的图像的时间相关特征进行压缩;以及内部(I)图片,其在单帧图像中利用空间频率特征(即,与时间无关的特征)进行压缩。 \n[0135] 注意到,在XXX.M2TS中的文件名“XXX”是添加在BD-ROM中的AV流上的3位识别号码的简要表达。即,图7中的AV流用“XXX”唯一地标识。因此完成了流(XXX.M2TS)的描述。应该注意到,这里采用的3位数仅作为示例,可以使用任意位的数字。 \n[0136] 1.1静态脚本 \n[0137] 下面描述了静态脚本文件(XXX.CLPI和YYY.PL)。 \n[0138] 流管理信息(XXX.CLPI)为关于单独的AV流的管理信息。图8示出了流管理信息的内部结构。由于AV流是通过复用视频和音频流而获得,并可以在ACCESS UNIT中被提示,因此视频管理信息的管理项目包括视频和音频流的特性,以及在AV流中的提示位置(cueposition)。图中的引导线(lead line)示出了流管理信息结构的深层细节。如线hn1所示,流管理信息(XXX.CLPI)包括关于视频和音频流的“特性信息(attribution information)”,以及用于提示ACCESS UNIT的参照表“TMAP”。 \n[0139] 如虚线hn2所示的特性信息(特性),包括关于视频流的特性信 息(视频特性信息),特性信息的块数(数目),以及与多个复用在AV流上的音频流的每一个相关的特性信息(音频特性信息#l-#m)。如虚线hn3所示,关于视频流的管理信息,表示用于压缩视频流的压缩格式(编码),以及分辨率(分辨率),高宽比(比例),以及构成视频流的图片数据的每一块的帧频(帧频)。 \n[0140] 另一方面,如虚线hn14所示,关于音频流的特性信息(音频特性信息#l-#m)表示分别用于压缩各个音频流的压缩格式(编码),以及各音频流的通道号(Ch.)和相应的语言(Lang.)。 \n[0141] 时间映射表(TMAP)为使用时间信息用于间接参照多个提示位置的参照表。如虚线hn5所示,TMAP包括多块条目(entry)信息(ACCESSUNIT1#条目,ACCESS UNIT2#条目,ACCESS UNIT3#条目,…),以及条目信息的块数(数目)。如虚线hn6所示,每一块条目包括播放持续时间(持续时间)以及相应的ACCESS UNIT的数据大小(大小),播放时间与数据大小互相关联。由于采用了变长度编码压缩格式,通过参照ACCESS UNIT的条目,甚至在包括若干GOP的ACCESSUNIT的大小和持续时间不一致的时候,也可以从任意的播放时间提示至对应于播放时间的ACCESS UNIT中的图片数据块。注意XXX.CLPI使用的文件名“XXX”与流管理信息相应的AV流的文件名相同。换句话说,图8中文件名为“XXX”的AV流对应于AV流(XXX.M2TS)。因此,完成了对流管理信息的描述。下面描述播放列表信息(以下称为PL信息)。 \n[0142] YYY.PL(PL信息)为构成播放列表的表,播放列表为播放路径信息,由单元格列表(CELLList)组成。图9示出了PL信息的内部结构。 \n[0143] 单元格列表包括多块单元格信息(CELL信息#1,#2,#3,…,#n)以及单元格信息的块数(数目)。单元格信息为指针信息,其定义了构成播放列表的一个或者更多的逻辑播放区段。如线hs1所示,非常详 细地示出了一块单元格信息的结构。如利用该线所示的,一块单元格信息由表示AV流名称的“流名称”,表示播放区段开始的信息“进入点信息(In point information)”,以及表示播放区段结束的信息“离开点信息(Out-point Information)”构成,其中播放区段的进入点(In-point)和离开点(Out-point)属于该AV流。 \n[0144] 单元格信息的特征在于该符号表示。即,播放区段由使用时间映射表作为参照表的间接参照格式定义。图10示意性地示出了使用PL信息的间接参照。图中的AV流由多个ACCESS UNIT构成。流管理信息中的TMAP指定ACCESS UNIT的扇区地址,如箭头ay1,ay2,ay3,以及ay4所示。图中的箭头jy1,jy2,jy3,以及jy4示意性地示出了使用单元格信息的ACCESS UNIT的参照。换句话说,可以看到,由单元格信息进行的参照(箭头jy1,jy2,jy3,以及jy4)包括间接参照,其中的AV流中包括的ACCESS UNIT的地址通过TMAP指定。 \n[0145] 由单元格信息,流管理信息,以及AV流的组形成的BD-ROM上的播放区段被称作“单元格”。由PL信息,流管理信息以及AV流的组形成的BD-ROM上的逻辑播放单元被称作“播放列表”(简称为“PL”)。记录在BD-ROM上的电影作品构建于这些逻辑播放单元(PL)之中。因此,可以容易地创建与实际电影不同的电影作品,通过定义指定这些场景的PL,该电影作品仅由那些其中出现了某些角色的场景组成。图11示出了当定义与图10所示的PL(PL信息#1)不同的PL(PL信息#2)时的例子。 \n[0146] 因为只需要通过定义多种PL信息块,就能够增加电影作品的变化,所以静态脚本的最大优点是能够增加电影制作人的表达范围。 \n[0147] 除了PL和CELL以外,BD-ROM中的播放单元被称为章节(Chapters)。章节由一个,两个或者更多的单元格构成。 \n[0148] 同样,PL信息的文件名“YYY”为附加在BD-ROM中的PL信息 上的3位识别号码的缩写表达。即,图11中的PL信息使用该识别号码而唯一识别。将PL信息的识别号码表达为“YYY”,表明该识别号码与AV流和AV流管理信息的识别号码“XXX”的编号系统不同。\n应该注意到,此处所指的3位数字仅为示例,可以采用任意位数字。 \n[0149] 因此,完成了静态脚本的描述。下面描述动态脚本。 \n[0150] 1.2动态脚本 \n[0151] 动态脚本是说明关于AV流的播放控制的程序。动态脚本改变的播放控制响应用户在设备的上的操作,类似于在角色中的程序。这里,动态播放控制有两种模式。两种模式中的一种是在为AV设备特定的播放环境中,用于播放记录在BD-ROM上的视频数据的模式(普通模式),而另一模式是用于增加记录在BD-ROM上的视频数据的附加值(增强模式)。\n图12示出了在层模型中的层4上的播放模式。在图中的层4上显示了一种普通模式和两种增强模式。该普通模式称为电影模式,为针对类DVD(DVD-like)的环境的播放模式(即,与用于DVD的播放模式相类似的模式)。关于两种增强模式,第一种,称为Java模式,为主要使用Java虚拟机的播放模式。第二种增强模式,称为浏览器(Browser)模式,为主要使用浏览器的播放模式。 \n[0152] 由于在层4上有三种模式(即,电影模式,Java模式,浏览器模式),最好描述动态播放控制,从而在三种模式中的任意一种中运行。如果用与面向DVD播放器的命令类似的命令描述控制过程,那么可以得到的播放设备所运行的播放控制与DVD播放设备中存在的播放控制很相似。当使用页描述语言描述控制过程时,可以描述用于例如访问网络站点和下载文件的控制过程。图13A-13C示出了通过三种模式的动态播放控制创建的电影作品。 [0153] 图13A示出了在电影模式中,通过定义动态播放控制而创建的电影作品中的一个场景。由于电影模式允许用命令描述播放控制,其中该命令非常接近于那些DVD播放设备可以理解的命令,可以定义 与在DVD上使用的播放控制类似的播放控制,即,根据在菜单上选择的模式,使得播放进行的播放控制。 \n[0154] 图13B示出了通过在Java模式中定义动态播放控制而创建的电影作品。Java模式允许以能够被Java虚拟机理解的Java语言描述控制过程。在播放控制用于控制计算机图形(CG)运动的情况下,可以在Java模式中定义播放控制,例如,用于相邻于显示视频的窗口、来回移动的CG图像(图中的猫头鹰)。 \n[0155] 图13C示出了通过在浏览器模式中定义动态播放控制而创建的电影作品。浏览器模式允许使用能够被浏览器理解的HTML语言描述播放控制。在播放控制用于控制访问网站与窗口操作的情况下,可以在浏览器模式中定义一种播放控制,例如,用于相邻于显示视频的窗口,显示从一个网站取回的在线数据(角色A的公告牌和图中的横幅广告)。 [0156] 因此,完成了对动态脚本的总体描述。下面描述对于每一种模式,定义单个模式播放控制的文件。 \n[0157] 1.3电影模式中的动态脚本 \n[0158] 下面的描述关于电影模式中的动态脚本。电影模式中的动态脚本包括在传送流中的导航按钮信息和电影对象。 \n[0159] 导航按钮信息,是复用在AV流上的流中的一个,控制在菜单上面按钮的行为,并响应经过确认的按钮执行播放控制。该菜单行为包括(i)响应在遥控装置上按下箭头键,改变菜单上的按钮状态,(ii)根据菜单上的按钮确认,更新在播放控制中的寄存器状态,(iii)响应菜单上的按钮确认,实现转移。控制行为并使得播放设备根据按钮控制执行命令是导航按钮信息的作用。图14示出了导航按钮信息的结构。该导航按钮信息由按钮控制信息和图像数据组成。如虚线hh1所示,图像数据包含多块PNG数据(PNGs)以及所有PNG数据块参照的查找表(共用CLUT)。图像数据中的PNG数据(PNG数据#1,PNG数据#2, 和PNG数据#3)的每一块是用于绘制(rendering)菜单上每一按钮(Button#1,Button#2,和Button#3)的图像数据。 \n[0160] 如虚线hh2所示,按钮控制包括页附属信息和按钮附属信息。如虚线hh3所示,页附属信息由表明显示按钮的开始时间的“按钮显示开始时间”,用于表明显示的结束时间的“按钮显示结束时间”,以及用于表明在初始状态按钮被选择的状态的“初始选择按钮”构成。 \n[0161] 如虚线hh4所示,按钮附属信息由多块按钮附属#1,按钮附属#2…等构成。如虚线hh5所示,每一块的按钮附属包括:“按钮图像信息”,其表明了在多块PNG数据中哪一幅图像用于相应的按钮,“按钮显示位置”,其表明了按钮图像的位置,“与上面/下面/侧面按钮的关系”,其表明在该按钮的上,下,左,右分别有什么按钮,以及当按钮被确认时执行的“按钮命令”。 \n[0162] 在关于菜单上的每一按钮的按钮附属信息中,描述了在每一按钮的上,下,左,右有什么按钮。因此,可以响应于用户在遥控装置上按下箭头键,通过参照在按钮附属信息中的与上面/下面/侧面按钮的关系,识别沿着按下箭头键表示的方向上的按钮,并随后改变按钮的状态。这样,随着箭头键的按动,按键表示的方向上的按钮的状态发生改变。然后,当用户进行确认操作时,可以根据按下的按钮,通过实现相应于该按钮的按钮附属信息的按钮命令,从而执行动态播放控制。 \n[0163] 由于导航按钮信息被并入AV流中,因此在播放控制的描述中,便于使得播放设备根据特定的视频帧出现在屏幕上的定时而执行特定的处理,即,播放控制与视频内容精确地同步。此外,由于导航按钮信息复用在实际的AV流上,所以甚至当有数百个区段需要进行播放控制时,也不需要在存储器中保存相应于这些区段的所有的导航按钮信息。导航按钮信息对于每一ACCESS UNIT随着视频包从BD-ROM中读出。因此,最好使相应于用于当前播放的视频区段的 导航按钮信息块驻留在存储器中,然后当此视频区段播放结束时,从存储器中删除这些导航按钮信息块,并在存储器中保存对应于下一视频区段的导航按钮信息块。由于导航按钮信息复用在AV流上,因此即使当例如有数百块的导航按钮信息时,安装的存储器也可以保持在最小的需求量上。 \n[0164] 参照图15,对关于导航按钮信息的命令的示例性描述进行说明。图15示出了当利用复用在AV流上的导航按钮信息实现按钮控制的例子。 \n[0165] 图15中的AV流为电影,而图中显示的多个按钮,与电影中的一帧相结合。图中的按钮A,B,C中的每个对应于在电影作品中出现的角色,并且通过用于选择在电影中出现的角色A,角色B,和角色C之一的选择操作,每一按钮的状态在选择和确认状态之间转换。 [0166] 图15中,在视频流中,在需要互动操作的时间段之前设置有导航按钮信息。当菜单上的按钮得到确认,图中复用在AV流上的导航按钮信息将GPRM(0)设置为对于该按钮唯一的值。GPRM(0)为在层模型的层3(静态脚本)中管理的寄存器设置值。具体而言,当角色A的按钮被确认时,GPRM(0)被设置为“1”,而当角色B的按钮被确认时,GPRM(0)被设置为“2”。当角色C的按钮被确认时,GPRM(0)被设置为“3”。按照这种方式表现导航按钮信息使得在GPRM(0)中可以保存在提供菜单时选择了哪个按钮的信息。因此完成了对导航按钮信息的描述。 \n[0167] 电影对象(XXX.MOVIE)是用与DVD播放设备可以理解的命令相似的命令描述的动态脚本。电影对象包括:用于指示PL播放的播放命令,在PL播放之前执行的命令(PRE命令),以及在PL播放之后执行的命令(POST命令)。一个或者更多的电影对象与其播放由单个电影对象所指示的PL的配对被称为标题(Titles)。标题是在BD-ROM上对应于整个电影作品的单位。下面有时侯将“电影对象”缩写为 “M-OBJ”。 \n[0168] 图16示出了在AV流中的导航按钮信息设置为如图15所示的情况下,电影对象的例子。图中的电影对象包括:用于设置GPRM(0)为“0”的PRE命令;用于指示播放设备进行PL播放的命令,(PlayPL(PL#1));以及用于指示播放设备执行转移到另一动态脚本的POST命令,(IF(GPRM(0)=0){Jump Title#m}else{Jump Title#m+1})。作为PRE命令的结果,GPRM(0)在PL播放之前初始化。如果GPRM(0)显示为“0”,进行向电影对象#m+1的转移,其中“0”为初始值。另一方面,如果当菜单显示并且GPRM(0)被设置为非“0”的值的时候进行按钮选择,那么进行向另一标题(Title#m)的转移。 \n[0169] 如果用于根据用户操作改变寄存器设置值的命令被并入导航按钮信息,并且使用在播放设备中寄存器设置值的条件转移被描述为POST命令,那么可以容易地创建多情节的电影,即,电影作品的播放过程可以根据用户的操作而改变。 \n[0170] 由于在电影模式中存在两种脚本(导航按钮信息和电影对象),需要与菜单的按钮行为精确同步的处理可以在导航按钮信息中描述,而如用于PL播放的pre-和post-处理的综合处理可在电影对象中描述。因此,可以根据处理是否与按钮或者综合处理同步,而改变命令的描述,这样可以增加用于播放控制的表达的范围。进一步地,利用在旧的导航按钮信息上面写入新的导航按钮信息,即使需要与按钮同步的播放控制的数量增加,该播放控制的描述也不需要播放设备具有大容量的存储器。 \n[0171] 1.4Java模式中的动态脚本 \n[0172] 下面说明用在Java模式中的动态脚本。 \n[0173] ZZZ.CLASS为类文件,其中定义了在Java模式中指定动态播放控制的应用程序(Java对象)。由于Java虚拟机为Java模式中脚本的主要执行体,所以Java对象用Java语言描述。近年来,由SUN Microsystmes Inc.开发的面向中间件的描述语言Java语言(注册商标名)更加广泛地应用于消费产品上,如日本蜂窝电话以及用于欧洲数字广播的DVB-MHPs(数字视频广播多媒体家用平台)。与C++一样,Java语言也是一种面向对象的程序设计语言。与C++的不同在于,C++是在操作系统中实施,而Java语言定义了Java虚拟机并在主要的操作系统如Windows和Linux中实施。因此,使用Java语言使得对处理过程的描述可以独立于操作系统。采用Java语言用于蜂窝电话与STB(机顶盒)的原因在于,即使制造商之间的运行环境不同,Java语言也可以描述与环境无关的处理过程的执行。在下面有时候“Java对象”缩写为“J-OBJ”。 \n[0174] 图17示出了在利用图16示出的电影对象的命令进行转移的情况下,对Java对象的示例性描述。该Java对象执行的过程为(i)绘制CG,以及(ii)根据在GPRM(0)当中的值,播放PL中的CELL。这样的过程实现了创建如图13B所示的结合的图像,即,播放将角色的CG设置为与视频数据相邻的组合图像所构成的PL。注意,根据GPRM(0),示例描述的IF语句改变将绘制的角色以及将播放的CELL。 \n[0175] 下面给出的说明将注意力集中在将要提供的CG上。在图17所示的例子中,“A.drawCharacter();”表示使用了类“Character A”中的一个方法(method)(即图中的drawCharacter函数)将角色A的对象绘制在屏幕上。类似地,“B.drawCharacter();”和“C.drawCharacter();”表示分别使用了类“Character B”和类“Character C”中的一个方法(即图中的drawCharacter函数)在屏幕上绘制角色B和C的对象。 \n[0176] 由 于“A.drawCharacter();”,“B.drawCharacter();” 以 及\n“C.drawCharacter();”依赖于GPRM(0)的值互斥地执行(图17中的IF语句),如果GPRM(0)为“1”,绘制角色A的CG,如果GPRM(0)为“2”,绘制角色B的CG,如果GPRM(0)为“3”,绘制角色C的CG。图18示出了电影对象与Java对象的关系。图的左半部分与图16中所示的 对电影对象的示例性描述相同。图中的GPRM(0)由合并在AV流中的导航按钮信息设定。GPRM(0)是在层模型的层3(静态脚本)中管理的参数。由于可以在电影模式,Java模式和浏览器模式中的任意模式中引用GPRM(0),所以Java对象的处理可以根据在电影模式中设定的GPRM(0)进行转换。在电影模式中,可以利用导航按钮信息改变GPRM(0)的值,在Java模式中可以转换待绘制的CG。利用通过GPRM(0)在电影对象和Java对象之间的协作,可以创建新的风格的电影作品,其中视频数据的播放和由Java虚拟机进行的处理结合在一起。 \n[0177] 如果根据GPRM(0)的值的Java对象处理为,例如使得主演游戏(game starring)的角色A,B,C中的一个其过程为:(1)在电影模式中利用视频介绍角色;(2)从用户处接受角色选择;并且(3)在Java模式中,可以方便地使用电影的视频数据描述执行用户所选择的游戏主演的角色(这样的过程在当前的游戏软件中普遍存在)。图19示意性地示出了由电影模式中的角色介绍和Java模式中的游戏组成的标题。作为通过GPRM(0)在电影模式和Java模式之间协作的结果,从角色介绍到执行游戏扮演角色的一系列过程可以利用电影模式中的电影方便地描述。 \n[0178] 另一方面,关于将被播放的CELL,当GPRM(0)为“1”时绘制PL#1的CELL#1,当GPRM(0)为“2”时绘制PL#2的CELL#1,当GPRM(0)为“3”时绘制PL#3的CELL#1。 [0179] 这里,举个例子,PL#1的CELL#2为播放单元,其指定在AV流中仅有的其中出现角色A的部分。通过与角色A的CG一起播放此CELL,可以显示组合的图像(图13B),其中角色A的CG在显示的视频中相邻角色A来回移动。图20示意性地示出了由Java对象执行的PL播放。图中的Java对象包括指示PL#1的CELL#2的函数调用。响应于该函数调用,播放构成PL的CELL之一。如果图中的PL#1 已经被指示为在电影模式中播放,那么这里只选取CELL#2的区段在Java模式中使用。Java对象的这种函数调用获得直接的“场景抽取”,其中,在电影模式中播放的电影作品(PL#1)中只有指定的场景(CELL#2)被用在Java模式游戏中。图20的例子说明了假设PL共享时的场景抽取,这里在电影模式中使用的PL使用在Java模式中。或者,也可以使用与在电影模式中所用PL不同的PL进行场景抽取。\n图21示出了通过使用与在电影模式中所用PL不同的PL进行的场景抽取。 \n[0180] 图20和图21中的抽取,使得能够根据从在游戏中取回的电影的场景,方便地创建用于Java模式游戏的闪回场景(flashback scene)。这样的抽取使得制作电影作品包括的表达方式范围得到了扩展,从而提升了BD-ROM的商业价值。注意到在图20和图21的例子中,从每个CELL中进行抽取,然而,由Java对象所指示用于播放的部分可以由时间确定。\n类似地,在浏览器模式中可以进行抽取。由于并入电影作品或者使用电影场景的游戏软件可以用Java语言编程,所以使得大量软件公司进入BD-ROM制作行业。 \n[0181] 1.5浏览器模式中的动态脚本 \n[0182] WebPage对象(ZZZ.HTM)是用页面描述语言,如HTML,XML,以及BML描述的场景。\n下面有时将“WebPage对象”缩写为“WP-OBJ”。由于WebPage对象可以用HTML描述,所以浏览器模式实现了具有包括网站访问的控制过程的描述。图22示出了描述WebPage对象的例子。这个示例描述基于图18。根据GPRM(0)值,图22中的WebPage对象的不同在于访问不同的网站。换句话说,当GPRM(0)为“1”时,对关于角色A的网站进行访问,当GPRM(0)为“2”时,对关于角色B的网站进行访问,当GPRM(0)为“3”时,对关于角色C的网站进行访问。图22中的GPRM(0)由并入AV流的导航按钮 信息设置。此外,由于GPRM(0)是在层模型的层3(静态脚本)中,并可以在电影模式,Java模式和浏览器模式中的任意模式中引用,所以WebPage对象的处理可以根据已经在电影模式中设定的GPRM(0)进行转换。在来自网站的在线数据是每天或者每周更新的新闻,BBS(电子公告牌系统),以及横幅广告时,使得这些在线数据显示,以确保保持视频数据的印象总是新的。此外,由于WebPage对象允许描述访问网络服务器的过程,因此可以获得来自网络服务器的最新版本的PL和VOB(DVD视频对象),并使得播放设备进行包括这些PL和VOB的播放控制。在电影对象和WebPage对象之间通过GPRM(0)进行的协作,使得创建了新型的电影作品,其中将视频数据播放与浏览器处理结合在一起。 \n[0183] ZZZ.MOVIE,ZZZ.CLASS,以及ZZZ.HTM文件名中的文件体“ZZZ”为附在BD-ROM中各个动态脚本上的3位识别号码的简化表示。即,图23中的脚本是用该识别号码“ZZZ”唯一地标识。将脚本的识别号码表达为“ZZZ”说明此识别号码与AV流的识别号码“XXX”以及PL信息的识别号码“YYY”是不同的编号系统。应该注意到,这里所指的3位号码仅仅作为示例,可以使用任意位的号码。 \n[0184] 1.6描述脚本的技术 \n[0185] 这里说明了一种用于描述MOVIE,Java,以及WebPage对象的控制过程的技术。在被这些脚本作为目标的层模型中,实现电影对象的DVD虚拟播放器,实现Java对象的Java虚拟机,以及实现WebPage对象的浏览器都在层3(静态脚本)中。在Java对象与WebPage对象中,在Java模式与浏览器模式下执行的固有处理,如绘制CG和访问网站,最好能用Java语言和HTML分别描述。任何其他处理,即,BD-ROM的播放控制,可以使用由层3(静态脚本)提供的编程函数进行描述。 \n[0186] 下面的描述关于由层3(静态脚本)提供的函数。 \n[0187] (a)播放函数:从由第二参数确定的位置开始播放由第一参数确定的PL \n[0188] 格式:PlayPL(第一参数,第二参数) \n[0189] 第一参数能够利用PL数确定播放的PL。第二参数能够利用包含在PL中的CELL,以及PL中任意的时间,章节,和标记,指定播放的起始位置。 \n[0190] 利用CELL的指定播放起始位置的PlayPL函数名为“PlayPLatCELL()”; [0191] 使用章节指定播放起始位置的PlayPL函数名为“PlayPLatCharpter()”; [0192] 利用标记指定播放起始位置的PlayPL函数名为“PlayPLatMark()”;以及 [0193] 利用时间信息指定播放起始位置的PlayPL函数名为“PlayPLatSpecified Time()”。 \n[0194] (b)用于播放设备的状态获取与状态设置的函数 \n[0195] 播放设备的状态在32个独立的播放状态寄存器(这些寄存器的设置值被称为系统参数(SPRM)),以及32个独立的通用寄存器(这些寄存器的设置值被称为一般参数(GPRM))中示出。 \n[0196] 电影对象,Java对象,以及WebPage对象能够,例如通过利用下列从(i)到(iv)的函数,设置这些寄存器中的值以及从这些寄存器获取值。 \n[0197] (i)“Get value of Player Status Register”函数 \n[0198] 格式:Get value of Player Status Register(参数) \n[0199] 此函数获取由参数指定的播放器状态寄存器的设置值。 \n[0200] (ii)“Set value of Player Status Register”函数 \n[0201] 格式:Set value of Player Status Register(第一参数,第二参数) \n[0202] 此函数将由第二参数指定的值在由第一参数指定的播放器状态 寄存器中设置。 [0203] (iii)“Get value of General Purpose Register”函数 \n[0204] 格式:Get value of General Purpose Register(参数) \n[0205] 此函数获取由参数指定的通用寄存器中的设置值。 \n[0206] (iv)“Set value of General Purpose Register”函数 \n[0207] 格式:Set value of General Purpose Register(第一参数,第二参数) [0208] 此函数将由第二参数指定的值在由第一参数指定的通用寄存器中设置。 [0209] 播放器状态寄存器的设置值(SPRM)具有以下意义。下面的符号“SPRM(x)”指的是第x个播放器状态寄存器的设置值。 \n[0210] SPRM(0):保留 \n[0211] SPRM(1):作为解码目标的音频流的流号码 \n[0212] SPRM(2):作为解码目标的字幕流的流号码 \n[0213] SPRM(3):由用户设定的显示角度的号码 \n[0214] SPRM(4):当前作为播放目标的标题的号码 \n[0215] SPRM(5):当前作为播放目标的章节的号码 \n[0216] SPRM(6):当前作为播放目标的PL的号码 \n[0217] SPRM(7):当前作为播放目标的CELL的号码 \n[0218] SPRM(8):显示当前播放点的时间信息 \n[0219] SPRM(9):导航定时器的计数值 \n[0220] SPRM(10):当前在所选择状态下的按钮号码 \n[0221] SPRM(11)~(12):保留 \n[0222] SPRM(13):由用户设置的母级(parental level) \n[0223] SPRM(14):关于播放设备的图像播放的设置 \n[0224] SPRM(15):关于播放设备的音频播放的设置 \n[0225] SPRM(16):示出播放设备中设置的音频的语言编码 \n[0226] SPRM(17):示出播放设备中设置的字幕的语言编码 \n[0227] SPRM(18):用于绘制菜单的语言设置 \n[0228] SPRM(19)~SPRM(31):保留 \n[0229] [SPRM(1)与SPRM(2)] \n[0230] SPRM(1)与SPRM(2)在PL播放之前由PRE命令设置,并在AV流播放中由导航按钮信息中的按钮命令更新。通过参照SPRM(1)与SPRM(2),可以实现下列的应用。这里,例如,在音频和字幕分别设置为英语和日语的电影模式中进行PL播放。如果在播放中进行了从电影模式到Java模式的转移,那么Java对象能够通过参照SPRM(1)与SPRM(2)设置音频为英语而设置字幕为日语,并且随后能够执行Java对象的软件。如果Java对象的软件是用于听英语的学习材料,那么观看电影与通过听力材料的学习之间的配合将提高语言学习的效率。 \n[0231] [SPRM(3)] \n[0232] SPRM(3)在PL播放之前由PRE命令设置,在AV流播放中由导航按钮信息中的按钮命令更新。在AV流中包括多角度区段的情况下,可以利用参照SPRM(3)找到视频数据,其中解码以角度为目标。 \n[0233] 通过参照SPRM(3)可以实现下列应用。这里,例如电影作品是显示火车上的场景的视频,并包含多角度的区段。该多角度区段包括从多个角度拍摄的多块视频数据,如从火车的右侧和左侧的乘客座位的角度,以及从司机座位的角度。在此情况下,SPRM(3)显示播放的角度。因此,当从电影模式转移到Java模式时,通过参照SPRM(3),Java对象能够实现驾驶游戏,其中包括从由用户设置的角度拍摄的图像的播放。 \n[0234] [SPRM(4)-SPRM(7)] \n[0235] 当用户通过菜单操作选择标题时,更新SPRM(4)。只要当前播放点在前进,就更新SPRM(5)-SPRM(7)。即,如果当前播放点从一个CELL向另一CELL移动,SPRM(7)更新,如果一个PL转换到另一 个PL,SPRM(6)更新,如果一个章节转换到另一个章节,SPRM(5)更新。 [0236] 按照这种方式,通过参照SPRM(4)-(7),可以发现播放设备当前播放的是哪一标题,哪一PL,PL中的哪一CELL或者是哪一章节,或者哪一CELL。应该注意到,SPRM(4)-(7)并不直接通过PRE命令,POST命令,和按钮命令更新,而是利用用于PL播放的命令更新。尽管是间接进行的,该更新是利用动态脚本实现的,因此可以说SPRM(4)-(7)用动态脚本更新。 \n[0237] [SPRM(10)] \n[0238] 只要显示AV流中的图片数据的每一块时,SPRM(10)进行更新。即,如果播放设备显示新的图片数据块,SPRM(10)更新为表示新的图片数据块显示开始时间的值(展示时间)。在已经描述了导航按钮信息中的按钮命令,从而在PL播放中进行了从电影模式到Java模式的转换后,在Java模式中的Java对象能够找到用户结束观看BD-ROM上的电影作品的时间,其中在BD-ROM上存储有按钮命令。此外,在Java模式中,可以描述游戏软件,从而使得出现的角色依赖于电影作品观看点(watching point)而改变,这使得Java模式中的游戏更加激动人心。应该注意到,SPRM(10)并不直接通过PRE命令,POST命令,和按钮命令更新,而是利用用于PL播放的命令更新。尽管是间接进行的,这些更新是利用动态脚本实现的,并且因此可以说SPRM(10)用动态脚本进行更新。 \n[0239] 使用“Get value of Player Status Register”函数与“Get value ofGeneral Purpose Status Register”函数,通过参照播放器状态寄存器,Java对象与WebPage对象能够详细找到播放设备状态。 \n[0240] (c)尽管层3(静态脚本)没有提供编程函数,但是还存在从一个动态脚本到另一个动态脚本的转移。用于运行从一个动态脚本到另一个动态脚本的转移的函数包括下面的JMP和CALL函数。 \n[0241] JMP函数 \n[0242] 格式:JMP参数 \n[0243] CALL函数 \n[0244] 格式:CALL参数 \n[0245] JMP函数是用于在操作中放弃当前动态脚本的转移,并执行由参数指定的转移目的地动态脚本。JMP命令包括直接指定转移目的地动态脚本的直接参照命令,以及间接指定转移目的地动态脚本的间接参照命令。 \n[0246] Call函数为一种转移,用于在挂起(suspending)当前动态脚本的运行后,使得由参数指定的转移目的地动态脚本运行,并且然后一旦在转移目的地动态脚本结束后,恢复挂起的脚本的运行。在动态脚本的末尾有Resume命令,此动态脚本是Call命令的转移目的地。Resume命令是子程序的所谓的Return命令,用于重新激活由于执行Call函数而已经处于挂起状态的动态脚本。Call命令,当与JMP命令一样,包括直接指定转移目的地动态脚本的直接参照命令和间接指定转移目的地动态脚本的间接参照命令。 \n[0247] 至此,完成了对层3(静态脚本)提供的函数和变量的描述。 \n[0248] 1.7用于综合管理(integrated management)的信息 \n[0249] 下面描述了在电影模式,Java模式,以及浏览器模式中用于综合和管理动态脚本的信息。图3中显示的INFO.BD-ROM是用于综合管理的此信息。 \n[0250] 图23A示出了INFO.BD-ROM的内部结构。如图所示,INFO.BD-ROM包括索引表。该索引表是在进行从一个动态脚本转移到另一动态脚本的转移时,所参照的间接参照表,并包括与多个标签一一对应的索引。在每个索引中,描述了对应于该索引标签的动态脚本文件名。如图23B所示,每个文件名包括文件体(filebody)和扩展名。标签包括TITLE#1-#m,TITLE#m+1-#n,以及TITLE#0。从三种 模式中的任意一种的动态脚本而参照该索引表。\n只有在通过该索引表时,才可能进行从电影对象到Java对象的转移,或者从电影对象到WebPage对象的转移。换句话说,不可能从电影对象转移至没有索引在索引表中的Java或者WebPage对象。 \n[0251] TITLE#1-#m索引是第1到第m个进入BD-ROM的标题的索引。在这些索引中,当选择第1到第m标题的编号时,描述了作为转移目的地的电影对象的文件名。图23B示出了TITLE#1-#m索引的内容。如图所示,在TITLE#1-#m索引中描述了电影对象的文件名。每个文件名包括文件体(ZZZ)和扩展名(.MOVIE)。 \n[0252] TITLE#m+1-#n索引是用于第m+1到第n个进入BD-ROM的标题的索引。在这些索引中,当选择第m+1到第n标题的编号时,描述了将作为转移目的地的WebPage对象/Java对象的文件名。图23C示出了TITLE#m+1-#n索引的内部结构。如图所示,在TITLE#m+1-#n索引中的每个索引中存储了Java对象的文件体(ZZZ)和扩展名(.CLASS)或者WebPage对象的文件体(ZZZ)和扩展名(.HTM)。 \n[0253] 当BD-ROM载入不能执行增强模式的播放设备中的情况下,TITLE#0索引为一种索引,用于替代增强模式脚本,而执行存储电影模式脚本的文件名,而且由通过播放设备的指示向增强模式转移。 \n[0254] 这里,(1)没有安装实现Java模式的Java虚拟机或者实现浏览器模式的浏览器,(2)它们已经卸载,或者(3)尽管它们已经安装,但是播放设备没有与网络连接并在独立配置中使用,当这些情况下,会出现无法实施增强模式的运行。由于上述三种原因中的任何一种而无法在其中执行增强模式的播放设备被称为核心系统。另一方面,在其中使用Java虚拟机或者浏览器执行程序的播放设备被称为完整系统。下面参照图24A-24B描述了由核心系统与完整系统的进行的间接参照。这里,对间接参照的描述假设BD-ROM上面记录有多个动态脚本(001.MOVIE,002.MOVIE,003.MOVIE,…,001.CLASS, 002.CLASS,003.CLASS,…),如图24A所示。图24B示出了在BD-ROM中说明了如图24A所示的多个动态脚本时,对索引表示例性地描述。在图24所示的示例性描述中,在从Title#1索引到Title#m索引中描述了电影模式脚本的文件名(001.MOVIE,002.MOVIE,003.MOVIE,…)。另一方面,在Title#m+1索引到Title#n索引中,描述了增强模式脚本的文件名(001.CLASS,002.CLASS,003.CLASS,…)。图25A示出了当索引表如图24B所描述时,完整系统中的间接参照。由于这样对索引表进行描述,在执行指定以标签Title#1到Title#m作为转移目的地的转移命令时,从Title#1索引到Title#m索引中检索文件名“001.MOVIE,002.MOVIE,003.MOVIE,…”,并且在执行指定以标签Title#m+1到Title#n作为转移目的地的转移命令时,从Title#m+1索引到Title#n索引中检索文件名“001.CLASS,002.CLASS,003.CLASS,…”。\n然后,由这些文件名指定的动态脚本被读入存储器并执行。至此,完成了对完整系统间接参照的描述。 \n[0255] 图25B示出了在核心系统中的间接参照。在执行指定以标签Title#1到Title#m作为转移目的地的转移命令时,从Title#1索引到Title#m索引中检索文件名“001.MOVIE,\n002.MOVIE,003.MOVIE,…”。然而,在执行指定以标签Title#m+1到Title#n作为转移目的地的转移命令时,由Title#0索引替代从Title#m+1索引到Title#n索引,从中检索文件名“000.MOVIE”。播放设备随后执行由该文件名指定的动态脚本。至此,完成了对由完整系统和核心系统进行的间接参照的描述。 \n[0256] 图26示意性地示出了如何进行从图18中所示的电影对象到Java对象的转移。图中的箭头jn1和jn2象征性表示从电影对象到Java对象的转移。图中的“Jmp Title#m+1”是用于向Java对象转移的转移命令,并通过标签Title#m+1的索引利用间接参照格式指定Java对象作 为转移目的地。在标签Title#m+1的索引中描述了Java对象的文件名,并且播放设备通过参照此索引能够找到作为Java对象被读取的文件。 \n[0257] 图27示出了当上面记录有如图18所示脚本的BD-ROM载入核心系统播放设备时,进行何种转移。图27中使用虚线hs1描绘图18中的箭头,表示在图27中由于核心系统缺少执行Java对象的要素,该转移不再有效。图中的箭头js1显示了替代无效转移的可替换转移。该可替换转移通过Title#0的索引利用间接参照进行。电影对象0的文件名存储在Title#0的索引中,而电影对象0由播放设备读取并在此转移中执行。Sg1为向电影对象0进行转移时所执行的电影对象。由于当BD-ROM载入核心系统播放设备时,用户可以在电影模式下进行游戏,因此可以避免导致由于不能实现Java/浏览器模式而给用户带来的失望。 \n[0258] 至此,完成了根据本发明的记录介质的实施例。下面给出了对根据本发明的播放设备的实施例进行的说明。图28示出了根据本发明的播放设备的内部结构。如图所示,该播放设备包括:BD-ROM驱动器1;轨道缓冲器2;多路分离器3;视频解码器4;图片平面5;\n音频解码器6;图像存储器7;图像平面8;图像解码器9;加法器10;静态脚本存储器11;播放控制引擎12;播放器寄存器13;备份存储器14;动态脚本存储器15;类DVD模块16;Java模块17;浏览器模块18;UO控制器19;模块管理器20;分配器21;绘制引擎22以及通讯单元23。 \n[0259] BD-ROM驱动器1进行BD-ROM的载入/弹出,并访问载入的BD-ROM。 \n[0260] 轨道缓冲器2是FIFO存储器,基于先进先出存储从BD-ROM读取的若干ACCESS UNIT。 \n[0261] 多路分离器3从轨道缓冲器2检索ACCESS UNIT并将这些单元进行多路分离,以获得构成GOP的视频和音频帧,在音频帧被输出 到音频解码器6时,该视频帧被输出到视频解码器4。在图像存储器7中存储有字幕流,在动态脚本存储器15中存储有导航按钮信息。由多路分离器3进行的多路分离包括将TS包转化为PES包的转化处理。 \n[0262] 视频解码器4将从多路分离器3输出的视频帧解码并以非压缩格式将图片写到图片平面5上。 \n[0263] 图片平面5是用于存储非压缩格式图片的存储器。 \n[0264] 音频解码器6将从多路分离器3输出的音频帧解码并输出非压缩格式的音频数据。 \n[0265] 图像存储器7为缓冲器,用于存储从BD-ROM读取的字幕流,导航按钮信息中的PNG数据,以及图像文件。 \n[0266] 图像平面8为具有单屏幕容量区域的存储器,该容量区域上设置有扩展的字幕流,PNG数据,以及图像文件。 \n[0267] 图像解码器9展开存储在图像存储器7中的字幕流,PNG数据,以及图像文件,并将它们写入图像平面8。字幕流解码的结果是在屏幕上出现了多种菜单和字幕。 \n[0268] 加法器10将在图像平面8中展开的图像和存储在图片平面5中的非压缩格式图片数据结合。作为加法器10将在图像平面8中图像和图片平面5中图片结合的结果,输出如图13B中所示的图像显示,即,屏幕显示中有CG图像(图中的猫头鹰)在显示视频的窗口周围来回移动。 \n[0269] 静态脚本存储器11为存储器,用于存储当前PL和当前流管理信息。当前PL来自记录在BD-ROM上的多块PL信息中,作为当前处理的目标。当前流管理信息来自记录在BD-ROM上的多块流管理信息中,作为当前处理目标的流管理信息块。 \n[0270] 播放控制引擎12执行多种函数,如播放设备中的(1)AV播放函数,(2)播放列表播放函数,以及(3)状态获取/设置函数。播放设备中 的AV播放函数包括与DVD和CD播放器中类似的函数组,指响应用户的处理操作的动作,如开始播放(Play播放);停止播放(Stop停止);暂停(Pause-On暂停开);取消暂停(Pause-Off暂停关);取消静止(Still-Off静止关);指定速度快进(Forward Play(speed)快进播放(速度));指定速度快退(Backward(speed)快退播放(速度));改变音频设置(Audio Change音频改变);改变字幕设置(Subtitle Change字幕改变);以及改变角度设置(Angle Change角度改变)。\nPL播放函数指根据PL信息进行的播放,停止,以及其它的AV播放功能。播放控制引擎12通过执行这些PL播放函数,实现层模型中的层3(基于静态脚本的播放控制)的功能。播放控制引擎12响应用户操作执行AV播放函数。另一方面,播放控制引擎12根据从类DVD模块16,Java模块17,以及浏览器模块18调用的函数,执行函数(2)和(3)。即,播放控制引擎12响应由用户操作产生的指令和来自层模型中更高层的指令,执行自己的函数。 [0271] 播放寄存器13包括32个独立的系统参数寄存器和32个独立的通用寄存器。这些寄存器的存储值作为变量SPRM和GPRM用于编程中。系统参数寄存器和通用寄存器由与类DVD模块16,Java模块17,以及浏览器模块18分开的播放控制引擎12管理。因此,即使在发生播放模式转换时,在模式转换后,对于实施播放模式的模块也可能仅通过参照播放控制引擎12中的SPRM(0)-(31)和GPRM(0)-(31)找到播放设备的播放状态。 \n[0272] 备份存储器14为堆栈存储器,当模块16到18中的一个执行挂起时,用于保存播放设备寄存器中的存储值。当模块16到18中的一个在动态脚本中执行恢复(Resume)时,备份存储器14的保存值被恢复为播放设备具有的寄存器的存储值。当模块16到18中的一个进行超过两次的挂起的情况下,寄存器的存储值根据先进先出而存储。如果存储值的数量大于或者等于堆栈中槽(slots)的数量,则覆盖已保存 的存储值。保存到备份存储器14的SPRM包括语言代码(语言代码Language Code),当前解码目标的音频流的编号(音频流编号AudioStream Number),当前解码目标的字幕流的编号(字幕流编号SubtitleStream Number),用户设置的当前角度的编号(角度编号AngleNumber),当前播放的标题的编号(标题编号Title Number)当前播放的章节的编号,当前播放的PL的编号(播放列表编号PlayList Number),当前播放的CELL的编号(播放项目编号PlayItem Number),在选择的状态中的按钮的编号(选择的按钮Selected Button),以及显示当前播放点的时间信息。 [0273] 动态脚本存储器15为存储当前动态脚本的存储器,并被类DVD模块16,Java模块\n17,以及浏览器模块18用于处理。当前动态脚本是来自记录在BD-ROM上的多个场景中,当前作为处理目标的动态脚本。 \n[0274] 类DVD模块16,为DVD虚拟播放器,是电影模式中的主要执行体,执行读入动态脚本存储器15的当前电影对象。 \n[0275] Java模块17是Java平台,包括Java虚拟机,配置,以及配置文件(profile)。Java模块17从动态脚本存储器15中的ZZZ.CLASS创建当前Java对象,并执行当前Java对象。\nJava虚拟机将使用Java语言描述的Java对象转化为播放设备中CPU的本机代码,并使得CPU执行该本机代码。 \n[0276] 浏览器模块18为浏览器,是浏览器模式的主要执行体,并执行读入动态脚本存储器15的当前WebPage对象。浏览器模块18可以使用的协议包括HTTP,IP,ARP,RARP,TCP,telnet,SMTP,以及ftp。类DVD模块16,Java模块17,以及浏览器模块18都是播放设备中预执行的驻留程序。 \n[0277] UO控制器19探测用户进行的关于遥控装置和播放设备前面板的操作,并向模块管理器20输出表示探测到的用户操作(此后,称作 “U0”)的信息。 \n[0278] 模块管理器20保持从BD-ROM读取的索引表并进行模式管理和转移控制。由模块管理器20进行的模式管理是指模块的分配;即,模块16到18中的哪一个执行动态脚本。\n模块分配的规则是类DVD模块16执行动态脚本。即使在模式内产生转移(即,在同一模式内转移)的情况下,也支持此原则。当模式间转移(即,在不同模式间转移)时是例外。当发生从电影对象向Java对象或者WebPage对象的转移时,Java模块17或者浏览器模块18分别执行当前对象。 \n[0279] 由模块管理器20进行的转移控制包括:识别转移目的地动态脚本,读取指定的动态脚本到存储器中,以及使得类DVD模块16,Java模块17,以及浏览器模块18中的一个执行该动态脚本。当利用间接参照格式指定转移目的地动态脚本时,识别是尤其必须的。该识别是通过参照转移命令的转移目的地标签和从相应于标签的索引中检索文件名进行的。\n关于是否必须进行模式转换的判断与此识别过程一起进行。通过参照存储在相应于转移目的地标签的索引中的文件扩展名,进行关于模式转换的必要性的判断。当转移目的地动态脚本为电影模式时,该扩展名被设置为“MOVIE”,当转移目的地动态脚本为Java模式时,该扩展名被设置为“CLASS”,当转移目的地动态脚本为浏览器模式时,该扩展名被设置为“HTML”或者“XML”。这样,存储在索引中的扩展名表明了模式转换是否是必须的。如果需要进行模式转换,转移目的地动态脚本被读入存储器,并且模式转换的请求被输出到实施转换后(post-switching)模式的模块。作为输出的模式转换请求的结果,实施转换后模式的模块运行在存储器中的转移目的地动态脚本。 \n[0280] 分配器21仅选择适于播放设备当前模式的UO,并将选中的UO传送到用于实现该模式的模块上。例如,如果在执行电影模式时,接收到“左”,“右”,“上”,“下”,或者“激活”的UO,则分配器21将那 些UO输出至执行该电影模式的模块。这是因为这些UO仅仅在电影模式的菜单行为中需要,而在Java模式和浏览器模式中不需要。 \n[0281] 具有基础软件,如Java3D和OPEN-GL的绘制引擎22,根据来自Java模块17的指令绘制CG,并向图像平面8输出这些绘制的CG。 \n[0282] 基于TCP/IP,根据来自BD-ROM的指令,通讯单元23执行通讯过程以及网站访问。\n至此,完成了对播放设备元件的描述。现在将详细描述模块管理器20。 \n[0283] 通过使得通用CPU读取用于进行图29和30所示处理过程的程序,可以实现模块管理器20。图29和30为流程图,示出了由模块管理器20进行的处理过程。现在将参照这些流程图,描述由模块管理器20进行的转移控制。在图29的流程图中,模块管理器20从索引表的第一播放(FirstPlay)索引中检索文件名(步骤S1),将当前模式设置为电影模式(步骤S2),将具有检索到的文件名的动态脚本设置为当前动态脚本(步骤S3),将当前动态脚本i读入存储器中(步骤S4),并在存储器中执行当前动态脚本(步骤S5到S10)。 [0284] 只要当前动态脚本是最新设置的(newly set),则执行步骤S4到S10。 \n[0285] 步骤S5到S10形成了循环过程,其中对于构成脚本的每个命令重复步骤S6到S10的处理。流程图中的“x”是从构成动态脚本的命令中识别处理目标的变量。该循环过程包括:初始化变量x(步骤S5),使得当前模式的模块执行当前动态脚本i中的命令x(步骤S6),进行步骤S7和S8中定义的判断处理,并且随后在返回步骤S6之前将变量x增加(步骤S10)。由于重复进行随着增加变量x返回步骤S6的处理,对于构成脚本的所有命令重复步骤S6到S10的处理。如果在执行该循环过程中发生了UO(步骤7),模块管理器20执行UO分配过程(图30中的步骤S31到S33),并且随后返回步骤S8。当在命令执行过程中发生的UO是“左”,“右”,“上”,“下”,或者“激活”中的一 种(步骤S31)并且当前模式是电影模式(步骤S32)的时候,UO分配处理是,将该UO输出到执行当前模式的模块中。当在命令执行过程中发生的UO不是“左”,“右”,“上”,“下”,或者“激活”UO的时候,将该UO直接输出到执行当前模式的模块中(步骤S33)。当在命令执行过程中发生的UO不是“左”,“右”,“上”,“下”,或者“激活”UO,但当前模式不是电影模式的时候,发生的UO不向模块输出。至此,完成了对分配过程的描述。 \n[0286] 当进行分配处理的时候,重复步骤S6到S10的处理。在步骤S6到S10的循环处理中,当步骤S8中的判断为YES时,进行作为处理目标的当前动态脚本的转换。步骤S8是判断命令x是否是转移命令。如果步骤S8为YES,在步骤S11到S20中将当前动态脚本设置为新动态脚本后,模块管理器20返回S4。这样,新动态脚本将被读入存储器并被执行。 [0287] 现在将在下面描述步骤S11到S23的处理过程。此处理过程包括转移控制,并且随着步骤S11,S14,S19,以及S22的判断结果而不同。步骤S11是判断转移命令显示的转移目的地是否使用标题标签描述。如果是YES,在经过步骤S22判断后,模块管理器20获得转移标签j(步骤S12),并从索引表的标题j的索引i中检索文件名j(步骤S13)。如果是NO,模块管理器20检索表明转移目的地的文件名j(步骤S21)。 \n[0288] 步骤S14是判断转移命令是Call命令还是Jmp命令。如果是Call命令,模块管理器20挂起当前动态脚本i并保存变量x(步骤15)。如果是Jmp命令,模块管理器20丢弃当前动态脚本i(步骤S16)。 \n[0289] 通过上述处理,模块管理器20将由文件名j标识的动态脚本设置为当前动态脚本i(步骤S17),并将由检索的扩展名标识的播放模式设置为播放模式k(步骤S18)。在这些设置后,模块管理器20执行步骤S19。步骤S19是判断播放模式k是否为当前模式。如果不同,模 块管理器20将播放模式k设置为当前播放模式(步骤S20),并移动至步骤S4。然后,关于新设定的当前动态脚本,重复步骤S4到S10的处理。步骤S22是判断播放设备为核心系统还是完整系统,并且如果是核心系统,模块管理器20从Title#0的索引中检索文件名,并将其设置为转移目的地(步骤23)。 \n[0290] 步骤S4到S10的循环过程结束的要求是步骤S9中的判断为YES。如果命令x是动态脚本i中的最终命令(步骤S9:YES),那么判断在动态脚本i的结尾处是否存在Resume命令(步骤S34)。如果为NO,终止流程图所示的处理。如果在动态脚本i的结尾处附有Resume命令,那么模块管理器20将挂起的动态脚本设置为动态脚本i(步骤35),将动态脚本i的模式设置为当前模式(步骤36),使得当前模式中的模块恢复挂起的动态脚本i(步骤S37),将变量x设为回到动态脚本i挂起之前的值(步骤S38),然后移动至由步骤S6到S10组成的循环过程的步骤S10之前。至此,完成了对由模块管理器20进行的处理过程的描述。 \n[0291] 通过使通用CPU读取用于进行图31所示处理过程的程序,可以实现播放控制引擎\n12。图31为示出了播放控制引擎12进行的PLPlay函数的执行过程的流程图。在该流程图中,处理目标PL表示为“PLx”,处理目标CELL表示为“CELLy”,处理目标ACCESS UNIT为“ACCESS UNITv”。该流程图包括下列过程:设置由PLPlay函数的参数指定的PL为PLx(步骤S41),将PLx读入存储器(步骤S42),识别处理目标CELL(步骤S43到S47),以及读取构成该CELL的ACCESS UNIT(步骤S48到S51)。 \n[0292] 步骤S43为判断是否有CELL参数指定(argument specification)。如果没有参数指定,播放控制引擎12设置CELLy作为PLx的头CELL(步骤S44),并将CELLz设置为PLx的最后CELL(步骤S45)。CELLz为用于指定读入范围结束的CELL。 \n[0293] 如果有参数指定,播放控制引擎12将CELLy设置为参数指定的CELL(步骤S46),并将CELLz设置为相同的参数指定的CELL(步骤S47)。CELLy和CELLz都被设置为参数指定的CELL是因为在CELL由参数指定的情况下,只需要读取此参数。 \n[0294] 步骤S48到S53示出了读取构成CELLy的ACCESS UNIT以及解码过程。此过程包括:识别包括来自TMAP的CELLy的进入点(In-point)视频帧的ACCESS UNITv(步骤S48);\n命令BD-ROM驱动器1读取ACCESS UNITv(步骤S49);在通过步骤S50和S51的判断后,命令视频解码器4对包括在ACCESS UNITv中的视频帧解码(步骤S52);以及将ACCESS UNITv设置为下一ACCESS UNIT(步骤S53)。然后,对所有属于CELLy的ACCESS UNIT重复步骤S49到S53的处理。 \n[0295] 步骤S50判断ACCESS UNITv是否包括进入点视频帧。如果包括进入点视频帧(步骤S50:YES),播放控制引擎12指示视频解码器4对ACCESS UNITv中从该进入点视频帧到最后的视频帧进行解码(步骤S54),并移动至到步骤S52。 \n[0296] 步骤S51判断离开点v是否包括CELLy的离开点视频帧。如果包括离开点视频帧(步骤S51:YES),播放控制引擎12命令视频解码器4对ACCESS UNITv中的头视频帧到该离开点视频帧进行解码(步骤S55),并进行步骤S56的判断。步骤56为流程图中的最后的判断,判断CELLy目前是不是CELLz。如果步骤S56为YES,播放控制引擎12终止流程图。\n否则,在返回步骤S48之前,播放控制引擎12将CELLy设置为下一CELL(步骤S57)。然后,重复步骤S48到S57的处理,直至步骤S56的判断为YES。至此,结束了对由播放控制引擎\n12进行的处理过程的描述。 \n[0297] 由于在增强模式中,可以使得播放设备执行利用Java虚拟机和浏览器的性能特点的游戏等,所以上述的本实施例能够增加实际视频 数据的附加值。此外,由于在从电影模式到增强模式转移的情况下,利用通过表的间接参照而指定转移目的地,因此,可以利用设计表的描述内容实现这样的操作,其中从将BD-ROM载入没有Java虚拟机和浏览器的播放设备时的转移目的地,变为在BD-ROM载入具有Java虚拟机和浏览器的播放设备时的转移目的地。作为转移目标改变的结果,当BD-ROM载入没有Java虚拟机和浏览器的核心系统播放设备的时候,可以关闭向增强模式程序转移的路径,从而对于任何类型的播放设备,根据本发明的记录介质都可以实现操作保证。 \n[0298] 2.第二实施例: \n[0299] 第一实施例提供了对Java对象的说明,它接收设置于电影对象中的寄存器设定值,并执行操作。在另一方面,第二实施例对执行PL播放并在PL播放的同时进行各种播放控制的Java对象进行说明。 \n[0300] 图32显示了根据该第二实施例BD-ROM的文件结构。该图中的新内容是已经加入的YYY.Mark(PLMark)和XXX.Mark(ClipMark)。 \n[0301] PLMark是表明区段的信息,其中播放设备在PL播放期间进行扩展的控制。对于YYY.Mark中的文件名“YYY”,它使用的名称与PLMark所相应的PL文件名相同。即,图中PLMark的文件名为“yyy”,表明该PLMark与PL(YYY.PL)相对应。 \n[0302] ClipMark是表明区段的信息,其中播放设备在AV流播放期间进行扩展的控制。对于XXX.Mark中的文件名“XXX”,它使用的名称与ClipMark相应的AV流的名称相同。即,图中的的ClipMark的文件名为“XXX”,表明该ClipMark与AV流(XXX.M2TS)相对应。 [0303] 下面说明了ClipMark和PLMark的差异。ClipMark指定的区段用于对关于AV流的扩展控制,而PLMark指定了关于PLs的区段。 \n[0304] 举例而言,在图11所示,为一个AV流定义两块PL信息的情况下,如果由ClipMark指定扩展控制区段,则这种指定对于指定该AV 流的两块PL信息都有效。另一方面,如果由PLMark指定扩展控制区段,则该扩展控制指定仅对相应于该PLMark的PL有效。如果与PLMark相对应的PL为PL#1,这种指定仅作用于PL#1,而对PL#2不起作用。换而言之,当由ClipMark指定扩展控制区段时,AV流中的所有PL都服从于该ClipMark,而当由PLMark指定扩展控制区段时,只有与该PLMark相对应的PL才服从于该PLMark。这就是ClipMark和PLMark间的差异。 \n[0305] 本实施例中的扩展控制包括产生播放设备中的事件。为了产生事件,ClipMark和PLMark具有如图33所示的共用数据结构。图33显示了ClipMark和PLMark共同的数据结构。如图所示,PLMark,它包含事件的数量(Number)和单独事件(Event#1-Event#m),在播放过程中定义了将要产生的事件。每一事件(Event#)都显示了事件类型(Type),事件ID(ID),事件发生的时刻(Time),以及当该事件持续有效的时间段(Duration)。 [0306] 用这种数据结构定义的事件包括TimeEvent和UserEvents。TimeEvent是在当前播放位置到达PL播放时间轴上的时刻T的预定点时产生的事件。UserEvents是在当前播放位置到达预定的时间段而且用户在该时间段内进行操作时所产生的事件。 \n[0307] 如何说明对TimeEvent进行定义的PLMark将参照图34A而进行说明,其中\nTimeEvent出现在PL#1播放期间。处于该图底部的时间轴显示了PL#1播放的时间轴。其中,假设定义了在时间轴t1时刻出现TimeEventEx1的情况。图中的PLMark mt1示例性地说明了用于定义TimeEvent的PLMark。对于该PLMark,Type项以“TimeEvent”表示,ID项以“Ex1”表示,Time项以“ti”表示,以及Duration项以“0”表示。图中的箭头显示到达t1时刻时产生TimeEvent。TimeEvent产生的结果是驱动了图中的事件处理程序。 [0308] 在另一方面,图34B显示了用于在时间轴上从t1时刻开始的以时间间隔T产生TimeEvent的PLMark的示例性说明。图34B与图34A的不同在于PLMark的Duration项用“T”表示。利用对Duration项的说明,在时刻t1后以时间间隔T产生TimeEvent。 [0309] 参照图35解释了对PL#1播放期间的UserEvents进行定义的PLMark如何进行说明。处于该图中部的时间轴显示了PL#1播放的播放时间轴。时间轴上的当前播放点在SPRM(10)中显示。其中,假设定义了在时间轴上从t1时刻起的时间段T1内UserEventEx1变为有效的情况。图中的PLMarkmt2是定义UserEvent的PLMark。对于该PLMark,Type项用“UserEvent”表示,ID项以“Ev1”表示,Time项以“t1”表示,以及Duration项以“T1”表示。图中的遥控器rmi是用于接收用户操作的设备,而且箭头uv1表示U0,它响应于遥控器上ENTER键的按下而产生。当U0在从t1时刻起的时间段T1内产生时,基于U0产生UserEventEv1。UserEvent产生的结果是驱动了图中的事件处理程序。从而完成了由PLMark定义的事件说明。其中,省略了由ClipMarks定义的事件说明。因为ClipMarks定义在AV流播放期间产生的事件,而PLMarks定义在PL播放期间产生的事件,所以ClipMarks的事件定义与PLMarks的事件定义并没有很大的不同。 \n[0310] 以下根据第二实施例说明Java对象。第二实施例中ZZZ.CLASS的成员函数是由事件驱动的事件处理程序,该事件在PL播放期间由播放设备件产生。以下将在具体例子的帮助下说明事件处理程序,该事件处理程序是Java对象的成员函数。图36显示了由TimeEvent驱动的事件处理程序的例子,而图37显示了由UserEvent驱动的事件处理程序的例子。 \n[0311] 在图36和37所示的该示例性说明中,将使用下述绘制函数进行图像数据的解码。 [0312] 绘制函数:在图像平面内绘制PNG数据 \n[0313] Draw(File,X,Y) \n[0314] File:存储PNG数据的文件名 \n[0315] X:X坐标 \n[0316] Y:Y坐标 \n[0317] 清除图像平面函数:清除图像平面中的指定区域 \n[0318] Clear(X,Y,W, H) \n[0319] X:X坐标 \n[0320] Y:Y坐标 \n[0321] W:X方向宽度 \n[0322] H:Y方向宽度 \n[0323] 图36中的处理程序hd1是在TimeEvent t1发生时用于执行函数{GPRM(0)=\n1;……Draw(:“2White.png”,330,200);}的处理程序。TimeEvent t1是在PL#1播放开始后立即产生的事件(这称为时刻t1)。处理程序hd1的函数包括:将GPRM(0)设置为“1”,(GPRM(0)=1);将“1black.png”在坐标(10,200)上绘制,(Draw(1black.png,10,200));\n以及将“2white.png”在坐标(330,200)上绘制,(Draw(2white.png,330,200))。“1black.png”是选择状态中按钮的图像数据。“2white.png”是正常状态中按钮的图像数据。图36中的图形图像ig1是由该图中的事件处理程序绘制的图形图像。图中的按钮bn1和bn2是通过分别解码“1black.png”和“2white.png”而获得的。GPRM(0)表示两个按钮中哪一个处于选择状态。GPRM(0)被设置为“1”意味着在按钮bn1和bn2中按钮bn1被设置为选择状态。 \n[0324] 处理程序hd2是在TimeEvent t2发生时用于执行函数{PlayPL:(-,-,0);}的处理程序。TimeEvent t2是在PL#1播放结束之前产生的事件(这称为t2时刻)。处理程序hd2的函数包括执行:“PlayPL:(-,-,0)”。“(-,-,0)”意味着“从当前播放的PL的头单元开始”。 \n[0325] 图37中的处理程序hd3是在PL#1播放期间产生UserEvent时 驱动的处理程序。\n处理程序hd3中的“”表示当UserEvent k1发生时执行下述“function{”的内容。 \n[0326] 下述“function{”的内容由两个IF语句组成。第一个IF语句的条件表达式设置了GPRM(0)为“1”并且SPRM(8)为Right的条件,(GPRM(0)=1&&SPRM(8)==Right)。\n当该条件为真时,“2”将被设置到GPRM(0),(GPRM(0)=2;);“1white.png”被绘制到坐标(10,200)上,(Draw(1white.png,10,200));并且“2black.png”被绘制到坐标(330,200)上,(Draw(2black.png,330,200))。 \n[0327] 图37中的图像ig2是当该条件为真时绘制的图像。当该IF语句的条件为真时,右边的按钮bn2被设置为如图ig2所示选定状态。图36中的图形图像ig1紧接着图像jp2显示。这些图像的比较表明了根据UserEvent的发生,事件处理程序切换按钮的选择状态。 [0328] 在该IF语句中的ELSE子句包含了判断SPRM(8)为OK的条件是否为真。如果该条件为真,将执行第二个IF语句。 \n[0329] 第二个IF语句的条件为真时,其中该条件为“(GPRM(0)==1”,该IF语句从起始处执行PL#2中CELL#1的播放(PlayPl(PL#2,CELL#1,0))。如果该条件为假,该IF语句从起始处执行PL#3中CELL#1的播放,(PlayPl(PL#3,CELL#1,0))。 \n[0330] 通过将PL中播放的图片和由图36和图37中的事件处理程序绘制的图像结合,图\n38显示了作为事件处理程序结果的条件转移。由于由TimeEvent t1驱动的该事件处理程序是用于将按钮和图片结合的处理程序,因而图像ig1(包括按钮bn1和bn2)与PL中的第一图片pc1,中间图片pc2和最后图片pc3结合,并播放该结合的图像。在播放PL中的CELL的最后图片数据之后,由于由TimeEvent t2驱动的该事件处理程序是用于返回该CELL的起始位置的处理程序,如箭头py1所示,显示第一图片数据,在最后图片数据显示之后,该按钮 又与第一图片数据相结合。除非有用户操作,则反复显示该结合的图像。如果作为用户按下箭头键的结果而产生UserEvent,由ky1指示,图像jg2则与构成AV流的每个图片相结合,而不是图像ig1。 \n[0331] 如果当显示图像ig1时用户按下了Enter键,如箭头ey1所示,则执行事件处理程序hd3中的“PlayPL(PL#2,CELL#1,0)”,以播放PL#2中的CELL#1。 \n[0332] 如果当显示图像ig2时用户按下了Enter键,如箭头ey2所示,则执行事件处理程序hd3中的“PlayPL(PL#3,CELL#1,0)”,以播放PL#3中的CELL#1。 \n[0333] 事件处理程序的使用使得播放程序的说明更加容易,在该播放程序中反复播放单个CELL直到执行用户操作,并且根据作为用户操作的结果的按钮执行转移程序。 [0334] 使用这样的事件处理程序,与实现于DVD上的菜单行为相似的控制可以通过使用程序员编写所用的Java语言而容易地描述。随着该事件处理程序的进一步发展,可能实现精细的菜单显示,例如,其中CG操作取代了按钮。因此,将扩展包括电影作品的表达范围。 [0335] 由此完成了根据第二实施例Java对象中改进的说明。下一步是根据本实施例说明播放设备中的改进。为了产生上述的TimeEvent和UserEvent,最好使得播放控制引擎\n12执行如图39所示的处理过程。 \n[0336] 图39显示了根据第二实施例的播放控制引擎12的处理过程。在该流程图中的新内容是在一系列处理中放置了两个判断步骤,步骤S60和步骤S62,其中将构造CELL的ACCESS UNIT读取和解码(步骤S49和S53)。在PL播放中,步骤S60为判断步骤,其判断是否具有TimeEvent将当前播放点作为PLMark或者ClipMark定义的发生时间。如果步骤S60为YES,在播放控制引擎12移动到步骤S51之前产生TimeEvent(步骤S61)。因此,将驱动具有把TimeEvent作为驱动要求的事件处理程序。 \n[0337] 步骤S62为判断UO是否发生的步骤。如果步骤S62为YES,参照PLMark或者ClipMark,播放控制引擎12判断当前播放点是否处于UO有效期间(步骤S63)。如果处于该时间段内,播放控制引擎12产生UserEvent(步骤S64),并返回到步骤S51。 \n[0338] 根据上述本实施例,当播放控制引擎12执行PL播放时,由于根据播放点的前进而产生事件,因此在Java模式下,将TimeEvent和UserEvent作为驱动要求的事件处理程序能够被驱动。因此,几乎与视频内容同步的游戏能够使用Java语言进行描述。 \n[0339] 3.第三实施例 \n[0340] 鉴于第二实施例说明了由PLMark和ClipMark定义的事件所驱动的事件处理程序,第三实施例涉及对由PLMark和ClipMark定义的成员函数的行为与AV播放函数同步的情况的改进。播放设备中的AV播放函数包括的函数组与建立在DVD和CD播放器中的相似,并包括开始播放(Play播放);停止播放(Stop停止);暂停(Pause-On暂停开);\n取消暂停(Pause-Off暂停关);取消静止(Still-Off静止关);指定速度快进(Forward Play(speed)快进播放(速度));指定速度快退(Backward Play(speed)快退播放(速度));改变音频设置(Audio Change音频改变);改变字幕设置(Subtitle Change字幕改变);以及改变角度设置(Angle Change角度改变)。 \n[0341] 当用户指示上面引用的函数时,播放设备根据将要执行的函数产生事件。当用户命令播放设备执行快退函数时,播放设备产生快退事件;当用户命令播放设备执行快进函数时,播放设备产生快进事件;当用户命令播放设备执行暂停函数时,播放设备产生暂停事件。以这些事件驱动事件处理程序具有下述意义。播放操作于PL播放的时间轴上执行,而由Java虚拟机执行的操作并不具有时间轴的概念。由于Java虚拟机执行的操作并不基于时间轴,为了使PL播放控制与 Java虚拟机的操作同步,需要以某种方式让Java虚拟机知道PL播放的进程。让Java虚拟机知道时间轴上PL播放控制的事件是后退事件,TimeEvent,以及暂停事件。 \n[0342] 3.1后退事件 \n[0343] 在用户执行快退操作的情况下,后退事件(Backward Events)是响应于所进行的快退操作而用于驱动事件处理程序的事件。下面对引入后退事件的技术意义进行说明。图\n40是用于阐明后退事件的技术意义的示意性图表。在该图中,假定Java对象的成员函数是用于操作屏幕上角色A的CG的程序。当在PL播放开始后想驱动成员函数时刻t1时,当经过时刻t1时发生的TimeEvent可能最好由PLMark定义,而且上述的程序可以作为由TimeEvent驱动的事件处理程序而进行说明。 \n[0344] 当包括一系列“倒退并播放”的不规则播放被多次重复时,用这种的TimeEvent驱动的事件处理程序会出现问题。在这种情况下,于其中经过时刻t1的TimeEvent一再出现,它将会导致多个CG出现在屏幕上,然而只应该出现一个CG。图40中的bg1表示由于播放点到达时刻t1而由处理程序绘制的CG,而bg2表示由于播放点在倒退之后再次到达Time而由处理程序绘制的CG。事实上绘制了两个CG,而其中只应该绘制一个CG,因此出现在屏幕上的图像变得很奇怪。为了避免在屏幕上出现这种看起来奇怪的图像,最好是在Java对象中说明一种操作,以便于在播放时间一度超出时刻t1并且在倒退后再次到达时刻t1的情况下,清除出现于屏幕上的CG。这能够通过使播放设备在执行倒退操作时产生后退事件(该图中的bw1),并已经在ZZZ.CLASS中定义了由后退事件驱动的事件处理程序而实现。当执行倒退操作并且再次出现TimeEvent t1时,甚至当包括一系列“倒退并播放”的不规则播放被多次重复时,使得事件处理程序清除屏幕上的CG的结果是在屏幕上将仅出现一个CG。 [0345] 图41和42显示了屏幕显示的例子,该例子涉及当使用由后退事件驱动的事件处理程序时的情况。图41A是启动Java模式时,在该模式中的PL播放时刻所获得的屏幕显示例子,而图41B是PL播放点到达时刻t1时的屏幕显示例子。到达时刻t1的PL播放点导致TimeEvent的产生,而且由该TimeEvent驱动事件处理程序。图中的猫头鹰是作为被驱动的Java对象的事件处理程序的结果而绘制的CG。 \n[0346] 图41C是PL播放点到达时刻t2时的屏幕显示例子。其中假定当播放点到达时刻t2时用户执行倒退操作。图42A显示了当倒退之后PL播放点到达时刻t1时屏幕显示的例子。当PL播放点到达时刻t1时,图中的猫头鹰被清除。这是为了防止猫头鹰图像如上所述被再次绘制。假定由于倒退,播放点随之到达时刻t0(图42B),而且用户再次执行正常播放。图42C显示当PL播放点再次到达时刻t1时屏幕显示的例子。由于当执行倒退时CG被清除,即使PL播放点已经到达时刻t1导致CG被再次绘制,也仅在屏幕中出现一个CG。 [0347] 值得注意的是,尽管在本实施例中,CG已经被后退事件清除,猫头鹰的CG或者也可以通过在PLMark中定义时刻t2时刻发生的TimeEvent清除,从而使得TimeEvent依照这样的顺序发生:TimeEventt1->TimeEvent t2->TimeEventt1。 \n[0348] 3.2TimeEvent \n[0349] 在第二实施例中说明的TimeEvent的特征在于:当以快速进行播放时,根据快进的速度,每隔一段时间发生。图43示意性地显示了在快进过程中TimeEvent的发生。在该图中,以时间间隔dr1发生TimeEvent。该时间间隔取决于用户指定的快进速度,而且当PL播放速度变快时该时间间隔变短,而当播放速度变慢时该时间间隔变长。因此,当PL播放速度更快时以更短的时间间隔发生TimeEvent,而当PL播放速度更慢时以更长的时间间隔发生TimeEvent。Java对象 能够从TimeEvent发生的时间间隔是较长还是较短中发现PL播放进行的是快还是慢。因此,能够设置程序,以使当PL播放进行的快或者慢时,改变CG的运动。因此,可能精确地使CG运动和PL播放保持时间上的同步。 \n[0350] 图44显示了当根据快进由TimeEvent驱动事件处理程序时的屏幕显示例子。图\n44A是启动Java模式时,在该模式中的PL播放时刻所获得的屏幕显示例子,而图44B是PL播放点到达时刻t1时的屏幕显示例子。到达时刻t1的PL播放点导致TimeEvent发生,而且由该TimeEvent驱动事件处理程序。图中的猫头鹰是作为被驱动事件处理程序的结果而绘制的CG。图44C显示了当执行快进时的屏幕显示例子。由于执行了快进,因此改变了TimeEvent发生的时间间隔。Java对象根据时间间隔中的改变而改变该图中CG的运动。 [0351] 图44C中猫头鹰的飞行说明了CG绘制方法变化的一个例子。通过根据TimeEvent发生的间隔改变CG绘制的方法,甚至在PL以快速进行播放时,也能够精确地使Java对象操作和PL播放保持同步。值得注意的是图44中的屏幕显示中的横线夸张地描述了正在进行PL的快进播放,与VTR播放相似。在实际BD-ROM的快进中,屏幕上并不会出现这样的横线。这里,以高速进行快进时,例如,当以正常速度的十倍速进行快进时,最好从屏幕上清除CG。 \n[0352] 3.3暂停事件 \n[0353] 暂停事件(Pause Event)是当执行暂停操作时播放设备中发生的事件。图45示意性的显示了暂停事件的发生。通过描述事件处理程序,从而在这样的暂停事件发生时使播放设备的操作停止,从而能够消除操作中的矛盾,例如,进行CG运动的同时停止PL播放。 [0354] 通过将事件处理程序作为成员函数定义,其中该事件处理程序是作为上述事件的结果而运行的,能够为观众提供高等级的电影作品,其中Java对象的操作与PL播放保持精确地同步。 \n[0355] 根据上述本实施例,由于基于播放时间轴上当前播放点和播放进行的速度而改变Java对象的处理,因此能够使由Java对象绘制的CG运动变得更加逼真。 \n[0356] 4、第四实施例 \n[0357] 第四实施例涉及在BD-ROM上实现改进与DVD中的菜单控制相似的菜单控制。图\n46显示了由BD-ROM实现的菜单层次。图中的菜单层次具有这样一种结构,其中顶菜单(TopMenu)处于最高级,而标题菜单(TitleMenu),字幕菜单(SubTitleMenu),以及音频菜单(AudioMenu)都是顶菜单的次级菜单,它们都能够从顶菜单选择。图中的箭头sw1,sw2和sw3示意性地显示了通过按钮选择而进行菜单切换。顶菜单是在上面排列有按钮的菜单,用于接收执行的音频选择、字幕选择或者标题选择(图中的按钮sn1,sn2和sn3)。 [0358] 标题菜单是在上面排列有按钮的菜单,用于接收源于电影作品(标题)的选择,例如影院版本,导演的剪辑版本,以及游戏版本。音频菜单是上面有按钮的菜单,用于接收音频播放是否为日语或者英语,而字幕菜单是上面有按钮的菜单,用于接收字幕显示是否为日语或者英语。 \n[0359] 图47显示了用于操作具有这样层次菜单的电影对象。 \n[0360] FirstPlay对象(FirstPlay OBJ)是动态脚本,描述了当BD-ROM装载到播放设备中时产生的开启程序。描述FirstPlay对象的方格代表了用于执行启动程序的命令。\nFirstPlay对象的最后一个命令是转移命令,它将顶菜单对象设置为其转移目的地。 [0361] 顶菜单对象(顶菜单OBJ)是用于控制顶菜单行为的动态脚本。描述顶菜单对象的方格示意性地代表了显示控制过程的各个命令。这些命令包括响应于用户的操作用于改变顶菜单中按钮状态的命令,以及用于响应于对按钮所做的确认操作用于转移的转移命令。该转移命令 实现了从顶菜单到标题菜单,从顶菜单到字幕菜单,以及从顶菜单到音频菜单的菜单切换。 \n[0362] 音频菜单对象(音频菜单OBJ)是用于控制音频菜单行为的动态脚本。构造音频菜单对象的方格示意性地代表了显示控制过程的各个命令。这些命令包括响应于用户的操作用于改变音频菜单中按钮状态的命令,以及响应于对按钮所做的确认操作用于更新在音频设置中使用的SPRM的命令。 \n[0363] 字幕菜单对象(字幕菜单OBJ)是用于控制字幕菜单行为的动态脚本。构造字幕菜单对象的方格示意性地代表了显示控制过程的各个命令。这些命令包括响应于用户的操作用于改变字幕菜单中按钮状态的命令,以及响应于对按钮所做的确认操作用于更新在字幕设置中使用的SPRM的命令。 \n[0364] 标题菜单对象(标题菜单OBJ)是用于控制标题菜单行为的动态脚本。构造标题菜单对象的方格示意性地代表了显示控制程序的各个命令。这些命令包括响应于用户的操作用于改变标题菜单中按钮状态的命令,以及响应于对按钮所做的确认操作用于转移的转移命令。该转移命令实现了到各个字幕的转移。 \n[0365] 这些涉及菜单的电影对象允许实现如在DVD中实现的菜单行为。从而完成了涉及菜单控制的电影对象的描述。 \n[0366] 下面根据第四实施例说明在索引表中的改进。FirstPlay索引,音频菜单索引,字幕菜单索引和标题菜单索引被添加到本实施例的索引表中。如第一实施例所述,通过三个模式中任意一个的动态脚本而参照这些索引。 \n[0367] FirstPlay索引是在BD-ROM启动期间被参照的。FirstPlay索引的文件名在此索引中描述。 \n[0368] 当用户操作直接调用了音频菜单,字幕菜单以及标题菜单时,分别参照了顶菜单索引,音频菜单索引,字幕菜单索引以及标题菜单索 引。用户通过按下遥控器上的音频选择键,字幕选择键,或者标题选择键而执行用户的直接调用。 \n[0369] 因此完成对于根据本实施例电影对象中改进的说明。下面对本实施例中播放设备的改进进行说明。为了操作上述电影对象,模块管理器20需要执行图48流程图中所示的处理过程。 \n[0370] 为了进行菜单控制,本实施例中的模块管理器20根据图48所示的处理过程执行转移控制。该流程图的不同之处在于步骤S24被插入到步骤S8和S11之间,并且如果步骤S24为YES,在返回步骤S4之前,模块管理器20进行步骤S25至S28的处理。步骤S25至S28包括将用于执行菜单控制的脚本设置为当前动态脚本。即,如果转移命令的转移目的地为xxxMenu(步骤S24:YES),模块管理器挂起当前动态脚本i,保存变量x(步骤S25),从转移目的地菜单对应的索引中检索文件名(步骤S26),将检索的文件名的动态脚本设置为当前动态脚本i(步骤S27),并从当前模式返回到电影模式(步骤S28)。在此之后,模块管理器20继续执行当前动态脚本。 \n[0371] 根据上述的本实施例,由于转移到用于菜单控制的动态脚本以经由索引表的索引的间接参照而实现,甚至当在Java模式或者浏览器模式的执行期间按下菜单键时,也能够转移到用于菜单控制的动态脚本。使得能够从Java虚拟机或者从浏览器模式切换到音频和字幕。因此,甚至当使用Java虚拟机或者在浏览器模式实施播放时,本实施例能够类似于普通的DVD一样进行音频和字幕的切换。 \n[0372] 5、第五实施例 \n[0373] 在第一实施例中,Java模式的应用程序使用播放控件引擎提供的程序设计函数和系统变量说明了用于BD-ROM的播放控件。即,播放控制引擎提供的程序设计函数和系统变量直接用于描述播放控件。另一方面,根据第五实施例,Java模式的应用经由Java模块17提供 的成员函数描述了用于BD-ROM的控件。 \n[0374] 参照图49,对所描述的该种成员函数播放控件进行说明。图49显示了属于Java模式的类的成员函数。该Java模式,即层4,具有包含BD-ROMStatus,BD-ROMReproduction,以及BD-ROMEvent类的单独BD-ROM包。 \n[0375] 以下给出了该包中各个类的说明。 \n[0376] BD-ROMEvent类包含了多个成员函数,它们包括了setEventListener函数。当产生zzz.CLASS(Java对象)的实例(instance)时,该setEventListener函数在Java对象的成员函数的应用中进行了声明。即,仅在setEventListener函数对应用进行了声明后,才使Java对象成员函数的应用变为可能。当TimeEvent和UserEvents发生时,其应用已经由setEventListener函数声明的事件处理程序被驱动。 \n[0377] BD-ROMReproduction类是这样一个类,其作为成员函数封装了CELL()中的PlayPL,Mark()中的PlayPL,和Specified Time()中的PlayPL。 \n[0378] BD-ROMStatus类是具有用于获取状态和设置状态的成员函数的一个类。即,是这样的一个类,其封装了作为成员函数的(i)获得播放器状态寄存器函数的值,(ii)设置播放器状态寄存器函数的值,(iii)获得通用目的寄存器函数的值,和(iv)获得第一实施例中所示的通用目的寄存器函数的值。 \n[0379] 图中的箭头yc1,yc2,yc3,yc4,和yc5示意性地显示了PL播放函数,并通过BD-ROMStatus类、BD-ROMReproduction类和BD-ROMEvent类的成员函数获取/设置寄存器的设置值。如这些箭头所示,通过Java模块17中的包,第五实施例的Java对象应用了由播放控制引擎12和播放器变量提供的程序设计函数,其中该播放器变量是寄存器设置值。 [0380] 图50通过Java模式的成员函数显示了控件。 \n[0381] 箭头yp1象征性地描述了Java对象的产生,它是ZZZ.CLASS的实例。当第一次指示转移到Java对象时,由Java模块17使得其产生。箭头yp2象征性地描述了由Java对象对setEventListener函数的调用。 \n[0382] 箭头yh1象征性地显示了对事件处理程序应用的声明,它由setEventListener函数在事件对象中进行。箭头yh2象征性地显示了由事件对象中的成员函数驱动的事件处理程序。即,响应于对事件处理程序应用的声明,使得Java对象的事件处理程序可用,其中该事件处理程序由事件对象中的成员函数(setEventListener函数)产生,并且Java对象的事件处理程序由ClipeMarks和PLMarks定义的UserEvents和TimeEvent驱动。 \n[0383] 箭头yh3象征性地显示了由被驱动的事件处理程序获得的状态。即,事件处理程序是根据第五实施例的Java对象的成员函数,使用属于Java模式的类的成员函数(获得系统参数寄存器)间接地完成了播放设备的状态获取和设置。 \n[0384] 箭头yh4象征性地显示了由被驱动的事件处理程序进行的PL播放。即,事件处理程序是Java对象的成员函数,指示播放设备使用BD-ROMReproduction类的成员函数进行PL播放。 \n[0385] 根据上述本实施例,由于通过Java模块17中的包描述了用于BD-ROM的播放控件,就能够以与通用Java语言编程风格相同的风格描述用于BD-ROM的播放控件。从而提升了参与生产电影作品的软件厂商的生产率。 \n[0386] 值得注意的是,本实施例的包最好由负责BD-ROM标准化的许可证管理的组织发行,且在该组织与开发应用程序的软件厂商签署了正式合同的条件下。该合同包括禁止条款,不许开发有损于记录在BD-ROM上的电影作品的应用软件。因此,当抑制了电影作品被玷辱的担忧时,可以让软件厂商开发多种应用程序。 \n[0387] 6、第六实施例 \n[0388] 在第一到第五实施例中,电影对象进行从电影模式到Java模式的转换,该转换基于导航按钮信息中的转移命令。其中,在第六实施例中,通过菜单进行从电影模式到Java模式的转换。根据第六实施例图51显示了菜单等级。由于能够从顶菜单转换到其他菜单,这与图46所示的菜单等级图像有所不同。其他菜单,接收来自用户的在Java模式和浏览器模式之间的选择,包括用于接收转换到Java模式的按钮,和用于接收转换到浏览器模式的按钮。根据第六实施例图52显示了电影对象和索引表。该图与图47有所不同,这是由于(1)具有ExtraMenu对象(ExtraMenu OBJ),它控制其他菜单的行为,并能够进行从顶菜单中的电影对象到该其他菜单中对象的转移,并且(2)在索引表中具有用于其他菜单的索引,而且通过按下遥控器上的菜单键能够进行到其他菜单中对象的转移。 \n[0389] 响应于菜单键的按下,可以进行到Java模式的转换,这意味着,到Java模式的转换的进行与当前的播放点无关。转换为浏览器模式的情形也是这样。 \n[0390] 因此完成了了对根据本实施例电影对象和索引表索引表的改进的描述。以下描述了第六实施例中Java对象的改进。根据本实施例的Java对象发现,在从电影模式到Java模式的转换中,通过参照SPRM(10)进行了从电影模式中的播放点到Java模式的转移。然后,参照SPRM(10)和预装的进度表(图53),该Java对象在Java模式中进行处理。该进度表显示了出现于视频数据中的角色和出现这些人物的时间档之间的对应关系。 \n[0391] Java对象参照该表找到处于当前播放点处的角色(s),并执行以该角色(s)为主角的游戏。 \n[0392] 根据上述的本实施例,通过菜单的转移使得从电影模式到Java模式的转换。此外,通过参照在转移前指出播放点的SPRM(10),可 以根据用户完成观看的点而切换处理。\n这种切换使得能够生产与电影作品的播放紧密相关的Java语言应用程序。 \n[0393] 7、第七实施例 \n[0394] 在第一实施例中,使PL共享成为可能,这里电影模式中播放的PL中的CELL也能够在Java模式中播放。然而,该共享对于在PL信息中设置过滤信息的情况造成了障碍。该过滤信息从在AV流上多路复用的流中指定了有效的和无效的流。设置过滤信息的原因在以下描述。除了视频和音频流外,AV流还包括如导航按钮信息和字幕流的流。对于电影模式,导航按钮信息是必需的,但对于Java和浏览器模式的并不总是这种情况。这是因为,在Java模式中,可以使用Java语言绘制CG,并且不需要使用导航按钮信息。为了在Java模式中使得导航按钮信息无效,这种过滤信息是必需的。然而,如果过滤信息设置在PL信息中,且进行了上文提到的PL共享,也可以共享指定流有效与无效的过滤信息。 \n[0395] 当过滤信息设置在PL信息中时,由于不期望PL信息共享,在本实施例中PL按图\n54所示设置。图54根据第7实施例示出PL信息的的构造。在该图中已经将过滤信息和APP.Flag加入到PL信息中。 \n[0396] APP.Flag是用于指定动态脚本的信息,其中允许模式使用PL。通过选择电影模式、Java模式和浏览器模式三者中的一者,可以指定应用程序。当APP.Flag指明“00:电影模式”时,任何电影对象可以使用PL信息,但是Java对象和WebPage对象不能使用PL信息。 \n[0397] 另一方面,当APP.Flag表示“00:Java模式”时,任何Java对象可以提取PL信息。\n当APP.Flag表示“00:浏览器模式”时,任何WebPage对象可以提取PL信息。此外,当APP.Flag表示“11”时,任何模式的动态脚本可以应用PL信息。 \n[0398] 当允许一种模式的动态脚本使用PL信息块,而其他模式的动态 脚本禁止使用该信息块时,APP.Flag可以实现排他的控制。这种排他控制可以获得在PL信息中设置的过滤信息被一种欲使用模式的动态脚本所使用,并避免了在非预想模式中播放流。 [0399] 设置PL信息使得如图55所示的共享成为可能。图55显示了层次共享,其中每块PL信息被电影模式或Java模式排他使用,而数字流被电影模式或Java模式共享。 [0400] 为了进行基于APP.Flag的处理,在PlayPL函数调用之前,根据本实施例的动态脚本从播放控制引擎12中接收所期望的PL的APP.Flag用于播放。该动态脚本判断该动态脚本所属的模式是否与接收到的APP.Flag所示的模式一致。如果这些模式相同,则动态脚本进行PlayPL函数调用。另一方面,如果它们不符,将不会进行函数调用。结果,动态脚本和播放控制引擎12执行上述处理,只有在动态脚本处于APP.Flag表示的模式时,才进行PL的播放。 \n[0401] 值得注意的是,在PlayPL函数调用时,动态脚本可以通知播放控制引擎12动态脚本所属的模式,并且播放控制引擎12可以判断该模式是否与函数调用目的地PL的APP.Flag表示的模式一致。然后,如果一致,则执行PlayPL函数,如果不一致则不执行PlayPL函数。因此,只有当动态脚本处于APP.Flag指出的模式时,才进行PL的播放。 \n[0402] 如本实施例所示的层次共享使得场景提取成为可能,例如,其中在使用过滤信息时,可以使电影模式中的一个场景使用于Java模式中。 \n[0403] 这里不讨论过滤信息和APP.Flag可以被设置在流管理信息中。然而,如果过滤信息被设置在流管理信息中,各种模式中AV流的任何共享都将变为不可能,因此并不值得推荐。为了实现在其它模式中使用,最好通过将APP.Flag和过滤信息设置在PL信息中,以保留用于实际AV流共享的手段。 \n[0404] 8、第八实施例 \n[0405] 本实施例涉及BD-ROM的生产过程。图56是一个流程图,它根据显示了第八实施例的BD-ROM的生产过程。 \n[0406] BD-ROM的生产过程包括用于制造如视频记录和音频记录素材的素材生产过程S101,写作(authoring)过程S102,使用写作设备(authoring device)生成应用格式,和压制过程S103,用于制造主BD-ROM并压制和层叠以完成BD-ROM。 \n[0407] 所有的这些过程中,面向BD-ROM的写作过程包括:脚本编辑过程S201;素材编码过程S202;复用过程S203;格式化过程S204;和仿真过程S205。 \n[0408] 脚本编辑过程S201,用于将设计阶段产生的大纲转变为与播放设备可以理解的格式。脚本编辑的结果作为BD-ROM脚本。此外,在脚本编辑中也产生了用于实现复用的复用参数。 \n[0409] 素材编码过程S202是对视频素材、音频素材和字幕素材进行分别编码以获得视频流、音频流和字幕流的操作。 \n[0410] 复用过程S203交叉复用所获得的作为素材编码结果的视频流、音频流和字幕流,且该结果转换为单一数字流。 \n[0411] 在格式化过程S204中,产生了基于面向BD-ROM脚本的各种信息,且这些脚本和数字流适合BD-ROM格式。 \n[0412] 仿真过程S205用于确认写作结果是否正确。 \n[0413] 由于Java对象和WebPage对象可以分别使用Java语言和标记(markup)语言在上述的脚本编辑过程S201中进行描述,因此能够以与应用于针对通用计算机软件的开发的相同灵敏度开发这些对象。从而,本实施例具有增加脚本生成效率的效果。 \n[0414] 9、第九实施例 \n[0415] 第九实施例用于将根据本发明的记录介质实现为可重写光盘,如BD-RE(蓝光可重写盘)。第一实施例显示的“AV流,流管理信息和PL信息”的数据结构与BD-RE兼容。\nBD-RE记录装置通过进行实时地记录广播信号,将“AV流,流管理信息和PL信息”的数据结构写入BD-RE。用户对其上写入了数据结构的BD-RE进行编程,描述电影对象、Java对象、WebPage对象和索引表,并将这些写入BD-RE。因此,可以在BD-RE上实现与第一实施例所示的应用格式类似的格式。 \n[0416] 上述的本实施例为具有BD-RE记录装置的用户提供了这样一种机会,以创造产生第一实施例所示的应用格式,并因此能够使众多用户了解制作第一实施例所示的电影作品的乐趣。 \n[0417] 10、第十实施例 \n[0418] 第十实施例涉及在某种条件下将播放设备锁定在核心系统行为中,即使播放设备可以对Java对象和WebPage对象进行操作。 \n[0419] 即在下列情况(1)到(7)中,用于从电影模式到增强模式转换的路径是封闭的: [0420] (1)当用于保护电影作版权的密钥在播放设备中被发现时,并且该钥管理中心将该播放设备设置为无效时; \n[0421] (2)当用户通过使用解密软件(ripper software)对记录在记录介质上的电影作品制作未经授权的复制,从而导致电影作品的复制可能在网络上传播时; \n[0422] (3)尽管执行增强模式需要额外付费,但当没有额外付费时; \n[0423] (4)当由于播放设备的系统出现故障,需要把播放设备从网络上断开时; [0424] (5)当Java虚拟机和浏览器有版本冲突时; \n[0425] (6)当存在个人信息漏洞或者病毒软件感染的可能性,并需要 把播放设备从网络上断开时;以及 \n[0426] (7)当为了保护记录介质上的电影作品避免经授权的设备经过网络试图读取记录介质上的记录内容,希望把播放设备从网络上断开时。 \n[0427] 根据本实施例的Java对象和WebPage对象具有用于检测上述(1)至(7)情况存在的常规检测程序。该常规检测程序同网络服务器协作,对在播放设备上安装未经授权的软件和病毒感染进行检测。举例而言,该服务器由密钥管理中心进行操作,用于管理播放设备对密钥的使用,用于对用户收费的账户中心,以及用于促进对非法复制检测的版权管理中心。Java对象和WebPage对象与这些中心进行通讯。已经将该Java对象和WebPage对象进行编程,使得在该播放设备碰到情况(1)至(7)中至少一种情况时,强制性地将播放设备转换为作为核心系统而运转。 \n[0428] 其中,对使用解密软件的非法复制可能性的检测可能通过合并Java对象和WebPage对象中的常规检测程序而实现。该常规检测程序能够通过将HD中的报告文件和文件夹定时地处理给一个中心,并使得该中心实施这些审查。值得注意的是,这种审查假定所电影作品的购买经过预先批准。 \n[0429] 当经由网络而实现附加值的增加时,如上所述的本实施例能够描述Java对象和WebPage对象,以便于在当版权持有者和播放设备的制造者因为某种原因希望将播放设备与网络的连接断开时,将播放设备设置到核心系统行为中,然后以独立配置使用该播放设备。尤其是,在播放设备中安装有HD和操作系统,以及BD-ROM被用于与个人计算机相似的播放环境的情况下,本实施例具有重大意义。值得注意的是,如果在发生上述情况之后采取了适当的措施,该播放设备可以被转换回到完整系统。 \n[0430] 11、第十一实施例 \n[0431] 第十一实施例涉及装配有HD的播放设备,而且该播放设备的通讯单元23下载了索引表和新的PL,并将它们写入到HD中。当新的索引表被写入HD时,在从一个PL转移到另一个PL的情况下,模块管理器20不是从记录于BD-ROM上的索引表中检索文件名,而是从记录于HD上的索引表中检索文件名。然后,该模块管理器20读取具有检索到的文件名的视频数据,并使类DVD模块16、Java模块17、或者浏览器模块18执行该视频数据。 [0432] 在当记录于BD-ROM上的某些PL具有道德和伦理的问题时,如上所述的本实施例能够使播放设备下载索引表并替换视频。结果,在播放期间,通过使该播放设备经由新索引表而进行间接参照,能够使用户观看替换的视频,而不是有问题的视频。由于在需要部分替换时,不需要重写记录于BD-ROM上的所有动态脚本,甚至当产生这样的问题时,本实施例也可以避免召回记录介质的危险。 \n[0433] 除了需要替换的视频的情况,当不希望播放设备播放记录于BD-ROM上的多个标题中的一些特定标题时,或者当希望对记录于BD-ROM上的标题重新排序的时候,所需做的只是下载索引表。这是因为不需要为了进行这些更改而重写记录于BD-ROM上的所有动态脚本。 \n[0434] 12、备注 \n[0435] 这样,基于上述实施例对本发明进行了说明,然而,所提供的这些实施例仅仅作为目前情况下希望带来最好效果的系统的例子。本发明能够在不脱离本发明范围的情况下进行改进。下述条目(A)至(W)是本发明的代表性改进。 \n[0436] (A)在上述的所有实施例中,根据本发明的光盘以BD-ROM的形式实现。然而,本发明的光盘的特征在于记录有动态脚本和索引表, 而这些特性并不依赖BD-ROM的物理特性。任何形式的记录介质,只要具有记录动态脚本和索引表的容量,都是适用的。例如,光盘,如DVD-ROM,DVD-RAM,DVD-RW,DVD-R,DVD+RW,DVD+R,CD-R和CD-RW,以及光磁盘,如PD和MO,都可以适用。如高密度闪存(Comapct Flash)卡、智能介质(Smart Media)、记忆棒、多媒体卡(Multimedia Cards)和PCM-CIA卡等半导体存储卡也都适用。此外,(i)如软盘,SuperDisk,Zip,和Clik!的磁记录盘,以及(ii)如ORB,Jaz,SparQ,SyJet,EZFley,和微驱动器的可移动硬盘也可以适用。另外,该记录介质也可以是内置硬盘。 \n[0437] 动态脚本、索引表和PL信息可以被记录在不同于用于AV流和流管理信息的记录介质的记录介质上。然后可以将它们并行读取并作为单一的视频剪辑而播放。 \n[0438] (B)尽管所有实施例中的播放设备都首先对记录于BD-ROM上的AV流进行解码,然后将其结果输出到电视,然而该播放设备也可以仅仅由BD-ROM构成,并将所有其它元件都装备于电视上。在这种情况下,该播放设备和电视能够并入使用IEEE1394联接的家庭网络。另外,尽管实施例中的播放设备为与电视连接之后使用的类型,但也可以使用一体化的显示-播放设备。此外,该播放设备可以是实施例的播放设备中进行基本处理部分的那些部件。因为这些播放设备是公布于本应用说明书中的所有发明,所以包括制造基于第一至第十一实施例所示的内部结构的播放设备的行为是本应用说明书中所公开的实施。包括第一至第十一实施例中所示的播放设备的转让(涉及价值是零售,不涉及价值是礼品),租赁和进口的行为也是本发明的实施。通过橱窗展示,目录征询,分发小册子等方式就转让和租赁而接近用户的行为也是这些播放设备的实施。 \n[0439] (C)因为图29-31,图39和图48中所示的程序进行的信息处理使用硬件资源具体地实现,所以示出在流程图中显示的处理过程的程序 以其本身的权利形成发明。尽管所有的实施例示出涉及本发明的程序的实施,而该实施在播放装置中是合为一体的形式,但第一至第十一实施例示出的程序可以以其自身权利与播放装置分开实施。程序以其自身权利的实施包括的行为涉及:(1)程序的生产;(2)程序的转让,免费的或者其它形式;(3)程序的借出;(4)程序的进口;(5)经由电子通讯电路双向地公开提供程序;以及(6)通过橱窗展示,目录征询,分发小册子等方式就转让和租赁而接近一般用户,等等。 \n[0440] (D)考虑到涉及在流程图29-31,39和48中的时间序列中执行的步骤“时间”要素为指定该发明所需的项。如果是这种情况,那么,流程图中所示的处理过程可以被理解为公开了播放方法的的使用配置。执行流程图中的处理,以便于实现本发明最初的目标,并通过执行时间序列步骤中的处理而实施该行为和效果,毋庸置疑,该记录方法的实施也属于本发明。 \n[0441] (E)尽管上述实施例中的Java对象是绘制CG的应用,但由Java语言描述的任何应用都是可适用的。举例而言,Java对象可能是用于EC(电子商务)的客户应用程序。由于能够实现提供了包括电影作品视频产品的描述的Java对象,可能给电影相关的特色商业带来成功。另外,Java对象的应用可以是在线搏击游戏。此外,由使用Java对象,由CG代表的角色可以作为中介而进行处理。作为中介的角色可以实现播放设备的帮助功能,或者可以为用户提供建议。 \n[0442] 作为由Java对象使用的库可以被记录于BD-ROM上。这样的库包括PNG文件,存储动画数据的MNG文件,存储与流相关信息的XML文件,以及HTML/SMIL文件。特别地,在存储动画数据的MNG文件被作为库记录于BD-ROM上的情况下,可能容易地绘制如上所述的老鹰的CG。 \n[0443] WebPage对象从网站上检索的信息可能是网页和图像数据。另外,这样的信息也可以是AV流,流管理信息,和PL信息。WebPage 对象可以与搜索引擎合作进行处理。 [0444] 此外,在增强模式中的描述语言可以是C++,C#等等。 \n[0445] (F)值得注意的是,第一实施例的图18中的例子仅仅是根据本发明描述BD-ROM的播放控件的手法的例子。其它的描述手法包括直接从AV流中的导航按钮信息转移到Java对象。图57示出播放控制的例子,其用于直接从AV流中的导航按钮信息转移到Java对象。\n对导航按钮信息进行描述,以便于执行这样的转移,使得场景发展的描述不受约束,例如从一个出现有角色的场景转移到由该角色主演的游戏中,这种转移为场景的发展扩大了表达的范围。 \n[0446] (G)关于第六实施例,可以在BD-ROM上记录用于显示章节列表的菜单(章节菜单)和用于控制该菜单行为的电影对象,以便于从顶菜单进行转移。另外,也可以通过按下遥控器上的章节键调用该菜单。 \n[0447] (H)在BD-ROM上记录时,扩展标题最好是附加于构造AV流的TS包上。该扩展标 题,称 为TP_extra_header,包括“Arrival_Time_Stamp”和“copy_permission_indicatior”,并具有4字节的数据长度。附加有TP_extra_header的TS包(下文中简写为“EX-attanched TS包”)被排列在具有32个包的组中,并被写入三个扇区。每一个包括\n32个EX-attanched TS包的组具有6144字节的数据(32×192)长度,并与三个扇区的大小6144字节(=2048×3)相匹配。包含于三个扇区中的具有32个EX-attanched TS包的组被称作“结盟单元(aligned unit)”。 \n[0448] 当播放设备200使用于由IEEE1394连接的家庭网络中时,以如下所述的方式在传输处理过程中传送结盟单元。也就是说,在发送机一侧的设备将从结盟单元中包含的的\n32个EX-attanched TS包的每一个中删除TP_extra_header,并在基于DTCP标准对TS包体进行编码后输出TS包。当输出TS包时,在所有相邻的TS包中插入同步包。同步包的位置基于在每一个TP_extra_header中Arrival_Time_Stamp 示出的时间。播放设备200在输出TS包之后输出DTCP_Descriptor。该DTCP_Descriptor示出设置于每个TP_extra_header中的复制许可。其中,如果描述DTCP_Descriptor,以便于示出“复制许可”,当在由IEEE1394连接的家庭网络时中使用时,TS包将不会被记录于其它的设备中。 \n[0449] (I)复制产生信息(CGI)可以被嵌入到AV流中,并允许AV流的有限复制。CGI包括“自由复制”,表示允许不受限制的复制,“一次复制”,表示允许记录一次复制,“不能再复制”,表示禁止进一步复制的再现,和“从不复制”,表示决不允许复制。也就是说,只有当内容中嵌入的CGI表示“自由复制”或者“一次复制”时才能进行从HD到DVD的备份,但当CGI表示“不能再复制”或者“从不复制”时则不能进行备份。 \n[0450] (J)在AV流中加入权利管理信息的情况下,在权利管理信息定义的使用条件下,允许AV流的复制。 \n[0451] 当许可复制的条件定义为权利管理信息中指定的复制次数时,可在此范围中进行复制。当许可复制的条件定义为指定的有效时间段时(年、月和日),可在此范围中进行复制。 \n[0452] (K)在当复制处理包括各种变化,如转移(transfer)、移动(migration)、检出(check out)等的情况下,可以基于对每一种变化定义的使用条件而进行备份。转移是复制处理,包括删除在复制源的内容,并当内容在多个记录介质中转移时使用。 \n[0453] 移动是假定在复制目标的记录介质上创建使用条件信息的情况下,进行的复制处理。 \n[0454] 检出是具有有限复制数目的一种复制,并且在复制数目减小之后进行内容的复制。检出与普通术语“有限复制次数”的不同之处在能够增加复制的数目。当由于复制而使得不可能播放记录介质上的内容时,在处理后进行复制数目的增加(这就是所谓的“检入(checkin)”)。 \n[0455] (L)在上述实施例中的AV流可以是遵从DVD-视频标准和DVD-视频记录标准的VOB(视频对象)。VOB是遵从ISO/IEC-13818-1由复用视频和音频流获得的的程序流。另外,实施例中的AV流可以称为“AVClips”。在这种情况下,流管理信息可以被称为Clip信息。同样,AV流中的视频流可以是MPEG-4格式,WMV格式等。此外,音频流可以是线性-PCM格式,Dolby-AC3格式,MP3格式,或者MPEG-AAC格式。 \n[0456] (M)尽管上述实施例中的CELL信息使用时间信息指定了播放区段的起始和结束点,但也可以使用BD-ROM上的逻辑地址来替代。另外,上述实施例中的CELL可以被称为“PlayItem”。 \n[0457] (N)流管理信息中的TMAP可以被称为“EP_map”。在这种情况下,ACCESS UNITs的播放起始时间最好由位于各个ACCESS UNITs头的图片数据的时间标志(展示时间标志)来表示。另外,ACCESSUNITs的地址优选地由PES包的序列号(SPN(包序列号))来表示。 [0458] (O)在播放设备的结构中,动态脚本存储器15中只存储当前动态脚本,静态脚本存储器11中只存储当前流管理信息和当前PL信息。然而,可以事先在高速缓冲存储器中存储多个脚本、流管理信息和PL信息。因此,可以缩短到从BD-ROM上读取这些数据的时间滞后。另外,尽管备份存储器14以堆栈形式保存了寄存器中的存储值,但当考虑到与存储器大小的关系时,设置该存储值以在一层上存储是现实的。 \n[0459] (P)为了在一行中播放构成PL的两个或者多个CELL,优选的是执行处理,以便于无缝隙地连接这些CELL。 \n[0460] 用于无缝隙连接的过程能够通过复制视频数据前面播放区段的结尾部分和随后播放区段的开头部分以事先创建复制部分,并对该复制部分进行再编码而实现。值得注意的是,用于无缝隙连接而创建的复制部分可以被称为的“桥片断”。 \n[0461] 其中最好是以如下方法设置结尾部分和开头部分。 \n[0462] 结尾部分最好由包括前面播放区段的离开点的ACCESS UNIT和该离开点前面的两个ACCESS UNIT,其中这两个ACCESSUNIT包括位于前述CELL信息#X中的ACCESS UNIT,在另一方面,开头部分包括在随后CELL信息#X+1中,包括随后播放区段进入点的ACCESS UNIT组成。用于在这种方式设置开头和结尾的背景在美国专利出版物No.6148140的相关技术中说明,其中该出版物由本发明的申请人公开,因此更详细的细节可参照该专利出版物。 \n[0463] 进一步地,希望为无缝隙连接而创建的复制部分设置无缝隙连接信息。无缝隙连接包括第一视频帧的开始播放时间,最后视频帧的结束播放时间,音频间隙的开始时间,音频间隙的持续时间和音频间隙的位置信息。当定义了这样的无缝隙连接信息时,能够使用第一视频帧的开始播放时间和最后视频帧的结束播放时间计算两个区段的时间标记的差异(STC-Offset),并将计算出的差异送到播放设备。另外,通过参照音频间隙信息对音频解码器进行控制,可以防止从一个区段到另一个区段转换时的音频中断。 \n[0464] (Q)在上述实施例中的标题(电影作品)对于对应于以视频图片表示的所有版权作品,如电视电影,游戏软件等。这是由于在上述实施例中的视频剪辑(i)是以产生视觉或者音频-视觉效果的方法表示,例如阴极射线管显示器,液晶显示器等;(ii)通过以一种或其他方式,与作为有形实体的BD-ROM结合,存在为保持特性;以及(iii)被放置于可复制的环境中,并因此满足具有版权的电影作品存在的格式需要。 \n[0465] 然而,由于本发明的基本要素并不局限于这种视频剪辑,因此本发明的视频数据可以是由监控摄像机和家用视频摄像机获得的视频图片。 \n[0466] (R)上述实施例中的BD-ROM与优先权申请中说明的HD-DVD和BD-ROM是相同的,其所要求的优先权基于该申请(美国 No.60/409,999和No.60/440,623)。另外,上述实施例中的播放控制引擎12与作为基础申请的说明书中公布的BD-ROM-FF处理器3025和脚本处理器304(图35)相对应。模块管理器20与播放控制器3024(图35)相对应,而类DVD模块16,Java模块17和浏览器模块18与DVD兼容模块3021,Java模块3023,以及浏览器模块3022相对应。由于这些都在作为基础的申请中说明,因此涉及技术问题的要求优先权是有理由的。 \n[0467] (S)Java语言中绘制的CG(例如老鹰的图像)可以用NURBS(非均匀有理B样条(Non Uniform rational B-Spline))格式由数据而创建。NURBS是贝塞尔曲线簇(例如被称为“B样条”的贝赛尔曲线簇),而且每一个贝塞尔曲线的曲率都是不均匀。 \n[0468] CG可以在多边形格式中创建。该多边形格式是一种数据格式,它通过多面近似而定义以表示一定的三维形状。AutoCAD的数据交换格式(DXF)由在美国的Autodesk定义,而且HRC,WAVEFRONT,IV和VRML的其它格式都是众所周知的多边形格式。 \n[0469] 配置的表面图案可以由纹理映射而添加。绘制引擎22创建了上述三维形状数据的投影图像,并具有图像解码器解码该投影图像。基于这一点,绘制引擎22进行了纹理映射。纹理映射是在平面或者曲线表面上粘贴纹理图案的过程以显示其结果,纹理图案例如静止图像,位图等。另外,控制点之间的平面的颜色和亮度或以基于各三维形状数据块上的平面位置和光源位置之间的距离和位置关系而计算,而且投影图像上的颜色的亮度可以根据该计算亮度进行调整。这种基于光源位置和每一平面之间的距离和位置关系而计算控制点间平面表面颜色的亮度的过程被称为描影(shading)过程。作为该描影过程的结果,三维形状数据的投影图像被描出,并获得了三维外观。上述处理能够显示CG,该显示CG可与由专业的游戏机创建的相比,并仅次于电影的视频图像。 \n[0470] 角色的动作,例如老鹰的飞行,通过基于恒定的规律性而改变三维形状数据而实现。最好是在构成XXX.M2TS的多个盘区之间记录三维形状数据(位置与图7中的“另一文件”相对应)。从而可以一起读取AV流和三维形状数据。 \n[0471] (T)尽管在上述实施例中,可以从遥控器上接收用户对视频剪辑的选择操作,但该操作也可以从播放设备的前面板上接收。或者,用户的指定也可以经由输入设备、例如键盘、触摸屏、鼠标、手柄、跟踪球等接收。在这种情况下,可以通过点击和拖曳操作接收选择操作。 \n[0472] (U)实施例中的电影剪辑可以对通过模拟广播的模拟视频信号广播进行编码而获得。同样,电影剪辑可以是由数字广播播送的传送流组成的流数据。 \n[0473] 另外,可以通过对记录于录像带上的模拟/数字视频信号进行编码而获得内容。\n此外,也可以通过对直接从视频摄像机得到的模拟/数字视频信号进行编码而获得内容。\n或者,内容可以是发行服务器发行的数字版权作品。 \n[0474] (V)为了接收卫星广播,Java模块17可以是安装在设备上的Java平台。如果Java模块17是这种Java平台,根据本发明的播放设备可以共享MHP使用的STB的处理。 [0475] 进一步地,为了进行移动电话处理控制,Java模块17可以是安装在设备上的Java平台。如果Java模块17是这种Java平台,根据本发明的播放设备可以共享移动电话的处理。 \n[0476] 另外,浏览器模块18可以是安装于计算机上的浏览器软件,例如微软的Internet Explorer等。 \n[0477] (W)在图12示出的层模型中,浏览器模式和电影模式可以被置于Java模式之上。\n尤其是由于播放设备上对动态脚本进行解释以及电影模式中基于动态脚本执行控制程序的负载较轻,所以甚至当电影模式在Java模式之上执行时也不会出现问题。另外,当开发播放设备和 电影作品时,操作保证可以在单一模式中处理。 \n[0478] 此外,可以仅仅在Java模式中进行Java模式的处理,而不是在所提供的三种模式中。如第二实施例中所示,由于甚至在Java模式中也可以使得播放控制与PL播放同步,所以就免去了提供电影模式的必要性。此外,动态脚本的控制可以仅仅在电影模式或者浏览器模式中进行。 \n[0479] 工业应用 \n[0480] 由于根据本发明的记录介质有效地增加了构成电影作品的视频数据的附加值,这就可能为市场提供更吸引人的电影作品,并刺激电影和消费设备的市场。因此,根据本发明的记录介质和播放设备在电影和消费设备产业中有很好的应用。
法律信息
- 2017-01-25
专利实施许可合同备案的生效
IPC(主分类): G11B 27/00
合同备案号: 2016990000555
专利号: ZL 03825090.X
申请日: 2003.09.12
让与人: 蓝光联合有限责任公司
受让人: 上海新索音乐有限公司
发明名称: 播放设备、播放方法、以及记录介质的记录方法
申请公布日: 2005.11.09
授权公告日: 2012.03.14
许可种类: 普通许可
备案日期: 2016.12.28
- 2012-05-30
发明专利更正
发明专利更正 卷=28 号=11 页码=扉页 更正项目=发明人姓名 误=上板靖 正=上坂靖
- 2012-05-30
发明专利公报更正
发明专利公报更正 卷=28 号=11 更正项目=第四发明人姓名 误=上板靖 正=上坂靖
- 2012-03-14
- 2006-01-04
- 2005-11-09
引用专利(该专利引用了哪些专利)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 |
1
| |
2000-04-26
|
1998-12-25
| | |
被引用专利(该专利被哪些专利引用)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有被任何外部专利所引用! |