记录介质,重放设备、方法及程序转让专利

申请号 : CN200910209030.2

文献号 : CN101702322B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 约瑟夫·麦克罗森池田航冈田智之川上义雄

申请人 : 松下电器产业株式会社

摘要 :

在本地存储器200中记录了多个视频流和一STN_table。所述多个视频流中每一个都是要与主视频流一起进行播放的第二视频流,且包括表示要在画中画中进行显示的子图像的画面数据,所述画中画由父图像和所述子图像组成。在STN_table中,按照优先级的次序描述了允许播放的第二视频流的条目。

权利要求 :

1.一种重放设备,用于根据播放列表信息播放主视频流和第二视频流,其中,所述播放列表信息定义了所述主视频流的主重放部分和所述第二视频流的子重放部分,所述播放列表信息为多个数字流中的每一个定义了重放部分,并且包含主路径信息、子路径信息和元数据,所述重放设备包括:

第一读出单元,用于按照所述主路径信息,读出构成所述主视频流的主重放部分的一个或多个分组;

第二读出单元,用于按照所述子路径信息,读出构成所述第二视频流的子重放部分的一个或多个分组;以及控制单元,用于通过将一第二视频流所表示的画面合成到一主视频流所表示的画面中,来实现画中画,其中,所述元数据包括类型信息、时刻信息和显示位置信息,其中,所述时刻信息指示第二视频的显示时刻,所述显示位置信息指示对所述第二视频进行显示的显示位置,以及所述类型信息指示所述时刻基于所述主重放部分的重放时间轴还是所述子重放部分的重放时间轴,在所述播放列表信息中的所述子路径信息包括同步信息,所述同步信息指示第二视频流的同步时间点,当用一未指定值表示所述同步时间点时,所述重放设备将在所述主重放部分的重放期间用户执行预定操作时的时间点用作所述同步时间点。

说明书 :

记录介质,重放设备、方法及程序

技术领域

[0001] 本发明属于画中画技术领域。

背景技术

[0002] 画中画是用于显示合成视频的技术,其中将第二窗口叠置在主屏幕上。该技术还允许改变第二窗口在主屏幕上的位置,并在显示该合成视频与不显示该合成视频之间进行切换。
[0003] 注意,在以下专利文献1中描述了DVD播放器的标准模式的结构。
[0004] <专利文献1>日本专利公开No.2813245。

发明内容

