在电视机顶盒中执行交互式电视的设备和方法

文档序号:7586500阅读:299来源:国知局
专利名称:在电视机顶盒中执行交互式电视的设备和方法
技术领域
,消费者市场所显示的兴趣日益增长。但是,新兴交互式TV高务的成功,有两个问题是关键性的高质量交互应用程序和生产这些应用程序的得力工具的可用性。
生成工具应该是缺乏下载和译码器约束知识的设计者可以用的。它们应该很适用于TV生产,启动实况播送管理,并且要考虑广播约束。
交互式TV应用程序(ITVA)设计者必须考虑这样的事实,即消费者的需求与计算机站用户的需求是不同的。另一点是由于TV网络的特异特征,音频一视频媒体必须是整体进入路径。最后,交互译码器的具体约束和特征,例如有限的存储器,CPU,显示和IR远程控制等等,在ITVA设计和基本执行过程两方面都是重要的。
开放式TV(OpenTV)适用的开放式TV操作系统(Mountainview CA公司),它提供译码器的OS支持,图形层和网络进入功能,很适合于交互译码器,因为它在资源守恒和用户可用性方面已有了很大成就。它也提供基本和有效的功能,即避免应用程序在图形、网络和CPU方向依赖于硬件。开放式TV支持ITVA以程序和数据形式加载和执行。但ITVA的开发者必须用C语言开发软件包,开发他自己的应用程序,纵然在将来程序设计工具可以使这件事变得容易些。
另一个与可用性有关的缺陷是把C语言写成的应用程序翻译到别的系统是一个冗长乏味的过程。其原因是应用程序的结构被埋藏在代码之中。
再有,把任何特征附加到现有的应用程序,或者修改表示式样,需要重写代码原样并重新产生应用程序。
最后,像应用程序所用的存储器管理这样的一般特征,必须在每一个应用程序中实现。开放式TV可为此提供基本机制,但开发者仍须对管理编程。这个管理程序可以是程序库的一部分,但运行工具必须处理它。需要注意,解释程序是单线程的,这意味着一次只有一个应用程序能运行。
个人计算机可用的工具一般是有力而易于全盘的。它们处理实时音频一视频材料的途径并不很同广播环境适应,因为材料是被作为具体的超级链接媒体对象来处理的。对存储器守恒和网络管理不怎么给予注意。辅助编辑程序是WYSIWYG(所见即所得)和直觉的。这转化为与应用程序的引导结构紧密相关的观感(look-and-feel)。
MHEG5(ISO/IEC Multi-and Hyper-Media Coding Expert Group(国际标准化组织/国际电工组织委员会,多链接和超级链接媒体编码专家组)),其存在靠的是广播和交互技术学科交叉渗透的加强,它是从MHEG1推导而成的模型。后者已表明是十分复杂的,而MHEG5把应用程序表示为包含其他对象称之为“情景”的一组对象。由MHEG5处理并被包含在多个情景中的典型对象是按钮、电视图像、声音等等。通过基于ASN1(Abstyact Syntax Notation 1(抽象语法表示法1))确定编码方案,MHEG5对应用程序向终端传送的一些问题进行寻址。在终端(或译码器)运行的解释程序加载这些情景并表示它们。
很简单的反应行为也能被规定(例如当按钮被按下时,启动电视图像)。这个特征是基于可施加于对象的一组基本动作。为了得到更特异的行为,必须依赖MHEG3,它规定外部应用程序怎样能被链接至MHEG5解释程序。
但是,在这种方法中,设计者必须适应MHEG5对象表。其他对象都不能被创造,另外,MHEG5应用程序与特定代码的链接问题可能是棘手的。
HTML(Hyper Text Markup Language(超文本标记语言))是一种已创建的格式,用于在因特网上传送超文本文件。HTML已被升级为包括图像和声音或电视图像这类新对象,但它不能支持实际的交互应用程序。HTML页面包含文本和其他超级链接媒体对象,引导链路可存在于这些对象和其他页面之间。
Java(一种在因特网上广泛使用的面向对象的计算机编程语言)己被插入HTML,以便添加随HTNL文件传递程序的能力。它提供图形和通信库。在这个系统中,交互应用程序表示被HTML和Java数据结构两者支持,这可能引起某种程度的不相容性。再者,目前Java只能在因特网上实现。
交互TV所用的译码器很可能要用的资源,在近期的将来将会是相当少的。如果交互程序需要与像电子程序指南(EPG)和条件访问系统(Conditional Access system)这样的其他应用程序共享它们的资源,这个问题甚至会更糟。
伴以邻接单元的开通和能力的增强,适用于在一个国家或地区加载ITVA的译码器,可显示不同的性能。开放式TV确保不依赖于CPU。但其他功能可以发展,例如输入管理或有功效的图形分辨能力。同一ITVA必须在每个译码器上运行。
另一个必须考虑的问题是控制译码器,通常的译码器是由包含少数几个按键的红外遥控器控制的。例如,用户可能要用4个箭头的键区完成导航。
在译码器或电视机顶盒内用的(软件)导航引擎(NE),对处理面向导航的在译码器上用的交互TV应用程序的问题寻址。它的目的是解决上述各点,其方法是以被称作“交互应用程序描述”(IAD)(“InteractiveApplication Description”)的专用格式来表示ITVA,从导航结构的意义上说,这导致“交互应用程序描述”崩溃。这种崩溃包括声频一视频材料。
本发明的主要目的是为在同种类的电视机顶盒上执行交互TV应用程序提供一种工具。
本发明的另一个目的是使用高层次格式例如“交互应用程序描述”来表示交互TV应用程序。这个抽象层次,将使不同的译码器类型因而不同的应用程序供应商之间,转换和共享ITVA变得比较容易。
本发明的又一个目的是使用这个IAD规程将ITVA传送至译码器。用这种方法,导航引擎通过它的存储器管理策略和它所能提供的导航支持,来利用这个高层次表述。
本模型对被称为“交互应用程序描述”的应用程序的导航结构进行离析,由此它将在显示幕上再现(图像)。这是由隐喻单元(MetaphorElements(ME))提供的。事实上,ME不仅注意屏幕管理,而且也管理用户输入,因此决定了应用程序的观感。
根据本发明,在译码器上运行的导航引擎完成三个主要功能。
在译码器上加载交互TV应用程序;联合“交互应用程序描述”单元和具体的隐喻单元;和使它们一起操作。
执行由交互多媒体应用程序源发送至处理装置的多个交互多媒体应用程序的方法,包括步骤(a)将多个交互多媒体应用程序加载到处理装置,其中,多个交互多媒体应用程序以多个用于数据表示的节点,和多个连接节点用于动态表示的链路为基础;(b)创建具有由交互单元组成层次结构的交互图形表示,这样,交互单元表示节点与用户之间的接口;(c)将交互图形表示映象到交互单元,以便使用户能通过每个节点与每个交互单元的联系,与交互多媒体应用程序交互作用;和(d)响应用户的命令,在处理装置中执行多个交互多媒体应用程序。
相应的设备包括-装置,用于将多个交互多媒体应用程序加载到处理装置,其中,多个交互多媒体应用程序是基于多个用于数据表示的节点和多个连接节点用于动态表示的链路;-装置,用于创建具有由交互单元组成层次结构的交互图形表示,以便交互单元表示节点与用户之间的接口;和-装置,用于将交互图形表示映象到多个交互多媒体应用程序,以便将每个节点与每个交互单元相关联起来。
根据本发明,用来管理多个交互多媒体应用程序的建立联系的方法包括步骤(a)选择新近最后被使用的一些节点组;
(b)在所选的节点组中,从本地数据存储器中逐步废弃处在层次底部的节点组;(c)响应用户的命令,在处理装置中加载所要求的节点组。
相反地,为管理交互多媒体应用程序而用来建立联系的设备包括-装置,用于选择新近最后被使用的节点组;-装置,用于在所述被选择的节点组中,从所述本地数据存储器中逐步废弃处在所述层次底部的节点组;和-装置,用于响应用户的命令,在所述处理装置中加载所要求的节点组。
实现根据本发明的系统,能获得下列优点由于在“交互应用程序描述”与隐喻单元之间有清晰而良好的规定接口,所以ME的程序库能存储在译码器中,节省带宽的RAM。因此,这些隐喻单元可以就具体的译码器而专用化;进一步,应用程序的“观感”能通过加载新的隐喻单元组而动态地变化;导航引擎能根据这些隐喻单元ME的硬件和软件要求,选择应该使用哪种隐喻单元的类型。这便有可能具有在不同种类译码器上运行的应用程序;导航引擎处于应用程序的纵深结构。因此,它是在一个位置上提供导航帮助和通用机制,很像在万维网(Web)浏览器上可用的特征,例如标记和追踪管理。
导航引擎由于IAD结构,能提供智能存储器管理。此外,“交互应用程序描述”可以用虚拟存储器管理而被管理,那里,广播位流作为虚拟存储器;使用链路的IAD的动态行为,可通过本地执行与应用程序相关联的代码段而获得。
导航引擎能根据用户所注视的页面,知道在给定的时刻哪一部分(即哪些节点组)“交互应用程序描述”是必要的。因此,它可以决定延迟一些隐喻单元的创建或删除其他的,为新的一个隐喻单元准备空间。
附图的简短描述

