详细描述
转向附图,其中同样的参考标号指定同样的组件,图1是交互式多媒体演示系统(“演示系统”)100的简化的功能框图。演示系统100包括媒体内容管理器102、交互式内容(“IC”)管理器104、演示管理器106、定时信号管理块108、以及混合器/呈现器110。一般而言,设计选择规定了如何实现演示系统100的特定功能。这样的功能可使用硬件、软件或固件、或其组合来实现。
在操作中,演示系统100处理交互式多媒体演示内容(“演示内容”)120。演示内容120包括媒体内容组成部分(“媒体组成部分”)122和交互式内容组成部分(“IC组成部分”)124。媒体组成部分122和IC组成部分124一般,但不一定分别由媒体内容管理器102和IC管理器104作为单独的数据流来处理。
演示系统100也便于将演示内容120作为已播放演示127向用户(未示出)演示。已播放演示127表示与由混合器/呈现器110产生且可由用户通过诸如显示器或扬声器(未示出)等设备接收的演示内容120相关联的可视和/或可听信息。为讨论起见,假定演示内容120和已播放演示127表示任何格式的高清晰度DVD电影内容。然而,可以理解,演示内容120和已播放演示127可以是现在已知或将来开发的任何类型的交互式多媒体演示。
媒体组成部分122表示演示内容120中的传统视频、音频或数据组成部分。例如,电影一般具有一个或多个版本(例如,针对成年观众的一个版本、以及针对年轻观众的一个版本);一个或多个标题131,其具有与每一标题相关联的一个或多个章节(未示出)(标题在以下结合演示管理器106进一步描述);一个或多个音轨(例如,电影可使用一种或多种语言来播放,带有或不带有字幕);以及诸如导演的评论、附加镜头、预告片等。可以理解,标题与章节之间的区别纯粹是逻辑上的区别。例如,单个可感知的媒体片段可以是单个标题/章节中的一部分,或可由多个标题/章节组成。由内容创作源来确定适用的逻辑区别。也可理解,尽管媒体组成部分122被称为电影,但媒体组成部分122实际上可以是视频、音频、数据或其任何组合。
形成媒体组成部分122的媒体样本集(例如,视频、音频或数据样本集)被称为剪辑123(剪辑123被示为在媒体组成部分122、媒体内容管理器120和播放列表128内)。参考媒体内容管理器120,与剪辑123相关联的信息由一个或多个媒体处理流水线159来处理(为示例起见示出了两个媒体处理流水线,但是任何数目都是可能的)。在特定的媒体处理流水线159内,与剪辑123相关联的信息从媒体源160接收,并在解码器块161处多路分解、解码和/或解密。
特定媒体源160是从其中导出或获得视频、音频或数据的任何设备、位置或数据。媒体源的示例包括但不限于,网络、硬盘驱动器、光学媒体、备用物理盘、以及引用特定视频、音频或数据的存储位置的数据结构。一般而言,任何计算机可读介质可用作媒体源(计算机可读介质将在以下结合图7进一步讨论)。
每一媒体源160具有与其相关联的一个或多个媒体源特性162。媒体源特性是与特定媒体源相关联的静态参数。这种静态参数的示例包括但不限于:媒体源的位置;编码器-解码器对(“编解码器”)参数或设置(例如,编码/解码格式或协议,诸如WMV、H.264、MPEG、VC1、图片组(“GOP”)大小设置、压缩比设置、或质量设置);或加密参数或设置(例如,加密类型,诸如对称或非对称、加密复杂度、或加密格式或协议)。可以理解,也可定义或识别与特定媒体源相关联的其它静态参数。
解码器块161表示用于从接收自媒体源160的信息中检索可呈现视频、音频、或数据内容的任何设备、技术或步骤。解码器块161可包括例如编解码器、多路分解器或解密器。解码器块161及其组件可使用硬件、软件、固件或其任何组合来实现。尽管示出了解码器和媒体源之间的一对一关系,但是可以理解,一个解码器可服务多个媒体源,反之亦然。例如,某些市场上可买到的DVD播放器仅包括一个解码器。
媒体内容数据(“媒体数据”)132是与媒体组成部分122相关联的、准备好由媒体内容管理器102呈现的并被发送到混合器/呈现器110的数据。媒体数据集(例如,帧)134一般对每一活动剪辑123包括对该剪辑的一部分的呈现。特定媒体数据集中呈现的剪辑的精确部分或量可以基于若干因素,诸如该剪辑的视频、音频或数据内容的特性,或一个或多个媒体源特性162。媒体内容管理器120具有基于包括媒体组成部分122和/或IC组成部分124(以下讨论)的各种剪辑的标识和调度的动态媒体处理负载。
再次参考演示内容120,IC组成部分124包括交互式对象125以及用于演示可视或可听对象的任何指令(被示为应用程序155,并在以下进一步讨论),交互式对象是用户可选择的可视或可听对象,它可任选地可与媒体组成部分122并发地演示。交互式对象125可以是静态或动画的。交互式对象的示例包括视频样本或剪辑、音频样本或剪辑、图形、文字及其组合等。
交互式对象125源自一个或多个源(未示出)。源可以是可从中导出或获取交互式对象的任何设备、位置或数据。交互式对象125的源的示例包括但不限于,网络、硬盘驱动器、光学介质、备用物理盘、以及引用特定交互式对象的存储位置的数据结构。交互式对象125的格式的示例包括但不限于,可移植网络图形(“PNG”)、联合图片专家组(“JPEG”)、运动图片专家组(“MPEG”)、多图像网络图形(“MNG”)、音频视频交错(“AVI”)、可扩展标记语言(“XML”)、超文本标记语言(“HTML”)、可扩展HTML(“XHTML”)、可扩展样式表语言(“XSL”)以及WAV。
应用程序155提供演示系统100用于向用户演示交互式对象124的机制。应用程序155表示电子地控制对数据的预定操作的任何信号处理方法或已存储的指令。为讨论起见,假定IC组成部分124包括三个应用程序155,它们将在以下结合图2和3来讨论。第一个应用程序与电影的视觉方面并发演示提供具有多个用户可选择项的菜单的某些交互式对象;第二个应用程序演示了提供可用于标识和/或跟随出现在电影中的一个或多个项(例如,人、汽车、建筑物或产品)的图形覆盖物(诸如圆圈)的一个或多个交互式对象;第三个应用程序演示诸如动画缩略图等媒体剪辑(称为“脚本剪辑”)
交互式内容数据(“IC数据”)134是与IC组成部分124相关联的数据,它被准备来由IC管理器104呈现并被传输给混合器/呈现器110。每一应用程序具有一相关联的队列(未示出),该队列保存与呈现应用程序相关联的一个或多个工作项(未示出)。
演示管理器106被配置成与媒体管理器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也是有用的(一个示例性媒体时间线142在以下结合图6进一步讨论)。
演示管理器106向媒体内容管理器102和IC管理器104提供信息,包括但不限于关于演示时间线130的信息。基于来自演示管理器206的输入,媒体内容管理器102准备好媒体数据132以便呈现,IC管理器104准备好IC数据134以便呈现。在一个实现中,演示管理器106控制媒体处理流水线159。
定时信号管理块108产生各种定时信号158,这些信号被用于控制媒体内容管理器102和IC管理器104分别对媒体数据132和IC数据134进行的准备和产生的定时。具体地,定时信号158被用于实现媒体数据132和IC数据134的帧级同步。定时信号管理块108和定时信号158的细节将在以下结合图4进一步讨论。
混合器/呈现器在视频平面(未示出)中呈现媒体数据132,并在图形平面(未示出)中呈现IC数据134。图形平面一般,但不一定被覆盖在视频平面上以便为用户产生已播放演示127。
继续参考图1,图2是播放列表128内的标题131的示例演示时间线130的图示。时间在水平轴220上示出。关于媒体组成部分122(示出了剪辑123)和IC组成部分(示出了演示交互式对象125的应用程序155)的信息在垂直轴225上示出。
关于媒体组成部分122,示出了四个剪辑123:第一媒体剪辑(“媒体剪辑1”)230、第二媒体剪辑(“媒体剪辑2”)250、第三媒体剪辑(“媒体剪辑3”)251以及第四媒体剪辑(“媒体剪辑4”)253。媒体剪辑1230可经由媒体处理流水线1(图1中示出)从0秒播放到10秒,媒体剪辑2250可经由媒体处理流水线2(也在图1中示出)从8秒播放到15秒,媒体剪辑3251可经由媒体处理流水线1从10秒播放到20秒,而媒体剪辑4253可经由媒体处理流水线2从30秒播放到40秒。播放列表128没有调度任何媒体内容在20秒和30秒之间播放,然而应用程序155可演示脚本剪辑255以经由媒体处理流水线1在20秒和30秒之间播放。脚本剪辑是诸如动画缩略图等媒体剪辑,它一般不包括在播放列表中,但可任选地在已播放演示127内不时地(诸如在没有调度任何媒体内容来播放时)经由应用程序来调用。
关于如上结合图1所述的IC组成部分124,一种应用程序负责演示提供菜单280的用户可选择项(例如,具有相关联的文本或图形的按钮)的某些交互式对象。另一应用程序负责演示提供图形覆盖物290的一个或多个交互式对象。如图所示,菜单280与媒体剪辑1到4并发显示,并且图形覆盖物290可与媒体剪辑1230和媒体剪辑2的一部分并发显示。第三应用程序负责在没有调度任何媒体内容来演示时演示脚本剪辑255(如图所示,脚本剪辑255可在20秒和30秒之间播放)。
沿水平轴220的其中可向用户演示标题131的特定时间量被称为标题131的播放持续时间292。播放持续时间292内的特定时间被称为标题时间。在演示时间线130上示出了七个标题时间(“TT”)——TT1 293、TT2 294、TT3 295、TT4 296、TT5 297、TT6 298和TT7 299。因为标题可被播放一次或一次以上(例如,以循环方式),所以基于标题131的一次重复来确定播放持续时间292。播放持续时间292可关于任何所需基准来确定,包括但不限于,预定播放速度(例如,正常即1x播放速度)、预定帧速率或预定的定时信号状态。播放速度、帧速率和定时信号将在以下结合图4进一步讨论。
可以理解,诸如显示技术和关于播放序列和每一标题的剪辑和交互式对象之间的定时关系的特定规则等实现专用因素都会影响标题的播放持续时间及其中的标题时间的精确值。术语播放持续时间和标题时间旨在包括所有这样的实现专用细节。
尽管可演示与IC组成部分124相关联的内容的标题时间一般是预定的,但可以理解,在用户与这样的内容交互时所采取的动作可仅基于播放已播放演示127时用户的输入来确定。例如,用户可在已播放演示127的播放期间选择、激活或停用某些应用程序、交互式对象和/或与之相关联的附加内容。
也在此处定义和讨论播放持续时间292内的其它时间和/或持续时间。媒体演示间隔240由播放持续时间292的开始和结束时间来定义,在此期间可播放与特定剪辑123相关联的特定内容。例如,媒体剪辑1230具有由开始标题时间TT1 293和结束TT3 295定义的演示间隔240,媒体剪辑2 250具有由开始标题时间TT2 294和结束标题时间TT4 296定义的演示间隔240,媒体剪辑3 251具有由开始标题时间TT3 295和结束标题时间TT5 297定义的演示间隔240,媒体剪辑4 253具有由开始标题时间TT6 298和结束标题时间TT7 299定义的演示间隔240,而脚本剪辑255具有由开始标题时间TT5 297和结束标题时间TT6 298定义的演示间隔240。
预呈现时间220是超前于基于演示时间线130可播放特定剪辑123的标题时间一基于可变时间偏移值的量的标题时间(或其间隔)(时间偏移值和预呈现时间220的确定在以下结合图5和6来讨论)。
与应用程序155相关联的时间间隔(诸如应用程序演示间隔和应用程序播放持续时间)在以下结合图3来定义并讨论。
继续参考图1和2,图3是单个应用程序155的功能框图。应用程序155一般表示负责演示交互式对象280、290和255(在图2中示出)的应用程序。应用程序155包括指令304(以下进一步讨论)。应用程序155具有与之相关联的应用程序播放持续时间320、以及一个或多个应用程序演示间隔321。
应用程序播放持续时间320是特定的时间量,指的是其中可向已播放演示127的接收方演示和/或可由其选择与应用程序155相关联的交互式对象125的一定量(一部分或全部)的播放持续时间292。在图2的上下文中,例如负责菜单280的应用程序155具有由TT1 293和TT7 299之间的时间量组成的应用程序播放持续时间。负责图形覆盖物290的应用程序具有由TT1 293与TT3 295之间的时间量组成的应用程序播放持续时间。负责脚本剪辑255的应用程序具有由TT5 297和TT6298之间的时间量组成的应用程序播放持续时间。
当与特定应用程序相关联的应用程序播放持续时间320在演示时间线上概念化时获取的由开始和结束标题时间所定义的间隔被称为应用程序演示间隔321。例如,参考图2,负责菜单280的应用程序具有开始于TT1 293并结束于TT7 299的应用程序演示间隔,负责图形覆盖物290的应用程序具有开始于TT1 293并结束于TT3 295的应用程序演示间隔,而负责脚本剪辑255的应用程序具有开始于TT5 297处并结束于TT6 298的应用程序演示间隔。
在某些情况中,应用程序155可具有一个以上的页(页未示出)。页是在特定应用程序播放持续时间320和/或应用程序演示间隔321内可同时演示的一个或多个交互式对象的逻辑分组。与特定页相关联的交互式对象可并发地、串行地或按其组合来演示。与给定标题相关联的应用程序和页的数目,以及与每一应用程序或页相关联的交互式对象一般是逻辑上的区别,这是设计选择的问题。例如,对特定初始页面的指定不是必需的,可并发演示应用程序的一个以上页面,或者能以无页面(或不包含任何内容的初始页面)来启动应用程序。应用程序的页面可以在保持应用程序和脚本完整的同时加载和卸载。当期望管理(例如,限制)与应用程序相关联的、在应用程序执行期间被加载到存储器内的资源的数目或数量时,可使用多个页。
当指令304被执行时,它基于用户输入执行关于呈现与应用程序155相关联的交互式对象125的任务(以及其它任务)。一种类型的用户输入(或其结果)是用户事件。用户事件是由已播放演示127的接收方启动的涉及IC组成部分124的动作或发生的事情。用户事件一般,但不一定是异步的。用户事件的示例包括但不限于,用户与已播放演示127内的交互式对象的交互,诸如对菜单280内的按钮的选择、或对与图形覆盖物290相关联的圆圈的选择、或脚本剪辑255的调用。这样的交互可使用现在已知或将来开发的任何类型的用户输入设备来进行,包括键盘、遥控器、鼠标、指示笔、或语音命令。可以理解,应用程序155可响应除用户事件以外的事件,诸如系统事件、文档对象模型事件或其它类型的事件。
在一个实现中,指令304是编码在计算机可读介质(以下结合图8和9进一步描述)内的计算机可执行指令。在此处所述的示例中,使用脚本308或标记元素303来实现指令304。尽管可单独使用脚本或标记元素中的任何一个,但一般而言,脚本和标记元素的组合允许创建高清晰度DVD电影的一组综合的交互式能力。
脚本308包括以非声明性程序设计语言,诸如命令性程序设计语言编写的指令304。命令性程序设计语言按照将由处理器执行的命令的序列来描述计算。在使用脚本308的大多数情况中,使用脚本来响应用户事件。然而,脚本可用于其它上下文中,诸如处理单独使用标记元素不容易或不能高效实现的问题。这样的上下文的示例包括处理脚本剪辑255的演示的各方面、系统事件、状态管理和资源管理(例如,访问高速缓存的或持久存储的资源)。在一种实现中,脚本308是如由国际欧洲计算机制造协会(ECMA Internationa)在ECMA-262规范中定义的ECMAScript。落入ECMA-262中的常用的脚本化程序设计语言包括JavaScript和Jscript。在某些设置中,可能期望使用ECMAScript 262的子集,诸如ECMA-327来实现308。
标记元素303表示以声明性程序设计语言,诸如可扩展标记语言(“XML”)编写的指令304。在XML中,元素是XML文档内使用开始标签和结尾标签定义的逻辑信息单元。XML文档是由被称为实体(也被称为容器)的存储单元组成的数据对象,这些存储单元包含已经解析或未解析的数据。已解析的数据由字符组成,其中某些字符形成字符数据,某些字符形成标记。标记对文档的存储布局和逻辑结构的描述编码。在XML文档中存在一个根元素,其任何部分都不在任何其它元素的内容中出现。对所有的其它元素,开始标签和结尾标签位于其它元素的内容内,彼此嵌套。
XML模式是一类XML文档的句法的定义。某些XML模式是由万维网联盟(“W3C”)定义的。其它XML模式由DVD论坛发布以与遵照用于高清晰度视频的DVD规范以及其它用途的XML文档。可以理解,用于高清晰度DVD电影的其它模式以及用于其它交互式多媒体演示的模式都是可能的。
在较高层次上,XML模式包括:(1)全局元素声明,它将元素名与元素类型相关联,以及(2)类型定义,它定义该类型元素的属性、子元素和字符数据。元素的属性使用名/值对来指定元素的特定特性,一个属性指定单个元素特性。
继续参考图1-3,图4是更详细示出定时信号管理块108和定时信号158的各个组件的简化的功能框图。
定时信号管理块108负责处理用于确定演示系统100内的特定时间或持续时间的时钟和/或定时信号。如图所示,由时钟源402以预定速率产生连续的定时信号401。时钟源402可以是与处理系统,诸如通用计算机或专用电子设备相关联的时钟。由时钟源402产生的定时信号401一般如真实世界的时钟一样连续改变——在真实时间的一秒钟内,时钟源402以预定速率产生相当于一秒钟的定时信号401。
定时信号401被输入到IC帧速率计算器404、媒体帧速率计算器406、时间基准计算器408和时间基准计算器490。IC帧速率计算器404产生基于定时信号401的定时信号405。定时信号405被称为“IC帧速率”,它表示IC管理器104产生IC数据134的帧的速率。IC帧速率的一个示例性值是每秒30帧。然而,IC帧速率405的频率(被称为“演示时钟频率”)可动态变化。还可理解,演示系统100的各组件内的处理负载可基于演示时钟频率而变化。IC帧速率计算器404可减少或增加定时信号401的速率来产生定时信号405。
IC数据134的帧一般根据相关用户事件对每一有效应用程序155和/或其页包括与有效应用程序和/或页相关联的每一交互式对象125的呈现。为示例性的目的,有效应用程序是具有基于演示时间线130播放持续时间292的当前标题时间落入其中的应用程序演示间隔321的应用程序。可以理解,应用程序可具有一个以上的应用程序演示间隔。也可理解,此处不对基于用户输入或资源可用性的应用程序状态进行特定区分。
媒体帧速率计算器406还基于定时信号401来产生定时信号——定时信号407。定时信号407被称为“媒体帧速率”,它表示媒体内容管理器102产生媒体数据132的帧的速率。媒体帧速率可以与IC帧速率405相同或不同。媒体帧速率的一个示例性值为每秒24帧。媒体帧速率407的频率可动态变化;然而,媒体帧速率计算器406可减少或增加定时信号401的速率以产生定时信号407。
时钟源470产生定时信号471,它管控从媒体源160产生与剪辑123相关联的信息的速率。时钟源470可以是与时钟402相同的时钟,或基于与时钟源402相同的时钟。或者,时钟470和402可完全不同和/或具有不同的源。同样,媒体帧速率407可以与定时信号471相同,或可基于与其相同的值,或者定时信号可以不同。
时钟源470基于媒体状态指示符信号481来调整定时信号471的速率(被称为“媒体时钟频率”),信号481由媒体状态指示符块480产生。媒体状态指示符信号481表示来自特定媒体源160(图1所示)的视频、音频或数据信息的特定检索状态。这一检索状态可以直接或间接基于用户输入或播放列表128(也在图1中示出)的内容。媒体时钟频率也可基于诸如编码或解码速率等媒体源特性162变化。由此,媒体时钟频率可在各剪辑之间变化。
某些用户输入改变已播放演示127的播放速率,且因此改变从特定媒体源160检索视频、音频或数据信息的速度。例如,已播放演示127可按正常速度在前向方向上行进,并且也可按比快于或慢于正常速度的速度在前向和反向两个方向上行进。可以理解,正常速度是一相对术语,并且正常速度可以在各演示之间以及各剪辑之间变化。
来自特定媒体源的视频、音频或数据信息的检索状态可基于已播放演示127的各种播放速度来定义。例如,正常播放检索状态被定义为在已播放演示127以正常速度在前向方向上行进时出现。慢进检索状态被定义为在已播放演示127以比实时慢的速度在前向方向上行进时出现。快进检索状态被定义为在已播放演示127以比实时快的速度在前向方向上行进时出现。慢退检索状态被定义为在已播放演示127以比实时慢的速度在反向方向上行进时出现。快退检索状态被定义为以比实时快的速度在反向方向上行进时出现。
在快退和快进检索状态期间,某些媒体内容的播放通常被跳过。其它用户输入可导致某些内容的播放被跳过,诸如当用户从电影的一部分跳转到另一部分(例如,通过从诸如菜单280等交互式菜单中作出选择)时。用户也可在各种位置以及在各种时间开始和停止电影。
也可定义与播放同来自特定媒体源160的特定剪辑123相关联的视频、音频或数据信息的定位和/或开始相关联的检索状态。例如,关闭状态被定义为在从特定媒体源160中读出与特定剪辑123相关联的视频、音频或数据信息之前出现。就绪状态被定义为在来自特定媒体源160的视频、音频或数据信息的第一组样本被解码并准备好被呈现时出现。预卷状态被定义为在关闭状态和就绪状态之间当采取步骤来准备来自特定媒体源160的视频、音频或数据信息的第一组样本来呈现时出现。这些步骤包括但不限于,从特定媒体源160读取信息、以及多路分解、解码和/或解密该信息。可以理解,来自特定媒体源的信息的第一组样本不必是在特定剪辑123内出现的第一组样本,并且如何定义第一组样本可基于诸如编码或加密格式或协议等因素而在各演示之间变化。
已经过剪辑播放时间452表示在与活动剪辑123相关联的特定演示间隔240内经过的时间量。此处为讨论的目的,活动剪辑是具有基于演示时间线130播放持续时间292的当前标题时间落入其中的演示间隔240(图2中示出)的剪辑。时间基准计算器454接收时间基准452,并产生媒体时间基准455。媒体时间基准455表示基于一个或多个时间基准452已经经过的播放持续时间292的总量。一般而言,当两个或多个剪辑正并发播放时,仅使用一个时间基准452来产生媒体时间基准455。用于确定媒体时间基准455的特定剪辑以及如何基于多个剪辑确定媒体时间基准455是实现偏好的问题。
时间基准计算器408接收定时信号401、媒体时间基准455以及媒体状态指示符信号481,并产生标题时间基准409。标题时间基准409表示基于对时间基准计算器408的一个或多个输入、在播放持续时间292内已经经过的时间总量。
时间基准计算器490接收定时信号401和标题时间基准409,并产生应用程序时间基准492和页时间基准494。单个应用程序时间基准492表示,参考连续定时信号401,特定应用程序播放持续时间320(结合图3示出并讨论)中已经过的时间量。当标题时间基准409指示当前标题时间落入特定应用程序的应用程序演示间隔321内时,确定应用程序时间基准492。在应用程序演示间隔321结束时,应用程序时间基准492复位(例如,变为不活动或重新开始)。应用程序时间基准492也可在其它情况中复位,诸如响应于用户事件或当进行特效播放时。
页时间基准494参考连续定时信号401表示,应用程序的特定页中已经过的时间量。当标题时间基准409指示当前标题时间落入适用的页演示间隔(未示出)内时,确定应用程序的特定页的页时间基准494。页演示间隔是应用程序演示间隔321(图3中示出)的子间隔。页时间基准494可在适用的页演示间隔(未示出)结束时复位。页时间基准494也可在其它情况中复位,诸如响应于用户事件或当进行特效播放时。可以理解,也可定义交互式对象演示间隔,它可以是应用程序演示间隔321和/或页演示间隔的子间隔。
表1示出了在演示系统100播放已播放演示127期间的示例性事件,以及这样的事件对应用程序时间基准492、页时间基准494、标题时间基准409和媒体时间基准455的影响。
事件 |
应用程序时间492 |
页时间494 |
标题时间409 |
媒体时间455 |
电影开始 |
不活动,除非/直到应用程序有效 |
不活动,除非/直到适用页有效 |
开始(例如,位于0处) |
开始(例如,位于0处) |
下一剪辑开始 |
不活动,除非/直到应用程序有效 |
不活动,除非/直到适用页有效 |
基于之前的标题时间和经过的剪辑播放时间来确定 |
复位/重新开始 |
下一标题开始 |
不活动,除非/直到应用程序有效 |
不活动,除非/直到适用页有效 |
复位/重新开始 |
复位/重新开始 |
应用程序变为有效 |
开始 |
当适用页有效时开始 |
继续/没有影响 |
继续/没有影响 |
特效播放 |
如果适用的应用程序在所跳转到的标题时间有效,则复位/重新开始;否则变为不活动 |
如果适用的页在所跳转到的标题时间有效,则复位/重新开始;否则变为不活动 |
基于所跳转到的位置,前进或后退至对应于演示时间线上已经过的播放持续时间的时间 |
前进或后退至对应于标题内活动剪辑在跳转到的位置上的已经过的剪辑播放时间的时间 |
改变播放速度N倍 |
继续/没有影响 |
继续/没有影响 |
以N倍速度经过 |
以N倍速度经过 |
电影暂停 |
继续/没有影响 |
继续/没有影响 |
暂停 |
暂停 |
电影恢复 |
继续/没有影响 |
继续/没有影响 |
恢复 |
恢复 |
表1
能够访问各个时间线、时钟源、定时信号和定时信号基准增强了演示系统100实现已播放演示127内的IC数据124和媒体数据132的帧级同步以及对构成媒体成分组成部分122的剪辑的无假信号演示区分优先级的能力。
继续参考图1-4,图5是用于增强诸如演示系统100等演示系统以无假信号的方式来演示诸如在图2的演示时间线130上示出的剪辑123等特定演示的媒体内容的能力的一种方法的流程图。
该方法在框500处开始,并在框502处继续,其中在第一时间,对来自第一媒体源的第一组媒体样本的播放开始。接着,在框504处,标识来自第二媒体源的、可在第二时间播放的第二组媒体样本。在框506处,查明第二媒体源的静态特性。在框508处,也查明演示系统的动态特性。接着,在框510处,基于该静态和动态特性确定时间偏移值。最后,在框512处,在基于该时间偏移值的时间处预呈现该第二组媒体样本。
出于示例的目的,图5的流程图的方法在演示系统100的上下文中讨论,尤其是参考了可根据演示时间线130(图2所示)来向用户演示的媒体组成部分122和应用程序155。
参考图2,期望在其中处理和解码资源有限的环境中确保媒体剪辑1 230、媒体剪辑2 250、媒体剪辑3 251、媒体剪辑4 253的无假信号播放,并最大化脚本剪辑255的播放时间。在一个实现中,演示系统100具有一个中央处理单元、一个图形处理单元、以及一个解码器,然而其它的安排也是可能的。因此,每一剪辑的至少一部分的就绪检索状态(由媒体状态指示符信号481表示,结合图4示出并讨论)在演示时间线130上调度该剪辑来演示的标题时间之处或之前是合乎需要的。就这一点而言,重要的是留出适量时间来完成预卷检索状态(也结合图4讨论),但是同样重要的是最小化对于诸如脚本剪辑255或其它剪辑的播放等在演示系统中发生的其它重要活动的不恰当的负面影响。在特定剪辑的预卷检索状态中发生的预呈现活动可导致另一剪辑被停止。可最小化不恰当的负面影响的一种方式是在调度该剪辑来演示的标题时间处或在接近该时间处完成预卷检索状态。
在一种情况下,期望的是在TT3 295之处或之前到达媒体剪辑3 251的至少一部分的就绪状态,TT3 295是在经由媒体流水线1播放媒体剪辑1 230和经由媒体流水线2播放媒体剪辑3 251之间发生转换时的时间。由于TT3 295处的转换在媒体剪辑2 250正经由媒体流水线播放(且因此有一现有媒体处理负载)时发生,因此等待直到TT3 295处或非常接近TT3 295处进入到媒体剪辑3 251的一部分的预卷检索状态会导致用户在TT3处经历假信号。例如,如果视频被调度在TT3处播放,则该视频可暂停几秒,或者某些视频可能被丢弃;如果音频被调度在TT3处播放,则可能有几秒的静音,或者某些音频可能被丢弃。假信号可关于媒体剪辑2250、媒体剪辑3 251、或媒体剪辑2 250和媒体剪辑3 251两者的播放出现。
在另一种情况下,期望的是在TT6 298时或之前到达经由媒体流水线2播放的媒体剪辑4 253的至少一部分的就绪状态。由于在TT6 298处的转换是在脚本剪辑255正经由媒体流水线1播放时发生的,因此等待直到TT6 298处或非常接近TT6 298处入用于媒体剪辑4 253的预卷检索状态会导致用户在TT6处经历假信号。然而,过快进入媒体剪辑4 253的一部分的预卷检索状态会具有减少脚本剪辑255的播放时间的不合需要的效应。
因此,期望的是确定媒体剪辑3 251和媒体剪辑4 253的至少一部分的预呈现时间220。当对演示内容120/已播放演示127的播放在前向方向上发生时,媒体剪辑3 251的预呈现时间在TT3 295之前出现,并且媒体剪辑4 253的预呈现时间220在TT6 298之前出现。可以理解,也可对在反向方向上发生的播放提供预呈现时间。
预呈现时间220一般是基于一时间偏移值来确定的,该时间偏移值在先前的一个或多个剪辑的播放期间被计算一次或多次。在一个实现中,与确定时间偏移值相关联的一个或多个步骤可在先前剪辑的播放开始时执行,并且一个或多个步骤可在先前剪辑播放期间当用于呈现下一剪辑的时间即将到来时(但是在到达预呈现时间之前)在其它时间重复。
时间偏移值的一方面是通过查明可从其中接收随后可播放的剪辑的媒体源160的一个或多个媒体源特性162(图1所示)来确定的。诸如媒体源的位置、编解码器参数或设置(诸如编码或解码格式或协议、GOP大小设置、压缩设置或质量设置)、或加密参数或设置(诸如加密类型、格式或协议)等媒体源特性162影响完成特定剪辑或其部分的预卷检索状态所需的处理或解码资源(且因此影响时间)。要解码的剪辑的部分的大小也是会影响完成该预卷检索状态所需的时间的一个静态特性。
在确定用于媒体剪辑3 251和媒体剪辑4 253的部分的预呈现时间的情况中,分别查明媒体源1和媒体源2的一个或多个媒体源特性162。在一个实现中,媒体源1的一个或多个媒体源特性162被储存在诸如表等数据结构中。媒体源2的一个或多个媒体源特性162也被储存在诸如表等数据结构中。储存媒体源1和媒体源2的媒体源特性的数据结构可以是相同的数据结构或不同的数据结构。该数据结构由媒体内容管理器102访问或储存并传送到演示管理器106。媒体内容管理器102可传递数据结构本身,或可传递具有基于该数据结构的初始或默认值的时间偏移值。或者,演示管理器106(或演示系统100的另一组件)直接访问媒体源特性和/或数据结构,并确定初始时间偏移值。
时间偏移值的第二方面是通过查明演示系统100的一个或多个动态特性来确定的。动态特性表示在演示系统100的操作期间可能改变的、影响处理或解码操作的条件。动态特性的示例包括但不限于,媒体时钟频率、演示时钟频率、媒体处理负载、通用处理负载、以及媒体状态指示符信号481的值。
在确定用于媒体剪辑3 251和媒体剪辑4 253的预呈现时间的情况下,演示系统100的一个或多个动态特性可影响(例如,增加)参考特定媒体源的静态特性建立的初始时间偏移值。一般而言,当演示系统100内的处理或解码负载较高时,需要更多时间来完成预卷检索状态,并且增加了时间偏移值。
处理和/或解码负载在各种情形中增加,诸如当媒体处理负载增加时(例如,多个剪辑并发播放和/或媒体时钟频率较高)、当图形处理负载增加时(例如,演示时钟频率较高)、当通用处理负载增加时(例如,诸如反病毒程序等其它程序在并发运行)、以及当媒体状态指示符信号481指示除正常播放检索状态之外的检索状态时(例如,已播放演示以比正常速度快或慢的速度在前向或反向方向上行进)。
接收影响媒体组成部分122的播放速度的用户输入(诸如特效播放、暂停、慢进、快进、慢退或快退)会加重以无假信号的方式来演示媒体组成部分122的问题,因为与媒体组成部分122以正常速度行进时相比,使用了更多处理和解码资源以在媒体组成部分122的播放速度受影响期间预测并准备来自媒体源160的活动剪辑的特定部分。
图6是示例性媒体时间线142(参考媒体帧速率407)的示意图,它示出了与以除正常速度之外的速度在前向方向上播放媒体内容122相关联的特定处理步骤。在媒体时间线142上指示了各个帧号演示时间602。帧号演示时间602表示播放持续时间292(图2中示出)内可演示媒体数据集132的各个编号的帧的时间。如图所示,帧号演示时间602以基于媒体帧速率407的速率发生,该速率也定义了各个帧号演示时间602之间的周期性媒体时间间隔604的持续时间。注意,媒体帧速率407不必与编码特定剪辑123的帧速率相同,然而媒体时钟频率可基于用于特定帧的编码帧速率改变。IC帧速率405(未示出)被假定为每秒30帧(然而演示时钟频率也可动态改变)。
媒体时间线142上示出了播放持续时间292的当前已经过播放时间608。当前已经过播放时间608可以是例如标题时间409的当前值。还示出了下一可演示帧号演示时间614。下一可演示帧号演示时间614表示与可向用户演示的下一帧号(与当前已经过播放时间709/标题时间409相关联的帧号之后)相关联的帧号演示时间602。可以理解,下一可演示帧号可以是基于播放列表208的下一连续帧号,或者可以是离开与当前已经过播放时间608相关联的帧号有一个或多个帧号演示时间602的帧号。在正常播放速度期间,通过将基于IC帧速率407的量加到当前IC演示时间710上来选择后续IC演示时间712。
然而,当媒体状态指示符信号481指示一播放状态与正常播放速度不同时(例如,快进或快退),查明下一可演示帧号时间614的一种方式是基于播放速度和媒体帧速率407来预测播放持续时间292中除当前已经过播放时间608/标题时间409以外的已经经过的已经过时间量620。
在一种实现中,通过估计自当前已经过播放时间609/标题时间409处的媒体内容演示以来媒体时间线142上经过了多少预测的帧号演示时间602来计算所预测的已经过时间量620。例如,可通过将一倍数值加到当前已经过播放时间608上来计算所预测的已经过时间量620。该倍数值通过将播放速度因数(取决于播放速度改变的方向,它可以是正数或负数)乘以帧速率因数来获取。播放速度因数通过将表示播放速率的值除以媒体帧速率407来获取。帧速率因数通过将媒体帧速率407除以IC帧速率405来获取。
然后,使用该预测的已经过时间620的量来定位将成为下一可演示帧号演示时间614的特定帧号演示时间602。通常,在各种播放速度下,可在预测的已经过时间620的量(以及与其相对应的帧号演示时间602)与相应的下一可演示帧号演示时间614之间观察到各种模式。识别这些模式可减少在每一帧号演示时间602执行计算的需求。模式可使用预定表或其它数据结构来表示,它可用于基于特定的帧号演示时间602来查找下一帧号演示时间614。以此方式来使用预定数据结构或表,可跳过某些帧的呈现和其它调节。此外,可并发处理多个媒体时间线(例如,在其中正播放一个以上剪辑的情况中)。
再次参考图5的流程图,可以看到,准确地解决演示系统100的一个或多个动态特性有助于确定时间偏移值(且因此确定预呈现时间220),这允许在媒体剪辑被调度播放的时间或在该时间附近完成对于即将到来的媒体剪辑的预卷和就绪检索状态。在确定用于媒体剪辑3 251和媒体剪辑4 253的预呈现时间的情况下,时间偏移值可在存在一个或多个动态特性的情况下增加以提供用于完成预卷检索状态的更多时间,这些动态特性诸如演示时钟频率、媒体时钟频率或由媒体状态指示符信号581指示的当前检索状态。
在一个实现中,用于确定用于特定剪辑的预呈现时间220的时间偏移值经由演示管理器106和媒体内容管理器102之间的协商来获得。演示管理器106以参考即将到来的剪辑的媒体源的一个或多个静态特性(在一个实现中经由诸如表等一个或多个数据结构从媒体内容管理器102接收或查明)确定的初始或默认时间偏移值开始。然后,演示管理器106基于一个或多个动态特性来调整初始时间偏移值(当前剪辑的播放期间的一个或多个时间)。经调整的时间偏移值被传递到媒体内容管理器102,它基于当前媒体处理负载来进一步调整该时间偏移值,并将该进一步调整的时间偏移值传递到演示管理器106。然后,演示管理器106基于该进一步调整的时间偏移值指示媒体内容管理器102在特定预呈现时问220将即将到来的剪辑置于预卷检索状态。其它实现也是可能的。在一个替换实现中,如果媒体内容管理器102知道即将到来的剪辑,则媒体内容管理器102可直接确定预呈现时间。在另一替换实现中,演示系统100的单个组件可确定时间偏移值和/或预呈现时间。
图5所示的过程可在诸如以下结合图7讨论的处理器702等一个或多个通用、多用途或单用途处理器中实现。除非具体指明,否则此处所描述的方法不被约束于特定的顺序或序列。另外,所描述的方法或其元素中的某一些可并发发生或执行。
图7是示出可用于实现演示系统100的各种功能组件、可由这些组件访问、或可被包括在这些组件中的特定功能组件的通用计算单元700的框图。计算单元700的一个或多个组件可用于实现IC管理器104、演示管理器106、以及媒体内容管理器102,或可由其访问,或可被包括在其中。例如,图7的一个或多个组件可被打包在一起或可分开以用各种方式来(全部或部分地)实现演示系统100的功能。
处理器702对计算机可读介质704和计算机程序706作出响应。处理器702可以是真实或虚拟处理器,它通过执行计算机可执行指令来控制电子设备的功能。处理器702可以在汇编、编译或机器级上执行指令以实现特定过程。这些指令可使用源代码或任何其它已知的计算机程序设计工具来创建。
计算机可读介质704表示任何数目和组合的能够对诸如可由处理器702执行的指令等计算机可读数据进行记录、存储或传输的任何形式的现在已知或将来开发的本地或远程设备。具体地,计算机可读介质704可以是,或可包括半导体存储器(例如,诸如只读存储器(“ROM”)、任何类型的可编程ROM(“PROM”)、随机存取存储器(“RAM”)、或闪存);磁存储设备(诸如软盘驱动器、硬盘驱动器、磁鼓、磁带、或磁光盘);光学存储设备(诸如任何类型的紧致盘或数字多功能盘);磁泡存储器;高速缓冲存储器;磁心存储器;全息存储器;记忆棒;纸带;穿孔卡;或其任何组合。计算机可读介质704还可包括传输介质以及与其相关联的数据。传输介质/数据的示例包括但不限于,以任何形式的有线或无线传输体现的数据,诸如由已调制载波信号承载的分组化或未分组化数据。
计算机程序706表示电子地控制对数据的预定操作的任何信号处理方法或存储指令。一般而言,计算机程序706是根据用于基于组件的软件开发的公知实践被实现为软件组件、并被编码到计算机可读介质中(诸如计算机可读介质704)的计算机可执行指令。计算机程序可用各种方式来组合或分布。
在演示系统100的上下文中描述的功能/组件不限于由计算机程序的任何具体实施例的实现。相反,功能是传送或变换数据的进程,并且一般可由位于演示系统100的功能元件的任何组合处或可由其访问的硬件、软件、固件或其任何组合来实现或在其中执行。
继续参考图7,图8是其中可实现或使用演示系统100的部分或全部的操作环境800的示例性配置的框图。操作环境800一般指示了各种各样的通用或专用计算环境。操作环境800仅是合适的操作环境的一个示例,而非旨在对此处所描述的系统和方法的使用范围或功能提出任何限制。例如,操作环境800可以是一类计算机,诸如个人计算机、工作站、服务器、便携式设备、膝上型计算机、平版计算机、或诸如光学媒体播放器或另一类媒体播放器等现在已知或将来开发的任何其它类型的电子设备、或其任何方面。操作环境800还可以是例如分布式计算网络或Web服务。操作环境800的一个具体示例是诸如DVD播放器或与其相关联的操作系统等便于播放高清晰度DVD电影的环境。
如图所示,操作环境800包括或访问计算单元700的各组件,包括处理器702、计算机可读介质704、以及计算机程序706。存储804包括特别地与操作系统800相关联的附加或不同的计算机可读介质,诸如由光盘驱动器806处理的光盘。可使用作为公知且广泛可得的元件的一个或多个内部总线920来承载计算环境800或其元件内或来自其的数据、地址、控制信号和其它信息。
输入接口808对计算环境800提供输入。输入可使用任何类型的现在已知或将来开发的接口,诸如用户接口来收集。用户接口可以是诸如遥控器、显示器、鼠标、笔、指示笔、跟踪球、键盘等触摸输入设备、话筒、扫描设备以及用于输入数据的所有类型的设备。
输出接口810提供来自操作环境800的输出。输出接口810的示例包括显示器、打印机、扬声器、驱动器(诸如光盘驱动器806和其它盘驱动器)等等。
外部通信接口812可用于增强操作环境800经由诸如信道信号、数据信号或计算机可读介质等通信介质从任何实体接收信息或向其发送信息的能力。外部通信接口812可以是,或可包括诸如电缆调制解调器、数据终端设备、媒体播放器、数据存储设备、个人数字助理、或任何其它设备或组件/其组合等元件,以及相关联的网络支持设备和/或软件或接口。
图9是可结合其来使用演示系统100或操作环境900的客户机一服务器体系结构900的简化功能图。演示系统100和/或操作环境800的一个或多个方面可在体系结构900的客户机侧902或体系结构900的服务器侧904上表示。如图所示,通信框架903(可以是任何类型的任何公共或专用网络,例如有线或无线)促进了客户机侧902和服务器侧904之间的通信。
在客户机侧902,可用硬件、软件、固件或其任何组合实现的一个或多个客户机906对客户机数据存储908作出响应。客户机数据存储908可以是用于储存对客户机906本地的信息的计算机可读介质704。在服务器侧904,一个或多个服务器910对服务器数据存储912作出响应。与客户机数据存储908一样,服务器数据存储912可包括用于储存对服务器910本地的信息的一个或多个计算机可读介质704。
已描述了用于与媒体内容同步地向用户演示交互式内容的演示系统的各方面。然而,可以理解,并不需要使用该演示系统的所有所描述的组件,也各组件不必并发存在。在演示系统100的上下文中被描述为计算机程序的功能/组件不限于计算机程序的任何具体实施例的实现。相反,功能是传送或变换数据的进程,并且一般由硬件、软件、固件或其任何组合实现或在其中执行。
尽管此处以对结构特征和/或方法动作专用的语言描述了该主题,但是也可以理解,权利要求书中定义的主题不必限于以上描述的具体特征或动作。相反,以上描述的具体特征和动作是作为实现权利要求书的示例形式来公开的。
还可以理解,当一个元件被指示为对另一元件作出响应时,这些元件可直接或间接耦合。此处描述的连接实际上可以是逻辑或物理的,以实现元件之间的耦合或通信接口。连接可被实现为软件进程之间的进程间通信、或联网计算机之间的机器间通信,或用其它方式来实现。
此处使用词语“示例性”来指用作示例、实例或说明。此处描述为“示例性”的任何实现或其方面不必被解释为对于其它实现或其方面是较佳或有利的。
如所理解的,除以上描述的具体实施例之外的实施例可在不脱离所附权利要求书的精神和范围的前提下来设计,此处的主题的范围旨在由所附权利要求书来规定。