[0005] [本发明要解决的问题]
[0006] 在DVD视频标准应用格式中实现这种画中画需要至少两个视频流。这是因为DVD视频播放器的标准模式没有被设计为具有以下功能:同时解码多个视频流,指定时间和位置,然后将两个或更多视频相互叠置地进行播放。为了在合成视频和非合成视频之间进行切换或者改变合成视频的位置,需要在DVD视频上单独记录合成流、非合成流、以及其中改变了合成位置的流。然后,命令DVD视频播放器播放它们之中的一个。
[0007] 另一方面,对于BD-ROM而言,已经进行了从SDTV到HDTV的视频转换,其结果是数据量上的增加。因此,如果试图在BD-ROM上分别记录合成流、非合成流、以及具有不同合成位置的流,则数据的总尺寸会变得过于庞大,用于画中画的视频流不能放在BD-ROM中。因此,在BD-ROM标准中,BD-ROM播放器的标准模式已经具有了同时解码多个视频流来获得两个未压缩视频并将这些视频叠置的功能。
[0008] 由于该标准模式具有这样的功能,因此仅仅需要单独记录构成主视频的主视频流和构成第二视频的第二视频流。该记录格式在数据尺寸方面具有优势,因为在BD-ROM上没有冗余地记录主视频。另外,没有预先嵌入视频,因此能够根据用户的操作切换第二视频流的合成位置和时间,提高了多功能性。
[0009] 然而,虽然经常以HDTV来创建BD-ROM的主视频,但是有时是以50帧/秒的隔行扫描模式(50i)和60帧/秒的隔行扫描模式(60i)来创建第二视频。这是因为第二视频流是在屏幕中的小窗口中显示的,因此需要的分辨率是主视频的一半甚至更小。然而,并不是所有重放设备都能以50i和60i的模式进行播放,因为50i是PAL格式,60i是NTSC格式。在每个广播区域中的重放设备通常具有仅按某种模式播放的能力,而在另一广播区域中的重放设备则不具有按该模式播放的能力。因此,在例如第二视频是以PAL格式创建的且记录了该第二视频的记录介质被放置在采用NTSC格式的重放设备上的情况下,该重放设备不能执行画中画。
[0010] 另外,当采用HDTV创建第二视频时,一些重放设备不能解码第二视频。这是因为尽管标准BD-ROM重放设备计划配备分别用于主视频和第二视频的解码器,但是第二视频解码器不具有HDTV解码功能。为第二视频解码器提供这种功能意味着几乎没有为重放设备硬件结构的简化留下余地,并且对于产品的价格降低产生负面影响。
[0011] 如上所述的画中画操作可用性取决于视频素材类型的事实,可能变为生产运动画面的电影制作者和制造重放设备的制造商新的要担心的因素。
[0012] 本发明目的在于提供一种记录介质,其能够使重放设备即使是设备在能够解码的素材类型上有所不同的情况下也能够可靠地执行画中画操作。
[0013] [解决问题的手段]
[0014] 为了实现上述目的,本发明是一种其上记录了多个视频流以及一表的记录介质。在此,所述多个视频流中的每一个都是要与主视频流一起播放的第二视频流,并包括表示要在画中画中显示的子图像的画面数据,所述画中画是由父图像和该子图像组成的。所述表包含在所述多个第二视频流中允许播放的第二视频流的条目。
[0015] [本发明的有利效果]
[0016] 即使是在主视频流中存在不能播放的主视频流,通过执行选择下一个流的过程提供了“使用重放设备能够播放的主视频流”的可能性。因此,即使是在重放设备在其对第二视频流的重放能力上有所不同的情况下,也可以使得每个重放设备显示一些第二视频流,从而实现画中画。
[0017] 因此,本发明解决了一些重放设备能够执行画中画而另一些重放设备由于其能力上的差异而不能执行画中画的问题,并且重放设备制造商从而能够创建实现画中画的重放设备并将其投入市场,而不必有任何担心。
[0018] [附图简要说明]
[0019] 图1示出了根据本发明的记录介质的使用应用;
[0020] 图2示出了BD-ROM的内部结构;
[0021] 图3是示出了具有.m2ts扩展名的文件的结构的简化图;
[0022] 图4示出了直到将组成一个AV片段(AVClip)的TS分组写入BD-ROM中为止的处理;
[0023] 图5示出了BD-ROM的物理单元与构成一个文件扩展(fileextent)的源分组之间的关系;
[0024] 图6示出了被多路复用到一个AV片段中的多个基本流的类型;
[0025] 图7示出了用于被记录到BD-ROM上的多个基本流的PID分配映射表(allocation map);
[0026] 图8示出了画中画的一个实例;
[0027] 图9示出了片段信息的内部结构;
[0028] 图10示出了用于运动画面的视频流的EP_map设置;
[0029] 图11示出了播放列表(PlayList)信息的数据结构;
[0030] 图12示出了AV片段与播放列表信息之间的关系;
[0031] 图13示出了本地存储器200的内部结构;
[0032] 图14示出了被多路复用到子片段(SubClip)中的多个基本流;
[0033] 图15示出了在BD-ROM标准中的PID分配映射表;
[0034] 图16示出了播放列表信息的数据结构;
[0035] 图17示出了子路径(Subpath)信息的内部结构的展开;
[0036] 图18示出了在本地存储器200中的子片段、在本地存储器200中的播放列表信息以及在BD-ROM上的主片段(MainClip)之间的关系;
[0037] 图19示出了STN_table的内部结构;
[0038] 图20示出了在图19中所示的STN_table的整体结构中,用于第二视频流的流条目(Stream_entry);
[0039] 图21A示出了主视频流的“Stream_entry”和“Stream_attribute”;
[0040] 图21B示出了第二视频流的“Stream_entry”和“Stream_attribute”;
[0041] 图22示出了本发明的重放设备的内部结构;
[0042] 图23示出了重放设备的输出级的结构;
[0043] 图24功能性地示出了控制器22;
[0044] 图25A示出了PSR14中的比特分配;
[0045] 图25B示出了PSR29中的比特分配;
[0046] 图26示出了在PSR14中的第二视频流编号的状态转换;
[0047] 图27是示出用于第二视频流的“在重放状态改变时的过程”的处理过程的流程图;
[0048] 图28是示出为当前播放项(PlayItem)选择适合的流的处理过程的流程图;
[0049] 图29是示出用于第二视频流的“当要求流改变时的过程”的处理过程的流程图;
[0050] 图30示出了PiP元数据(PiP_metadata)的内部结构;
[0051] 图31示出了PiP_horizontal_position和PiP_vertical_position在视频平面上可能采用的坐标;
[0052] 图32示出了当PiP_time_line_type=1时,PiP_metadata_time_stamp在时间轴上的位置;
[0053] 图33示出了当PiP_time_line_type=2时,PiP_metadata_time_stamp在时间轴上的位置;
[0054] 图34示出了当PiP_time_line_type=3时,PiP_metadata_time_stamp在时间轴上的位置;
[0055] 图35是示出基于画中画的重放控制过程的流程图;
[0056] 图36是示出基于画中画的重放控制过程的流程图;
[0057] 图37示出了在由一个播放项组成的主路径以及由两个子播放项组成的子路径之间的关系;
[0058] 图38示出了基于播放列表信息的重放过程的流程图;
[0059] 图39是示出子播放项无缝连接的处理过程的流程图;
[0060] 图40是示出子播放项无缝连接的处理过程的流程图;
[0061] 图41示出了Primary_audio_stream_entry和Secondary_audio_stream_entry的内部结构,以及Comb_info_Secondary_video_Secondary_audio的内部结构;
[0062] 图42A示出了在PSR1中的比特分配;
[0063] 图42B示出了在PSR14中的比特分配;
[0064] 图43示出了在PSR14中的第二视频流编号的状态转换;
[0065] 图44是示出第二视频流的“在重放状态改变时的过程”的处理过程的流程图;
[0066] 图45是示出为当前播放项选择适合的第二音频流的过程的流程图;
[0067] 图46是示出用于第二视频流的处理过程的流程图;
[0068] 图47示出了STN_table的一部分,其具体与PGtestST流相关;
[0069] 图48A示出了当前PGtestST流的编号能够采用的编号范围;
[0070] 图48B示出了在PSR2中的比特分配;
[0071] 图49示出了PiP_PG_TextST流编号的状态转换,PiP_PG_TextST流编号是画中画PGtestST流的流编号;
[0072] 图50是示出用于PGtestST流的“当要求流改变时的过程”的处理过程的流程图;
[0073] 图51是为当前播放项选择适合的PGTextST流的处理过程的流程图;
[0074] 图52是示出用于PGTextST流的“当要求流改变时的过程”的处理过程的流程图;
[0075] 图53示出了实施例6的创作系统的内部结构;
[0076] 图54是示出格式化处理的处理流程的流程图;
[0077] 图55示出了如何对主视频流和第二视频流进行多路复用;
[0078] 图56示出了一种归属关系,其示出了被多路复用的源分组序列属于主视频流和第二视频流中的哪一个GOP;
[0079] 图57示出了仅为主视频设定的EP_map;
[0080] 图58示出了多个EP_map,其每一个都是为主视频和第二视频而设定的;
[0081] 图59示出了播放列表信息的播放列表标记(PlayListMark)信息;
[0082] 图60示出了将第二视频流所在的位置指定为章节的播放列表标志信息;
[0083] 图61A示出了组成主视频和第二视频的视频场;
[0084] 图61B示出了要进行合成的视频场彼此同相的情况下的组合;
[0085] 图61C示出了要进行合成的视频场彼此反相的情况下的组合;
[0086] 图62A示出了一种画中画图像,其中,主视频的视频场的偶数线与第二视频的视频场的偶数线匹配;
[0087] 图62B示出了一种画中画图像,其中,主视频的视频场的偶数线与第二视频的视频场的奇数线匹配;
[0088] 图63示出了在要将构成主视频的多个视频场之中的给定视频场Fx和来自构成第二视频的多个视频场之中的给定视频场Fy进行合成并输出的情况下,如何调节视频场Fy的位置和显示时间;
[0089] 图64示出了将第二视频的场Fy与主视频的同相场一起进行显示的情况;
[0090] 图65示出了将第二视频的场Fy与主视频的反相场一起进行显示的情况;
[0091] 图66示出了将第二视频场与主视频的偶数线一起进行显示的情况;以及[0092] 图67示出了将第二视频场与主视频的奇数线一起进行显示的情况。
[0093] [参考标记的解释]
[0094] 1a BD-ROM驱动器
[0095] 1b、c 读出缓冲器
[0096] 1a、b、c ATC计数器
[0097] 2a、d 源逆分组化器(Source Depacketizers)
[0098] 2c、d ATC计数器
[0099] 3a、c STC计数器
[0100] 3b、d PID过滤器
[0101] 4a 传输缓冲器
[0102] 4c 基本缓冲器
[0103] 4d 视频解码器
[0104] 4e 重排序缓冲器
[0105] 4f 已解码画面缓冲器
[0106] 4g 视频平面
[0107] 5a 传输缓冲器
[0108] 5c 基本缓冲器
[0109] 5d 视频解码器
[0110] 5e 重排序缓冲器
[0111] 5f 已解码画面缓冲器
[0112] 5g 视频平面
[0113] 6a、b 传输缓冲器
[0114] 7a、b 缓冲器
[0115] 8a、b 音频解码器
[0116] 9a 混合器
[0117] 11a 传输缓冲器
[0118] 11b 交互图形解码器
[0119] 11c 交互图形平面
[0120] 12a 传输缓冲器
[0121] 12b 缓冲器
[0122] 12c 基于文本的字幕解码器
[0123] 13a 传输缓冲器
[0124] 13b 呈现图形解码器(presentation graphics decoder)
[0125] 13c 现图形平面
[0126] 21 存储器
[0127] 22 控制器
[0128] 23 PSR组
[0129] 24 PID转换单元
[0130] 25 网络单元
[0131] 26 操作接收单元
[0132] 41 播放列表处理单元
[0133] 42 过程执行单元
[0134] 43 PiP控制单元
[0135] 44 混合控制单元
[0136] 100 BD-ROM
[0137] 200 本地存储器
[0138] 300 重放设备
[0139] 400 电视
[0140] 500 AV放大器
[0141] [实现本发明的最佳模式]
[0142] 实施例1
[0143] 以下描述本发明的记录介质的实施例。首先,联系本发明的实现来描述一种使用应用。图1示出了本发明的记录介质的使用应用。在图1中,本发明的记录介质是本地存储器200。本地存储器200用于为由重放设备300、电视400、AV放大器500和扬声器600组成的家庭影院系统提供运动画面。
[0144] 接下来描述BD-ROM 100、本地存储器200、和重放设备300。
[0145] BD-ROM 100是其上记录了运动画面的记录介质。
[0146] 本地存储器200是内建在重放设备中的硬盘,用于存储从运动画面发行商的服务器所发行的内容。
[0147] 重放设备300是支持网络的数字家电,并具有播放BD-ROM 100的功能。重放设备300还能够经由网络从运动画面发行商的服务器设备下载内容,将所下载的内容存储在本地存储器200中,并且将该内容与记录在BD-ROM 100中的内容进行合并,以扩展/更新BD-ROM100的内容。使用称为“虚拟分组”的技术,可以将记录在BD-ROM100上的内容与存储在本地存储器200中的内容合并,将未记录在BD-ROM 100上的数据看作就好像是其记录在BD-ROM 100上一样。
[0148] 这样就结束了对本发明的记录介质的使用应用的描述。
[0149] 接下来描述本发明的记录介质的生产应用。通过对BD-ROM的文件系统进行改进,能够实现本发明的记录介质。
[0150]
[0151] 图2示出了BD-ROM的内部结构。图中的层次4示出了BD-ROM,层次3示出了BD-ROM上的轨道。该图采用横向绘制的形式示出了轨道,尽管实际上轨道是从BD-ROM的内侧向外侧螺旋缠绕地形成的。轨道包括导入区(lead-in area)、数据区(volume area)和导出区(lead-out area)。图中的数据区具有由物理层、文件系统层和应用层所组成的层模型。图中的层次1采用目录结构示出了BD-ROM的应用层的格式。在层次1中,BD-ROM在根目录下具有BDMV目录。
[0152] 此外,三个子目录位于BDMV目录下:PLAYLIST目录、CLIPINF目录、以及STREAM目录。
[0153] PLAYLIST目录包括扩展名为mpls的文件(00001.mpls)。
[0154] CLIPINF目录包括扩展名为clpi的文件(00001.clip和00002.clip)。
[0155] STREAM目录包括扩展名为m2ts的文件(00001.m2ts和00002.m2ts)。
[0156] 因此,可以看到,根据以上的目录结构,在BD-ROM中布置了不同类型的多个文件。
[0157]
[0158] 首先,解释扩展名为“m2ts”的文件。图3示出了扩展名为“m2ts”的文件的示意性结构。扩展名为“m2ts”的文件(00001.m2ts和00002.m2ts)存储AV片段。AV片段是采用MPEG2传输流格式的数字流。该数字流是通过以下生成的:将数字化的视频和音频(上方层次1)转换为由PES分组组成的基本流(上方层次2);将该基本流转换为TS分组(上方层次3);类似地,将用于字幕等等的呈现图形(PG)流和用于交互目的的交互流(IG)(下方层次1和下方层次2)转换为TS分组(下方层次3);然后最终将这些TS分组进行多路复用。
[0159] 接下来,解释如何将具有以上所述结构的AV片段写入到BD-ROM中。图4示出了在将构成AV片段的TS分组写入到BD-ROM中之前要对其进行的处理。图中的层次1示出了构成AV片段的TS分组。
[0160] 如图4中层次2所示,将4-字节的TS_extra_header(图中阴影部分)附加到构成AV片段的每个188-字节的TS分组上,生成每个192-字节的源分组。该TS_extra_header包括Arrival_Time_Stamp,其是指示将TS分组输入到解码器的时刻的信息。
[0161] 在层次3中所示的AV片段包括一个或多个“ATC序列”,其每一个都是源分组的序列。“ATC序列”是源分组的序列,其中,由ATC序列中包含的Arrival_Time_Stamp所查询的Arrival_Time_Clock不包括“基于到达时刻的不连续性”。换而言之,“ATC序列”是源分组的序列,其中,在ATC序列中包含的Arrival_Time_Stamp所查询的Arrival_Time_Clock是连续的。
[0162] 这种ATC序列构成AV片段,并以文件名“xxxxx.m2ts”记录在BD-ROM上。
[0163] 如同普通计算机文件的情况一样,AV片段被分割为一个或多个文件扩展(file extent),然后将这些文件扩展记录在BD-ROM的多个区中。层次4示出了如何将AV片段记录在BD-ROM上。在层次4中,构成该文件的每个文件扩展所具有的数据长度等于或者大于称为“展长(Sextent)”的预定长度。
[0164] 展长是每个文件扩展的最小数据长度,其中,AV片段被分割为要记录的多个文件扩展。
[0165] 光盘读头(optical pickup)跳转到BD-ROM上的某个位置所需要的时间是采用以下公式获得的:
[0166] Tjump=Taccess+Toverhead。
[0167] “Taccess”是与跳转距离(到跳转目的地物理地址的距离)相对应的所需时间。
[0168] 从BD-ROM中读出的TS分组存储在称为读出缓冲器的缓冲器中,然后被输出到解码器。“Toverhead”是在以称为“Rud”的比特速率进行对读出缓冲器的输入并且用Secc表示在ECC块中的扇区数量时采用以下公式获得的:
[0169] Toverhead≤(2×Secc×8)/Rud=20毫秒。
[0170] 从BD-ROM中读出的TS分组以源分组的状态存储在读出缓冲器中,然后以称为“TS_Recording_rate”的传输速率提供给解码器。
[0171] 为了在将TS分组提供给解码器的同时保持传输速率TS_Recording_rate,就必须在Tjump期间,将TS分组连续地从读出缓冲器输出到解码器。在此,从读出缓冲器中输出的是源分组而不是TS分组。因此,当TS分组与源分组在尺寸上的比率为192/188时,就必须在Tjump期间,将源分组以“192/188×TS_Recording_rate”的传输速率从读出缓冲器中连续地输出。
[0172] 因此,不会造成下溢的读出缓冲器占用缓冲器容量用以下公式表示:
[0173] Boccupied≥(Tjump/1000×8)×((192/188)×TS_Recording_rate)。
[0174] 输入到读出缓冲器的输入速率用Rud表示,从读出缓冲器输出的速率用TS_Recording_rate×(192/188)表示。因此,通过执行“输入速率-输出速率”、并因此通过“(Rud-TS_Recording_rate)×(192/188)”来获得读出缓冲器的占用速率。
[0175] 以“Boccupied”占用读出缓冲器所需要的时间“Tx”是通过以下公式获得的:
[0176] Tx=Boccupied/(Rud-TS_Recording_rate×(192/188))。
[0177] 当从BD-ROM中读出时,必须在时间段“Tx”内连续地以比特速率Ru输入TS分组。从而,当将AV片段分割为多个要记录的文件扩展时,每个扩展的最小数据长度展长是通过以下公式获得的:Sextent=Rud×Tx
[0178] =Rud×Boccupied/(Rud-TS_Recording_rate×(192/188))
[0179] ≥Rud×(Tjump/1000×8)×((192/188)×TS_Recording_rate)
[0180] /(Rud-TS_Recording_rate×(192/188))
[0181] ≥(Rud×Tjump/1000×8)×TS_Record.ing_rate×192
[0182] /(Rud×188-TS_Recording_rate×192)。
[0183] 因此,
[0184] Sextent≥(Tjump×Rud/1000×8)×
[0185] (TS_Recording_rate×192/(Rud×188-TS_Recording_rate×192))
[0186] 如果构成AV片段的每个文件扩展所具有的数据长度都等于或者大于作为不会导致解码器下溢的值而计算得到的展长,则即使是构成AV片段的每个文件扩展在BD-ROM上位置离散,也会将TS分组连续地提供给解码器,从而在重放过程中连续地读出数据。
[0187] 图5示出了BD-ROM的物理单元与构成一个文件扩展的源分组之间的关系。如层次2所示,在BD-ROM上形成了多个扇区。如层次1所示,构成该文件扩展的源分组被划分为多个组,每个组由32个源分组组成。然后将每组源分组写入到三个连续扇区的集合中。32个源分组的一个组是6144字节(32×192),其等于三个扇区的尺寸(2048×3)。存储在这三个扇区中的32个源分组称为“对齐单元(Aligned unit)”。以对齐单元为单位来执行对BD-ROM的写入。
[0188] 在层次3中,为每个32扇区的块附加纠错码。带有纠错码的块被称为ECC块。只要以对齐单元为单位访问BD-ROM,重放设备就能够获得32个完整的源分组。这样就结束了将AV片段写入到BD-ROM的写入处理的描述。
[0189] 以下将给出对于要被多路复用到主片段中的基本流的更为详细的描述。
[0190] 图6示出了被多路复用到主片段中的多个基本流。要被多路复用到主片段的STC序列中的基本流是:具有PID 0x1011的主视频流;具有PID 0x1100到0x111F的主音频流;具有PID 0x1200到0x121F的32个PG流;具有PID 0x1400到0x141F的32个IG流;以及具有PID 0x1B00到0x1B1F的32个第二视频流。
[0191] 以下描述这些视频流、音频流、PG流和IG流。
[0192] <主视频流>
[0193] 主视频流是构成主电影的流,其由SDTV和HDTV的画面数据组成。该视频流采用VC-1视频流、MPEG4-AVC或者MPEG2视频格式。当主视频流是采用MPEG4-AVC格式的视频流时,将诸如PTS和DTS之类的时间戳附加到IDR、I、P和B画面,并且以画面为单位进行重放控制。视频流的一个单位是一个附加了PTS和DTS的、用于重放控制的单元,其被称为“视频呈现单元”。
[0194] <第二视频流>
[0195] 第二视频流是构成运动画面的解说等等的流,并且通过将第二视频流的重放视频与主视频流进行合成来实现画中画。该视频流是采用VC-1视频流格式、MPEG4-AVC视频流格式或者MPEG2视频流格式的,并且包含“视频呈现单元”。第二视频流是采用525/60视频格式、625/50视频格式、1920/1080格式、或者1280/720格式的。
[0196] 图8示出了画中画的一个实例。该图示出了直到预定的时间点tp为止,仅仅播放主视频。能够看出,在该时间点tp之后,播放将第二视频叠置在主视频上的视频。因此,第二视频流由多个画面组成,每个画面都叠置到主视频的一个画面上。与图6中所示的第二视频流相同,要与主视频流多路复用到同一AV片段中的第二视频流,称为是“In_MUX第二视频流”。在第二视频流中的、要被多路复用到与主视频流相同的AV片段中的普通基本流,称为是“In_MUX流”。
[0197] <主音频流>
[0198] 主音频流是运动画面的主音轨的流,并且主音频流的格式包括LPCM音频流格式、DTS-HD格式、DD/DD+音频流格式、以及DD/MLP音频流格式。将时间戳附加到音频流中的音频帧上,并且以音频帧为单位进行重放控制。音频流的一个单位是一个附加了时间戳的、用于重放控制的单元,其称为“音频呈现单元”。注意,尽管在此运动画面的子音轨没有记录在BD-ROM上,但是其被称为第二音频流。
[0199]
[0200] PG流是构成以某种语言书写的字幕的图形流。存在分别对应于多种语言的多个流,例如英语、日语和法语。PG流包括诸如以下的功能段:PCS(呈现控制段)、PDS(调色板(pallet)定义段)、WDS(窗口定义段)、ODS(对象定义段)、以及END(显示设置段的结束)。ODS(对象定义段)是定义图形对象的功能段,图形对象就是字幕。
[0201] WDS是定义图形对象在屏幕上的绘制区的功能段。PDS(调色板定义段)是定义在绘制图形对象时的颜色的功能段。PCS是定义在显示字幕时的页面控制的功能段。这种页面控制包括:突现/突逝(Cut-In/Out)、淡入/淡出(Fade-In/Out)、颜色改变、卷动、划入/划出(Wipe-In/Out)。采用PCS的页面控制可以实现某种显示效果,例如,在显示下一个字幕的同时将当前字幕淡出。
[0202] 除了呈现图形流之外,用于表示字幕(其没有被多路复用到与主视频流相同的AV片段中)的流包括文本字幕(textST)流。textST流是用字符码表示字幕内容的流。在BD-ROM标准中,呈现图形流和textST流的组合被称为“PGTextST流”。
[0203]
[0204] IG流是用于实现交互控制的图形流。IG流所定义的交互控制是与DVD重放设备的交互控制兼容的交互控制。IG流包括诸如以下的功能段:ICS(交互合成段)、PDS(调色板定义段)、以及ODS(对象定义段)。ODS(对象定义段)是定义图形对象的功能段。在交互屏幕上的按钮是由多个这样的对象绘制的。PDS(调色板定义段)是定义在绘制图形对象时的颜色的功能段。ICS(交互合成段)是实现状态改变的功能段,其中,按钮状态根据用户操作而改变。ICS包括当对某个按钮进行了确认操作时执行的按钮命令。
[0205] 图7示出了记录在BD-ROM上的基本流的PID分配映射表。该PID分配映射表的左列指示多个PID范围。右列指示分配给每个范围的基本流。当根据该描述来查询该分配表时,能够看到以下:program_map被分配在PID范围0x0100;PCR在范围0x1001中;主视频流在范围0x1011中;主音频流在范围0x1100到0x111F中;PG流在范围0x1200到0x121F中;IG流在0x1400到0x141F中;In_MUX第二视频流在范围0x1B00到0x1B1F中。
[0206] 如从该PID分配映射表中能够看到的,用于主视频流的范围和用于第二视频流的范围是不同的。
[0207] 用于构成画中画的第二视频流的PES分组所具有的高字节与主视频流的PES分组的PID的高字节不同。因此,即使是主视频流和第二视频流被多路复用到一个AV片段中,也能够通过查询PID的高字节来将构成每种类型的视频流的PES分组提供给不同的解码器。
[0208]
[0209] 接下来描述扩展名为“clip”的文件。扩展名为“clip”的文件(00001.clip和00002.clip)存储片段信息。片段信息是对每个AV片段的管理信息。图9示出了片段信息的内部结构。如该图左侧所示,片段信息包括:
[0210] i)“Cliplnfo()”,其中存储了关于AV片段的信息;
[0211] ii)“Sequence Info()”,其中存储了关于ATC序列和STC序列的信息;
[0212] iii)“Program Info()”,其中存储了关于节目序列的信息;以及
[0213] iv)“Characteristic Point Info(CPI())”。
[0214] “ClipInfo”包括“application_type”,其指示片段信息所指的AV片段的应用类型。对ClipInfo进行查询允许确认应用类型是主片段还是子片段、是否包含视频、或者是否包含静态画面(幻灯片)。另外,上述的TS_recording_rate是在ClipInfo中描述的。
[0215] “Sequence Info”是关于在AV片段中包含的一个或多个STC序列和ATC序列的信息。提供这些信息的原因是,将基于系统时间的不连续性和基于到达时间的不连续性预先通知给重放设备。就是说,如果存在这种不连续性,则存在在AV片段中出现具有相同值的PTS和ATS的可能性。这可能会造成错误重放。提供“Sequenc eInfo”来指示STC或者ATC在传输流中从哪里到哪里是连续的。
[0216] “Program Info”是指示内容恒定的节目的一个部分(所谓的“节目序列”)。在此,“节目”是具有用于同步重放的公共时间轴一组基本流。提供“Program Info”的原因是:将节目内容改变时的点预先通知给重放设备。在此应该注意,节目改变时的点是例如视频流的PID发生改变时的点、或者视频流类型从SDTV改变为HDTV时的点。
[0217] 接下来描述“Characteristic Point Info”。图9中的引导线cu2指示CPI结构的展开。如引导线cu2所指示的,CPI包括Ne个EP_map_for_one_stream_PID(从EP_map_forone_stream_PID[0]到EP_map_for_one_stream_PID[Ne-1])。这些EP_map_for_one_stream_PID是属于该AV片段的多个基本流的EP_map。EP_map是与进入时刻(PTS_EP_start)相关联地指示在进入位置处的分组编号(SPN_EP_start)的信息,在所述进入位置处,在一个基本流中存在访问单元(Access Unit)。图中的引导线cu3指示EP_map_for_one_stream_PID的内部结构的展开。
[0218] 从该展开中了解到,EP_map_for_one_stream_PID包括:Ne个EP_High(EP_High(0)到EP_High(Nc-1))和Nf个EP_Low(EP_Low(0)到EP_Low(Nf-1))。在此,EP_High用于指示访问单元(非IDR I画面、IDR画面)的SPN_EP_start和PTS_EP_start的高位比特,EP_Low用于指示访问单元(非IDR I画面、IDR画面)的SPN_EP_start和PTS_EP_start的低位比特。
[0219] 图中的引导线cu4指示EP_High的内部结构的展开。如引导线cu4所示,EP_High(i)包括:“ref_to_EP_Low_id[i]”,其是对EP_Low的查询值(reference value);“PTS_EP_High[i]”,其指示访问单元(非IDR I画面、IDR画面)的PTS的高位比特;以及“SPN_EP_High[i]”,其指示访问单元(非IDR I画面、IDR画面)的SPN的高位比特。在此,“i”是所给定的EP_High的标识符。
[0220] 图中的引导线cu5指示EP_Low的内部结构的展开。如引导线cu4所示,EP_Low(i)包括:“is_angle_change_point(EP_Low_id)”,其指示相应的访问单元是否是IDR画面;“I_end_position_offset(EP_Low_id)”,其指示相应的访问单元的尺寸;“PTS_EP_Low[EP_Low_id]”,其指示访问单元(非IDR I画面、IDR画面)的PTS的低位比特;以及“SPN_EP_Low[EP_Low_id]”,其指示访问单元(非IDR I画面、IDR画面)的SPN的低位比特。在此,“EP_Low_id”是所给定的EP_Low的标识符。
[0221] <片段信息解释2:EP_Map>
[0222] 在此,使用具体实例来解释EP_map。图10示出了运动画面的视频流的EP_map设置。层次1示出了按照显示顺序排列的多个画面(在MPEG4-AVC中定义的IDR画面、I画面、B画面、P画面)。层次2示出了这些画面的时间轴。层次4示出了在BD-ROM上的TS分组序列,层次3示出了EP_map的设置。
[0223] 在此假设,在层次2的时间轴中,在t1到t7的每个时间点上都存在IDR画面或者I画面。在时间点t1到t7中相邻两个时间点之间的间隔大约为1秒。用于运动画面的EP_map被设定为利用进入时刻(PTS_EP_start)指示t1到t7,并且与进入时刻相关联地指示进入位置(SPN_EP_start)。
[0224] <播放列表信息>
[0225] 接下来描述播放列表信息。扩展名为“mpls”的文件(00001.mpls)是其中存储了播放列表(PL)信息的文件。
[0226] 图11示出了播放列表信息的数据结构。如图中的引导线mp1所示,播放列表信息包括:主路径信息(MainPath()),其定义主路径;播放列表标记信息(PlayListMark()),其定义章节;以及其他扩展数据(Extension_Data)。
[0227] <播放列表信息解释1:主路径信息>
[0228] 首先描述主路径。主路径是按照诸如主视频流之类的视频流和音频流而定义的。
[0229] 如箭头mp1所示,主路径由多个播放项信息定义:播放项信息#1到播放项信息#m。播放项信息定义了构成主路径的一个或多个逻辑播放部分。
[0230] 在图中的引导线hs1指示了播放项信息的结构的展开。如引导线hs1所示,播放项信息包括:“Clip_Information_file_name”,其指示该重放部分的入点和出点所归属的AV片段的重放部分信息的文件名;“Clip_codec_identifier”,指示AV片段编码方法;“is_multi_angle”,指示播放项是否是多视角的;“connection_condition”,指示是否无缝连接当前播放项和先前播放项;“ref_to_STC_id[D]”,唯一性地指示作为该播放项的目标的STC序列;“In_time”,其是指示该重放部分的开始点的时间信息;“Out_time”,其是指示该重放部分的结束点的时间信息;“UO_mask_table”,指示该播放项应该屏蔽哪种用户操作;“PlayItem_random_access_flag”,指示是否允许对该播放项中的中间点进行随机访问;“Still_mode”,指示在该播放项的重放结束之后是否继续最后画面的静态显示;以及“STN_table”。在这些之中,指示重放部分的开始点的时间信息“In_time”和指示重放部分的结束点的时间信息“Out_time”构成重放路径。重放路径信息由“In_time”和“Out_time”组成。
[0231] 图12示出了在AV片段与播放列表信息之间的关系。层次1示出了播放列表信息的时间轴(播放列表时间轴)。层次2到5示出了EP_map所指的视频流。
[0232] 该播放列表信息包括两个播放项信息:播放项信息#1和播放项信息#2。在播放项信息#1和播放项信息#2中分别包含的“In_time”和“Out_time”定义了两个重放部分。当排列这些重放部分时,定义了一个与AV片段时间轴不同的时间轴。这就是在层次1中所示的播放列表时间轴。因此,可以通过定义播放项信息来定义与AV片段不同的重放路径。
[0233] 这样就结束了对BD-ROM 100的描述。
[0234] <本地存储器200>
[0235] 以下描述了本地存储器200,其是本发明的记录介质。图13示出了本地存储器200的内部结构。如图所示,本发明的记录介质能够通过改进应用层来生产。
[0236] 图中的层次4示出了本地存储器200,层次3示出了本地存储器200的轨道。该图采用横行绘制的形式画出了轨道,尽管在实际中轨道是从本地存储器200的内侧向外侧螺旋缠绕地形成的。轨道由导入区、数据区、以及导出区组成。图中的数据区具有由物理层、文件系统层和应用层所组成的层模型。图中的层次1采用目录结构示出了本地存储器200的应用层的结构。
[0237] 在图13中所示的目录结构中,在根目录下存在子目录“organization#1”。此外,在目录“organization#1”下存在子目录“disk#1”。目录“organization#1”被指定给运动画面的具体提供商。目录“disk#1”被指定给由该提供商所提供的每个BD-ROM。
[0238] 采用这种指定给具体提供商的目录包含与BD-ROM相对应的目录的结构,独立地存储每个BD-ROM的下载数据。与存储在BD-ROM中的信息相类似,在子目录“disk#1”下,存储了以下信息:播放列表信息(“00002.mpls”);片段信息(“00003.clpi”和“00004.clpi”);以及AV片段(“00003.m2ts”和“00004.m2ts”)。
[0239] 以下将描述本地存储器200中的组件:播放列表信息、片段信息和AV片段。
[0240] <本地存储器200结构1:AV片段>
[0241] 在本地存储器200中的AV片段(00003.m2ts和00004.m2ts)组成了子片段。子片段是通过对四种类型的基本流-视频流、音频流、PG流和IG流-进行多路复用而形成的。以下给出了被多路复用到AV片段中的基本流类型的详细描述。
[0242] 图13示出了本地存储器200的内部结构。要被多路复用到子片段中的基本流是:具有PID 0x1800的textST流;具有PID 0x1A00到0x1A1F的主音频流;具有PID 0x1B00到0x1B1F的32个Out_of_MUX第二视频流;具有PID 0x1200到0x121F的32个PG流;以及具有PID 0x1400到0x141F的32个IG流。作为图14中所示的第二视频流,要与主视频流多路复用到不同的AV片段中的第二视频流,称为“Out_of_MUX第二视频流”。除了第二视频流之外,要被多路复用到与主视频流不同的AV片段的普通基本流,称为是Out_MUX流”。
[0243] 图15示出了被多路复用到子片段中的基本流的PID分配映射表。该PID分配映射表的左列指示多个PID范围。右列指示分配给每个范围的基本流。当根据该描述查询该映射表时,能够看到以下:program_map被分配在PID范围0x0100中;PCR在范围0x1001中;PG流在范围0x1200到0x121F中;IG流在0x1400到0x141F中;textST流在范围0x1800中;第二音频流在范围0x1A00到0x1A1F中;第二视频流在范围0x1B00到0x1B1F中。
[0244] <本地存储器200结构2:播放列表信息>
[0245] 接下来描述本地存储器200中的播放列表信息。扩展名为“mpls”的文件(00002.mpls)是定义了通过将称为主路径和子路径的两类重放路径绑定作为播放列表(PL)而得到的一个组的信息。图16示出了播放列表信息的数据结构。如图所示,播放列表信息包括:主路径信息(MainPath()),其定义主路径;播放列表标记信息(PlayListMark()),其定义章节;子路径信息,其定义子路径;以及其他扩展数据(Extension_Data)。播放列表信息和播放项的内部结构与在BD-ROM中的播放列表信息和播放项相同,因此在此省略了对其的描述。以下描述子路径信息。
[0246] <播放列表信息解释1:子路径信息>
[0247] 主路径是为主片段(其是主视频)而定义的重放路径,子目录是为与主路径同步的子片段而定义的重放路径。
[0248] 图17示出了子路径信息的内部结构的展开。如图中箭头hc0所示,每个子路径包括指示子片段类型的“SubPath_type”以及一个或多个子播放项信息(...SubPlayltem()...)。
[0249] 图中的引导线hc1指示子播放项信息的结构的展开。
[0250] 子播放项定义了与主路径相独立的一个或多个基本流重放路径,并且用于表示示出这些重放路径如何与主路径进行同步的类型。当子播放项使用主视频、PG、IG、第二音频和第二视频的子路径时,这些子播放项使用在播放列表中的播放项与主路径进行同步。用于基本流重放的子路径所使用的基本流被多路复用到子片段,即,与主路径的播放项所使用的主片段相独立的片段。
[0251] 接下来描述子播放项的内部结构。如图中的箭头hc1所示,子播放项信息包括:“Clip_information_file_name”、“Clip_codec_identifier”、“ref_to_STC_id[0]”、“SubPlayItem_In_time”、“SubPlayItem_Out_time”、“sync_PlayItem_id”、以 及“sync_start_PTS_of_PlayItem”。
[0252] “Clip_information_file_name”是通过描述片段信息的文件名来唯一性地指定与该子播放项相对应的子片段的信息。
[0253] “Clip_codec_identifier”指示AV片段的编码系统。
[0254] “ref_to_STC_id[0]”唯一性地指示子播放项所针对的STC序列。
[0255] “SubPlayItem_In_time”是指示在子片段的重放时间轴上的子播放项开始点的信息。
[0256] “SubPlayItem_Out_time”是指示在子片段的重放时间轴上的子播放项结束点的信息。
[0257] “sync_PlayItem_id”是用于从组成主路径的多个播放项中唯一性地指定该子播放项与之同步的播放项的信息。“SubPlayItem_In_time”存在于由sync_PlayItem_id所指定的播放项重放时间轴上。
[0258] “sync_start_PTS_of_PlayItem”以45KHz的时间精度指示了SubPlayItem_In_time所指定的子播放项的开始点在sync_PlayItem_id所指定的播放项的重放时间轴上的位置。在子播放项定义了在第二视频流上的重放部分并且子播放项的sync_start_PTS_of_PlayItem指示了在播放项时间轴上的时间点的情况下,子播放项实现了“同步画中画”。
[0259] 另外,能够在sync_start_PTS_of_PlayItem中设定一个未指定值(0xFFF)。该未指定值使得在由sync_PlayItem_id所指定的播放项时间轴上的、用户执行了锁定操作的时间点,成为与由sync_PlayItem_id所指定的播放项同步的点。在sync_start_PTS_of_PlayItem中设定该未指定值并且子播放项指示第二视频流的重放的情况下,子播放项实现“异步画中画”。
[0260] <子路径信息细节1:SubPath_type>
[0261] 这样结束对子路径信息的描述。接下来描述SubPath_type。当在SubPath_type中设定了范围为0到255的值时,SubPath_type指示由该子路径信息所定义的子路径是哪种重放路径。以下解释SubPath_type所表示的重放路径的3种典型类型。
[0262] Subpath_Type=5
[0263] :画中画呈现路径的Out-of-mux与同步类型
[0264] 在该情况下,子播放项定义了与Out-of-mux同步播放的画中画重放路径。在该路径中所使用的基本流被多路复用到子片段,即,与由主路径的播放项所使用的主片段相独立的片段。
[0265] Subpah_Type=6
[0266] :画中画呈现路径的Out-of-mux与异步类型
[0267] 在该情况下,子播放项定义了与Out-of-mux流不同步播放的画中画重放路径。这就是说,在该路径中所使用的基本流被多路复用到子片段,即,与由播放项所使用的片段不同的片段。当Subpath_Type=6时,子路径仅仅包含一个子播放项。
[0268] 当子播放项的SubPath_type设定为“6”时,sync_PlayItem_id和sync_start_PTS_of_PlayItem变为无效并且分别设定为0x0000和0x00000000。
[0269] Subpath_Type=7
[0270] :画中画呈现路径的In_Mux与同步类型
[0271] 在该情况下,子播放项定义了与In_mux流同步播放的画中画重放路径。即,当Subpath_Type=7时,在该路径中所使用的基本流与要同步播放的播放项所使用的基本流一起被多路复用到同一片段中。
[0272] 这样就结束了对SubPath_type的描述。
[0273] <子路径信息细节2:3个对象之间的关系>
[0274] 在此,3个对象指的是本地存储器200中的子片段、本地存储器200中的播放列表信息以及在BD-ROM中的主片段。
[0275] 图18示出了本地存储器200中的子片段、本地存储器200中的播放列表信息以及在BD-ROM中的主片段之间的关系。图中的层次1指示在本地存储器200中存在的子片段。如层次1中所示,存在不同类型的子片段:第二视频流、第二音频流、PG流和IG流。其任何一个都用作同步重放的子路径。
[0276] 层次2指示由播放列表信息所定义的两个时间轴。在层次2中,下面的时间轴是由播放项信息定义的播放项时间轴,上面的时间轴是由子播放项定义的子播放项时间轴。
[0277] 如图所示,能够看出:子播放项信息的SubPlayItem_Clip_information_file_name在子片段选择中起作用,从多路复用到存储在STREAM目录中的.m2ts文件中的多个Out-of-Mux流中,选出作为重放部分指定的目标的Out-of-Mux流。
[0278] 还能够看出:SubPlayItem.IN_time和SubPlayItem.Out_time在定义重放部分的开始点和结束点中起作用。
[0279] 箭头Sync_PlayItem_Id在指定哪个播放项与子播放项同步中起作用。sync_start_PTS_of_PlayItem在确定在播放项时间轴上的SubPlayItem_In_time的时间点中起作用。
[0280] 这样就结束了对子路径信息的描述。
[0281]
[0282] STN_table是在BD-ROM和本地存储器200中的播放列表信息的一个组成部分。以下描述在本地存储器200中的播放列表信息。
[0283] STN_table示出了在被多路复用到由播放项信息的Clip_Information_file_name所指定的AV片段中的多个基本流以及由子播放项信息的Clip_Information_file_name所指定的OUT_of_MUX流之中,允许进行重放的流。更具体而言,在STN_table中,多路复用到主片段中的多个In_MUX流以及多路复用到子片段中的Out_of_MUX流的流条目(Stream_entry)分别与流属性(Stream_attribute)相关联。
[0284] 图19示出了STN_table的整体结构。图20示出了在图19中所示的STN_table的整体结构中,第二视频流的流条目。如图所示,该STN_table包括n个Secondary_video_stream_entry(Secondary video_stream_entry[1] 到 Secondary_video_stream_entry[n])和第二视频流的数量(number_of_Secondary_video_stream_entries(=n))。
[0285] 引导线hs1指示了Secondary_video_stream_entry[1]的内部结构的展开。这就是说,Secondary_video_stream_entry[1]到Secondary_video_stream_entry[n]是从同一个类结构中生成的多个实例,并且其每一个都具有与引导线hs1所指示的相同的内部结构。在每个Secondary_video_stream_entry的方括号[]中的数字指示该Secondary_video_stream_entry在STN_table中的次序。
[0286] 如引导线hs1所示,Secondary_video_stream_entry[1]包括:“Stream_entry”,将与第二视频流编号=1相对应的PID提供给重放设备;“Stream_attribute”,指示与第二视频流编号=1相对应的视频属性;“Comb_info_Secondary_Video_Secondary_Audio”,指示当在第二视频流编号中设定为“1”时变为可播放的第二音频流;以及“Comb_info_Secondary_Video_PiP_PG_textST()”,指示当在第二视频流编号中设定为“1”时变为可播放的PG流或者textST流。
[0287] 如引导线hs2所示,Secondary_video_stream_entry[2]包括:“Stream_entry”,将与第二视频流编号=2相对应的PID提供给重放设备;“Stream_attribute”,指示与第二视频流编号=2相对应的视频属性;“Comb_info_Secondary_Video_Secondary_Audio”,指示当在第二视频流编号中设定为“2”时变为可播放的第二音频流;以及“Comb_info_Secondary_Video_PiP_PG_textST()”,指示当在第二视频流编号中设定为“2”时变为可播放的PG流或者textST流。
[0288] 对于引导线hs3也是相同的。因此,位于STN_table中的第x个位置处的Secondary_video_stream_entry[x]为重放设备指示以下信息:当为第二视频流编号设定为“x”时与“x”相对应的第二视频流的PID;该第二视频流的视频属性;以及第二音频流与PGTextST流的可用组合。
[0289] 图21A示出了主视频流的“Stream_entry”和“Stream_attribute”。该“Stream_entry”包括“ref_to_stream_PID_of_mainClip”,其指示构成该主视频流的PES分组的分组标识符。
[0290] 该“Stream_attribute”包括指示视频流显示格式的“Video_format”和指示视频流显示频率的“frame_rate”。
[0291] 图21B示出了第二视频流的“Stream_entry”。如图所示,第二视频流的“Stream_entry”包括:“ref_to_Sub_Path_id”,指示涉及该第二视频流的子路径信息;以及“ref_to_stream_PID_of_mainClip”,指示构成该第二视频流的PES分组的分组标识符。
[0292] 这样就结束了对本发明的记录介质的描述。除了这些组件之外,BD-ROM还包括例如电影对象(Movie Object)、BD-J对象和Index.bdmv。
[0293] 电影对象采用与DVD视频中所用的类似的描述来命令重放设备进行动态控制过TM程,而BD-J采用以Java 应用程序进行的描述来命令重放设备进行动态控制过程。Index.bdmv是一个表,其指示构成标题的电影对象或者BD-J对象。
[0294] 这些组件并不是本发明的重点,因此在本实施例中省略了对其的详细描述。这样就结束了对本发明的记录介质的描述。
[0295] <重放设备>
[0296] 图22示出了本发明的重放设备的内部结构。本发明的重放设备是基于图中所示的内部结构而商业制造的。该重放设备主要包括两个两个部件:系统LSI和驱动装置,并且通过在该设备的箱体和底座上安装这些部件来商业制造该重放设备。这样制造的重放设备包括:BD-ROM驱动器1a;读出存储器1b和1c;ATC计数器2a和2c;源逆分组化器2b和2d;ATC计数器2b和2d;STC计数器3a和3c;PID过滤器3b和3d;传输缓冲器(TB)4a;基本缓冲器(EB)4c;视频解码器4d、重排序缓冲器4e;已解码画面缓冲器4f;视频平面4g;传输缓冲器(TB)5a;基本缓冲器(EB)5c;视频解码器5d、重排序缓冲器5e;已解码画面缓冲器
5f;视频平面5g;缓冲器6a和6b;缓冲器7a和7b;音频解码器8a和8b;混合器9a;切换器10a、10b、10c、10d和10e;传输缓冲器(TB)11a;交互图形解码器11b;交互图形平面11c;
传输缓冲器(TB)12a、缓冲器12b;基于文本的字母解码器12c;传输缓冲器(TB)13a、呈现图形解码器13b;呈现图形平面13c;存储器21;控制器22;PSR组23;PID转换单元24;网络单元25;操作接收单元26;以及本地存储器200。注意,在图中未示出该重放设备的输出级。以下采用另一个示出了内部结构的附图来描述该输出级。
[0297] BD-ROM驱动器1a加载/弹出BD-ROM,并进行对BD-ROM的访问。
[0298] 读出缓冲器(RB)1b累积从BD-ROM读出的源分组序列。
[0299] 读出缓冲器(RB)1c累积从本地存储器200读出的源分组序列。
[0300] 通过使用在构成主片段的多个源分组之中位于重放部分开始处的源分组的ATS来重置ATC计数器2a,然后将ATC输出到源逆分组化器2b。
[0301] 源逆分组化器2b从构成主片段的源分组中取出TS分组,并发送该TS分组。在发送时,源逆分组化器2b根据每个TS分组的ATS来调节输入到解码器中的时刻。更具体而言,当ATC计数器2a所生成的ATC的值变为与源分组的ATS的值相同时的时刻,源逆分组化器2b以TS_Recording_Rate仅将该TS分组传输给PID过滤器3b。
[0302] 通过使用在构成子片段的多个源分组之中位于重放部分开始处的源分组的ATS来重置ATC计数器2c,然后将ATC输出到源逆分组化器2d。
[0303] 源逆分组化器2d从构成子片段的源分组中取出TS分组,并发送该TS分组。在发送时,源逆分组化器2d根据每个TS分组的ATS来调节输入到解码器中的时刻。更具体而言,当ATC计数器2c所生成的ATC的值变为与源分组的ATS的值相同时的时刻,源逆分组化器2d以TS_Recording_Rate仅将该TS分组传输给PID过滤器3d。
[0304] 用主片段的PCR来重置STC计数器3a,并输出STC。
[0305] PID过滤器3b是主片段的去复用单元,其输出在从源逆分组化器2b输出的多个源分组之中的、具有由PID转换单元24通知给视频解码器4d和5d、音频解码器8a、交互图形解码器11b和呈现图形解码器13b的PID查询值的源分组。这些解码器中的每一个都接收经由PID过滤器3b的基本流,并根据主片段的PCR执行从解码处理到重放处理的处理过程。因此,基于主片段的PCR,对在经由PID过滤器3b传递之后输入到每个解码器中的基本流进行解码和重放。
[0306] 用子片段的PCR来重置STC计数器3c,并输出STC。PID过滤器3d执行关于该STC的去复用。
[0307] PID过滤器3d是子片段的去复用单元,其输出在从源逆分组化器2d输出的多个源分组之中的、具有与由PID转换单元24通知给音频解码器8b、交互图形解码器11b和呈现图形解码器13b的PID查询值的源分组。因此,基于子片段的PCR,对在经由PID过滤器3d传递之后输入到每个解码器中的基本流进行解码和重放。
[0308] 传输缓冲器(TB)4a是用于在从ID过滤器3b输出属于主视频流的TS分组时暂时在其中对这些TS分组进行累积的缓冲器。
[0309] 基本缓冲器(EB)4c是其中存储了处于编码状态的画面(I画面、B画面、和P画面)的缓冲器。
[0310] 解码器(Dec)4d通过在每个预定解码时间周期(DTS)中对构成主视频的各个画面进行解码来获得多个帧图像,并将这些帧图像写入到视频平面4。
[0311] 已解码画面缓冲器4e是用于存储从解码器4d的解码处理中获得的未压缩画面的缓冲器。
[0312] 重排序缓冲器4f是用于将已解码画面的顺序从已解码顺序改变为显示顺序的缓冲器。
[0313] 主视频平面4g是用于存储主视频的一个画面的像素数据的存储区域。该像素数据由16比特的YUV值表示,并且视频平面4g中存储了分辨率为1920x1080的像素数据。
[0314] 传输缓冲器(TB)5a是在将属于第二视频流的TS分组从PID过滤器3b输出时在其中对这些TS分组进行累积的缓冲器。
[0315] 基本缓冲器(EB)5c是其中存储了处于编码状态的画面(I画面、B画面、和P画面)的缓冲器。
[0316] 解码器(Dec)5d通过在每个预定解码时间周期(DTS)中对构成第二视频的各个画面进行解码来获得多个帧图像,并将这些帧图像写入到视频平面5。
[0317] 已解码画面缓冲器5e是用于从解码器5d的解码处理中获得的未压缩画面的缓冲器。
[0318] 重排序缓冲器5f是用于将已解码画面的顺序从解码顺序改变为显示顺序的缓冲器。
[0319] 第二视频平面5g是用于存储第二视频的一个画面的像素数据的存储区域。该像素数据由16-比特的YUV值表示,并且视频平面5g中存储了分辨率为1920x1080的像素数据。
[0320] 缓冲器6a以先进先出方式存储了在从去复用器3a输出的多个TS分组之中的、构成主音频流的TS分组,并将这些TS分组提供给音频解码器7a。
[0321] 缓冲器6b以先进先出方式存储了在从去复用器3b输出的多个TS分组之中的、构成第二音频流的TS分组,并将这些TS分组提供给音频解码器7b。
[0322] 音频解码器7a将存储在缓冲器6a中的TS分组转换为PES分组,解码这些PES分组以获得LPCM状态的未压缩音频数据,并输出所获得的音频数据。这就实现了主音频流的数字输出。
[0323] 音频解码器7b将存储在缓冲器6b中的TS分组转换为PES分组,解码这些PES分组以获得LPCM状态的未压缩音频数据,并输出所获得的音频数据。这就实现了第二音频流的数字输出。
[0324] 混合器9a将从音频解码器7a输出的LPCM状态的数字音频与从音频解码器7b输出的LPCM状态的数字音频进行混合。
[0325] 切换器10a选择性地将从BD-ROM读出的TS分组或者从本地存储器200读出的TS分组提供给第二视频解码器5d。
[0326] 切换器10b选择性地将从BD-ROM读出的TS分组或者从本地存储器200读出的TS分组提供给呈现图形解码器13b。
[0327] 切换器10c选择性地将从BD-ROM读出的TS分组或者从本地存储器200读出的TS分组提供给交互图形解码器11b。
[0328] 切换器10d是对于是否将由去复用器3a去复用的主音频流的TS分组与由去复用器3b去复用的主音频流的TS分组之中的一个提供给音频解码器8a进行切换的切换器。
[0329] 切换器10e是对于是否将由去复用器3a去复用的第二音频流的TS分组与由去复用器3b去复用的第二音频流的TS分组之中的一个提供给音频解码器8b进行切换的切换器。
[0330] 传输缓冲器(TB)11a是暂时在其中累积属于IG流的TS分组的缓冲器。
[0331] 交互图形(IG)解码器11b对从BD-ROM 100或者本地存储器200读出的IG流进行解码并将未压缩图形写入IG平面12中。
[0332] 交互图形(IG)平面11c是其中存储了构成了通过IG解码器11b的解码所获得的未压缩图形的像素数据的平面。
[0333] 传输缓冲器(TB)12a是在其中暂时累积属于textST流的TS分组的缓冲器。
[0334] 缓冲器(TB)12b是在其中暂时累积构成textST流的PES分组的缓冲器。
[0335] 对于从BD-ROM 100或者本地存储器200读出的textST流,基于文本的字幕解码器12c使用字符码将所呈现的字幕转换为位图,并将该位图写入PG平面13c中。由于存储在BD-ROM 100或者本地存储器200中的字体数据用于转换,对textST流进行解码需要预先读取这种字体数据。
[0336] 传输缓冲器(TB)13a是在其中暂时累积属于PG流的TS分组的缓冲器。
[0337] 呈现图形(PG)解码器13b对从BD-ROM 100或者本地存储器200读出的PG流进行解码,并将未压缩图形写入呈现图形平面14。通过PG解码器13b的解码,在屏幕上显示字幕。
[0338] 呈现图形(PG)平面13c是具有一个屏幕面积的存储器,其中存储了一个屏幕的未压缩图形。
[0339] 存储器21是用于在其中存储当前播放列表信息和当前片段信息的存储器。当前播放列表信息是在存储在BD-ROM中的多个播放列表信息之中的当前正在处理的播放列表信息。当前片段信息是在存储在BD-ROM/本地存储器中的多个片段信息之中的当前正在处理的片段信息。
[0340] 控制器22通过执行播放列表的重放来实现BD-ROM的重放控制(即,根据当前播放列表信息进行重放控制)。
[0341] PSR组23是内建在重放设备中的寄存器,其包括64个播放器设置/状态寄存器(PSR)以及4096个通用寄存器(GPR)。在播放器设置/状态寄存器(PSR)中设置的值(PSR)之中,PSR4到PSR8用于表示当前重放点。
[0342] PID转换单元24基于STN_table将存储在PSR组23中的流编号转换为PID查询值,并且将转换所得到的PID查询值通知给PID过滤器3b和3d。
[0343] 网络单元25实现重放设备的通信功能。当指定了URL时,通信单元25建立与该指定URL的网站之间的TCP连接或者FTP连接。这种连接的建立允许从网站进行下载。
[0344] 操作接收单元26接收用户在遥控器上进行的操作的指定,并向控制器22通知用于指示用户指定的操作的用户操作信息。采用该用户操作信息,指定用户希望选择的流的编号(编号x)。
[0345] 这样就结束了对播放设备的内部结构的描述。接下来描述播放设备的输出级的内部结构。图23示出了播放设备的输出级的结构。如图所示,播放设备的输出级包括:1-α3乘法单元15a、缩放与定位单元15b、α3乘法单元15c、加法单元15d、1-α1乘法单元15e、α1乘法单元15f、加法单元15g、1-α2乘法单元15h、α2乘法单元15i、加法单元15j、以及HDMI发送与接收单元16。
[0346] 1-α3乘法单元15a将构成存储在视频解码器4g中的未压缩数字画面的像素的亮度乘以传递系数(transmittance)1-α3。
[0347] 缩放与定位单元15b放大或者缩小(即,缩放)存储在视频平面5g中的未压缩数字画面,并改变位置(即定位)。该放大和缩小基于元数据的PiP_scale,位置的改变基于PiP_horizontal_position和PiP_vertical_position的。
[0348] α3乘法单元15c将构成已经由缩放与定位单元15b进行了缩放与定位的未压缩画面的像素的亮度乘以传递系数α3。
[0349] 乘法单元15d将通过由α3乘法单元15c将每个像素的亮度乘以传递系数α3而创建的未压缩数字画面与由1-α3乘法单元15a将每个像素的亮度乘以传递系数1-α3而创建的未压缩数字画面进行组合,从而获得合成画面。
[0350] 1-α1乘法单元15e将构成由乘法单元15d所创建的合成数字画面的像素的亮度乘以传递系数1-α1。
[0351] α1乘法单元15f将构成存储在呈现图形解码器13c中的压缩图形的像素的亮度乘以传递系数α1。
[0352] 乘法单元15g将通过由1-α1乘法单元15e将每个像素的亮度乘以传递系数1-α1而创建的未压缩数字画面与由α1乘法单元15f将每个像素的亮度乘以传递系数α1而创建的未压缩图形进行组合,从而获得合成画面。
[0353] 1-α2乘法单元15h将构成由乘法单元15g创建的数字画面的像素的亮度乘以传递系数1-α2。
[0354] α2乘法单元15i将构成存储在交互图形解码器1c中的未压缩图形的像素的亮度乘以传递系数α2。
[0355] 乘法单元15j将通过由1-α2乘法单元15h将每个像素的亮度乘以传递系数1-α2而创建的未压缩数字画面与由α2乘法单元15i将每个像素的亮度乘以传递系数α2而创建的未压缩图形进行组合,从而获得合成画面。
[0356] HDMI发送与接收单元16从经由HDMI(高清晰度多媒体接口)连接的另一设备接收关于该设备的信息,并将通过乘法单元15j的合成而获得的数字未压缩视频与由混合器9a所混合的音频数据一起发送给该经由HDMI连接的设备。
[0357] 这样就结束了对本实施例的重放设备的硬件结构的描述。接下来描述本实施例的重放设备的软件结构。
[0358] 在图24中功能性地示出了图22中的控制器22。图24功能性地示出了控制器22,如图所示,控制器22包括:播放列表处理单元41、过程执行单元42、PiP控制单元43和混合控制单元44。
[0359] 这些组件基于PSR组23来执行处理。以下解释PSR1、PSR14和PSR31。PSR的字长为32比特。构成PSR的一个字(32个比特)的各个比特数据的比特位置称为b0到b31。在此,PSR的最高有效比特称为b31,最低有效比特称为b0。
[0360]
[0361] 图25A示出了PSR14中的比特分配。
[0362] 如图所示,在PSR14的32个比特中的b8到b15表示第二视频流的流编号,标识在当前播放项的STN_table中写入了其条目的多个第二视频流中的一个。当在PSR14中设定的值改变时,重放设备播放与改变后的设定值相对应的第二视频流。PSR14的第二视频流的流编号设定为初始值“0xFF”,然后可以由重放设备设定为范围从“1”到“32”的值。值“0xFF”是未指定值,指示没有第二视频流或者还没有选择第二视频流。当PSR14被设定为范围为“1”到“32”的值时,该设定值被解释为第二视频流的流编号。
[0363] PSR14的b31是disp_v_flag,指示重放设备是否能够播放第二视频流(1b:能够进行第二视频的呈现;0b:不能进行第二视频的呈现)。在此,HDTV指的是分辨率为1920x1080的视频,或者分辨率为1280x720的视频,比特b31示出了重放设备是否能够解码该视频并输出所解码的视频。
[0364]
[0365] 图25B示出了在PSR29中的比特分配。
[0366] PSR29的b0是HD第二视频能力,指示重放设备是否能够播放50&25Hz的视频,即,采用50帧/秒模式的PAL格式视频流或者采用25帧/秒模式的PAL格式视频流(1b:能够播放HD第二视频),或者重放设备是否能够播放HDTV第二视频流(0b:不能播放HD第二视频)。
[0367] PSR29的b1是50&25Hz视频能力,指示重放设备是否能够播放50&25Hz的视频,即,PAL格式的视频流(1b:能够播放50&25Hz的视频;0b:不能播放50&25Hz的视频)。
[0368] 这样就结束了对PSR组23的描述。
[0369] 从现在开始,将描述播放列表处理单元41、过程执行单元42、和过程执行单元43。
[0370] 由于PiP控制单元43具有各种处理,因此在实施例2中给出了描述。混合控制单元44与本实施例的要点几乎没有关系,因此在实施例4中给出了解释。
[0371] <功能结构细节1:播放列表处理单元>
[0372] 播放列表处理单元41实现了PL重放。播放列表处理单元41播放在主视频流中与播放项的从In_time到Out_time的部分相对应的部分。与此同步地,播放列表处理单元41使视频解码器5b播放第二视频流中与子播放项信息的从Sub_PlayItem_In_time到Sub_PlayItem_Out_time的部分相对应的部分。
[0373] <功能结构细节2:过程执行单元42>
[0374] 当需要将一个播放项信息改变到另一个时,或者当用户改变流编号时,过程执行单元42执行预定的流选择过程,将新的第二视频流的流编号写入PSR14。重放设备根据写入到PSR14中的流编号来播放第二视频流。因此PSR14的设置使得能够选择一个第二视频流。
[0375] 为什么要在改变播放项信息时执行该流选择过程的原因如下。由于STN_Table是相对于每个播放项信息提供的,因此可能发生的是,根据一个播放项信息能够播放的第二视频流根据另一个播放项信息不能被播放。
[0376] 过程执行单元42在图26所示的状态中使得PSR14发生改变。图26示出了在PSR14中的第二视频流编号的状态改变。在该图中,术语“有效”表示PSR14的值等于或小于在播放项的STN_table中写入的条目数量,并且是可解码的。
[0377] 术语“无效”表示:(a)PSR14的第二视频流编号为“0”,(b)PSR14的第二视频流编号大于在播放项的STN_table中写入的条目数量,或者(c)即使是在播放项的STN_table中写入的条目数量在从“1”到“32”的范围之内时也不能进行解码。
[0378] 图26中的虚线框示意性地指示用于在状态改变时确定PSR的值的过程。用于将第二视频流编号设定给PSR14的过程包括“在重放状态改变时的过程”和“当要求流改变时的过程”。
[0379] “在重放状态改变时的过程”是在重放设备的状态由于在重放设备中发生的某些事件而发生了改变时要执行的过程。
[0380] “当要求流改变时的过程”是当用户要求改变流时要执行的过程。
[0381] “在重放状态改变时的过程”和“当要求流改变时的过程”是流选择过程,并且在以下参考流程图进行了详细描述。
[0382] 图26中的箭头示意性地示出了在PSR14中设定的第二视频流编号的状态改变。
[0383] 附加在箭头上的注释指示触发每个状态改变的事件。这就是说,图26指示了如果发生了诸如“加载盘”、“改变流”、“开始播放列表的重放”、“穿过播放项边界”或者“终止播放列表的重放”之类的事件,则发生在PSR14中的第二视频流编号的状态改变。通过参考图26,可以看到:当发生“无效->无效”或者“有效->无效”的状态改变时不执行上述过程。
另一方面,“无效->有效”或者“有效->有效”的状态改变经过该虚线框。这就是说,当在PSR14中的第二视频流编号被设定为“有效”时,执行上述的“在重放状态改变时的过程”或者“当要求流改变时的过程”。
[0384] 以下描述触发状态改变的事件。
[0385] 事件“加载盘”指示BD-ROM已经加载到重放设备中。在该加载时,在PSR14中的第二视频流编号被设定为未指定值(0xFF)一次。
[0386] 事件“开始播放列表的重放”指示基于播放列表的重放处理已经开始。当该事件发生时,执行“在重放状态改变时的过程”,并且将PSR14中的第二视频流编号设定为“有效”。
[0387] 事件“终止播放列表的重放”指示基于播放列表的重放处理已经结束。要理解的是,当该事件发生时,并不执行“在重放状态改变时的过程”,并且将PSR14中的第二视频流编号设定为“无效”。
[0388] 事件“改变流”指示用户要求改变流。如果在PSR14中的第二视频流编号为“无效”时该事件发生(图26中用“cj1”指示),则将PSR14设定为所要求的值。即使是这样所设定的值指示有效流编号,也会将PSR14中设定的值看作是“无效”值。这就是说,在由事件“改变流”所触发的状态改变中,PSR不会从无效变为有效。
[0389] 另一方面,如果在PSR14中的第二视频流编号为“有效”时发生“改变流”的事件(图26中用“cj2”指示),则执行“当要求流改变时的过程”,并将PSR14设定为新的值。在此,当执行“当要求流改变时的过程”时所设定的值可能不是用户想要的值。这是因为“当要求流改变时的过程”具有排除无效值的功能。如果在PSR14为“有效”时发生“改变流”的事件,则PSR14不会从有效变为无效。这是因为“当要求流改变时的过程”假设PSR14不会变为“无效”。
[0390] 事件“穿过播放项边界”指示已经经过了播放项的边界。在此,播放项边界是两个连续播放项之间的边界,即在两个连续播放项之间的、先前播放项的结尾与后续播放项的开始之间的位置。如果在PSR14中的第二视频流编号为“有效”时发生“穿过播放项边界”的事件,则执行“在重放状态改变时的过程”。在执行了“在重放状态改变时的过程”之后,PSR14的状态或者返回为“有效”,或者变为“无效”。由于STN_table是相对于每个播放项提供的,因此如果播放项改变了,则可播放的基本流也改变。状态改变的目的是通过在每次开始播放一个播放项时执行“在重放状态改变时的过程”,来将PSR14设定为对于每个播放项而言最适当的值。
[0391] 图27是示出第二视频流的“在重放状态改变时的过程”的处理过程的流程图。
[0392] 在步骤S51中,检查具有在PSR14中所设定的流编号的第二视频流是否满足以下条件(A)和(B):
[0393] 条件(A):根据视频格式和帧速率与HD第二视频能力或者50&25Hz视频能力之间比较,重放设备能够播放由存储在PSR14中的编号所指定的第二视频流。
[0394] 条件(B):第二视频流的SubPath_Type为“6(即,异步画中画)”。
[0395] “HD第二视频能力”指的是对HDTV视频流进行解码并将其输出以进行显示的能力,而“50&25Hz视频能力”指的是能够对50帧/秒或者25帧/秒画面序列进行解码并将其输出以进行显示的能力。另外,在STN_table中,视频格式和帧速率被写入到第二视频流的stream_attribute中。在PSR29的b0和b1中示出了是否具有HD第二视频能力和50&25Hz视频能力。针对在PSR29中的b1的值来检查在STN_table中的这些设置能够确定是否满足条件(A)。
[0396] 在执行了步骤S51之后,执行步骤S52和S53。
[0397] 步骤S52是判断步骤,用于判断STN_table中的当前播放项的第二视频流的流条目数量是否为0。在此,STN_table中的当前播放项的第二视频流的流条目数量为0意味着没有允许重放的第二视频流。当该数量为0时,则保持在PSR14中的第二视频流编号(步骤S53)。这是因为,只要在当前播放项中没有允许播放的第二视频流,就应该保持PSR14的当前值。
[0398] 步骤S54是判断步骤,其在步骤S53中判定STN_table中的第二视频流的流条目数量不为0时执行。在步骤S54中,判断以下:存储在PSR14中的编号x是否等于或小于在STN_table中的流条目总数量;以及具有编号x的第二视频流是否满足条件(A)。如果在步骤S54中为“是”,则通过执行以下所述的如图28的流程图中所示的过程来为当前播放项选择最适当的流(步骤S55)。
[0399] 如果步骤S54中为“否”,则执行步骤S56的判断步骤。该判断步骤是判断具有编号x的第二视频流是否满足条件(B)。当满足条件(B)时,在步骤S58中将PSR14设定为0xFE。值0xFE指示尽管在PSR14中的第二视频流编号是有效的,但是还没有选择第二视频流。如果在执行异步画中画时在PSR14中设定该值,则将响应于用户操作,执行“当要求流改变时的过程”。然而,如果PSR14的流编号是无效的,则即使是在执行用户操作时也不会执行“当要求流改变时的过程”,并且将不会播放第二视频流。为了避免发生这种情况,设计为在执行异步画中画时在PSR14中设定0xFE。
[0400] 当虽然没有满足条件(B)但是已经在PSR14中设定了有效的第二视频流编号时,保持该编号(步骤S57)。
[0401] 这样就结束了对于第二视频流的“在重放状态改变时的过程”的描述。
[0402] 图28是示出用于为当前播放项选择适合的流的处理过程的流程图。
[0403] 在步骤S61到S63中,对在STN_table中的所有流条目执行对于是否满足以下条件(a)和(b)的检查。
[0404] 条件(a):根据视频格式和帧速率与HD第二视频能力或者50&25Hz视频能力之间的比较,重放设备能够播放由存储在PSR14中的编号所指定的第二视频流。
[0405] 条件(b):第二视频流的SubPath_Type为“6(即,异步画中画)”。
[0406] 当对于在STN_table中所有允许重放的第二视频流都完成了这些检查时,过程执行单元42执行步骤S64。
[0407] 步骤S64是判断步骤,用于判断是否不存在满足条件(a)的第二视频流。如果在步骤S64中为“是”,则在PSR14中设定0xFFF作为第二视频流的流编号(步骤S65)。
[0408] 如果存在至少一个满足条件(a)的第二视频流,则步骤S64为“是”,并且执行步骤S66。在步骤S66中,判断在满足条件(a)的第二视频流中,在STN_table中按顺序排列的第一个第二视频流是否满足条件(b)。如果其满足条件(b),则在步骤S67中在PSR中设定0xFFF作为第二视频流的流编号。
[0409] 如果不满足条件(b),则从满足条件(a)的第二视频流中选出流条目在STN_table中排第一的第二视频流,并且将所选择的第二视频流的流编号设定在PSR14中(步骤S68)。通过该过程,就将对于当前播放项而言最适合的第二视频流存储在PSR14中。这样就结束了用于选择适合的流编号的选择过程。
[0410] 图29是示出第二视频流的“当要求流改变时的过程”的处理过程的流程图。
[0411] 假设在操作接收单元26上进行的用户操作指定了第二视频流编号x。在该情况下,在步骤S71中检查编号x的第二视频流是否满足以下条件(A)和(B)。
[0412] 条件(A):根据视频格式和帧速率与HD第二视频能力或者50&25Hz视频能力之间的比较,重放设备能够播放由存储在PSR14中的编号所指定的第二视频流。
[0413] 条件(B):第二视频流的SubPath_Type为“6(即,异步画中画)”。
[0414] 在完成这些检查之后,执行步骤S72的判断步骤。在步骤S72中,判断在STN_table中的用于当前播放项的第二视频流的流条目数量是否为0。在步骤S72中为“0”意味着不存在允许重放的流,并且保持在PSR14中的第二视频流编号(步骤S73)。
[0415] 当在步骤S72中不为“0”时,执行步骤S74的判断步骤。在步骤S74中,判断用户操作所指定的第二视频流编号x是否等于或小于在STN_table中的流条目的总数量以及该编号x是否满足条件(A)。如果其满足条件(A),则选择编号x所指定的流并将其设定在PSR14中(步骤S75)。
[0416] 当在步骤S74中为“否”时,执行步骤S76的判断步骤。该判断步骤是判断编号x是否为0xFF。在此,编号x“0xFF”是“委托编号(entrustment number)”,其表示将为当前播放项选择适合的第二视频流的选择决定留给重放设备进行判断。如果编号x不是0xFF,则保持存储在PSR14中的第二视频流编号(步骤S77)。如果编号x是0xFF,则开始从步骤S78到S80的循环处理。在该循环处理中,对在STN_table的流条目中写入的所有第二视频流检查是否满足以下条件。
[0417] 条件(a):根据采用视频格式和帧速率与HD第二视频能力或者50&25Hz视频能力之间的比较,重放设备能够播放由存储在PSR14中的编号所指定的第二视频流。
[0418] 在执行了该循环处理之后,在步骤S81中判断是否存在至少一个满足该条件(a)的第二视频流。如果其存在,则从满足条件(a)的第二视频流中选出其条目在STN_table中排第一的第二视频流,并且将所选择的第二视频流的流编号设定在PSR14中(步骤S82)。这样就结束了对于第二视频流的“当要求流改变时的过程”的描述。
[0419] 根据本实施例,即使是在记录在BD-ROM或者本地存储器中的第二视频流中存在不可播放的第二视频流,也存在一个选择,即,通过执行选择后续流的过程来使用“对于画中画,重放设备能够播放的视频”。因此,即使是第二视频的总尺寸彼此不同,并且重放设备之间在其播放第二视频的能力方面有所不同,也可以使重放设备播放某种类型的第二视频或者另一种第二视频,并执行画中画。
[0420] 实施例2
[0421] 本发明描述了使重放设备执行画中画的一种具体数据结构,以及根据该数据结构的重放设备的处理过程。使重放设备执行画中画的具体数据结构存在于图11和16中所示的mpls文件的内部结构中的扩展数据中,并且被称为PiP元数据(PiP_metadata)。图30示出了PiP元数据的内部结构。引导线hm1指示PiP元数据的内部结构的展开。如引导线hm1所示,PiP元数据包括:number_of_metadata_block_entries、n1个metadata_block_header、以及n2个PiP_metadata_block。
[0422] 引导线hm2指示metadata_block_header的内部结构的展开。即,这些metadata_block_header是从同一类结构中生成的多个实例,并且其每一个都具有与引导线hm2所示相同的内部结构。以下描述了构成metadata_block_header的每个字段。
[0423] ref_to_PlayItem_id[k]:
[0424] 这是用于指示要作为画中画目标的PlayItem[k]的PlayItem_id的字段。由ref_to_PlayItem_id[k]所指示的播放项的STN_table中必须存储ref_to_secondary_video_stream_id[k]的查询值(secondary_video_stream_id)。另外,在PiP_metadata()中的ref_to_PlayItem_id必须以查询值的升序进行重新排列。这是为了在当前播放项改变时,迅速地找到具有指定了改变后的播放项的ref_to_PlayItem_id的metadata_block_header。
[0425] ref_to_secondary_video_stream_id[k]:
[0426] 这是用于示出在由ref_to_PlayItem_id[k]所指的播放项的STN_table中所定义的多个secondary_video_stream_id中的、指示用于画中画重放的第二视频流的字段。该字段用于指定使用相关的PiP_metadata_block[k]()的第二视频流。更具体而言,通过参考secondary_video_stream_id能够查询到在STN_table中的stream_entry(),并且通过参考该流条目能够得到与PiP_metadata_block[k]()所使用的第二视频流相对应的子路径。
[0427] 注意,在此,在pip_metadata()中必须不能存在两个或更多的这样的对:该对的ref_to_PlayItem_id[k]与ref_to_secondary_video_stream_id[k]的值相同。
[0428] pip_timeline_type[k]:
[0429] 这指示Sync_Start_PTS_of_PlayItem在播放项时间轴上的映射点应该用作执行画中画的参考时刻,或者用作SubPlayItem_In_time的位置。
[0430] 当Pip_time_line_type = 1 时,pip_metadata_time_stamp使 用 由 ref_to_PlayItem_id[k]所指的播放项时间轴作为执行同步画中画时的基础。在该情况中,由ref_to_secondary_video_stream_id[k]所指定的子路径的SubPath_type必须被设定为5或者7。
[0431] 当Pip_time_line_type=1时,pip_metadata_time_stamp使用子路径时间轴作为执行异步画中画时的基础。在该情况中,由ref_to_secondary_video_stream_id[k]所指定的子路径的SubPath_type必须被设定为6。
[0432] 当Pip_time_line_type = 3 时,pip_metadata_time_stamp使 用 由 ref_to_PlayItem_id[k]所指的播放项时间轴作为执行异步画中画时的基础。在该情况下,由ref_to_secondary_video_stream_id[k]所指定的子路径的SubPath_type必须被设定为6。
[0433] 因此,通过理想地使用播放项侧或者子播放项侧中的任何一个作为基础,能够实现优选的画中画重放。
[0434] is_luma_key:
[0435] 当该标志为1时,根据upper_limit_luma_key而将luma_keying应用于相应的第二视频流。luma_keying是这样的处理:当构成第二视频流的每个画面包含物体和背景时,从该画面中提取出物体,并提供该物体用于与主视频进行合成。当将luma_keying应用于第二视频时,在实施例1中所示出的α3乘法单元15c的α3设定为0或1。当不采用luma_keying时,α3设定为1。
[0436] trick_playing_flag:
[0437] 这是示出内容提供商对于在主视频特技重放(trick playback)期间画中画的窗口是保持打开还是关闭的意图。该标志仅仅在同步画中画时变为有效。通过将该标志设定为0,内容提供商示出了使得在主视频特技重放期间画中画的窗口(PiP窗口)关闭的意图。在此,特技重放是由重放设备制造商针对每个重放设备定义的。例如,在一些重放设备中,
1.2x前进播放可以定义为不是特技播放,而2x后退播放或者更高的情况可以定位是特技重放。
[0438] upper_limit_luma_key:
[0439] 这是用于为luma_keying定义相应第二流的亮度(Y)上限的字段。当将主视频平面和第二视频平面相互置顶放置时,在画中画合成时对在第二视频平面上亮度(Y)值为0或更大但不超过upper_limit_luma_key的像素实现了完整传输。例如,当第二视频由人的图像和背景组成,并且希望仅仅使用该人的图像作为合成目标时,在upper_limit_luma_key中设定一个亮度值,使得在构成第二视频的多个像素中具有该亮度值或者更小亮度值的像素被看作是背景。
[0440] 接下来描述PiP_metadata_block的内部结构。引导线hm2指示PiP_metadata_block的结构的展开。如该引导线所示,PiP_metadata_block[1]包括:k个PiP_metadata_entry[1]到[k],以及number_of_pipmetadata_entries。
[0441] 引导线hm3指示PiP_metadata_entry的内部结构。即,这些PiP_metadata_entry是从同一类结构生成的多个实例,并且其每一个都具有相同的内部结构,并且包括:pip_metadata_time_stamp[i]和pip_composition_metadata()。
[0442] pip_metadata_time_stamp[i]:
[0443] 这是用于指示在其中pip_composition_metadata()为有效的时间间隔的开始点。
[0444] 除了最后一个pip_composition_metadata()之外,在第k个PiP_metadata_block[k]中 的 第i 个pip_composition_metadata()在 不 小 于 pip_metadata_time_stamp[i]且不大于pip_metadata_time_stamp[i+1]的时间间隔内变为有效。在PiP_metadata_block[k]()中的 最后 一个pip_metadata_time_stamp的 最后 一个 pip_composition_metadata(),在不小于最后一个pip_metadata_time_stamp且不大于由ref_to_secondary_video_stream_id[k]所指定的子路径的显示结束时间的时间间隔内变为有效。另外,在两个相邻pip_metadata_time_stamp之间的最小时间间隔为小于一秒。
[0445] pip_composition_metadata()包括以下字段:
[0446] pip_horizontal_position[i]:
[0447] 该字段指示第二视频流左上角像素在主视频平面上的水平位置。当用video_width表示视频平面的水平宽度时,由pip_horizontal_position指定的水平位置的范围从0到video_width-1。
[0448] pip_vertical_postion[i]:
[0449] 该字段指示第二视频流左上角像素在主视频平面上的垂直位置。当用video_Height表示视频平面的垂直宽度时,由pip_vertical_postion指定的垂直位置的范围从0到video_height-1。图31示出了pip_horizontal_position和pip_vertical_postion在视频平面上采用的坐标。该图示出了一个坐标系统,其中,图像的左上角为原点,x轴和y轴的正方向在图中分别为向右和向下。在该坐标系统中,PiP_horizontal_position表示x坐标,PiP_vertical_postion表示y坐标。
[0450] pip_scale[i]:
[0451] 这是用于指示第二视频的缩放类型的字段。缩放类型如下:
[0452] 0:重置
[0453] 1:不缩放(x1)
[0454] 2:1/2缩放(x1/2)
[0455] 3:1/4缩放(x1/4)
[0456] 4:1.5x缩放(x1.5)
[0457] 5:全屏缩放
[0458] 以下描述在pip_timeline_type和pip_metadata_time_stamp之间的关系。
[0459] pip_timeline_type[k]=1
[0460] 在该情况下,对于从SubPlayItem_In_Time在由ref_to_PlayItem_id[k]所指的播放项时间轴上的映射点开始并且对应于子播放项的时间长度的时间长度,画中画变为有效。在情况下,PiP_metadata_time_stamp以45KHz的时间精度表示在画中画的有效时间段内的任何一个时间点。在此,将pip_metadata_time_stamp[0]放置在通过将SubPlayItem_In_Time映射到由ref_to_PlayItem_id[k]所指的播放项时间轴上所得到的映射点上。
[0461] 图32示出了当PiP_time_line_type=1时,如何将PiP_metadata_time_stamp放置在该时间轴上。在该图中,层次3示出了子播放项时间轴,层次2示出了播放项时间轴。层次1示出了构成主视频的多个画面。
[0462] 在此假设第二视频是购物视频并且提供对在主电影中出现的演员所穿的衣服的销售。在此,屏幕的左侧是在播放项时间轴上的时间点t1处是空白的,屏幕的右侧在时间点t2处是空白的。在此情况下,将PiP_metadata_time_stamp[i]设定为t1,并且将PiP_horizontal_position[i]和PiP_vertical_postion[i]设定为屏幕的左侧。另外,将PiP_metadata_time_stamp[i+1]设定为t2,并且将PiP_horizontal_position[i+1]和PiP_vertical_postion[i+1]设定为屏幕的右侧。
[0463] 以此,将在时间点t1和t2处在空白中显示购物视频。当pip_time_line_type=1时,能够通过将第二视频显示在其不会打断主电影的观看的位置处来按照主电影的画面放置第二视频。
[0464] pip_timeline_type[k]=2
[0465] 图33示出了在PiP_time_line_type=2时如何将PiP_metadata_time_stamp放置在时间轴上。图中的层次1、2和3与图32中的相同。
[0466] 对于从图中层次3子路径时间轴上的SubPlayItem_In_Time开始并且对应于子播放项的时间长度的时间长度内,画中画变为有效。PiP_metadata_time_stamp以45KHz的时间精度表示在画中画的有效时间段内的任何一个时间点。在此,将pip_metadata_time_stamp[0]放置在子播放项时间轴上由In_Time所指定的时间点处。
[0467] 将PiP_metadata_time_stamp[0]放置在子路径时间轴上的原因是:当在第二视频中绘制的事物是希望从屏幕左侧移动到右侧的运动物体时,定义运动轨迹。这是因为这种运动轨迹能够与主电影的画面无关地进行定义。因此,将PiP_metadata_time_stamp[0]放置在子路径信息的重放轴上。
[0468] 在图33中,假设PiP_metadata_time_stamp[i]指示在子播放项时间轴上的t1,并且PiP_horizontal_position[i]和PiP_vertical_postion[i]指示屏幕的左上部分。另外,PiP_metadata_time_stamp[i+1]指示在子播放项时间轴上的t2,并且PiP_horizontal_position[i+1]和PiP_vertical_postion[i+1]指示屏幕的右下部分。
[0469] 在该情况下,在子播放项时间轴上由PiP_metadata_time_stamp[i]所指示的时刻处,在屏幕的左上部分处显示第二视频。然后在子播放项时间轴上由PiP_metadata_time_stamp[i+1]所指示的时刻处,在屏幕的右下部分处显示第二视频。在此,在Sync_Start_PTS_of_PlayItem 为0xFFF 的情况下,将Sync_Start_PTS_of_PlayItem理解为是在用户执行锁定操作时的点。因此,如果用户执行锁定操作,则将顺序地显示第二视频。以此,能够实现这样的屏幕效果:在第二视频中绘制的物体(图中的流星)响应于用户的操作而在主视频中四处移动。
[0470] pip_timeline_type[k]=3
[0471] 在由ref_to_PlayItem_id[k]所指的播放项时间轴上从PlayItem_In_Time处开始并在PlayItem_Out_Time处结束的时间段内,画中画变为有效。PiP_metadata_time_stamp以45KHz的时间精度表示在画中画的执行时间段内的任何一个时间点。在此,将pip_metadata_time_stamp[0]放置在由ref_to_PlayItem_id[k]所指的PlayItem_In_Time处。
[0472] 图34示出了当PiP_time_line_type=3时,如何将PiP_metadata_time_stamp放置在时间轴上。在图中的每个层次都与图32中的相同。另外,在主视频中的空白位置与图32中的相同。当pip_timeline_type[k]=3时,将PiP_metadata_time_stamp[0]放置在由播放项时间轴原点所指示的时间点处,即由In_Time所指示的时间点。因此,可以通过使用基于播放项时间轴原点的坐标表示t1并将t1设定给PiP_metadata_time_stamp[i],同时使用基于播放项时间轴原点的坐标表示t2并将t2设定给PiP_metadata_time_stamp[i],来实现与图32相同的屏幕效果。如果PiP_time_line_type设定为3,则由基于播放项时间轴原点的坐标来定义应该执行画中画的时间段。
[0473] 这样就结束了对本实施例的记录介质的改进。接下来描述在本实施例的重放设备中的改进。在本实施例的重放设备中的改进是:PiP控制单元43基于metadata_block_header和PiP_metadata_block执行重放控制。图35和36是示出基于画中画的重放控制过程的流程图。以下参考这些流程图描述重放控制。
[0474] 步骤S91形成了一个事件等待循环,其等待选择过程的执行。当执行该过程时,步骤S91为“是”,并且将执行从步骤S92开始的处理。在步骤S92中,判断是否存在将当前播放项指定为ref_to_PlayItem_id并且将与在PSR14中的第二视频流编号相对应的PID指定为Ref_to_secondary_video_stream_id的metadata_block_header。
[0475] 如果存在,则将该metadata_block_header设定为当前的metadata_block_header(步骤S93)。步骤S94到S96用于根据metadata_block_header的PiP_time_line_type的值,来选择性地执行步骤S97、S98和S99。当metadata_block_header的PiP_time_line_type为1时,步骤S94为“是”,并且将PiP_metadata_block.PiP_metadata_time_stamp[0]放置在Sync_Start_PTS_of_PlayItem在播放列表重放时间轴上的映射点处(步骤S97)。
[0476] 当metadata_bloc_header的PiP_time_line_type为2时,步骤S95 为“是”,将PiP_metadata_block.PiP_metadata_time_stamp[0]放置在子播放项时间轴上的SubPlayltem.In_Time处。(步骤S98)
[0477] 当metadata_block_header的PiP_time_line_type为3时,步骤S96为“是”,将PiP_metadata_block.PiP_metadata_time_stamp[0]放置在Playltem.In_Time处(步骤S99)。
[0478] 在步骤S100中,基于PiP_metadata_time_stamp[0]的位置将PiP_metadata_time_stamp[0][1]...[n]转换为STC时间轴上的坐标。随后,开始步骤S101到S105的循环处理。在该循环处理中的计数器变量是变量i,其在步骤S101中被初始化为“0”。在每次执行步骤S103和S104时,在步骤S105中将计数器变量累加1。
[0479] 步骤S103用于判断当前重放时间点(当前呈现时间(PTM))是否已经到达了PiP_metadata_block.PiP_metadata_time_stamp[i]。当当前PTM到达该点时,命令α3乘法单元15c和加法单元15d在由(PiP_horizontal_position和PiP_vertical_postion)所指示的坐标处、以由PiP_scale[i]所指示的尺寸、显示由metadata_block_header.Ref_to_secondary_video_stream_id所指示的第二视频(步骤S104)。
[0480] 在此,如果metadata_block_header的is_luma_key:设定为1,则命令α3乘法单元15c和加法单元15d使得亮度(Y)值为0或更大但是不超过upper_limit_luma_key的像素在画中画的合成时具有完整的传输。以此,能够从第二视频中仅仅提取出人的图像,并将所提取的图像与主视频进行组合。
[0481] 结束该循环处理的必要条件是在步骤S102中获得i=number_of_pip_metadata_entries-1。除非满足该必要条件,否则步骤S103到S105的处理将会重复进行。
[0482] 当要在播放列表信息的中间开始特殊重放并且当前执行的画中画是同步PiP时,检查内容提供商对于在主视频的特殊重放过程中PiP的窗口是否保持打开还是关闭的意图。当该标志为0时,内容提供商意欲关闭PiP窗口,从而该窗口被关闭。当该标志为1时,内容提供商意欲保持PiP窗口打开,该窗口保持打开。
[0483] 因此,根据本实施例,基于PiP_time_line_type判断主路径时间轴和子路径时间轴中哪一个要用作开始画中画的参考。因此,可以在重放设备的操作上,反应创作开发者对于是按照主视频的画面来决定第二视频位置还是响应于用户操作而移动第二视频的意图。
[0484] 实施例3
[0485] 本实施例涉及的改进是:多个第二视频流与子播放项一对一地相关联,并且根据子播放项来定义一个画中画重放路径。
[0486] 在该情况下,一个子播放项的重放部分的长度可以比相应播放项的重放部分的长度短。因此,在子路径中的连续的子播放项在时间上不能交叠。即使是在播放项之间存在边界,子播放项也不能交叠。另一方面,允许子路径中的连续的子播放项之间具有时间间隙。这种时间间隙是3秒或者更长。
[0487] 图37示出了由一个播放项组成的主路径与由两个子播放项组成的子路径之间的关系。层次1示出了构成主视频流的多个视频呈现单元。层次2示出了多个组,其每一个都包括sync_PlayItem_id和sync_start_PTS_of_PlayItem。层次3示出了子片段时间轴,层次4示出了子播放项的In_Time和Out_Time。层次5示出了构成第二视频流的多个视频呈现单元。
[0488] 层次2中的多组sync_PlayItem_id与sync_start_PTS_of_PlayItem指定了SubPlayItem_IN_times在主路径时间轴上进行同步的时刻。
[0489] 在层次5中的由SubPlayItem_IN_times所指示的第二视频的视频呈现单元vp1和vp2,与由sync_start_PTS_of_PlayItem所指示的主视频的视频呈现单元vp3和vp4分别位于主路径时间轴上的相同的时间点上。
[0490] 在层次3中的子路径时间轴上定义了两个子播放项(子播放项#1和#2)。在此,在子路径时间轴上,在子播放项#1的Out_Time与子播放项#2的In_Time之间可能存在时间间隙(在图中所示的时间间隙)。如果在一个子路径中的连续的子播放项无时间间隙地相互连接,则子播放项的连接状态必须用sp_connection_condition来表示。
[0491] 在图37中,在两个或更多个的如层次3中所示的子播放项之间具有3秒的时间间隙,因此不会将过多的用于控制第二视频流的负载加到控制器22上。已经为子路径时间轴进行了这种考虑,可以基于实现基于两个连续的子播放项执行子片段重放且不会增加重放设备的操作时钟。
[0492] 这样就结束了在本实施例的记录介质中的改进。接下来描述在本实施例的重放设备中的改进。
[0493] 本实施例的重放设备中的改进是播放列表处理单元41执行如图38、39和40所示的流程图的处理过程。
[0494] 图38是示出基于播放列表信息的重放过程的流程图。该流程图示出了一个循环结构,在该结构中,读入构建该播放列表信息的.mpls文件(步骤S11),将在播放列表信息开始处的播放项设定为当前播放项(步骤S12),并且对当前播放项重复步骤S13到S25。该循环结构以步骤S23作为结束条件。播放列表处理单元41命令BD-ROM驱动器读取与当前播放项的In_Time到Out_Time相对应的访问单元(步骤S13),判断在当前播放项中是否存在先前播放项(步骤S14),并根据该判断结果选择性地执行步骤S15或者步骤S16到S21的处理。更具体而言,如果当前播放项不具有先前播放项(步骤S14:否),则播放列表处理单元41命令解码器执行从PlayItem_In_Time到PlayItem_Out_Time的重放(步骤S15)。
[0495] 如果当前播放项具有先前播放项(步骤S14:是),则播放列表处理单元41判断在当前播放项的连接状态字段中的值是否为5(cc=5)(步骤S16)。当cc=5时(步骤S16:是),播放列表处理单元41执行步骤S17到S20的处理。
[0496] 当以上的先前播放项存在时,切换主视频中的ATC序列。为了该ATC序列的切换,播放列表处理单元41计算主片段的偏移值,其被称为ATC_delta1(步骤S17),并通过将该ATC_delta1加到原始ATC序列的ATC值(ATC1)上来获得新的ATC序列的ATC值(ATC2)(步骤S18)。
[0497] 另外,当以上的先前播放项存在时,切换主视频中的STC序列。为了该STC序列的切换,播放列表处理单元41计算被称为STC_delta1的偏移值(步骤S19),并通过将该STC_delta1加到原始STC序列的STC值上来获得新的STC序列的STC值(STC2)(步骤S20)。
[0498] 在播放列表处理单元41命令音频解码器9消除音频重叠(audioOverlap)之后,命令解码器执行从PlayItem_In_Time到PlayItem_Out_Time的重放(步骤S21)。在当前播放项不是cc=5时,播放列表处理单元41执行cc=1和cc=6的处理。
[0499] 在执行了步骤S15的处理和步骤S16到S21的处理之中的任何一个处理之后,播放列表处理单元41执行步骤S22和S23。
[0500] 在步骤S22,播放列表处理单元41判断是否存在与当前播放项同步的子播放项且当前重放点(当前PTM(呈现时间))已经到达该子播放项与下一个子播放项之间的边界。如果步骤S22为“是”,则播放列表处理单元41执行图39中流程图的步骤S30。
[0501] 在步骤S23中,播放列表处理单元41判断在AV片段时间轴上的当前PTM是否已经到达当前播放项的Out_Time。
[0502] 如果步骤S23为“是”,则播放列表处理单元41移动到步骤S24。在步骤S24中,播放列表处理单元41判断当前播放项是否是播放列表信息中的最后一个播放项。如果其不是最后一个播放项,则播放列表处理单元41使播放列表信息中的下一个播放项成为当前播放项(步骤S25),并经由步骤S26移动到步骤S13。根据上述处理,对播放列表信息中的所有播放项都执行步骤S13到S24的处理。
[0503] 图39是示出子播放项的无缝连接的处理过程的流程图。
[0504] 当在步骤S26中按照播放项的切换选择了一个新的第二视频流时,播放列表处理单元41在步骤S30中选择与该新的第二视频流相对应的子播放项。
[0505] 随后,在步骤S31中,播放列表处理单元41将在步骤S30中所选择的子播放项设定为当前子播放项。
[0506] 然后,播放列表处理单元41对当前子播放项执行步骤S32到S41的处理。首先,播放列表处理单元41命令本地存储器200读取与子播放项的In_Time到Out_Time相对应的访问单元(步骤S32)。然后播放列表处理单元41判断当前播放项是否具有先前子播放项(步骤S33),并基于该判断结果选择性地执行步骤S34和S35的处理或者步骤S36到S41的处理。更具体而言,如果当前播放项不具有先前子播放项(步骤S33:否),则播放列表处理单元41进行等待,直到当前PTM已经到达Sync_Start_Pts_of_PlayItem(步骤S34)。当其已经到达Sync_Start_Pts_of_PlayItem时,播放列表处理单元41命令解码器执行从SubPlayItem_In_Time到SubPlayItem_Out_Time的重放(步骤S35)。
[0507] 如果当前播放项具有先前子播放项(步骤S33:是),则播放列表处理单元41判断是否当前播放项为SP_CC=5(步骤S36)。当SP_CC=5(步骤S36:是)时,播放列表处理单元41执行步骤S37到S41。
[0508] 在当前播放项具有先前子播放项时,切换ATC序列。为了该ATC序列的切换,播放列表处理单元41计算主视频的偏移值,其被称为ATC_delta2(步骤S37),并通过将该ATC_delta1加到原始ATC序列的ATC值(ATC1)上来获得新的ATC序列的ATC值(ATC2)(步骤S38)。
[0509] ATC_delta指的是一个偏移值,该偏移值表示从最初已经读出的传输流(TS1)的最后一个TS分组的输入时间点T1到最新读出的传输流(TS2)的最后一个TS分组的输入时间点T2的偏移量。ATC_delta满足“ATC_delta≥N1/TS_recording_rate”,其中,N1是随着TS1的最后一个视频PES分组之后的TS分组数量。
[0510] 另外,当存在以上的先前播放项时,切换STC序列。为了该STC序列的切换,播放列表处理单元41计算STC_delta2(步骤S39),并通过将该STC_delta2加到原始STC序列的STC值上来获得新的STC序列的STC值(STC2)(步骤S40)。
[0511] 假设在该先前STC序列中最后播放的画面的显示开始时间为PTS1(1stEND),该画面的显示时间段为TPP,并且在随后的STC序列中最初显示的画面的开始时间为PTS2(2ndSTART)。在此,对于cc=5,由于必须将PTS1(1stEND)+TPP的时刻与PTS2(2ndSTART)的时刻进行匹配,因此通过以下公式能够计算STC_delta2:
[0512] STC_delta2=PTS1(1stEND)+TPP-PTS2(2ndSTART)
[0513] 在播放列表处理单元41命令音频解码器9消除音频重叠之后,命令解码器执行从PlayItem_In_Time到PlayItem_Out_Time的重放(步骤S41)。
[0514] 控制器22执行如上所述的STC切换处理,并且该处理是在解码器处于自由运行状态时采用普通实现在重放设备中执行的。自由运行状态指的是解码器不执行同步控制的状态。随后,当STC返回到能够设置STC时间轴的状态时,解码器从自由运行状态转换到进行与STC的同步控制。另一方面,当在步骤S36中判定当前播放项不是cc=5时(步骤S36:否),播放列表处理单元41执行cc=1和cc=6的处理。
[0515] 图38的步骤S26是判断步骤,用于判断是否按照播放项的切换选择了新的第二视频流。当步骤S26为“是”时,播放列表处理单元41执行图40的步骤S45到S47。
[0516] 在步骤S45到S47中,重放从一个播放项中两个连续子播放项中的一个子播放项切换到另一个子播放项,并且播放列表处理单元41在该切换之后将该子播放项设定为当前子播放项(步骤S45)。
[0517] 然后,播放列表处理单元41命令本地存储器200读取与当前子播放项的In_Time到Out_Time相对应的访问单元(步骤S46),并且命令解码器执行当前SubPlayItem_In_Time到当前SubPlayItem_Out_Time的重放(步骤S47)。
[0518] 因此,根据本实施例,在一个播放项中的当前子播放项与先前子播放项之间提供了时间间隙,因此在子播放项之间的边界不需要步骤S37到S41的无缝连接处理过程。从而,能够减少要执行的无缝连接过程的数量,这就消除了以高时钟频率操作重放设备的需求,并导致能够以低成本制造重放设备。
[0519] 实施例4
[0520] 本实施例涉及如何实现画中画中的音频重放。音频重放是在播放列表中的STN_table中指定的。以下描述在STN_table中的用于音频的流条目。将以上所述的主音频流和第二音频流分别分配给主视频流和第二视频流。即,将主音频流用作主视频流的音频源,将第二音频流用作第二视频的音频源。在STN_table中的流条目定义了允许重放用于主视频流和第二视频流的音频中的哪一个。
[0521] 图41示出了Primary_audio_stream_entry和Secondary_audio_stream_entry的内部结构以及Comb_info_Secondary_video_Secondary_audio的内部结构。图中的引导线ha1和ha2指示Primary_audio_stream_entry和Secondary_audio_stream_entry的内部结构的展开。这些内部结构是相同的并且都包括stream_entry(流条目)和stream_attribute(流属性)。
[0522] 引导线ha3示出了stream_entry的内部结构的展开。如该引导线所示,主/第二音频流的stream_entry包括“ref_to_Sub_Path_id”,指示关于第二音频流的子路径信息;“ref_to_Sub_Clip_entry_id”,指定主/第二音频流要被多路复用到其中的子片段;以及“ref_to_stream_PID_of_Sub_Clip”,指示构成主/第二音频流的PES分组的PID的查询值。
[0523] 引导线ha1指示stream_attribute的内部结构的展开。如该引导线所示,主/第二音频流的stream_attribute包括:“stream_coding_type”,指示音频流的编码系统;“audio_presentation_type”,指示相应音频流的声道结构;“Sampling_frequency”,指示相应音频流的采样频率;以及“audio_language_code”,指示音频流的语言属性。
[0524] 如引导线ha5所示,第二视频流的stream_entry具有Comb_info_Secondary_video_Secondary_audio,作为与第二音频流相对应的信息。
[0525] 引导线ha6示出Comb_info_Secondary_video_Secondary_audio的内部结构的展开。Comb_info_Secondary_video_Secondary_audio包括:“number_of_Secondary_audio_stream_ref_entries”,指示每一个都能与第二视频流进行组合的第二音频流的总数量;以及“Secondary_audio_stream_id_ref[0]到[n]”,指示要被组合用于第二视频流的重放的第二音频流的流编号。
[0526] 因此,能够看到,STN_table包括用于作为主视频流的音频的主音频流的流条目和用于作为第二视频流的音频的第二音频流的流条目。另外,在第二视频流的流条目中,相对于每个第二视频流描述都要与第二视频流进行组合的每个第二音频流(Comb_info_Secondary_video_Secondary_audio)。
[0527] 这样就结束了记录介质的用于音频流重放的特征的描述。以下描述重放设备的用于音频流重放的特征。
[0528] 对于音频重放,在重放设备中,将当前主音频流的流编号和当前第二音频流的流编号分别存储在PSR组23中。
[0529]
[0530] 图42A示出了在PSR1中的比特分配。
[0531] 如图42A所示,在PSR1的32个比特中的低8个比特(b0-b7)表示流编号,标识在当前播放项的STN_table中写入了其条目的多个主音频流之一。当在PSR1中设定的值改变时,重放设备播放与改变后的值相对应的主音频流。PSR1被设定为初始值“0xFF”,然后可以由重放设备设定为范围从“1”到“32”的值。值“0xFF”是未指定值,指示没有主音频流或者还没有选择主音频流。当PSR1被设定为范围为“1”到“32”的值时,该设定值被解释为主音频流的流编号。
[0532]
[0533] 图42B示出了PSR14中的比特分配。
[0534] 如图42B所示,在PSR14的32个比特中低8个比特(b0-b7)表示流编号,标识在当前播放项的STN_table中写入了其条目的多个第二音频流中的一个。当在PSR14中设定的值改变时,重放设备播放与改变后的设定值相对应的第二音频流。PSR14被设定为初始值“0xFF”,然后可以由重放设备设定为范围从“1”到“32”的值。值“0xFF”是未指定值,指示没有第二音频流或者还没有选择第二音频流。当PSR14被设定为范围为“1”到“32”的值时,该设定值被解释为第二音频流的流编号。
[0535] 由过程执行单元42对这些第二音频流编号进行设定和更新。在PSR14中的第二音频流编号示出了由过程执行单元42进行的、如图43所示的状态转换。图43示出了在PSR14中的第二音频流编号的状态转换。在该图中,术语“有效”表示PSR14的值等于或小于在播放项的STN_table中写入的条目数量,是可编码的。
[0536] 术语“无效”表示:(a)PSR14的第二音频流编号为“0”,(b)PSR14的第二音频流编号大于在播放项的STN_table中写入的条目数量,或者(c)即使是在播放项的STN_table中写入的条目数量在从“1”到“32”的范围之内时也不能进行解码。
[0537] 图43中的虚线框示意性地指示用于在状态改变时确定PSR的值的过程。用于设定PSR的过程包括“在重放状态改变时的过程”和“当要求流改变时的过程”。这些过程与用于实施例1中的第二视频流的过程相同。
[0538] 状态转换由诸如“加载盘”、“改变流”、“开始播放列表的重放”、“穿过播放项边界”或者“终止播放列表的重放”之类的事件触发。这些事件也与用于实施例1中的第二视频流的事件相同。
[0539] 以下描述第二音频流的“在重放状态改变时的过程”的过程。
[0540] 图44是示出了第二音频流的“在重放状态改变时的过程”的处理过程的流程图。在步骤S111中,过程执行单元42从PSR14获得第二音频流编号,并且在步骤S112中判断所获得编号的第二音频流是否满足以下条件(A)。
[0541] 条件(A):根据在Comb_info_Secondary_video_Secondary_audio中所指定的第二音频流编号与从PSR14获取的第二音频流编号之间的比较,允许将具有该编号的第二音频流与当前第二视频流进行组合。
[0542] 在该判断之后,过程执行单元42执行步骤S113。步骤S113是判断步骤,用于判断当前播放项的第二音频流的流条目数量是否为0。当在STN_table中的流条目数量为0时,过程执行单元42保持在PSR14中的第二音频流编号(步骤S116)。如果在STN_table中的流条目数量不是0,则过程执行单元42执行步骤S114的判断。
[0543] 在步骤S114中,过程执行单元42判断该第二音频流编号是否等于或者小于在当前播放项的STN_table中的流条目数量,以及具有该编号的第二音频流是否满足条件(A)。如果在步骤S114中为“否”,则认为在PSR14中存在有效第二音频流的编号,并且保持该编号(步骤S117)。如果在步骤S114中为“是”,则过程执行单元42为当前播放项选择适合的第二音频流(步骤S115)。
[0544] 这样就结束了对第二音频流的“在重放状态改变时的过程”的描述。
[0545] 图45是示出了用于为当前播放项选择适合的第二音频流的过程的流程图。
[0546] 在步骤S121到S123中,过程执行单元42检查在STN_table的流条目中所写入的所有流是否满足以下条件。
[0547] 条件(a):根据在Comb_info_Secondary_video_Secondary_audio中所指定的第二音频流编号与第二音频流编号i之间的比较,允许将第二音频流i与当前第二视频流进行组合。
[0548] 条件(b):当前主音频流的audio_language_code与第二音频流的audio_language_code匹配。
[0549] 当对在STN_table中的所有允许重放的第二音频流完成了这些检查之后,过程执行单元42执行步骤S124。
[0550] 步骤S124是判断步骤,用于判断是否不存在满足条件(a)的第二音频流。如果在步骤S124中为“是”,则在PSR14中设定0xFF作为第二音频流的流编号(步骤S125)。
[0551] 当存在满足条件(a)的第二音频流时,过程执行单元42执行步骤S126的判断。步骤S126用于判断是否存在至少一个满足条件(a)和(b)两者的第二音频流。如果在步骤S126中为“是”,则过程执行单元42从满足条件(a)和(b)的流中选择一个其相应的流条目位于STN_table顶部的流,并且将所选择的第二音频流的流编号设定在PSR14中(步骤S127)。
[0552] 当没有满足条件(a)和(b)的第二音频流时,过程执行单元42执行步骤S128的判断。S128用于判断是否存在一个或多个满足条件(a)的第二音频流。当在步骤S128中为“是”时,过程执行单元42从满足条件(a)的第二视频流中选择一个其相应的流条目在STN_table中排第一的流,将所选择的第二音频流的流编号设定在PSR14中(步骤S129)。
[0553] 这样就结束了对用于选择适合的第二音频流的过程的描述。
[0554] 图46是示出第二音频流的处理过程的流程图。
[0555] 在步骤S131中,过程执行单元42检查与用户操作相对应的编号(编号x)所指定的第二音频流是否满足条件(A)。
[0556] 条件(A):根据在Comb_info_Secondary_video_Secondary_audio中所指定的第二音频流编号与由编号x所确定的第二音频流编号之间的比较,允许将具有该编号x的第二音频流与当前第二视频流进行组合。
[0557] 如果满足条件(A),则过程执行单元42执行步骤S132的判断。步骤S132用于判断该编号x是否等于或者小于在STN_table中的流条目的总数量,以及与该编号x相对应的第二音频流是否满足条件(A)。当在步骤S132中为“是”时,过程执行单元42选择由该编号x所确定的第二音频流,并将编号x设定在PSR14中(步骤S142)。如果步骤S132中为“否”,则过程执行单元42执行步骤S133的判断。步骤S133用于判断编号x是否为0xFF。“0xFF”的意思与实施例1中的编号x的意思相同,即“委托编号”。如果编号x不是0xFF,则过程执行单元42保持PSR14中的当前第二音频流编号(步骤S143)。
[0558] 如果编号x是0xFF,则过程执行单元42在步骤S134到S136中检查在STN_table的流条目中所写入的所有第二音频流是否满足以下条件,从而为当前重放项选择适合的第二音频流。
[0559] 当待检查的第二音频流是第二音频流i时,按如下指定条件(a)和(b)。
[0560] 条件(a):根据在Comb_info_Secondary_video_Secondary_audio中所指定的第二音频流编号与第二音频流编号i之间的比较,允许将第二音频流i与当前第二视频流进行组合。
[0561] 条件(b):当前主音频流的audio_language_code与第二音频流的audio_language_code匹配。
[0562] 在执行了该循环处理之后,过程执行单元42执行步骤S137的判断。步骤S137用于判断是否存在至少一个满足条件(a)和(b)的流。当在步骤S137中为“是”时,过程执行单元42从满足条件(a)和(b)的第二音频流中选择一个其相应的流条目在STN_table中排第一的流,并将所选择的第二视频流的流编号设定在PSR14中。
[0563] 如果在步骤S137中为“否”,则过程执行单元42在步骤S139中判断是否存在一个或多个满足条件(a)的第二音频流。当在步骤S139中为“是”时,过程执行单元42在步骤S140中从满足条件(a)的第二音频流中选择一个其相应的流条目在STN_table中排第一的流,并将所选择的第二视频流的流编号设定在PSR14中。如果步骤S139中为“否”,则过程执行单元42保持PSR14中的第二音频流编号(步骤S141)。
[0564] 这样就结束了对第二音频流的“当要求流改变时的过程”的描述。
[0565] 这样就结束了对本实施例的过程执行单元42所执行的过程的描述。以下描述混合控制单元45,其是音频流重放的功能部件。
[0566] 混合控制单元45控制混合器9a来将音频解码器8a的主音频流的重放输出和音频解码器8b的第二音频流的重放输出进行混合。
[0567] 当在播放项时间轴中的当前重放时间点在子播放项信息的从In_time到Out_time的期间内时,并且在当前播放项信息中的STN_table中将第二音频流设定为“允许重放”时,混合控制单元45控制混合器9a来将音频解码器7a的重放输出与音频解码器7b的重放输出进行混合,因为音频解码器7b正在对具有存储在PSR14中的流编号的第二音频流进行解码。
[0568] 如果主音频流的属性为“环绕”,则能够在执行缩混(downmixing)之后混合第二音频流的重放输出,以使得在诸如L、R、C、LS、RS、LR、RR和LFE之类的分量中仅仅保持所希望的分量。在此,在第二音频流是例如电影导演的解说时,通过将要与第二音频流进行混合的主音频流的声道从L改变为C并改变为R,可以给予用户好像导演在该用户周围走动的感觉。这种混合称为移位(panning)。在移位中,使用声道数量比主音频流少的第二音频流(例如单声道)的声音/语音。
[0569] 因此,根据本实施例,在STN_table中定义了用于主视频流的主音频流与用于第二视频流的第二音频流之间的允许重放的组合。因此,通过从来自STN_table中的流条目的主音频流和第二音频流的每一个中选择一个来执行所述混合。由此,在实现画中画时,可以在将电影导演的解说添加到主电影音频中位置处提供合成音频。
[0570] 例如,假设第二视频是这样的视频:其中,仅仅出现了导演和/或演员,并且他们在动作,例如,就好像指向主视频的视频内容。通过将视频内容的第二视频与在画中画中的电影导演的解说的第二视频进行组合,可以实现逗笑的屏幕效果,其中,电影导演和/或者演员在给出解说的同时指向在电影重放视频中的内容。
[0571] 实施例5
[0572] 本实施例涉及在画中画字幕重放中的改进。字幕重放是在播放列表信息中的STN_table中指定的。以下描述在STN_table中用于字幕的流条目。尽管分别将主音频流和第二音频流分配给主视频流和第二视频流,但是字幕并没有被分类为用于主视频流的字幕和用于第二视频流的字幕,仍然能够被区分为呈现图形流和textST流。
[0573] 以下描述用于PgtestST流的流条目。图47示出了STN_table的一部分,尤其是与PgtestST流相关的部分。根据该图,STN_table中具体与字幕显示相关的组成部分为:“number_of_PG_textST_streams_entries[1] 到 [n]”;“number_of_PiP_PG_textST_stream_entries_plus”;“PgtextST_stream_entry”;以及在“Secondary_video_Stream_entry”中的“Comb_info_Secondary_video_PiP_PG_textST”。
[0574] “number_of_PG_textST_streams_entries”指示在不执行画中画时,作为选择目标的PgtestST流的数量。
[0575] “number_of_PiP_PG_textST_stream_entries_plus”指示应该与用于画中画应用的STN_table中所定义的number_of_PiP_PG_textST_stream_entries相加的呈现图形流和textST流的数量。number_of_PG_textST_streams_entries和number_of_PiP_PG_textST_stream_entries_plus的和为255或更小。
[0576] 在此,当number_of_PG_textST_streams_entries为n1时,从1到n1的流编号变为PGtextST流的范围。另一方面,当number_of_PiP_PG_textST_stream_entries_plus为n2时,从1到n1+n2的流编号变为PGtextST流的范围。即,如果number_of_PiP_PG_textST_stream_entries_plus被写入到STN_table中,则PGTstST流的流编号范围就会被扩宽了在number_of_PiP_PG_textST_stream_entries_plus中所写入的数量。
[0577] 当没有执行画中画时,在PGtestST流的流条目之中的1到n1变为选择目标。当执行画中画时,在PGtestST流的流条目之中的1到n1+n2变为选择目标。注意,即使是执行画中画,也不会将用于主视频的字幕和用于第二视频的字幕分别显示。在画中画中仅仅显示主视频字幕和第二视频字幕中的一个。这是基于两个原因:(i)如果在BD-ROM中分别记录主视频字幕和第二视频字幕,则播放设备需要两个图形解码器,这导致硬件成本的增加;以及(ii)如果将第二视频缩小,则将会难以看清字幕。
[0578] 引导线hp1指示PG_testST_stream_entry的内部结构的展开图。如该引导线所示,PG_testST_stream_entry包括:Stream_entry和Stream_Attribute,Stream_entry包括允许重放的PGtestST流的PID。
[0579] 引导线hp2指示“Secondary_video_Stream_entry[1]”的内部结构的展开。在该内部结构的Comb_info_Secondary_video_PiP_PG_textST中,唯一性地指示了允许与第二视频流进行合成的PGtestST流。
[0580] 引导线hp3指示Comb_info_Secondary_video_PiP_PG_textST的内部结构。Comb_info_Secondary_video_PiP_PG_textST 包 括:“number_of_PG_textST_streams_ref_entries”,指示每一个都能与第二视频流组合的PiP_PG_textST流的总数量;以及“PiP_PG_textST_stream_id_ref[0]到[n]”,其指示能够被组合用于重放的PiP_PG_textST流的流编号。
[0581] 这样就结束了对于在本实施例的记录介质中的改进的描述。以下将描述在本实施例的重放设备中的改进。对于字幕重放,在重放设备中,将用于画中画执行的当前PGTextST流的流编号与当前用于画中画不执行的当前PGTextST流的流编号分别存储在PSR组23中。
[0582] 图48A示出了当前PGtestST流的流编号能够采用的流编号范围。如果PiP_PG_text_ST_stream_number为n1,则在不执行画中画时当前PGtestST流的流编号采用范围从1到n1的值,如该图上方部分所示。
[0583] 另一方面,用于画中画执行的当前PGtestST流的编号称为PiP_PG_TextST流编号,如果在STN_table中所写入的PG_text_ST_stream_number为n1并且number_of_PiP_PG_textST_stream_entries_plus为n2,则PiP_PG_TextST流编号采用范围从1到n1+n2的值,如该图下方部分所示。
[0584] 图48B示出了PSR2的比特分配。以下解释PSR2的每个比特。
[0585] disp_s_flag:
[0586] PSR2的b31是disp_s_flag,在该比特中所设定的值按照如下解释:
[0587] 0b:禁止“PG textST流”和“PiP PG textST流”的显示;以及
[0588] 1b:允许“PG textST流”和“PiP PG textST流”的显示。
[0589] PiP_PG_textST_valid_flag
[0590] PSR2的b30是PiP_PG_textST_valid_flag,在该比特中所设定的值按照如下解释:
[0591] 0b:在当前播放项的显示期间显示第二视频流时,使用在PSR2中所定义的PG TextST流编号;以及
[0592] 1b:当在当前播放项的显示期间显示第二视频流时,使用在PSR2中定义的PiP PG TextST流编号。
[0593] 在当前播放项的显示期间不显示第二视频流时,PiP_PG_textST_valid_flag对BD-ROM重放设备的显示不起作用。在该情况下,使用在PSR2中所定义的PG TextST流编号。
[0594] PG TextST流编号:
[0595] PSR2的b0到b11是PG TextST流编号,并且在这12个比特中所设定的值按照如下解释:
[0596] 在当前播放项的显示期间不显示第二视频流时(“当不显示第二视频流时”意味着PSR14的disp_v_flag被设定为0b),使用在PSR2中的PG TextST流编号的值来确定显示在当前播放项的STN_table中的PGTextST流中的PG流和TextST流中的哪一个。
[0597] PiP PG TextST流编号:
[0598] PSR2的b16到b27是PiP PG TextST流编号,在这12个比特中所设定的值按照如下解释:
[0599] 在当前播放项的播放期间显示第二视频流并且PSR2的PiP_PG_textST_valid_flag设定为1b时(“当显示第二视频流时”意味着PSR14的disp_v_flag被设定为1b,并且在当前播放项的显示期间显示由PSR14所确定的第二视频流),使用在PSR2中的PiP PGTextST流编号的值来确定显示在当前播放项的STN_table中的PGTextST流中的PG流和TextST流中的哪一个。
[0600] 用于画中画不执行的PGtestST流的流编号及其处理不是本发明的重点,因此在本实施例中省略了对其的描述。
[0601] 图49是PiP_PG_TextST流编号的转换转换,PiP_PG_TextS流编号是画中画PGtestST流的流编号。在该图中,术语“有效”表示PSR2的PiP_PG_TextST流的值等于或者小于播放项的STN_table中所写入的条目数量,是可编码的。
[0602] 术语“无效”表示(a)PSR2的PiP_PG_TextST流编号为“0”,(b)PSR2的PiP_PG_TextST流编号大于在播放项的STN_table中所写入的条目数量,或者(c)即使是在播放项的STN_table中所写入的条目数量在从“1”到“23”的范围之内,解码也是无效的。
[0603] 图49中的虚线框示意性地指示用于在状态改变时确定PSR的值的过程。用于将PGTextST流编号设定给PSR2的过程包括“在重放状态改变时的过程”和“当要求流改变时的过程”。
[0604] 虚线框所指示“在重放状态改变时的过程”和“当要求流改变时的过程”与实施例1中的第二视频流的过程相同。
[0605] 状态转换由诸如“加载盘”、“改变流”、“开始播放列表的重放”、“穿过播放项边界”或者“终止播放列表的重放”之类的事件触发。这些事件也与用于实施例1中的第二视频流的事件相同。
[0606] 以下描述“当要求流改变时的过程”的处理过程。
[0607] 图50是示出了PGtestST流的“当要求流改变时的过程”的处理过程的流程图。
[0608] 过程执行单元42在步骤S151中从PSR2获得当前PiP_PG_TextST流编号,并且在步骤S152中判断当前PiP_PG_TextST流编号是用于呈现图形流还是textST流。在步骤S153中,过程执行单元42判断与当前PiP_PG_TextST流编号相对应的呈现图形流是否满足条件(A)、(B)和(C)。
[0609] 在此,(A)、(B)和(C)具体如下:
[0610] 条件(A):重放设备能够解码由当前PiP_PG_TextST流编号的编号所指定的呈现图形流;
[0611] 条件(B):重放设备能够播放所指定的语言;以及
[0612] 条件(C):根据PSR14中的第二视频流编号与comb_info_Secondary_video_PiP_textST()的PGtextST流编号的比较,允许将当前第二视频流与由当前PiP_PG_TextST流编号所指定的PGtextST流进行组合。
[0613] 另一方面,在步骤S154中,过程执行单元42判断与当前PiP_PG_TextST流编号相对应的textST流是否满足条件(A)、(B)和(C)。
[0614] 条件(A):重放设备能够将当前PiP_PG_TextST流编号的textST流的字符码转换为位图。这种重放能力在PSR组23的PSR30中指示。
[0615] 条件(B):重放设备能够支持当前PiP_PG_TextST流编号的textST流的语言属性。这种支持能力在PSR组23的PSR48到PSR61中指示。
[0616] 条件(C):根据在PSR14中的第二视频流编号与comb_info_Secondary_video_PiP_textST()的PGtextST流编号的比较,允许存储在PSR14中的当前第二视频流与由当前PiP_PG_TextST流编号所指定的PGtextST流进行组合。
[0617] 在此,当采用某种语言的字幕是用textST流表示时,重放设备必须具有能够将该字符码转换为位图的能力,以及支持该语言属性的支持能力,以便“能够解码”采用该语言的textST流。
[0618] 在此,以英语、日语和阿拉伯语为例。对于英语字幕,仅仅在重放设备具有“水平书写”、“字母紧排(kerning)”和“双字母/连字(double letter/ligature)”的能力时,才认为其支持该语言属性。
[0619] 对于日语,仅仅在重放设备具有“水平写入”、“垂直书写”、“行尾换行(line end wrap)”和“加注音(rudy)”的能力时,才认为其支持该语言属性。
[0620] 对于阿拉伯语,仅仅在重放设备具有“从右向左书写”和“双字母/连字(double letter/ligature)”的能力时,才认为其支持该语言属性。
[0621] 当重放设备能够将采用某种语言的textST流转换为位图并且支持该语言属性时,就认为满足上述条件(A)和(B)。当重放设备能够将采用该语言的textST流转换为位图却不能支持该语言属性时,则认为没有满足条件(B)而仅仅满足条件(A)。
[0622] 在完成了以上判断之后,过程执行单元42执行步骤S155。步骤S155是用于判断重放设备是否满足条件(Z)的步骤。
[0623] 在此,条件(Z)是:用户意图重放采用不支持的语言的字幕。该意图在PSR组23的PSR30中指示。
[0624] 随后,过程执行单元42执行步骤S156的判断步骤。这是用于判断在当前播放项的STN_table中的number_of_PG_textST_streams_entries与number_of_PiP_PG_textST_stream_entries_plus之和是否为“0”的步骤。当在STN_table中没有允许重放的PGTextST流时,过程执行单元42保持PSR2的PGTextST流编号(步骤S157)。当在当前STN_table中存在至少一个允许重放的PGTextST流时,过程执行单元42执行步骤S158。这是用于检查当前PiP_PG_TextST流编号是否有效的步骤,过程执行单元42判断当前PiP_PG_TextST流编号是否等于或者小于在STN_table中的流条目总数量以及当前PiP_PG_TextST流编号是否满足条件(A)、(B)和(C)。
[0625] 当在步骤S158中为“是”时,过程执行单元42保持在PSR2中的值,认为在PSR2中已经设定了有效的PiP_PG_TextST流编号。(步骤S159)
[0626] 如果在步骤S158中为“否”,则过程执行单元42执行步骤S160的判断步骤。这是用于判断当前PiP_PG_TextST流编号是否等于或者小于在STN_table中的流条目总数量以及当前PiP_PG_TextST流编号是否满足条件(A)的步骤。如果在步骤S160中为“是”,则过程执行单元42保持在PSR2中的值,因为尽管在PSR2中设定了采用不支持语言的文本字幕的PiP_PG_TextST流编号,但是用户意图重放该不支持的语言(步骤S161)。当在步骤S160中为“否”时,过程执行单元42选择为当前播放项选择的适合的流(步骤S162)。
[0627] 这样就结束了对PGTextST流的“在重放状态改变时的过程”的描述。
[0628] 图51是示出了用于为当前播放项选择适合的PGTextST流的过程的流程图。
[0629] 过程执行单元42在步骤S190中检查所有PGTextST流是否满足条件(a)到(d)。
[0630] 当待检查的呈现图形流是呈现图形流i时,条件(a)到(d)具体如下:
[0631] 条件(a):重放设备能够解码呈现图形流i;
[0632] 条件(b):重放设备能够播放呈现图形流i所指定的语言;
[0633] 条件(c):根据在PSR14中的第二视频流编号与comb_info_Secondary_video_PiP_textST()的PGtextST流编号的比较,允许当前第二视频流与呈现图形流i进行组合;以及
[0634] 条件(d):呈现图形流i的PG_language_code与重放设备上设定的语言匹配。
[0635] 当待检查的textST流是呈现图形流i时,条件(a)到(d)具体如下:
[0636] 条件(a):重放设备能够将textST流i的字符码转换为位图;
[0637] 条件(b):重放设备能够支持textST流i的语言属性;
[0638] 条件(c):根据在PSR14中的第二视频流编号与comb_info_Secondary_video_PiP_textST()中的PGTextST流i的编号的比较,允许当前第二视频流与由PiP_PG_TextST流编号所指定的textST流i进行组合;以及
[0639] 条件(d):textST流i的textST_language_code与在重放设备上的语言设定匹配。
[0640] 在完成了以上判断之后,过程执行单元42在步骤S191中判断重放设备是否满足在先前流程图中所描述的条件(Z)(即,不支持语言的重放)。当在步骤S191中为“否”时,过程执行单元42在步骤S192中判断是否有一个或多个PGTextST流满足条件(a)到(d)。如果在步骤S192中为“是”,则过程执行单元42从满足条件(a)到(d)的PGTextST流中,选择其对应的流条目在STN_able中排第一的流,并将所选择的PiP_PG_TextST流编号的流编号设定在PSR2中(步骤S193)。
[0641] 当在步骤S192中为“否”时,过程执行单元42判断是否有一个或多个PGTextST流满足较少的条件。在此,较少的条件指的是满足3个条件(a)、(b)和(c),过程执行单元42在步骤S194中判断是否有一个或多个PGTextST流满足所述较少的条件。如果在步骤S194中为“是”,则过程执行单元42从满足条件(a)、(b)和(c)的PGTextST流中选择其对应的流条目在STN_table中排第一的流,并将所选择的PiP_PG_TextST流编号设定在PSR2中(步骤S196)。
[0642] 当在步骤S194中为“否”时,过程执行单元42将0xFFF设定给PSR2,作为PiP_PG_TextST流编号(步骤S195)。当在步骤S191中判定重放设备满足条件(Z)时,过程执行单元42在步骤S197中判断是否有一个或多个PGTextST流满足另一较少的条件。在此,另一较少的条件指的是满足条件(a)、(c)和(d),过程执行单元42在步骤S198中判断是否有一个或多个PGTextST流满足所述较少的条件。
[0643] 如果在步骤S197中为“是”,则过程执行单元42从满足条件(a)、(c)和(d)的PGTextST流中选择其对应的流条目在STN_table中排第一的流,并将所选择的PiP_PG_TextST流编号的流编号设定在PSR2中(步骤S198)。
[0644] 如果在步骤S197中为“否”,则过程执行单元42在步骤S199判断是否有一个或或多个PGTextST流满足满足条件(a)和(c)。如果在步骤S199中为“是”,则从满足条件(a)和(c)的PiP_PGtestST流中选择其对应的流条目在STN_table中排第一的流,并将所选择的PiP_PG_TextST流的编号设定在PSR2中(步骤S200)。当在步骤S199中为“否”时,过程执行单元42将0xFFF设定给PSR2(步骤S201)。
[0645] 这样就结束了对用于选择适合的PGTextST流的过程的描述。
[0646] 图52是示出PGTextST流的“当要求流改变时的过程”的处理过程的流程图。
[0647] 在步骤S171中,过程执行单元42判断响应于用户操作而获得的编号x是指示用于呈现图形流的PiP_PG_TextST流编号还是用于textST流的PiP_PG_TextST流编号。在步骤S172中,过程执行单元42判断与该编号x相对应的呈现图形流是否满足以下条件(A)、(B)和(C)。
[0648] 条件(A):重放设备能够解码编号x所指定的呈现图形流;
[0649] 条件(B):重放设备能够播放作为所指定呈现图形流的属性的语言;以及[0650] 条件(C):根据在PSR14中的第二视频流编号与comb_info_Secondary_video_PiP_textST()的PGtextST流编号的比较,允许当前第二视频流与由编号x所指定的PGtextST流进行组合。
[0651] 在步骤S173中,过程执行单元42检查与编号x相对应的textST流是否满足以下条件(A)、(B)和(C)。
[0652] 条件(A):重放设备能够将与编号x相对应的textST流的字符码转换为位图;
[0653] 条件(B):重放设备能够支持与编号x相对应的textST流的语言属性;以及[0654] 条件(C):根据在PSR14中的第二视频流编号与comb_info_Secondary_video_PiP_textST()的PGtextST流编号的比较,允许当前第二视频流与由编号x所指定的PGtextST流进行组合。
[0655] 过程执行单元42在步骤S174中检查重放设备是否满足条件(Z),并执行步骤S175的判断。该判断是用于判断该编号是否小于或等于在STN_table中的流条目总数量并且该编号是否满足条件(A)。当在步骤S175中为“是”时,过程执行单元42选择该PiP_PG_TextST流编号(即编号x)的PGTextST流,并将该编号设定在PSR2中(步骤S176)。
[0656] 当在步骤S175中为“否”时,过程执行单元42执行步骤S177的判断。该判断是用于判断该编号是否小于或等于在STN_table中的流条目总数量并且该编号是否满足条件(A)、(C)和(Z)。当在步骤S177中为“是”时,过程执行单元42选择与编号x相对应的PiP_PGTextST流,并将该PiP_PG_TextST流编号设定在PSR2中(步骤S178)。
[0657] 如果在步骤S177中为“否”,则过程执行单元42执行步骤S179中的判断。该判断是用于判断编号x是否为0xFFF。当在步骤S179中为“否”时,过程执行单元42保持在PSR2中的值,假设在STN_table中没有允许播放的PGTextST流(步骤S180)。
[0658] 如果该编号x为0xFFF,则过程执行单元42为当前播放项选择适合的PGTextST流(步骤S181)。对适合的PGTextST流的选择与图51中所示的相同。
[0659] 这样就结束了对PGTextST流的“当要求流改变时的过程”的描述。
[0660] 因此,根据本实施例,当画中画有效时,从通过将number_of_PG_textST_streams_entries和number_of_PiP_PG_textST_stream_entries_plus相加而得到的数字范围中选择PiP_PG_TextST流编号,并播放与该PiP_PG_TextST流编号相对应的呈现图形流或者textST流。从而,可以在一个实例中与多个视频一起播放适合于主视频流的字幕,并可以在另一实例中与视频一起播放适合于第二视频流的字幕,这导致了字幕选择范围的扩大。
[0661] 实施例6
[0662] 本实施例给出了对在上述实施例中的BD-ROM的生产和商业制造的详细描述。
[0663]
[0664] 首先,执行计划过程。在该过程中,决定使用什么脚本(scenarios)来播放BD-ROM。
[0665] 接下来,执行素材创建过程。在该过程中,创建用于视频记录、音频记录等等的素材。
[0666] 然后,执行格式化过程。在该过程中,根据在计划过程中所创建的脚本以及素材,获得要记录在BD-ROM的数据区中的数据(通常称为“卷数据(volume data)”)的概观。
[0667] 采用编程语言描述的类结构的实例是根据本发明的记录介质的应用层的格式。通过基于在BD-ROM标准中指定的语法描述该类结构的实例,能够创建片段信息、播放列表信息、等等。在该情况下,能够使用编程语言的“for”语句来定义采用表格式的数据,使用“if”语句来定义在特定情况下所需要的数据。
[0668] 最后,执行压制(press)过程。在该压制过程中,将卷数据转换为物理数据序列,并通过使用该物理数据序列创建模板盘(masterdisk),来生产模板盘刻纹(cutting)。
[0669] 通过压制设备创建模板,然后商业批量生产BD-ROM。所述生产包括各种过程,主要包括基片成型、反射膜涂敷、保护膜涂敷、层压和印刷标签。
[0670] 通过完成这些过程,能够创建在以上每个实施例中所述的记录介质(BD-ROM)。
[0671] <附加内容创建过程>
[0672] 当运动画面由BD-ROM内容和附加内容组成时,执行以上所述的计划过程到格式化过程。然后,获得构成一块卷数据的AV片段、片段信息和播放列表信息。通过存档器程序等等从所获得的AV片段、片段信息和播放列表信息中去掉将会由BD-ROM提供的信息,并将剩余的信息聚集到一个文件中作为附加内容。当在这些过程之后获得了这种附加内容之后,将附加内容提供给www服务器并在要求时发送给重放设备。
[0673] <创作系统(authoring system)>
[0674] 在以上多个过程之中,格式化过程是BD-ROM生产的核心,其是使用称为创作系统的专用系统来管理的。该系统是在生产技术室中建立的,并且被提供给用户。图53示出了实施例6的创作系统的内部结构。以下参考该图描述创作系统的内部结构。
[0675] 如图中所示,创作系统是通过经由内部网络将以下设备相互连接而构建的:标题TM配置创建设备51、卷本(reel)设置编辑设备52、BD脚本生成设备53、Java 编程设备54、素材创建/导入设备55、盘创建设备56、验证设备57、模板创建单元58。
[0676] 1)标题配置创建设备51
[0677] 标题配置创建设备51确定构成由Index.bdmv所指示的每个标题的内容。该设备是通过创建标题配置信息来下决定的。标题配置信息是使用树结构来指定在标题、电影对象、BDJ对象和播放列表之间的关系的信息。具体而言,标题配置信息指定与待生产的BD-ROM的“盘名称”相对应的节点、与在BD-ROM上的Index.bdmv中能够播放的“标题”相对应的节点、与构成标题的“电影对象和BDJ对象”相对应的节点、以及通过构成电影对象和BDJ对象的命令而播放的“播放列表”的节点,然后通过将这些节点与边缘相连接来指定在标题、电影对象、BDJ对象和播放列表之间的关系。在标题配置信息中,不使用诸如00001.mpls和00002.mpls之类的文件名来描述播放列表信息,而是使用诸如主播放列表(MainPlaylist)和菜单播放列表(MenuPlaylist)之类的抽象名称。该设备通过基于与用户的交互操作创建这种树结构,来完成标题配置信息。
[0678] 2)卷本设置编辑设备52
[0679] 卷本设置编辑设备52确定构成一个完成的电影的多个基本流(例如视频、音频、字幕和按钮)之间的关系。例如,当单个电影由一个视频流、两个音频流、3个字幕流和一个按钮流组成时,卷本设置编辑设备指定一个电影由这些基本流形成,并且其具有将具有部分不同的图像的导演剪辑分配给主电影以及设置具有不同角度的多视角场景的功能。从卷本设置编辑设备52输出的卷本设置文件输出是上述信息的汇编。
[0680] 3)BD脚本生成设备53
[0681] BD脚本生成设备53包括菜单编辑单元53a和脚本编辑单元53b。
[0682] <菜单编辑单元53a>
[0683] 菜单编辑单元53a根据经由GUI的用户操作来放置构成交互图形流的按钮,并创建诸如要附着到按钮上的命令、按钮动画等等的功能。
[0684] <脚本编辑单元53b>
[0685] 脚本编辑单元53b通过根据经由GUI的用户操作对由标题配置创建设备51所创建的标题配置信息执行编辑过程,来创建并输出脚本。在此,脚本指的是使得重放设备以标题为单位执行重放的信息。在BD-ROM中,被定义为索引表、电影对象和播放列表的信息就是脚本。BD-ROM脚本数据包括构成流的素材信息、重放路径信息、菜单屏幕排列、以及关于从菜单进行转移的信息,并且用户使用脚本生成设备来进行脚本编辑操作,直到完成了对这些信息的验证为止。在脚本编辑操作中,脚本编辑单元53b设定标题配置信息的播放列表的内容。通过在脚本编辑操作中将实施例1、4和5中所示的STN_table和在实施例2中的PiP_metadata定义为播放列表的组成部分,将这些组成部分结合到BD-ROM脚本数据中。
[0686] 另外,由BD脚本生成设备53输出的BD-ROM脚本数据包括用于在以下所述的多路复用器56e中实现多路复用的参数。
[0687] BD脚本生成设备53能够创建用于上述无缝视频菜单的数据结构的脚本。用户通过经由GUI的操作,使用菜单编辑单元53a来选择希望进行无缝播放的视频作为菜单的背景视频。脚本编辑单元53b创建与该无缝视频菜单的数据结构相一致的播放列表。脚本编辑单元53b调节播放列表中的播放项数量以便与AV片段的数量一致,并将它们输出,作为BD-ROM脚本数据。在这时,脚本编辑单元53b设定用以实现在多路复用器56e中的多路复用的参数,从而无缝地播放每个AV片段。
[0688] 4)JavaTM编程设备54
[0689] JavaTM编程设备54包括ID类创建单元54a、JavaTM程序编辑单元54b、和BDJ对象创建单元54c。
[0690]
[0691] ID类创建单元54a使用由标题配置创建设备51创建的标题配置信息来创建ID类TM源代码。ID类源代码是用于访问Index.bdmv和播放列表信息的Java 类库的源代码,通TM TM
过该源代码,最终在盘上创建Java 程序。在此,将Java 类库是从ID类源代码中形成的汇编,其被称为ID类库。
[0692] ID类源代码被设计和实现为,使得其每一个的构造函数都通过指定播放列表编号而从盘中读出预先定义的播放列表文件,并且使用通过执行该构造函数而创建的实例,能够执行AV片段的重放。通过使用由标题配置信息所定义的播放列表节点的名称,例如主播放列表和菜单播放列表,来定义ID类库的变量名称。在该处所使用的播放列表名称可以是虚号(dummy number)。
[0693]
[0694] JavaTM程序编辑单元54b响应于经由用户接口(例如GUI)的用户请求,创建JavaTMTM TM程序的源代码,并输出该Java 程序源代码。在Java 程序中,由ID类库来查询Index.bdmv和播放列表。
[0695]
[0696] BDJ对象创建单元54c根据由JavaTM程序编辑单元54b所创建的JavaTM程序源代码和由ID类创建单元54a创建的ID类源代码,来创建BDJ对象创建信息。BDJ对象创建信息是要作为最终记录在BD-ROM上的BDJ对象的形式的信息,BDJ对象创建信息不是通过诸如00001.mpls和00002.mpls之类的具体文件名来指定要播放的播放列表的,而是通过在ID类库中定义的变量名来指定的。
[0697] 5)素材创建/导入设备55包括字幕创建单元55a、音频导入单元55b、视频导入单TM元55c、和Java 导入单元55d。素材创建/导入设备55将输入的视频素材、音频素材、字TM
幕素材、Java 程序源代码等等按照BD-ROM标准进行转换,并将其发送到盘创建设备56。
[0698] <字幕创建单元55a>
[0699] 字幕创建单元55a根据字幕信息文件,创建符合BD-ROM标准的字幕数据,所述字幕信息文件包括字幕、显示时刻信息、以及诸如淡入/淡出之类的字幕效果。
[0700] <音频导入单元55b>
[0701] 音频导入单元55b在所输入的音频已经被压缩为AC-3格式的情况下,向输入的音频中添加用于相应的视频的时刻信息和/或者从输入的音频中删除无用数据,并输出结果。当输入未压缩的音频时,在输出之前将其转换为用户指定的格式。
[0702] <视频导入单元55c>
[0703] 视频导入单元55c在所输入的视频已经被压缩为MPEG2、MPEG4-AVC或者VC-1格式的情况下,在将其输出之前,如果需要的话,就删除无用信息。当输入未压缩的视频文件时,将该视频文件输入到视频编码器,根据用户指定的参数对其进行压缩,然后将其输出。
[0704] JavaTM导入单元55d发送以下数据到盘创建设备56:由JavaTM编程设备54创建的TM TMJava 程序源代码、程序辅助信息、ID类源代码、BDJ对象生成信息。Javta 导入单元55dTM
使用标题配置信息,将由导入的Java 程序源代码、程序辅助信息、ID类源代码和BDJ对象生成信息组成的文件组与相应的BDJ对象相关联,并为标题配置信息的BDJ对象节点设置BDJ对象生成信息。
[0705] 6)盘创建设备56
[0706] 盘创建设备56包括ID转换单元56a、静态图像编码器56b、数据库生成单元56c、TMJava 程序建立(building)单元56d、多路复用器56e、格式化单元56f和盘镜像创建单元
56g。
[0707]
[0708] ID转换单元56a将从JavaTM导入单元55d发送至盘创建设备56的ID类源代码转换为标题编号和播放列表编号。ID转换单元56a还转换BDJ对象生成信息,从而使得在BDJ对象中定义的播放列表名与在盘上实际的播放列表编号相匹配。
[0709] <静态图像编码器56b>
[0710] 静态图像编码器56b在输入的BD-ROM脚本数据包含静态图像或者存储有静态图像的区域的情况下,从所输入的静态图像中选出适合的静态图像,并将所选的静态图像转换为符合BD-ROM标准的MPEG2、MPEG4-AVC和VC-1格式中的一种格式。
[0711] <数据库生成单元56c>
[0712] 数据库生成单元56c根据所输入的BD-ROM脚本数据和从ID转换单元56a发送的BDJ对象生成信息,生成符合BD-ROM标准的用于脚本数据的数据库。在此,术语“数据库”是在上述的BD-ROM中所定义的Index.bdmv、电影对象、播放列表、BDJ对象的集合术语。
[0713]
[0714] JavaTM程序建立单元56d对由ID转换单元56a所转换的ID类源代码和JavaTM程TM序源代码执行编译处理,并输出Java 程序。
[0715] <多路复用器56e>
[0716] 多路复用器56e对用于实现在BD-ROM脚本数据中所描述的视频、音频、字幕和菜单的多个基本流进行多路复用,获得采用MPEG2-TS格式的数字流,其被称为AV片段。另外,多路复用器56e将AV片段与具有与该AV片段相关的信息的片段信息一起输出。
[0717] 具体而言,多路复用器56e在为BD-ROM所生成的数字流中检测:(i)在所包含的视频基本流是采用MPEG2的情况下,I画面所在的位置;(ii)在该流是采用MPEG4-AVC的情况下,I画面和IDR画面所在的位置;以及(iii)在该流是VC1的情况下,I画面所在的位置。然后,多路复用器56e通过将上述画面的显示时间与MPEG2-TS的AV片段的TS分组相关联,来生成EP_map,在TS分组中,存储了该画面的顶部数据。多路复用器56e通过从卷本设置文件中删除多路复用器56e已经生成的EP_map和指示每个数字流的音频和视频的属性的信息,来创建片段信息。
[0718] 由多路复用器56e创建EP_map的原因是:EP_map是与从多路复用器56e输出的MPEG2-TS格式的AV视频紧密相关的信息。另外,为在BD-ROM中使用而创建的AV片段可能具有非常大的文件尺寸,因此,需要时间来创建EP_map,这是因为在创建AV片段之后,为了创建EP_map,则必须再次读取具有庞大文件尺寸的AV片段。另一方面,在AV片段的创建过程中创建EP_map减少了EP_map创建的时间,因为不需要两次读取庞大的AV片段文件。
[0719] 多路复用器56e还使用包含在BD-ROM脚本数据中的、用于多路复用器56e的参数,来改变多路复用方法。例如,当将参数设定为将待多路复用的第一和第二AV片段进行无缝连接时,多路复用器56e使用对第一AV片段进行解码之后的缓冲器状态作为初始值来多路复用第二AV片段,以便不会破坏如上所述的缓冲器模型。
[0720] <格式化单元56f>
[0721] 格式化单元56f使用上述数据库、AV片段和JavaTM程序作为输入以及使用适合于BD-ROM格式的数据结构,来执行文件分配处理。格式化单元56f创建指定BD-ROM的应用层的目录结构,并将每个文件分配到适当的位置。在这时,格式化单元56f通过定义一个树结TM构,将Java 程序与AV片段相关联。根据该关联,将用于重放的多个文件分类到称为块的多个单元中。该设备通过根据与用户的交互操作来创建这种树结构,来实现文件的关联。
[0722] <盘镜像创建单元56g>
[0723] 盘镜像创建单元56g通过使用上述数据库和AV片段并将其分配到适合于BD-ROM格式的地址,来获得卷镜像。
[0724] 为了创建卷镜像,盘镜像创建单元56g将相关的文件组分配为使其在物理上连续,这从而实现了在重放时对盘的有效读取。关于无缝标志为“开启”的块,盘镜像创建单元56g将文件组分配为使得能够无缝地播放属于该块的AV片段。具体而言,盘镜像创建单元
56g使得在盘中的分配满足作为实现上述无缝重放的物理条件的最小扩展尺寸和最大跳转距离。
[0725] 7)验证设备57
[0726] 验证设备57包括模拟器单元57a和验证器单元57b。
[0727] 模拟器单元57a使用卷镜像作为输入来播放实际电影内容,并且验证例如生产者想要的操作(例如,从菜单转换转到主电影)是否正确执行、字幕改变和音频改变是否按照意图进行操作、以及视频和音频是否具有想要的质量。
[0728] 验证器单元57b使用上述卷镜像,验证所生产的数据是否符合BD-ROM标准。
[0729] 为了采用Out_of_MUX流实现画中画,在STN_table中允许同时播放的多个基本流中的TS分组的总比特速率必须限制在48M比特/秒或者更低。为了检查是否满足该限制,验证器单元57b判断在ATC时间轴上任意的一秒时间段内的比特数量是否等于或者小于该限制。该一秒的单位时间称为“窗口”,其能够位于ATC序列时间轴上的任何位置处。这就是说,在任何一秒时间段内所解码的基本流的比特数量必须为48M比特或者更小。
[0730] 在进行创作时,验证器单元57b在每次将窗口在源分组序列上移动一个分组的同时,检查在一秒时间段上的TS分组的比特数量是否为48M比特或者更小。当满足该限制时,验证器单元57b将窗口移动至下一个TS分组。如果不满足该限制,则验证器单元57b判定其违反了BD-ROM标准。当窗口的Out_Time在重复这种移动之后到达了最后一个源分组时,验证器单元57b判定该源分组符合BD-ROM标准。
[0731] 因此,由模拟器单元57a和验证器单元57b验证了卷镜像,当发现错误时就返回到适当的过程来再次进行该操作。在这两个验证过程之后,卷镜像经过模板创建单元58,其从而创建用于BD-ROM压制的数据。进而,将用于BD-ROM压制的数据发送到用于盘生产的压制过程。
[0732] 接下来,参考图54描述格式化过程的处理流程图。
[0733] 在步骤S301中,用户使用标题配置创建设备51来设置BD-ROM的标题配置。
[0734] 在步骤S302中,用户使用BD脚本生成设备53来创建具有无缝视频菜单结构的脚本数据。从而,在BD-ROM脚本数据中创建用于无缝视频菜单的播放列表。
[0735] 在步骤S303中,用户准备用于标题的视频、音频、静态图像和字幕信息,随后使用素材创建/导入设备55将这些信息导入到盘创建设备56。
[0736] 在步骤S304中,用户使用JavaTM编程设备54创建用于JavaTM标题的JavaTM程序源代码、程序辅助信息、以及ID类源代码。
[0737] 在步骤S305中,用户使用JavaTM导入单元55d将在步骤S4中所创建的JavaTM程序源代码、程序辅助信息、以及ID类源代码导入盘创建设备56。
[0738] 在步骤S306中,盘创建设备56使用ID转换单元56a将ID类源代码和BDJ对象生成信息的描述转换为在实际盘上的标题编号和播放列表编号。
[0739] 在步骤S307中,JavaTM程序建立单元56d使用在步骤S306中输出的源代码,通过TM TM编译过程创建Java 程序。注意,当标题配置信息不包含Java 标题时,能够跳过步骤S306和S307。
[0740] 在步骤S308中,静态图像编码器56b在BD-ROM脚本数据包含静态图像或者存储了静态图像的区域的情况下,将适当的静态图像转换为符合BD-ROM标准的MPEG2、MPEG4-AVC和VC-1格式中的一种格式。
[0741] 在步骤S309中,多路复用器56e根据BD-ROM脚本数据对多个基本流进行多路复用,并创建MPEG2-TS格式的AV片段。
[0742] 在步骤S310中,数据库生成单元56c根据BD-ROM脚本数据创建符合BD-ROM标准的数据库信息。
[0743] 在步骤S311中,格式化单元56f使用在步骤S307中创建的JavaTM程序、在步骤S309中创建的AV片段和在步骤S310中创建的数据库作为输入,执行符合BD-ROM标准的文TM件分配。在这时,格式化单元56f将Java 程序与AV片段相关联,并创建文件分配信息。
[0744] 在步骤S312中,盘镜像创建单元56g使用在步骤S311中创建的文件组同时参考文件关联信息,来创建适合于BD-ROM格式的卷镜像。
[0745] 在步骤S313中,验证单元57验证在步骤S312中所创建的盘镜像。当发现错误时,验证单元57返回到适当的过程来再次进行该操作。
[0746] 以下描述主视频流和第二视频流的多路复用以及EP_map的创建。
[0747] 为了对主视频流和第二视频流进行多路复用,将指示每个画面的显示时刻的PTS与指示每个画面的解码时刻的DTS进行比较。然后,执行多路复用,以使得构成主视频的画面和构成第二视频的画面大致位于同一位置或者彼此相邻。
[0748] 接下来描述如何对主视频流和第二视频流进行多路复用。
[0749] 在图55中的层次1和层次2示出了在同一ATC时间轴上所分配的构成主视频流的TS分组序列和构成第二视频流的TS分组序列。
[0750] 如实施例1所示,主视频流和第二视频流分别被转换为PES分组序列和TS分组序列。将ATS附加在TS分组上,从而使得这样获得的TS分组序列在单个ATS时间轴上位置连续。
[0751] 注意,并非在ATC时间轴上的所有坐标都被构成主视频流的TS分组所占据,在GOP附近的坐标是空的。这是因为,在设计上是要将与主视频画面同步播放的一种不同类型的数据放置在这些空闲坐标中。将时间戳附加在TS分组上,从而使得第二视频流的TS分组被分配给空闲坐标,即没有被主视频流的TS分组所占据的坐标。层次3指示通过多路复用而获得的传输流。
[0752] 因此,通过附加指示在主视频的ATC时间轴上未占据的坐标的ATS并连续地排列TS分组,将主视频流与第二视频流进行多路复用。在多路复用中连续排列的TS分组是通过序列号来标识的。这些序列号被称为SPN,由SPN来指示源分组在BD-ROM中的位置。
[0753] 当已经以这种方式多路复用了主视频流和第二视频流时,通过按照从顶部开始的次序读出单个传输流,能够在需要的时刻取出所需的主视频流和第二视频流。然而,需要不从流的顶部开始重放,而是根据采用时间规格的跳过操作或者跳转操作而在流中间开始重放时,就必须要考虑主视频和第二视频的GOP边界。
[0754] <同步重放>
[0755] 主视频和第二视频是作为基本流的独立流,然而,当第二视频流是IN_MUX流时,在重放时,通过按照从顶部开始的次序读出单个传输流,能够在需要的时刻取出所需的主视频流和第二视频流。然而,需要不从流的顶部开始重放,而是根据采用时间规格的跳过操作或者跳转操作来在流中间开始重放时,就必须要考虑主视频和第二视频的GOP边界。
[0756] 图58示出了一种归属关系,其指示每个被多路复用的源分组属于主视频流或者第二视频流的哪一个GOP。图中层次1中的框示出了一种归属关系,其指示AV片段的每个TS分组属于包含在主视频流中的多个GOP中哪一个。可以看到,采用这些框,从地址n1到地址n2之前紧邻位置处的多个源分组属于GOP-1,从地址n2到地址n3之前紧邻位置处的多个源分组属于GOP-2,从地址n3开始的多个源分组属于GOP-3。
[0757] 在层次2中的框示出了一种归属关系,其用于指示AV片段的每个TS分组属于包含在第二视频流中的多个GOP中哪一个。可以看到,采用这些框,从地址u1到地址u2之前紧邻位置处的多个源分组属于GOP-1,从地址u2到地址u3之前紧邻位置处的多个源分组属于GOP-2,从地址u3开始的多个源分组属于GOP-3。
[0758] 在该情况下,当从SPNn1和SPNn2中读出源分组时,第二视频流的GOP SPNu1和SPNu2的顶部在SPNn1和SPNn2之后,因此不仅能够读出主视频的GOP,而且还能够读出第二视频的GOP,从而完成了画中画。即,当要从作为主视频的第二个GOP的(主)GOP-2开始进行重放时,如果从作为包含在(主)GOP-2中的第一个分组的SPNn2开始进行重放,则也读出(第二)GOP-2-即与主视频进行同步的第二视频的第二个GOP。因此,可以毫无困难地从重放开始时起就与第二视频同步地播放主视频。
[0759] 然而,当从SPNn3开始读出源分组时,第二视频的GOP在n3之前,因此不能读出第二视频的GOP。即,当由于希望从(主)GOP-3开始重放而从SPNn3开始进行重放时,如果(第二)GOP-3在(主)GOP-3之前,则即使是从SPNn3开始读出传输流,也不能从顶部读出在(第二)GOP-3中包含的GOP中的数据。从而,不能对GOP中包含的视频进行完全解码。在这种情况下,虽然是从GOP-3的视频开始进行主视频的重放的,但是是从GOP-4的视频开始延迟地进行第二视频的重放,或者主视频的GOP-3的视频重放是以该误时的第二视频流的重放开始的。
[0760] 能够考虑两种方法来使得主视频和第二视频从指定的时刻或者GOP开始彼此相一致地进行重放:按照多路复用的次序进行控制;以及确定在重放设备中的开始点。
[0761] 当GOP边界在流上对齐时,重要的是从哪个点开始重放。在重放开始点由时钟时间指定的情况下,重放设备将时间信息转换为SPN,并通过查询EP_map来确定重放开始点。
[0762] 图57示出了仅用于主视频的EP_map。层次1示出了构成主视频和第二视频的画面,层次2示出了EP_map。层次3示出了主视频流和第二视频流的GOP。在该情况下,时间信息是主视频的GOP的重放开始时间,SPN是GOP的顶部地址。由于重放设备从由该地址所指示的点开始读出数据,因此第二视频的数据需要在主视频的GOP之后开始。这是按照多路复用的次序进行控制的方法。
[0763] 在从存储在EP_map中的时间开始进行重放的情况下,通过使主视频和第二视频的GOP具有相同的时间宽度并且始终将主视频的GOP的开始放置在第二视频的GOP的开始之前,即使是使得重放跳转到任何时间点,也可以从所跳转的时间点开始对主视频和第二视频一起进行显示。
[0764] 图58示出了分别为主视频和第二视频所设定的EP_map。层次1和层次3与上一个图相同。层次2指示分别为主视频和第二视频所设定的EP_map。通过如图所示地设置EP_map,当以时钟时间来提供重放开始点时,能够找到用于主视频和第二视频的相应的EP_map。然后从与时间信息相对应的多个SPN中的先前点地址开始进行重放,从而可以从指定时刻的主视频和第二视频的GOP的开头处将其读出。这是在重放设备端确定开始点的方法。通过将同一时间信息登记到各个EP_map中,就能够在指定了某个时刻时,获得与主视频和第二视频相对应的开始地址。
[0765] 更具体而言,重放设备使用用于主视频流的EP_map将时间信息转换为主视频流上的SPN,还使用用于第二视频流的EP_map将时间信息转换为第二视频流上的SPN。
[0766] 随后,对采用这种方式所获得的SPN进行比较。当SPN1小于SPN2时,将SPN1转换为BD-ROM的地址。当SPN2小于SPN1时,将SPN2转换为BD-ROM的地址。
[0767] 因此,将单个时间信息转换为在主视频流和第二视频流上的SPN,并且将这些SPN中较小的一个转换为地址。因此,如果主视频流的GOP在第二视频流的GOP之前,或者如果第二视频流的GOP在主视频流的GOP之前,都能够读出两个GOP。
[0768] 注意,当存在多个主视频和第二视频时,能够从需要进行显示的多个视频流的多个重放开始点之中选择具有最早点的开始地址,并且不必对不进行显示的流执行地址搜索。
[0769] 实施例7
[0770] 本实施例涉及用于使得重放设备实行逐个章节的重放的改进。经常的情况是,在一个电影标题中定义了称为章节的部分(其是通过根据电影情景或内容对电影进行分割来创建的),并且能够从用户所选择的章节的开头处开始进行重放。考虑对画中画采用这种章节选择应用。
[0771] 章节的开头是情景中的中断或者内容中的改变,优选地是,当从章节开头处播放该章节时,在起始情景时刻,不仅开始主视频的重放,而且还开始第二视频的重放。
[0772] 图59示出了播放列表信息的播放列表标记(PlayListMark)信息。在该图中的层次2和层次3示出了主视频流和第二视频流的GOP,层次1示出了播放列表标记信息。播放列表标记信息是通过将多个章节编号中的每一个与时间信息相关联而建立的。
[0773] 章节的位置由时间信息表示。因此,为了根据章节确定重放开始地址,重放设备通过上述使用EP_map的方法来确定该地址,并从该地址开始数据的读出。
[0774] 当仅为主视频设定EP_map时,为主视频提供标记,并且要同步播放的第二视频的开始点应该放置在比主视频的开始点靠后的位置。
[0775] <跳过点(skip point)>
[0776] 与章节边界类似,通过使用能够指定在标题时间轴上的一个点的标记,能够通过用户作出的跳过操作来指定跳转点(jump point)。对跳过点的GOP定位的控制以及从跳过点开始的重放方法与用于章节开始的控制和方法相同。
[0777] 现在,要考虑的情况是,为多个第二视频分别设置跳过点。
[0778] 可能的是,在为主视频设置跳过点时,用户能够指定跳过点并且不论是否显示第二视频都使重放点跳转到该点。这是在例如当在主电影的情景发生改变的点处提供跳过点时使用的。另一方面,对于第二视频(其为例如,导演解说的视频)的跳过点,如果这些跳过点有效,除了正在显示相应的视频之外都会令用户困惑。
[0779] 图60示出了用于指定第二视频流所在位置作为章节的播放列表标记信息。在该图中,层次2、3和4分别示出了主视频流和两个第二视频流,而层次1示出了播放列表标记信息的内容。
[0780] 第二视频流#1是导演解说的视频,其具有跳过点,因为该解说的内容在中间发生了改变。在该情况下,如果正在显示第二视频流#1,则用户能够通过指定跳过点(标记编号2)来进行跳转。然而,应该设计为,在没有显示第二视频流#1时或者在正在显示第二视频流#2时,用户不能进行该跳转。
[0781] 因此,在本实施例中,播放列表标记信息的每个标记信息都与称为“流说明”的字段相关联。每个标记信息最初包含标记编号和相应的时间信息,并且现在为标记信息提供了流说明字段。
[0782] 如果流说明字段被设定为“无说明(全部)”,则允许对该标记信息点的章节跳转且与第二视频流的显示无关。如果在流说明字段中设定了“第二视频流#1”,则仅仅在播放第二视频流#1时才允许对该标记信息点的章节跳转。
[0783] 如果在流说明字段中设定了“第二视频流#2”,则仅仅在播放第二视频流#2时才允许对该标记信息点的章节跳转。因此,重放设备使得用户能够使用适合于所显示视频的内容的跳过点。
[0784] 因此,通过在各个流上设置跳过点,能够提供允许用户根据所显示内容而跳转到适当位置的机制。
[0785] 注意,在希望通过使用GUI强制性地指定标记编号来将重放开始点移动到标记2的位置处的情况下,即使是没有显示第二视频流#1或者正在显示另一第二视频流时,也能够将显示强制性地改变到第二视频流#1,并且将重放点移动到该跳过点。
[0786] 实施例8
[0787] 本实施例涉及对于主视频和第二视频是隔行扫描视频的情况的改进。画面数据由以下要描述的前场(TOP field)和后场(BOTTOMfield)组成。前场是构成一个帧的多个行中的奇数行的汇集。后场是构成一个帧的多个行中的偶数行的汇集。
[0788] 图61A示出了构成主视频和第二视频的视频场。在画中画中,构成主视频的视频场和构成第二视频的视频场按照一对一的方式合成。因此,待合成的主视频和第二视频的视频场可以是彼此同相或者反相的。
[0789] 图61B示出了待合成的视频场是彼此同相的情况下的组合。同相组合意思是,如图所示,主视频和第二视频都是前场或者都是后场。
[0790] 图61C示出了待合成的视频场是彼此反相的情况下的组合。反相组合意思是,如图所示,主视频是前场而第二视频是后场,或者主视频是后场而第二视频是前场。
[0791] 因此两种不同的类型的组合都是可能的,当合成主视频和第二视频时,能够创建如图62A和62B所示的两种画中画图像。图62A示出了主视频的视频场的偶数行与第二视频的视频场的偶数行匹配的画中画图像。这种画中画图像能够输出并显示在TV上。
[0792] 图62B示出了主视频的视频场的偶数行与第二视频的视频场的奇数行匹配的画中画图像。这种画中画图像不能够输出并显示在TV上。
[0793] 为了避免得到不能显示的画中画图像,即图62B所示的合成图像,在本实施例的记录介质中,采用以下方式来调节第二视频的位置的显示点。
[0794] 图63示出了在对在构成主视频的多个视频场中的给定视频场Fx和在构成第二视频的多个视频场中的给定视频场Fy进行合成并输出的情况下,如何调节视频场Fy的位置和显示时间。
[0795] 在 此,当 由 PiP_metadata_block 中 的 PiP_horizontal_position 和 PiP_vertical_position所指定的坐标是(Px,Py)时,通过将坐标(Px,Py)向上或者向下滑动,如箭头sd1所示,来调节Py的位置。
[0796] 当在重放时间轴上的主视频的场数据的显示时刻为Ty,通过在时间的未来方向和过去方向上滑动该显示时刻,如箭头sd2所示,来调节由PiP_metadata_time_stamp所指定的显示点。
[0797] 图64示出了将第二视频的场Fy与主视频的同相场一起进行显示的情况。在此,从主视频场中的多个偶数行中的一个行(图中为偶数1)中选出坐标(Px,Py)的Py,其应该由PiP_metadata_block的PiP_horizontal_position和PiP_vertical_position指定。因此,能够获得可播放的画中画图像。
[0798] 图65示出了将第二视频的场Fy与主视频的反相场一起进行显示的情况。在此,从主视频场中的多个偶数行中的一个行(图中为奇数1)中选出坐标(Px,Py)的Py,其应该由PiP_metadata_block的PiP_horizontal_position和PiP_vertical_position指定。
[0799] 图66示出了在主视频的偶数行上显示第二视频场的情况。在此,从应该显示主视频的同相场的多个时间点中选出时间点Ty,其应该由PiP_metadata_block的PiP_metadata_time_stamp指定。因此,能够获得可播放的画中画图像。
[0800] 图67示出了在主视频的奇数行上显示第二视频场的情况。在此,从应该显示主视频的反相场的多个时间点中选出时间点Ty,其应该由PiP_metadata_block的PiP_metadata_time_stamp指定。因此,能够获得可播放的画中画图像。
[0801] 根据要实现的内容(即,第二视频的时间点或者第二视频的坐标),能够创建可播放的组合。因此,在创作阶段,确保将会正确地执行重放输出。
[0802] 实施例9
[0803] 本实施例涉及在创作阶段没有进行对PiP_metadata_block(其在先前实施例中进行了描述)的调节的情况下,在重放设备端进行的补偿。
[0804] 在本实施例中的重放设备检查画中画的合成模式是图62A中所示的模式还是图62B中所示的模式。当其是图62B中所示的模式时,重放设备进行在图64到67中所示的调节。因此,即使是在创作过程中没有调节用于采用实例创建画中画的PiP_metadata_time_stamp、PiP_horizontal_position和PiP_vertical_position,也能够实现画中画。
[0805] 根据本实施例,即使是在创作时没有进行用于实行画中画的调节,重放设备也能够对此进行补偿。
[0806] 实施例10
[0807] 本实施例涉及对以下情况的改进:通过在每个实施例的重放设备上安装用于封装TM介质目标的Java 2Micro_Edition(J2ME)Personal Basis Profile(PBP 1.0)和全局可执TM
行MHP说明书(GEM1.0.2)来构建Java 平台,并使得重放设备执行BD-J应用程序。
[0808] 播放列表信息包括如实施例1中所述的主路径信息和子路径信息,主路径信息指定主视频流,子路径信息的子播放项指定第二视频流。因此,Java应用程序能够通过命令Java虚拟机生成用于播放多个播放列表的JMF播放器实例,来使得重放设备执行画中画重放。JMF播放器实例的生成优选地是通过称为JMF A”BD://00001.mpls”的方法来实现的。
[0809] 注意,可以使Java虚拟机生成指定在主视频流中的重放部分的播放项信息的JMF播放器实例和指定在第二视频流中的重放部分的子播放项信息的JMF播放器实例,然后可以使重放设备根据这两个播放器实例来执行重放。
[0810] <补充注意事项>
[0811] 已经描述了在提交本申请时申请人所知道的用于实现本发明的最佳方式。然而,在以下技术主题上,能够对本发明进行进一步的改进或者修改。在此应该注意,是否进行这种改进和修改是可选的,取决于本发明的实现情况。
[0812] <标题>
[0813] 优选的是,在重放设备中创建“模块管理器”,其根据BD-ROM的加载、用户操作、或者设备状态,来选择标题。在BD-ROM重放设备中的解码器根据“模块管理器”的标题选择,基于播放列表信息来执行AV片段的重放。
[0814] 当“模块管理器”选择一个标题时,应用程序管理器使用与先前标题相对应的应用程序管理表(AMT)和与当前标题相对应的AMT来进行信号发送。所述信号发送进行如下控制:终止在先前标题的AMT中描述了但是在当前标题的AMT中未描述的应用程序的操作,同时开始在先前标题的AMT中未描述但是在当前标题的AMT中描述了的应用程序的操作。
[0815] <本地存储器中的目录结构>
[0816] 优选地,在与BD-ROM的盘的根证书相对应的目录下,创建在每个实施例中所述的在本地存储器中的各个区域。
[0817] 盘的根证书是根证书授权中心(root certificate authority)发布并由BD-ROM的创建者指定给BD-ROM的证书。盘的根证书是采用例如X.509编码的。X.509的说明书已经由国际电报电话咨询委员会发布,并在CCITT Recommendation X.509(1988),”The Directory_Authentication Framework”中进行了描述。
[0818] 另外,优选的是,使用先进访问内容系统(Advanced AccessContent System,AACS)来编码记录在BD-ROM和本地存储器中的内容,并且对其附加签名信息,并在许可文件中指定使用授权。
[0819] <控制过程的实现>
[0820] 在上述实施例中使用流程图所解释的控制过程以及在上述实施例中所解释的功能组件的控制过程满足“程序发明”的要求,因为上述控制过程具体上是采用硬件资源实现的,并且是利用自然规律的技术方案的创建。
[0821] ●本发明的程序的产生
[0822] 本发明的程序是能够在计算机上执行的目标程序。该目标程序是包括使计算机执行在流程图中的每个步骤或者功能组件的每个过程的一个或多个程序代码。存在各种类型TM的程序代码,例如处理器的自然语言、JAVA 字节代码。还存在实现程序代码的步骤的各种形式。例如,当能够使用外部函数实现每个步骤时,使用call语句来调用外部函数。实现一个步骤的程序代码可以属于不同的目标程序。在指令类型受到限制的RISC处理器中,可以通过将算术运算指令、逻辑运算指令、分支指令等等进行组合,来实现流程图中每个步骤。
[0823] 本发明的程序能够按照如下产生。首先,软件开发者使用编程语言编写实现每个流程图和功能组件的源代码。在该编写中,软件开发者使用符合她/他所使用的编程语言的语句结构的类结构、变量、数组变量、对外部函数的调用等等。
[0824] 将所编写的源程序作为文件发送到编译器。编译器转换源代码,生成目标程序。
[0825] 编译器所执行的转换包括诸如语句结构分析、优化、资源分配、和代码生成之类的过程。在语句结构分析中,对字符和短语、语句结构、以及源程序的含义进行分析,并将源程序转换为中间程序。在优化中,对中间程序进行诸如基本块设置、控制流分析、以及数据流分析之类的处理。在资源分配中,为了适合于目标处理器的指令集,将中间程序中的变量分配给目标处理器的寄存器或者存储器。在代码生成中,将在中间程序中的每个中间指令转换为程序代码,获得目标程序。
[0826] 在生成了目标程序之后,程序员启动连接器。连接器为目标程序和相关的库程序分配存储器空间,并将其连接在一起,来生成装入模块(load module)。所生成的转入模块是基于以下假设的:其已经被计算机读出,并使得计算机执行在流程图中所指示的过程和功能组件的过程。这样就产生了本发明的程序。
[0827] 能够按照如下来使用本发明的程序。当将本发明的程序用作嵌入程序时,将作为该程序的装入模块与基本输入/输出系统(BIOS)程序和各种中间件(操作系统)一起写入指令ROM中。在将该指令ROM嵌入到控制单元中并由CPU执行时,本发明的程序用作重放设备300的控制程序。
[0828] 当重放设备是自举模块时,将基本输入/输出系统(BIOS)程序嵌入指令ROM中,并且将各种中间件(操作系统)预先装入第二记录介质中,例如硬盘。通常,在重放设备中提供引导ROM,用于启动来自第二记录介质的系统。在该情况下,经由可移动记录介质和/或者网络而仅将装入模块提供给重放设备,并将其作为应用程序安装在第二记录介质上。这使得重放设备能够执行引导ROM的自举,以启动操作系统,然后使得CPU执行作为应用程序而安装的装入模块,从而能够使用本发明的程序。
[0829] 如上所述,当重放设备是自举模块时,本发明的程序能够用作一个应用程序。因此,可以经由网络独立地运输、出借、提供本发明的程序。
[0830] <控制器22>
[0831] 控制器22能够实现为一个系统LSI。
[0832] 该系统LSI是通过在高密度基板上实现承载芯片(bear chip)并对它们进行封装而获得的。系统LSI还通过在高密度基板上实现多个承载芯片并对它们进行封装从而这些承载芯片具有一个LSI的外观(这种LSI称为多芯片模块)来获得的。
[0833] 系统LSI具有QFP(四侧引脚扁平封装)类型和PGA(引脚网格阵列)类型。在QFP类型的系统LSI中,引脚附着在封装的4个边上。在PGA类型的系统LSI中,多个引脚附着在整个底部。
[0834] 这些引脚充当与其他电路的接口。系统LSI通过作为接口的这种引脚与其他电路相连,起到了重放设备300的核心的作用。
[0835] 如以上“用作嵌入程序”中所述,将作为程序的装入模块、基本输入/输出系统(BIOS)和各种中间件(操作系统)写入指令ROM。本实施例的主要改进是通过作为程序的装入模块来实现的。因此,本发明的系统LSI可以通过在其中装入存储了作为程序的装入模块的指令ROM作为承载芯片来生成。
[0836] 具体的生成过程如下。首先,基于在每个实施例中的结构图,创建要成为系统LSI的部件的电路图,并使用电路元件和IC或者LSI来实现在结构图中的组件。
[0837] 因此实现了每个组件,然后指定在电路元件和IC或者LSI、外围电路、与外部的接口等等之间进行相连的总线。除此之外,还指定连接线、电源线、地线、时钟信号线等等。在这些说明中,考虑到LSI的规格来调节每个组件的操作时刻,并且通过进行调节,例如为每个组件分配所需带宽,来完成电路图。
[0838] 在完成了电路图之后,进行实现设计。实现设计是用于以下的工作:创建基板布局以便决定在电路设计中所创建的电路图中的组件(电路元件和IC或者LSI)放置在基板的什么位置,或者电路图上的连接线在基板上是如何进行走线的。
[0839] 在此,该实现设计包括自动放置和自动走线,
[0840] 在使用CAD设备的情况下,通过使用称为“质心法”的具体算法,能够实现这种自动放置。自动走线定义了用于使用金属薄片和通孔连接电路图组件的引脚的连接线。当使用CAD设备时,通过使用称为迷宫(maze)算法和线搜索算法的具体算法能够实现该走线过程。
[0841] 这样就进行了实现设计,一旦决定了在基板上的布局,就将实现设计的结果转换为CAM数据并输出到诸如NC机器工具之类的装置上。NC机器工具根据CAM数据执行SoC实现或者SiP实现。SoC(芯片上系统)实现是将多个电路烧制到一个芯片上的技术。SiP(封装内系统)实现是使用树脂将多个芯片放置在一个封装中的技术。通过以上过程,根据在每个实施例中所述的重放设备的内部结构图,能够生产本发明的系统LSI。
[0842] 在此应该注意,尽管在此使用了术语LSI,但是其可以称为IC、LSI、超大LSI、极大LSI等等,这取决于集成程度。
[0843] 此外,每个重放设备的组件中的一部分或者全部可以实现为一个芯片。集成电路并不局限于SoC实现或者SiP实现,而是可以使用专用电路或者通用处理器来实现。也可以通过使用FPGA(现场可编程门阵列)或者可重构处理器来实现该集成电路,其中,FPGA在制造之后能够进行再次编程,可重构处理器能够重新配置在LSI内部的电路单元的连接和设置。此外,随着半导体技术的改进或者分支到另一种技术,在即将到来的未来可能出现替代LSI的集成电路技术。在该情况下,可以将该新技术结合到如上所述的、构成本发明的功能模块的集成中。这种可能的技术包括生物工程学。
[0844] <架构>
[0845] 由于假设本发明的系统LSI是内建到BD-ROM重放设备中的,因此,系统LSI优选地符合UniPhier架构。
[0846] 服从UniPhier架构的系统LSI包括以下电路模块。
[0847] ●数据并行处理器DPP
[0848] 这是一种SIMD处理器,在其中,多个单元处理器(elementprocessor)并行地操作,通过用一条指令并行地操作内建在各个单元处理器中的计算单元,来将构成一个画面的多个像素的解码处理并行化。实现这种并行化实现了对视频流的解码。上述视频解码器被实现为这种数据并行处理器。
[0849] ●指令并行处理器
[0850] 其包含:指令RAM、指令高速缓存、数据RAM、由数据高速缓存组成的“本地存储器控制器”、指令读取单元、解码器、执行单元、由寄存器文件(register file)构成的“处理单元”、以及使得处理单元执行多个应用程序的并行化的“虚拟多处理器单元”。除了视频解码器之外的图形解码器和音频解码器在系统LSI中被实现为指令并行处理器IPP。
[0851] ●CPU模块
[0852] 其包含:ARM内核、外部总线接口(BUS控制单元:BCU)、DMA控制器、定时器、诸如矢量中断控制器之类的外围电路、UART、GPIO(通用输入输出)、以及诸如同步串行接口之类的外围接口。上述控制器在系统LSI中实现为该CPU模块。
[0853] ●流I/O模块
[0854] 其执行与经由USB接口或者ATA分组接口连接的外部总线上的BD-ROM驱动设备、硬盘驱动设备和SD存储卡驱动设备之间的数据输入输出。
[0855] ●AVI/O模块
[0856] 其包含音频输入输出、视频输入输出和OSD控制器,并执行TV和AV放大器的数据输入输出。
[0857] ●存储器控制模块
[0858] 其是实现经由外部总线连接的SD-RAM的读写的模块,并且包括:内部总线连接单元,其控制在各个模块之间的内部连接;访问控制单元,其执行与连接到系统LSI外部的SD-RAM之间的传输;以及访问调度单元,其调节每个块的对于访问SD-RAM的请求。
[0859] 关于符合这种架构的系统LSI的生产,希望采用从低到上(bottom-up)的布局技术,该技术通过为每个电路块(例如IPP和DPP)进行布局,并在对每个电路块的性能进行优化之后建立每个块,来完成一个芯片布局。
[0860] 工业可应用性
[0861] 本发明的记录介质和重放设备能够根据在以上实施例中所示的其内部结构而批量制造。这样,本发明的重放设备具有工业可应用性。