再现装置、再现方法、再现程序和记录介质
技术领域
本发明涉及一种再现装置、一种再现方法、一种再现程序和一种记录介质,能够允许用户交互地操作一个记录在例如蓝光光盘等大容量记录介质中的程序。
背景技术
近年来,提出了蓝光光盘(blu-ray DispC)标准,该标准用于一种可以从记录和再现装置分离的可记录盘型记录介质。蓝光光盘标准规定一种具有记录介质的光盘,其直径为12cm,表面层的厚度是0.1mm。蓝光光盘标准使用一种波长为405nm的蓝紫色激光,以及一种数值孔径为0.85的物镜。蓝光光盘标准达到的最大记录容量是27GB(千兆字节)。结果是,可以记录两小时或更长的在日本采用的广播卫星(BS)数字高清广播节目,而且没有图像质量的退化。
作为记录在可记录光盘中的音频/视频(AV)信号源(来源),可以采用例如传统模拟电视广播的模拟信号,以及例如BS数字广播等的数字化电视广播的数字信号。蓝光光盘标准已建立了一种用于记录上述广播的AV信号的方法。
另一方面,作为当前蓝光光盘标准的派生标准,发展了一种只再现(reproduction-only)记录介质,其中可以预先记录一段影片、音乐等。数字视频光盘(DVD)作为一种其中预先刻录影片或音乐的圆盘型记录介质,已经得到广泛使用。与蓝色光盘标准一致的只再现光盘与传统DVD有非常大的差异,并且在大记录容量和高速传输速度方面优于传统DVD,这允许以高质量记录两小时或更长的高清图像。
另一方面,目前蓝光光盘标准所规定的既不是一种用于在屏幕上显示一张光盘的视频内容列表的方法,也不是一种用户界面功能,该功能用于允许用户在列表上移动游标并且从列表中选择他或她想要再现的一个视频内容。这些功能是由一个记录和再现装置主单元实现的,该单元记录视频内容到蓝光光盘,并从蓝光光盘再现视频内容。因而,即使从相同的记录介质再现一个视频内容,内容列表屏幕的布局也取决于所使用的记录和再现装置,用户界面也是如此。因而,用户不能很方便地使用蓝光光盘。所以,有必要让只再现光盘能显示一个菜单屏幕,以及光盘(内容)制造者已设计好的其它类似的屏幕,该屏幕的显示不依赖于再现装置。
此外,多情节功能,即当正在再现一个视频内容时显示一个选择屏幕,通常被称作交互功能。要实现上述交互功能,光盘制造者必须创建一个脚本(scenario),其中他或她指定一个再现命令以及视频内容的分支,使用程序语言、脚本语言等描述该脚本,并且将描述后的脚本记录在光盘上。再现装置端读出并执行该脚本。结果,再现装置再现一个视频内容,并且显示选择屏幕,该选择屏幕允许用户选择制造者已指定好的视频内容的分支。
因而,目前的蓝光光盘标准(蓝光光盘可擦写格式版本1.0)所规定的既不是一种组成菜单屏幕和内容制造者指定的分支选择屏幕的方法,也不是描述用户输入过程的方法。因此,到此为止,如果制造者在设计脚本时没有考虑再现装置的制造商和型号的兼容性,要根据这样的脚本从蓝光光盘中再现视频内容是很困难的。
对于一个已记录了影片的只再现光盘来说,显示辅助字幕的功能是必需的。然而,现有的蓝光光盘标准没有规定描述辅助字幕的功能。
另一方面,上述的交互功能已在例如DVD(数字视频光盘)标准等标准中实现。例如,在DVD视频中,当正在再现一个影片时,使用一个远程控制指挥器调用菜单屏幕。例如,通过选择菜单屏幕上所显示的按键,用户可以执行一个程序,用于改变正在再现的当前场景。DVD标准还规定了显示字幕的功能。上述功能允许用户从日文字幕转换到已准备好的英文字幕,反之亦然。
关于DVD,菜单屏幕是由一固定的子画面构成。当调用菜单屏幕时,子画面以组合一段影片的方式显示。日本专利申请公开NO.平10-308924(以下称为专利文献1)描述了一个结构,用于将子画面数据和影片数据组合,并将组合后的数据记录在可记录DVD中。
接下来,将根据相关参考技术简要描述一个菜单屏幕的例子。通过再现装置,在从DVD中再现影片主要部分之前先再现菜单屏幕。通常,菜单屏幕上设置了若干按键。每个按键都指定了一个预定操作。当用户选择一个按键并使得执行所选择按键的操作时,该按键已指定的操作被执行。例如,当用户选择了按键“影片主要部分”,并使得执行所选择按键的操作时,该按键指定的操作被执行。结果,从DVD再现影片的主要部分。
用户使用例如远程控制指挥器(下文中称为远程控制器)来操作已指定为上、下、左和右方向的键(方向键),以选择显示在菜单屏幕上的按键。此后,用户使用OK键执行已选择的按键的指定操作。此外,每个按键有三个状态:正常状态(未选择状态),选择状态,以及执行状态。为了让用户很容易地区别它们,它们有不同的图像和颜色。通常,只有一个按键处于选择状态或执行状态。
例如,在DVD视频中,使用称为子画面和高亮的两种类型的数据来显示每个按键。图1示出了根据相关参考技术的DVD菜单屏幕300的一个例子。菜单屏幕300称为“标题菜单”。菜单屏幕300有三个按键301A、301B和301C,它们分别代表“再现电影主要部分”、“花絮画面”和“音效设定”。在图1所示的例子中,“再现影片主要部分”按键301A的外框的颜色从原始颜色发生了变化。这说明“再现影片主要部分”按键301A已处于选择状态。
在上述状态中,当用户操作远程控制器上的方向键时,如图2A、图2B、图2C所示,他或她可以使另一个按键处于选择状态。就像图1所示的情况,已选择按键的外框的颜色与没有被选择的按键(未选择按键)的颜色是不同的。例如,图1所示的情况中,当用户操作设置在远程控制器上的OK按键时,如图3所示,“再现影片主要部分”按键301A的颜色改变成了一个代表执行状态的颜色。此后,菜单屏幕300被清除,并且再现影片主要部分。上述的是DVD视频的按键的基本操作。
图1所示的菜单屏幕300由三种类型的数据构成,上述三种类型的数据为背景画面310、子画面311、和高亮312,分别如图4A、图4B、图4C所示。背景画面310是一个静态画面,DVD预录的内容主要部分的电影等。
如图5所示,子画面311有一个位映象、四色信息(A0、B0、C0、D0),以及坐标(X,Y)。位映象图像是由每个像素两位信息表示的。坐标(X,Y)表示子画面311的显示开始位置。每个颜色信息A0、B0、C0和D0是由一组R(红)、G(绿)和B(蓝)数据构成的单色信息数据。每个颜色R、G和B有8位的信息。位映象图像的每个像素有两位信息。这两位中,一位是从用于每个像素的上述四色信息(A0、B0、C0、D0)中选择出的。颜色信息还有透明度数据。子画面311可以有一个区域,在该区域中背景画面310是透明的。子画面311的左上角的显示位置是由相对于背景画面310的坐标(X,Y)来表示的。
此外,子画面311可以有表示显示开始时间和结束时间的信息,以及引起例如淡入和淡出等视觉效果应用于子画面311上的命令。
在DVD视频中,不能同时显示多个位映象图像。因而,如图1所示的其上有若干按键的菜单屏幕300是由具有如图4B所示的三个按键图像的一个大的位映象图像所显示。在图4B所示的子画面311的位映象图像中,当指定按键301A、301B和301C外部的一个区域为透明区域,并且子画面311与背景画面310组合时,在按键301A、301B和301C的显示区域外部的背景画面310变成透明。
高亮(highlight)312是用来将子画面311所使用的四色改变成其它四色的信息。如图5示,作为颜色信息,高亮312具有选择状态的颜色信息(A1、B1、C1、D1)和执行状态的颜色信息(A2、B2、C2、D2)。这些颜色信息是四色信息,如上述子画面311那样,每个信息由8位的RGB表示。
高亮312有一组区域的坐标,在区域中颜色被改变。颜色改变的范围不限于全部子画面311,而是子画面311的正方形区域的一部分。子画面311中正方形区域的数量对应于用户可以选择的按键的数量,高亮312可以改变上述区域的颜色。每个正方形区域的显示位置由其左上角和右下角的坐标(X,Y)表示。例如,相应于按键301A的高亮312A的位置是由坐标(X1,Y1)和(X1′,Y1′)表示的。应用的高亮312B和312C分别相应于按键301B和301C。
例如,在高亮312A中,背景图像310的由坐标(X1,Y1)和(X1′,Y1′)表示的一个区域的颜色信息(A0、B0、C0、D0)被改变成指定为选择状态颜色的颜色信息(A1、B1、C1、D1)。在这里,背景图像310的颜色信息A0改变成高亮312A的颜色信息A1。类似地,背景图像310的颜色信息B0改变成颜色信息B1。颜色信息C0改变成颜色信息C1。颜色信息D0改变成颜色信息D1。
接下来,将根据图1、图2A、图2B、图2C和图3所示的菜单屏幕300的按键301A的状态的改变,描述高亮312的颜色改变的一个例子。假定当按键301A在未选择状态时,按键301A的帧、前面和字体分别由颜色信息B0、颜色信息C0、颜色信息C0显示。当按键301A处于选择状态时,其帧颜色信息B0改变成对应于高亮312A的选择状态的颜色信息B1。此时,前面颜色C0和字体颜色D0没有改变。此后,当按键301A处于执行状态时,其选择状态的颜色即前面颜色C0改变成颜色信息C1。此时,选择状态颜色的帧颜色B1和字体颜色D0没有改变。
当正常再现DVD视频画面时,显示对应于背景画面310的一个画面。另一方面,当再现一个具有字幕的影片时,需要再现影片主要部分背景画面310,并且需要显示字幕子画面311,将背景画面310和子画面311组合在一起并且显示。
然而,在DVD视频中,子画面311、表示选择状态的高亮312及表示执行状态的高亮312,它们各自最多只能使用四种颜色。因而,不能显示具有多色的子画面,是现有技术的一个难题。
此外,高亮312只能改变子画面311的颜色。因而,按键的字体不能在例如选择状态和执行状态中改变。此外,不能实现改变按键形状的效果。因而,现有技术不能实现丰富的用户界面。
此外,通常使用子画面311以相同模式显示字幕和按键。因而,不能分别控制和显示字幕和按键。此外,不能完成一个组合方法,以设置和组合字幕和按键的透明度,并且显示组合后的画面。
此外,在DVD视频中,当调用菜单屏幕时,停止再现在其背景中的影片数据。因而,通常即使实现了上述交互功能,实现该功能的用户界面的灵活性也很低。
在DVD视频中,在标准中没有规定用于与字幕的显示和改变同步地生成效果声音的方案。因而,不能与例如字幕等同步地生成效果声音,是现有技术的一个难题。
此外,上述标准没有规定一个为按键生成效果声音的方案,例如当用户将一个按键置于选择状态时,生成一个效果声音,或者当一个按键处于选择状态时用户操作OK键,生成一个点击声音。因而,要实现丰富的用户界面是困难的,这是现有技术的一个难题。
上述的效果声音不是与显示在影片平面上的影片或静止画面同步地再现的声音数据(例如,与影片成对地记录的声音),而是由字幕和按键的显示控制所再现的、或是与上述显示控制同步地再现的音频数据。
发明内容
因此,本发明的目标是提供一个再现装置、一个再现方法、一个再现程序和一个记录介质,其能够为大容量只再现光盘实现具有高灵活性的用户界面。
本发明另一个目标是提供一个再现装置、一个再现方法、一个再现程序和一个记录介质,其能够为大容量只再现光盘实现丰富的用户界面。
本发明的第一方面是一个再现装置,用于再现记录在盘型的记录介质中的内容数据,该装置包括输入装置,用于输入从记录介质再现的非实时流和实时流,该非实时流包括一个存储至少一组程序码的文件、组成一个操作屏幕以提示用户执行一个操作的图像数据、用来再现效果声音的若干段声音数据,实时流至少包括影片数据和字幕数据;再现装置还包括存储装置,用于存储由输入装置输入的程序码;以及包括图像数据存储装置,用于存储由输入装置输入的图像数据;该装置还包括一个第一组合装置,用于组合解码后的影片数据和解码后的字幕数据,上述影片数据是由输入装置解码并输入的,上述字幕数据是由输入装置解码并输入的;该装置还包括一个第二组合装置,根据存储在码存储装置中的程序码,对存储在图像数据存储装置中的解码后的图像数据,以及解码后的影片和字幕数据的组合数据进行组合。
本发明的第二部分是再现方法,用于再现存储在盘型记录介质中的内容数据,该方法包括步骤,输入从记录介质再现的非实时流和实时流,该非实时流包括一个存储至少一组程序码的文件、组成一个操作屏幕以提示用户执行一个操作的图像数据、用来再现效果声音的若干段声音数据,实时流至少包括影片数据和字幕数据;存储在输入步骤中所输入的程序码的步骤;存储在输入步骤中所输入的图像数据的步骤;组合解码后的影片数据和解码后的字幕数据的步骤,上述影片数据是在输入步骤中解码并输入的,上述字幕数据是在输入步骤中解码并输入的;组合在第二存储步骤中存储的解码后的图像数据,以及解码后的影片和字幕数据的组合数据,上述解码后的影片和字幕数据的组合数据是在第一组合步骤中根据在第一存储步骤中存储的程序码,组合解码后的影片和字幕数据所产生的。
本发明第三步骤是一个再现程序,用于使得一个计算机装置执行一个再现方法,该方法用于再现存储在盘型记录介质中的内容数据,该方法包括步骤,输入从记录介质再现的非实时流和实时流,该非实时流包括一个存储至少一组程序码的文件、组成一个操作屏幕以提示用户执行一个操作的图像数据、用来再现效果声音的若干段声音数据,实时流至少包括影片数据和字幕数据;存储在输入步骤中所输入的程序码的步骤;存储在输入步骤中所输入的图像数据的步骤;组合解码后的影片数据和解码后的字幕数据的步骤,上述影片数据是在输入步骤中解码并输入的,上述字幕数据是在输入步骤中解码并输入的;组合在第二存储步骤中存储的解码后的图像数据,以及解码后的影片和字幕数据的组合数据,上述解码后的影片和字幕数据的组合数据是在第一组合步骤中根据在第一存储步骤中存储的程序码,组合解码后的影片和字幕数据所产生的。
本发明第四方法包括一个记录介质,一个计算机装置从上述介质中能读出一个再现程序,该程序用于使得一个计算机装置执行一个再现方法,该方法用于再现存储在盘型记录介质中的内容数据,该方法包括步骤,输入从记录介质再现的非实时流和实时流,该非实时流包括一个存储至少一组程序码的文件、组成一个操作屏幕以提示用户执行一个操作的图像数据、用来再现效果声音的若干段声音数据,实时流至少包括影片数据和字幕数据;存储在输入步骤中所输入的程序码的步骤;存储在输入步骤中所输入的图像数据的步骤;组合解码后的影片数据和解码后的字幕数据的步骤,上述影片数据是在输入步骤中解码并输入的,上述字幕数据是在输入步骤中解码并输入的;组合在第二存储步骤中存储的解码后的图像数据,以及解码后的影片和字幕数据的组合数据,上述解码后的影片和字幕数据的组合数据是在第一组合步骤中根据在第一存储步骤中存储的程序码,组合解码后的影片和字幕数据所产生的。
本发明第五方面是一个盘型记录介质,其中记录了内容数据,非实时流至少包括程序码、组成一个操作屏幕以提示用户执行一个操作的图像数据,实时流至少包括影片数据和字幕数据,一个存储为一组多段声音数据的文件,用来记录效果声音,存储的解码后的图像数据,以及解码后的影片和字幕数据的组合数据,其是根据程序码而组合的。
本发明的第六方面是一个记录装置,用于记录在一个盘型记录介质上的内容数据,该装置包括:记录装置,用于记录非实时流和实时流,该非实时流包括一个存储至少一组程序码的文件、组成一个操作屏幕以提示用户执行一个操作的图像数据、用来再现效果声音的若干段声音数据,实时流至少包括影片数据和字幕数据;其中程序码要执行对解码后图像数据和一个组合数据的组合操作。该解码后的图像数据是将记录装置所记录的图像数据解码而得到的,该组合数据包括实时流的解码影片数据和实时流的字幕数据的解码字幕数据。
如上所述,根据本发明的第一到第四方面,输入从记录介质再现的非实时流和实时流。该非实时流包括该非实时流包括一个存储至少一组程序码的文件、组成一个操作屏幕以提示用户执行一个操作的图像数据、用来再现效果声音的若干段声音数据。实时流至少包括影片数据和字幕数据。程序码存储在码存储装置中。图像数据存储在图像数据存储装置中。对输入的影片数据解码后得到解码影片数据,以及对输入的字幕数据解码后得到解码字幕数据,将解码影片数据和解码字幕数据组合,得到组合数据。将上述存储在图像数据存储装置中的解码图像数据和组合数据根据存储在码存储装置中的程序码组合,上述组合数据是解码影片和解码字幕数据的组合。因而,当再现内容数据时,可以在不同时间很容易地显示使用了相同图像数据的操作屏幕。此外,可以再现提示用户在操作屏上操作的效果声音。
根据本发明的第五方面,记录了:非实时流,包括至少一组程序码;组成一个操作屏幕以提示用户执行一个操作的图像数据;实时流至少包括影片数据和字幕数据;一个文件,存储一系列多段声音数据,用于记录效果声音。根据程序码组合已存储的图像数据和组合数据,上述组合数据是解码影片和解码字幕数据的组合。因而,当再现内容数据时,可以在不同时间很容易地显示使用了相同图像数据的操作屏幕。此外,可以再现提示用户在操作屏上操作的效果声音。
根据本发明的第六方面,在记录介质中记录了非实时流,包括至少一组程序码的文件;组成一个操作屏幕以提示用户执行一个操作的图像数据;实时流,至少包括影片数据和字幕数据;一个文件,存储一系列多段声音数据,用于记录效果声音。根据存储在记录介质中的程序码,组合已存储的解码后的图像数据和组合数据,上述组合数据是解码影片和解码字幕数据的组合。因而,当再现内容数据时,可以在不同时间很容易地显示使用了相同图像数据的操作屏幕。此外,可以再现提示用户在操作屏上操作的效果声音。
如上所述,根据本发明的预录大容量光盘具有三个独立平面,它们是:用于影片的影片平面,用于字幕的字幕平面,以及图形平面,用于具有例如菜单屏幕的交互功能的屏幕。这些平面相互组合并显示。因而,作为本发明的一个效果,可以在影片平面上显示影片,同时菜单屏幕等伴随影片的背景显示在图形平面上。
此外,根据发明,由于配置了一个缓冲器,用于存储要显示在图形平面上的图像数据,可以在图形平面上重复地显示相同的图像数据。因而,作为本发明的一个效果,可以构成具有比以往更高的灵活性的菜单屏幕等。
此外,根据本发明,使用显示控制命令描述了用于显示在图形平面上的图形的显示控制。因而,作为本发明的一个效果,显示在图形平面上的屏幕实现了交互功能。
此外,根据本发明的预录大容量光盘具有三个独立的平面,它们是:用于影片的影片平面,用于字幕的字幕平面,以及图形平面,用于具有例如菜单屏幕的交互功能的一个屏幕。这些平面相互组合并显示。作为一个对象格式的公用图形对象显示在字幕平面上,并且形成图形平面。确定解码模型、显示控制命令和操作模型。因此,作为本发明的一个效果,字幕和按键可以与影片同步显示。
此外,实现了简单的动画,它滚动并且移动字幕和按键,图像的内容可以根据用户的输入而改变,从而美化了按键。
此外,根据本发明,确定一个解码模型,其中声音数据包括在图形对象中,而且当显示包括在图形对象中的按键图像时,再现声音数据。因而,可以很容易地与显示的图形对象同步地再现声音数据。
此外,根据本发明,相对于用于图形对象的显示控制命令,确定使得再现声音数据的命令。此外,可以相对于对象的显示控制命令,将声音数据指定给包括在图形对象中的图像数据。因而,作为本发明的一个效果,可以在任何时间再现作为效果声音的声音数据,而且字幕和按键也都具有效果声音。
此外,根据本发明,提供了一个方案,用于当用户选择了由图形用户界面(GUI)显示的菜单屏幕上的一个按键时,或者他或她在选择一个按键后操作OK按键时,生成效果声音,例如一个点击声音。因而,在一个再现装置、一个再现方法、一个再现程序、一个记录介质中,允许用户交互地操作一个预录在例如光盘的大容量记录介质上的程序,实现了一个丰富的用户界面,参照附图对根据下面的最佳实施例的详细描述,本发明的上述对象、特征和优点将会更加明显。
附图说明
从下面结合附图的详细描述中,将会更充分地理解本发明。附图中相同的附图标记表示相同的部分。其中:
图1示出了根据现有技术的DVD菜单屏幕的一个例子的示意图;
图2A、图2B和图2C示出了通过远程控制器的操作改变选择状态的按键的示意图;
图3示出了一个按键的颜色改变成另一个颜色的示意图,表示操作OK键的执行状态;
图4A、4B和4C示出了根据相关技术的菜单屏幕的结构的一个例子的示意图;
图5示出了根据相关技术的子画面的数据结构的例子示意图;
图6示出了用于指定AV流文件的再现顺序的方案的示意图;
图7示出了片断AV流、片断信息、片断、播放项目和播放列表的关系的UML示意图;
图8是描述了用于从若干播放列表中访问相同片断的方法的示意图;
图9是描述了记录在一个记录介质上的文件的管理结构的示意图;
图10示出了一个语法的示意图,该语法描述了文件“info.badv”的结构的例子;
图11示出了一个语法的示意图,该语法描述了一个块UIAppInfoBDAV()的结构的例子;
图12示出了一个语法的示意图,该语法描述了一个块TableOfPlayLists()的结构的例子;
图13示出了一个语法的示意图,该语法描述了文件“#####.rpls”和“#####.vpls”的结构的例子;
图14示出了一个语法的示意图,该语法描述了一个块UIAppInfoPlayList()的结构的例子;
图15示出了一个语法的示意图,该语法描述了一个块PlayList()的结构的例子;
图16示出了一个语法的示意图,该语法描述了一个块PlayItem()的结构的一个例子;
图17是描述了一个桥接片断的示意图;
图18示出了一个语法的示意图,该语法描述了一个块PlayListMark()的结构的例子;
图19示出了一个语法的示意图,该语法描述了一个文件“%%%%%.clpi”的结构的例子;
图20示出了用作根据本发明的一个实施例的画面的显示系统的一个平面的例子的示意图;
图21示出了影片平面、字幕平面和图形平面的分辨率和可显示色的例子的示意图;
图22示出了一个结构的例子的示意图,它将影片平面、字幕平面和图形平面组合;
图23是一个调色板的输入和输出数据的例子的示意图;
图24示出了调色板中的调色板表格的例子的示意图;
图25示出了显示在图形平面的菜单屏幕的例子的示意图;
图26是示出一个脚本的内部结构的例子的示意图;
图27是描述了一个BD虚拟播放器模式的示意图;
图28示出了为BD虚拟播放器特别确定的事件的例子的示意图;
图29A和图29B示出了根据本发明实施例为BD虚拟播放器确定的方法的例子的示意图;
图30A、图30B、图30C和图30D示出了根据本发明实施例为BD虚拟播放器确定的方法的例子的示意图;
图31A、图31B、图31C和图31D示出了根据本发明实施例为BD虚拟播放器确定的方法的例子的示意图;
图32示出了记录在光盘上的一个脚本的结构的例子的示意图;
图33示出了用于构造一个脚本所必需的文件列表的示意图;
图34示出了光盘中记录有一个脚本时,目录结构的例子的示意意图;
图35示出了脚本文件的描述的更实用的例子的示意图;
图36示出了脚本文件的描述的更实用的例子的示意图;
图37是HTML文件的描述的更实用的例子的示意图;
图38示出了脚本文件的描述的更实用的例子的示意图;
图39A和图39B示出了播放器解码器结构的一个例子的功能框图;
图40示出了所显示的按键的状态改变的例子的示意图;
图41是描述了对象类型的类别的示意图;
图42A、图42B和图42C示出了根据本发明实施例的图象对象的数据结构的例子的示意图;
图43示出了分割图形对象并保存在PES包中的状态的示意图;
图44示出了解码图形对象的图形对象解码器模型的结构的例子的功能框图;
图45A、图45B、图45C和图45D示出了在图形对象输入缓冲器、PNG解码器、对象缓冲器和平面缓冲器中改变的已存储数据数量的例子的示意图;
图46是描述平面刷新速度的示意图;
图47示出了一个语法的示意图,该语法描述了一个图形对象结构的例子;
图48示出了一个语法的示意图,该语法描述了一个块G1obalPaletteTable()的结构的例子;
图49A和图49B示出了命令组DispCmds(i)的显示控制命令列表的例子的示意图;
图50A和图50B是描述了命令set_display_box(x1,y1,x2,y2)和命令set_clipping_box(a1,b1,a2,b2)的示意图;
图51是描述了坐标轴的确定的示意图;
图52是描述了命令组DispCmds(i)和显示的图形对象的改变的例子的示意图;
图53A、图53B、图53C和图53D示出了字幕逐渐地显示淡入的例子的示意图;
图54A和图54B示出了作为字幕的PNG图像在平面上移动的例子的示意图;
图55A和图55B示出了显示的字幕滚动的例子的示意图;
图56A和图56B示出了表示PNG图像一部分的帧被指定、帧在PNG图像上移动并且其位置在平面上移动的示意图;
图57是描述了命令组IispCmds(i)的示意图,一个命令play_sound(sound_id)添加到上述命令组,这示出了改变显示的图形对象的例子;
图58示出了图形对象的数据结构的例子的示意图,其中声音数据已经被指定到按键图像;
图59A、图59B、图59C示出了在图形对象中放置声音数据的方法的例子的示意图;
图60示出了已添加了一个声音数据处理系统的图形对象解码模型的例子的功能框图;
图61示出了一个语法的示意图,该语法描述了已添加了声音数据的图形对象结构的例子;
图62示出了声音数据没有位于图形对象中时数据管理结构的例子的示意图;
图63示出了声音数据没有位于图形对象中描述声音数据的再现的更实用的示意图;
图64是描述了记录在记录介质上的文件的管理结构的示意图;
图65示出了一个语法的示意图,该语法描述了文件“HdmvSound.bdmv”的例子;
图66示出了文件“HdmvSound.bdmv”的结构的示意图;
图67示出了根据第三存储方法再现效果声音的应用程序的图像的例子的示意图;
图68A和图68B示出了交互图形流的结构的例子的示意图;
图69示出了交互组成片段的结构的示意图;
图70是描述了交互组成片段的一个域neibour_info的示意图;
图71示出了根据本发明实施例的用作画面显示系统的平面结构的另一个例子的示意图;
图72示出了影片平面、字幕平面、图形平面的分辨率和可显示色的另一个例子的示意图;
图73示出了根据另一个例子的一个结构的方块图,该结构组合了影片平面、字幕平面和图形平面;
图74A和图74B示出了播放器解码器的结构的例子的功能框图;
图75A和图75B示出了播放器解码器结构的另一个例子的功能框图;
图76是描述了声音数据文件定位到子播放项目的示意图;
图77是描述用于记录在记录介质上的文件的管理结构的示意图;
图78示出了根据本发明第二模式的一个脚本的内部结构的例子的示意图,该脚本使用了最初确定的脚本描述语言;
图79是描述了脚本结构的目录的示意图;
图80A、图80B和图80C是描述了脚本结构的目录的示意图;
图81是描述了标题和段的示意图;
图82A和图82B示出了根据本发明第二模式的对应于一个脚本中所描述的命令的BD虚拟播放器的大概操作的流程图;
图83A和图83B是描述了根据播放列表的再现操作的流程图;
图84A和图84B示出了脚本的分级结构的例子的示意图;
图85是描述了记录在记录介质中的文件的管理结构的示意图;
图86示出了一个语法的示意图,该语法描述了一个脚本的脚本文件(scenario.pbc)的结构的例子;
图87示出了一个语法的示意图,该语法描述了一个块GlobalCommand()的结构的例子;
图88示出了一个语法的示意图,该语法描述了一个块TitleEntry()的数据结构的例子;
图89示出了一个语法的示意图,该语法描述了块scenario()的结构的例子;
图90示出了根据本发明第二模式在一个脚本中使用的命令的例子的示意图。
具体实施方式
接下来,将以下列顺序描述本发明。
1.BDAV格式大纲
2.本发明的第一模式
2-1.关于平面
2-2.菜单屏幕
2-3.关于脚本
2-4.关于虚拟播放器模型
2-5.关于方法
2-6.关于命令的执行
2-7.解码器模型
2-8.用户界面
2-9.关于数据结构
2-10.关于图形对象的解码器模型
2-11.关于图形的传送速度
2-12.图形对象结构的细节
2-13.关于效果声音
2-14.关于用于在光盘上存储声音数据的方法
2-14a.第一存储方法
2-14b.第二存储方法
2-14c.第三存储方法
2-15.平面的另一个例子
2-16.解码器模型的另一个例子
2-17.解码器模型的另一个例子
3.本发明的第二模式
3-1.关于脚本
3-2.脚本的目录
3-3.关于虚拟播放器模型
3-4.关于语法
3-5.关于命令
4.其它
1.BDAV格式大纲
首先,为了容易地理解本发明,将描述一个在“蓝光光盘可擦写格式版本1.0第三部分音频视觉说明书”中规定管理结构,用于预录在蓝光光盘上名为AV(音频/视频)数据的内容。在下面的描述中,将该管理结构称为BDAV格式。
将一个已根据例如MPEG(运动图象专家组)视频或MPEG音频等编码系统编码、并且根据MPEG-2系统多路转换的位流称为片断(clip)AV流(或简单AV流)。通过在用于蓝光光盘的“蓝光光盘可擦写格式版本1.0第二部分”中所确定的文件系统,将片断AV流作为一个文件记录在光盘中。该文件称为片断AV流文件(或简单AV流)。
片断AV流文件是文件系统中的管理单元。因而,不能说用户可以很容易就能理解片断AV流文件是文件系统中的管理单元。从用户方便的观点看来,必须记录一个必要的方案,用以组合分割成若干片断AV流文件的视频内容,并且再现组合得到的视频内容;还要记录一个必要的方案,以再现片断AV流文件的仅仅一部分;还要记录一个必要的信息,以顺利地完成一个特定再现和搜索再现等等,作为数据库。“蓝光光盘可擦写格式版本1.0第三部分”作为用于蓝光光盘的标准,规定了这样一个数据库。
图6示出了一个方案,用于指定AV流文件中的一部分,只处理其需要的部分,并再现处理后的部分。在图6中,一个播放列表(PlayList)使得AV流文件的一部分或全部被指定,并且只再现其中需要的部分。当用户需要再现一个内容时,他或她在播放列表的单元里选择这个内容。播放列表是一个视频/音频单元,用户默认期望在其中一个内容会连续地再现。
播放列表最简单的结构是从开始记录一个内容到该记录操作结束之后所得到的一个AV流文件。除非编辑了该AV流文件,否则它会成为一个播放列表。
播放列表是由包括表示再现一个AV流文件的信息,以及设置再现开始点和再现停止点的信息组成的,再现开始点和结束点指定了该AV流文件的再现开始位置和再现停止位置。再现开始点信息和再现停止点信息组成的信息对称为播放项目(PlayItem)。播放列表是由一组播放项目组成的。当再现了一个播放项目时,则再现该播放项目所涉及的AV流文件的部分。
如上所述,片断AV流是其视频数据和音频数据已在MPEG2TS(传送流)的格式中多路复用的位流。有关片断AV流的信息记录作为片断信息记录到一个文件中。
一组片断AV流文件和具有其对应片断信息的片断信息文件作为一个对象处理,并称为片断。一个片断是一个由片断AV流和片断信息组成的对象。
文件通常作为字节序列处理。片断AV流文件的内容在时基(time base)上展开。片断中的进入点是有规律地在时基上指定的。如果给出了一个到预定片断的访问点的时间标记,则可以使用一个片断信息文件,来找寻一个地址的信息,根据该地址从一个片断AV流文件中读出数据。
所有记录在一个光盘上的播放列表和片断是使用卷信息管理的。
图7示出了统一建模语言(uml)示意图,其表示上述片断AV流、片断信息(流属性)、片断、播放项目和播放列表之间的关系。一个播放列表和一个或多个播放项目相关。一个播放项目和一个片断相关。一个片断可以和多个播放项目相关,该播放项目的开始点和/或结束点是不同的。一个片断AV流文件从一个片断中引用。类似地,一个片断信息文件从一个片断中引用。此外,一个片断AV流文件和一个片断信息文件呈一一对应的关系。有了如上述所确定的结构,通过只再现任何部分而不改变目录就可以无破坏性地指定一个再现顺序。
此外,如图8所示,可以从多个播放列表中引用相同的片断。在图8所示的例子中,片断1从两个播放列表2和3中引用。在图8中,片断1的水平方向表示时基(time base)。播放列表2涉及片断1的区域a到f,其中包括广告消息区域b、c和一个场景e。另一方面,播放列表3涉及片断1的区域d到g,其中包括了一个场景e。当指定播放列表2时,可以再现片断1的区域a到f。当指定播放列表3时,可以再现片断1的区域d到g。
接下来,参照图9,将描述记录在“蓝光光盘可擦写格式版本1.0第三部分”中规定的记录介质中一个用于文件的管理系统。在目录结构中分级地管理文件。在记录介质中创建一个目录(例如图9所示的根目录)。在该目录下,用一个记录和再现系统来管理文件。
在根目录下,有一个目录BDAV。如图9所示,可以设有BDAV、BDAV1、BDAV2、...、BDAVn等多个目录。在下面的描述中,多个目录BDAV、BDAV1、BDAV2、....BDAVn都由目录BDAV表示。下面将只描述代表性目录BDAV。
在目录BDAV下,有下面六类文件。
(1)info.bdav
(2)menu.tidx,mark.tidx
(3)menu.tdt1,menu.tdt2,mark.tdt1,mark.tdt2
(4)#####.rpls,#####.vpls
(5)%%%%%.clpi
(6)*****.m2ts
在如(4)分类的文件“#####.rpls”和“#####.vpls”中,“####”表示任意数字。类似地,在如(5)分类的文件“%%%%%.clpi”中,“%%%%%”表示任意数字。在如(6)分类的文件“*****.m2ts”中,“*****”表示以一对一的关系对应于文件“%%%%%.clpi”文件的“*****.m2ts”文件的数量。例如,数字“*****”可以与数字“%%%%%”相同。
如(1)分类的文件“info.bdav”具有所有目录BDAV的信息。如(2)分类的文件“menu.tidx”和“mark.tidx”具有略图画面的信息。如(3)分类的文件“menu.tdt1”、“menu.tdt2”、“mark.tdt1”和“mark.tdt2”具有略图画面。这些文件的扩展名“tdt1”和“tdt2”表示这些文件略图的数据是否已被加密。
如(4)分类的文件“#####.rpls”和“#####.vpls”是具有播放列表信息的文件。文件“#####.rpls”和“#####.vpls”位于PLAYLIST目录下面,目录PLAYUST位于目录BDAV下面。
如(5)分类的文件“%%%%%.clpi”具有片断信息的文件。文件“%%%%%.CLP”位于目录CLIPINF下面,目录CLIPINF位于目录BDAV下面。如(6)分类的文件“*****.m2ts”是具有片断AV流的片断AV流文件。该片断AV流文件与具有文件名数字“*****”的片断信息文件“%%%%%.clpi”相关。文件“*****.m2ts”位于目录STREAM下面,目录STREAM位于目录BDAV下面。
接下来,将详细描述每个文件。如(1)分类的文件“info.bda”是唯一位于目录BDAV下的文件。图10所示的语法描述了文件“info.bdav”的结构的例子。在这个例子中,该语法是用C语言的描述方法表示的,C语言是用作计算机装置的程序描述语言。这也适用于其它表示语言的图。
在图10中,文件“info.bdav”相应于不同功能而分割成块。域type-indicator描述了字符串“BDAV”,该字符串说明了文件是“info.bdav”。域version_number描述了文件“version_number”的版本。块UIAppInfoBDAV()描述了有关位于目录DBAV下的文件的信息。块TableofPlayList()描述了有关播放列表排列的信息。块MakersPrivateData()描述了记录和再现装置的制造者的专有信息。
表示单个块的开始的地址在文件“info.bdav”的开始描述。例如,域TableOfPlayList_Start_address使用文件字节的中相关数量,表示块“TableOfPlayList()”的开始位置。
图11所示的语法描述了块UIAppInfoBDAV()的结构的例子。域length表示了紧接着域length直到块UIAppInfoBDAV()末端的字节的长度。域BDAV_character_set表示在块UIAppInfoBDAV()的域BDAV_name中所描述的字符序列的字符设置。作为一个字符设置,可以选择ASCII、Unicode等。
标志BDAV_protect_flag表示是否允许用户无条件地观赏位于目录BDAV下的内容。当标志设置为“1”并且用户输入了正确的个人身份识别号(PIN)时,允许他或她观赏位于目录BDAV下的内容。相反,当标志BDAV_protect_flag设置为“0”,即使用户没有输入他或她的PIN,也允许他或她观赏位于目录BDAV下的内容。
在域PIN中描述个人身份识别号PIN。个人身份识别号PIN是由例如4个阿拉伯数字所组成的,每个阿拉伯数字是从0到9。个人身份识别号PIN表示当验证再现控制时所需的个人身份识别号码。个人身份识别号PIN的阿拉伯数字是根据例如国际标准化组织(ISO)/国际电工委员会(IEC)646标准而编码的。
使用上述在块UIAppInfoBDAV()中描述的信息,规定了目录BDAV的再现限制。如下面所描述的,每个播放列表的再现限制是用在文件“#####.rpls”和“#####.vpls”中所描述的块UIAppInfoBDAV()中所确定的标志playback_control_flag来描述的。
在该例中,为了重新开始再现目录BDAV下的内容,可以使用重新开始功能。重新开始功能可以指定优先再现的内容的播放列表。假定当用户想要从上一个停止的位置重新开始再现一个内容时,就使用重新开始功能。
在图11中,标志resume_valid_flag描述了该重新开始功能是否有效。当标志的值设置为“0”时,该重新开始功能无效。当标志设置为“1”时,该重新开始功能有效。在这里,将由域resume_PlayList_file_name所指定的播放列表作为要优先再现的播放列表。
域ref_to_menu_thumbnail_index描述了略图号码的区域,略图号码识别具有目录BDAV特征的略图画面。在蓝光光盘标准中,具有目录BDAV特征的静止画面称之为菜单略图。略图画面是目录BDAV的菜单略图,其具有在域ref_to_menu_thumbnail_index中描述的索引thumbnail_index。
域BDAV_name_length描述了在域BDAV_name中描述的目录BDAV的名字的字节长度。在域BDAV_name_length中描述的字节数量对于域BDAV_name的字符串是有效的,域BDAV_name_length描述了目录BDAV的名字。在域BDAV_name_length中描述的有效字符串之后其余的字节序列可以有任意值。
图12所示的语法描述了块TableOfPlayLists()的结构的例子。域number_of_PlayLists描述了位于目录BDAV下的播放列表的数量。播放列表的数量是一个可变的循环。域number_of_PlayLists遵循“for”语句的循环。在“for”语句循环中的域PlayList_file_name中描述的播放列表的排列表示在播放列表表格显示屏幕等上显示的播放列表的顺序。播放列表是用域PlayList_file_name中的例如“#####.rpls”或“#####.vpls”文件名所指定的。
如上所述,文件“#####.rpls”和“#####.vpls”处于目录PLAYLIST之下。这些文件与单独播放列表是一一对应的关系。
图13所示的语法描述了文件“#####.rpls”和“#####.vpls”的结构的例子。在图13中,文件“#####.rpls”和“#####.vpls”中的任一个都有相应于功能信息的块。域type_indicator描述了表示该文件的字符串。域version_number描述了该文件的版本。
块UIAppInfoPlayList()描述了播放列表的属性信息。块PlayList()描述了有关播放项目的信息,该播放项目组成了播放列表。块PlayListMark()描述了有关添加到播放列表的标志的信息。块MakersPrivateData()描述了装置制造者的唯一信息,该信息已记录在播放列表文件中。域PlayList_start_address、PlayListMark_start_address和MakersPrivateData_start_address位于每个文件“#####.rpls”和“#####.vpls”的开始。这些域描述了作为32位地址信息的相应块的开始地址。
由于在每个文件“#####.rpls”和“#####.vpls”的开始处描述了每个块的开始地址,任意长度的数据填充词汇可以处于任一个块的前面和/或后面。然而,块UIAppInfoPlayList()的开始位置固定在从每个上述文件的开始的第320字节,块UIAppInfoPlayList()是每个文件“#####.rpls”和“#####.vpls”的起始块。
图14所示的语法描述了块UIAppInfoPlayList()结构的例子。块UIAppInfoPlayList()描述了有关播放列表的属性信息的不同类型。该属性信息不是直接用于再现播放列表。域PlayList_character_set描述了有关播放列表的字符串信息的字符集。
标志playback_control_flag描述了是否根据个人身份识别码PIN限制信息的显示和播放列表的再现。当标志playback_control_flag的值是例如“1”时,除非用户输入正确的个人身份识别码PIN,否则不会显示例如播放列表的略图画面等信息,也不能再现播放列表。标志write_protect_flag是防擦写标志。有必要构造用户界面,以便当write_protect_flag的值是“1”时,用户不能很容易地擦去播放列表。标志is_played_flag描述了已经再现过的播放列表。标志is_edited_flag描述了已经编辑过的播放列表。
域time_zone描述了记录播放列表的时区。域record_time_and_date描述了记录播放列表的日期和时间。域PlayList_duration描述了播放列表的再现持续时间。
域maker_ID和maker_model_code描述可识别记录装置的型号和制造者的信息,该记录装置最后更新该播放列表。域maker_ID和maker_model_code可以例如是数字等。域channel_number描述了所记录的片断AV流的通道号码。域channel_name描述了通道名。域channel_name_length描述了在域channel_name中描述的通道名的长度。在域channel_name中,具有在域channel_name_length中所描述的长度的字符串是有效的。域PlayList_name描述了一个具有在域PlayList_name_length中所描述的一个值的有效长度的播放列表名。域PlayList_detail描述了具有在域PlayList_detail_length中所描述的值的有效长度的播放列表的详细信息。
图15所示的语法示出了块PlayList()的结构的例子。域length描述了紧接在域length之后直到该块PlayList()的末端的字节长度。域PL_CPI_type描述了播放列表的特征点信息(CPI)的类型。域number_of_PlayItems描述了组成该播放列表的播放项目的数量。域number_of_SubPlayItems描述了播放项目的数量,该播放项目是用于添加到播放列表的后期录音音频(子播放项目)。简而言之,当播放列表满足预定条件时,播放列表可以有子播放项目。
块PlayItem()描述了播放项目的信息。块SubPlayItem()描述了子播放项目的信息。
图16所示的语法描述了块PlayItem()的结构的例子。域Clip_Information_file_name描述了片断信息文件(该文件具有扩展clpi)的文件名的字符串,该文件和一个涉及播放项目的片断有一一对应的关系。片断信息文件具有扩展“clpi”。
域Clip_codec_identifier描述了片断的编码系统,播放项目涉及该片断。在上述例子中,域Clip_codec_Identifier固定为值“M2TS”。域connection_condition描述的信息是有关于播放项目如何连接到下一个播放项目。换句话说,域connection_condition描述了是否能不间断地再现播放项目。
域ref_to_STC_id描述了一个片断的序列STC_sequence,该片断涉及该播放项目。序列STC_sequence是蓝光光盘标准的独特结构。该结构表示一个范围,其中的程序时钟基准(PCR)在时基上是连续的,PCR是MPEG2 TS(传送流)的基准。片断中唯一的数字STC_id被指定到序列STC_sequence。在序列STC_sequence中,由于可以确定一个持续时基,因而能够唯一地指定播放项目的开始时间和结束时间。每个播放项目的开始点和结束点将存在于相同的序列STC_sequence中。域ref_to_STC_id描述了具有number_STC_id的序列STC_sequence。
域IN_time和OUT_time分别描述了序列STC_sequence中播放项目的起始点和结束点的时间标记pts(presentation_time_stamp)。
块BridgeSequenceInfo()描述了有关桥接片断(Bridge_Clip)的信息。如图17所示,桥接片断是当实现用于不间断地再现播放项目时所创建的位流。通过再现桥接片断,而不是再现先前的播放项目和当前播放项目的边界的原始位流,可以不间断地再现两个播放项目。由于桥接片断的功能与本发明没有密切的关系,因此将省略该功能的描述。
图18所示的语法描述了块PlayListMark()的结构的例子。块PlayListMark()具有描述标志信息的数据结构。标志是描述播放列表时间的结构。使用一标志,可以实现对播放列表设置搜索点的功能、将播放列表分割成段的功能等等。此外,使用一个标志,可以在图形平面(将在后面描述)上指示显示开始和显示结束的时间。
域length描述了紧接在域length之后到块PlayListmark()的末端的字节的长度。域number_of_PlayList_marks描述了播放列表中的标志的数量。一个“for”语句循环表示标志的信息。标记mark_invalid_flag描述了该标志是否有效。当标记mark_invalid_flag的值是“0”时,它说明该标志有效。当标记mark_invalid_flag的值是“1”时,它说明虽然数据库中存在该标志,但是传送给用户的该标志是无效标志。
域mark_type描述了标志的类型。存在有表示作为播放列表的略图画面(代表性画面)的一个画面的位置的标志;表示再现重新开始的位置的重新开始标志;表示一个搜索点的段标志;表示要跳跃并再现的一个区域的跳跃标志;其表示图形图像的阅读开始时间的标志;表示图形图像的显示开始时间的标志;表示图形图像的显示停止时间的标志等等。
域mark_name_length描述了域mark_name(将在下面描述)的数据长度。域maker_ID描述了创建该标志的记录装置的制造者。域maker_ID用作识别制造者独有的标志。域ref_to_PlayItem_id描述了哪个播放项目具有该标志所指定的时间。域maker_time_stamp描述了该标志所指定的时间。
域entry_ES_PID描述了该标志添加到哪个基本流(elementary stream)(就是说,该标志是否添加到一个流,在该流中画面数据和/或声音数据被编码)。域ref_to_menu_thumbnail_index和域ref_to_mark_thumbnail_index描述了在视觉上表现标志的略图画面。略图画面可以是例如静止画面,在标志指定的时间提取该画面。
当一个标志具有一个时基上的长度时,使用域duration。当使用跳跃标志时,域duration描述对哪个持续时间执行跳跃。
域maker_information是一个描述了用户唯一信息的区域。域make_name描述了指定到一个标志的名字。在域mark_name_length中描述了标志的大小。
图19示出了描述文件“%%%%%.clpi”的结构的例子的语法。如上所述,文件“%%%%%.clpi”位于目录CLIPINF之下。文件“%%%%%.clpi”是为每个AV流文件(文件“*****.m2ts”)创建的。文件“%%%%%.clpi”具有相应于功能信息的块。域type_indicator描述的字符串表示文件。域version_number描述了文件的版本。
块ClipInfo()描述了有关片断的信息。块SequenceInfo()描述了有关PCR的不连续点的信息,其表示MPEG2系统的传送流的时间坐标。块ProgramInfo()描述了MPEG2系统中一个程序的有关信息。块CPI()描述了有关特征点信息CPI的信息,其表示AV流中的特征位置。块ClipMark()描述的标志信息表示一个搜索索引点,该点添加到一个片断和商业开始和/或结束点。块MakersPrivateData()描述了记录装置的制造者的唯一信息。
表示文件“%%%%%.clpi”中每个块的开始的地址信息被描述为域SequenceInfo_start_address、ProgramInfo_start_address、PCI_start_address、ClipMark_start_address和MakersPrivateData_start_address。由于片断文件“%%%%%.clpi”的功能与本发明没有密切关系,因此省略该文件的描述。
由于BDAV格式具有上述数据结构,播放列表由播放项目组成,该播放项目描述在片断AV流中要再现的部分的多组开始点和结束点,因而可以在用户能识别的再现单元中管理记录在光盘上的内容。
2.本发明的第一模式
接下来,将描述本发明的第一模式。根据本发明,上述BDAV格式被扩展。影片数据和字幕数据是相应于实时解码系统的,画面数据是相应于存储的类型解码系统的,它们是独立地提供的,这些数据被组合并显示出来。结果,可以实现一个比现有技术具有更高的灵活性的用户界面。
此外,BDAV格式被扩展,以便与“蓝光光盘可擦写格式版本1.0第三部分”中所规定的播放列表相兼容。结果,实现了交互功能的扩展。在下文中,该扩展的BDAV格式称为BDMV格式。该BDMV格式适用于只再现光盘(蓝光光盘只读存储器:BD-ROM)。
2-1.关于平面
根据本发明的第一模式,使用图20所示的平面结构。影片平面10显示在最后端(底部)。影片平面10处理一个播放列表指定的画面(主要是影片数据)。字幕平面11是显示在影片平面10上面的。字幕平面11在再现影片时处理显示的字幕数据。图形平面12是显示在最前面的。图形平面12涉及用于菜单屏幕的字符数据,并且涉及用于按键的例如位映象等图形数据。显示屏幕是由上述三个平面组成的。
本发明和传统DVD视频之间的不同在于:用于字幕、菜单屏幕、按键等的子画面被分成字幕平面11和图形平面12,以便独立地控制字幕和按键。如上所述,在传统DVD视频中,例如菜单屏幕、按键和字幕等图形是由相同的模式控制的。它们显示在同一平面上。在同一时间能够显示的位映象画面的数量限定为1。因而,在DVD视频中,不能同时显示多个位映象画面。相反,根据本发明,由于字幕平面11和图形平面12是为字幕和图形分别独立安排的,因而解决了DVD存在的上述问题。
可以认为字幕平面11和图形平面12是“蓝光光盘可擦写格式版本1.0第三部分”的扩展部分。
影片平面10、字幕平面11和图形平面12可以独立地显示。影片平面10、字幕平面11和图形平面12具有图21所示的分辨率和显示色彩。影片平面10具有的分辨率是1920像素×1080行,每像素的数据长度是16位,还具有YCbCr(4:2:2)的颜色系统,其中Y表示亮度信号、Cb和Cr表示色差信号。YCbCr(4:2:2)具有每像素8位的亮度信号Y、各自8位的色差信号Cb和Cr。色差信号Cb和Cr的两个水平像素组成了一个颜色数据的数据。
图形平面12具有1920像素×1080行的分辨率、每像素8位的采样深度和可从YCbCr(4:4:4)和RGB(4:4:4)中选择的颜色系统,其中R(红):G(绿):B(蓝)=4:4:4。字幕平面11具有1920像素×1080行的分辨率、每像素8位的采样深度和一个具有使用256色调色板的8位颜色位的映射地址的颜色系统。
图形平面12和字幕平面11可以在256级中α混合。当图形平面12和字幕平面11与另一个平面组合时,可以在256级中设置不透明度。该不透明度可以为每个像素设置。在下面的描述中,该不透明度α表示在范围(0≤α≤1)中,其中不透明度α=0表示完全透明;不透明度α=1表示完全不透明。
字幕平面11处理例如PNG(可移植的网络图象文件格式)格式的画面数据。类似地,图形平面12可以处理PNG格式的画面数据。在PNG格式中,一个像素的采样深度是从1位到16位的范围。当采样深度是8位或16位时,可以为每个像素成分设置阿尔法通道,也就是不透明度信息(称为阿尔法数据)。当采样深度是8位时,可以指定256级的不透明度。利用阿尔法通道的不透明度信息,可以执行α混合。可以使用高达256色的调色板图像。可以使用索引数字表示预备的调色板的成分(索引)。
此外,字幕平面11和图形平面12处理的画面数据不限于PNG格式。可选地,根据如JPEG系统被压缩编码的画面数据;运行长度压缩的画面数据;或者未被压缩编码的位映象数据,都可以采用。
图22示出了参照图20和图21组合的三个平面的结构的例子。影片平面10的影片数据提供给422/444转换电路20。该422/444转换电路20将影片数据的颜色系统从YCbCr(4:2:2)转换到YCbCr(4:4:4),并且将转换后的数据输入到乘法装置21。
字幕平面11的画面数据输入到一个调色板22。调色板22输出RGB(4:4:4)的画面数据。当为画面数据指定了α混合的不透明度时,从调色板22输入指定的不透明度α1(0≤α≤1)。
图23示出了调色板22的输入/输出数据的一个例子。该调色板22拥有调色板信息,该信息作为相应于例如PNG格式文件的一个表格。引用索引数字作为来自调色板22的8位输入数据的画面数据的一个地址。根据该索引数字,输出每个由8位数据组成的RGB(4:4:4)数据。此外,阿尔法通道的数据α从调色板22得到,它表示不透明度。
图24示出了调色板22具有的调色板表格的一个例子。256色索引的值从[0x00]到[0xFF](其中[0x]表示16进制符号),上述值指定了三个初始色值R、G和B,以及不透明度α,它们以8个数据位表示。调色板22根据输入PNG格式画面数据引用调色板表格,并且根据由该画面数据指定的索引值,输出每像素各自8位的颜色数据R、G和B(RGB数据)以及不透明度α。
从调色板22输出的RGB数据提供给RGB/YCbCr转换电路29。RGB/YCbCr转换电路29将RGB数据转换成分别为8位的亮度信号Y、色差信号Cb和Cr(在下文中它们合起来称为YCbCr数据)。这是由于平面数据应该组合在共用的数据格式中。数据统一成YCbCr数据,该YCbCr数据是影片数据的数据格式。
从RGB/YCbCr转换电路29输出的YCbCr数据和不透明度数据α1被输入乘法装置23。乘法装置23用不透明度数据α1乘以输入的YCbCr数据。乘法的结果输入到加法装置24的一个输入端。乘法装置23用不透明度数据α1乘以YCbCr数据的每个亮度信号Y、色差信号Cb和Cr。不透明度数据α1的补数(1-α1)提供给乘法装置21。
乘法装置21用不透明度α1的补数(1-α1)乘以从422/444转换电路20中输入的影片数据。相乘结果输入到加法装置24的其它输入端。加法装置24将乘法装置21和乘法装置23的相乘结果相加。结果,影片平面10和字幕平面11组合在一起。加法装置24的相加结果输入到乘法装置25。
图形平面12的画面数据输入到RGB/YCbCr转换电路27。当图形平面12的画面数据的颜色系统是RGB(4:4:4)时,将其转换成YCbCr(4:4:4),并从RGB/YCbCr转换电路电路26输出。从RGB/YCbCr转换电路26输出的YCbCr数据输入到乘法装置27。
图形平面12使用的画面数据是PNG格式的,可以为画面数据的每个像素设置不透明度数据α2(0≤α2≤1)。不透明度数据α2提供给乘法装置27。乘法装置27用不透明度数据α2乘以从RGB/YCbCr转换电路26输入的YCbCr数据的每个亮度信号Y、色差信号Cb和Cr。乘法装置27的相乘结果输入到加法装置28的一个输入端。不透明度数据α2的一个补数(1-α2)提供给乘法装置25。
乘法装置25用不透明度α2的补数(1-α2)乘以加法装置24的相加结果。乘法装置25的相乘结果输入到加法装置28的另一个输入端。加法装置28将乘法装置25和乘法装置27的相乘结果相加。结果,影片平面10以及字幕平面11组合的结果与图形平面12组合在一起。
当字幕平面11和图形平面12中的无画面区域的不透明度α设置成0(α=0)时,平面11和平面12下面的平面就变成透明的。结果,例如,影片平面10的影片数据可以作为字幕平面11和图形平面12的背景而显示。
图22所示的结果可以用硬件或软件之一来实现。
2-2.菜单屏幕
引导用户实现一个操作的屏幕,例如,菜单屏幕,可以显示在图形平面12上。图25示出了显示在图形平面12上的菜单屏幕60的一个例子。在菜单屏幕60上,特征和图像显示在特别的位置。菜单屏幕60用字符和图像提供给用户一个图形用户界面(GUI),该界面允许他或她选择一个新操作。
“链接”描述了访问具有字符串或图像数据的预定文件的方法。当用户在具有例如定位装置等的屏幕上指定字符串或图像数据时,他或她可以根据字符串或图像数据所指定的访问方法,访问预定文件。“按键”可以有例如三种类型的图像数据,该数据表示正常状态、选择状态和用于“链接”的按下状态。当用户指定一个按键图像时,该图像数据根据他或她所操作的状态而作出改变,以便他或她能容易地识别该按键的状态。
当用户指定一个“链接”或一个“按键”时,他或她在屏幕上使用例如鼠标等工具移动光标,并且在字符串或“链接”的图像上或“按键”的图像上点击鼠标按键(按鼠标按键几次)。相同的操作也可以用鼠标之外的另一个指示装置完成。可选地,使用远程控制命令器或键盘的键操作,用户可以指定一个“链接”或“按键”。在这里,用户使用例如一个方向键等预定键选择他或她想要的“链接”或“按键”,并且使用OK键或类似的键指定选择的“链接”或“按键”。
例如如图25所示,作为图像数据的标题61显示在菜单屏幕60的上部,菜单屏幕60显示在图形平面12上。标题61下面是作为链接的选择项目62A、62B、62C和62D。当用户使用例如远程控制命令器的键操作,选择并指定选择项目62A、62B、62C和62D之一时,链接到所指定的操作项目的一个文件被访问。
在菜单屏幕60的下面位置,显示按键64和65。使用按键64和65,可以显示字幕,并且从例如英文和日文中选择输出声音的语言。当以上述方式操作按键64和65时,访问要用作显示其设置屏幕的文件,并显示预定的屏幕。
此外,在菜单屏幕60的左下部分,显示了字符串63,其描述了用于选择项目的方法。字符串63显示在图形平面12上。
要显示例如如图25所示的一个屏幕,需要任意的描述语言,用于描述屏幕显示方法、链接信息等。根据本发明的第一模式,使用超文本链接标示语言(HTML)作为描述语言,该语言已经在万维网(WWW)中广泛流传。
众所周知,HTML文档使用标记描述文档结构。标记是由一对表示一个范围的开始和结束的符号组成的。将标记嵌入一个文本以指定任意范围。例如,这样描述一个表示范围开始的开始标记,即通过用符号“<”和“>”包围一个确定为字符串的元素。类似地,这样描述一个表示范围结束的结束标记,即通过用符号“</”和“>”包围与开始标记中相同的字符串。其中可以描述标记所表示的元素的属性。结束标记可以忽略。此外,一些元素不需要描述它们的结束标记。
在HTML中描述的文档位于连接到互联网的网络服务器中,由网络服务器向互联网公布。通过安装在例如个人计算机等连接到互联网的计算机装置中的浏览软件,可以浏览该文档。根据本发明的第一模式,HTML标准被独特地扩展,以便显示用于蓝光光盘的菜单屏幕。
例如,在WWW上,有了在HTML文档中描述的链接信息,浏览软件可以链接并阅读由链接信息指定的另一个HTML文档。另一方面,可以预期,在用于蓝光光盘的菜单屏幕60中,可以用图像数据、字符串、按键等显示播放列表表格。此外,可以预期,通过指定一个播放列表,可以从光盘中阅读并再现指定的播放列表。
HTML的扩展相当于例如在一个程序语言中确定的新功能,或确定的一个新应用编程接口(API)。
2-3.关于脚本
在图25所示的例子中,一个播放列表的表格显示在菜单屏幕60上。事实上,菜单屏幕60的图像和声音以及根据在菜单屏幕60上选择的项目所生成的那些,被组合成多个播放列表。当组成一个菜单项目的多个播放列表相互关连时,可以完成将一个故事分成若干分支的方案。当将一个故事分成若干分支时,可以实现多故事功能以及父母功能,多故事功能使得故事的内容根据用户的选择而作出改变,父母功能使得场景根据用户的年龄而改变。
虽然这些功能对于重编码光盘是特别地有效的,但是在当前蓝光光盘标准中没有规定它们,蓝光光盘标准主要目的是记录/再现电视广播。
在屏幕上显示的信息不仅可以根据HTML描述,还可以根据例如XHTML(扩展HTML)来描述,XHTML是新近的HTML4.0的版本。此外,在屏幕上的信息可以用另一种置标语言来描述。
在下面的描述中,安排了多个播放列表的结构,称为脚本。图26示出了脚本70的内在结构的例子。脚本70有多个播放列表73A到73M。此外,脚本70有两部分(屏幕80A和80B),在屏幕上用图形平面12显示分支选择屏幕。例如,屏幕80A具有图形数据74A和播放列表73C,其显示了一个分支选择屏幕。类似地,屏幕80B具有图形数据74B和播放列表73J,其显示了一个分支选择屏幕。
脚本指定了播放列表的排列,以及播放列表显示在图形平面12上显示出来的时间。图形平面12上的播放列表的显示时间可以用播放列表上的标志来指定。下面将描述如何确定脚本70中的事件句柄71和72。
图26所示的例子中,菜单屏幕60上的选择项目(例如,选择项目62A)对应于脚本70中由“进入”表示的播放列表73A。换句话说,当在菜单屏幕60上指定选择项目62A时,再现脚本70的播放列表73A。播放列表73A再现完毕后,接下来再现播放列表73B。播放列表73B再现完毕后,再现播放列表73C。其后,阅读图形数据74A。结果,显示提示用户选择一个故事的屏幕80A。
显示屏幕80A之后,根据用户的选择将故事分成若干分支。在图26所示的例子中,当完成第一个选择后,显示屏幕80A。此后,逐个地显示播放列表73D、73E、73F。结果,完成了脚本70的显示。播放列表73F再现完毕后,可以再次显示主菜单屏幕(例如,菜单屏幕60)。
当在屏幕80A上完成了第二个选择之后,显示过屏幕80A之后,再现播放列表73G。例如在播放列表73G中的预定时间设置一个标志。当再现了播放列表73B之后,可以在标志的位置对播放列表73G进行分支,或根据再现装置的设置、用户的另一个脚本或分支选择屏幕上的选择,完整地再现播放列表73G。当播放列表73G再现后,接下来再现播放列表73M和73I。此后,再现播放列表73J。
当在标志的位置将播放列表73G分支后,连接地再现播放列表73K和73L。播放列表73L再现完毕后,在播放列表73I中设置的标志的位置重新开始再现。
在播放列表73J中,阅读图形数据74B。显示屏幕80B,其提示用户选择故事的一个分支。在屏幕80B的第一个选择中,再现播放列表73F。在屏幕80B的第二个选择中,从播放列表73K中设置的标志的位置开始,再现播放列表73K。
标志,用户的一个输入,以及播放器的操作改变是根据事件驱动模型检测的。换句话说,当开始再现一个播放列表时,就完成了一个播放列表的再现,当开始再现一个播放列表时,或用户通过远程控制命令器的键操作输入数据时,检测一个标志,发生一个事件。当程序有一个对当前事件发生而执行的事件句柄时,播放器执行事件所期望的操作。
图26所示的脚本70有两个事件句柄71和72。其中,事件句柄71是整体事件句柄,其描述了对整个脚本70都有效的事件句柄。
即使脚本70的播放列表73A到73M的任意一个播放列表正在再现中,当按下远程控制命令器的菜单按键时,显示脚本表格的菜单屏幕60。换句话说,将描述执行菜单屏幕60的播放列表的再现处理的一个操作。其中,作为对应于一个事件的事件句柄,当按下远程控制命令器的菜单按键时该事件发生(菜单按键事件),一个使得再现菜单屏幕60的播放列表的命令被描述为整体事件句柄71。
事件句柄72是一个局部事件句柄,其只在再现预定的播放列表或显示预定的用户输入屏幕时执行。例如,当用户在屏幕80A上指定一个显示的链接作为分支选择屏幕,相对于作为局部事件句柄的该链接指定的事件,通过描述一个命令,实现用于再现另一个播放列表的操作。
在本发明的第一模式中,使用脚本语言ECMA脚本确定上述事件句柄。ECMA脚本是根据JavaScript(已注册商标)的交叉平台脚本语言。ECMA脚本是欧洲计算机制造商协会(ECMA)规定的。ECMA脚本与HTML文档有高度紧密的关系,并且能确定独特的对象。因而,ECMA脚本适用于本发明的第一模式。
2-4.关于虚拟播放器模型
接下来将描述提供给图形平面12的再现装置的模型,并在以HTML和ECMA脚本扩展的BDAV格式中操作。模型再现装置称为BD(蓝光光盘)虚拟播放器。BD虚拟播放器的结构的定义称为BD虚拟模型。
接下来,参照图27描述BD虚拟播放器模型。BD虚拟播放器30从蓝光光盘(以下称为光盘)中再现数据。BD虚拟播放器30是例如个人计算机等计算机环境中的一个对象。计算机环境并不限于多用途个人计算机。计算机环境还包括安装在专用再现装置和/或记录和再现装置中的软件环境,上述装置再现来自例如蓝光光盘或类似光盘中的数据。
BD虚拟播放器30大致有两个状态A和B。在状态A中,BD虚拟播放器30再现一个播放列表和图形。在状态B中,BD虚拟播放器30停止再现播放列表和图形。对BD虚拟播放器30某一对象的命令执行从一个状态到另一个状态的状态改变,以及在某一状态中指定下一个操作。
状态A具有多个操作。作为在状态A中的操作,可以有快速再现、例如反向再现等可变速度再现以及特殊再现,例如跳跃再现,该再现可以从光盘中任一时刻开始。当显示图形平面12的数据时,需要限定BD虚拟再现30的可变速度再现和特殊再现。
重放控制(PBC)程序40对应于记录在光盘上的一个脚本。正如下面将要描述的,脚本描述了用于记录在光盘上的播放列表的一个再现方法,以及用于菜单屏幕的一个显示方法。PBC程序40和BD虚拟播放器30通过应用编程接口(API)41交换方法,以再现记录在光盘上的播放列表。
实际上,当改变了BD虚拟播放器30的状态时,PBC程序40使得将必要信息通过API41传送到共用参数32,该参数确定为BD虚拟播放器30的专用存储器。直接使用再现命令31,通过API41在PBC40和BD虚拟播放器30之间交换的方法,来设置共用参数32。
根据本发明的第一模式,如上所述,在事件驱动模型下控制BD虚拟播放器30。当操作BD虚拟播放器30时,发生不同的事件。例如当用户操作一个键输入或操作远程控制命令器或发生时间中断时,硬件/OS(操作系统)50生成事件。事件发送到BD虚拟播放器30。可选地,当在再现的播放列表中检测到标志时,可以生成事件。进一步,事件可以由BD虚拟播放器30自身生成,例如检测到播放器的再现改变了的状态。用事件泡(bubble)的原理处理事件。
发生的事件的类型在BD虚拟播放器模型中确定。当一个事件发生时,如果已对该事件句柄进行了描述,则执行该事件句柄。如果没有描述事件句柄,则执行默认的事件句柄,并且执行用于播放器的标准规定的一个操作。
当执行了用于播放器操作的一个方法时,相对于该方法,用一个返回值表示再现操作是否已正常开始的结果。另一方面,仅使用发生了一个事件的事实,得到结束时间,在该时间完成了一个命令。因而,当脚本程序中描述了开始再现脚本的结束部分的一个方法时,优选为与一个事件句柄一起描述该方法,上述事件句柄接收了一个事件句柄,该事件句柄接收脚本的结束,并且执行它。
对于相同的事件,每个脚本中的事件句柄可以是不同的。
BD虚拟播放器30的中断事件大致分类为(1)在正在再现的内容中发生的事件;(2)由用户的中断所发生的事件;(3)由于播放器的状态改变而发生的事件。
事件(1)发生在正在再现在内容中,是一个预定中断。不论何时再现内容,事件(1)都会同时发生。当BD虚拟播放器30在一个播放列表中再现时,当播放列表中描述的标志指定的时间在光盘上已过去时,标志检测中断发生在BD虚拟播放器30中。当脚本指定了一个计时器时,计时器中断事件在该指定时间发生,或者在脚本指定的计时器设置时间之后10秒发生。
事件(2)是用户中断,其发生和发生时间是不能预知的。当用户操作远程控制命令器的一个键时,发生中断事件。在这种情况下,由于不能确定什么时间用户执行键操作,因此无法提前预知时间。
事件(3)的发生是由于BD虚拟播放器30的状态改变。事件(3)通知声音流或字幕的改变。当对于一个内容,播放器的状态从再现状态转变到停止状态,或者反之,则发生该事件。一个由播放器的状态改变而导致的事件可以与事件(1)一起发生,事件(1)在正在再现的内容中发生;也可以在事件(2)中发生,事件(2)的发生是由于用户的中断事件。作为通知声音流或字幕的改变的事件的一个例子,当发生用户远程控制命令器的键操作的中断事件时,改变声音流或字幕。结果,由于BD虚拟播放器30的状态改变了,发生了通知状态改变的事件。
在本发明的第一模式中,以HTML(超文本链接标示语言)4.01文档或XHTML(扩展HTML)文档描述使用图形平面12的显示控制。使用HTML4.0内置事件,和为用于图形平面12的显示屏幕的事件。如果需要HTML4.0内置事件之外的事件,可以使用ECMA脚本描述它们。
当组合使用HTML格式和ECMA脚本时,如果发生一个事件,根据文档中是否存在一个事件句柄来执行一个处理,该事件句柄是用该事件的元素属性指定的。当存在事件句柄时,则执行它。当不存在事件句柄时,确定文档中是否存在整体事件句柄。结果,如果整体事件句柄存在在文档中,则执行该事件句柄。当文档没有以脚本语言描述一个事件句柄时,BD虚拟播放器30执行一个为该事件准备的默认事件。
可以将事件句柄描述为HTML文档的元素的属性,或者是ECMA脚本的俘获事件方法。
接下来,将描述用于描述一个事件句柄的方法,该句柄使用HTML文档。可以使用HTML4.0描述的内置事件,例如,事件onload、事件onunload、事件onclick,以及事件onkeypress。这些事件的每一个都描述为标记的元素中的属性。
当用户代理结束用成对的标记<FRAMESET></FRAMESET>所确定的一个窗口或所有的帧(frame)时,发生事件onload。当显示菜单屏幕时,发生事件onload。
窗口是一个单元,浏览应用程序在其中根据HTML的描述显示一个HTML文件。使用帧在一个窗口的分割的区域中显示多个HTML文件。帧中的HTML文件和帧本身称为帧。事件onload属性可以和元素BODY和元素FRAMESET一起使用。
当用户代理将HTML文档从一个窗口或一个帧移开时,发生事件onunload。事件onunload属性可以与元素BODY和元素FRAMESET一起使用。
当用定位装置或类似装置定位一个元素时,发生事件onclick。例如,当执行鼠标按键的点击操作时,发生事件onclick。事件onclick属性可以和HTML 4.0的任意元素一起使用。
当按下一个键或从某一元素释放一个键时,发生事件onkeypress。例如,当在键盘上按下一个预定键,或在一个区域中按下远程控制命令器的键,该区域是由屏幕上的特殊元素确定的,而且该键处于选择状态,则发生事件onkeypress。事件onkeypress属性可以和HTML 4.0的任意元素一起使用。
在本发明第一模式中,由于BD虚拟播放器30的操作不能用上述HTML的事件充分地控制,有必要确定初始事件。图28示出了BD虚拟播放器30中确定的的初始事件的例子。在HTML文档中用ECMA脚本控制事件。作为指定一个事件句柄的属性名,将“on”添加到事件名的开始。
当倒数计时器的值是“0”或者当正数计时器的值达到预定值时,发生事件TimerFired。当再现停止或暂停时,发生事件PlayStopped和事件PlayStilled。当暂停状态释放时,发生事件StillReleased。当用户暂时停止再现和当用户再现再现的暂停状态时,发生事件PlayPaused和事件PauseReleased。当再现开始时发生事件PlayStarted。当检测到要重复地再现的一个区域时,发生事件PlayRepeated。
当子画面(字幕)流的显示/不显示状态改变时,发生事件SPDisplayStatusChanged。当要再现的音频流和视频流改变时,分别发生事件SelectedAudioChanged和事件VideoStopped。
当检测到脚本的开始和结束时,分别地发生事件ScenarioStarted和事件ScenarioEnded。当检测到播放列表的开始和结束时,分别地发生事件PlayListStarted和事件PlayListEnded。当检测到播放项目的开始和结束时,分别地发生事件PlayItemStarted和事件PlayItemEnded。
当正在再现一个播放列表的同时检测到一个标志时,发生事件MarkEncountered。当图像数据显示在例如图形平面12时,使用该事件。检测的标志的类型的数量在共用参数32中说明。
当按下位于屏幕上的按键时,发生事件ButtonPressed。例如,当通过鼠标的键操作或点击操作,虚拟地按下位于图形平面12上的按键时,发生事件ButtonPressed。
当开始一个有效周期时,发生事件ValidPeriodStarted。可以为一个有效周期选择一个链接,当指定该周期时,可以使用事件ValidPeriodStarted。当有效周期结束时,发生事件ValidPeriodEnded。当强制地执行该链接时,使用该事件。
当按下远程控制命令器的一个键时,发生事件KeyPressed。用事件句柄的“转换”状态或类似状态,识别所按下键的类型。
2-5.关于方法
图29A、图29B、图30A、图30B、图30C、图30D、图31A、图31B、图31C和图31D示出了BD虚拟播放器30具有的方法的例子,这是在本发明的第一模式中确定的。通过这些命令,确定了BD虚拟播放器30的操作和状态、以及关于视频流、音频流的恢复和控制信息、以及子画面(字幕平面11上的图像数据)、共用参数32的操作、用于计时器和键输入中断的程序、图形平面12上的画面数据句柄的控制。
当在PBC程序中使用这些方法时,可以控制BD虚拟播放器30的操作。这些方法构造在图27所示的API41中。根据PBC程序40,通过API41访问这些方法。根据这些方法,控制用于BD虚拟播放器30的光盘的再现。下面将描述PBC程序40的真实例子。
接下来,将描述用于播放器操作的方法。方法playScenario(scenarioNumber,[scenarioTime])再现“scenarioNumber”指定的脚本。“scenarioNumber”是一个URI(通用资源识别器),其表示描述了脚本结构的文件的位置。方法playPlayList(playListNumber)使得再现“playPlayList”指定的播放列表。方法playChapterMark(playListNumber,chqpterNumber)从“chapterNumber”指定的章节,再现一个播放列表,该列表是由“playListNumber”指定的。方法playPlayItem(playListNumber,playListNumber)从“playItemNumber”指定的播放项目由“playListNumber”指定一个播放列表。“playListNumber”是“playItem_id”。当“playItem_id”的值指定为“0”时,从开始再现隶属于一个播放列表的播放项目。
方法play(position)(object)将当前位置移动到一个邻近的播放列表或播放项目。参数“position”是“prev”、“next”、“top”、“goUp”和“tail”中的任一个。参数“object”描述了一个移动对象的移动方法(播放列表、播放项目或章节)。
方法stop()停止脚本的再现。在这种情况下,不保留标准寄存器的值。方法resume()从上一个停止位置重新开始再现。方法playSoundEffect()再现一个选择的效果声音。
接下来,将描述用于播放器状态的方法。在图30A、图30B、图30C、图30D中,方法getMenuDescriptionLanguage()得到所显示的菜单的语言。方法getScenarioNumber()、方法getPlayListNumber()和方法getChapterNumber()分别得到正在再现的一个脚本号、播放列表号和章节号。
接下来,将描述用于视频流的方法。方法setVideoStreamNumber()描述了要解码的视频流。方法getVideoStreamNumber()、方法getVideoStreamStatus、方法getVideoStreamAttr()分别得到正在再现的视频流号、状态、和视频流的属性。视频流的属性是例如编码系统、分辨率、屏幕高宽比、在屏幕高宽比为4∶3的情况下的显示模式,以及显示/隐藏关闭的字幕。方法setAngleNumber()描述了角度编号;方法setAngleNumber()得到一个已选择的角度编号。方法getMaxVideoStream()得到视频流的最大数量。
接下来,将描述音频流。方法getAudioStreamAvailability()得到一个信息,该信息描述是否要获得所包含的指定音频流。方法getAudioStreamLanguage()得到一个信息,该信息是有关于指定音频流的语言。方法setAudioStreamStatus()得到指定音频流的状态。方法getsetAudioStreamStatus()指定所指定的音频流的状态。音频流的状态可以是例如是否要再现。方法setAudioStreamAttribute()得到指定音频流的属性。
接下来,将描述用于子画面流(字幕数据)的方法。方法getSPStreamAvailability()得到一个信息,该信息描述了是否包括一个指定的子画面流。方法getSPStreamLanguage()得到在指定子画面流中使用的语言。方法getSPDisplayStatus()得到子画面流的显示状态。方法setSPDisplayStatus()描述了子画面流的显示状态。子画面流的显示状态是例如是否显示子画面流等。方法getSPStreamAttribute()是到指定的子画面流的属性。子画面流的属性是例如是以纵横比为4∶3还是以宽屏幕来显示子画面流。
接下来,将描述用于公用参数32的方法。在图31A、图31B、图31C、图31D中,用于公用参数32的方法表示为用于寄存器读/写的方法。方法clearReg()初始化BD虚拟播放器30存储区域的所有寄存器。方法segReg()设置指定的寄存器的一个值。方法getReg()从指定的寄存器中读出一个值。
接下来,将描述用于计时器的方法。方法sleep()使进程在指定时间停止。方法setTimeout()在指定时间过去后执行一个功能或进程。方法setInterval()在指定的时间间隔执行一个进程。计时器的方法可以以毫秒为单元来指定。方法clearTimer()停止一个具有指定记录计时器的进程。方法pauseTimer()暂时停止一个具有指定记录ID的计时器。方法resumeTimer()使一个具有指定记录ID的计时器从暂停状态重新开始计时。
作为用于键盘输入的方法,方法getPressedKey()得到输入(按下)的一个键的类型。
接下来,将描述用于图形的方法。方法loadGraphics(htmlfile,ID)阅读一个由“htmlfile”指定的文件,并且在非显示状态下将该文件扩展到图形平面12。“ID”指定到一个扩展的图形图像,并且被一个方法引用,该方法将在后面描述。方法showGraphics(ID)显示一个由上述方法装载图形(htmlfile,ID)扩展到图形平面12的图像。方法hideGraphics(ID)隐藏由“ID”指定的图像。
接下来,将描述其它方法。方法random(输入数字num)生成从1到“num”的随机数。随机数是由唯一的定义生成的。方法catchEvent(eventname,eventhandler)在当由“eventname”指定的事件发生时,执行“eventhandler”指定的功能。
2-6.关于命令的执行
接下来,将从实际上描述PBC程序40。在发明的第一模式中,为一个脚本创建一个脚本文件。当在图形平面12上显示菜单屏幕60时,为一个屏幕创建一个HTML文件。脚本文件和HTML文件分别有扩展名“js”和“html”。这些扩展名分辨了文件的两种类型。脚本程序的文件有固定的文件名,例如“starup.js”,当一个光盘装入驱动装置时,开始执行该文件。
接下来,作为一个例子,将考虑具有图32所示的脚本结构的光盘。该光盘具有两个脚本Scenario000和Scenario001。该脚本Scenario000显示菜单屏幕91,菜单屏幕91具有一个到脚本Scenario001的链接按键。当光盘装入再现装置时,显示菜单屏幕91。当点击菜单屏幕91上的按键92时,再现脚本Scenario001。再现脚本Scenario001后,再次显示菜单屏幕91。
图33示出了图32所示的结构所必需的文件列表的一个例子。在这个例子中,需要六个文件:文件“startup.js、文件“Scenario000.js”、文件“000.html”、文件“00000.rpls”、文件“Scenario001.js、文件“00001.rpsi”。
在这些文件中,文件“Scenario000.js”是描述了脚本Scenario000的结构信息的脚本文件。文件“Scenario000.js”描述了菜单屏幕91的结构信息,也就是脚本列表屏幕。文件“000.html”是描述了菜单屏幕91的版面信息的HTML文件。文件“00000.rpls”是作为菜单屏幕91的背景而显示的播放列表文件。文件“Scenario001.js”是描述了脚本Scenario001的结构信息的脚本文件。文件“00001.rpls”是一个播放列表文件,其描述了根据脚本Scenario001而再现的播放列表的信息。
在图33中,省略了根据播放列表文件00000.rpls”和00001.rpls”而再现的内容文件(点击信息文件“%%%%%.clip”和AV流文件“*****.m2ts”)。
图33所示的每个文件,都根据图34所示的目录结构,记录在光盘上。
图35到图38示出了脚本文件和HTML文件描述的实际例子。图35是文件“startup.js”的描述的例子。文件“startup.js”确定脚本的数量和其记录在光盘上的名字。方法playScenario(“scenario000”)访问文件“scenario000.js”,并且再现脚本Scenario000。当再现脚本Scenario000时,显示菜单屏幕91。
图36是文件“scenario000.js”的描述的例子。当用“on”(见图28)确定一个功能并且描述了方法catchEvent()的一个事件发生时,执行在该功能中确定的内容。在图36所示的例子中,指定HTML文件“000.html”,其描述了菜单屏幕91的版面信息。控制阅读定时和菜单屏幕91显示到图形平面12的显示定时。此外,方法playPlayList(“00000.rpls”)再现播放列表“00000.rpls”。
换句话说,文件“scenario000.js”使播放列表“00000.rpls”的影片显示在影片平面10上。此外,在显示播放列表“00000.rpls”时,文件“scenario000.js”在检测到标志的时候将菜单屏幕91显示在图形平面12上。
图37是文件“000.html”的描述的例子。在由标记<style type=“text/css”>和</style>包围的部分中,描述了用于“menu”和“scenario000”引用的图像的显示屏幕91中的版面信息。在图37所示的例子中,用屏幕上的绝对坐标描述版面信息。用图像名“menu”引用的图像数据显示为一个宽200像素、高50像素的图像,其位置在从屏幕上部起200像素和屏幕左端起800像素处。类似地,图像名“scenario”引用的图像数据显示为宽4D0像素、高100像素的图像,其位置在从屏幕上部起700像素和屏幕左端起700像素处。
在标记<script type=“text/javascript”>和</script>包围的部分中,确定用于鼠标操作的每个事件句柄onMoverhander(f)、onMounthander(f)、onMclickhander(f)。在图37所示的例子中,作为按键图像的图像数据“201.png”、“200.png”、“202.png”与事件句柄onMoverhander(f)、onMounthander(f)、onMclickhander(f)相关联。此外,事件句柄onMclickhander(f)再现脚本文件“scenario001.js”。
在标记<body>和</body>包围的部分中,描述了菜单屏幕91的图形平面12上的图像数据。描述了图像数据的文件名(“100.png”、“200.png”),其对应于由标记<style type=“text/css”>和</style>所包围的部分中的所描述的图像名。当根据例如一个鼠标等点击装置的操作,发生用于由图像名“scenario000”引用的图像数据事件onMover、onMount和onclick时,分别执行事件句柄onMoverhander(f)、onMounthander(f)、onMclickhander(f)。
事件onMouseover是当游标位于指定的区域时发生的。事件onMouseout是当游标从指定区域离开时发生的。事件onclick是当发生预定操作同时游标位于指定区域时发生的,该预定操作可以是鼠标等点击装置的点击操作。
图38是文件“scenario001.js”的描述的例子。功能UOPControl()确定了当脚本文件“scenario001.js”正在再现时的操作。如果按下了远程控制菜单键,再现用于显示菜单屏幕91的脚本Scenario000。功能playListEnded()确定一个当脚本文件“scenario001.js”的播放列表已再现时的操作,再现用于显示菜单屏幕91的脚本scenario000。脚本文件“scenario001.js”再现播放列表“00001.rpls”。
接下来,将描述图35到图38所示的操作。当光盘装入再现装置时,从光盘阅读文件“startup.js”。从文件“startup.js”访问文件“scenario000.js”。在执行文件“scenario000.js”中描述的脚本“scenario000”时,根据图36所示的脚本,在影片平面10上显示播放列表“00000.rpls”的影片。
根据播放列表“00000.rpls”中描述的标志所相应的时间,访问文件“000.html”。根据文件“000.html”的描述,显示脚本表格的菜单屏幕91在图形平面12上展开,并且显示。菜单屏幕91还包括一个脚本“scenario000”。
在菜单屏幕91上,有例如“Menu”等字符串的图像文件“100.png”,以及例如“Scenario001”等字符串的图像文件“200.png”。上述图像文件位于图形平面12,并且显示了上述字符串。在显示为图形平面12的背景的影片平面10中,显示了播放列表“00000.rpls”的影片。影片平面10上的播放列表“00000.rpls”的影片和图形平面12上的文件“000.html”的菜单屏幕91重叠并显示在相同的屏幕上。结果,菜单屏幕91和影片背景一起显示。
在这里,预定的不透明度指定给图形平面12的一个屏幕(菜单屏幕91)。菜单屏幕91可以透明地显示在影片平面10的影片上。在这个例子中,在播放列表“00000.rpls”的开始和结束处描述了标志。当播放列表“00000.rpls”再现时,显示菜单屏幕91。在再现播放列表“00000.rpls”后,清除菜单屏幕91。
在菜单屏幕91上,显示一个游标,其可以由用户的远程控制器的键操作所移动。当游标与图像文件“200.png”重叠时,文件“000.html”所确定的事件Mouseover发生。当事件Mouseover发生时,执行相应于事件onMouseover的事件句柄onMovehandler(),以表示聚焦在图像文件“200.png”的状态。当执行句柄onMovehandler()时,用图像文件“201.png”代替图像文件“200.png”。图像文件“201.png”是按键图像或类似图像,其颜色与图像文件“200.png”不同。
当游标位于图像文件“201.png”时,如果用户用远程控制命令器的预定键执行了点击操作,执行相应于该事件onclick的事件句柄onMovehandler()。结果,用图像文件“202.png”代替图像文件“201.png”,表示已选择图像文件“201.png”的状态。图像文件“202.png”是按键图像,其虚拟地表示已按下一个按键的状态。
当在文件“000.html”中描述了相应于事件“focused”和“clicked”的事件句柄时,就完成了一个具有交互功能的菜单屏幕,该功能响应用户的输入。
当点击菜单屏幕91上的按键图像“Scenario0001”时,执行用于脚本“Scenario0001”的再现程序。当执行文件“scenario001.js”时,再现脚本“scenario001”。如图38所示,访问文件“Scenario001”中描述的方法playPlayList(“0001.rpls”)。结果,再现播放列表“00001.rpls”。
再现播放列表“00001.rpls”后,发生一个播放列表再现结束事件PlayListEnded()。相应于该事件的事件句柄playScenario(scenario000.js)再现脚本“scenario000.js”。在这个例子中,再现脚本“Scenario001”之后,再次显示菜单屏幕91。
当再现脚本“Scenario001”之后,即使操作了由“keyID”指定的键,再现脚本“scenario000.js”,并且显示菜单屏幕91。
图35到图38所示的HTML和ECMA脚本的描述只是例子。换句话说,当前发明不限于上述的例子。HTML和ECMA脚本在它们的描述中有灵活度。因而,即使部分地改变了HTML和ECMA脚本,也可以完成类似的操作。
2-7解码器模型
图39示出了根据本发明第一实施例的播放器解码器100的结构的例子。播放器解码器100解译从装进驱动装置(未示出)的光盘所复制来的数据,输出一个AV流,并且允许用户交互地操作该输出的AV流。
CPU(中央处理器)(未示出)控制操作器解码器100的所有操作。CPU监视并控制播放器解码器100的独立部分的流和数据流。
当光盘装入驱动装置(未示出)时,如上所述,再现文件“startup.js”。根据文件“startup.js”的描述,阅读一个脚本文件。根据该脚本文件的描述,从光盘中读出一个HTML文件、显示在影片平面10上的影片数据、显示在字幕平面11和图形平面12上的图像数据、前述脚本文件所访问的另一个脚本文件,以及声音数据。
在上面的描述中,在从光盘中读出的数据中,例如影片数据的流、子画面(字幕数据)和声音数据称为实时流,上述数据需要被连续地处理。相反,非实时数据例如脚本文件、HTML文件、图像数据文件和播放列表文件称为储存对象,上述数据不需要被连续处理。储存对象存储在存储器或类似装置中,并且在其中被扩展。当需要时,处理储存对象。
播放器解码器100具有输入通道为通道(1)和通道(2)的两个系统。储存对象输入到通道(1)的输入端101。实时流输入到输入通道(2)的输入通道202。可选地,储存对象可以输入到输入端202。根据本发明的第一模式,实时流和部分储存对象输入到输入端202,例如MPEG2TS。
输入到输入通道202的实时流不限于MPEG2TS。只要实时流可以以包为单位传送,并且与视频数据、音频数据、静止画面数据等多路复用,就可以输入另一种格式的流。在这里,将在后面描述的PID滤波器110用作分离信号电路,其分离视频数据、音频数据、静止画面数据等。
当驱动装置中光盘的旋转速度增加了例如两倍时,光盘的阅读传送速度就增加了,以时间分割基础,从光盘执行通道(1)和(2)驱动装置的两个系统的阅读操作。
首先,将描述输入通道(1)的系统。输入通道(1)的一个储存对象被输入到开关电路102。当输入作为储存对象的ECMA脚本、HTML文件等的程序码时,开关电路102选择输出端102A。输入程序码存储在码缓冲器104。
当输入作为储存对象的图像数据时,开关电路102选择输出端102B。结果,该输入图像数据输入到开关电路103。当输入到输入端202的实时流不包括显示在字幕平面11或图形平面12的图像数据时,开关电路103选择输入端103A。从开关电路102输入的图像数据存储在内容缓冲器105中。
类似,当显示在字幕平面11或图形平面12的图像数据包括在输入到端202的实时流中时,开关电路103选择输入端103B。结果,图像数据存储在内容缓冲器105中。当有需要时读出存储在码缓冲器104和内容缓冲器105中的储存对象,并提供给多介质引擎106。
存储在内容缓冲器105中的储存对象的图像数据通过开关电路107和108,也分别提供给子画面解码器116和静止画面解码器117。
多介质引擎106包括XML剖析器(parser)106A、脚本翻译机106B和图形翻译机106C。多介质引擎106可以由独立的硬件组成。可选地,多介质引擎106可以由CPU(未示出)执行的预定程序的处理实现。
XML剖析器106A有剖析XML(可扩展标记语言)文档的功能。此外,XML剖析器106A还可以剖析HTML语言。由XML剖析器106A剖析过的HTML文档转换成了播放器解码器100可以执行的格式。脚本翻译机106B分析一个ECMA脚本,并将其转换成播放器解码器100可以执行的格式。图形翻译机106C对图像数据进行解码,得到可以在字幕平面11和图形平面12上展开的格式。
多介质引擎106用缓冲器109的工作存储器执行XML剖析器106A、脚本翻译机106B和图形翻译机106C的处理。例如,XML剖析器106A、脚本翻译机106B使用缓冲器109的码缓冲器109a。图形翻译机106C使用缓冲器109的图形缓冲器109D。缓冲器109进一步包括字体缓冲器109B,其中存储字体数据,用于显示字符串,还包括树缓冲器109C,其中以分级树结构存储XML剖析器106A对HTML文档的解析结果。
多介质引擎106从码缓冲器104读出例如ECMA脚本。当有需要时,根据该ECMA脚本的描述,多介质引擎106从码缓冲器104中读出另一个ECMA脚本和HTML文档,并且从内容缓冲器105中读出图像数据。存储在码缓冲器104和内容缓冲器105中的数据可以存储在码缓冲器104和内容缓冲器105中,直到不再需要这些数据。因而,当需要时,可以重复地读出存储在码缓冲器104和内容缓冲器105中的数据。
此外,多介质引擎106为多种类型的输入数据、JAVAvm(Java(已登记商标)虚拟机器)功能等执行分离处理。而且,多介质引擎106从远程控制命令器、点击装置等接收用户的输入,并且根据用户的输入执行一个处理。用户的输入提供给子画面解码器116、静止画面解码器117和音频解码器118、MPGE视频解码器120、系统解码器121,这些将在后面描述。
图形翻译机106C处理的图像数据通过开关电路130和131,分别提供给子画面平面132和静止画面平面134。此外,图像数据提供给图形现磁133和M/S转换平面136。在这个例子中,假定提供给子画面平面132和静止画面平面134的图像数据有PNG格式。多介质引擎106控制图像数据提供给面132、133、134和135的时间。M/S转换平面136控制开关电路137。开关电路137选择从静止画面平面134(将在后面描述)输出的静止画面数据,以及从影片平面135输出的影片数据,并且将选择的数据提供给下游阶段。
子画面平面132和图形平面133分别对应于前述字幕平面11和图形平面12。静止画面平面134和/或影片平面135对应于上述影片平面10。每个子画面平面132、图形平面133、静止平面134.影片平面135是由例如帧存储器组成的。
多介质引擎106还提供控制信号,其使得静止平面134.影片平面135.子画面平面132和图形平面133被选择到表示处理器139,其将在后面描述。类似地,多介质引擎106提供一个控制信号,其控制音频流在表示处理器141的输出,这将在后面描述。
接下来,将描述输入通道(2)的系统。作为MPEG2TS输入到输入端202的实时流提供给PID滤波器110。PID滤波器110从MPEG2TS传送流提取PID(包识别),并检测包括在传送包中的流的属性。PID滤波器110根据流的属性为每个传送包将输入实时流分入相应的系统。
当传送包包括了储存对象的图像数据时,该传送包临时存储在缓冲器TBn 111A。在预定时间读出该传送包,并通过已选择的输入端103B,输入开关电路103。此后,通过开关电路103,将该传送包存储在内容缓冲器105中。
当PID滤波器110已确定传送包包括子画面数据,也就是字幕数据时,根据PID,该传送包临时存储在缓冲器TBn 111B和缓冲器Bn 112B中。传送包是在预定时间读出,并且通过已选择的输入端107B,输入开关电路107。通过开关电路107,传送包提供给子画面解码器116。
子画面解码器116从提交的传送包消除标题信息,对包括在传送包中的字幕数据进行解码,并且得到用于字幕的图像数据。该图像数据输入到开关电路130的输入端130B,并且通过开关电路130扩展到子画面平面132。
当PID滤波器110根据PID确定传送包具有画面数据时,传送包临时存储在缓冲TBn 111C和缓冲器Bn 112C中。传送包在预定时间读出,并且通过已选择的端108B,输入到开关电路108。该传送包通过开关电路108,提供给静止画面解码器117。
静止画面解码器117从提交的传送包消除标题信息,对包括在传送包中的静止画面数据进行解码,并且得到静止画面数据。该静止画面数据在预定时间输入到开关电路131的输入端131B,并且通过开关电路131扩展到静止画面平面134。
当PID滤波器110根据PID确定传送包具有音频数据时,传送包临时存储在缓冲TBn 111D和缓冲器Bn 112D中。传送包在预定时间读出,并且提供给音频解码器118。包括在传送包中的音频数据是根据例如基于MPEG的系统而压缩编码的。
音频解码器118还具有例如线性PCM(脉码调制)音频解码器119。音频解码器118从输入的传送流中消除标题信息,对包括在传送包中的压缩编码音频数据进行解码,并且得到线性PCM音频数据。
线性PCM音频数据由音频解码器118中输出,并输入到用于音频的表示处理器141。在表示处理器141中,在多介质引擎106的控制下,将一个声音效果添加到线性PCM音频数据,并且从输出端142得到该数据。
当PID滤波器110根据PID确定传送包包括影片数据时,传送包临时存储在缓冲器TBn 111E、缓冲器MBn 113和缓冲器EBn 114中,在预定时间读出传送包,将其提供给MPEG视频解码器120。对包括在传送包中的影片数据根据MPEG2系统进行压缩编码。
MPEG视频解码器120从提交的传送包中消除标题信息,对根据MPEG2系统压缩编码的影片数据进行解码,得到基带影片数据。
从MPEG视频解码器120输出的影片数据输入到开关电路124的输入端124A。此外,影片数据通过缓冲器123输入到开关电路124的输入端124B。在开关电路124中,在预定时间选择输入端124A和124B。输出的影片数据在影片平面135上展开。
当PID滤波器110根据PID确定传送包包括系统信息时,通过缓冲器TBn111F和Bsys115,传送包提供给系统解码器121。系统解码器121从提交的传送包中消除标题信息,并且从中提取系统信息。该系统信息提供给例如CPU(未示出)。
子画面平面132中的图像数据提供给调色板150,其对应于上述的调色板22。该调色板有256色。调色板涉及到一个索引。输出YCbCr数据。此外,提取不透明度数据α1。YCbCr数据和不透明度数据α1提供给表示处理器139。
图形平面133上的图像数据提供给RGB/YCbCr开关电路151,其对应于RGB/YCbCr开关电路26。RGB/YCbCr转换电路151将颜色系统从RGB(4:4:4)转换到YCbCr(4:4:4)。将从RGB/YCbCr转换电路151输出的YCbCr数据提供给表示处理器139。此外,从图形平面133上的图像数据中提取不透明度数据α2。所提取的不透明度数据提供给表示处理器139。
静止画面平面134上的图像数据输入到输入端137A。此外,影片平面135上的影片数据是输入到开关电路137的输入端137B。静止画面平面134上的图像数据或影片平面135上的影片数据是由M/S转换平面136上的开关电路137所选择的。换句话说,像影片平面135一样处理静止平面134。开关电路137的输出通过上/下转换器138提供给表示处理器139。
上/下转换器138是转换图像分辨率的电路。例如上/下转换器138将具有高分辨率的高清晰度(HD)图像转换成具有标准分辨率的标准清晰度(SD)图像。
表示处理器139使用图22所示的字幕平面11(子画面平面132)的图像数据的不透明度α1和图形平面12(图形平面133)的不透明度α2,执行一个α混合处理。
换句话说,表示处理器139根据已设置到子画面平面132的图像数据的不透明度α1,将开关电路137已选择的静止画面平面134或影片平面135的图像数据与子画面平面132的图像数据组合。此外,表示处理器139根据已设置到图形平面133中的图像数据中的不透明度α2,组合一个图像和图形平面133的图像数据,上述第一个图像数据是由静止画面平面134或影片平面135以及子画面平面132所组合的。从输出端140得到一个图像数据,该数据是由图形平面133的图像数据、子画面平面132的图像数据(字幕数据)、静止画面平面134的图像数据或影片平面135的图像数据组合得到的。
表示处理器139可以在实时基础上为图像数据执行一个效果处理。
上述描述中,播放器解码器100的各部分是由硬件组成的。然而,本发明并不限于该例子。例如,播放器解码器100可以由软件的处理来实现。在这种情况下,播放器解码器100可以在一台计算机装置上实现。可选地,解码器100可以由硬件和软件的组合来实现。例如,音频解码器118和MPEG视频解码器120可以由硬件组成。播放器解码器100的其它部分可以由软件组成。
一个程序,可以使得一个计算机装置执行播放器解码器100,播放器解码器100可以仅由软件组成,或者由硬件和软件的组合组成,该程序记录在例如光盘只读存储器(CD-ROM)等记录介质上,并且与其一起提供。CD-ROM装入计算机装置的CD-ROM驱动器。记录在CD-ROM上的程序装载入该计算机装置。结果,上述处理可以在计算机装置上执行。由于该计算机装置的结构是公知的,因此省略了对其的描述。
2-8用户界面
接下来,将描述根据本发明一个实施例的用户界面。图40示出了显示在图形平面12上的按键的状态改变的例子。有两个按键显示状态:在屏幕上显示了一个按键的按键显示状态,以及在屏幕上没有显示按键的按键非显示状态。按键非显示状态改变到按键显示状态。在清除该按键后,按键显示状态改变到按键非显示状态。按键显示状态进一步包括三个状态:正常状态、选择状态和执行状态。按键显示状态可以在这三个状态中改变。按键显示状态可以在这三个状态中的一个方向改变。
接下来,参照图25,详细描述按键显示状态的状态改变。当光盘装入播放器或当用户按下远程控制器的菜单键时,显示菜单屏幕60。显示菜单状态60的时候,按键62A、62B、62C、63D、64和65从非显示状态改变到状态。通常,按键62A、62B、62C、63D、64和65中的一个已处于选择状态。现在,假定按键62A已处于选择状态,其它按键处于正常状态。
当用户操作例如远程控制器的箭头键,按键中的一个(例如,按键62A)从正常状态改变到选择状态。此外,按键62A从选择状态变到正常状态。游标已根据用户操作而移动。当用户操作远程控制器的OK键时,按键62B从选择状态改变到执行状态。结果,执行按键62B指定的一个播放器操作。
如上所述,播放器操作在编程语言或例如ECMA脚本等脚本语言中作出了描述。播放器操作的程序和脚本记录在光盘中。播放器操作的程序和脚本可以作为独立的文件记录在光盘上。可选地,图形对象、播放器操作的程序和脚本可以与片断AV流文件多路复用,正如将在后面描述的图形对象。
2-9.关于数据结构
接下来,将与图像数据一起,描述组成这样一个菜单屏幕和控制信息的按键的图像数据的数据结构。现在,将描述显示的字幕和图形(静止画面),它们不构成记录在光盘上的主要内容-影片。在后面的描述中,显示在屏幕上的例如字幕和图形等元素被看作对象。对象的类型分为三种,即字幕、同步图形和非同步图形,如图41所示。
字幕与影片显示,就像影片的字幕。字幕图像元素不与用户通过例如远程控制器的输入相关联。图形是例如菜单屏幕上的按键等图像元素,其可以接受用户的输入。此外,图形分成两类:同步图形和非同步图形。同步图形是与影片同步的图像元素。同步图形是例如分支选择屏幕,当内容主要部分再现时,其在特定时间显示。非同步图形是图像元素,其与正在再现的内容主要部分非同步地显示。非同步图形的例子是当光盘装入播放器时初始显示的菜单屏幕,还可以是根据用户的输入显示的屏幕。用Java应用程序显示的图像元素和根据浏览器软件上的HTML文件的描述而显示的图像元素是非同步图形,其中的Java应用程序在JavaVM上操作。
在显示在影片平面10上的每个图像元素和主画面的关系中,字幕和同步图形与主画面同步显示。因而,字幕和同步图形是同步类型的。另一方面,由于非同步图形与主画面非同步地显示,它们与其名字暗示的一样是非同步类型的。
字幕和图形可以根据平面分类。字幕显示在字幕平面11。同步和非同步图形显示在图形平面12。
由于正在再现主要影片时显示字幕和同步图形,它们倾向于具有共用的数据结构。在下文中,具有共用数据结构的字幕和同步图形称为图形对象。由于图形对象总是与正在再现的影片同步地显示,当它们与影片多路复用时,可以容易地处理。
图42A、图42B和图42C示出了根据本发明第一模式的图形对象200的数据结构的例子。如图42A所示,图形对象200是由三个区域组成的,它们是图形对象标题201、显示控制命令表格202和PNG数据区域203。
在下面的例子中,假定作为图形对象200的图像数据具有PNG格式,并且该图像数据是PNG图像数据。可选地,图形对象200可以是另一个格式的图像数据,例如具有JPEG格式的位映象数据,或根据运行长度压缩方法压缩了的图像数据,或没有压缩编码的位映象数据。为了简单起见,图像数据会表示为PNG图像、PNG图像数据等。
在图42A、图42B、图42C中,图形对象标题201描述了表示图形对象200的属性的信息。图形对象200的属性是例如图形对象200的数据尺寸、图形对象200具有的PNG图像的数量、图形对象200共用的用于PNG图像数据的调色板数据,以及用来识别图形对象200的识别信息。该识别信息是例如指定到每个图形对象200的号码。图形对象标题201可以进一步描述另一个信息。
显示控制命令表格202描述了控制PNG图像显示必需的信息,例如显示图形对象200具有的PNG图像的位置,以及显示开始时间,以及显示其结束时间。
PNG数据区域203描述了根据PNG格式压缩编码的图像数据(在下文中,该图像数据称作PNG数据)。PNG数据区域203可以具有多个PNG数据203A、203B...,和203n。在PNG数据区域203中描述的PNG数据的号码,在图形对象标题201中有描述。
假定在PNG数据区域203中描述的多个PNG数据203A、203B...,203n是有紧密联系的图像,就像一组组成了显示的按键的三个状态的动画或图像的一组若干静止画面那样。当上述PNG数据203A、203B,...,和203n组成一个图形对象时,PNG图像可以容易地处理。
图形对象200具有时间信息,其描述了图像对象200可以显示的时间。例如一个实时流被作为MPGE2TS传送的例子中,在MPEG2(运动图象专家组2)中确定的pts(显示时间标记)用作时间信息。该pts是再现的一个输出的时间管理信息。该pts由90kHz的时间测量,作为具有33位长度的值。MPEG系统的相关解码器的STC(系统时钟)与pts一致时,再现并输出相关访问单元。图形对象200可以在pts所表示的时间之后显示。在pts所表示的时间之后,用显示控制命令控制图形对象200显示的开始和结束。由于图形对象200的显示是用显示控制命令管理的,在图形对象200的显示结束后,可以显示相同的图形对象200。
图42B示出了字幕的图形对象200的一个例子。PNG数据区域203描述了作为PNG数据(1)203A-1的一个图像。当图形对象200是字幕时,该图形对象200只需要PNG数据(1)203A-1。例如淡入/淡出等特效并不改变通过添加显示控制命令而添加到例如字幕的一个图像的内容,这导致PNG数据(1)A-1的不透明度改变到显示控制命令表格202。
另一方面,当例如图像改变的动画等特效应用到字幕时,相应于该动画的各个动作的若干PNG数据(2)B-1、PNG数据(3)C-1、PNG数据(4)D-1可以描述在一个图形对象200中,如图42B中虚线所示。此外,例如日文和英文等不同语言的字幕的PNG数据可以描述为一个图形对象200中的PNG数据(1)A-1、PNG数据(2)B-1...。
图42C示出了组成一个按键的图形对象200的例子。如上所述,一个按键有正常状态、选择状态和执行状态三种类型的状态。一个按键可以用相应于上述三种类型的状态的不同图像显示。在使用相应于上述三种类型的状态的不同图像显示按键时,必须准备三个按键图像的数据。三个图像按键的数据处理为一个图形对象200。换句话说,图形对象200的PNG数据区域203描述PNG数据203A-2、203B-2和203C-3,上述PNG数据分别显示了正常状态、选择状态和执行状态的按键。
当图形对象200只具有图42B用实线表示的用于字幕的PNG数据203A-1时,图形对象200的控制命令表格202中描述用于PNG数据203A-1的显示控制命令。当图形对象200具有如图42C所示的若干PNG数据203A-2、203B-2和203C-2时,必需识别在用于若干PNG数据203A-2、203B-2和203C-2的显示控制命令表格202中描述的显示控制命令。
当图42C中所示的图形对象200的按键的起始状态指定为选择状态时,首先显示并位于PNG数据区域203的开始的按键图像不应是用于正常状态的PNG数据203A-2,而是用于选择状态的PNG数据203B-2。根据本发明的第一模式,显示控制在图形对象200之外执行。
应当由图形对象200的外部脚本程序指定每个按键的起始状态、显示开始和显示结束、每个按键的执行状态中执行的程序等,脚本程序可以是,例如,上述的ECMA脚本或Java脚本。当用户操作远程控制器的箭头键和移动游标时,改变显示的用于按键的PNG数据。在这种情况下,播放器根据用户的输入改变每个按键的PNG数据。
根据本发明的第一模式,图形对象100划分成MPEG2中规定的包,与片断AV流多路复用,并且作为片断AV流文件记录在光盘上。如图43所示,图形对象200被划分并包括在PES(打包元素流)包210,210,...,这在MPEG2中有规定。在这里,图形对象标题201、显示控制命令表格202和各个PNG数据203A、203B...203n包含在各个PES包210,210,...的有效载荷的开始。结果,当再现图形对象200时,可以容易地搜索其每个数据。
被划分并包括在PES(包元素流)包210,210,...的图形对象200进一步划分成TS包,TS包具有188直接的固定数据大小(未示出),并且与例如片断AV流等影片数据和声音数据流多路复用。
2-10关于用于图形对象的解码器模型
图44示出了解码图形对象200的图形对象解码器模型240的例子的功能框图。图形对象解码器模型240主要包括图39所示的播放器解码器100的多介质引擎106和子画面解码器116。在图44中,为了简单起见,与图39中相同的部分使用相同的标记,并省略了对它们的描述。由于图44比图39进一步功能性地示出了图形对象解码器模型240,在必要时,该图形对象解码器模型240的描述将与这些图所示的结构作比较。
片断AV流从端202提供给PID滤波器110。PID滤波器110的功能是作为MPEG TS(传送流)的信号分离器,根据TS的PID,从MPEG TS中提取影片数据、音频数据和图形图形对象200。影片数据提供给缓冲器TBn111E,其是视频缓冲器。音频数据提供给作为音频缓冲器的缓冲器111D。图形对象200是提供给缓冲器TBn 111B。其是图形对象的输入缓冲器(标记为图44中的“GOBJ”)。
从缓冲器TBn 111B中读出图形对象200,并提供给GOBJ剖析器224。该GOBJ剖析器224是例如图39中所示的子画面解码器116的功能之一。GOBJ剖析器224从提交的图形对象信息200中读出图形对象标题201,从图形对象标题201中提取调色板数据,并且从图形对象标题201中分离显示控制命令表格202和PNG数据区域203。调色板数据和显示控制命令表格202提供给命令处理器/图形提取器225。PNG数据区域203的PNG数据203A、203B,...临时存储在PNG解码器缓冲器226中。PNG解码器缓冲器226相应于图39所示的缓冲器Bn112B。
存储在PNG解码器缓冲器226中的PNG数据203由PNG解码器227解码,该解码器是子解码器116的功能之一,并且将解码后的数据作为位映象数据输出。该位映象数据存储在对象缓冲器228。对象缓冲器228相应于图39所示的图形缓冲器109D。
命令处理器/图形分割器225根据显示控制命令表格202描述的显示控制命令,读出存储在对象缓冲器228中的位映象数据,并且在指定时间将位映象数据传送到平面缓冲器229。平面缓冲器229相应于例如图39中的子画面平面132和图形平面133。平面缓冲器229A和229B(未示出)可以用于字幕和图形对象,而不仅是字幕。可选地,子画面平面132和图形平面133可以是与平面缓冲器229不同的区域。
此外,命令处理器/图形分割器225提交来自GOBJ剖析器224的调色板数据到共用调色板表格230,其对应于图39所示的调色板150。命令处理器/图形分割器225具有多介质引擎106的一部分功能,以及图39所示的子画面解码器116的一部分功能。
如上所述,当图形对象200包括一个按键时,图形对象200包括对应于该按键的三种类型的状态的PNG数据203A、203B和203C。PNG数据203A、203B和203C是由PNG解码器227解码,并且存储在对象缓冲器228中。
另一方面,例如来自用户的远程控制器的一个操作由命令处理器/图形分割器225接收。该命令处理器/图形分割器225根据用户的输入,从对象缓冲器228中读出一个位映象,并且将该位映象传送到平面缓冲器229。当用户的输入导致按键的状态从选择状态改变到执行状态时,选择性地从对象缓冲器228中读出相应于执行状态的按键图像,并且传送到平面缓冲器229。
命令处理器/图形分割器225可以执行特效处理,例如用于位映象数据的提取处理,该处理是根据显示控制命令,从对象缓冲器228中读出的。
根据本发明的第一模式,由于PNG数据的一个数据的采样深度是8位,在平面缓冲器229中安排每像素8位的数据。平面缓冲器229的数据是在显示系统的扫描周期的间隙读出,该显示系统执行例如显示装置等的显示处理。从平面缓冲器229读出的位映象数据提供给公用调色板表格230,该调色板表格相应于例如图39所示的调色板150。公用调色板表格230将位映象数据根据调色板索引值转换成真实RGB(4:4:4)的颜色信息,并且从位映象数据中提取不透明度数据α1和α2。RGB(4:4:4)的颜色信息转换成转换电路(未示出)YCbCr(4:4:4)的颜色信息。YCbCr(4:4:4)的颜色信息与不透明度数据α1和α2一起提供给图39所示的表示处理器139。
需要改变调色板和不透明度的特殊效果,例如淡入/淡出是由命令处理器/图形分割器225完成的,其根据显示控制命令,改变公用调色板表格230中的数据。可选地,可以为字幕和图形对象200而不是字幕而安排公用调色板表格230A和230B(未示出)。
图45A、图45B、图45C和图45D示出了图形对象输入缓冲器、PNG解码器227、对象缓冲器228、平面缓冲器229(缓冲器TBn 111B,在下文中称为GOBJ输入缓冲器)的存储数据对象数量的改变的例子。PNG解码器227示出了当其解码PNG数据时,所使用缓冲器中存储的数据的数量。
图45A、图45B、图45C和图45D示出了在时基上三个图形对象GOBJ#1、GOBJ#2和GOBJ#3的数据数量的改变。用MPEG2系统的dts(解码时间标记)表示图形对象的解码开始时间。一个对象的有效周期的开始时间用pts表示。一个对象在图形对象标题201描述的时间presentation_end结束。显示控制命令指示有效周期中一个图像的显示开始和结束。
在图45D中,图形对象GOBJ#1的PNG数据输入到GOBJ输入缓冲器。在GOBJ#1的时间dts,开始PNG数据的解码。在图45C中,PNG数据从GOBJ输入缓冲器传送到PNG解码器227。解码该PNG数据并得到位映象数据。实际上,该PNG数据是临时地从GOBJ输入缓冲器移动到PNG解码器缓冲器226。PNG解码器227对存储在PNG解码器缓冲器226中的数据执行解码处理。
由于PNG解码器227有一个解码速度的上限,从GOBJ输入缓冲器提交数据到PNG解码器缓冲器226,以便数据的传送速度不超过PNG解码器227的解码速度。因而,PNG数据以一个数据传送速度输入到PNG解码器缓冲器226,该速度相应于一个垂直线的斜率,该垂直线表示PNG解码器227中的PNG数据的处理时间是0。
即使PNG数据没有全部输入PNG解码器227,也可以开始PNG数据的解码。图45A、图45B、图45C和图45D所示的例子中,存储在GOBJ输入缓冲器中的对象GOBJ#1完全传送到PNG解码器227之后,到该GOBJ缓冲器的下一个对象GOBJ#2的PNG数据的输入开始进行。
类似地,对象GOBJ#2的PNG数据和对象GOBJ#2的PNG数据以相应于特别斜率B和C的各自的传送速度,分别输入PNG解码器缓冲器226。实际上,斜率B在各个区域中都不同。
当对象GOBJ#1的有效周期在GOBJ#1的pts时间开始时,已解码并且存储在PNG解码器缓冲器中的对象GOBJ#1的位映象数据传送到对象缓冲器228(图45B)。对象GOBJ#1传送到对象缓冲器228的有效周期持续到由GOBJ#1表示结束的时间。
在对象GOBJ#1的有效周期中,当发出了GOBJ#1的命令Display ONCmd.时,存储在对象缓冲器228中对象GOBJ#1的位映象数据传送到平面缓冲器229,并且显示(图45A)。如将要描述的,传送位映象数据到平面缓冲器229的传送速度的上限根据总线宽度等的影响而改变。因而,位映象数据是以一个相应于例如特定斜率D的传送速度而写入平面缓冲器229的。
类似地,其它对象GOBJ#2和对象GOBJ#3的位映象数据是对应于斜率E、F和G的传送速度,写入平面缓冲器229的。
持续地显示对象GOBJ#1,直到发出GOBJ#1的命令Display OFF cmd,该命令清除对象GOBJ#1的指示。当发出对象GOBJ#1的命令Display OFFcmd.时,删除存储在平面缓冲器229中的对象GOBJ#1的位映象数据,并且在屏幕上清除对象GOBJ#1。
对象GOBJ#2和对象GOBJ#3是连续地输入GOBJ缓冲器的。类似于对象GOBJ#1,对象GOBJ#2和对象GOBJ##的解码在GOBJ#2的时间dts和GOBJ#3的时间dts开始。PNG数据提供给PNG解码器227。PNG解码器227用PNG解码器缓冲器解码PNG数据,并且输出位映象数据。对象GOBJ#2的有效周期是由GOBJ#2的指定时间pts。GOBJ#2的命令Display ON cmd.(图45A到图45D中未示出)显示对象GOBJ#2。对象缓冲器228将位映象数据传送到平面缓冲器229。显示对象GOBJ#2,直到发出GOBJ#2的命令Display OFF cmd.。
在图45A到图45D所示的例子中,以GOBJ#2的命令Display OFF cmd.(未示出)清除对象GOBJ#2之后,用GOBJ#2的命令Display ON cmd.再次显示对象GOBJ#2。对象GOBJ#2的位映象数据保存在对象缓冲器228中,直到GOBJ#1的有效周期结束时间表示结束指示到对象GOBJ#2。因而,通过GOBJ#2的命令Display ON cmd.,可以重复地显示对象GOBJ#2。
另一方面,为对象GOBJ#3指定的有效周期与为对象GOBJ#2指定的有效周期交迭。在这种情况下,对象存储器228根据其空白容量在不同的区域存储多个位映象数据。例如,对象GOBJ#2的数据从对象缓冲器228传送到平面缓冲器229并显示时,当对象GOBJ#3的位映象数据从对象缓冲器228的不同区域传送时,两个位映象数据可以同时显示。
2-11.关于图形的传送速度
接下来,将考虑图形对象解码器模型240(下文称作解码器模型240)设置在播放器中的情况。要使同一个光盘的数据的再现具有不同播放器的兼容性,必需向解码器模型240施加预定的限制。例如,解码器模型240具有图形处理能力的上限。因而,当输入了超过该能力上限的图形数据时,不可能很好地对图形数据进行解码。结果,不能正常地显示图形数据。
在一个标准中应当规定播放器端的图形处理的最小能力。另一方面,该标准规定的最小能力中可以处理的图形可以在内容制作者一端准备。通过将播放器端具有图形处理的能力与内容制造者端预备的图形处理的能力相匹配,可以保持兼容再现能力。
根据本发明的第一模式,在图44中,规定了从GOBJ剖析器224到PNG解码器缓冲器226的数据传送速度R(1),以及从命令处理器225到平面缓冲器229的数据传送速度R(2)。
数据传送速度R(1)规定了每单元时间传输到PNG解码器缓冲器226的数据传送数量。换句话说,图45C所示的斜率A、B和C对应于数据传送速度R(1)。这规定了解码能力,该能力表示安排在PNG解码器缓冲器226下游的PNG解码器227,在单元时间内能够解码的压缩编码的图形数据的数量。因而,通过限制该数据传送速度R(1),可以防止不完全地解码以及不正确地显示所输入的压缩编码的图形数据。
数据传送速度R(2)规定了图像的更新速度。平面缓冲器229对应于实际在显示装置上的屏幕。因而,用户看到的图形的更新速度依赖于数据写到平面缓冲器229的速度。数据传送速度R(2)规定了平面的所有最小更新间隔,也就是在[字节/秒]单元中屏幕的所有。换句话说,图45A所示的斜率D、E、F和G对应于数据传送速度R(2)。
当更新了平面的一部分时,由于更新的图像数据的数量很小,其更新的周期是一个比数据传送速度R(2)规定的最小更新时间间隔还小得多的周期。然而,更新周期并不总是与更新的图像数据的数据数量成比例的。更新时间间隔很大程度上受平面上图像数据排列的影响。
接下来,参照图46,详细地描述平面的更新速度。假定对象缓冲器228存储了两个图形对象460和461,图形对象460和461写入平面缓冲器229并显示。
图形对象460和461从对象缓冲器228中读出,并提供给命令处理器/图形分割器225。命令处理器/图形分割器225的一个输出限定在上述的更新速度R(2),以限制屏幕上的更新速度(更新时间间隔)。
在这里,图形对象460和461的更新速度更多地取决于它们是如何置于平面上的,而不是它们的数据总量。这是由于一个执行图形处理的常规的图形处理器更新每个矩形区域中的平面。
例如,用一个正方形区域262更新一个平面,该区域包括位于该平面中的所有图形对象460和461。换句话说,命令处理器/图形分割器225根据图形对象460和461中的排列信息,形成正方形区域262中的图像数据。正方形区域262中的图像数据通过一个总线提供给平面缓冲器229。平面缓冲器229根据指定的显示位置,用正方形区域262中的数据替换相应于正方形区域262的区域的数据。
由于从命令处理器/图形分割器225输出的图像数据是位映象数据,图像数据具有的数据数量取决于该图像的区域,而不是图像的内容。图46所示的例子中,包括图形对象460和461的正方形区域262的数据数量可以用例如(宽×高)像素表示,也就是(宽×高字节)。
由于数据传送到平面缓冲器229的速度确定为速度R(2)[字节/秒],很清楚,图形对象460和461可以在{速度R(2)/(宽×高)}秒中更新。{速度R(2)/(宽×高)}过去后,可以提取下一个图形对象。因此,当光盘制造者端创建一个程序,其允许以至少上述时间周期的时间间隔提取两个图形对象,可以用任何播放器显示相同的图形。因而,任何播放器都可以保持该再现能力。
估计了数据传送速度R(2)后,可以确定字幕的动画速度,以便可以保持再现的兼容性,这将在下面描述。
2-12.图形对象结构的细节
接下来,将详细描述图形对象200的结构。图47所示的语法描述了图形对象200的结构的一个例子。图47示出了一个语法的示意图,该语法描述了一个图形对象200结构的例子。图42A所示的图形对象标题201、显示命令控制表格202和PNG数据区域203分别对应于块GraphicsObjectHeader()、块GOBJCommandTable()和块PNGImageReaion()。
块GraphicsObjectHeader()以一个域开始。该域length具有一个8位的数据长度、0或更大的整数。域length描述了紧接域length之后直到块GraphicsObjectHeader()尾端的位长。域presentation_end_time_stamp具有33位的数据长度,0或更大的整数。域presentation_end_time描述了图形对象200的有效周期结束时间。该图形对象的有效周期是从PES包标题的pts直到域presentation_end_time_stamp中描述的有效周期结束时间。域Number_of_PNG_image具有8位的数据长度,0或更大的整数,并且描述在块PNGImageRegion()中描述的PNG图像的数量。域Number_of_DispCmds具有8位的数据长度,0或更大的整数,并且描述了块GOBJCommandTable()中描述的显示控制命令的数量。
块GraphicsObjectHeader()中的块GlobalPaletteTable()描述了图形对象200中公用的调色板表格的信息。块GlobalPaletteTable()中描述的调色板表格信息是描述为公用调色板表格230的内容。域start_address_of_PNG_image(i)具有32位的数据长度,0或更大的整数,并且描述了i-th PNG图像的数据PNG_image(i)从块GraphicsObject()的开始,以相关数量的字节开始的位置。
域PNG_file_name(i)描述了从域start_address_of_PNG_image(i)开始的PNG数据的文件名。块PNGImageRegion()中的域PNG_image(i)的内容与单个PNG文件中的内容相同。块PNGImageRegion()是由连接一个或更多PNG文件创建的。例如,在图42A中,PNG数据203A、203B、...,203n是连接在一起的,并且创建了块PNGImageRegion()。在这里,文件PNG_file_name(i)中可以描述一个文件名,以便不会丢失该文件。相反,当分解PNGImageRegion()时,可以得到单个的PNG文件。单个的域PNG_file_name(i)是具有域PNG_file_name(i)中所描述的文件名的单个文件。
块GOBJCommandTable()是由命令组DispCmds(i)组成的,其是在相同时间执行的显示控制命令的连接。命令组DispCmds(i)描述了在命令execution_time(时间)开始的显示控制命令,该命令execution_time(时间)描述了执行时间。换句话说,命令execution_time(时间)之后直到下一个命令execution_time(时间)的部分组成了命令组DispCmds(i)。
如上所述,块PNGImageRegion()描述了域PNG_image(i),该域是根据PNG系统压缩的一个图像的数据。
任何padding_word的数量可以在块GraphicsObjectHeader()和块GOBJCommandTable()之间描述。类似地,任何padding_word的数量可以在块GOBJCommandTable()和PNGImageRegion()之间描述。
图48所示的语法描述了上述块GlobalPaletteTable()的结构的例子。域number_of_palette_entries描述了其之前的调色板数据的数量。当用具有8位数据长度的索引数字描述一个图像时,域number_of_palette_entries的最大数量是256。因而,可以使用256色。当仅使用256色中的一部分时,仅需要必要的调色板数据。域number_of_palette_entries描述了使用的索引的数量。
域palette_index_number描述了指定给在域palette_index_number之前的域red_value、域green_value、域blue_value和域alpha的颜色和不透明度的索引数字,图像数据用索引数字指示颜色和不透明度。
在块GlobalPaletteTable()的for语句循环中,具有相同值的域palette_index_number不会被描述两次以上。每个域red_value、域green_value、域blue_value具有8位的数据长度,以及0或更大的整数。域red_value、域green_value、域blue_value分别指定红、绿和蓝。域alpha具有8位的数据长度。域alpha表示不透明度α。当域alpha的值是0时,表示完全透明。当域alpha的值是255时,表示完全不透明。
每个PNG图像具有调色板信息PLTE的块。根据本发明的第一模式,不使用调色板信息PLTE,而是使用块GlobalPaletteTable()确定的调色板信息。当同时显示多个PNG图像时,如果该PNG图像使用不同调色板的颜色,是很难以正确的颜色显示该PNG图像的。换句话说,GraphicsObject()的域PNG_image(i)中描述的多个PNG图像指示公用块GlobalPaletteTable()并且使用块GlobalPaletteTable()中描述的公用调色板表格。
接下来,将描述命令组DispCmds(i)。命令组DispCmds(i)描述了显示控制命令,其控制图形对象200的显示。在命令组DispCmds(i)中,命令execution_time(start_time)使得在下一个命令execution_time(start_time)之前描述了的命令在指定时间start_time执行。时间start_time的开始点是图形对象200的pts。时间start_time的单元与pts相同。
命令组DispCmds(i)可以描述多个命令,其在命令execution_ime(start_time)中描述的时间start_time执行。命令组DispCmds(i)执行的命令在命令execution_time(start_time)中描述的时间start_time同时执行。在命令组DispCmds(i)中描述的命令执行之前,如果下一个命令组DispCmds(i+1)的命令execution_time(start_time)中描述的时间start_time已经过去,则取消命令组DispCmds(i)的执行。取而代之的,是执行下一个命令组DispCmds(i+1)。
在命令组DispCmds(i)中描述的除了命令execution_time(start_time)以外的其它显示控制命令被认为是在图49A和图49B中以列出。这些显示控制命令是由图49A和图49B所示的指定数字。
(1)命令execution_time(start_time)
(2)显示图形对象的命令
(3)清除图形对象的命令
(4)改变使用的调色板表格的颜色和不透明度的命令
(5)设置显示在平面上的图形对象的位置和大小的命令
(6)设置图形对象的显示范围的命令
(7)再现一个效果声音的命令
(8)将一个效果声音指定到图像数据(PNG数据)的命令
上述7种类型的命令只是例子。换句话说,命令组DispCmds(i)中的命令不限于上述命令。可以确定其它显示控制命令,并添加到命令组DispCmds(i)。
图形对象200的显示开始命令(2)和显示结束命令(3)是所谓淡入/淡出命令,其分别描述为命令fade_in(fade_in_time)和命令fade_out(fade_out_time)。
命令fade_in(fade_in_time)指定淡入操作。命令fade_in(fade_in_time)使得一个图形对象200从未显示状态逐渐地显示到显示状态。通过相应于时间fade_in_time逐渐地增加α混合的不透明度α的值,实现淡入操作。当命令fade_in(fade_in_time)跟随在命令execution_time(start_time)之后时,透明的图形对象200在由命令execution_time(start_time)指定的时间start_time之后,逐渐地变得不透明。在自变量时间fade_in_time所指定的时间过去后,所有调色板索引的不透明度α设置成公用调色板表格指定的一个值。
当命令fade_in(fade_in_time)的时间fade_in_time设置为0时,图形对象200立即以调色板表格中指定的颜色和不透明度α显示。
淡出是淡入的反处理。淡出是命令fade_out(fade_out_time)指定的。命令fade_out(fade_out_time))使得一个图形对象200从显示状态逐渐地被清除掉。通过相应于时间fade_in_out逐渐地减少α混合的不透明度α的值,实现淡出操作。当命令fade_out(fade_out_time)跟随在命令execution_time(start_time)之后时,非透明的图形对象200在由命令execution_time(start_time)指定的时间start_time之后,逐渐地变得透明。在自变量时间fade_out_time所指定的时间过去后,所有调色板索引的不透明度α的值设置成0。结果,图形对象200完全地变成透明且不可见。
当命令fade_out(fade_out_time)的时间fade_out_time设置成0时,立即清除图形对象200。
当不透明度α的值随着时间流逝,逐渐地在淡入和淡出之间变化时,可以更好地获得更自然的淡入和淡出效果。可选地,在淡入中,在由时间fade_in_time指定的时间过去之后,不透明度α的值应当与调色板表格中的指定的值相匹配。然而,不透明度α的分辨率和等级并不是由命令指定的。实际上,不透明度α的分辨率和等级依赖所安装的系统。
上述的例子中,为了高识别度,命令以例如“fade_in()”和“fade_out()”等文本表示。然而,实际上,命令fade_in()和命令fade_out()与它们的自变量一起转换成预定的二进制值,并且以DispCmds(i)描述。这同样适用于下面将描述的命令。
调色板表格颜色和不透明度α改变命令(4)改变调色板信息。该命令以change_palette(index,newR,newG,newB,newAlpah)的格式描述。同时在字幕平面11和图形平面12上显示的PNG图像涉及图24所示的公用调色板表格,其由图48所示的语法确定。确定为GlobalPaletteTable()的调色板信息用作公用调色板表格。使用命令change_palette(index,newR,newG,newB,newAlpah),可以改变公用调色板信息。
换句话说,在命令change_palette(index,newR,newG,newB,newAlpah)中作为自变量描述的值index,newR,newG,newB,newAlpah,使得由调色板号码索引所表示的颜色索引值的三个原始颜色值R、G和B,改变成值newR、newG和newB,不透明度α的值改变成值newAlpah。
命令(5)用在set_display_box(x1,y1,x2,y2)的格式中,其在一个平面上设置图形对象的显示位置和尺寸。命令(5)使图形对象200位于正方形区域(x1,y1)(x2,y2)中,该区域是平面上的坐标(x1,y1)和(x2,y2)确定的。命令(6)用在set_clipping_box(a1,b1,a2,b2)格式中,其设置一个图形对象的显示范围。命令(6)使正方形区域(a1,b1)(a2,b2)显示在平面上,该正方形区域是由图形对象200的PNG图像的(a1,b1)和(a2,b2)坐标确定的。
接下来,参照图50A和图50B,详细描述命令set_display_box(x1,y1,x2,y2)和命令set_clipping_box(a1,b1,a2,b2)。如图51所示,在图50A和图50B的坐标上,显示屏幕的左上角确定为原点,水平向右方向用x标识,垂直向下方向用y标识,用(x,y)标识坐标。
如图50A所示,set_clipping_box(a1,b1,a2,b2)使得实际显示的一个正方形区域(a1,b1)(a2,b2)设置在图形对象200的PNG图像250中。在图50A所示的例子中,假定正方形区域(a1,b1)(a2,b2)设置得比PNG图像250小。命令set_display_box(x1,y1,x2,y2)使正方形区域(a1,b1)(a2,b2)的真实显示位置设置在正方形区域(x1,y1)(x2,y2)的平面上(见图50B)。换句话说,只有PNG图像250的正方形区域(a1,b1)(a2,b2)正对着屏幕的正方形区域(x1,y1)(x2,y2)而显示。
当正方形区域(a1,b1)(a2,b2)比实际上显示的正方形区域(x1,y1)(x2,y2)大时,只显示正方形区域(a1,b1)(a2,b2)中的正方形区域(x1,y1)(x2,y2)的PNG图像。相反,当正方形区域(a1,b1)(a2,b2)比实际上显示的正方形区域(x1,y1)(x2,y2)小时,正方形区域(x1,y1)(x2,y2)中正方形区域(a1,b1)(a2,b2)的外部作为透明区域处理。
当上述显示控制命令与若干个execution_time(start_time)命令一起描述时,可以显示随着时间流逝而改变的字幕和同步图形。例如,在图47的图形对象200中,在块GOBJCommandTable()中描述若干命令组DispCmds(i)。每个命令组DispCmds(i)中都描述了显示控制命令execution_time(start_time),其时间start_time是不同的,以便在start_time指定的开始时间执行命令组DispCmds(i)。
图52示出了命令组DispCmds(i)的描述,以及图形对象200的显示改变的例子。在图52中,水平轴表示时间的流逝,然而垂直轴表示图形对象200的不透明度。在图52中,不透明度在向上方向上增加。Pts标识的时间是原点。
在第一命令组DispCmds(0)中,命令set_display_box(800,800,1300,900)在平面上设置一个显示区域。命令set_clipping_box(0,0,500,100)设置图形对象200的PNG图像的显示区域。命令fade_in(2秒)在时间[0]产生为时两秒的淡入处理。在接下来的命令组DispCmds(1)中,命令change_palette(index,newR,newG,newB,newAlpah)描述了颜色索引值[1]、[2]、[3]和[4]。命令组DispCmds(1)还使索引值[1]、[2]、[3]和[4]所指示的颜色和不透明度α在时间[800]改变。下一个命令组DispCmds(2)使一个显示的图形对象200在时间[2000]产生两秒的淡出。
如图52所示,当依次描述命令组DispCmds(0)、DispCmds(1)和DispCmds(2)时,可以实现例如随时间流逝而改变的字幕。换句话说,当正确地使用命令组DispCmds(0)、DispCmds(1)和DispCmds(2)时,字幕和按键图像显示成动画。
图53A、图53B、图53C和图53D示出了逐渐显示字幕的淡入的例子。在图53A到图53D中,控制淡入,以便逐渐地显示字幕。上述简单的淡入可以用图52所示的与命令组DispCmds(0)相似的命令完成。
图54A和图54B示出了作为字幕的PNG图像260在平面之间移动的例子。上述PNG图像260用多个命令set_display_box(x1,y1,x2,y2)实现。例如,在第一命令组DispCmds(0)中,命令execution_time(start_time)设置开始时间。命令set_clipping_box(a1,b1,a2,b2)设置PNG图像260的显示区域,如图54A所示。命令set_display_box(x1,y1,x2,y2)在平面上设置PNG图像的初始显示区域。
在下一个命令组DispCmds(1)中,命令execution_time(start_time)将一个时间设置为开始时间,该时间位于命令组DispCmds(1)的执行之后。命令set_display_box(x1′,y1′,x2′,y2′)对将要移到平面上的显示区域进行设置。类似地,在下一个命令组DispCmds(2),命令execution_time(start_time)将一个时间设置为开始时间,该时间命令组DispCmds(1)的执行之后。命令set_display_box(x1″,y1″,x2″,y2″)对将要移到平面上的显示区域进行设置。
因而,如图54B所示,作为字幕的PNG图像260可以移动到平面上正方形区域(x1,y1)(x2,y2),正方形区域(x1′,y1′)(x2′,y2′)和正方形区域(x1″,y1″)(x2″,y2″)。
图55A和图55B示出了移动并滚动作为字幕的PNG图像261的显示区域262的例子。这可以用多个命令set_clipping_box(a1,b1,a2,b2)实现。例如,在第一命令组DispCmds(0)中,命令execution_time(start_time)设置开始时间。命令set_clipping_box(a1,b1,a2,b2)设置起始显示在PNG图像260上的正方形区域262,如图55A所示。命令set_display_box(x1,y1,x2,y2)设置显示在一个平面上的PNG区域260的正方形区域。
在下一个命令组DispCmds(1)中,命令execution_time(start_time)将处于命令组DispCmds(1)执行之后的预定时间设置为开始时间。命令set_clipping_box(a1′,b1′,a2′,b2′)对PNG图像260中将要移动的显示区域进行设置。类似地,在下一个命令组DispCmds(2)中,命令execution_time(start_time)将处于命令组DispCmds(1)执行之后的预定时间设置为开始时间。命令set_clipping_box(a1″,b1″,a2″,b2″)对PNG图像260中将要移动的方形区域进行设置。
因而,如图55B所示,作为PNG图像261一部分的正方形区域从正方形区域(a1,b1)(a2,b2)移动到平面上的正方形区域(x1,y1)(x2,y2)的正方形区域(a1′,b1′)(a2′,b2′)和正方形区域a1″,b1″)(a2″,b2″)。从而,滚动字幕。
图56A和图56B示出了设置作为PNG图像265的一部分的帧的例子,该帧移动到PNG图像265中,而且该帧的显示位置移动到平面上。这可以由同时执行多个命令set_display_box(x1,y1,x2,y2)和set_clipping_box(a1,b1,a2,b2)而实现。例如,在第一命令组DispCmds(0)中,命令execution_time(start_time)设置开始时间。命令set_display_box(x1,y1,x2,y2)和命令set_clipping_box(a1,b1,a2,b2)设置帧266A(见图56A)。
例如,命令set_display_box(x1,y1,x2,y2)设置显示在一个平面上的正方形区域(x1,y1)(x2,y2)。命令set_clipping_box(a1,b1,a2,b2)设置显示在PNG图像265中的正方形区域(a1,b1)(a2,b2)。正方形区域(x1,y1)(x2,y2)和正方形区域(a1,b1)(a2,b2)构成帧266A。
在下一个命令组DispCmds(1)中,命令execution_time(start_time)将位于命令组DispCmds(0)之后的预定时间设置为开始时间。命令set_display_box(x1′,y1′,x2′,y2′)在平面上设置一个正方形区域(x1′,y1′)(x2′,y2′)。命令set_clipping_box(a1′,b1′,a2′,b2′)在PNG画面265上设置正方形区域(a1′,b1′)(a2′,b2′)。正方形区域(x1′,y1′)(x2′,y2′)和正方形区域(a1′,b1′)(a2′,b2′)组成一个帧266B,帧266A移动到帧266B。同样,在另一个命令组DispCmds(2)中,命令execution_time(start_time)将位于执行命令组DispCmds(1)之后的预定时间设置为开始时间。命令set_display_box(x1″,y1″,x2″,y2″)在平面上设置一个正方形区域(x1″,y1″)(x2″,y2″)。命令set_clipping_box(a1″,b1″,a2″,b2″)在PNG画面265上设置正方形区域(a1″,b1″)(a2″,b2″)。正方形区域(x1″,y1″)(x2″,y2″)和正方形区域(a1″,b1″)(a2″,b2″)构成帧266C,帧266B移动到帧266C。
因而,如图56B所示,当移动字幕的PNG图像265的一部分的正方形区域时,该正方形区域可以从帧266A移动到帧266B再移动到帧266C。
因而,根据本发明的第一模式,由于图形对象200的显示控制是由命令组DispCmds(i)执行,命令组DispCmds(i)中的每个显示控制命令是由命令execution_time(start_time)分组的,可以在字幕平面11和图形平面12上很容易地实现不同的显示。
2-13关于效果声音
根据本发明的第一模式,一个声音输出可以与图形对象200的显示控制同步。声音输出是由显示控制命令(7)和显示控制命令(8)确定的,显示控制命令(7)再现一个效果声音,显示控制命令(8)将效果声音指定给显示控制命令(2)到(8)中的图像数据,上述命令组DispCmds(i)的命令execution_time(start_time)除外。声音数据指定了唯一的识别sound_id。
效果声音是根据字幕或按键的显示控制,或与其同步地再现的声音,而不是与显示在影片平面上的影片或静止画面同步再现的声音(例如,在影片里,与影片成对地记录的声音)。
如相关技术部分所述,用户使用例如远程控制命令器(在下文中称作远程控制器)操作指定为上、下、左、右的键(方向键),以便选择显示在菜单屏幕上的一个按键。此后,用户通过ok键执行指定到选择的按键的操作。每个按键有三个状态:正常状态(非选择状态)、选择状态和执行状态。每个按键的上述三个状态指定了不同的图形对象。因而,按键图像(形状和颜色)可以为每个按键的三个状态而改变。用户可以很容易地分辨使用不同图像的按键的状态。
此外,每个按键的三个状态可以指定不同的效果声音。例如,当用户选择一个按键时生成的效果声音指定到“选择状态”的按键图像。此外,当按键处于执行状态时生成的例如点击等效果声音指定到“执行状态”的按键图像。
指定到按键“选择状态”的按键图像的效果声音关联到生成该效果声音的声音数据的标识符sound_id。当用户选择该按键时,关联到标识符sound_id的声音数据从播放器的存储器内读出,并且作为效果声音再现。类似地,指定到按键“执行状态”的按键图像的效果声音涉及生成该效果声音的声音数据的标识符sound_id。当用户选择按键并操作OK键时,按键变成执行状态。在这里,关联到“执行状态”的按键图像的声音效果的标识符sound_id的声音数据从播放器的存储器内读出,并且再现。
命令组DispCmds(i)的显示控制命令(7)再现一个效果声音,其在play_sound(sound_id)格式中描述。命令play_sound(sound_id)再现由标识符sound_id标识的声音数据。当命令play_sound(sound_id)描述在命令组DispCmds(i)中时,在由命令execution_time(start_time)所指定的时间start_time再现由标识符sound_id标识的声音数据。
例如,当命令play_sound(sound_id)和命令fade_in(fade_in_time)以及命令fade_out(fade_out_time)一起使用时,在再现字幕和/清除字幕的同时再现作为效果声音的声音数据。图57示出了使用命令play_sound(sound_id)的一个例子。在图57所示的例子中,第一命令组DispCmds(0)、命令fade_in(2秒)使一个图形对象在开始时间[0]淡入两秒。命令play_sound(1)再现标识符sound_id[1]所标识的声音数据。此后,在命令组DispCmds(1)中,命令execution_time(800)在时间[800]改变显示颜色。命令play_sound(2)再现标识符sound_id[2]所标识的声音数据。在命令组DispCmds(2)中,命令execution_time(2000)和命令fade_out(1秒)使图形对象在时间[2000]淡出1秒。命令play_sound(1)再现标识符sound_id所标识的声音数据。
以set_sound(PNG_image_id,sound_id)格式描述的命令(8),将一个效果声音指定到PNG数据。命令set_sound(PNG_image_id,sound_id)为由标识符PNG_image_id标识的PNG数据再现由标识符sound_id指定的声音数据。命令set_sound(PNG_image_id,sound_id)在当由标识符PNG_image_id标识的PNG数据显示时,再现由标识符PNG_image_id标识的声音数据。PNG数据的标识符PNG_image_id与图47所示的块PNGImageRegion()的PNG_image(i)的循环计数器i的值相同。
将命令set_sound(PNG_image_id,sound_id)用作选择状态和执行状态中按键的PNG数据。结果,当按键的正常状态改变到执行状态或反之,可以生成指定到PNG数据的作为效果声音的声音数据,该声音数据表示各个状态。除了这个例子,命令set_sound(PNG_image_id,sound_id)可以用在按键之外的其它PNG数据。
图58示出了图形对象200的数据结构的一个例子,图形对象200中声音数据被指定到按键图像。用于正常状态、选择状态和执行状态中的按键的PNG数据203A、203B和203C,描述在PNG数据区域203中。在图58所示的例子中,显示控制命令将坐标和声音数据指定到PNG数据。PNG数据的显示开始时间和按键的起始显示状态由外部脚本程序控制。因而,显示控制命令描述为执行时间[0]。
图58所示的图形对象200只描述了命令组DispCmds(0),其由命令execution_time(0)于[0]时间在显示控制命令表格202中执行。由于标识符PNG_image_id从[0]开始,标识符PNG_image_id[0]表示正常状态的PNG数据203A。标识符PNG_image_id[1]表示选择状态的PNG数据203B;标识符PNG_image_id[2]表示执行状态的PNG数据203C。
当选择状态的按键的PNG数据203B由命令set_sound(1,10)显示时,其标识符PNG_image_id是[1],由标识符sound_id[10]标识的声音数据作为效果声音再现。类似地,当执行状态的按键的PNG数据203C由命令set_sound(2,11)显示时,其标识符PNG_image_id是[2],由标识符sound_id[11]标识的声音数据作为效果声音再现。
虽然图39中未示出,一个或多个类型的声音数据可以在播放器的外部存储器等存储器中预存储。例如,预备声音数据可以在播放器出货前预存储在其外部非易失性存储器等存储器中。
可选地,作为效果声音的声音数据可以预记录在光盘上,其中已记录了图形对象200和作为影片数据的内容。当从光盘再现内容时,可以读出声音数据。作为在光盘上记录声音数据的一个方法,准备用于声音数据的一个文件。当从光盘再现内容时,预先读出文件并存储在播放器的存储器中。
可选地,就像图形对象200,创建包括声音数据的PES包。PES包分割成TS包。TS包与片断AV流多路复用。
可选地,声音数据可以位于图形对象200的图形对象标题201。可选地,图形对象200中包含的一个PNG图像对应的声音数据,可以包括紧接在PNG图像数据区域203(图42A到图42C中未示出)之前的一个区域。
在任何方法中,由于可以预先从光盘中读出声音数据,并且预存储在播放器的存储器中,当用PNG图像创建的一个按键的状态改变成选择状态或执行状态时,可以生成一个声音效果。声音数据指定了唯一的标识符sound_id,该声音数据可以唯一地被标识。
2-14关于用于存储声音数据到光盘上的方法
有三种方法用于向光盘存储声音数据。接下来,将描述这三种方法。
(1)图形对象200与声音数据多路复用。
(2)相应于标识符sound_id创建声音数据,声音数据不与片断AV流多路复用。
(3)为多个声音数据段创建数据文件,声音数据不与片断AV流多路复用。
2-14a第一存储方法
接下来,参照图59A、图59B和图59C,(1)将详细描述将声音数据和图形对象200多路复用的方法(在下文中称作第一存储方法)。图59A和图59B示出了将声音数据添加到图形对象200并且与片断AV流多路复用的例子。
图59A示出了安排在图形对象200的PNG数据区域203之后的声音数据区域204的一个例子。声音数据区域204包括多个声音数据204A、204B、...、204n。当声音数据204A、204B、...、204n分别对应于图形对象200的PNG数据203A、203B、...、203n时,可以容易地关联PNG图像和声音数据。
声音数据204A、204B、...、204n可以是没有压缩编码的数据,例如AIFF(音频交互文件格式)或WAVE文件,或者是已压缩编码的数据,例如MP3(影片专家组1音频层3)、AAC(改进的音频编码)或者ATRAC(自适应转换音响编码)文件。当包括已压缩编码的声音数据时,播放器端应当具有与该压缩编码系统一致的音频解码器。
图59B示出了对应于按键状态的声音数据包括在组成一个按键的图形对象200中。在这个例子中,声音数据204A-2和声音数据204B-2包含在声音数据区域203中,当按键位于选择状态时,再现声音数据204A-2,当按键位于执行状态时,再现声音数据204B-2。另一方面,PNG数据203A-2、203B-2和203C-2包含在PNG数据区域203中,上述数据是用于正常状态、选择状态和执行状态的按键。
在这种情况下,声音数据区域204在用于按键图像的PNG数据区域203之后。声音数据区域204包含声音数据204A-2和声音数据204B-2,当按键位于选择状态时,再现声音数据204A-2,当按键位于执行状态时,再现声音数据204B-2。因而,当显示按键图像的PNG数据时,再现相应于按键状态的声音数据。由播放器再现的效果声音主要用作按键点击声音。因而,在上述结构中,可以充分地实现本发明的主要目的。
图60示出了图形对象解码器模型240′的结构的例子,其中一个用于声音数据的处理系统添加到图44中所描述的图形对象解码器模型240。为了简单起见,在图60中与图44相同的部分用相同的数字标记,并省略它们的描述。
从端202输入作为MPEG TS的片断AV流,并且提供给PID滤波器110。片断AV流具有图形对象200,其包含声音数据。PID滤波器110从片断AV流中提取影片数据、声音数据和图形对象200。提取的图形对象200通过缓冲器TBn111B,提供给GOBJ剖析器224。该GOBJ剖析器224从图形对象200中读出图形对象标题201。GOBJ剖析器224根据图形对象标题201,从图形对象200中提取调色板数据,并根据图形对象标题201将图形对象200分割成显示控制命令表格202、PNG数据区域203和声音数据区域204。
调色板数据和显示控制命令表格202提供给命令处理器/图形分割器225。此外,声音数据区域204的声音数据204A、204B、...、204n提供给命令处理器/图形分割器225,并且存储在相应的缓冲器中(未示出)。
命令处理器/图形分割器225根据从GOBJ剖析器224提交的显示控制命令表格202中描述的显示控制命令,从缓冲器中读出声音数据,并输出声音数据。当包含在图形对象200中的声音数据204A、204B、...、204n已压缩编码时,命令处理器/图形分割器225对其解码,并且输出解码后的声音数据。
从命令处理器/图形分割器225中输出的声音数据提供给音频混合器231,并且输出到表示处理器141。当另一个声音数据已输入音频混合器231时,该声音数据与这些声音数据以预定的比率混合,并且输出。
图61所示的语法描述了图形对象200的结构的一个例子,其中图形对象200包含图59A和图59B所示的声音数据。在图47所示的结构中,块GraphicsObjectHeader()的域number_of_PNG_data之后是域number_of_sound_data。块SoundDataRegion()中存储的声音数据段的数量以8位的不小于0的整数表示。域start_address_of_sound_data(i)具有32位的数据长度,不小于0的整数,并且描述了i-th声音数据sound_data(i)从块GraphicsObject()以相应数量的字节开始的位置。块PNGImageRegion()之后是padding_word,之后是块SoundDataRegion()。作为数据sound_data(i)的真实声音数据包含在块SoundDataRegion()中。
2-14b.第二存储方法
接下来,方法(2)用于相应于标识符sound_id创建声音数据,声音数据不与片断AV流多路复用(在下文中该方法称为第二存储方法)。例如,如图62所示,一个包含声音数据的目录SOUND位于目录BDAV之下。目录SOUND包含作为声音数据的PCM波形数据。例如,具有AIFF格式的声音数据文件“soundl.aiff”位于目录SOUND之下。当光盘最初装入播放器时,读出目录SOUND下的所有声音数据文件,并存储在播放器的外部存储器中。
声音数据的每段指定了唯一的标识符sound_id。脚本等从存储器中用标识符sound_id访问需要的声音数据。
在这种情况下,如图59C所示,声音标识符区域205安排在图形对象200中。声音标识符数据205A和205B包含于声音标识符区域205中。在图59C表示的例子中,PNG数据203A203B、203C包含于PNG数据区域203,PNG数据205A、205B和205C分别对应于PNG数据区域203中的按键的正常状态、选择状态和执行状态。声音标识符数据205A、205B是分别对应于PNG数据203B和203C的标识符sound_id。当显示PNG数据203B时,再现对应于标识符sound_id的声音数据,标识符sound_id由存储在播放器的存储器中的声音标识符数据205A所表示。
例如,如图58所示,PNG数据和声音数据可以根据显示控制命令表格202相关联。
和图49A和图49B所示的显示控制命令不一样,由于声音数据是用标识符sound_id标识的,声音数据的效果声音可以在任何时间与显示的图形同步地生成。
在这个方法中,由于声音数据是使用标识符sound_id从存储器读出的,效果声音的类型的数量是用标识符sound_id限制的。此外,可以使用的效果声音的类型的数量由播放器的外部存储器的容量限制。
接下来,参照图63详细描述该方法。当装入光盘400时,播放器开始访问该光盘。从位于目录BDAV之下的目录SOUND读出声音数据。读出的声音数据(PCM数据)存储在播放器的外部存储器410中。在这里,为每段声音数据指定唯一的标识符sound_id。可选地,标识符sound_id可以添加到记录在光盘400的每段声音数据。
在这个例子中,从光盘400中读出16段的声音数据。标识符sound_id=1到16指定到声音数据的这些段。此外,得到声音数据的这些段的数据大小。在图63所示的例子中,假定图63所示的例子中指定到标识符sound_id=1到16的声音数据分别具有d1字节,d2字节,...,和d16字节的数据大小。
例如,在显示按键420A、420B和420C的菜单屏幕420上,当为按键420C执行一个操作时,从存储器410读出声音数据,其对应于指定到按键420C的标识符sound_id。在图63示出的例子中,对应于一个标识符sound_id=1的声音数据指定给按键420C。以预定的方式处理从存储器410读出的声音数据,并临时存储在缓冲器450B。此后,声音数据提供给音频混频器231。音频混频器231将声音数据与其它声音数据混合,所述其它声音数据联合有例如作为内容主要部分的影片数据,并且混合后的数据作为声音输出。
缓冲器450A临时地存储声音数据,该声音数据与例如作为内容主要部分的影片数据相联合。当调整从缓冲器450A和450B中读出存储的声音数据时,对应于按键420C的一个效果声音在存储在缓冲器450A中的声音数据的适当时间从缓冲器450B输出。在这个例子中,用标识符sound_id=0指定no_sound数据再现模式。
在上述模式中,可以从光盘400读出的声音数据的全部容量由存储器410的容量限制。此外,根据缓冲器450B的容量限制每段声音数据的容量。换句话说,当存储器410的容量由容量M(字节)表示,而且缓冲器B的容量由容量Dmax(字节)表示时,必须满足下面两个条件。
(1)存储在存储器410中的每段声音数据的容量d1应该比缓冲器450B的容量Dmax小。
(2)存储在存储器410中的声音数据的全部容量(d1+d2+...+dn)应该比存储器410的容量M小。
换句话说,当条件(1)和(2)规定了播放器端和光盘制造者端的规则时,可以保持例如效果声音等声音数据的再现兼容性。
如上所述,在声音数据没有与片断AV流多路复用的情况下(第二存储方法),当光盘最初装入播放器时,从中读出所有声音数据。然而,本发明并不限于这些例子。换句话说,可以分多次从光盘读出声音数据。例如,用作脚本部分之一的所有声音数据被读出并且存储在存储器中。在这里,抹去了存储器中脚本之前部分的声音数据。结果,即使脚本的声音数据的数据量超过了存储器的容量,也可以处理声音数据。
所有声音数据都可以记录在光盘上的一个预定区域中。可选地,声音数据可以分别地记录在光盘上的多个区域中。当声音数据分别地记录在光盘上的多个区域中时,用于脚本某一部分的声音数据可以记录在光盘上相应于该脚本部分的位置。可选地,可以通过网络从服务器下载声音数据。
在用于将声音数据与片断AV流多路复用的方法中(第一存储方法),如图59A和图59B所示,不限制声音数据类型的数量。结果,声音数据的不同类型可以指定到每个图像。当必要时,声音数据和片断AV流一起提交。因而,任何提交片断AV流的时间,都可以使用声音数据的不同类型。此外,在第一存储方法中,由于从片断AV流中与图像数据一起读出声音数据,因此可以简单地构建阅读模型。此外,除了光盘的容量之外,不用限制声音数据文件的数量和文件的大小。
然而,在第一方法中,当不同的图形对象使用相同的声音数据时,由于它们中每个的图形对象具有相同的声音数据,声音数据成为冗余的。此外,由于应当从图形对象中提取声音数据,在片断AV流信号分离后,声音数据应当从图形对象中分离。
2-14c第三存储模式
接下来,将描述用于创建多段声音数据的一个数据文件的方法(3),声音数据不与片断AV流多路复用(以下称为第三方法)。多段声音数据包含在例如文件“HdmvSound.bdmv”中。如图64所示,文件“HdmvSound.bdmv”位于文件的管理结构的目录BDAV下面,上述文件记录在图9所示的“蓝光光盘可擦写格式版本1.0第三部分”所确定的记录介质中。当光盘装入播放器时,初始访问并阅读文件“HdmvSound.bdmv”。在读出作为主要部分记录在光盘上的片断AV流(例如,一个影片)之前,文件“HdmvSound.bdmv”预装入播放器的存储器。
在图64中,位于目录STREAM之下的是作为光盘的主要内容的片断AV流。
图65所示的语法描述了文件“HdmvSound.bdmv”的一个例子。一个域length有32位的数据长度。该域length描述了在该域length之后到文件“HdmvSound.bdmv”的结束的字节长度。域data_block_start_address具有32位的数据长度。域data_block_start_address描述了文件“HdmvSound.bdmv”中用于声音数据的块data_block的开始字节的开始地址。域number_of_sound_entries具有8位的字节长度。域number_of_sound_entries描述了包含在文件“HdmvSound.bdmv”中的声音数据段(也就是效果声音数据)的数量。
自变量for循环自动指定了一个标识符sound_id,其指示一段声音数据。for循环描述了声音数据的信息,该声音数据指示到相应于该自变量的标识符sound_id。
块attributes()描述了声音数据的属性。域channel_assignment描述了声音数据的通道指定。域channel_assignment描述了一个属性,例如非立体声或双道立体声。域sampling_frequency描述了声音数据的采样频率,例如48kHz。域bits_per_sample描述了声音数据的量化器位数,例如16位。
域sound_data_start_address具有32位的数据长度。域sound_data_start_address描述了for循环中声音数据的开始字节的块data_block的开始地址,该声音数据涉及域sound_id。域sound_data_length具有32位的数据长度。域sound_data_length描述了声音数据的字节长度。在for循环后,通过插入字处置块data_block。块data_block是声音数据实际上位于其中的一个区域。
图66示出了根据上述语法的文件“HdmvSound.bdmv”的结构。从该文件的开始到域number_of_sound_entries的一个区域称为标题部分600。该标题部分600之后是for循环部分601,之后是声音数据部分602。
位于声音数据部分602的声音数据由标识符sound_id=1到标识符sound_id=n指示。例如,特定声音数据的结束和下一个声音数据的开始在字节边界相联接。类似地,标识符sound_id=1到标识符sound_id=n所指示的声音数据是连续地排列的。在声音数据部分602中,用for循环部分601中的域sound_data_start_address指定开始地址,上述for循环部分601的自变量对应于标识符sound_id。一个区域来自由for循环的域sound_data_length所指定的指定地址,该区域称为对应于循环的自变量的标识符sound_id的声音数据。
图67示出了根据第三存储方法的效果声音的再现的应用图像的例子。为了简单起见,在图67中,与图63相似的部分用相同的图标记标识,并省略了它们的描述。当光盘装入播放器时,最初访问光盘400,并且从光盘400中读出(预载)位于目录BDAV之下的文件“HdmvSound.bdmv”。读出的文件“HdmvSound.bdmv”存储在播放器的外部存储器410中。
如图66所示,根据地址信息和数据长度信息,指定文件“HdmvSound.bdmv”的循环部分601中每个数据段。每个数据段是用相应的标识符sound_id标识。在图67所示的例子中,文件“HdmvSound.bdmv”包含m段声音数据。标识符sound_id=1,2,...,和m指定到m段声音数据。每段声音数据的容量是使用对应于标识符sound_id的数据长度信息和量化器位的数量bit_per_sample而得到的。
在这个例子中,假定声音数据已根据PCM系统解码。然而,本发明不限于上述例子。声音数据可以已根据例如MPEG1音频层3(mp3)系统、AAC(改进的音频编码)系统或者ATRAC(自适应转换音响编码)系统而压缩解码,并且存储在声音数据部分602。在这种情况中,每段声音数据位于声音数据部分602的方式是,每段声音数据的结束部分连接到下一段声音数据的开始部分。
例如,假定菜单屏幕420显示按键420A、420B、420C。在菜单屏幕420上,按键420C由按键图像状态设置430组成,该状态具有按键图像420C-1、420C-2和420C-3,它们分别表示正常状态、选择状态和执行状态。当按键图像根据上述三个状态改变时,用户可以容易地分辨这些状态。在图67所示的例子中,标识符sound_id=2的声音数据指定到选择状态的按键图像420C-2。标识符sound_id=2的声音数据指定到执行状态的按键图像420C-3。当标识符sound_id的值是“0”时,不输出声音数据。
当用户用远程控制器操作按键420C以改变选择状态到执行状态时,按键的图像从按键图像420C-2改变到按键图像420C-3。此外,从外部存储器410读出指定到按键图像420C-3的标识符sound_id=1,并且再现。
换句话说,显示了按键图像420C-3。此外,根据用于标识符sound_id=1的地址信息和数据长度信息,访问存储器410,标识符sound_id=1与按键图像420C-3相关联,并且从存储器410中读出标识符sound_id=1的声音数据。从存储器410中读出的声音数据临时存储在缓冲器450B,并且提供给音频混频器231。音频混频器231将从存储器410中读出的声音数据与另一个声音数据混合,并且输出混合后的数据,上述另一个声音数据是从缓冲器450A输出的内容主要部分的影片数据。
类似于图63中所示的第二存储方法,第三存储方法中,根据存储器410的容量和缓冲器450B的容量,限制从光盘400读出的声音数据的全部容量以及每段声音数据的容量。
接下来,将描述根据本发明第三存储方法的图形对象的结构。在第三存储方法中,按键图像使用图形平面12组成了图形用户界面(GUI),将按键图像作为一个流解码。此后,按键图像与之组合的流称为交互图形流。
例如,图67所示的菜单屏幕420,按键420A、420B和420C的按键图像组合为交互图形流700(见图68)并解码。当例如按键420C的一个按键是由按键图像设置430组成时,该按键图像设置430具有多个按键图像数据420C-1、420C-2和420C-3,它们与按键420A和420B的按键图像数据一起,作为交互图形流700而解码。该交互图形流700与传送流多路复用,并且记录在光盘上。
图68A和图68B示出了交互图形700的例子。如图68A所示,该交互图形流700具有一个交互成分程序段701和一个或更多按键图像数据段702,702,...等。这些按键图像数据702,702,...等指定不同的标识符object_id。上述按键图像数据702的这些段称为标识符object_id。按键图像数据702,702,...等的上述段是由根据例如长度解码方法,对例如位映象图像数据解码而得到的。
如图68B所示,交互图形流700位于指定给相同PID的多个传送包的有效载荷中。传送包作为传送流而多路复用。
图69示出了交互成分程序段701的结构的一个例子。交互成分程序段701是由程序段描述属性、显示时间属性、按键设计和一个命令组成的。程序段描述属性和显示时间属性描述了按键的显示属性和在交互位置程序段701中确定的显示时间的属性信息。
按键设计和命令描述了一个或更多按键信息703,703,...等,其组成了像GUI这样的菜单屏幕。在按键信息703中,域button_number描述了标识符button_number,该标识符标识了每个按键。每个按键都被标识,并且涉及标识符button_number。域selected_state_sound_id描述了标识符button_number,该标识符涉及和“选择状态”的按键图像相关的声音数据。域activated_state_sound_id描述了标识符sound_id,该标识符涉及与“执行状态”的按键图像相关的声音数据。如图70所示,域neibour_info描述了屏幕上与这个按键临近的按键号码Upper_button_number、Lower_button_number、Left_button_number和Right_button_number。
域Normal_state_obiect_id描述了当按键在“正常状态(非选择状态)”时涉及的按键图像的标识符obiect_id。域selected_state_sound_id描述了当按键在“选择状态”时,涉及的按键图像的标识符object_id。域activated_state_sound_id描述了当按键在“执行状态”时,涉及的按键图像的标识符obiect_id。域命令描述了指定到一个执行状态的按键的操作信息。
2-15另一个平面的例子
在上述例子中,如图20、图21、图22所示,对于图形平面12,可以选择YCbCr(4:4:4)或RGB(4:4:4)作为颜色系统。然而,本发明不限于这些例子。换句话说,如图71所示,可以主要地为按键的位映象数据确定图形平面12′。如图72所示,类似字幕平面11,图形平面12′可以由1920像素×1080行组成,每个像素的采样深度是8位,颜色系统使用256色和8位颜色位映象地址的调色板。
在这种情况下,影片平面10、字幕平面11和图形平面12′是由图73中所示的结构组成的。为了简单起见,在图73中,与图22中相似的部分用相同的图标记表示,并且省略它们的描述。
图形平面12′的图像数据输入到调色板26A,并且作为RGB(4:4:4)的颜色数据输出。当为图像数据指定了α混合的不透明度时,指定的不透明度α2(0≤α2≤1)从调色板表格26A输出。调色板表格26A的输入数据和输出数据以及存储在调色板表格26A中的调色板数据,与图23和图24中所示的都相同。因此,将省略对它们的描述。
从调色板表格26A输出的RGB数据提供给RGB/YCbCr转换电路26B,并且转换成YCbCr数据,作为影片数据的统一数据。YCbCr数据从RGB/YCbCr转换电路26B中输出,并输入到乘法装置27。
当用在图形平面12′中的图像数据是根据PNG格式的数据时,可以为图像数据的每个像素设置不透明度数据α2(0≤α2≤1)。不透明度数据α2提供给乘法装置27。该乘法装置27将YCbCr数据的亮度信号Y色差数据Cb和Cr与不透明度数据α2相乘,该YCbCr数据是从RGB/YCbCr转换电路26B中输出的。乘法装置27的相乘结果输入到加法装置28的一个输入端。不透明度数据α2的补数,也就是(1-α2)提供给乘法装置25。
2-16关于解码器模型的另一个例子
图74示出了播放器解码器100′的结构的例子,其中用于图形对象200和图形平面12′的颜色系统的一个声音数据处理提供给图39所示的播放器解码器100,上述图形平面12′具有256色调色板,使用8位颜色位映象地址。为了简单起见,在图74中,与图39相似的部分用相同的图标记标识,并且省略对它们的描述。
没有与片断AV流多路复用的声音数据作为例如输入通道(1)的数据输入到输入端101。其后,声音数据通过开关电路102和103提供给内容缓冲器105。另一方面,片断AV流输入到输入端202,上述片断AV流的声音数据已与一个图形对象200多路复用。PID滤波器110从该片断AV流中分离图形对象200,并且将图形对象200临时存储在缓冲器TBn111A中。其后,图形对象200通过开关电路103提供给内容缓冲器105。
不包含声音数据的图形对象200与片断AV流多路复用,并且提供给输入端202。PID滤波器110从片断AV流中分离组成图形对象200的传送包。该传送包临时地存储在缓冲器TBn111B,或缓冲器TBn111C。存储在缓冲器TBn111B中的传送包提供给缓冲器TBn112B。根据PID标题收集图形对象图形对象200。该图形对象200通过开关电路107提供给图形解码器A500。从存储在缓冲器Bn111C的传送包,通过缓冲器Bn112C收集图形对象200。通过开关电路108将图形对象200提供给图形解码器B501。
图形解码器A500和B501从提交的传送包消除标题信息、位于传送包中的解码信息数据和用于字幕或图形的位映象数据的图像数据。
另一方面,从内容缓冲器105读出位于图形对象200中的图像数据,该图形对象200包含声音数据。图像数据分别通过开关电路107和108,提供给图形解码器A500和B501。
在图74所示的例子中,图形解码器A500对PNG格式图像数据进行解码。相反,图形解码器B501对JPEG格式图像数据进行解码。图形解码器A500和B501可以解码其它格式图像数据。可选地,图形解码器A500和B501可以解码不同格式的图像数据。
图像解码器A500的一个输出提供给开关电路130的一个输入端130B和开关电路131的一个输入端131B,随后通过开关电路130和130,分别提供给子画面平面502和图形平面503。
多介质引擎106具有声音播放器106D,其结构如图39所示。缓冲器109具有声音缓冲器109E,其结构如图39所示。声音播放器106D解码通过声音缓冲器109E,从内容缓冲器105中读出的声音数据,得到解码后的声音数据,作为例如线性PCM音频数据,并将其输出。从声音播放器106D中输出的声音数据提供给表示处理器141。表示处理器141将从声音播放器106D提交的声音数据与另一个声音数据相混合,并且输出混合后的声音数据到输出端142。上述另一个声音数据是和从音频解码器118提交的数据一起从声音播放器106D提交的。
声音数据作为效果声音,例如当点击按键图像时的点击声音,由声音播放器106D再现上述声音数据。该声音数据存储在声音缓冲器109E中,由声音播放器106D再现。声音播放器106D执行一个再现程序,作为例如用于声音数据的软件。
多介质引擎106读出存储在例如编码缓冲器104中的ECMA脚本,分析ECMA脚本,从编码缓冲器104中读出另一个ECMA脚本和HTML文档,并且从内容缓冲器105中读出图像数据和音频数据。声音数据可以和其它数据一样存储在内容缓冲器105中。
此外,多介质引擎106接收来自远程控制器、点击装置等的用户命令,并且处理该命令。多介质引擎106根据用户命令的处理结果和每个脚本,生成控制信号。该控制信号提供给图形解码器A500和B501、音频解码器118、MPEG视频解码器120和系统解码器121。
由图形分割器106C处理的图像数据通过开关电路130和131,分别提供给子画面平面502,和图形平面503。子画面平面502和图形平面503是由例如帧存储器组成的。子画面平面502和图形平面503分别对应于图71所示的字幕平面11和图形平面12′。
在这个例子中,假定从图形分割器106C提供给子画面平面502和图形平面503的图像数据是位映象数据,其中图像数据是例如PNG格式或FPEG格式那样,由图形分割器106C解码。
此外,多介质引擎106将一个控制信号提供给表示处理器139,该控制信号导致子画面平面502、图形平面503和影片平面135转换到另一个平面。多介质引擎106将一个控制信号提供给表示处理器141,该控制信号控制音频流的输出。
子画面平面502上的图像数据是相应于图73所示的调色板22提供给一个调色板504。256色调色板由一个索引指示。结果,输出RGB数据和不透明度数据α1。RGB数据提供给转换电路506,它对应于图73所示的RGB/YCbCr转换电路29。结果,图像数据的颜色系统从RGB(4:4:4)转换到YCbCr(4:4:4)。从RGB/YCbCr转换电路506输出的YCbCr数据提供给表示处理器139。
图形平面503上的图像数据提供给相应于图73所示的调色板表格26A的调色板505。256色调色板由一个索引指示。结果,输出RGB数据和不透明度数据α2。RGB数据提供给转换电路507,它对应于图73所示的RGB/YCbCr转换电路26B。结果,图像数据的颜色系统从RGB(4:4:4)转换到YCbCr(4:4:4)。从RGB/YCbCr转换电路507输出的YCbCr数据提供给表示处理器139。
此外,影片平面135上的影片数据通过上/下转换器138提供给表示处理器139。
如上所示,表示处理器139执行一个α混合处理,该处理使用字幕平面11(子画面平面502)上的图像数据的不透明度α1和字幕平面12′(图形平面503)上的图像数据的不透明度α2。该处理混合影片平面10上的图像数据、字幕平面11上的图像数据和图形平面12′上的图像数据。表示处理器139可以为图像数据在实时中执行一个效果处理。将混合了平面的图像数据,提供给输出端140。平面中已执行了效果处理。
2-17.另一个解码器模型的例子
图75示出了根据用于声音数据的第三存储方法的播放器解码器100″的结构的例子。为了简单起见,在图75中与图39和图74相似的部分用相同的图标记来标识,并且省略对它们的描述。如上所述,在用于声音数据的第三存储方法中,多段声音数据和相应于按键状态的效果声音包含在一个文件“HdmvSound.bdmv”中,该文件处于目录BDAV之下。当最初访问光盘时,读出文件“HdmvSound.bdmv”并存储在播放器的存储器中。
作为播放器的内部存储器,可以使用缓冲器109的声音缓冲器109E。例如,当最初访问光盘时,读出的声音数据从端101输入。该声音数据通过开关电路102和内容缓冲器105,提供给声音缓冲器109E。当执行存储在编码缓冲器104中的程序码时,从声音缓冲器109E中读出必要的声音数据,该数据从端710输入。
作为MPEG ES从端202输入的实时流提供给PID滤波器110。当传送包的PID表示其包含了交互图形流700时,该传送流临时存储在缓冲器111A中。在合适的时间读出该传送流,并输入到选择了输入端103B的开关电路103,并且通过开关电路103存储在内容缓冲器105中。
交互图形流700的交互成分程序段701是从内容缓冲器105中读出,并提供给多介质引擎106。此外,按键图像数据702,702,...是从内容缓冲器501中读出,并且通过开关电路108提供给图形解码器B501。
从端710输入的声音数据临时地存储在缓冲器711中。混频器712混合将端710提交的声音数据和另一个声音数据混合,并将混合后的声音数据提供给表示处理器141,上述另一个声音数据是在预定的混频比率从音频解码器118提交上来的。在相应于用户输入,在声音播放器106D的控制下,混频器712的混频比率可以在播放器解码器100″端设置。
在图75中,为了方便起见,缓冲器711与混频器712是分离的。然而,实际上,缓冲器711和混频器712构建在表示处理器141中。因而,考虑与图67所示的结构的联系,缓冲器711相应于缓冲器450B,混频器712相应于音频混频器231。图67所示的缓冲器450A构建在表示处理器141中。
当声音数据已压缩编码并且记录在光盘上时,从光盘上读出的声音数据解码为线性PCM音频数据,并且存储在缓冲器711中。例如,声音播放器106D对光盘读出的压缩编码声音数据进行解码,并且存储解码后的声音数据到声音缓冲器109E。声音数据可以由音频解码器118解码。可选地,声音数据也可由软件解码。
在上述例子中,图75所示的解码器中,在例如记录在光盘上的影片的内容再现之前,从光盘预装入作为效果声音的声音数据,并且存储在播放器解码器的内部存储器中。当使用图67所示的目录和文件结构时,只有作为效果声音的、用于声音数据的文件“HdmvSound.bdmv”可以存在于目录BDMV中。当播放器最初访问光盘时,播放器预装入用于效果声音的声音数据文件到播放器的内部存储器。
除了这个例子,如图76所示,可以认为播放列表是由用于再现效果声音的数据实现的。在这种情况中,通过例如图15所示的子播放项目,可以访问要再现的声音数据,该数据是作为指定给按键的效果声音。例如,在子播放项目中描述用于声音数据的一个文件名(文件“HdmvSound.bdmv”)。
可选地,作为用于为文件添加参考信息的方法,可以使用图14所示的块UIAppInfoPlayList(),上述文件包含作为效果声音的声音数据。在这种情况中,用于文件名“HdmvSound.bdmv”的一个域可以添加到块UIAppInfoPlayList()的语法中。
在再现一个播放列表之前,播放器将一个作为效果声音的声音数据预先装入到外部存储器,该声音数据由一个文件的参考信息指示(例如,子播放项目),该文件包括作为效果声音的声音数据。
图77示出了相应于另一个解码器模式的文件的管理结构的例子。在图77所示的例子中,在目录STEAM下,有作为效果声音的用于声音数据的文件“HdmvSound01.bdmv”、“HdmvSound02.bdmv”等。上述文件“HdmvSound01.bdmv”、“HdmvSound02.bdmv”等与图65、图66中的文件“HdmvSound.bdmv”相比,相同的结构,只不过声音数据置于数据部分602之中。因而,用于作为效果声音的声音数据的多个文件可以记录在光盘上。用一个作为效果声音(例如,子播放项目或作为播放列表属性信息的块UIAppInfoPlayList())的声音数据文件的参考信息,可以指示用于声音数据的文件,。在这个例子中,作为效果声音的声音数据的类型可以为每个播放列表而改变。
3.本发明的第二模式
接下来,将描述本发明的第二模式。根据本发明的第一模式,使用ECMA脚本和HTML文档描述一个再现程序,其用于再现光盘上数据。相反,根据第二模式,用原始数据结构和描述语言而不是ECMA脚本和HTML文档来描述一个再现程序。在本发明第二模式中使用的脚本描述语言在用于DVD视频的调整导航命令的基础上,确定一个最初显示控制命令的命令组。因而,根据本发明的第二模式,可以为蓝光光盘显示比第一模式更加适合并且灵活的菜单屏幕。
3-1.关于脚本
根据本发明的第二模式,由于使用了最初确定脚本描述语言,不必要确定与第一模式中使用的ECMA脚本不同的事件句柄。例如,由于最初确定的脚本描述语言可以要执行脚本所必需的预先确定事件,不需在程序中确定脚本的事件。
由于使用了最初确定脚本描述语言,图26所示的脚本的外部结构不需要整体事件句柄定义71和局部事件句柄定义72。图78示出了根据本发明第二模式描述的脚本70′。播放列表73A描述为脚本70′的开始的进入播放列表,其在光盘装入播放器后最先执行。当屏幕上发出了预定命令时,再现播放列表73B。再现播放列表73B后,再现播放列表73C。在图78所示的例子中,当再现播放列表73C时,读出图形数据74A,并且显示菜单屏幕80A,其提示用户选择故事的一个分支。
其后,如第一模式的图26所示,再现脚本70′。当在播放列表中设置一个标志时,播放列表的一个分支或组合处可以在该标志处实现。
每个播放列表具有一系列命令(一个程序),用于一些操作,当检测到一个标志、用户的输入或者播放器的再现改变时,执行上述操作。播放器执行要实现上述操作的程序。
即使正在再现脚本70′的播放列表73A到73M中的任一个,当按下远程控制命令器的菜单按键时,显示用于脚本的列表的菜单屏幕60(见图25)。接下来,将描述为菜单屏幕60再现一个播放列表的处理。在这种情况下,当远程控制命令器的菜单按键被按下时,执行一个事件(菜单按键“on”事件),一个命令作为与该事件相应的事件句柄,上述命令将用于要显示的菜单屏幕60的播放列表描述为一个脚本。
3-2.脚本目录
在目录BDVM中确定一个脚本。一个脚本由一个或多个播放列表组成。将参照图79、图80A、图80B和图80C描述脚本的目录。基于播放列表的连接,脚本的结构可以大致分为三类:(1)单个播放列表,(2)连续的播放列表,(3)如图79所示的多个播放列表。
分类为(1)的单个播放列表是图80A所示的一个播放列表组成的脚本。对于单个播放列表,可以确定一个时间线。在脚本的再现过程中没有中断。当单个播放列表的内容是影片时,在装入光盘后,只再现影片的主要部分。
分类为(2)的连续列表是由多个播放列表组成的脚本,上述多个播放列表如图80B所示,线性地排列,没有分支。上述播放列表的排列方式是一个播放列表的结尾连接到下一个播放列表的开始。在连续播放列表中,可以为每个播放列表确定一个时间线。当连续播放列表的内容是影片时,脚本是由菜单屏幕和影片的主要部分组成。在装入光盘后,执行一个播放列表,其显示一个菜单屏幕。当在菜单屏幕上指定影片的主要部分的再现时,执行下一个播放列表,并且再现影片的主要内容。
分类为(3)的多个播放列表是一个具有连接处的脚本,该连接处是播放列表的分支或组合。在多个播放列表中,不能通过所有播放列表确定一个时间线,而是在每个播放列表中确定一个时间线。有了多个播放列表,可以实现根据用户的输入改变再现内容的交互功能和游戏功能。当多个播放列表的内容是影片时,可以实现多角度功能,其允许用户在为同一个场景拍摄的不同角度中选择想要的角度。
如下将描述,为目录BDMV确定一个脚本。然而,有必要允许用户在更小的单元中识别脚本。然而,播放列表的单元并不总是与用户可以识别的单元一致。当播放列表描述三个影片时,有必要允许看到每个影片的搜索点。搜索点(进入点)是与播放列表的结构独立的,这将在后面作为标题和/或章节描述。
接下来,参照图81,描述标题和章节。标题表示脚本中的任何再现开始点。在图81所示的例子中,标题1位于播放列表470A的开始。标题2位于播放列表470D的中间。播放列表470A的开始之后到标题2的区域是标题1。章节是标题再次划分的单元。还可以认为章节是再现开始点。标题1再划分成章节。在图81所示的例子中,标题1有章节1、2和3。因而,标题1划分成了三部分。如图81所示,每个标题和章节可以位于播放列表的中部。
3-3.关于虚拟播放器模型
根据本发明第二模式,脚本描述语言所描述的脚本可以由图27所示的根据本发明第一模式的BD虚拟播放器模型再现。在光盘装入BD虚拟播放器30之后,它将脚本当作PBC程序40,并且根据脚本的描述操作,该脚本是由根据本发明第二模式的最初确定的脚本描述语言所描述的。根据一个事件控制BD虚拟播放器30,该事件当操作BD虚拟操作器30时发生。
脚本具有用于命令的两个区域,包括具有命令的一个程序,其操作播放器。上述两个区域称为整体命令区域和局部命令区域。
整体命令区域具有整体命令,该命令是对整个脚本有效的。例如,整体程序描述了一个程序,其当光盘装入播放器时使得播放器初始化参数,并且跳跃到组成菜单屏幕的一个播放列表。局部命令区域描述了播放列表的程序。在本发明的第二模式中,局部命令分成四类,它们是前置命令、项目再现命令、后置命令、按键命令(pre_commands、play item commands、postcommands和button commands)。
图82A和图82B示出了BD虚拟播放器30的操作,该操作相应于根据本发明第二模式描述为脚本的命令。图82A示出了BD虚拟播放器30的光盘装入操作的一个例子。如上所述,为目录BDMV创建一个脚本。当光盘装入播放器并且为光盘执行初始的访问时(在步骤S30),初始化寄存器,也就是公用参数32(在步骤S31)。在下一个步骤S32,从光盘中读出程序并执行。首次访问表示当光盘装入播放器时,首次再现光盘的操作,例如访问初始化。
当光盘装入播放器时初始化读出并执行的命令组(程序)称为整体命令。该整体命令描述例如广告画面(预告片)和一个跳跃命令,其跳跃到组成菜单屏幕的一个播放列表。播放器根据上述命令再现播放列表。
图82B示出了当播放器是停止状态而用户按下例如再现键时,播放器30的操作。该操作相应于图28中从状态B到状态A的状态改变。在停止状态中(步骤S40中),用户使用例如远程控制器(UOP:用户操作),使播放器30在再现模式中操作。结果,寄存器(也就是公用参数32)被初始化(在步骤S41)。在下一个步骤A42,BD虚拟播放器30进入播放列表再现阶段。
接下来,参照图83A和图83B,描述在播放列表阶段中的播放列表的再现。图83A示出了播放列表由单个播放项目组成的例子。播放列表具有前置命令区域,播放项目命令区域和后置命令区域,上述区域描述了各自的命令。在播放列表再现阶段,执行前置命令区域的前置命令(在步骤S10)。在执行了前置命令之后,播放器进入了播放项目的播放项目再现阶段,上述播放项目组成了播放列表(在步骤S11)。在播放项目再现阶段,再现一个流(在步骤S110),上述流的开始点和结束点是由一个播放项目指定的。当上述再现到结束点时,执行播放项目命令(在步骤S111)。在执行了播放项目命令之后,执行后置命令区域的后置命令(在步骤S12)。结果,完成了播放列表的再现。
后置命令通常是跳跃命令,其描述为一个播放列表要再现的跳跃命令,包括菜单屏幕的播放列表。当没有跳跃命令时,播放器进入停止状态(图28所示的状态B)。
图83B示出了播放列表描述多个播放项目的例子。在这种情况下,播放列表具有一个前置命令区域、播放列表命令区域和后置命令区域,其描述了各个命令。当播放列表描述了多个播放项目时,播放项目命令区域描述了播放项目流和排列在时间序列中的播放项目的播放项目命令。
当播放列表描述了多个播放项目时,在播放列表再现阶段中,执行前置命令(在步骤S10)。在下一个播放项目再现阶段中,从每个播放项目的开始点和结束点再现一个流,并且为每个播放项目执行一个播放项目命令。在图83B所示的例子中,再现第一播放项目流(在步骤S110-1)。此后,执行相应的播放项目命令(在步骤S111-1)。此后,再现第二播放项目流(未示出)(在步骤S110-2)。执行相应的播放项目命令(在步骤S111-2)。重复这些操作,重复的次数等于播放项目的数量。在再现了最后的播放项目流(在步骤S110-n)并且执行了相应的播放项目命令(在步骤S111-n)之后,结束播放项目再现阶段(在步骤S12)。结果,结束了播放列表再现阶段。
根据本发明的第二模式,可以分级地考虑脚本、播放列表和播放项目,上述脚本、播放列表和播放项目在BD虚拟播放器30上执行。换句话说,如图84A所示,一个脚本版面601位于BD虚拟播放器600之上。具有一个或多个播放列表的播放列表版面602位于脚本版面601之上。播放项目(PI)版面603位于播放列表版面602之上。每个播放列表具有一个或多个播放项目。
在分级结构中,通过脚本版面601由BD虚拟播放器执行播放列表和播放项目。因而,当在脚本中描述用于播放列表的控制命令时,可以容易地实现播放列表的分支等。这同样适用于图84B所示的播放项目。
3-4.关于语法
接下来,将描述一个根据本发明第二模式的用于存储命令和数据库到光盘的方法,上述数据库描述了一个脚本。在本发明第二模式中,假定在脚本文件“scenario.pbc”中描述数据,该数据是实现BDAV格式的扩展功能所必需的。脚本文件“scenario.pbc”位于文件的管理结构中目录BDAV之下,上述文件记录在图9所示“蓝光光盘可擦写格式版本1.0第三部分”中确定的记录介质上。
图86所示的语法描述了脚本文件(scenario.pbc)的结构的例子。文件“scenario.pbc”接连地包含文件标识符符号、版本号、和块开始地址。文件“scenario.pbc”还包括对应于功能的块。文件type_indicator具有32位的数据长度,并且描述了预定的字符串,该字符串表示该文件包含一个脚本。域version_number具有32位的数据长度,并且描述了版本号。域TitleEntry_start_address具有无符号整数的32位的数据长度,并且描述了一个值,该值表示从文件“scenario.pbc”的开始以相关的字节数在块TitleEntry()的开始的位置。类似地,域scenario_start_address具有无符号整数的32位的数据长度,并描述了以一个值在块scenario()的开始的位置,该值表示从文件“scenario.pbc”的开始的相关字节数。
块GlobalCommand()从一个固定位置开始,从该文件的第41字节开始。块GlobalCommand()描述了一个程序,当播放器初始访问光盘时(也就是,当光盘装入播放器后,播放器最初从光盘再现数据时),执行该程序。整体命令位于块GlobalCommand()中。块GlobalCommand()之后是任意数量的padding_word,以便块之间彼此分离。
块TitleEntry()描述了脚本中搜索点的列表。为目录BDAV创建一个脚本。脚本确定了位于目录BDAV下的多个播放列表的再现顺序。用户看到的脚本,看上去好象是由多个“标题”组成的,而不是由一个图像/声音单元组成。
当一张光盘包含三个影片时,即使光盘只具有一个确定了影片再现顺序的脚本,用户看到的光盘也将是好象包含三个标题的。可选地,用户看到的光盘好象是分割成四个标题,包括标题菜单屏幕,用户可以使用标题菜单屏幕选择三个标题中的一个。由于用户可以把菜单屏幕看作一个图像/声音单元,根据本发明的第二模式,菜单屏幕可以看作一种标题。
因此,由于确定播放列表的连接的脚本单元与用户看作图像/声音块的单元不同,需要在脚本中确定搜索点。脚本中的搜索点可以看作标题入口。
块Scenario()描述了一个“脚本”。块Scenario()描述了有关播放列表的再现顺序、每个播放列表的局部命令区域等信息。
图87所示的语法描述了块GlbalCommand()的结构的例子。域length具有32位的数据长度、一个无符号整数,并且描述了从域length的结束到块GlobalCommand()的结束的字节长度。域number_of_commands描述了后面的域command的号码。域command具有32位的数据长度,并且描述了用于播放器的一组参数、用于指定播放列表的再现开始命令、计算命令等。
图88所示的语法描述了块TitleEntry()的数据结构的例子。域length具有32位的数据长度、无符号整数,并且描述了从域length的结束到块TitleEntry()的结束的字节长度。域number_of_Titles描述了该域之后for循环描述的标题的搜索点的数量。域Entry_Playlist_file_name描述了包含标题的一个搜索点的播放列表的文件名。域Title_name_character_set描述了表示下一个域Title_name的字符设置。域Title_name描述了指定到搜索点的名字的字符串。
域number_of_Chapters描述了之后在for循环中描述的章节的数量。如上所述,章节是标题的部分。用户可以把章节看作标题。章节用作脚本的搜索点。域Title_number具有16位的数据长度、无符号整数,并且描述了标题号码,其中章节对应于for循环的当前循环计数器值(在下文中,章节称为该章节)。域chapter_entry_Playlist_file_name描述了该章节表示的播放列表的播放列表文件的文件名。域chapter_ref_to_PlayItem_id描述了该章节表示的播放列表项目号。域chapter_time_stamp描述了该章节表示的播放项目的时间。
块Title_Menu_Call_PL()描述了当用户使播放器再现光盘的标题时,组成所显示的菜单的播放列表。用户通过按下远程命令器上的例如标题菜单键指定一个标题,该远程命令器远程地操作播放器。每个脚本具有一个标题菜单,用户可以使用该标题菜单看到标题的搜索点。当用户使用例如远程命令器,选择标题菜单上他或她想要的标题时,播放器从标题入口列表得到一个播放列表,该标题入口列表对应于从域number_of_Title之后的for循环中描述的信息,并开始再现该播放列表。
在块Title_Menu_Call_PL()中,域标记描述了关于标题菜单的属性信息。域TitleMenu_entry_PlayList_name描述了组成标题菜单的播放列表,或播放列表组的进入点的播放列表。域TitleMenu_ref_to_PlayItem_id描述了一个播放项目播放项目号,该播放项目是一个播放列表的起始。当从开始再现一个播放列表时,域TitleMenu_ref_to_PlayItem_id的值是[0]。
域TitleMenu_chapter_time_stamp描述了播放项目的时间。当从开始再现一个播放项目时,域TitleMenu_chapter_time_stamp描述了播放项目的开始时间。域UOP_mask_table()描述了用户被限制的有关操作的信息。当用户执行一个域UOP_mask_table()中描述的操作时,播放器不响应用户的操作。当用户被禁止执行快速向前操作时,在域UOP_mask_table()中描述被禁止的用户操作。
图89所示的语法描述了块scenario()的结构的一个例子。块scenario()描述了有关脚本,也就是播放列表链接的信息。域length描述了从该域的结束到块scenario()的结尾的字节长度。域number_of_Playlist描述了组成一个脚本的播放列表的数量。域number_of_Playlist之后是for循环。在for循环中,描述有关播放列表的信息(播放列表称为该播放列表),该播放列表是对应于for循环的一个循环计数器的。
for循环之后是该播放列表的数据。域flags描述了播放列表的属性信息。由于域flags描述的数据与本发明的第二模式不直接相关,将省略对其的描述。域PL_UOP_mask_table()描述了在每个播放列表中用户受到限制的操作。当再现上述播放列表时,只能执行在命令UOP_mask_table()(将在后面描述)和域PL_UOP_mask_table()中都允许的用户操作。然而,最终确定是否可以执行用户的操作,是根据块PL_UOP_mask_table()中描述的数据,这将与上述命令和域一起在下面描述。
域Parental_level描述了限制观赏播放列表的观众的必要信息。该信息描述了可以观赏该播放列表的观众的年龄和年龄群。
域number_of_Pre_Commands描述了命令(前置命令)的数量,该命令组成了在再现该播放列表前执行的一个程序。在域PL_Command(i)中描述该程序。域number_of_Post_Commands描述了命令的数量,该命令组成了在再现该播放列表前执行的程序(前置命令)。在域PL_Command(i)中描述一个程序。域Pre_Commands_Start_id描述了在再现播放列表之前在命令表格中执行的程序的开始号码。该号码对应于域PL_Command(i)的参数i。域Post_Commnads_Start_id描述了一个程序的开始号码,在再现了播放列表之后,该程序在命令表格中执行。该号码对应于域PL_Command(i)的参数i。
域number_of_PlayItems描述了组成该播放列表的播放项目的数量。域PL_UOP_mask_table()描述了在每个播放项目中,对用户操作限制的有关信息。当再现播放项目时,只能执行在三种类型的表格中允许的用户操作,它们是命令UOP_mask_table()(将在后面描述)、命令PL_UOP_mask_table()和域PL_UOP_mask_table()。
域PI_Commands_Start_id描述了播放项目再现之后,在命令表格中执行的命令的开始号码。该号码表示域PL_Command(i)中的参数i。域number_of_PL_Commands描述了由后面的for循环表示的命令表格中的命令的数量。包含在域PL_Command(i)中的命令由号码i连续指定。域PL_Command(i)描述了一个命令。号码i由域Pre_Commands_start_id、域Post_Commands_start_id、域PL_Commands_start_id等指示。
3-5.有关命令
图90示出了根据本发明第二模式的脚本中使用的命令的例子。上述命令是BD虚拟播放器300具有的方法。然而,应当注意图90所示的命令是根据本发明第二方面的模式中的脚本中一部分使用的命令。实际上,可以确定更多命令,以便实现根据本发明第一模式的用户界面的多种功能。例如,可以进一步确定用于再现声音数据的命令和用于显示按键的命令。
接下来,将描述用于指定再现开始位置的方法。方法LinkPlayList(PlayListNumber)开始再现由“PlayListNumber”指定的一个播放列表。方法LinkPlayItem(PlayListNumber,PlayItemNumber)开始再现由播放列表指定的播放项目。“PlayListNumber”是其值从“0”开始的“PlayItem_id”。当“PlayItemNumber”的值指定为“0”时,从开始再现该播放项目所属的播放列表。
方法Link(position)(object)在脚本中从当前位置跳到前面或后面的播放列表、播放项目或章节。参数“position”描述了“prev”、“next”、“top”、“parent”和“tail”中的一个。参数“object”描述了用于一个对象(播放列表、播放项目或章节)的跳跃方法。
方法Exit停止了脚本的再现。在这种情况下,不保持标准寄存器的值。方法RSM访问存储在播放器的存储器中的重新开始信息、将该重新开始信息设置到寄存器,并再现脚本。
接下来,将描述用于得到播放器的状态的方法。方法getMenuDescriptionLanguage()得到显示菜单的语言。方法getScenarioNumber()和方法getChapterNumber()分别得到正在再现的脚本号、播放列表号和章节号。方法getPlayerSupport()得到播放器的版本信息。
接下来,将描述用于视频流的方法。方法getVideoStreamAvailability()得到一个信息,该信息表示是否包含一个指定的视频流。方法setVideoStreamNumber()得到已选择的视频流的号码。方法getVideoStreamAttr()得到已选择的视频流的属性。该属性是例如视频流的解码系统、分辨率、纵横比、纵横比是4∶3时的显示模式以及关闭字幕出现/不出现。方法setAngleNumber()描述一个角度数字。方法getAngleNumber()得到已选择的一个角度数字。方法getMaxVideoStream()得到视频流的最大数量。
要根据脚本文件“scenario.pbc”从光盘中再现内容数据,向图39、图74和图75所示的根据第一模式的播放器解码器100、100′、100″的多介质引擎106添加一个引擎,该引擎根据第二模式分析脚本描述语言。
当光盘装入图74所示的播放器解码器100′的驱动装置(未示出)时,首先,再现脚本文件“scenario.pbc”。再现的脚本文件“scenario.pbc”作为一个存储对象从输入端101输入到播放器解码器101′。脚本文件“scenario.pbc”通过开关电路102提供给码缓冲器104。脚本文件“scenario.pbc”分析多介质引擎106的引擎。根据分析结果读出脚本数据。从播放列表文件和一个脚本文件读出的显示在影片画面10上的影片数据、显示在字幕平面11和图形平面12(或图形平面12′)上的图像数据、另一个脚本文件、声音数据等,都从光盘中读出来。
4.其它
在上述例子中,声音数据的第一、第二和第三存储方法应用于本发明的第一模式。然而,声音数据的第一、第二和第三存储方法应用于本发明的第二模式。
在上述例子中,本发明应用于蓝光光盘。然而,本发明可以其它系统的大容量盘型记录介质。
虽然参照最佳实施例示出并描述了本发明,本领域技术人员可以理解,在不背离本发明的精神和范围的情况下,可以对其形式和细节进行上述和其它多种改变、省略、添加。