详细描述
转向附图,其中同样的参考标号指定同样的组件,图1是交互式多媒体演示系统(“演示系统”)100的简化的功能框图。演示系统100包括音频/视频内容(“AVC”)管理器102、交互式内容(“IC”)管理器104、演示管理器106、定时信号管理块108、以及混合器/呈现器110。一般而言,设计选择规定了如何实现演示系统100的特定功能。这样的功能可使用硬件、软件或固件、或其组合来实现。
在操作中,演示系统100处理交互式多媒体演示内容(“演示内容”)120。演示内容120包括视频内容组成部分(“视频组成部分”)122和交互式内容组成部分(“IC组成部分”)124。视频组成部分122和IC组成部分124一般,但不一定分别由AVC管理器102和IC管理器104作为单独的数据流来处理。
演示系统100也便于将演示内容120作为已播放演示127向用户(未示出)演示。已播放演示127表示与由混合器/呈现器110产生且可由用户通过诸如显示器或扬声器(未示出)等设备接收的演示内容120相关联的可视和/或可听信息。为讨论起见,假定演示内容120和已播放演示127表示任何格式的高清晰度DVD电影内容。然而,可以理解,演示内容120和已播放演示127可以是现在已知或将来开发的任何类型的交互式多媒体演示。
视频组成部分122表示演示内容120中的传统视频、音频或数据组成部分。例如,电影一般具有一个或多个版本(例如,针对成年观众的一个版本、以及针对年轻观众的一个版本);一个或多个标题131,其具有与每一标题相关联的一个或多个章节(未示出)(标题在以下结合演示管理器106进一步描述);一个或多个音轨(例如,电影可使用一种或多种语言来播放,带有或不带有字幕);以及诸如导演的评论、附加镜头、预告片等。可以理解,标题与章节之间的区别纯粹是逻辑上的区别。例如,单个可感知的媒体片段可以是单个标题/章节中的一部分,或可由多个标题/章节组成。由内容创作源来确定适用的逻辑区别。也可理解,尽管视频组成部分122被称为电影,但视频组成部分122实际上可以是视频、音频、数据或其任何组合。
形成视频组成部分122的视频、音频、或数据源自一个或多个媒体源160(为示例性的目的,在A/V管理器102内示出两个媒体源160)。媒体源是可从中导出或获取视频、音频或数据的任何设备、位置或数据。媒体源的示例包括但不限于,网络、硬盘驱动器、光学介质、备用的物理盘以及引用特定视频、音频或数据的存储位置的数据结构。
来自特定媒体源的视频、音频或数据的样本组被称为剪辑123(在视频组成部分122、AVC管理器102和播放列表128内示出)。参考AVC管理器102,从一个或多个媒体源160接收与剪辑123相关联的信息,并在解码器块161处对其解码。解码器块161表示用于从自媒体源160接收的信息中检索可呈现视频、音频或数据内容的任何设备、技术或步骤。解码器块161可包括例如编码器/解码器对、多路分解器、或解密器。尽管示出了解码器与媒体源之间的一对一关系,但可以理解,一个解码器可服务于多个媒体源,反之亦然。
音频/视频内容数据(“A/V数据”)132是与视频组成部分122相关联的数据,这些数据被准备来由AVC管理器120呈现并被传输给混合器/呈现器110。A/V数据134的帧通常对每一活动剪辑123包括剪辑中的一部分的呈现。在特定帧中呈现的剪辑的精确部分或量可基于若干因素,诸如剪辑的视频、音频或数据内容的特征、或用于对该剪辑编码或解码的格式、技术或速率。
IC组成部分124包括媒体对象125以及用于演示可视或可听对象的任何指令(被示为应用程序155,并在以下进一步讨论),媒体对象是用户可选择的可视或可听对象,它可任选地可与视频组成部分122并发地演示。媒体对象125可以是静态或动画的。媒体对象的示例包括视频样本或剪辑、音频样本或剪辑、图形、文字及其组合等。
媒体对象125源自一个或多个源(未示出)。源可以是可从中导出或获取媒体对象的任何设备、位置或数据。媒体对象125的源的示例包括但不限于,网络、硬盘驱动器、光学介质、备用物理盘、以及引用特定媒体对象的存储位置的数据结构。媒体对象125的格式的示例包括但不限于,可移植网络图形(“PNG”)、联合图片专家组(“JPEG”)、运动图片专家组(“MPEG”)、多图像网络图形(“MNG”)、音频视频交错(“AVI”)、可扩展标记语言(“XML”)、超文本标记语言(“HTML”)、以及可扩展HTML(“XHTML”)。
应用程序155提供演示系统100用于向用户演示媒体对象124的机制。应用程序155表示电子地控制对数据的预定操作的任何信号处理方法或已存储的指令。为讨论起见,假定IC组成部分124包括三个应用程序155,它们将在以下结合图2和3来讨论。第一应用程序在电影之前演示版权通知,第二应用程序与电影的视频方面并发地演示提供具有多个用户可选择项的菜单的某些媒体对象,第三应用程序演示提供可用于标识和/或跟随出现在电影中的一个或多个项(例如,人、汽车、建筑物或产品)的图形覆盖物(诸如,圆圈)的一个或多个媒体对象。
交互式内容数据(“IC数据”)134是与IC组成部分124相关联的数据,它被准备来由IC管理器104呈现并被传输给混合器/呈现器110。每一应用程序具有一相关联的队列(未示出),该队列保存与呈现应用程序相关联的一个或多个工作项(未示出)。
演示管理器106被配置成与AVC管理器104和IC管理器102两者通信,它便于对演示内容120的处理以及已播放演示127向用户的演示。演示管理器106能访问播放列表128。播放列表128包括可向用户演示的剪辑123和应用程序155(包括媒体对象125)的时间排序序列等。剪辑123和应用程序155/媒体对象125可被安排成形成一个或多个标题131。为示例性的目的,此处讨论一个标题131。播放列表128可使用可扩展标记语言(“XML”)文档或另一数据结构来实现。
演示管理器106使用播放列表128来查明标题131的演示时间线130。概念上,演示时间线130指示标题131内何时可向用户演示特定剪辑123和应用程序155的时间。结合图2示出并讨论了示例演示时间线130,它示出了剪辑123和应用程序155的演示之间的示例性关系。在某些情况中,使用播放列表128和/或演示时间线130来查明视频内容时间线(“视频时间线”)142和交互式内容时间线(“IC时间线”)144也是有用的。
演示管理器106向AVC管理器102和IC管理器104提供信息,包括但不限于关于演示时间线130的信息。基于来自演示管理器206的输入,AVC管理器102准备好A/V数据132以便呈现,IC管理器104准备好IC数据134以便呈现。
定时信号管理块108产生各种定时信号158,这些信号被用于控制AVC管理器102和IC管理器104分别对A/V数据132和IC数据134进行的准备和产生的定时。具体地,定时信号158被用于实现A/V数据132和IC数据134的帧级同步。定时信号管理块108和定时信号158的细节将在以下结合图4进一步讨论。
混合器/呈现器在视频平面(未示出)中呈现A/V数据132,并在图形平面(未示出)中呈现IC数据134。图形平面一般,但不一定被覆盖在视频平面上以便为用户产生已播放演示127。
继续参考图1,图2是播放列表128内的标题131的示例演示时间线130的图示。时间在水平轴220上示出。关于视频组成部分122(示出了剪辑123)和IC组成部分(示出了演示媒体对象125的应用程序155)的信息在垂直轴225上示出。示出了两个剪辑123,第一视频剪辑(“视频剪辑1”)230和第二视频剪辑(“视频剪辑2”)250。为讨论起见,如以上结合图1所述,假定第一应用程序负责演示构成版权通知260的一个或多个媒体对象(例如,图像和/或文字)。第二应用程序负责演示提供菜单280的用户可选项(例如,带有相关联文字或图形的按钮)的某些媒体对象。第三应用程序负责演示提供图形覆盖物290的一个或多个媒体对象。菜单280与视频剪辑1230和视频剪辑2250并发地显示,而图形覆盖物290可与视频剪辑1230和菜单280并发地显示。
沿水平轴220的其中可向用户演示标题131的特定时间量被称为标题131的播放持续时间292。播放持续时间292内的特定时间被称为标题时间。在演示时间线130上示出了四个标题时间(“TT”)——TT1 293、TT2 294、TT3 295和TT4296。因为标题可被播放一次或一次以上(例如,以循环方式),所以基于标题131的一次重复来确定播放持续时间292。播放持续时间292可关于任何所需基准来确定,包括但不限于,预定播放速度(例如,正常即1x播放速度)、预定帧速率或预定的定时信号状态。播放速度、帧速率和定时信号将在以下结合图4进一步讨论。可以理解,诸如编码技术、显示技术和关于播放序列和每一标题的剪辑和媒体对象之间的定时关系的特定规则等实现专用因素都会影响标题的播放持续时间及其中的标题时间的精确值。术语播放持续时间和标题时间旨在包括所有这样的实现专用细节。尽管可演示与IC组成部分124相关联的内容的标题时间一般是预定的,但可以理解,在用户与这样的内容交互时所采取的动作可仅基于播放已播放演示127时用户的输入来确定。例如,用户可在已播放演示127的播放期间选择、激活或停用某些应用程序、媒体对象和/或与之相关联的附加内容。
也在此处定义和讨论播放持续时间292内的其它时间和/或持续时间。视频演示间隔240由播放持续时间292的开始和结束时间来定义,在此期间可播放与视频组成部分122相关联的特定内容。例如,视频剪辑1 230具有在标题时间TT2 294与TT4 294之间的演示间隔240,而视频剪辑2 250具有在标题时间TT3 295与TT4296之间的演示间隔240。应用程序演示间隔、应用程序播放持续时间、页演示间隔、以及页持续时间也在以下结合图3来定义和讨论。
继续参考图2,在播放持续时间292内存在两种类型的时间间隔。第一种类型的时间间隔是其中视频组成部分122未被调度来演示的间隔。时间间隔1 297,即电影演示之前显示版权通知260的时间,是第一种类型的时间间隔的示例。尽管演示版权通知260的应用程序被调度来在时间间隔1 297期间演示,但可以理解,应用程序不必在第一种类型的时间间隔期间被调度来演示。
第二种类型的时间间隔是其中视频组成部分122被调度来演示的间隔。时间间隔2 298和时间间隔3 299是第二种类型的时间间隔的示例。有时,可在第二种类型的时间间隔期间调度一个以上的视频来演示。通常,但不总是,交互式内容可在第二种类型的时间间隔期间演示。例如,在时间间隔2 298中,调度菜单280和图形覆盖物290来与视频剪辑230并发地演示。在时间间隔3 299中,调度菜单280来与视频剪辑1 230和视频剪辑2 250并发地演示。
继续参考图1和2,图3是单个应用程序155的功能框图。应用程序155一般表示负责演示媒体对象260、280和290的应用程序。应用程序155包括指令304(以下进一步讨论)。应用程序155具有与之相关联的资源包数据结构340(以下进一步讨论)、应用程序播放持续时间320、以及一个或多个应用程序演示间隔321。
应用程序播放持续时间320是特定的时间量,指的是其中可向已播放演示127的接收方演示和/或可由其选择与应用程序155相关联的媒体对象125的一定量(一部分或全部)的播放持续时间292。在图2的上下文中,例如负责版权通知260的应用程序155具有由TT1 293和TT2 294之间的时间量组成的应用程序播放持续时间。负责菜单390的应用程序具有由TT2 294和TT4 296之间的时间量组成的应用程序播放持续时间。负责图形覆盖物290的应用程序具有由TT2 294与TT3 295之间的时间量组成的应用程序播放持续时间。
当与特定应用程序相关联的应用程序播放持续时间在演示时间线上概念化时获取的由开始和结束标题时间所定义的间隔被称为应用程序演示间隔321。例如,负责版权通知260的应用程序具有开始于TT1 293并结束于TT2 294的应用程序演示间隔,负责菜单280的应用程序具有开始于TT2 294并结束于TT4 296的应用程序演示间隔,负责图形覆盖物290的应用程序具有开始于TT2 294并结束于TT3295的应用程序演示间隔。
再次参考图3,在某些情况中,应用程序155可具有一个以上的页。页是在特定应用程序播放持续时间320和/或应用程序演示间隔321内可同时演示的一个或多个媒体对象的逻辑分组。然而,与特定页相关联的媒体对象可并发地、串行地或按其组合来演示。如图所示,初始页330具有相关联的初始媒体对象331,后续页335具有相关联的媒体对象336。每一页又具有其自己的页持续时间。如图所示,初始页330具有页持续时间332,后续页335具有页持续时间337。页持续时间是特定的时间量,指的是其中向用户演示(和/或由用户选择)与特定页相关联的媒体对象125的一定量(一部分或全部)的应用程序播放持续时间330。当与特定页相关联的页播放持续时间在演示时间线上概念化时所获取的由开始和结束标题时间所定义的间隔被称为页演示间隔343。页演示间隔343是应用程序演示间隔321的子间隔。特定的媒体对象演示间隔345也可在页演示间隔343内定义。
与给定标题相关联的应用程序和页的数目,以及与每一应用程序或页相关联的媒体对象一般是逻辑上的区别,这是设计选择的问题。当期望管理(例如,限制)与应用程序相关联的、在应用程序执行期间被加载到存储器内的资源的数目或数量时,可使用多个页。应用程序的资源包括应用程序所使用的媒体对象、以及用于呈现媒体对象的指令304。例如,当带有多个页的应用程序可被演示时,有可能仅将与应用程序的当前可演示页相关联的那些资源加载到存储器中。
资源包数据结构340被用于便于在应用程序执行之前将应用程序资源加载到存储器中。资源包数据结构340引用应用程序的资源所处的存储器位置。资源包数据结构340可与其所引用的资源一起或分开地存储在任何期望的位置。例如,资源包数据结构340可被安置在诸如高清晰度DVD等光学介质上,位于与视频组成部分122分开的区域中。或者,资源包数据结构340可被嵌入到视频组成部分122中。在又一替换中,资源包数据结构可放置在远程位置。远程位置的一个示例是联网的服务器。涉及处理用于应用程序执行的资源以及在应用程序之间的转换的主题将不在此处详细讨论。
再次参考应用程序155本身,当指令304被执行时,它基于用户输入执行关于呈现与应用程序155相关联的媒体对象125的任务。一种类型的用户输入(或其结果)是用户事件。用户事件是由已播放演示127的接收方启动的涉及IC组成部分124的动作或发生的事情。用户事件一般,但不一定是异步的。用户事件的示例包括但不限于,用户与已播放演示127内的媒体对象的交互,诸如对菜单280内的按钮的选择、或对与图形覆盖物290相关联的圆圈的选择。这样的交互可使用现在已知或将来开发的任何类型的用户输入设备来进行,包括键盘、遥控器、鼠标、指示笔、或语音命令。可以理解,应用程序155可响应除用户事件以外的事件,但这样的事件在此处将不特别讨论。
在一个实现中,指令304是编码在计算机可读介质(以下结合图9进一步描述)内的计算机可执行指令。在此处所述的示例中,使用脚本308或标记元素302、306、310、312、360来实现指令304。尽管可单独使用脚本或标记元素中的任何一个,但一般而言,脚本和标记元素的组合允许创建高清晰度DVD电影的一组综合的交互式能力。
脚本308包括以非声明性程序设计语言,诸如命令性程序设计语言编写的指令304。命令性程序设计语言按照将由处理器执行的命令的序列来描述计算。在使用脚本308的大多数情况中,使用脚本来响应用户事件。然而,脚本可用于其它上下文中,诸如处理单独使用标记元素不容易或不能高效实现的问题。这样的上下文的示例包括系统事件和资源管理(例如,访问高速缓存的或持久存储的资源)。在一种实现中,脚本308是如由国际欧洲计算机制造协会(ECMA Internationa)在ECMA-262规范中定义的ECMAScript。落入ECMA-262中的常用的脚本化程序设计语言包括JavaScript和Jscript。在某些设置中,可能期望使用ECMAScript 262的子集,诸如ECMA-327以及主机环境和一组应用程序编程接口来实现308。
标记元素302、306、310、312和360表示以声明性程序设计语言,诸如可扩展标记语言(“XML”)编写的指令304。在XML中,元素是XML文档内使用开始标签和结尾标签定义的逻辑信息单元。XML文档是由被称为实体(也被称为容器)的存储单元组成的数据对象,这些存储单元包含已经解析或未解析的数据。已解析的数据由字符组成,其中某些字符形成字符数据,某些字符形成标记。标记对文档的存储布局和逻辑结构的描述编码。在XML文档中存在一个根元素,其任何部分都不在任何其它元素的内容中出现。对所有的其它元素,开始标签和结尾标签位于其它元素的内容内,彼此嵌套。
XML模式是一类XML文档的句法的定义。一种类型的XML模式是通用模式。某些通用模式由万维网联盟(“W3C”)定义。另一类型的XML模式是专用模式。例如在高清晰度DVD上下文中,由DVD论坛公布了一个或多个专用XML模式,用于遵循高清晰度视频的DVD规范的XML文档。可以理解,有可能有高清晰度DVD电影的其它模式以及其它交互式多媒体演示的模式。
在较高层次上,XML模式包括:(1)全局元素声明,它将元素名与元素类型相关联,以及(2)类型定义,它定义该类型元素的属性、子元素和字符数据。元素的属性使用名/值对来指定元素的特定特性,一个属性指定单个元素特性。
可包括用户事件元素260的内容元素302被用于标识可由应用程序1 55向用户演示的特定媒体对象元素312。媒体对象元素312一般又指定安置定义特定媒体对象125的数据的位置。这样的位置可以是,例如持久本地或远程存储中的位置,包括光学介质、有线或无线、公共或专用网络、诸如因特网、私人管理的网络或万维网上的位置。媒体对象元素312所指定的位置也可以是对位置的引用,诸如对资源包数据结构340的引用。以此方式,媒体对象125的位置可被间接指定。
定时元素306被用于指定特定内容元素302可由特定应用程序155向用户演示的时间或时间间隔。定时元素的示例包括XML文档的时间容器内的并行(par)、定时或串行(seq)元素。
样式元素310一般被用于指定可由特定应用程序向用户演示的特定内容元素302的外观。
用户事件元素360表示用于定义或响应用户事件的内容元素302、定时元素306或样式元素310。
标记元素302、306、310、360具有可用于指定其相关联媒体对象元素312/媒体对象125的某些特性的属性。在一个实现中,这些属性/特性表示一个或多个时钟或定时信号(以下结合图4进一步描述)的值。使用具有表示时间或持续时间的特性的标记元素的属性是在用户接收已播放演示127的同时实现IC组成部分124与视频组成部分122之间的同步的一种方式。
以下描述了包含标记元素的示例XML文档(未示出脚本308)。示例XML文档包括用于对内容元素302执行裁剪动画的样式310和定时306元素,内容元素302引用被称为“id”的媒体对象元素312。定义与“id”媒体对象元素相关联的媒体对象215的数据的位置未被示出。
该示例XML文档以被称为“xml”的根元素开始。在该根元素之后,若干名字空间“xmlns”字段引用万维网上可找到定义该示例XML文档的句法的若干模式及其中的容器的位置。在例如用于高清晰度DVD电影的XML文档的上下文中,名字空间字段可引用与DVD论坛相关联的网站。
在由标为“body”的标签描述的容器中定义被称为“id”的一个内容元素302。在由标为“head”的标签描述的容器内定义与内容元素“id”相关联的样式元素310(在该示例中,标签“styling”下的元素)。还在由标为“head”的标签描述的容器内定义定时元素306(标签“timing”下的元素)。
-<root xml:lang=″en″xmlns=″http://www.dvdforum.org/2005/ihd″
xmlns:style=″http://www.dvdforum.org/2005/ihd#style″
xmlns:state=″http://www.dvdforum.org/2005/ihd#state”
-<head>(Head是style(样式)和timing(定时)特性的容器)
-<styling>(此处为Styling特性)
<style id=″s-p″ style:fontSize=″10px″/>
<style id=″s-bosbkg″style:opacity=″0.4″
style:backgroundImage=″url(′../../img/pass/boston.png′)″/>
<style id=″s-div4″style=″s-bosbkg″style:width=″100px″
style:height=″200px″/>
<style id=″s-div5″style:crop=″0 0 100 100″style=″s-bosbkg″
style:width=″200px″style:height=″100px″/>
<style id=″s-div6″style:crop=″100 50 200 150″style=″s-bosbkg″
style:width=″100px″style:height=″100px″/>
</styling>
-<Timing>(此处为Timing特性)
-<timing clock=″title″>
-<defs>
-<g id=″xcrop″>
<set style:opacity=″1.0″/>
<animate style:crop=″0 0 100 200;200 0 300 200″/>
</g>
-<g id=″ycrop″>
<set style:opacity=″1.0″/>
<animate style:crop=″0 0 100 100;0 100 100 200″/>
</g>
-<g id=″zoom″>
<set style:opacity=″1.0″/>
<animate style:crop=″100 50 200 150;125 75 150 100″/>
</g>
</defs>
-<seq>
<cue use=″xcrop″select=″//div[@id=′d4′]″dur=″3s″/>
<cue use=″ycrop″select=″//div[@id=′d5′]″dur=″3s″/>
<cue use=″zoom″select=″//div[@id=′d6′]″dur=″3s″/>
</seq>
</timing>
</head>
-<body state:foreground=″true″> Body是内容元素的容器
-<div id=″d1″>内容从此处开始。
-<p style:textAlign=″center″>
裁剪动画测试
<br/>
<span style:fontSize=″12px″>启动标题时钟以制作裁剪动画。</span>
</p>
</div>
<div id=″d4″style=″s-div4″style:position=″absolute″
style:x=″10%″style:y=″40%″>
<p style=″s-p″>x:0->200</p>
</div>
-<div id=″d5″style=″s-div5″style:position=″absolute″style:x=″30%″
style:y=″40%″>
<p style=″s-p″>y:0->100</p>
</div>
-<div id=″d6″style=″s-div6″style:position=″absolute″
style:x=″70%″style:y=″60%″>
-<p style=″s-p″>
x:100->125
<br/>
y:50->75
</p>
</div>
</body>
</root>
继续参考图1-3,图4是更详细示出定时信号管理块108和定时信号158的各个组件的简化的功能框图。
定时信号管理块108负责处理用于确定演示系统100内的特定时间或持续时间的时钟和/或定时信号。如图所示,由时钟源402以预定速率产生连续的定时信号401。时钟源402可以是与处理系统,诸如通用计算机或专用电子设备相关联的时钟。由时钟源402产生的定时信号401一般如真实世界的时钟一样连续改变——在真实时间的一秒钟内,时钟源402以预定速率产生相当于一秒钟的定时信号401。定时信号401被输入到IC帧速率计算器404、A/V帧速率计算器406、时间基准计算器408和时间基准计算器409。
IC帧速率计算器404基于定时信号401产生定时信号405。定时信号405被称为“IC帧速率”,它表示IC管理器104产生IC数据134的帧的速率。IC帧速率的一个示例性值是每秒30帧。IC帧速率计算器404可减少或增加定时信号401的速率以产生定时信号405。
IC数据134的帧一般根据相关用户事件对每一有效应用程序155和/或其页包括与有效应用程序和/或页相关联的每一媒体对象125的呈现。为示例性的目的,有效应用程序是具有基于演示时间线130播放持续时间292的当前标题时间落入其中的应用程序演示间隔321的应用程序。可以理解,应用程序可具有一个以上的应用程序演示间隔。也可理解,此处不对基于用户输入或资源可用性的应用程序状态进行特定区分。
A/V帧速率计算器406还基于定时信号401来产生定时信号——定时信号407。定时信号407被称为“A/V帧速率”,它表示AVC管理器102产生A/V数据132的帧的速率。A/V帧速率可以与IC帧速率405相同或不同。A/V帧速率的一个示例性值为每秒24帧。A/V帧速率计算器406可减少或增加定时信号401的速率以产生定时信号407。
时钟源470产生定时信号471,它管控从媒体源160产生与剪辑123相关联的信息的速率。时钟源470可以是与时钟402相同的时钟,或基于与时钟源402相同的时钟。或者,时钟470和402可完全不同和/或具有不同的源。时钟源470基于播放速度输入480来调节定时信号471的速率。播放速度输入480表示所接收的影响已播放演示127的播放速度的用户输入。例如,当用户从电影的一部分跳转到另一部分(被称为“特效播放”),或当用户暂停、慢进、快进、慢退或快退电影时,播放速度受到影响。特效播放可通过从菜单280(图2中示出)作出选择或以其它方式来实现。
时间基准452表示在与活动剪辑123相关联的特定演示间隔240内经过的时间量。此处为讨论的目的,活动剪辑是具有基于演示时间线130播放持续时间292的当前标题时间落入其中的演示间隔240的剪辑。时间基准452被称为“经过的剪辑播放时间”。时间基准计算器454接收时间基准452,并产生媒体时间基准455。媒体时间基准455表示基于一个或多个时间基准452已经经过的播放持续时间292的总量。一般而言,当两个或多个剪辑正并发播放时,仅使用一个时间基准452来产生媒体时间基准455。用于确定媒体时间基准455的特定剪辑以及如何基于多个剪辑确定媒体时间基准455是实现偏好的问题。
时间基准计算器408接收定时信号401、媒体时间基准455以及播放速度输入480,并产生标题时间基准409。标题时间基准409表示基于对时间基准计算器408的一个或多个输入、在播放持续时间292内已经经过的时间总量。结合图6示出并描述了用于计算标题时间的示例性方法。
时间基准计算器490接收定时信号401和标题时间基准409,并产生应用程序时间基准492和页时间基准494。单个应用程序时间基准492表示,参考连续定时信号401,特定应用程序播放持续时间320(结合图3示出并讨论)中已经过的时间量。当标题时间基准409指示当前标题时间落入特定应用程序的应用程序演示间隔321内时,确定应用程序时间基准492。在应用程序演示间隔321结束时,应用程序时间基准492复位(例如,变为不活动或重新开始)。应用程序时间基准492也可在其它情况中复位,诸如响应于用户事件或当进行特效播放时。
页时间基准494表示,参考连续定时信号401,单个页播放持续时间332、337(也结合图3示出和讨论)中已经过的时间量。当标题时间基准409指示当前标题时间落入适用的页演示间隔342内时,确定应用程序的特定页的页时间基准494。页演示间隔是应用程序演示间隔321的子间隔。页时间基准494可在适用的页演示间隔343结束时复位。页时间基准494也可在其它情况中复位,诸如响应于用户事件或当进行特效播放时。可以理解,也可定义媒体对象演示间隔345,它可以是应用程序演示间隔321和/或页演示间隔343的子间隔。
表1示出了在演示系统100播放已播放演示127期间的示例性事件,以及这样的事件对应用程序时间基准492、页时间基准494、标题时间基准409和媒体时间基准455的影响。
事件 |
应用程序时间492 |
页时间494 |
标题时间409 |
媒体时间455 |
电影开始 |
不活动,除非/直到应用程序有效 |
不活动,除非/直到适用页有效 |
开始(例如,位于0处) |
开始(例如,位于0处) |
下一剪辑开始 |
不活动,除非/直到应用程序有效 |
不活动,除非/直到适用页有效 |
基于之前的标题时间和经过的剪辑播放时间来确定 |
复位/重新开始 |
下一标题开始 |
不活动,除非/直到应用程序有效 |
不活动,除非/直到适用页有效 |
复位/重新开始 |
复位/重新开始 |
应用程序变为有效 |
开始 |
当适用页有效时开始 |
继续/没有影响 |
继续/没有影响 |
特效播放 |
如果适用的应用程序在所跳转到的标题时间有效,则复位/重新开始;否 |
如果适用的页在所跳转到的标题时间有效,则复位/重新开始;否则变为 |
基于所跳转到的位置,前进或后退至对应于演示时间线上已经过的播放持续时间的 |
前进或后退至对应于标题内活动剪辑在跳转到的位置上的已经过的剪辑播放时间的 |
|
则变为不活动 |
不活动 |
时间 |
时间 |
改变播放速度N倍 |
继续/没有影响 |
继续/没有影响 |
以N倍速度经过 |
以N倍速度经过 |
电影暂停 |
继续/没有影响 |
继续/没有影响 |
暂停 |
暂停 |
电影恢复 |
继续/没有影响 |
继续/没有影响 |
恢复 |
恢复 |
表1
图5是更详细示出某些事件502在已播放演示127的播放期间对应用程序时间基准492、页时间基准494、标题时间基准409和媒体时间基准455的影响的示意图。关于连续定时信号,诸如定时信号401的值来示出事件502及其影响。除非另有指示,否则高清晰度DVD电影的特定标题正以正常速度播放,且具有三个可串行演示的页的单个应用程序提供用户交互活动。
电影在定时信号具有值0时开始播放。当定时信号具有值10时,应用程序变为有效并激活。应用程序时间492以及与应用程序的页1相关联的页时间494假定为值0。页2和3是不活动的。标题时间409和媒体时间455均具有值10。
应用程序的页2在定时信号值15时加载。应用程序时间和页1时间具有值5,而标题时间和媒体时间具有值15。
应用程序的页3在定时信号具有值20时加载。应用程序时间具有值10,页2时间具有值5,页1时间不活动。标题时间和媒体时间2具有值20。
电影在定时信号值22时暂停。应用程序时间具有值12,页3时间具有值2,页1和2不活动。标题时间和媒体时间具有值22。电影在定时信号值24时恢复。于是,应用程序时间具有值14,页3时间具有值4,标题时间和媒体时间具有值22。
在定时信号值27时,新剪辑开始。应用程序时间具有值17,页3时间具有值7,标题时间具有值25,媒体时间被复位到0。
用户在定时信号值32时停用应用程序。应用程序时间具有值22,页时间具有值12,标题时间具有值30,而媒体时间具有值5。
在定时信号值39处,用户跳转、后退至同一剪辑中的另一部分。假定应用程序在所跳转到的位置有效,且在之后不久重新激活。应用程序时间具有值0,页1时间具有值0,其它页不活动,标题时间具有值27,媒体时间具有值2。
在定时信号值46处,用户改变电影的播放速度,以正常速度的两倍快进。快进继续直到定时信号值53。如图所示,应用程序和页时间继续随连续的定时信号以恒定的步调改变,未受到电影播放速度改变的影响,而标题和媒体时间与电影的播放速度成比例地改变。应注意到,加载应用程序的特定页的时间被绑定至标题时间409和/或媒体时间455(见结合图3对应用程序演示间隔321和页演示间隔343的讨论)。
在定时信号值48处,新标题开始,标题时间409和媒体时间455被复位到值0。对于初始标题,这在标题时间具有值62、媒体时间具有值36时发生。应用程序时间492和页时间494的复位(未示出)跟随在标题时间409和媒体时间455的复位之后。
能够访问各个时间线、时钟源、定时信号和定时信号基准增强了演示系统100实现已播放演示127内的IC数据124和A/V数据132的帧级同步以及在用户交互活动期间维持这样的帧级同步的能力。
继续参考图1-4,图6是用于增强诸如演示系统100等交互式多媒体演示系统同步演示交互式多媒体演示的交互式和视频组成部分(诸如演示内容120/已播放演示127的IC组成部分124和视频组成部分122)的能力的一种方法的流程图。该方法涉及使用两个不同的定时信号来测量演示的播放持续时间(诸如,播放持续时间292)的至少一部分中的总的已经过播放时间(由标题时间409表示)。
该方法在框600处开始,并继续至框602,在那里标识演示的播放持续时间内的非视频时间间隔。非视频时间间隔是其中未调度视频组成部分122来演示的间隔。尽管未调度视频组成部分122来演示,但可以理解,可调度其它视频(例如,与应用程序155相关联的视频数据)来演示。
可标识非视频时间间隔的一种方式是参考演示时间线130上的播放持续时间292,这可从诸如播放列表128等用于演示的播放列表中查明。出于示例性目的,参考图2,时间间隔1 297是电影之前当负责显示版权通知260的应用程序有效时的时间间隔,它是非视频时间间隔。时间间隔1 297在标题时间TT1 293与TT2 294之间定义。尽管在时间间隔1 297期间调度了应用程序来演示,但可以理解,不必在非视频时间间隔期间调度应用程序来演示。
再次参考图6,在框604处,在非视频时间间隔期间,使用连续定时信号来测量第一已经过的播放时间。第一已经过的播放时间是播放持续时间262中的部分已经过播放时间。由标题时间409表示的第一已经过播放时间可由时间基准计算器408使用定时信号401来计算。
在框606处标识演示的播放持续时间内的视频时间间隔。视频时间间隔是其中调度视频组成部分122来演示的间隔。可以理解,视频组成部分122可包括视频、音频、数据或其任何组合,且不仅仅表示可视信息。在图2中所示的示例性演示时间线130中,时间间隔2 298和时间间隔3 299均是视频时间间隔。在视频时间间隔期间可调度一个以上的剪辑来演示。当在特定的视频时间间隔期间有一个以上的剪辑可演示(例如,当主电影和画中画电影均在播放)时,将一特定的剪辑视为主剪辑。一般,尽管不是必须的,可将主电影视为主剪辑。尽管在时间间隔298和299期间交互式内容也是可演示的,但交互式内容不必在视频时间间隔期间是可演示的。
再次参考图6,在框608处,在视频时间间隔期间,使用基于演示的播放速度的定时信号来测量第二已经过的播放时间。与第一已经过的播放时间一样,第二已经过的播放时间也是播放持续时间262中的部分已经过播放时间,由标题时间409(图4中示出)表示。第二已经过的播放时间可由时间基准计算器408使用媒体时间基准455来计算。媒体时间基准455是间接基于由时钟源470产生的定时信号471的。如下示出媒体时间基准455间接基于定时信号471的方式:时钟源470基于播放速度输入480来调节定时信号471的速率;基于定时信号471从媒体源160检索剪辑123;由时间基准计算器454接收已经过的剪辑播放时间452,该计算器基于已经过的剪辑播放时间452产生媒体时间基准455。或者,时间基准计算器408可使用定时信号471来直接计算标题时间409。
当已播放演示127在视频时间间隔期间前进时,如图6的菱形框610和后续框612所示,使用第二已经过的播放时间来确定总的已经过播放时间,即标题时间409。以此方式,总的已经过播放时间的值反映了在视频组成部分122的播放期间发生了什么,并对其给予优先级。如果例如存在与从媒体源160读取剪辑123相关联的问题或延迟,则一个或多个已经过的剪辑播放时间452将暂停,标题时间409也将暂停。从而允许包括具有基于标题时间409的应用程序演示间隔321的应用程序的IC组成部分124来维持与视频组成部分122的演示的同步。在移动的汽车正被图形覆盖物290跟随的示例中,圆圈将与汽车一起移动,即使当从媒体源160读取汽车的镜头存在问题或延迟时。
如由菱形框614和后续框616所指示的,如果已播放演示127在非视频时间间隔期间前进,则使用第一已经过的播放时间来确定总的已经过播放时间,即标题时间409。从而,在非视频时间间隔期间,通过基于诸如定时信号401等连续定时信号计算标题时间409来实现已播放演示127的准确前进。
期望在从一种类型的时间间隔转换到另一种类型前的至少一个单位的标题时间409识别这种过渡,以便于根据基于播放速度的定时信号(定时信号471和/或媒体时间基准455)或连续定时信号(定时信号401)中的任一个来准确计算标题时间409。例如,在从非视频间隔转换到视频间隔之前,可准备要在视频间隔中演示的A/V数据132的第一帧(例如,主视频剪辑的第一帧)来呈现。然后,A/V数据132的第一帧可当基于演示时间线130调度它来演示时在标题时间演示。同样地,在从视频间隔过渡到非视频间隔之前,可预呈现IC数据134的第一帧。
继续参考图1-4,图7是用于增强诸如演示系统100等交互式多媒体演示系统同步地演示交互式多媒体演示的交互式和视频组成部分(诸如演示内容120/已播放演示127的IC组成部分124和视频组成部分122)的能力的另一种方法的流程图。该方法涉及访问时钟源以及形成各个时间基准。
在演示系统100的上下文中,演示内容120/已播放演示127具有播放持续时间292。IC组成部分124包括具有用于呈现一个或多个媒体对象125的指令304的应用程序155。应用程序155具有应用程序播放持续时间320,它在播放持续时间292的上下文中由应用程序演示间隔321表示。视频组成部分122包括一个或多个剪辑123。
该方法在框700处开始,并继续至框702,在那里基于演示的播放速度来产生第一定时信号。在演示系统100的上下文中,定时信号471由时钟源470产生,该源基于播放速度输入480来调节定时信号471的速率。
在框704处,以连续的预定速率产生第二定时信号。在演示系统100的上下文中,定时信号401由时钟源402产生。
在框706处形成标题时间基准。在演示系统100的上下文中,时间基准计算器408通过基于定时信号401来测量播放持续时间292的已经过播放时间来形成标题时间基准409。如结合图6所讨论的,标题时间基准409可间接基于由时钟源470产生的定时信号471。或者,标题时间基准409可直接以定时信号471为基础,或以基于播放速度输入480的另一定时信号为基础。媒体时间基准455被输入到时间基准计算器408以形成标题时间基准409。
在菱形框708处,确定标题时间是否处于应用程序演示间隔内。当标题时间不在应用程序演示间隔内时,在框715处,将该应用程序视为不活动的。如果标题时间处于应用程序演示间隔内,则如上所述该应用程序有效。在演示系统100的上下文中,当标题时间基准409落入适用的应用程序演示间隔321内时,将相关联的应用程序155视为有效。
在菱形框710处,还确定是否加载了应用程序资源(例如,由资源包数据结构340引用的资源)。如果有必要,在框712处执行资源加载。在演示系统100的上下文中,在播放特定的应用程序155之前,诸如当应用程序最初变为有效时,或当应用程序基于演示的播放速度的改变而变为有效(例如,在特效播放之后)时,应用程序155的资源被加载到存储器,诸如文件高速缓存中。资源包括与应用程序相关联的媒体对象125,以及用于呈现媒体对象的指令304。特定应用程序的媒体对象125和指令304被统称为资源包。如以上结合图3所讨论的,资源包数据结构340引用特定应用程序的资源包的各元素的存储位置。资源包数据结构340可被嵌入到视频组成部分122内,且从视频组成部分直接读取,而不必在视频内容流外寻找以定位应用程序资源。或者,资源可被直接嵌入到视频流内,或从单独的应用程序包(例如,位于光学介质上)中加载。
再次参考图7的流程图,在框714处形成应用程序时间基准。通过基于第二定时信号来测量应用程序播放持续时间的已经过播放时间来形成应用程序时间基准。在演示系统100的上下文中,当标题时间基准409落入应用程序演示间隔321时,形成应用程序时间基准492。时间基准计算器490基于定时信号401产生应用程序时间基准492。在应用程序时间间隔321结束时,应用程序时间基准492复位(例如,变为不活动或重新开始)。应用程序时间基准492也可在其它情况中复位,诸如当进行特效播放时。
在菱形框716处,确定当前已经过的播放时间是否处于适用的页演示间隔内,如果是,则在框718处形成页时间基准。通过基于第二定时信号(定时信号401)来测量适用的页播放持续时间332、337的已经过的播放时间来形成页时间基准。如果当前已经过的播放时间不在适用的页演示间隔内,则在框717处将适用的页视为不活动的。在演示系统100的上下文中,当标题时间基准409落入适用页演示间隔343内时,形成页时间基准494。
应用程序和页时间基准可当应用程序演示间隔结束时复位,或可在其它情况中,诸如响应于用户事件或播放速度输入480而复位。例如,在特效播放之后,假定标题时间409处于应用程序演示间隔321内,则应用程序(以及适用的页时间基准)可重新开始(位于0或另一起始值)。
在框720处,将指令与媒体对象相关联。在演示系统100的上下文中,一种类型的指令是与应用程序155相关联的指令304。指令304表示一个或多个声明性语言数据结构,诸如XML标记元素302、306、310、312、360或其属性,它们被单独使用或与脚本308组合使用,以引用一个或多个时钟或定时信号的状态,以便设立呈现媒体对象125的时间或持续时间。内容容器、定时容器或样式容器内的标记元素可参考或其一个或多个属性可参考定时信号401或定时信号471。
元素及其属性可直接或间接参考定时信号401和/或定时信号407。例如,可经由时钟源402、IC帧速率计算器404、A/V帧速率计算器406、应用程序时间492或页时间494来间接参考定时信号401。同样地,可例如经由时钟源470、已经过的剪辑播放时间452、时间基准计算器454、媒体时间基准455、时间基准计算器408或标题时间基准409来间接参考定时信号407。
在一个示例中,可使用专用的XML模式,诸如用于某些高清晰度DVD电影的XML模式来定义一个或多个属性。这样的属性的一个示例此处被称为“时钟属性”,它由DVD论坛公布的用于遵循高清晰度视频的DVD规范的XML文档的一个或多个XML模式定义。时钟属性可用于内容、定时或样式容器中的各种元素以直接或间接参考定时信号401或定时信号407。在另一示例中,时间容器内的并行、定时或串行元素可参考或其一个或多个属性可参考定时信号401或定时信号407。以此方式,XML文档的定时容器内的标记元素可用于参考页时间和标题时间两者来定义媒体对象演示间隔345。在又一示例中,也可定义定时器元素,该元素可由应用程序使用以便在经过了某个特定的持续时间时通知该应用程序。在另一示例中,可由链接至不同时间标度的时间来定义用户事件或其它类型的事件。可参考定时信号401或定时信号407来设立特定事件有效的时间或时间间隔。
涉及对时钟、定时信号、时间基准计算器和/或时间基准的逻辑引用的表达式也可用于使用XML文档中的元素或元素属性来定义演示媒体对象125的条件。例如,诸如“AND”、“OR”和“NOT”等布尔操作数以及其它操作数及其类型可用于定义这样的表达式或条件。
如菱形框722和框724所指示,基于指令,当到达用于呈现媒体对象的时间时,呈现该媒体对象。可以理解,不总是呈现媒体对象,因为用户输入可指示是否以及何时呈现媒体对象。
在演示系统100的上下文中,在特定应用程序155的执行期间,与应用程序相关联的文档对象模型(“DOM”)树(未示出)维护标记元素的状态的上下文,而与应用程序相关联的脚本主机(host)维护脚本的变量、函数和其它状态的上下文。随着应用程序指令304的执行继续以及接收到用户输入,任何受影响的元素的特性被记录且可用于触发已播放演示127内的媒体对象125的行为。可见,基于DOM外的一个或多个时钟而非与DOM相关联的时钟来实现演示内容120/已播放演示127的交互式与视频组成部分之间的同步。
因指令304的执行而得到的工作项(未示出)可被置于队列(未示出)中,并以由IC帧速率405设定的速率执行。因工作项的执行而得到的IC数据134被发送给混合器/呈现器110。混合器/呈现器110在图形平面上呈现IC数据134以为用户产生已播放演示127的交互式部分。
可使用诸如以下结合图8所讨论的处理器802等一个或多个通用、多用途或单用途处理器来实现图6和7中所示的过程。除非另有指示,否则此处所述的方法不限于特定次序或顺序。此外,所述的方法及其元素中的某一些可并发发生或执行。
图8是通用计算单元800的框图,它示出了可用于实现演示系统100的各个功能组件或可由其访问或可被包括在其中的某些功能组件。计算单元800的一个或多个组件可用于实现IC管理器104、演示管理器106和AVC管理器102或可由其访问或可被包括在其中。例如,图8的一个或多个组件可被包装在一起或分开包装以按照各种方式来实现演示系统100的功能(整体或部分)。
处理器802响应于计算机可读介质804和计算机程序806。处理器802可以是真实或虚拟的处理器,它通过执行计算机可执行指令来控制电子设备的功能。处理器802可在汇编、编译或机器级执行指令以执行特定的过程。这样的指令可使用源代码或任何其它已知的计算机程序设计工具来创建。
计算机可读介质804表示任何形式的、现在已知或将来开发的、能够记录、存储或传输诸如可由处理器802执行的指令等计算机可读数据的任何数目的本地或远程设备或其组合。具体地,计算机可读介质804可以是或可包括半导体存储器(诸如只读存储器(“ROM”)、任何类型的可编程ROM(“PROM”)、随机存取存储器(“RAM”)、或闪存);磁存储设备(诸如软盘驱动器、硬盘驱动器、磁鼓、磁带或磁光盘);光存储设备(诸如任何类型的压缩盘或数字多功能盘);磁泡存储器;高速缓冲存储器;磁心存储器;全息存储器;记忆棒;纸带;穿孔卡;或其任何组合。计算机可读介质804也可包括传输介质及其相关联的数据。传输介质/数据的示例包括但不限于,具体化成任何形式的有线或无线传输的数据,诸如由已调制载波信号承载的已分组或未分组数据。
计算机程序806表示电子地控制对数据的预定操作的任何信号处理方法或已存储指令。一般而言,计算机程序806是根据基于组件的软件开发的公知实践被实现为软件组件、并被编码到计算机可读介质(诸如计算机可读介质804)中的计算机可执行指令。计算机程序可按照各种方式组合或分布。
在演示系统100的上下文中描述的功能/组件不限于由计算机程序的任何具体实施例来实现。相反,功能是传达或变换数据的过程,一般可由硬件、软件、固件或其组合实现或执行,并位于演示系统100的功能元件的任何组合处或可由其访问。
继续参考图8,图9是可在其中实现或使用演示系统100的全部或一部分的操作环境900的示例性配置的框图。操作环境900一般指示各种各样的通用或专用计算环境。操作环境900仅是合适的操作环境的一个示例,而不旨在对此处所述的系统和方法的使用范围或功能提出任何限制。例如,操作环境900可以是现在已知或将来开发的一种类型的计算机,诸如个人计算机、工作站、服务器、便携式设备、膝上型计算机、图形输入板、或任何其它类型的电子设备,诸如光介质播放器或另一类型的媒体播放器,或其任何方面。操作环境900例如也可以是分布式计算网络或Web服务。操作环境900的一个具体示例是诸如DVD播放器或与其相关联的操作系统等便于播放高清晰度DVD电影的环境。
如图所示,操作环境900包括或访问计算单元800的各组件,包括处理器802、计算机可读介质804以及计算机程序806。存储904包括与操作环境900特别相关联的其它或不同的计算机可读介质,诸如光盘,它由光盘驱动器906处理。作为公知且广泛可用的元件的一个或多个内部总线920可用于承载数据、地址、控制信号以及计算环境900或其元件内的、去往它们的或来自它们的其它信息。
输入接口908对计算环境900提供输入。输入可使用任何类型的现在已知或将来开发的接口,诸如用户接口来收集。用户接口可以是诸如遥控器、显示器、鼠标、笔、指示笔、跟踪球、键盘等触摸输入设备、麦克风、扫描设备和用于输入数据的所有类型的设备。
输出接口910提供来自计算环境900的输出。输出接口910的示例包括显示器、打印机、扬声器、驱动器(诸如光盘驱动器906和其它盘片驱动器)等。
外部通信接口912可用于增强计算环境900经由诸如信道信号、数据信号或计算机可读介质等通信介质与另一实体之间往返收发信息的能力。外部通信接口912可以是或可包括诸如线缆调制解调器、数据终端设备、媒体播放器、数据存储设备、个人数字助理、或任何其它设备或组件/其组合以及相关联的网络支持设备和/或软件或接口的各种元件。
图10是可结合其使用演示系统100或操作环境900的客户机-服务器体系结构1000的简化功能框图。演示系统100和/或操作环境900的一个或多个方面可表示在体系结构1000的客户机侧1002上或表示在体系结构1000的服务器侧1004上。如图所示,通信架构1003(可以是任何类型的例如有线或无线的公共或专用网络)便于在客户机侧1002与服务器侧1004之间通信。
在客户机侧1002上,可使用硬件、软件、固件或其任何组合实现的一个或多个客户机1006响应于客户机数据存储1008。客户机数据存储1008可以是计算机可读介质804,用于存储对客户机1006本地的信息。在服务器侧1004上,一个或多个服务器1010响应于服务器数据存储1012。与客户机数据存储1008一样,服务器数据存储1012可以是计算机可读介质804,用于存储对服务器1010本地的信息。
描述了用于与音频/视频内容同步地向用户演示交互式内容的交互式多媒体演示系统的各方面。交互式多媒体演示一般被描述为具有播放持续时间、可变播放速度、视频组成部分和IC组成部分。然而,可以理解,不必使用所有前述组成部分,各组成部分在被使用时也不必同时存在。在演示系统100的上下文中被描述为计算机程序的功能/组件不限于由计算机程序的任何具体实施例来实现。相反,功能是传达或变换数据的过程,一般可使用硬件、软件、固件或其任何组合来实现或执行。
尽管使用结构特征和/或方法动作专用的语言描述了此处的主题,但也可以理解,权利要求书中定义的主题不必限于上述的具体特征或动作。相反,上述的具体特征和动作是作为实现权利要求书的示例形式来公开的。
还可以理解,当一个元素被指示为响应于另一个元素时,这些元素可直接或间接耦合。此处所述的连接在实践中可以是逻辑或物理的,以实现元素之间的耦合或通信接口。连接可被实现为软件进程之间的进程间通信,或联网计算机之间的机器间通信等。
此处使用词语“示例性”指的是用作示例、实例或说明。此处被描述为“示例性”的任何实现或其各方面不必被解释为对于其它实现或其方面是优选的或有利的。
如可以理解的,可设计除上述具体实施例以外的实施例,而不背离所附权利要求书的精神和范围,此处主题的范围旨在由所附权利要求书限定。