用于执行应用程序同步重放的重放装置的制作方法

文档序号:6773038阅读:88来源:国知局
专利名称:用于执行应用程序同步重放的重放装置的制作方法
技术领域
本发明属于数字流和应用程序同步重放的技术领域。
背景技术
应用程序同步重放是用于在重放装置或用于播放视频的类似装置中运行 Java(注册商标)应用程序的同时播放数字流的一项技术,并且属于在今后制造的消费品 中将吸引大量关注的技术领域。用于同步的应用程序和数字流以被称为“标题”的重放为 单位彼此相联系。下面描述传统的重放装置。传统的重放装置由虚拟文件系统单元、模块 管理器、重放单元和平台单元构成。虚拟文件系统单元管理由重放装置访问的多个记录介质,例如光记录介质(例如 DVD-R0M,BD_R0M,在后面作为例子描述后者)和磁记录介质(例如硬盘),并且生成整体地 显示这些记录介质所记录内容的包信息。每条包信息被称为虚拟包,其在记录于这些记录介质上的数据流和应用程序(在 下文简称为“应用程序”)的重放/执行中被提交,就如同它们实际记录在单一包中。模块管理器选择多个标题中的一个作为当前标题。重放单元从包信息所示的数字流中播放构成当前标题的数字流(即记录在光或 磁记录介质上)。平台单元从包信息所示的应用程序中运行构成当前标题的应用程序(即记录在 光或磁记录介质上)。根据以上结构,记录在不同记录介质例如BD-ROM和硬盘上的数字流和应用程序 可以作为单一(虚拟)包来对待,并且重放装置能够以标题为单位实现重放控制。以上结构中的标题不仅用于记录在用于重放的BD-ROM上的数字流而且用于记录 在硬盘上的数字流。由于硬盘是可重写的记录介质,因此标题的组成要素可能通过重放部 分地被替换,例如当使用新采集的数字流新生成包信息时。在很大程度上认为这样的替换引起的情况难以恢复例如在重放期间由重放单元 的异常操作产生的视频中断。如果重放装置中的重放单元顺序地检验例如用于重放的数据流和重放控制信息 的要素的一致性,可以预期通过重放部分地替换重放对象。然而,假设需要检验的信息类型 互异,这对重放单元造成了很大负担。为了绝对保证设备的稳定操作,理想的是当在硬盘上的记录内容中有变化时重启 设备自身,就象当你安装软件时那样。然而,假设在任何地方重启设备花费几秒到几分钟的 处理时间,这并不是用户能轻松承担的事情。

发明内容
本发明的目标是提供一种重放装置,即使在重放对象中有变化时所述重放装置也 能够实现稳定重放。为了解决以上问题,本发明是一种结合应用程序播放数字流的重放装置,其包括 包管理单元,用于根据合并管理信息通过合并记录在第一记录介质和第二记录介质上的文 件所述包管理单元生成包信息,和选择单元,用于检测来自包信息的多个可播放标题,并且 选择检测到的标题中的一个作为当前标题。当应用程序通过指定新合并管理信息请求包管 理单元更新合并管理信息之后,在更新包信息之前包管理单元将从新指定合并管理信息引 用的文件变为只读,并且在数字流重放由于当前标题由选择单元改变而停止时,包管理单 元根据新指定的合并管理信息通过组合记录在第一和第二记录介质上的文件生成新包信 肩、ο由于具有以上结构,本发明保证了在应用程序通过指定新合并管理信息请求包管 理单元更新合并管理信息的情况下,从新指定的合并管理信息引用的文件的内容从提出更 新请求的时间直到当前标题变化都未被改变,这是因为在更新包信息之前包管理单元将从 新指定的合并管理信息引用的文件设置为只读。而且,通过在数字流重放由于当前标题变 化被停止时更新包信息,即使例如用于重放/执行的数字流或应用程序由于更新被替换也 不会引起重放装置的异常操作。因而,由于可以通过动态地合并记录在第一和第二两个记录介质上的文件并且同 时保证重放装置的稳定操作而实现重放控制,扩大了电影作品的表达宽度。在这里,包管理单元可以被配置成如果请求更新的应用程序的许可标记(tag)中 的信息指示应用程序已被分配更新包信息的权利,则更新包信息,如果该信息指示未被分 配更新的权利,则拒绝更新请求并且执行异常处理。该结构能够阻止未授权应用程序请求的包信息的更新。