图1表示本发明的环境,“交互应用程序描述”的不同源。
图2表示电视机顶盒的内部单元。
图3表示一个“交互应用程序描述”的结构。
图4表示导航引擎内的层次模型。
图5表示导航引擎模块、施动者和导航引擎之间的数据传送。
图6是与附录2所给的“交互应用程序描述”相应的交互应用程序图解。
另外,这个描述包括两个附录附录1是交互应用程序描述的一个例子。
附录2是施动者的代码的一个例子。
发明的详细描述参考图1,导航引擎(NE)是在电视机顶盒或译码器(130)上运行的软件的一部分,开放TV操作系统在其中更好地被实现。NE加载并运行接收到的来自交互应用程序发送机(150)的交互TV应用程序。交互TV应用程序被描述的特有的格式,被称为“交互应用程序描述”或IAD。译码器被连接至TV接收机(110)并通过远程控制(134)与用户(120)通信。
根据本发明,采用引擎类型近似法,其中,IAD结构包含高层次对象,它们是应用程序的局部。NE规定基本交互单元素,这些单元叫做施动者,与这些对象相联系。
IAD通过基于导航引擎消息(NEMessages)的协议,被发送至译码器,这些NE消息可以通过各种低层次传输协议被传送。IAD格式和NE消息允许改变应用程序的运行。这能提供实况播送事件管理的支持。
IAD也提供音频/视频管理的保障。为此目的,IAD和施动者的代码随着音频/视频材料一同被下载到译码器。IAD和施动者也能经由双向返回信道(131),从带有在线应用程序的IAD服务器(160)或者从存储装置(140)例如CD-ROM,DVD,硬盘或静态存储器,被译码器加载。
一旦IAD的一部分被加载,它就被称为本地导航图(Local NavigationGraph)或“LNG”。LNG是一组节点,这组节点创建最小交互应用程序,例如是一个交互页面。这个页面使TV旁观者能进入其他页面;所有这些页面构成交互应用程序。
根据于本发明的模型对应用程序的导航结构进行离析,由此,它将因为有那些隐喻单元(ME)而被显示在屏幕上。事实上,ME是一些具体的施动者,不仅注意显示管理,也管理用户输入,也就是说观感。
用高层次格式例如IAD表示ITVA,可以使不同的软件工具之间因而也是各个应用程序供应商之间,转移和共享ITVA变得比较容易。因此,NE本身通过它的存储器管理策略和它所能提供的导航支持,运用这个高层次表述。
为那种目的设计的某些ME可以组合在一起,形成隐喻单元。这个想法已证明是建立成功的人机界面(MMI)所要求的。本系统支持隐喻单元程序库的使用。这引致可重复使用的程序库的设计,它包含高质量ME,很适合于消费者市场。再有,对于具体的ITVA,ME的选择是(部分地)在NE的左面。可以考虑可得到的译码器资源,消费者层面,或者对于给定ITVA选择右ME。
如前所述,根据本发明的导航引擎是基于“交互应用程序描述”的高层次的。所包含的数据结构以这样的方法描述应用程序的纵深结构,即应用程序的实际表示由隐喻单元来处理。
导航引擎在译码器上连结地运行。当IAD通过广播流(133)或端对端网络(131)到达译码器时,NE加载这个IAD,创建交互对象并提供用于使它们一同工作的装置。
因此,根据本发明,建立在开放式TV顶部的导航引擎完成下列主要动作以IAD的形式加载应用程序;创建并施加隐喻单元至IAD;启用并通知链路和隐喻单元;和管理经由IAD的导航。
图2描述导航引擎的构造,其中,在译码器内部通过使用“NE消息”(250)的协议,IAD被发送(251)至NE(230)。相反地,用户输入(240)被发送(241)至NE。
NE是一个交互程序,它的详细任务是从各种信道(即广播信道,返回路径)获得IAD。一旦IAD已被加载,图中的节点就被与交互单元即施动者联系起来。专门的(但一般很常用)施动者有一个图形表示。它被称为隐喻单元(ME)。将施动者与LNG(本地导航图)的节点联系起来的过程,被称为节点的映象;从广播信道(133)或通过其他装置获得消息,去更新现行LNG;对用户输入(240)反作用。这可以包括捕捉尚未在译码器中的IAD部分,对已经被加载的节点映象或去映象,等等。
管理施动者之间的通信。
如箭头(231,232)所表示的,NE从隐喻单元(220)中将由IAD(210)表示的应用程序的导航结构分离出来,它的组成将在后面描述。应该能适应于加载“交互应用程序描述”和隐喻单元的网络,包括端对端网络。
在NE操作过程中,有两类消息可能出现NE消息(NEMessages)(250)是开放式TV消息,它们指示的是系统事件如用户输入(240),开放式TV模块出现以及任何其他非同步事件。
NE事件(NEEvents)是NE内部消息。它们被用来的施动者和NE之间以非同步方式交换信息。这个信息包括导航或映象请求。
IAD结构建立在节点和链路的基础上。节点和链路分别提供数据表示和动态表示。
图3使用通称为OMT(Object Modeling Technique)的对象建模技术,它是一种面向对象的操作方法,被用来描述软件系统。它描述IAD(210)的结构,其中每个LNG(310)与运行应用程序相对应。群集器(320)将多个节点联合起来,节点(330)之一被表示在这个图3中。
节点(330)被结构链路互相连接。它们具有以它们的特性为特征的属性(350),例如按键的标号或音频/视频位流的标识符或标题。导航链路被用来表示IAD内的导航,它也可以由链路(360来实现)。
这个结构被发送至NE,其中,节点与施动者(340)相联系,后者处理节点和用户之间的接口。由NE从发送来的IAD建立的结构是本地导航引擎(Local Navigation Engine(LNG))。
节点被连接起来形成一个图,它们具有一个属性(attributes)表。这些属性具有名称和值;后者在应用程序执行过程中可以改变。节点被两种类型的链路连接在一起结构链路和导航链路。结构链路用来支持交互应用程序在屏幕上的组织,或支持与系统对象(视频,返回信道)有关的结构。导航链路服务于节点之间的导航目的。
如图3中所示,群集器是被结构链路连接的一些节点组。群集器为NE提供存储器管理单元群集器中的节点一起被加载和卸载。群集器不应该太大,以便适合可用的译码器存储器。
结构链路仅在群集器内存在;它们不必形成环路。导航链路出现在群集器内部和群集器之间。它们能形成任意的图形。导航链路可以被施动者或链路激活。由于这些链路的激活,NE应该加载并映象它们所指向的群集器,如果它们指向的节点不是当前群集器的部分的话。
由于群集器中的全部节点被一起加载,这些群集器就被用来表示应用程序的不可分割的部分,例如屏幕或部分屏幕。
图4所示为群集器的表示,以及它们在导航引擎的“交互应用程序描述”中的层次。
交互应用程序的群集器(410,420,430,440,450)形成树形。这个树形确定群集器中的层次。这个层次用粗箭头(411,412,421,422)表示。NE确保当一个群集器被加载时,从树形的根部到这个群集器的路径上的所有群集器也都被加载。因此,为两个群集器所共有的那些对象(施动者,变量)应该被定位在这两个群集器上方的群集器中。一个应用程序的顶部群集器(410)把整个应用程序所共有的应用程序的各个部分联合起来。
群集器之间的导航链路,它们被用简单的箭头(413,423,431,441,451,452)表示,确定在IAD内部运动的可能性。这种运动能从一个群集器到另一个群集器。它们可能需要映象附加的施动者,或者加载LNG的丢失部分。NE将自动地管理存储器,放弃LNG的无用部分或删除某些无用的施动者。
属性的值能用数字结构的项(term)来表示。这些项是例如整数,一串字符,浮点数,布尔值等等,或者是上述类型的表,或多个表的清单。
应用程序可编程接口(Application Programmable Interface(API))使能创建,读出和修改上述项。编码方案使能存储并从存储器找回这些项。
当加载并处理描述IAD的消息时,NE也对项的值译码。因为这些值可以表示相当大的数据结构(例如文本),所以不希望在译码器中从一个存储器位置到另一个位置移动或复制这个数,宁可尽可能地共享数据表示。特别是某些给出文本的施动者,应该避免复制项的值。当上面谈到的属性被假设为常数值时,这是可能的。
交互应用程序描述IAD是导航引擎的中心数据结构。它的用途是表示交互应用程序。这个数据段由译码器下载由导航引擎分离和加载。它可以是广播或任何其他装置的被发送的材料。
IAD是面向数据(对象),而不是面向程序的。因为在交互应用程序中就同样的图形或共用的产生器寻找许多数据项的可能性,比寻找像质数这样的数据系列或包含底层共用软件记录的文件少。反之,在典型的交互程序领域中理应包含彼此之间不相似的数据。
IAD由节点(211,212,213,…218)构成,如图2所示。节点被链接在一起形成类似图形的结构。这些节点具有一组带有名称和任何类型数据(文本,数字)的属性,如前面的章节所指出的。当被NE加载时,节点被联系于提供实际“观感”的交互单元。
IAD也包含与节点链接在一起的小程序,以便规定它们之间的动态关系。这些导航链路规定IAD的动态行为。每当遇到给定条件时,导航链路总能改变某些属性的值。这个属性从其他属性被计算出来。
从此以后,IAD将ITVA被卸载的途径模拟到译码器。IAD的结构允许逐项地加载应用程序。由NE把IAD加载到存储器,包括加载3种类型的数据带有其节点结构、链路代码和数据的IAD;
“施动者描述”和代码(当施动者还没有驻留在译码器存储器中时);和不能直接包含在IAD中的施动者所要求的专用数据。
节点,链路,群集器IAD通过3种类型的NE消息被发送创建消息这些消息给出节点(子节点,属性)的结构和链路的描述。创建消息相应于整个群集器;修改消息和解除消息;和链路代码。
每个节点或链路具有唯一的ID,它构成一个被后来发生的修改或解除消息使用的共用名称。相反地,群集器也给出为存储器管理用的ID。
施动者类型描述施动者的新类型可以被下载到译码器。施动者的类型用它的代码和某些信息来描述,这些信息将使NE能选择这个施动者,把它与给定的节点联系起来。
代码被动态地与NE(导航引擎)链接起来。由于这个代码可以被独立地开发,它必须跟随规定的API(应用程序可编程接口)。开放式TV提供能使这个代码加载的机制。
功能表相应于新实例的创建,实例的解除,预加工,向施动者的实例通知事件,定时器标志信息或与译码器是否顺应的测试。
与施动者的类型有联系的信息是施动者的类型名;和施动者所包含的类型,它使能以不同译码器中的施动者的不同类型表示同一IAD节点。
数据加载数据加载的这个机制,使有可能向施动者提供来自位流或来自返回路径的数据,这个数据不在IAD结构中直接被发送。这就有可能不加载数据或延期加载数据,直到它被需要时,广播者知道他随LNG一起发送的施动者的那种类型,可以决定插入这个数据。
这些数据段和LNG(本地导航图)是不同的,因为它们可以是具体的一组施动者专用的。这些数据段被称为NE模块(NEModules)。它们甚至能被存储在ROM中。NE模块是任意长度的数据块,它的结构只有收件人知道。NE把这些数据视为字节序列。在后面给出的一个例子中,这种数据可以(例如)表示关联着施动者的位变换图。
图5表示出现在导航引擎(520)中的NE模块的不同操作,其中,每个NE模块(510)有名称(NAME),长度(LENFTH)并含有LENGTH字节的缓冲器。
NE模块(510)API提供装置当下一个给定名称的NE模块到达时,注册(512)要被修改(518)的施动者(340)。
注册是有效的,一直到施动者被删除,或一直到施动者就这个名称的NE模块把注册取消,这意味着每当给定名称的NE模块到达译码器时,施动者将被重复修改。因为内部原因,注册可能失败例如存储器耗尽或无效名称。对于同一名称,两个施动者(340)可以注册(512)。
取消注册可由施动者来做。如果两个施动者注册同一名称,而它们中的一个取消其注册,则另一个保留注册,因为注册是按施动者逐个独立处理的。
在修改(518)以后读(514)缓冲器,以致使施动者可随着NE模块刚刚到来以读缓冲器。如果新的同名NE模块在读的过程之中到达,施动者将读后面的NE模块内容。
至于修改(518),NE根据它具有的资源尽量去做。如果在短时间内有太多NE模块到达,某些NE模块可能丢失。
包含在NE模块内的数据结构不是特点的;它可以像一些项(Terms)那样来构成,在这种情况下,项管理API是可用的。
链路链路能独立地从施动者那里规定IAD的动态行为。它们分析节点的属性,它们是能完成对属性值测试和影响的一段代码。链路是由触发表达和动作功能形成的。触发表达是许多属性的函数;表达的值在每次有关的属性之一被修改时,由NE检验。当表达估计到真实状态,动作就被执行。
标准控制结构可用于对动作及标准操作符一道编码。由链路处理的值是一些项。表达以恒定和可变属性来构成。
在动作中可用的开始动作如下给属性营造一个新值。
Wait<delay>-andat<data>do(由专用延迟暂停链路的执行)。
exit-(从应用程序退出)。
navigate<node>-(导航朝向节点,由它的ID确定)。
back ward,forward,next,previous,wp,down-(调用由NE提供的导航功能)。
链路和群集器有关联。它可以访问在群集器自身内的任何节点,或在它上面直到顶层的群集器的节点的任何属性。
隐喻单元隐喻单元(ME)处理IAD的图形表示。为了在屏幕上被显示以及给对它感兴趣的用户提供一次机会,节点必须被映象,即与具体的ME联合。NE主管完成这种联合。
隐喻单元以面向对象的方式被管理。隐喻单元的一套级别被NE管理。新的级别可以动态地加上。隐喻单元的这些级别描述ME的性能。当为一段IAD映象选择ME时,NE使用这个数据结构。
ME以开放式TV配件为基础。ME的代码(图形功能)是用开放式TV 0-代码解释程序编码的。隐喻单元能随IAD下载,但它们也能被存储在译码器的只读存储器中。
-组基本的ME被定义。这些ME应该能够执行大多数交互应用程序。这些基本的ME包括屏幕,按钮,标志,文本。它们的技术规范不包含观感,而是仅集中于基础功能。这使能开发各种带有高级图形特征的MEs组,它们保留与基本组的顺应性,因此,仍然可用于初始交互应用程序。
施动者级别管理在施动者之间规定一种等价方法这种方法能使同一交互应用程序以最大可能产生不同的观感而被表示在每个译码器中。在译码器中,ME的被选择依赖于译码器的性能。一般地说,选择准则可包括但不局限于在屏分辨率,可显示的彩色数目和译码器处理能力及存储器,地区信息,以及特定广播者希望他所管理的应用程序如何在屏演示。准则的值随每个ME组被发送。
ME组包含组内施动者的代码和一个功能,这个功能根据上述准则测试所含的施动者是否能在译码器中运行,致使NE能就具体的译码器,选择恰当的施动者组。每个施动者属于一个级别,由施动者的功能确定。例如,切换开关确定施动者的一个级别。当NE需要映象一个节点,而节点指示它必须联系切换开关时,NE就选择切换开关级的恰当可用的施动者。
与每个ME级别相关联的时代码遵从恰当地规定的API(应用程序设计接口)。这个代码理应能在运行和动态链接时被下载译码器。
在给定时刻,施动者与一个节点相联系(节点被说成被映象)。
施动者和ME共享某些基本的功能创建/解除预加工联系/分离,分别就一个节点。这使有可能将施动者逐个地附加于许多节点。
激活/停用一施动者可见与否,取决于激活状态。
通知,每当施动者所关注的属性之一得到一个新值,或当节点结构改变时,施动者被通知。通知也与计时器期满或当数据到达时有关。
隐喻单元管理如上所述,隐喻单元是致力于图形用户接口的施动者的专用种类。这些施动者在它们之间免不了紧密的合作,因此需要设计专用的管理装置。当一个拼片(例如窗)管理子施动者(例如按钮),问题是这些被显示的子施动者应尽可能地平滑。在拼片管理一组按钮的情况下,连接一事件是1、拼片被创建2、按钮被创建3、拼片决定按钮的实际位置4、拼片以它的子施动者被描绘按钮只在其最终位置已被设置时才被显示。
实现施动者的实现,依赖于开放式TV UIMS配件(用户接口管理系统),从而利用图形对象管理。
为了管理ME,定义一个API(应用程序可编码接口)。这个API包含不同的功能,这些程序及几何结构。由于ME以配件为基础,所以它们必须遵从开放式TV UIMS策略,特别是关于某些消息(NEW,ACTIVATE,FOCUSED,…)的处理。
具体地说,NE期望ME将处理DELETE(删除)和ACTVATE(激活)消息。此外,NE增加如下一些消息预加工(PREPARE)计时器(TIMER)导航(NAVIGATE)为了跟随开放式TV的策略,各施动者被通知以相同的消息处理功能,例如创建(Creation)解除(Destruction)激活(Activation)聚集(Focus)预加工(Preparation)配置(Configuration)
通知(计时器,属性,导航)(Notification(timer,attribute,navigation))基本隐喻单元定义一组基本的ME,以便表示组成隐喻的最小ME组。它们具有基本的行为,它可以被某些属性改变。用户隐喻可以超越基本ME,以提供更加完善的观感。基本ME使属性,以决定它们的观感和它们的图形参数。有共用属性和专用属性。
一组ME能被存储在译码器的ROM中,伴以如下共用属性。
共同属性某些属性可以被所有的ME共享,它们的效能是相同的映象(布尔值)(Map(Boolean))ME是否被显示。
X,Y(整数)(X,Y(integers))指示ME在屏幕上的位置。
宽度,高度(整数)(Width,Height(integers))可以只读,施动者可以考虑或不考虑它们。
字型(整数)((Font(integers))用于显示文本,索引在字型表。
敏感度(布尔值)(Sensibility(Booleanb)):ME是否接受用户输入。
前景色(Foregrownd)索引在颜色映象。
背景角(Background)索引在颜色映象。
边框(Border)图画(Picture)在位映象开放式TV标准中。
激活(Activavion)输入键按下应被触发,联合的施动者获得按键事件不被它们的子施动者吸收。
焦点循环(Focus Circulation)描述焦点应如何在施动者之间通过。
捷径(Shortcut)给出施动者要启动的按键表作为它的激活的捷径。
许多属性能有它们的值,即可直接存储在关键项中,也可存储在NE模块(它的名称在项中给出)中。
下面是可能的施动者表声音声音施动者管理声流,它们可来自网络例如广播或返回信道,或者它们可被存储在存储器中。帧是基本时间单元。
图像图像施动者管理图像流,它们可来自网络例如广播或返回信道,或者它们可被存储在存储器中。
背景图像这个背景图像施动者在背景中显示图像。
按钮按钮施动者是交互元件,它使用户能触发一个动作。它可以显示文本、图符或外边框。
标号这个标号施动者显示单行文本或图画。它是不可选择的,它可以显示图符。
图像图像施动者显示图像,它理应大于与按钮或标号有关联的图符。由于它可以有时间加载图画,图画施动者可提供逐渐的加载,如果需要,可以中断加载。
绘图绘图施动者显示绘图,它在由(X,Y)确定的参考点基础上被显示。绘图被以专有格式描述。它可以从CAD工具文件翻译而产生。
动画动画隐喻单元显示图形动画。
输入域输入域使用户能输和主个值。这个值可以是数字或字符。值应该被显示在一行上。输入域能利用任何技巧,使可能从标准遥控器的数字键盘输入任意文本。
双态元件双态元件施动者使用户能输入一个布尔值。
文本文本施动者显示只读文本。它可以是多行(行结束用“\n”)。
拼片拼片施动者管理被附加在与拼片有关的节点的子节点上的ME。它是组合的ME。拼片ME能在行或列上安排它的子ME。
选单选单施动者是有选单行为的拼片。假设它的有关节点是表示选单树的树根。这个树应该包含子选单和按钮。树可以用下拉选单或任何其他机制被显示。
表表施动者是联合的施动者,它允许选择元件。假设它的有关节点具有将被与按钮施动者联系的子节点。按钮施动者将被表施动者激活。
集装箱集装箱施动者只管理具有共用行为的子施动者。它施加默认行为给定的子施动者。这种默认行为的一个例子是将集装箱的激活或去激活,传播给它的子施动者。
集装箱对于管理存储在不同群集器中的节点的子树,是有用的。
属性是独占(Exclusive)如果存在,节点的子女中只有一个被激活(由导航)一次。如果子女之一被激活,其他的则不被激活。
激活(Activaion)集装箱到一个按键事件不被它的子施动者吸收。激活属性可通过按压遥控器的输入键而被触发。
顶层施动者有两个项层施动者屏幕和表单。顶层施动者被NE用来管理导航。被链接到施动者的节点一般是群集器的根节点。与这些施动者相关联的功能,指示是否它被映象。
屏幕是顶层ME。这意味着它的所有子ME将同时被显示(取决于它们的映象状态,也就是如果它们被映象,它们就被显示)。屏幕可以包含图像和声音。于是图像被显示在背景上。静止图像也能被包含在这些施动者中。屏幕知道它管理ME的事实,所以它实践ME API。在给定时间只有一个屏幕能被映象,一次也只有一个屏幕可以被激活。这意味着当新屏幕被导航(也就是被激活),现行的屏幕就被删除(也就是被去激活)。
高层施动者高层施动者能被确定以公用机制如帮助导航。这些施动者利用应用程序的导航结构。它们可以依靠图形、树或存储栈的直觉图形表示。
VCR类用户接口,用于以线性结构浏览。
应该注意在另一实施例中,常规ME能被确定用于带有特殊要求的应用程度。
导航引擎操作应用程序引进应用程序的概念使NE能同时支持许多应用程序,而不必混入每个应用程序的专用数据,包括应用程序的上下文。
目前,这个上下文包含颜色查阅表,隐喻,状态和导航路径。
有4种功能可用于应用程序。NE能启动和消除应用程序,结果是当NE接收到“应用程序描述”消息时,应用程序被启动;当接收到“应用程序结束”消息时,应用程序被消除。此外,应用程序也能被暂停和重新启动。
每个应用程序被给予唯一的标识(ID)。每个消息载有涉及到的应用程序的ID。一次只有一个应用程序是在用的。为了得到用户输入,应用程序必须是处于在用状态。当应用程序暂停时,所有在用的有关项层施动者被停用。
NE管理应用程序表。存储器管理将给每个在用的应用程序。
计时器某些施动者可能需要在预定的瞬时被通知。有关通知功能在这里和NE调用(允许这个通知)一起被规定。用发送专用消息的方法完成通知。专用的功能使施动者启动计时器。
这些计时器可被用于动画目的。计时器的管理在本地每个译码器中被完成。在开放式TV中,每次计时器增加时,主环路必须被修改。
施动者借助于专用消息(TIMER)将被通知,施动者在同一时间可能有许多计时器待决。
导航链路的激活,导航的管理当导航链路被激活,在它的末端的节点不被呈现在译码器的存储器中。NE将检测这个地点,它将加载包含节点的群集器。这个加载可以有时间在广播应用程序中,包含群集器的模块可以在一些时间后被调度;如果应用程序在返回信道上被发送,数据将在一些时间以后到达译码器。
当群集器已造成时,上述对节点映象的过程就开始进行,与节点有关的施动者于是被通知。这个通知表示节点已被“导航”,施动者被激活。
NE自动跟踪所有导航事件,以便使能反向跟踪。
由于许多节点可以被同时显示(激活),在IAD内的导航包括同时管理路途。NE处理并记录全部路径。
导航链路有一个启动节点和一个结束节点。当导航进行时,有可能删除包含与启动节点有关的施动者的施动者层次。通过导致相应施动者去激活的调用,可实现这一点。
本地导航图访问LNG(本地导航图)是由NE处理的数据结构。LNG是应用程序的IAD的部分图像。由于许多应用程序同时在IRD上运行,许多LNG可以被LE同时处理。
LNG可以部分地处于IRD的存储器中。其余的可用于位流(广播),或用于远程服务器,或存储在DVD之类的媒体上。
NE提供一组功能,这些功能给出给施动者到LNG的访问。这个API隐藏内部管理的细节,特别是存储器管理。
NE和施动者只作为一个指针运行。所以,它不可能依靠施动者(它总是作为指针实现)的中止,来处理LNG丢失部分的加载。而施动者可能被迫只访问目前在译码器的存储器中的LAD部分。通过建立涉及LNG访问的规程可实现这一点。没有NE的预先授权,施动者不能访问LNG的部分。
不过,施动者对与有关系的节点有持久的访问。此外,施动者和它们的主节点可以要求访问它的主节点的子节点。
下列API包含一组公用功能,它们被NE和施动者使用。
施动者对LNG的访问施动者访问它们的有关节点是通过2个功能,即_GetAttribute Value()和v_SetAttributeValue()。
施动者可以利用在根级确定的任何方法访问LNG创建,删除,各种修改方法。
对LNG映象当LNG的一部分刚刚在译码器存储器中被创建时,没有节点被与施动者建立联系。NE在施动者被需要时,将增值地创建施动者。“创建施动者”,正如“映象”及“联系”一样,意味着表示施动者的对象的新实例被创建。
策略如下首先,NE映象群集器的根节点。被创建的施动者必须是顶层施动者,或者是这样的施动者它被链接至与群集器有关系的施动者,而该群集器是现行群集器的祖先。依次地,这个施动者将触发一些新施动者的创建,这些新施动者将被与子节点联系起来。
进行配置/预加工步骤这个步骤可包括施动者之间的协商。某些施动者也可能需要为它们自己的配置(表示施动者的图符…)加载数据。
应用程序的根群集器一般是应用程序的用户接口的起始点;它被NE自动地加载和映象。
LNG映象的过程是施动者被创建并联系于节点的过程。在施动者型的数据库中实际选择一个施动者在另外的叙述段落中讨论。
群集器的映象以下述步骤进行1、群集器的加载,这表示对该群集器的全部节点加载。
2、群集器的根节点的映象。这包括选择施动者的正确类型和创建新施动者。
3、对施动者预加工。这个步骤可以在背景中完成。它使施动者能加载附加的数据(图象)并进行某些配置(屏幕配置,象素图解压缩)。这个步骤可包含施动者之间的协商。
4、顶层施动者然后被激活;这在本实施例中的结果是图形层次选单的显示。
施动者具有API至少带两个功能激活施动者和停用施动者。
由于前3个步骤可能占用时间,有智慧的应用程序可在实际需要显示之前若干时间,给某些群集器加载和映象。
NE可决定自己采取这个动作。以这种方式受到预加载的那些群集器是被连接到现行群集器的群集器。
用户导航翻译为从NE的观点看的LNG(本地导航图)中的运动(NE跟踪现行节点)。这种运动使用导航链路。具体地说,用户导航就是触发LNG中的导航链路。
在NE中,这些事件由专用的由施动者投送的NE事件来实现。当一个导航链路被触发时,NE在链路的末端对节点映象(事实上整个群集器包含它)。
在映象一个节点时,NE可决定不映象某些节点,这表示删除某些施动者。映象一个节点,要求映象这个节点的子孙后代其他节点。被映象到节点上的施动者负责请求NE映象它们的子节点。
特殊的施动者,其类型是“根”(Root),被NE映象到根节点(RootNode)。这个施动者只在这个节点搜索名为“启动”(Start)的属性;然后它激活这个属性。因此,当应用程序启动时IAD打印程序有机会持有某些被执行的节点。这些节点必须被放置在与属性“启动”相联系的链路内。
根施动者自动地将LNG从根节点往下传,并要求NE映象它们的直接子女。有一种功能在施动者能映象节点;这是由NE事件(NEEvent)处理的。NE能使群集器以自顶向下的方式根据群集器树被加载和被映象。
这使施动者有可能依靠副作用,即已经存在的顶群集器的映象。例如,顶群集器可以引起施动者的创建,它将在译码器中加载新字形。与包含在子群集器中的节点相联系的施动者来说是可用的。
存储器管理存储器管理对LNG结构和施动者起作用。它的目的是管理应用程序的组件,依靠哪个应用程序正在运行;应用程序的哪一部分在给定时间是有用的,这取决于用户正在浏览LNG的哪一部分;
哪一部分是广播者要使之对用户有用的。
存储器管理关系到两类对象,群集器和施动者LNG存储器管理以群集器为基础,其中,NE检测群集器是否被要求,也就是说,是否某些施动者被联系到这个群集器中某些节点;施动者管理,被指派去管理施动者。
当NE要求存储器被放空时,存储器被触发。在这种情况下,NE决定从存储器取出什么。这个选择以群集器为基础。有可能实现一种算法,以删除近来最后使用的群集器。
为了确定有用的群集器,NE利用群集器的从属性(在它的子节点之前,群集器不能被删除);施动者的有用指示器,它由NE管理。
广播应用程序提出特殊的问题,涉及用户,他们已错过节目的开始,必须有一个完全的用户接口;由于广播信道的单方向性,在传输过程中可能发生的差错;用位流作虚拟存储器的可能性。
方案如下。考虑任何应用程序是由名为Ci的群集器做成的。在给定时间,LNG是由群集器的表做成的。
这些群集器应该以循环的方式被广播C1 C2 C3 C4 C5 C1 C2 C3 C4 C5 C1 C2 C3 C4C5…由于群集器是重复的,NE能在任何时间经相当于循环长度延迟,重建整个应用程序。这构成在位流上描述整个LNG,因此,能使LNG把它用作存储器。
某些群集器应用程序向路线中可能得修改。修改消息可被插在群集器之间,例如,M2是修改群集器C2的消息。
C1 C2 C3 M2 C4 C5 C1 C2.1 C3 C4 C5 C1 C2.1C3 C4 C5其中,C2.1是C2的新版本。
如果M2丢失,NE能在一个短的向后延迟以后加载更新的版本。如果在M2被处理时C2未被加载,NE就什么也不做,但当NE加载群集器C2时,C2的校正版本将被加载。
开放式TV模块的可能用处是把每个群集器映象到模块。修改消息应该被分配到专用模块。一旦被加载,模块就不需要重新加载,因为修改消息是被另一个模块携带的。相反,携带修改消息的模块则不断地被NE加载。
如果这个模块的实例丢失,NE保持的是错误的群集器版本,它不知道应该加载已修改过的群集器现行(校正的)版本。为解决这个问题,修改消息应按规定指示每个群集器的版本号码。NE将这个号码与它所保持的号码相比较,并且当新版本被检测到时,触发群集器的重新加载。
至于象链路代码施动者代码,描述,数据模块这样的静态数据的处理方案,是比较简单的只需要循环地发送这些代码。
NE将知道它需要从LNG加载这些模块。
输入管理,翻译和焦点管理输入管理力求解决下列问题在施动者得到或失去焦点时,输入管理通知施动者,以允许它们能相应地显示自己。
提供一种使焦点从一个施动者过渡到另一个施动者的机制,其方向与用户所按的输入键一致。
焦点管理提供一种方法,用于指导用户输入进到应用程序的适当交互部件。通常,当用户键入输入时,理应得到焦点的施动者被显示在屏幕上。
输入管理也负责使能捷径机制这种机制使得有可能得到键压事件,即使没有焦点。
输入管理,翻译和路由选择用户输入通过开放式TV消息被传送至NE。这些输入在NE中被管理,NE对它们进行分离和处理。用户输入最后被传送至施动者。在处理用户输入时,NE可以对它们进行滤波,例如焦点管理,路由选择和翻译,这意味着将专用键与属性相联系。
用户输入取决于译码器实际采用的器件。开放式TV提供从专用器件数据到开放式T消息的翻译。ME负责正确地解释数据。
与专用器件相连接的基础驱动器应该产生依赖于实际器件(通过开放式TV消息)的代码。
可能的的器件是XY指针和声音输入。
然后,用户输入被传送至具有焦点的施动者(通过开放式TV的UIMS功能)。施动者可以不管它们。在这种情况下,这个消息被传递给施动者的祖先。这是由开放式TV自动消息路由选择,伴随配件树来处理的。
处理捷径的施动者宣布在特殊属性“捷径”方面被关注的一些键。当它们被激活的时候,NE将把所关心的键压消息传递给它们。
焦点的循环焦点管理是由NE完成的,而不是被分配在ME之中。循环图随IAD被下载。它描述焦点如何必须从一个ME被设置到另一个ME,例如按照遥控的箭头键。它是任选的。当它不可得时,NE根据LNG结构求助于默认管理。
某些ME可以提供它们自身的焦点管理。在这种情况下,一个箭头键的按下是一个事件,这个事件必须被发送给它们。
循环图被规定在IAD结构中。每个节点与数据相联系,该数据为每个箭头键指示哪个节点必须接收焦点。这个数据被存储到属性“焦点循环”(“Focus Circulation”),它们的数值是一个最多四对数的表(左/右/上/下,节点ID)。
彩色管理根据本实施例,译码器的图形硬件使用彩色调色板。存储在调色板上的数值必须适用于每个应用程序的上下文。NE的职责是在一个应用程序被激活时候,用正确的数值初始化调色板。
现行调色板的内容取决于在给定时刻哪个施动者被显示。它们的要求由项层施动者的彩色映像图(Colormap)属性来描述。应用程序可为施动者提供特定版本。对应程序来说,提供了一种默认的彩色映像图。
字形管理字形管理被委托给开放式TV。字形属性值是开放式TV字形的名称。专用的施动者可以负责加载应用程序的另一个施动者所需要的字形。
NE事件(NEEbent)和处理NE算法基于一次处理一个事件的主环路。事件可以是简单的事件,如用户输入,或者任意其它的系统事件。更特殊的事件有那些事件参与LNG和施动者的管理,并且允许异步管理。所有这些事件都以先进先出(FIFO)方式进行管理。
这些事件可以由施动者或者NE本身指派。可能的事件是导航至一个节点注册属性的修改改变焦点位置网络接口网络接口是主管NE与外部世界之间数据交换的模块。该数据包括非实时数据(尽管某数据可能需要与a/v材料不严谨地同步)实时数据a/v材料外部世界由广播流(133),双向流(131)和数据存储媒体(140)组成1、广播流(133)由开放式TV通过程序概念进行管理,该程序同时包括实时和非实时数据。
非实时注由开放式TV模块构成。它们中的每一个具有唯一的ID和大小。它们中在网络上的传输可能是被循环的,可能的模块型号数量是相当大的,但是能够瞬时地等待的模块型号数量是小的(取决于本地的硬件资源,这个数量可以是如30-70)。
开放式TV模块ID在这些数据中提供第一命名方案。这个命名目前受所谓形放式TV应用程序的范围限制。
程序的实时构件也可由ID访问。
2.由串行端口或者调制解调器传送的双向流(131),被称作“返回信道”,它通过程序供应者的概念由开放式TV进行管理,可与程序供应者建立双向连接(开放式TV套接口)。异步消息交换可在此信道进行。具有许多服务的连接可同时被打开。
未来的TCP/IP可代替开放式TV套接口。
3.数据存储在连接至译码器的任意媒体或存储器(140)中,即,DVD,DVD ROM或CD ROM。在与这种媒体的数据交换的控制方面,没有设计标准协议,尽管DSM涉及这个主题。
目的是为了给隐含基础网络细节的NE提供一个接口。但是,实际器件有不同性能则必须考虑到。NE有关网络的要求如下异步地接收IAD事项或IAD消息,也就是说,不需要任何请求。这些数据的规模是事先知道的。应当注意,给定时间所要求的数据量,不妨小于总的可利用数据量;同步地接收IAD或IAD消息,也就是说涉及请求,随后回答;接收数据以进行数据加载。
解决办法是确定一个命名方案,该方案包含与一组功能相伴的三种媒体,这些功能最终依赖于可利用的网络管理层。命名方案被使用于选择A/V数据,并且当LNG的多个部件由已经加载的一个部分寻址时,这个命名方案也在LNG中。这些名称将由NE翻译成低级的协议语法。
命名方案基于服务名称和组件名称<service name>,<component-x>,<component-y>…。NE主管分解名称,以确定来自哪种类型的源或网络的数据应该被加载。
IAD的实例和它的联系图附录1和图6被用来说明交互应用程序的一个实例,它是关于汽车竞争的。关于应用程序的概观,相应于IAD的结构和导航链路由图6说明。对象分层如下显示页面(Display Page)时间标号(Time Label)
配置标号(Placing Label)搭接数目标号(Lap Number Label)选单页面(Menu Page)控制按钮(Control Button)控制页面(Control Page)时间切换(Time Toggle)配置切换(Placing Toggle)搭接数切换(Lap Number Toggle)视频按钮(Video Button)视频页面(Video Page)竞争切换(The Race Toggle)汽车切换(In The Car Toggle)切换前(Before Toggle)一旦切换(Once Upon Toggle)事故切换(Accident Toggle)跟踪切换(Follow Toggle)风险切换(Risk Toggle)组织按钮(Histo Button)组织页面(Histopage)掌中按钮(Palmares Button)照片按钮(Photo Button)照片页面(Photo Page)幻灯片演示按钮(SlideshowButton)幻灯片演示页面(SlideshowPage)嵌入按钮(InfButton)取消按钮(SuppButton)结果按钮(Result Button)结果页面(Result Page)结果表(Result List)竞赛图像(The Race Video)
汽车图像(In The Car Video)图像以前(Before Video)一旦有图像(Once Upon Video)慢图像(Slow Video)事故图像(Accident Video)跟踪图像(Follow Video)风险图像(Risk Video)清除按钮(Clear Button)为了清楚起见,对象的最后顺序在图6中未被表示,因为它们的链路相当简单。注意图6,属于同一屏幕的对象用矩形虚线将它们围绕起来。并非同一屏幕的所有对象都要在给定时间内显示,这取决于它们的状态,如在后面附带的附录1中将要看到的。
汽车竞赛广播之前及其期间,应用程序运行。它允许用户访问有关竞赛的实时信息和存档信息,并在不同的图像流之间进行切换。所有图像流可能不是在整个时间内都可以利用的,但IAD提供必要的节点,以便访问最终可用的信息和图像流。例如,事故在竞赛期间可能发生或不发生。如果事故发生,用户可能希望观察到有关这个事件的特殊尺码,相应的节点和施动者将被激活。否则节点不被使用。
由图6表示的应用程序是单个群集器,它被加载成为一个片段(事项),在广播竞赛事件之前及其期间,应用程序是循环地广播的。在数字电视系统中,涉及应用程序的数据被包含在数字多路复用传送之中,被封装为传送层的数据包。在模拟电视系统中,这个数据包被调制于视频信号的垂直消隐间隔之中。这种广播在技术界是共知的,下面将不作更详细的讨论。译码器通过检查广播数据包首部的包标识符,检测有关应用程序的数据包,并多路分用对应于预定标识符的数据包。
项节点,例如选单页面(Menu Page)和显示页面(Display Page),在IAD一旦被加载时,它们就被映象和激活,随后是子节点映象。注意,出现在附录1的IAD节点上的“被映象”(“Mapped”)的初始值指示节点是否应该被显示,不是指示节点是否实际上被与施动者相联系。
IAD的每个节点有一个被称为“施动者”(“Actor”)的属性,它规定施动者的级别即它的功能。对于给定的节点,NE选择一个与那个级别相对应的施动者(有几个施动者可用),并为这个节点创建一个施动者实例。
选单页面节点及其子节点的激活引起主页面的显示,这在下面解释。控制页面(Control Page)节点的激活最初不首先产生显示,因为节点的子节点和控制页面的所有被映象的属性,具有“假”(“false”)值。
根据于本实例的IAD包括被称为选单页面的主页面,包括四个可由用户激活的按钮控制按钮(Control Button),图像按钮(Videlo Butten),组织按钮(Histo Button)和结果按钮(Result Button)。
所有四个按钮的代码指示它们应该与被称为“像素图”(“Pixmap”)级别的施动者相关联。这个施动者要求的位映象图用于它的显示。图的标识符被给为“图像”(“Image”)属性的值。当与施动者联系时,节点的图像属性的值由施动者读出,然后施动者向(软件)导航引擎请求下载相应的位映象,若是在没有被加载之前的话。
控制按钮访问第二页面(控制页面),包含三个切换按钮。切换按钮是具有双态的施动者,用户能将它从一个状态切换到另一个状态,因此术语为“切换”(“toggle”)。控制页面被设计为允许用户通过节点显示页面选择他想要在屏幕上显示的信息从竞赛开始后的搭接时间(节点的子节点时间标号),排序(节点的子节点的配置标号),和搭接数目(节点显示页面的子节点搭接数目标号)。要注意,节点显示页面的三个子节点的属性“被映象”,默认(设定)为“假”值,如在附录1中能看到的。这意味着它们不被显示,直到用户改变控制页面中的切换按钮的状态,这依次引起相应的施动者修改切换节点属性“值”的值,这依次激活这些修改“被映象”的属性值的节点的链路。当节点的“被映象”的属性具有值“真”(“true”)时,NE执行相应施动者的显示。
图像按钮访问屏幕,以便从更多个图像流中选出一个。图像页面(Video Page)包括七个切换按钮中最大的一个(取决于相应图像的可用性),在给定时间内仅能选择七个当中的一个。没有被选择的切换按钮显示灰色(属性“灰色状态”(Greystate)等于真)。被选择的按钮指示哪个图像被显示。
有联系的图像流用另外一些节点来表示,这些节点将要与“图像”级的施动者相联系。尽管图像流由固有的图像施动者处理,但是附加在屏图形直接被节点激活。现在,对这些节点之一,即节点“竞赛图像”(TheRace Video)进行说明。所述与这个节点有关的大多数特征也适用于其他图像节点。
节点区分两种情况,取决于相应的电视广播是否已经开始。有关与“竞赛”图像流开始时间相比较的时间定位的信息,由属性“时间代码”(“Time Code”)给定,在竞赛之前其值是负的,在竞赛期间是正的。这个值根据本实施是数字多路复用广播,并由广播者确定,只有他知道图像是否和何时将是可利用的。“竞赛图像”节点在屏幕上指示是否和何时相应的图像将被期待。这可通过“竞赛切换”(“The Race Toggle”)节点中修改“文本”(“Text”)属性来完成。
依赖于属性符号,以分钟计算等待时间,直到竞赛图像启动;或者一旦图像已启动,计算保持广播的时间。
因此,切换按钮“The Race Toggle”的行为如下当“竞赛图像时间代码”(“The Race Video Time Code”)属性在数字多路复用传送中未出现时,切换按钮显示初始文本即“The Race”(“竞赛”),一属性被给值且只要是负的,按钮显示文本“XX mn The Race”,这里的XX指示在竞赛开始之前保留的时间。当时间代码(Time Code)变成正值时,文本“The Race YY mn”被显示,这里的YY指示在竞赛结束之前保留的时间。
可变的“运行”(“Run”)是一个变量,它的值由有关联的施动者确定。一旦节点被映象,即当“时间代码”大于0时,“运行”就被置为“真”。它被使用于节点中,以改变相应按钮的显示状态,并允许用户对它选择。
如可看到的,对特定的节点来说,时间代码变量被广播者插入到数字多路复用传送中,通过IAD和施动者触发许多动作。用这种方法,交互应用程序的实时行为可被改变。
可变的“值”被用来传递施动者和节点之间的按钮状态,即涉及用户是否选择按钮的信息。按钮状态的改变将触发在IAD中已规定的动作。最初,仅有的激活状态(值=真)的按钮是“竞赛切换”按钮。“竞赛切换”节点的“值”变量的值,在IAD代码的末端同其他节点的其他变量一起被测试。这些测试不是已确定的节点的部分。这些“孤立链路”(“Orphan links”)在IAD被加载时,被NE包含在通用节点中。涉及“竞赛切换”节点的测试如下被按钮被选择时(此时“值”为“真”),它测试视频是否已启动(Time Code>0)。如果是这种情况,那么,节点的“被映象”变量被设置为“真”(“true”)。
附录2是C代码的例子,将开放式TV功能用于文本按钮级的施动者。施动者由若干功能和数据结构组成。某些功能是(软件)导航引擎已知的,并形成施动者的应用程序可编程接口(API)。其他的仅是施动者本身可访问的。
施动者API功能包括创建施动者(Creat Actor)(当施动者被映象到节点时,功能“Create MEButton”被调用),删除施动者(当施动者被“解映象”时,功能“Destroy MEButton”被调用),和通知施动者(当施动者应接收一个由NE处理的事件时,功能“Notify MEButton”被调用)。
数据结构包括一些参数,用于规定按钮在它的不同状态下的外部特征(Focused_desc,ldle_desc,Down_dese)。
功能中也包括设置图形按钮状态的功能(function set button-state)。这个功能调用合适的开放式TV的一些功能,它们管理在屏幕上的显示,使用前面定义的参数。
其他的重要功能是,规定由施动者接收的事件((功能按钮-消息-管理器)(function button message handler))并向施动者内部功能传送这事事件的功能。
两个功能被用于导航和按钮激活/去激活的目的handle-key-up(处理-操作键-向上)和handle-key-down(处理-操作键-向下)。
最后,施动者含有当施动者被映象时,读出节点属性的功能。这个功能在附录2中被称为MEButton Read Attrs。在本例中,三个属性被读出“Text”(“文本”),它规定按钮的文本标号,“XY”,它规定按钮在屏幕上的位置,和“Activate”(激活),它相应于附录1的“Value”(“值”)变量。这个变量的值可以被施动者修改,并且新值被重新写入节点。
权利要求
1.一种用于执行从交互多媒体应用程序源(140,150,160)发送至处理装置(130)的多个交互多媒体应用程序的方法;所述方法包括步骤(a)将所述多个交互多媒体程序(210)加载到所述处理装置(130),其中,所述多个交互多媒体程序是基于用于数据表示的多个节点(221,212)和用于动态表示的连接所述节点的多个链路的;(b)创建具有由交互单元(221,222…)组成层次结构的交互图形表示(220),所述交互单元代表所述节点和用户(120)之间的接口;(c)将所述交互图形表示(220)映象到所述交互单元(221,222…),以便使用户能通过所述节点(211,212…)与每个所述交互单元(221,222…)的联系,与交互多媒体应用程序交互作用;(d)响应用户的命令,在所述处理装置(130)中执行所述多个交互多媒体应用程序。
2.根据权利要求1所述的方法,其特征在于,所述节点被结构的链路和导航链路链接,所述结构的链路用于支持在显示装置(110)上表示所述多个交互多媒体应用程序,所述导航链路用于在所述多个交互多媒体应用程序中导航。
3.根据权利要求1或2所述的方法,其特征在于进一步包括步骤确定被连接在一起的节点组(410,420…),以形成代表最小交互多媒体应用程序的群集器,以便能逐个群集器地加载所述多个交互多媒体应用程序。
4.根据权利要求3所述的方法,其特征在于,所述节点组在群集器中被所述结构的链路连接,所述群集器是由所述多个交互多媒体应用程序的不可分割的部分组成的,这样,可允许在群集器之间导航。
5.根据权利要求4所述的方法,其特征在于所述群集器从根据群集器(410,450)到顶群集器(410)形成层次树形图(410,420,…),所述顶群集器(410)组合了所有的交互多媒体应用程序共用的部分。
6.根据权利要求4或5的所述的任一方法,其特征在于进一步包括步骤通过废弃无用的群集器,或通过从所述交互多媒体应用程序源(140,150,160)加载所需要的数据,管理所述多个交互多媒体应用程序。
7.根据权利要求4,5或6中的任一项所述的方法,其特征在于进一步包括步骤对被连接到当前群集器的那些群集器进行预加载和予映象,以便提前考虑所述那些群集器的未来应用。
8.根据前面权利要求中的任一项所述的方法,其特征在于每一个所述节点(211,212…)包含一些属性,这些属性的特征是带有至少一个名称和一个表示动态数据结构的值,这个值在应用程序执行过程中可以改变。
9.根据前面权利要求中的任一项所述的方法,其特征在于所述对所述多个交互多媒体应用程序加载的所述步骤,进一步包括步骤将所述多个交互多媒体应用程序的一些部分存储在附加的存储装置如DVD中。
10.一种用于从交互多媒体应用程序源(140,150,160)发送至包含本地数据存储器的处理装置(130)的多个交互多媒体应用程序的方法,在这种方法中,所述多个交互多媒体应用程序的基础是多个节点组(410,420,…)的层次,用于所述多个交互多媒体应用程序的最小数据表示;和连接所述节点与所述节点组的多个链路,用于动态表示;所述方法包括步骤(a)选择新近最后被使用的节点组(410,420,…);(b)在所述被选择的节点组中,从所述本地数据存储器中逐步废弃处在所述层次底部的节点组;和(c)响应用户的命令,在所述处理装置(130)中加载所要求的节点组。
11.根据权利要求10的管理方法,其特征在于有用指示器与所述节点组相关联,以便动态地确定它们的有用性。
12.根据权利要求10或11的管理方法,其特征在于进一步包括步骤通过跟踪已被聚焦的交互单元,将用户的命令直接输入到所述交互多媒体应用程序的适当部分,其中,一个循环图与所述用户的命令输入相关联,以便管理这个焦点。
13.一种用于执行从交互多媒体应用程序源(140,150,160)发送至处理装置(130)的多个交互多媒体应用程序的设备;所述设备的特征在于它包括-装置,用于将所述多个交互多媒体应用程序(210)加载到所述处理装置(130),其中,所述多个交互多媒体应用程序的基础是用于数据表示的多个节点(211,212,…)和用于动态表示的连接所述节点的多个链路;-装置,用于创建具有由交互单元(221,222)组成层次结构的交互图形表示(220);这样,交互单元表示所述节点与用户(120)之间的接口;和-装置,用于将所述交互图形表示(220)映象到所述多个交互多媒体应用程序(210),以便将每个所述节点(211,212,…)与每个所述交互单元(221,222,…)联系起来。
14.根据权利要求13所述的设备,其特征在于进一步包括-装置,用于建立结构的链路,以支持所述多个交互多媒体应用程序的表示;和-装置,用于建立导航链路,以便在所述多个交互多媒体应用程序中导航。
15.根据权利要求14所述的设备,其特征在于进一步包括装置,它用于确定被连接在一起的节点组(410,420),以形成表示最小交互应用程序的层次图。
16.根据权利要求15所述的设备,其特征在于进一步包括装置,它用于通过废弃无用的节点组,和从所述交互多媒体应用程序源(140,150,160)加载所需要的数据,以管理所述节点组。
17.根据权利要求16所述的设备,其特征在于进一步包括装置,它用于存储所述多个交互多媒体应用程序的附加部分,以便对被连接到当前节点组的节点组进行预加载和预映象,从而提前考虑未来的应用。
18.一种用于管理多个交互多媒体应用程序源(140,150,160)发送至包含本地数据存储器的处理装置(130)的多个交互多媒体应用程序的设备,在这种设备中,所述多个交互多媒体应用程序的基础是多个节点组(410,420,…)的层次,用于所述多个交互多媒体应用程序的最小数据表示;和连接所述节点与所述节点组的多个链路,用于动态表示;所述设备的特征在于它包括-装置,用于选择新近最后被使用的节点组(410,420,…);-装置,用于在所述被选择的节点组中,从所述本地数据存储器中逐步废弃处在所述层次底部的节点组;和-装置,用于响应用户的命令,在所述处理装置(130)中加载所要求的节点组。
19.一种用于执行从交互多媒体应用程序源(140,150,160)发送至处理装置(130)的多个交互多媒体应用程序的方法;其特征在于所述方法包括步骤(a)将所述交互多媒体应用程序(210)加载到所述处理装置(130),其中,所述多个交互多媒体应用程序包括用于数据表示多个节点(211,212,…)和用于动态表示的连接所述节点的多个链路;(b)创建由交互单元(221,222,…)组成的图形表示(220),这里,所述交互单元代表所述节点和用户(120)之间的接口;(c)将交互单元和节点联系起来;(d)响应用户的命令,在所述处理装置(130)中执行所述交互多媒体应用程序。
20.根据权利要求19所述的方法,其特征在于所述交互单元是为用户定义交互用的通用项的对象。
21.根据权利要求20所述的方法,其特征在于节点包含使能选择交互单元的数据。
22.根据权利要求21所述的方法,其特征在于所述数据包含通用交互功能的标识符,所述功能将由所述被选择的交互单元来完成。
23.根据权利要求20所述的方法,其特征在于节点包含用于使所述被选择的交互单元的图形表示用户化的参数。
24.根据权利要求20所述的方法,其特征在于节点包含可由与所述节点关联的交互单元修改的参数。
25.根据权利要求20所述的方法,其特征在于所述节点包含代码,用来确定它的参数的修改对其他节点的影响。
26.根据权利要求19至25中的任一项所述的方法,其特征在于每个群集器包含至少一个节点。
27.根据权利要求1所述的方法,其特征在于所述交互应用程序包含至少一组与预定图像流相关联的节点,所述节点包含这样的装置,即响应所述图像流将来或当前传输的通知信号,触发代码的执行。
全文摘要
本发明提供一种在电视机顶盒(130)上执行交互TV应用程序的工具,其方法是将交互TV应用程序表示成高层次格式例如“交互应用程序描述”(210)。这个抽象层次将使各种工具之间,因而不同的应用程序供应商之间转移和共享ITVA,变得比较容易。此外,它使用这个IAD(交互应用程序描述)规程,将ITVA往下传送给译码器,因此,(软件)导航引擎(NE)通过它的存储器管理策略和它所能提供的导航支持,利用这个高层次表示。本模型离析“交互应用程序描述”(210),由此,通过实现隐喻单元(220),使它在屏幕上再现图像。事实上,ME不仅注意屏幕管理,而且也管理用户输入(240),也就是观感(look and feel),因此它能动态地改变。除了这个恰当地规定的IAD与NE之间的接口以外,ME的库能被存储在译码器中,这就节省了带宽和RAM。
文档编号H04N5/00GK1317205SQ99810586
公开日2001年10月10日 申请日期1999年9月6日 优先权日1998年9月4日
发明者路易·舍瓦利耶, 皮埃尔·乌埃, 奥利维耶·德乌, 菲利普·勒泰利耶 申请人:汤姆森多媒体公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1