图1是系统图2显示了 BD-ROM 100的内部结构; 图3系统地显示了怎样构造扩展名为“m2ts”的文件; 图4显示了 PL信息的结构; 图5显示了 AVClip和PL之间的关系;
图6显示了使用四个Clip_Information_file_names的分批指定; 图7显示了 PLMark信息的内部结构; 图8显示了使用PLMarks的章节定义; 图9显示了 Subpath信息的内部结构; 图10显示了同步指定和SubClip时间轴上的重放间隔定义; 图IlA显示了被包含在档案文件中的程序数据; 图IlB显示了类文件的内部结构; 图12显示了 BD-J对象的内部结构; 图13显示了 INDEX. BDMV的内部结构;
4
图14显示了本地存储器中的目录结构;图15显示了由存储在本地存储器中的PL信息定义的播放列表重放时间轴的类 型;图16A显示了存储在BD-ROM上的AVClip和存储在本地存储器中的Java应用程 序和 AVClip ;图16B显示了作为单一标题来对待的Java应用程序和AVClip#l_#4 ;图17显示了合并管理信息文件的典型内部结构;图18显示了重放装置的硬件配置;图19描绘了由硬件和存储在指令ROM 21上的软件组成的以层状结构重布置的元 件;图20显示了 Java虚拟机30的内部结构;图21显示了由标题变化产生的状态转变;图22显示了由虚拟文件系统单元38典型地产生虚拟包信息;图23A显示了整个光盘的时间轴;图23B显示了整个光盘的时间轴的结构;图24是由Java应用程序执行的下载处理的流程图;图25是更新“准备”过程的流程图;图26是虚拟包“更新”过程的流程图;图27是由模块管理器执行的处理的流程图;图28是PL重放过程的流程图;图29显示了在标题变化期间怎样更新虚拟包信息;图30显示了将当前合并管理信息文件发送到服务器的Java应用程序;图31显示了下载内容文件、新合并管理信息文件和新签名信息文件的Java应用 程序;图32显示了向虚拟文件系统单元38提出更新请求的Java应用程序;图33显示了合并管理和签名信息文件的替换,和内容文件的映射;图34A是当标题调用之后暂停当前标题的重放时由重放控制引擎执行的处理的 流程图;图34B是当所调用的标题的重放结束之后继续重放原始标题时由重放控制引擎 执行的处理的流程图;图35显示了实施方式3中的合并管理信息文件;图36显示了关于实施方式3的Java应用程序,该应用程序请求更新虚拟包;图37显示了由使用合并管理信息文件的常驻应用程序向用户显示的典型附加内 容列表;图38是关于实施方式3的从BD-ROM的装载直到重放的处理流程的流程图;图39显示了当请求虚拟包更新时被指定的有效间隔;图40是关于实施方式4的从BD-ROM的装载(或重放装置的重启)直到重放的处 理流程的流程图;图41显示了用于筛选虚拟包更新请求的许可请求文件;
图42显示了强加在用于合并的本地存储器中的目录上的访问限制;图43显示了其生命周期被限制到单一标题的Java应用程序和其生命周期持续多 个标题的Java应用程序;图44显示了在标题变化期间当更新虚拟包时在未绑定标题(title-unbound)的 应用程序上执行的处理;图45是考虑未绑定标题的应用程序的标题变化处理的流程图;和图46是在INDEX. BDMV文件变化之后的虚拟包更新的流程图。
具体实施例方式实施例1下面描述与本发明相关的记录介质的实施例。首先,描述关于本发明的重放装置 的实现形式中的一种使用形式。图1显示了关于本发明的重放装置的典型使用形式。在图 1中,关于本发明的重放装置是重放装置200。重放装置200用于在家庭影院系统中提供电 影作品,所述家庭影院系统例如由重放装置200,遥控器300,和电视400组成。关于本发明的重放装置的典型使用形式如上所述。接着描述用于由关于本发明的 重放装置进行重放的记录介质。在给出的例子中,由关于本发明的重放装置播放的记录介 质是BD-ROM 100 (光记录介质)。图2显示了 BD-ROM 100的内部结构。在图2中的第四层级显示了 BD-ROM 100,而在第三层级显示了 BD-ROM上的轨道。 图2中描绘的轨道由从BD-ROM的内圆周到外圆周的轨道螺旋产生,其对于侧面已经被画 出。该轨道由导入区、卷区和导出区组成。图2中的卷区具有由物理层、文件系统层和应用 层组成的层状结构。使用目录结构表达BD-ROM的应用格式给出了图2中的第一层级。BDMV 目录放置在BD-ROM中的第一层级的根目录下。INDEX. BDMV文件布置在BDMV目录中,并且在BDMV目录下存在五个子目录,它们被 称为PLAYLIST目录,CLIPINF目录,STREAM目录,BDJA目录,和BDBJ目录。STREAM目录存储形成主数字流的文件,将扩展名“m2ts”分配给该文件(00001. m2ts)ο在PLAYLIST目录中存在扩展名为“mpls”的文件(00001. mpls)。在CLIPINF目录中存在扩展名为“clpi”的文件(00001. clpi)。在BDJA目录中存在扩展名为“jar”的文件(00001. jar)。在BDBJ目录中存在扩展名为“bdbj”的文件(00001. bdbj)。接着描述这些文件。AVClip首先描述扩展名为“m2ts”的文件(00001. m2ts)。图3系统地显示了怎样构造扩展 名为“m2ts”的文件。该文件存储AVClip。通过多路复用TS包构成AVClip (中间层级),通 过将由多个视频帧(图片pjl,pj2,pj3)组成的视频流和由多个音频帧组成的音频流(上 面第一层级)首先转换成PES包(上面第二层级),然后转换成TS包(上面第三层级),并 且以相同的方式将字幕图形显示(P图形或PG)流(下面第一层级)和对话交互图形(I图 形或IG)流(下面第一层级)转换成TS包(下面第三层级)来产生所述TS包。除了如图3中所示通过多路复用获得的AVClip之外,也存在不是由多路复用产生
6的AVClip。这些被称为SubClip,并且包括构成音频流、图形流或文本字幕流(TextST流) 等的 AVClip。剪辑信息扩展名为“clpi”的文件(00001. clpi)是与AVClip对应的一条剪辑信息。剪辑 信息是管理信息,其包含显示GOP的头位置的EP_map,和诸如AVClip中的流的编码格式、帧 频、比特率和分辨率等的信息。PL 信息扩展名为“mpls”的文件(00001. mpls)存储播放列表(PL)信息。PL信息通过参 考AVClip定义播放列表。图4显示了 PL信息的结构,如图的左侧所示,PL信息由MainPath 信息,PLMark信息和SubPath信息构成。MainPath信息“MainPath () ”由箭头mpl所指示的播放项目信息"PlayItemO ”组 成。播放项目是通过在一个或多个AVClip时间轴上指定In_time和0ut_time来定义的重 放间隔。多条播放项目信息的放置定义由多个重放间隔组成的列表。图4中的箭头mp2显 示了播放项目信息的内部结构的特写。如图4中所示,播放项目信息由In_time,0Ut_time 和显示相应的 AVClip 的 Clip_Information_file_name 组成。图 5 显示了 AVClip 和 PL 之 间的关系。第一层级显示AVClip的时间轴,而第二层级显示PL的时间轴。PL信息包括三 条播放项目信息(PlayItem#l-#3),其中三个重放间隔由Playltem#l、#2和#3的In_times 和0ut_timeS定义。当这些重放间隔以线布置时定义不同于AVClip的时间轴。这是在第 二层级所示的PL时间轴。因而允许通过播放项目信息中的定义来定义不同于AVClip的时 间轴。通常,在任何一个时间指定一个AVClip,尽管多个AVClip的分批指定也是可能 的。使用播放项目信息中的Clip_Information_file_names执行AVClip的分批指定。图 6显示了使用四个Clip_Information_file_names分批指定AVClip。图中的第一至第四层 级显示了四个AVClip时间轴(时间轴AVClips#l-#4),而第五层级显示了 PL时间轴。四 个时间轴由包括在播放项目信息中的这四个ClipJnformatiorufilejames指定。这允许 由In_timeS和0ut_timeS定义四种备选的可播放的重放间隔。结果,在PL时间轴上定义 由多条可切换角视频(所称的多角度间隔)组成的间隔。PLMark信息“ PLMark () ”指定PL时间轴上的任意间隔作为章节。图7显示了 PLMark信息的内部结构,该内部结构包括箭头pml所指示的ref_to_playitem_id和Mark_ time_Stamp。图8显示了使用PLMark定义章节。图8中的第一层级显示AVClip时间轴, 而第二层级显示PL时间轴。图8中的箭头pkl和pk2显示PLMark中的播放项目(ref_to_ playitem_id)和时间点(Mark_time_stamp)的指定。由于这些指定在PL时间轴上定义三 个章节(Chapters#l-#3)。这完成了对PLMark的描述。 接着描述SubPath信息。 SubPath 信息"SubPath (),,通过在 SubClip 时间轴上指定 In_time 和 0ut_time 定 义一个或多个重放间隔,并且具有图9中所示的内部结构。SubPath信息由箭头shl所指示 的子播放项目信息"SubPlayItemO,,组成。在箭头sh2所标记的特写中,子播放项目信息 由 Clip_Information_file_name, In_time, 0ut_time, Sync_PlayItem_Id,禾口 Sync_Start_ PTS_of_PlayItem组成。使用包括在子播放项目信息中的Clip_Information_file_name,
7In_time 禾口 0ut_time 指定 SubClip 时间轴上的 In_times 禾口 0ut_times。 Sync_PlayItem_ Id,和Sync_Start_PTS_of_PlayItem用于使SubClip时间轴和PL时间轴上的重放间隔同 步。这允许在SubClip时间轴和PL时间轴上的处理以彼此同步进行。图10显示了同步指定和SubClip时间轴上的重放间隔的定义。图10中的第一层 级显示PL时间轴,而第二层级显示SubClip时间轴。图10中的SubPlayItem. In_time和 SubPlayItem. 0ut_time分别显示重放间隔的开始和结束。因而显然重放间隔也在SubClip 时间轴上被定义。箭头Snl所标记的Sync_PlayItem_Id显示播放项目的同步指示,而箭头 Sn2所标记的Sync_Start_PTS_0f_PlayItem指定PL时间轴上的播放项目期间的一点。BD-ROM中的PL信息的特征在于它使得定义允许切换AVClip的多角度间隔和允许 同步AVClip和SubClip的同步间隔成为可能。将剪辑信息和PL信息归类为“静态脚本”。下面描述“动态脚本”。在这里“动态”指的是重放控制的内容由于用户键事件和 重放装置200中的状态变化等而变化。使用BD-R0M,可以使用与Java应用程序相同的描述 来描述重放控制。也就是说,使用BD-ROM,Java应用程序充当动态脚本。Java应用程序下面描述Java应用程序。Java应用程序由装载在虚拟机的堆积区(也称为工作 存储器)中的一个或多个xlet程序组成。应用程序由装载在工作存储器中的xlet程序以 及数据构成。Java应用程序结构如上所述。实际Java应用程序是存储在图2中的BDMV目录下的BDJA目录中的Java档案文 件(00001. jar)。下面参考图11描述Java档案文件。Java档案文件Java档案文件(图2中的00001. jar)是一个或多个类文件和数据文件等的集合。 图1IA显示了收集在档案文件中的程序和数据。图1IA中的数据是由Java档案库存储器收 集并且排列在框内所示的目录结构中的多个文件。该目录结构由根目录,Java目录,和图像 目录组成,其中common, pkg文件,类文件(aaa. class,bbb. class),禾口 menu, jpg文件放置在 各自的目录内。Java档案文件是Java档案库存储器将这些文件收集在一起的结果。当从 BD-ROM读入高速缓存时类文件和数据被扩展,并且在高速缓存中作为存在于目录中的多个 文件来对待。Java档案文件的文件名中的五位数字数值“00001”显示Java档案文件的标 识符(ID),并且BD-J对象使用该值来参考Java档案文件。当将Java档案文件读入到高速 缓存中时通过参考文件名中的该数值,有可能提取构成任意Java应用程序的数据以及程 序。图IlA中的类文件(aaa. class, bbb. class)对应于以上的xlet程序。使用这些 类文件的xlet程序(即实例)定义由Java平台支持的工作模式(BD-J)中的重放过程。 xlet程序是能够使用Java多媒体框架(JMF)接口的Java程序,并且基于根据JMF等的键 事件执行处理。此外,xlet程序也可以执行访问网站和下载内容的过程。这允许重放通过混合下 载内容和列表创建的原始作品。接着描述xlet程序的类文件。图IlB显示了类文件的内部结构。如图IlB中所 示,该类文件与普通类文件类似,由常数池,接口,和方法1,2,3…η组成。类文件中的方法 包括由预记载的键事件触发的那些方法(EventListener)和用于调用重放装置200中的应
8用编程接口(API)函数的那些方法。通过利用分配给指定方法的局部变量和调用所述方法 时出现的自变量描述这些方法中的计算过程等。Java档案文件如上所述。接着描述扩展名为“bdbj”的文件。该文件(00001. bdbj)存储BD-J对象。BD-J 对象是信息,该信息通过使PL信息中被定义的AVClip与应用程序相联系来定义标题。图 12显示了 BD-J对象的内部结构。BD-J对象显示应用程序管理表和PL信息参考值。应用程 序管理表显示Java应用程序,所述Java程序的生命周期是由BD-J对象通过枚举单个Java 应用程序的ID (应用程序ID)和属于特殊应用程序的Java档案文件的ID来定义的标题。 换句话说,每个应用程序由一个或多个Java档案文件构成。PL信息参考值显示当开始标题时待显示的PL信息。扩展名为“bdbj”的文件如上所述。接着描述INDEX. BDMV文件。INDEX. BDMV是与整个BD-ROM有关的管理信息。该文件包含以下信息,诸如标识电 影作品供应商的组织ID和分配给由供应商提供的单个BD-ROM的光盘ID。当装载光盘之 后首先通过读取INDEX. BDMV在重放装置中唯一地识别光盘。INDEX. BDMV可以附加地包括 这样的表,该表将BD-ROM中的多个可播放标题映射到定义单个标题的BD-J对象。下面描 述可记录到BD-ROM的标题的类型,所述类型包括FirstPlayTitle,Top_menuTitle,和标题 #1-#3。FirstPlayTitle负责当装载BD-ROM时在做其他事情之前播放BD-ROM的动态商 标。FirstPlayTitle因而实现了当装载BD-ROM时播放代表电影作品的创作者和/或发行 人的动态商标。Top_menuTitle由AVClip和播放位于BD-ROM中的菜单层次的最顶层的菜单的应 用程序组成。标题#1、#2和#3对应于普通电影作品。换句话说,INDEX.BDMV 显示 FirstPlayTitle,Top_menuTitle 和标题 #1_#3 与单 个BD-J对象的对应关系。图13显示了 INDEX. BDMV的内部结构。该文件显示FirstPlayTitle信息,Top_ menuTitle信息,标题#1信息,标题#2信息,和标题#3信息与标题ID和定义这些标题的 BD-J对象的对应关系。定义标题的BD-J对象可以使用标题信息进行标识,而用于同步的 PL信息和应用程序可以从这些BD-J对象导出。这完成了对BD-ROM的描述。BD-ROM不是关于本发明的重放装置所用的唯一记录介质。在重放期间也使用与重放装置一体化的硬盘(本地存储器)。下面描述记录在本 地存储器中的数据。图14显示了本地存储器中的目录结构。在该目录结构中,子目录 "organization#l"位于根目录下,在该目录下有子目录“disc#l,,和“disc#2,,。 organization^目录被分配给电影作品的特定供应商。disc#l和disc#2目录被分配给由 每个供应商提供的不同的BD-R0M。在这些目录名中利用在各自BD-ROM中的INDEX. BDMV文 件中所示的组织ID和光盘ID。提供与对应于特定供应商的目录中的BD-ROMs对应的目录允许独立地存储与单 个BD-ROMs有关的下载数据。在这些子目录下存储了 PL信息,剪辑信息,和AVCl ip,与存储
9在BD-ROM上的内容类似。也附加地存在Java档案文件,BD-J对象,合并管理信息文件,和 签名信息文件。与仅仅涉及BD-ROM上的AVClip的BD-ROM上的PL信息相比,本地存储器中的PL 信息包括涉及BD-ROM上的和本地存储器中的AVClip的信息;也就是,作为虚拟包被新添加 的PL信息,其特定例子是图14中的PL INF0#2。在这里,由四条播放项目信息构成本地存储器中的PL信息(播放项目信息 #1-#4)。在头条(播放项目信息#1)涉及BD-ROM上的剪辑信息而其余三条(播放项目信 息#2-#4)涉及本地存储器中的剪辑信息的情况下,该PL信息可以从BD-ROM上的和本地存 储器中的AVClip定义单一数据流序列,如图15中所示。图15显示了由存储在本地存储器中的PL信息定义的播放列表重放时间轴的类 型。第一层级显示存储在BD-ROM上的AVClip#l的重放时间轴,而第二层级显示在存储在 本地存储器中的PL信息中定义的播放列表的重放时间轴,第三、第四和第五层级分别显示 存储在本地存储器中的AVClip#2、#3和#4的重放时间轴。在播放项目信息#2、#3和#4指定AVCl ip#2、#3和#4作为重放间隔的情况下,本 地存储器中的PL信息能够将BD-ROM上的和本地存储器中的AVClip定义为单一数据流序 列。如上所述,BD-ROM上的和本地存储器中的AVClip可以被定义为单一数据流序 列,并且通过合并该数据流序列和BD-ROM上的或本地存储器中的应用程序,可以由AVClip 和由记录在BD-ROM上的或本地存储器中的应用程序构成单一标题。如图16A中所示,在 AVClip#l记录在BD-ROM上而AVClip#2_#4和Java应用程序记录在本地存储器中的情况 下,这些AVClip和Java应用程序可以如图16B中所示作为单一标题来对待。接着描述合并管理信息。合并管理信息唯一地显示本地存储器中的disc#l和#2 目录中的构成虚拟包的所有文件,并且被存储在指定文件(在下文被称为“合并管理信息 文件”)中。图17显示了合并管理信息文件的典型内部结构。合并管理信息文件由本地存 储器中构成虚拟包的每个文件的存储位置信息组成。存储位置信息由访问作为虚拟包的各 个文件的标识符和指示本地存储器中各个文件的存储位置的文件路径组成。接着描述签名信息文件。签名信息文件在合并管理信息文件上显示供应商的电子 签名。通常使用的电子签名通过计算需要防窜改的信息的散列值,并使用某种秘密密钥加 密该散列值来获得。这完成了对本地存储器的描述。下面描述关于本发明的重放装置的实施例。图18显示了重放装置的硬件配置。重 放装置由BD-ROM驱动器1,读缓冲器2,多路分解器(Demux) 3,视频解码器4,视频平面5,图 形显示(P图形)解码器6,图形显示(P图形)平面7,合成单元8,字体发生器9,交互图形 (I图形)解码器10,开关11,交互图形(I图形)平面12,合成单元13,颜色查找表(CLUT) 单元14,颜色查找表(CLUT)单元15,音频解码器16,网络设备17,本地存储器18,读缓冲 器19,多路分解器(Demux) 20,指令ROM 21,用户事件(UE)处理单元22,播放器状态寄存器 (PSR)组23,中央处理单元(CPU) 24,脚本存储器25,本地存储器26,和开关27。首先描述关于记录在BD-ROM 100上的AVClip的重放的元件(BD-R0M驱动器1 一 音频解码器16)。
10
BD-ROM驱动器1装载/退出BD-ROMs,并且访问BD-ROM 100。读缓冲器2是先进先出(FIFO)存储器,其中从BD-ROM 100或本地存储器18读取 的传输流(TS)包在先进先出的基础上被存储。Demux 3从读缓冲器2读取TS包,并且将这些TS包转换成打包基本流(PES)包。 具有由CPU 24设置的包标识符(PID)的PES包,然后被输出到视频解码器4,P图形解码器 6,I图形解码器10,和音频解码器16中的一个。视频解码器4解码从Demux 3输出的PES包以获得未压缩格式的图片,并且将这 些图片写入视频平面5。视频平面5用于存储未压缩图片。平面是重放装置中用于存储一屏像素数据的存 储区。视频平面5具有1920X1080的分辨率,其中存储的图片数据由16位YUV表达的像 素数据构成。在视频平面5中,每帧视频流中的重放视频可以被缩放。缩放包括将每帧的 重放视频变化为整个视频平面5的1/4(四分之一)或1/1(全比例尺)。在BD-J模式中根 据来自CPU 24的指令执行缩放,从而允许屏幕产生,由此视频流的重放图像被转移到屏幕 的角上或投影到整个屏幕上。P图形解码器6解码从BD-ROM读取的P图形流,并且将未压缩图形写入P图形平 面7。字幕由于图形流被解码出现在屏幕上。P图形平面7是带有用于一屏数据的存储空间的存储器,其能够存储一屏未压缩 图形。该平面具有1920X1080的分辨率,其中P图形平面7中的未压缩图形的像素由8位 索引颜色表达。存储在P图形平面7中的未压缩图形通过使用CLUT转换索引颜色被提交 以供显示。合成单元8合成存储在视频平面5中的未压缩图片数据和P图形平面7的存储内容。字体发生器9使用字符字体来扩展包括在位图中的TextST流中的文本代码,并且 将扩展代码写入P图形平面7。I图形解码器10在DVD-Iike模式中解码从BD-ROM或本地存储器18读取的I图 形流,并且将未压缩图形写入I图形平面12。开关11选择性地将字体发生器9生成的字体序列和由P图形解码器6解码产生 的图形中的一个写入到P图形平面7。用由I图形解码器10解码产生的未压缩图形写入I图形平面12。使用α RGB全 彩色在BD-J模式中将应用程序绘制的字符和图形写入到I图形平面12中。合成单元13合成I图形平面12的存储内容和从合成单元8输出的合成图像(即 合成未压缩图片数据和P图形平面7的存储内容)。该合成允许由应用程序写入I图形解 码器10的字符和图形重叠在未压缩图片数据上并且被显示。CLUT单元14将存储在视频平面5中的未压缩图形中的索引颜色转换成Y/Cr/Cb。当在DVD-like模式(即用于播放象传统DVD这样的数字流的模式)中工作时CLUT 单元15将存储在I图形平面15中的未压缩图形中的索引颜色转换成Y/Cr/Cb。当在BD-J 模式(即用于与Java应用程序同步地播放数字流的模式)中工作时,CLUT单元15将α RGB 全彩色转换成Y/Cr/Cb。需要注意的是Java应用程序可以绑定或不绑定到标题,以及绑定 或不绑定到光盘。
11
音频解码器16解码从Demux 3输出的PES包并且输出未压缩音频数据。关于AVClip重放的元件如上所述。下面描述关于在BD-J模式中工作的元件(网 络设备 17-Demux 20)。网络设备17实现重放装置中的通信功能。在应用程序在BD-J模式中指定URL 的情况下,网络设备17建立与URL所指示的网站的传输控制协议(TCP)或文件传送协议 (FTP)连接等。由于连接被建立Java应用程序从网站被下载。本地存储器18是硬盘,其用于存储通过网络设备17建立的连接从网站下载的内 容,从除BD-ROM之外的通信和记录介质提供的内容,以及元数据。元数据是用于绑定和管 理本地存储器18中的下载内容的信息。通过访问本地存储器18,BD-J模式中的应用程序 可以使用下载内容执行许多处理。本地存储器18也保存合并管理信息文件。读缓冲器19是FIFO存储器,其在SubClip被包括在存储于BD-R0M100上或本地 存储器18中的下载内容中的情况下基于先入先存储构成SubClip的TS包。Demux 20从读缓冲器19读取TS包,并且将读取的TS包转换成PES包。具有特定 PID的PES包然后输出到P图形解码器6,字体发生器9,和音频解码器16。以上元件17-20允许由Java应用程序通过网络下载的内容以类似于记录在 BD-ROM上的内容的方式被播放。下面描述用于实现重放装置中的集中控制的元件(指令 ROM 21-开关 27)。指令ROM 21存储软件,该软件定义与重放装置有关的控制。响应重放装置的遥控器或前面板的键操作,UE处理单元22将用于执行这些操作 的用户事件输出到CPU 24。PSR组23是在重放装置内部的一组寄存器,由64个播放器状态寄存器(PSR)和 4096个通用寄存器(GPR)组成。PSR 4_8用于表示当前重放点。PSR 4由于被设置到1-100的值指示当前重放点的标题。将PSR 4设置为“0”表 示当前重放点是菜单顶部(top menu)。PSR 5由于被设置到1-999的值指示当前重放点的章节编号。将PSR 5设置为 “OxFFFF,,指示在重放装置中的章节编号为零。PSR 6由于被设置到0-999的值指示当前重放点所属的PL(当前PL)的编号。PSR 7由于被设置到0-255的值指示当前重放点所属的播放项目(当前播放项 目)的编号。PSR 8由于被设置到O-OxFFFFFFFF的值指示使用45KHz的时间精度的当前重放点 (当前显示时间或“PTM”)。PSR 4-8允许在图23A中所示的整个BD-ROM的时间轴上标识
当前重放点。CPU 24运行存储在指令ROM 21中的软件以执行与整个重放装置有关的控制。这 些控制动态地变化,其取决于从UE处理单元22输出的用户事件和PSR组23中的PSR值。脚本存储器25用于存储当前PL信息和当前剪辑信息。当前PL信息是记录在 BD-ROM上的当前被处理的一条PL信息。当前剪辑信息是记录在BD-ROM上的当前被处理的
一条剪辑信息。假设从BD-ROM低速读取,本地存储器26是临时存储BD-ROM的记录内容的高速缓 冲存储器。本地存储器26的提供允许BD-J模式中的应用程序高效地运行。
12
开关27选择性地将从BD-ROM和本地存储器18读取的数据输送到读缓冲器2,读 缓冲器19,脚本存储器25和本地存储器26中的一个。关于本实施例的重放装置的硬件配置如上所述。下面描述关于本实施例的重放装 置中的软件结构。图19描绘了由硬件和存储在指令ROM 21上的软件组成的以层状结构重布置的元 件。如图19中所示,重放装置的层状结构由第一层(BD层),第二层(BD播放器模型),和 第三层(应用程序运行时间环境)组成。图18中所示的重放装置的硬件配置属于第一层。在该硬件配置中,在图19中的 第一层的“BD播放器”包括由视频解码器4,P图形解码器6,I图形解码器10和音频解码 器16组成的“解码器”,由视频平面5,P图形平面7和I图形平面12组成的“平面”,BD-ROM 100和相关文件系统,本地存储器18和相关文件系统,以及网络设备17。在第二层的“BD播放器模型”由用于显示引擎31和虚拟文件系统单元38的下层 和用于重放控制引擎32的上层组成,并且提供与更高级别有关的API函数。图18中所示的PSR组23和脚本存储器25存在于重放控制引擎32内部。在第三层的“应用程序运行时间环境”由包括模块管理器33的层组成,所述模块 管理器33堆叠在包括DVD-Iike模块29a和Java平台29b的层上。下面描述该软件结构中的元件。DVD-Iike 模块 29a,Java 平台 29bDVD-Iike模块29a解码导航命令,并且基于解码结果执行与重放控制引擎32有关 的函数调用。Java平台29b是所谓的具有层次结构的Java平台,所述层次结构由Java虚拟机 30和Java虚拟机运行的中间软件(未示出)组成。Java 虚拟机 30Java虚拟机30将构成应用程序的xlet程序装载到工作存储器中,解码xlet程 序,并且根据解码结果在下层上执行控制。为了执行这些控制,Java虚拟机30向中间软件 发布方法,使中间软件用对应于BD重放装置的函数调用替换所述方法,并且向重放控制引 擎32发布所述函数调用。Java虚拟机30的内部结构下面描述Java虚拟机30的内部结构。图20显示了 Java虚拟机30的内部结构。 如图20中所示,Java虚拟机30由CPU 24,用户类装载器52,方法区53,工作存储器54,线 禾呈 55a, 55b,…55η,禾口 Java 栈 56a, 56b, ".56η 构成。用户类装载器52从本地存储器26等读取BDJA目录中的Java档案文件中的类文 件,并且将读取的类文件存储在方法区53中。由用户类装载器52读取类文件由于模块管 理器33将指定文件路径的读指令发送到用户类装载器52被执行。如果文件路径指示本地 存储器26,用户类装载器52将构成应用程序的Java档案文件中的类文件从本地存储器26 读入工作存储器54。如果文件路径指示文件系统中的目录,用户类装载器52将构成应用程 序的Java档案文件中的类文件从BD-ROM或本地存储器18读入工作存储器54。方法区53存储由用户类装载器52从本地存储器26读取的类文件。工作存储器54是所谓的存储各种类文件的实例的堆积区。工作存储器54存储对应于常驻应用程序的实例和读入到方法区53的类文件。一个实例是构成应用程序的xlet 程序,通过将xlet程序放置到工作存储器54中使所述应用程序可执行。线程55a,55b,…55η是用于执行存储在工作存储器54中的方法的逻辑执行实 体。它们使用局部变量和存储在操作数栈中作为操作数的自变量执行计算,并且将计算结 果存储在局部变量或操作数栈中。图20中的箭头kyl,ky2,和kyn象征性地指示方法从工 作存储器54提供给线程55a,55b,…55η。尽管CPU是唯一的物理执行实体,在Java虚拟 机30中可以有高达64个逻辑执行实体或线程。线程可以被新创建并且现有线程可以在该 数值限度内被删除,而且当Java虚拟机30工作时工作线程的数目可以变化。能够适当地 增加线程的数目也使得有可能使用每个实例的多个线程并行地运行实例,并且由此加速实 例的执行。Java栈56a,56b,... 56η与线程55a,55b,... 55n—比一地存在,并且每个具有程 序计数器(图20中的“PC”)和一个或多个帧。程序计数器显示当前正在执行实例的哪个 部分。帧是分配给方法的每次调用的栈型区域,并且由用于存储与调用同时出现的自变量 的操作数栈和被所调用的方法使用的局部变量栈(图20中的“局部变量”)组成。由于无 论何时进行调用帧都堆叠在Java栈56a,56b,…56η上,因此递归地调用自身的方法的帧 也一个堆叠在另一个上面。Java虚拟机的内部结构如上所述。具有以上结构的Java虚拟机充当事件驱动执 行实体。这完成了对Java虚拟机的描述。显示引擎31显示引擎31执行AV重放功能。重放装置的AV重放功能是从DVD播放器和⑶播 放器继承的传统功能组,包括播放,停止,暂停开始(PAUSE 0N),暂停结束(PAUSE OFF),静 音(STILL OFF),快进播放(x2,x4等),快退播放(x2,x4等),音频变化,字幕变化,和角度 变化。为了实现这些AV重放功能,显示引擎31控制视频解码器4,P图形解码器6,I图形 解码器10和音频解码器16以解码读入到读缓冲器2的AVClip的一部分,所述部分对应于 预期时间。通过将PSR 8所指示的地方(当前PTM)解码为预期时间,可以致使AVClip中 的任意点可播放。重放控制引擎32重放控制引擎32执行各种功能,包括⑴对播放列表的重放控制和(ii)采集/ 设置PSR组23的状态。重放控制功能包括根据当前PL信息和剪辑信息使显示引擎31执 行以上AV重放功能中的播放和停止。功能⑴和( )根据从DVD-Iike模块29a和Java 平台29b的函数调用被执行。接着描述重放控制引擎32执行的处理与Java虚拟机执行的处理的同步。当调用 函数时重放控制引擎32执行基于PL信息的处理。在用于重放的AVClip的持续时间执行 该处理,无论重放时间是15分钟还是30分钟。这里的问题是在Java虚拟机30返回成功 响应的时间和重放控制引擎32实际结束处理的时间之间存在延时(time lag)。作为事件 驱动执行实体的Java虚拟机30在调用之后立即返回指示重放是否成功的响应,而重放控 制引擎32在15或30分钟重放持续时间过去之后结束AVClip和播放项目的重放。因而, 成功响应返回到应用程序的时间不能用作衡量15或30分钟以后处理结束的基础。当在PL 重放期间执行快进或倒带时衡量处理结束变得更加困难,这是由于15或30分钟的重放时
14间发生变化。鉴于此,当各个播放项目或AVClip的重放结束时,重放控制引擎32将指示播 放项目和AVClip重放结束的事件输出到应用程序。这种输出使得应用程序知道重放控制 引擎32在哪个点结束播放项目或AVClip重放。模块管理器33模块管理器33读取INDEX. BDMV并且选择INDEX. BDMV中的多条标题信息中的一 条作为当前标题信息。模块管理器33读取当前标题信息所指示的BD-J对象,并且基于BD-J 对象中所描述的PL信息控制重放控制引擎32执行重放控制。模块管理器33也控制Java 虚拟机30以读取和执行BD-J对象中所描述的Java档案文件。如果基于PL信息的数字流的重放和应用程序的执行结束,或者如果用户调用菜 单,模块管理器33读取定义另一标题的标题信息,并且选择该条标题信息作为当前标题信 息。根据数字流重放或用户菜单调用选择另一条标题信息作为当前标题信息的过程被称为 “标题变化”。图21中所示的状态转变可以通过重复地执行标题变化实现。图21中的椭圆窗口 表示标题。标题包括当BD-R0M首次被装载时用于重放的“FirstPlayTitle”,构成顶部菜单 的 “Top_menuTitle”,和其他普通标题。图 21 中的箭头 jhl,jh2,jh3,jh4,jh5,jh6,jh7 和jh8象征性地指示标题之间的转移。图21中所示的状态转变包括当BD-R0M被装载时播放FirstPlayTitle,然后转移 到TopjnenuTitle并且等待从顶部菜单选择。当用户从菜单选择时,在再次返回到TopjnenuTitle之前根据选择播放各个标 题。直到光盘被退出无限地重复该处理的过程是光盘内容所独有的状态转变。该状态转变 在上述的模块管理器33的控制下实现。这完成了对Java虚拟机30,显示引擎31,重放控制引擎32,和模块管理器33的描 述。由Java虚拟机30对重放控制引擎32的控制通过虚拟包被执行。为了通过虚拟包实 现对重放控制引擎32的控制,重放装置包括网络管理模块37和虚拟文件系统单元38。接 着描述这些元件。网络管理模块37网络管理模块37根据从应用程序的方法调用从电影作品的供应商所管理的网站 下载产生虚拟包所需的数据。该数据包括替换或添加到合并管理信息文件,签名信息文件, 和BD-R0M上的文件的文件(PL信息,剪辑信息,AVClip,Java档案文件,等等)。当工作存 储器54中的应用程序提出下载请求时,网络管理模块37通过网络下载产生虚拟包所需的 数据,并且将下载的数据写入本地存储器18。虚拟文件系统单元38虚拟文件系统单元38是属于图19中的第二层的元件,其根据从应用程序的方法 调用产生虚拟包。虚拟包的产生包括管理构成虚拟包的AVClip的状态的处理和生成虚拟 包信息的处理。虚拟包信息虚拟包信息扩展BD-R0M上的卷管理信息。这里涉及的卷管理信息定义存在于记 录介质上的目录结构,并且由与目录有关的目录管理信息和与文件有关的文件管理信息组成。虚拟包信息通过将新文件管理信息添加到显示目录结构的卷管理信息来扩展 BD-R0M上的目录结构。添加到卷管理信息的文件管理信息涉及存在于本地存储器18中的 PL信息,剪辑信息,AVClip和Java档案文件。产生该文件管理信息已被添加到其中的虚拟 包信息和将该虚拟包信息提供给重放控制引擎32的过程允许重放控制引擎识别如存在于 BD-R0M上的存储在本地存储器18中的PL信息,剪辑信息,AVClip和Java档案文件。图22 显示了由虚拟文件系统单元38典型地产生虚拟包信息。在图22的左上方是BD-R0M上的 目录结构,这与图2相同。在左下方是本地存储器18中的目录结构,这与图14相同。与本 地存储器18中的PL信息,剪辑信息,AVClip和Java档案文件有关的文件管理信息被添加 到BD-R0M上的卷管理信息。具体而言i)与本地存储器18中的播放列表信息#2 (00002. mpls)有关的文件管理信息被添 加到PLAYLIST目录中的目录管理信息;ii)与本地存储器 18 中的剪辑信息#2、#3和#4(00002. clip,00003. clip,00004. clip)有关的文件管理信息被添加到CLIPINF目录中的目录管理信息;iii)与本地存储器 18 中的 AVClip#2、#3 和 #4 (00002. m2ts,00003. m2ts,00004. m2ts)有关的文件管理信息被添加到STREAM目录中的目录管理信息;iv)与本地存储器18中的Java档案文件“00002. jar”有关的文件管理信息被添 加到BDJA目录中的目录管理信息;由此获得虚拟包信息。换句话说,虚拟包信息是以上面的方式已被添加的卷管理 fn息o然后将该虚拟包信息提供给重放控制引擎32,重放控制引擎由此能够在与 BD-R0M上的PL信息,剪辑信息,AVClip,和Java档案文件同等的基础上处理本地存储器18 中的PL信息,剪辑信息,AVClip,和Java档案文件。虚拟包信息的生成如上所述。下面描述虚拟包信息更新的定时。假设当按照图21中的箭头jhl,jh2,jh3,jh4等所指示的参考标记的数值顺序执 行转移之后BD-R0M被退出。这允许从BD-R0M的装载到退出的连续时间间隙被看作单一时 间轴。该时间轴被作为整个光盘的时间轴。图23A显示了整个光盘的时间轴,而图23B显示 了该时间轴的结构。如图23B中所示,整个光盘的时间轴由播放FirstPlayTitle的间隔, 播放TopjiienuTitle的间隔,和播放普通标题(标题#1等)的间隔组成。关于定义这些标 题的重放间隔的方式,由于每个标题仅仅由一个BD-J对象构成,因此任何给定的BD-J对象 有效的间隔可以被当作标题的重放间隔。这些重放间隔之间的空隙,或者从一个标题变化 到另一标题的些微间隔(即“标题变化”)是虚拟包信息更新的时间。接着使用图24描述由Java应用程序执行的下载新合并管理和签名信息文件以及 内容文件的过程。Java应用程序首先将当前合并管理信息文件发送到服务器(步骤S11),由此请求 下载,并且判断是否已接收来自服务器的数据(步骤S12)。当数据被下载时,Java应用程 序在相应光盘目录中创建新目录,并且将下载的合并管理信息文件和签名信息文件写入新 目录(步骤S13)。需要注意的是如果下载的合并管理和签名信息文件的文件名不与光盘目
16录中的现有合并管理和签名信息文件一致,下载文件可以直接放置在现存目录(光盘#1文 件)之下而不创建新目录。将下载的AVClip,剪辑信息,PL信息,和Java档案文件写入相 应目录(步骤S14)。Java应用程序然后使用新合并管理和签名信息文件的文件路径作为自 变量调用更新请求方法(步骤S15)。Java应用程序判断返回值是否为false (步骤S16), 并且如果为false则终止处理。如果返回值是不是false,则Java应用程序使用更新的虚 拟包信息执行处理(步骤S17)。需要注意的是尽管根据当请求下载时Java应用程序将当前合并管理信息文件发 送到服务器描述了以上处理,Java应用程序可以仅仅发送合并管理信息文件的ID。接着使用图25描述一旦接收更新请求由虚拟文件系统单元38执行的更新“准备” 过程。虚拟文件系统单元38首先使用当调用方法时充当自变量的文件路径读取新合并 管理和签名信息文件(步骤S21),并且验证签名以便检验新合并管理信息文件是否已被窜 改(步骤S22)。如果签名不能被验证则执行异常终止。如果签名被验证,则虚拟文件系统 单元38检验调用应用程序的权限(步骤S23)。如果调用应用程序未被授权则执行异常终 止。如果调用应用程序被授权,则虚拟文件系统单元38判断新合并管理信息文件所指定的 文件是否实际存在于本地存储器中(步骤S24)。如果这些文件并不存在则执行异常终止。 如果这些文件存在,则虚拟文件系统单元38将新合并管理和签名信息文件以及从新合并 信息文件引用的本地存储器中的所有文件变为只读(步骤S25)。图26是由虚拟文件系统单元38执行的虚拟包“更新”处理的流程图。虚拟文件 系统单元38首先标识对应于被装载的BD-R0M的光盘目录,并且用Java应用程序调用更新 请求方法时、充当自变量的文件路径所指定的新合并管理和签名信息文件替换光盘目录中 的合并管理和签名信息文件(步骤S31)。虚拟文件系统单元38然后将本地存储器18中 的合并管理信息文件所指定的PL信息的文件管理信息添加到PLAYLIST目录中的目录管理 信息中(步骤S32),并且执行步骤S33到S37的循环。该循环包括对于存在于本地存储器 18中的每一条剪辑信息重复步骤S34到S36。在这里,用于循环处理的一条剪辑信息假定 为剪辑信息x。虚拟文件系统单元38标识对应于剪辑信息x的AVClip (步骤S34),将本地 存储器18中的合并管理信息文件所指定的剪辑信息x的文件管理信息添加到CLIPINF目 录中的目录管理信息中(步骤S35),并且将本地存储器18中的合并管理信息文件所指定的 AVClip x的文件管理信息添加到STREAM目录中的目录管理信息中(步骤S36)。通过对于 本地存储器18中的所有剪辑信息和AVClip重复以上处理,与剪辑信息和AVClip有关的文 件管理信息被添加到卷管理信息。由此获得的卷管理信息是虚拟包信息。虚拟文件系统单 元38将该虚拟包信息提供给进行虚拟包调用的应用程序(步骤S38),并且结束处理。图27是由模块管理器33执行的处理的流程图。模块管理器33首先选择FirstPlayTitle作为当前标题(步骤S41),指定对应 于当前标题的BD-J对象作为当前BD-J对象(步骤S42),并且使重放控制引擎32基于当 前BD-J对象中所描述的PL信息执行PL重放(步骤S43)。模块管理器33然后使Java平 台29b运行其生命周期是当前BD-J对象的应用程序管理表中的当前标题的Java应用程序 (步骤S44),并且使Java平台29b终止其生命周期不是当前标题的Java应用程序(步骤 S45)。模块管理器33然后判断基于当前PL信息的PL重放是否已经完成(步骤S46),并且如果完成,模块管理器33则标识下一个标题(步骤S47),并且选择该标题作为当前标题 (步骤S48)。如果当前PL重放还未完成,则模块管理器33判断是否已发生标题调用(步 骤S49),并且如果是这样的话则移动到步骤S47。如果未发生标题调用,则模块管理器33 判断是否已发生标题跳转(步骤S50),并且如果是这样的话则移动到步骤S47。如果未发 生标题跳转,则模块管理器33判断当前标题的主应用程序是否已结束(步骤S51)并且如 果是这样的话则移动到步骤S47。如果主应用程序还未结束,则模块管理器33返回到步骤 S46。图28是由重放控制引擎32执行的重放处理的流程图。在将当前PL信息中的第一 条播放项目信息设置为播放项目i之后重放控制引擎32执行步骤S62到S68的循环(步 骤S61)。该循环中的控制变量是变量i。在执行步骤S62到S66之后在步骤S68重放控制 引擎32使控制变量i增加“ 1,,直到变量i超过播放项目的数量(步骤S67)。接着描述步骤S62到S66。重放控制引擎32将播放项目i中的Clipjnformatioru filename中所描述的AVClip设置为AVClipj (步骤S62),并且指示驱动设备和解码器播 放从 Playltem. In_time 到 Playltem. 0ut_time 的 AVClip j (步骤 S63)。重放控制引擎 32 判断在SynC_PlayItem_Id中是否存在指定播放项目i的子播放项目k (步骤S64),并且如 果该子播放项目并不存在则直接移动到步骤S67。如果子播放项目k存在,则重放控制引 擎32将子播放项目k的Clip_information_file_name所描述的AVClip设置为AVClip h (步骤S65),指示驱动设备和解码器重放从Sync_Start_PTS_of_PlayItem到0ut_time的 AVClip_h (步骤S66),并且移动到步骤S67。由于对于构成PL信息的所有播放项目信息重复该处理,PL信息所定义的数据流 序列被播放。图29显示了在标题变化期间怎样更新虚拟包信息。图29中的第一层级显示时间轴上的标题重放间隔,第二层级显示其生命周期是 标题#1的Java应用程序,第三层级显示数字流,第四层级显示虚拟文件系统单元38的状 态。一旦接受来自Java应用程序的更新请求,虚拟文件系统单元38被放置在“准备” 状态,并且执行图25中所示的处理。在执行该处理之后,虚拟文件系统单元38在“准备好”状态等待标题变化。当发 生标题变化时,虚拟文件系统单元38被放置在“更新”状态,并且在回复到“稳定”状态之 前执行图26中所示的处理以更新虚拟包。如果在虚拟文件系统单元38回复到“稳定”状 态之后,再次从TopjiienuTitle选择标题#1,则使用更新的虚拟包播放标题#1。在这里,当模块管理器33例如由于数据流序列的重放结束或由用户调用菜单而 选择不同标题作为当前标题时,发生标题变化。使用图30到33示意性地描述以上处理。图30显示了将当前合并管理信息文件发送到服务器的Java应用程序。ROOT下所 示的文件位于本地存储器中,而BDMV下的文件位于虚拟包中。图31显示了下载内容文件、新合并管理信息文件和新签名信息文件的Java应用 程序。“00012. clpi”和“00012.!112^是下载的内容文件,而存储在1^谨?目录中的合并管 理和签名信息文件已最新被下载。
18合并管理和签名信息文件更新为最 新下载的文件的Java应用程序。通过使用文件路径来指定新合并管理和签名信息文件提 出该更新请求。图33显示了合并管理和签名信息文件的替换以及内容文件的映射。在图33的左 侧显示了更新期间旧合并管理和签名信息文件的替换。在图33的右侧显示了标题变化后 内容文件的映射。需要注意的是从旧合并管理信息而不是从新合并管理信息引用的文件的只读属 性被移除,从而使这些文件可由Java应用程序写入。合并管理信息文件包括指示添加到本地存储器的内容的位置的信息。指示附加内 容位置的信息包括内容ID,内容存储于其中的目录的目录路径,或单个内容文件的文件路 径。当将这些文件映射到虚拟包时可以在合并管理信息文件中描述文件名映射信息,从而 允许在虚拟包中的不同文件名下访问这些文件。在这里,文件名映射信息用本地存储器中 的文件名(包括文件路径)映射虚拟包中的文件名(包括文件路径)。在该情况下,作为虚拟包介质由虚拟文件系统单元38产生虚拟包,所述虚拟包介 质由这样的文件构成,文件名映射信息中所描述的虚拟包中的所述文件的文件名已被添加 到BD-R0M上的文件结构中。由Java应用程序访问的虚拟包中的文件被指定为虚拟包中的 文件而不是BD-R0M上或本地存储器中的文件。当Java应用程序请求访问虚拟包中的文件 时,虚拟文件系统单元38基于文件名映射信息将访问目的地切换到本地存储器或BD-R0M。 如果在文件名映射信息中描述了所期望的文件,访问目的地变为本地存储器中的相应文 件。如果未在文件名映射信息中描述所期望的文件,访问目的地变为BD-R0M上的相应文 件。换句话说,Java应用程序的创作者不需要知道单个文件存储于其上的介质 (BD-R0M或本地存储器),因为虚拟文件系统单元38将虚拟包中由Java应用程序指定的文 件的访问目的地切换到实际存储所述文件的介质,由此减轻了程序创作的负担。根据本实施例,虚拟包在标题变化期间被更新,这意味着重放对象的替换将不会 导致重放装置的异常操作。实施例2本实施例涉及当执行标题调用时的改进。标题调用导致在首先暂停当前标题之后 播放被调用标题,然后在被调用标题的重放结束之后继续原始标题。由于标题调用以继续 重放为前提,因此当调用标题时重放控制引擎32将存储在PSR中的用于重放控制的系统参 数保存到备份PSR中,并且在被调用标题的重放结束之后将被保存参数恢复到PSR中。下面是存储在PSR中的系统参数的列表。PSR 0到PSR 12存储显示重放状态的 系统参数,PSR 13到PSR 19存储由播放器设置为优选的系统参数,PSR20到PSR32是备份 PSR。PSR0:I图形流编号PSR1 音频流编号PSR2 :P 图形流 /TextST 流编号PSR3 角度编号PSR4:当前标题编号
19
PSR5 当前章节编号
PSR6 当前播放列表ID
PSR7 当前播放项目ID
PSR8 重放时间信息
PSR9 导航定时器
PSR10选择键信息
PSR111图形流中的当前页ID
PSR12:P图形流和TextST流中的用户样式ID
PSR13视听年龄等级(parental level)
PSR14字幕支持信息
PSR15播放器设定值(音频)
PSR16音频流的语言代码
PSR17:P图形流和TextST流的语言代码
PSR18菜单的语言代码
PSR19播放器的版本信息
PSR20:PSR0的备份
PSR21:PSR1的备份
PSR22:PSR2的备份
PSR23:PSR3的备份
PSR24:PSR4的备份
PSR25:PSR5的备份
PSR26:PSR6的备份
PSR27:PSR7的备份
PSR28:PSR8的备份
PSR29:PSR9的备份
PSR30:PSR10的备份
PSR31:PSR11的备份
PSR32:PSR12的备份
在标遘调用期间更新虚拟包信息导致调用前后虚拟包信息的差异。
由于当恢复原始标题时虚拟包信息将变化,因此如果重放控制引擎32试图使用
备份值播放原始标题则会出现者误。该问题通过当Java应用程序请求更新时清除备份PSR 得以避免。然而,假定变化没有影响取决于合并管理信息文件的内容,关于是否清除系统参 数值的决定可以留待Java应用程序处理。图34A是当标题调用之后暂停当前标题的重放时由重放控制引擎32执行的处理 的流程图。图34B是当被调用标题的重放结束之后继续重放原始标题时由重放控制引擎32 执行的处理的流程图。当暂停当前标题重放时,重放控制引擎32将PSR 0_12保存到PSR 20_32 (步骤 S71)。当被调用标题的重放结束之后继续原始标题重放时,重放控制引擎32首先判断
20虚拟包是否已被更新(步骤S81)。如果未更新则将PSR 20-32恢复到PSR 0_12(步骤S83), 如果虚拟包信息已被更新则在执行步骤S83之前初始化PSR 20-32 (步骤S82)。根据本实施例,在标题调用期间当虚拟包信息已被更新时初始化备份PSR,由此消 除当继续原始标题重放时发生重放错误的危险。因而使重放控制引擎32稳定工作。需要注意的是当虚拟包信息被更新时,PSR中的系统参数值可以被强制清除,而不 是将该决定留待Java应用程序处理。实施例3本实施例涉及一种方法,该方法用于管理合并管理信息的版本和从重放装置中的 常驻应用程序指定用于合并的附加内容。图35显示了关于本实施例的合并管理信息文件 的典型内容。在实施例1中,通过改写旧合并管理信息更新合并管理信息文件(或更确切 地说存储在其中的合并管理信息),从而导致旧信息被擦除。在本实施例中,新合并管理信 息不断地被添加到文件中,而且即使对于相同的光盘ID也不改写旧信息。因而,如果虚拟 文件系统单元38取消产生虚拟包并且回复到原始BD-R0M,则反映该状态的信息被保留在 合并管理信息文件中。在该情况下,合并管理信息文件的合并目标目录中的相应单元被留 下空白或者记下指示原始BD-R0M的字符串。通过执行更新时不改写旧合并管理信息使将先前的合并管理信息(的历史)保留 在合并管理信息文件中,然后如果用户想要虚拟包的旧版本,可以参考先前的合并管理信 息产生旧版本。而且,先前由用户产生的虚拟包可以参考合并管理信息文件(或者更确切 地说存储在其中的旧合并管理信息)不仅从Java应用程序而且从重放装置中的常驻应用 程序产生。由常驻应用程序使用先前的合并管理信息的另一例子包括显示附加内容列表,从 而用户可以从常驻应用程序删除不想要的附加内容。由于合并管理信息文件可以用于区分 存储附加内容的目录,因此也可以从除了存储附加内容的Java应用程序之外的应用程序 (即常驻应用程序)检索和删除附加内容。图36显示了关于本实施例的请求虚拟包更新的Java应用程序。与实施例1的差 异在于这样的事实,即在不改写旧信息的情况下不断地添加合并管理信息,即使用于目标 光盘ID的合并管理信息已经存在。当请求虚拟包更新时Java应用程序允许通过追加日期 信息标识合并管理信息文件中最新的一条合并管理信息。日期信息不限于日期,也可以简 单地为连续编号。图37显示了由使用合并管理信息文件的常驻应用程序向用户显示的典型附加内 容列表。在这里,被显示的附加内容列表基于图35中所示的合并管理信息文件。理想的是 显示使用户掌握附加内容涉及的信息。图37中的附加内容被显示为内容名。尽管仅仅日 期信息被添加到图36中的合并管理信息,但是也可以添加附加内容的提要,因为常驻应用 程序能够执行这样的显示。在该情况下,提供附加内容的提要用于当Java应用程序请求虚 拟包更新时与内容ID—起输入。这些提要可以为包含各自提要的文件指定文件路径,而不 是简单地包括字符串的直接输入。因而除了更新日期之外合并管理信息存储内容提要,并 且常驻应用程序能够连同日期信息一起在附加内容列表中显示这些提要。胜于使Java应用程序指定内容提要,显示特定内容关于什么的元信息可以被追 加到内容本身,常驻应用程序可以读取该信息并且基于读取的信息显示提要。首次与BD-R0M合并的日期。该信息也可
以从合并管理信息读取。需要注意的是首次合并附加内容的日期可以与合并管理信息分开保存。这些日期 也可以从存储附加内容的目录被创建的日期确定。当显示在附加内容列表中的选择按钮之 一被按压时,常驻应用程序将所选内容的目录路径/光盘ID和选择日期作为相应合并管理 信息写入到合并管理信息文件中。换句话说,最近选择的附加内容变为最新合并管理信息。 如果选择原始BD-R0M,指示原始BD-R0M的值或空白单元被插入到合并管理信息文件的合 并目标目录中。当显示在附加内容列表中的删除按钮之一被按压时,常驻应用程序参考合 并管理信息文件读取用于删除的附加内容的目录,并且删除该目录。对应于该内容的内容 ID的合并管理信息也从合并管理信息文件被删除。图38是关于本实施例的从BD-R0M的装载直到重放的处理流程的流程图。虚拟文 件系统单元38首先检验被装载的BD-R0M的光盘ID (步骤S91),读取合并管理信息文件(步 骤S92),并且判断是否存在对应于被装载的BD-R0M的光盘ID的合并管理信息(步骤S93)。 如果判断是否定的(步骤S93 =否),则仅仅使用原始BD-R0M执行重放(步骤S94)。如果 判断是肯定的(步骤S93 =是),则使用最新合并管理信息产生虚拟包(步骤S95)。在产 生虚拟包期间,虚拟文件系统单元38判断是否已检测到错误(步骤S96)。如果判断是肯 定的(步骤S96 =是),则虚拟文件系统单元38判断是否存在对应于BD-R0M的光盘ID的 在先的合并管理信息(步骤S97)。如果判断是肯定的(步骤S97 =是),则使用在最新合 并管理信息之前的合并管理信息的版本产生虚拟包(步骤S98)。如果判断是否定的(步 骤S97 =否),则仅仅使用原始BD-R0M执行重放(步骤S94)。如果在步骤S96未检测到错 误,使用产生的虚拟包执行重放(步骤S99)。典型错误包括最新合并管理信息中的错误和 不存在从播放列表引用的数据流等。根据本实施例,通过每先前的合并管理信息保存在合并管理信息文件中,可以参 考合并管理信息文件的内容历史使用合并管理信息的旧版本从重放装置中的常驻应用程 序产生虚拟包。如果在产生虚拟包期间出现错误,可以通过产生虚拟包的旧版本作为备选 的动作过程避免所述问题。实施例4本实施例涉及一种方法,该方法用于当Java应用程序请求虚拟包更新时指定虚 拟包的有效期限,和仅仅在有效期限内使用虚拟包执行重放。图39显示了当请求虚拟包更新时被指定的有效期限。Java应用程序指定用于合 并的附加内容的内容ID和用于虚拟包的使用的有效期限。例如,如果用户想要作为虚拟包 播放内容直到光盘被退出并且然后在重装载光盘之后仅仅使用原始BD-R0M播放内容,则 到光盘被退出为止指示虚拟包是有效的值在从Java应用程序请求虚拟包更新时的自变量 中被指定。图40是关于本实施例的从BD-R0M的装载(或重放装置的重启)直到重放的处理 流程的流程图。虚拟文件系统单元38首先检验被装载的BD-R0M的光盘ID(步骤S101), 读取合并管理信息文件(步骤S102),并且判断是否存在对应于被装载的BD-R0M的光盘 ID的合并管理信息(步骤S103)。如果判断是否定的(步骤S103 =否),则仅仅使用原始 BD-R0M执行重放(步骤S104)。如果判断是肯定的(步骤S103 =是),则虚拟文件系统单
22元38判断相应的合并管理信息是否在有效期限内(步骤S105)。如果不再有效,则删除相 应的合并管理信息(步骤S106),并且仅仅使用原始BD-R0M执行重放(步骤S104)。如果 仍然有效,则相应的合并管理信息用于产生虚拟包(步骤S107),并且使用虚拟包执行重放 (步骤 S108)。需要注意的是作为本实施例的应用也可以想到其中仅Java模式虚拟包被产生的 方式。如果当从Java应用程序请求产生虚拟包时仅指定Java模式,当存在从DVD-like模 式到Java模式的过渡时,虚拟文件系统单元38产生虚拟包并且然后变换到Java模式。相 反地,当存在从Java模式到DVD-like模式的过渡时,在取消虚拟包并回复到原始BD-R0M 之后虚拟文件系统单元38变换到DVD-like模式。根据本实施例,有可能使用虚拟包指定重放的有效期限,由此允许使用仅一次虚 拟包(即一旦BD-R0M被退出就被禁止的虚拟包)进行重放,和产生带有使用期限限制的虚 拟包。需要注意的是在本实施例中有效期限在请求虚拟包更新时被指定,有效期限也可 以在装载BD-R0M之后请求产生虚拟包时被指定。实施例5下面是关于在实施例1的图25中的步骤S23的调用应用程序的权限的具体描述。 具体而言,本实施例涉及拒绝来自未授权Java应用程序的虚拟包更新请求的方法。图41显示了用于筛选虚拟包更新请求的许可请求文件。如上所述,在来自Java应 用程序的更新请求的基础上执行虚拟包更新。然而,当在来自未授权Java应用程序的请求 的基础上执行更新时,由于查看限制被改变或者仅仅可以在某些条件下查看的视频剪辑的 重放被允许,存在光盘内容被非法更新的危险。鉴于此,根据本实施例的虚拟包更新仅仅可 以由具有更新许可的Java应用程序请求,所述更新许可是显示请求更新的许可已被准许 的信息。通过检验与发布请求的Java应用程序对应的许可请求文件的内容判断是否具有 更新许可。具体而言,类装载器根据各个许可请求文件的内容限制Java应用程序的功能。 例如,如果许可请求文件中的更新属性值为“真”则处理更新请求,如果为“假”则拒绝。图42显示了强加在用于合并的本地存储器中的目录上的访问限制。如果用于合 并的目录的内容由未授权Java应用程序更改,即使更新请求被筛选也存在虚拟包的内容 被非法改变的危险。鉴于此,也在各个许可请求文件的内容的基础上限制对本地存储器访 问的许可。例如,如果许可请求文件中的读和写属性值都为“真”,下载的内容可以被写入并 且存储的文件可以被读取和编辑。然而,将在带有读和写属性之一或两者为“假”的许可请 求文件的Java应用程序,或不带有许可请求文件的Java应用程序上强加文件访问限制。根据本实施例,可以防止未授权Java应用程序更新虚拟包和改变本地存储器中 的目录的内容。下面是使用许可请求文件来限制虚拟包更新的具体例子。考虑一个例子,其中本 地存储器中的目录被分配给电影作品的特定供应商。具体而言,假设由A工作室、B工作室 和C公司提供的内容同时存储在本地存储器中和BD-R0M上。在这里,C公司是数字杂志的 供应商。当合并本地存储器和BD-R0M中的内容时,例如如果B工作室所提供的内容与A工 作室所提供的内容合并将出现问题。鉴于此,仅仅准许C公司的更新许可(即许可请求文 件中的更新属性值设置为“真”),由此允许使各种服务可用。A工作室和B工作室仅仅能够
23合并它们自己的内容。实施例6本实施例涉及一种方法,该方法用于在Java应用程序在多个标题上操作的情况 下在标题变化期间更新虚拟包。图43显示了其生命周期被限制到单一标题的Java应用程序和其生命周期持续多 个标题的Java应用程序。Java应用程序的生命周期在应用程序管理信息中被显示,并且模 块管理器33根据该应用程序管理信息管理Java应用程序的开始和结束。Java应用程序 包括仅仅在它们开始的标题内存在的那些应用程序(在下文被称为“标题绑定应用程序”) 和可以在多个标题上存在的那些应用程序(在下文被称为“标题未绑定应用程序”)。应用 程序管理信息包含标题数目,应用程序ID和显示特定Java应用程序是否被绑定的信息。在图43所示的应用程序管理信息中,例如,在标题#1中Java应用程序#1被绑定 而Java应用程序#2未绑定。模块管理器33连同标题#1的结束一起终止绑定Java应用 程序#1。在另一方面,在标题#1结束之后允许未绑定的Java应用程序#2存活,并且根据 下一个标题的应用程序管理信息作出是否终止该应用程序的决定。由于图43中的应用程 序管理信息的例子表明Java应用程序#2可以同时在标题#1和标题#2中存在,因此允许 该应用程序在从标题#1到标题#2的过渡期间存活。然而,由于Java应用程序#2在标题 #2中是标题绑定的,因此模块管理器33连同该标题的结束一起终止应用程序。图44显示了在标题变化期间当更新虚拟包时在未绑定标题的应用程序上执行的 处理。如图43中所示,可以在标题变化之前的标题和之后的标题中同时存在的标题未绑定 应用程序在标题变化期间继续工作。然而,如果请求虚拟包更新,包括标题未绑定应用程序 的所有应用程序在标题变化期间被终止。在更新虚拟包之后,标题未绑定应用程序然后与 属于下一个标题的标题绑定应用程序一起被重新启动。图45是考虑未绑定标题应用程序的标题变化处理的流程图。当标题重放开始时 (步骤S111),虚拟文件系统单元38首先判断在当前标题重放期间是否已从Java应用程序 请求虚拟包更新(步骤S112)。如果判断是肯定的(步骤S112 =是),则虚拟文件系统单 元38执行更新准备(步骤S113)。当标题变化发生时(步骤S114),虚拟文件系统单元38 判断更新请求是否已被处理(步骤S115)。如果判断是肯定的(步骤S115 =是),终止包 括标题未绑定应用程序的所有应用程序(步骤S116),并且更新虚拟包(步骤S117)。然后 在标题变化之后播放下一个标题(步骤S118)。如果在步骤S112虚拟包更新还未被请求或 者如果在S115更新请求还未被处理,则当标题变化发生时模块管理器33仅仅终止标题绑 定应用程序(步骤S119)。由于本实施例保证所有应用程序在虚拟包的更新期间被终止,因此根据对旧的更 新前文件的参考仍然保留在高速缓存中或者新文件与旧文件一起存在于高速缓存中,有可 能在完成虚拟包更新之后防止任何连贯性损失。需要注意的是如果能够在多个光盘上存在的Java应用程序(“光盘未绑定应用程 序”)在请求虚拟包更新之后发生标题变化时正在工作,通过以与光盘变化操作相同的方式 对待虚拟包更新,光盘未绑定应用程序可以继续工作而不会被强制终止。还需要注意的是在发生标题变化之后模块管理器33可以根据完成虚拟包更新之 后更新的应用程序管理信息,管理标题未绑定应用程序的开始和结束,而不会在更新期间终止标题未绑定应用程序。在该情况下,在更新完成之前,使标题未绑定应用程序参考更新 前的虚拟包。实施例7本实施例涉及在INDEX. BDMV文件变化之后的虚拟包更新。一旦接收来自Java应 用程序的虚拟包更新请求,虚拟文件系统单元38确认INDEX. BDMV文件存在于用于合并的 目录中。如果INDEX. BDMV文件存在,虚拟文件系统单元38为准备更新读取INDEX. BDMV文 件。然后现有的INDEX. BDMV文件被无效而新的INDEX. BDMV文件生效。如果例如BD播放 器的常驻应用程序执行标题搜索或Java应用程序采集标题信息,在标题变化之前使用该 新INDEX. BDMV文件。换句话说,在更新标题结构之后事先通知Java应用程序和用户使得 有可能防止标题变化为将在更新之后停止存在的标题或标题变化到未预期的标题。图46是在INDEX. BDMV文件变化之后的虚拟包更新的流程图。首先,当在Java模 式中播放标题时(步骤S121),虚拟文件系统单元38判断Java应用程序是否已请求虚拟包 更新(步骤S122),并且如果已请求,则虚拟文件系统单元38接收请求并且执行更新准备 (步骤S123)。在检验文件和目录结构是否正确的同时,虚拟文件系统单元38判断INDEX. BDMV文件是否存在(步骤S124)。如果INDEX. BDMV文件存在,则在判断是否已发生标题 调用之前(步骤S126),虚拟文件系统单元38使现有的INDEX. BDMV文件无效并且使新的 INDEX. BDMV文件生效(步骤S125)。参考在步骤S125中生效的INDEX. BDMV文件从BD播 放器中的常驻应用程序或从Java应用程序执行标题变化。当标题变化发生时虚拟文件系 统单元38执行更新(步骤S127)。因而,尽管在更新请求后发生标题变化之前不执行虚拟包更新,在标题变化之前 可以使新INDEX. BDMV文件可用。这意味着在更新请求之后,在标题搜索期间显示的标题列 表将在标题变化发生之前已变化。由于用户然后基于改变的标题列表选择标题,因此可以防止由选择将在更新之后 停止存在的标题引起的错误。因而可以在标题变化期间更新虚拟包而不会出现问题,即使 由于更新而改变了标题结构。需要注意的是可以在重启BD播放器之后执行在INDEX. BDMV文件变化之后的虚拟 包更新。变型以上基于优选实施例描述了关于本发明的重放装置,尽管本发明当然不限于这些 实施例。 关于其仅有的功能是播放记录介质的重放装置描述了以上实施例,尽管本发明并 不限于此。例如,本发明可以是具有记录和重放功能的记录/重放装置。文件可以放置在使用任何类型结构的本地存储器中,只要与用于合并的BD-R0M 上的文件的对应关系被清楚地显示。在以上实施例中,Java(注册商标)用作虚拟机的编程语言,尽管也可以使用除 了 Java之外的编程语言,这样的例子包括Perl Script, ECMA Script和B_Shell等,其与 UNIX (注册商标)操作系统一起使用。关于播放BD-R0M的重放装置描述了以上实施例,尽管当然可以在如以上实施例 中描述的BD-R0M上的必要数据被记录在可写光记录介质上的情况下实现与以上相同的效
25果。而且,当然可以在如以上实施例中描述的BD-R0M上的必要数据被记录在除了光 记录介质之外的便携式记录介质(例如SD卡,小型闪存等)上的情况下实现与以上相同的 效果。工业适用性构成本发明的重放装置可以在制造业中经营地、持续地和重复地被制造。该重放 装置特别应用于关于视频内容产品的电影和消费用品产业。
权利要求
一种用于可以边与执行中的应用程序相联动,边播放数字流的重放装置的集成电路,具备存储模块的存储部,该模块包括作为执行存储于记录介质中的应用程序的虚拟机的功能,该集成电路包括CPU,用于通过执行上述模块,使上述虚拟机运行;与上述CPU不同的解码器,用于将上述存储于记录介质中的数字流中的影像流解码的同时,也将上述数字流中的声音流解码;上述CPU在执行上述模块期间,(1)根据存储于第2记录介质中的合并管理信息,来组合存储于第1记录介质中的文件和存储于第2记录介质中的文件,从而生成包信息,该合并管理信息指示的是用于组合到上述第1存储媒体的文件;(2)从上述包信息中检测出多个可再生标题,并将其中一个选择为当前标题;(3)执行与上述当前标题相关的应用程序;(4)根据上述包信息中包含的,且在上述当前标题中指示的播放列表信息,使上述解码器进行对数字流的解码;(5)被执行的上述应用程序指定与上述包信息的生成所用的合并管理信息不同,且在上述第2记录介质中存储的新的合并管理信息,来请求更新上述生成的包信息;(6)对上述包信息进行更新之前,将上述指定的新的合并管理信息指示的存储于上述第2记录介质中的文件变更为只读,(7)通过上述解码器进行的数字流的解码,在由于新的当前标题的选择而停止的时刻,根据上述指定的新的合并管理信息,将存储于上述第1存储媒体中的文件和存储于上述第2记录介质中的文件进行组合,从而生成新的包信息。
2.—种权利要求1中记载的集成电路,上述解码器包括,对数字流中包含的影像流进行解码的影像解码器,以及对数字流中 包含的声音流进行解码的声音解码器。
全文摘要
一种结合应用程序用于播放数字流的重放装置包括包管理单元,用于根据合并管理信息通过合并记录在第一记录介质和第二记录介质上的文件来生成包信息,和选择单元,用于检测来自包信息的多个可播放标题,并且选择所检测到的标题中的一个作为当前标题。在应用程序通过指定新合并管理信息请求包管理单元更新合并管理信息之后,在更新包信息之前,包管理单元将从新指定合并管理信息引用的文件变为只读,并且在数字流重放由于选择单元选择的当前标题变化而停止时,包管理单元根据新指定的合并管理信息通过组合记录在第一和第二记录介质上的文件生成新包信息。
文档编号G11B27/32GK101916579SQ20101027445
公开日2010年12月15日 申请日期2005年7月21日 优先权日2004年7月22日
发明者大户英隆, 大芦雅弘, 田中敬一 申请人:松下电器产业株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1