CN101233504A - 用于用户界面的分布式软件架构 - Google Patents

用于用户界面的分布式软件架构 Download PDF

Info

Publication number
CN101233504A
CN101233504A CNA2006800015814A CN200680001581A CN101233504A CN 101233504 A CN101233504 A CN 101233504A CN A2006800015814 A CNA2006800015814 A CN A2006800015814A CN 200680001581 A CN200680001581 A CN 200680001581A CN 101233504 A CN101233504 A CN 101233504A
Authority
CN
China
Prior art keywords
zui
metadata
user
svg
node
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CNA2006800015814A
Other languages
English (en)
Other versions
CN101233504B (zh
Inventor
查尔斯·W·K·格里东
戴夫·奥夫德海德
凯文·康罗伊
尼尔·戈亚尔
弗兰克·A·亨莱特
斯蒂芬·沙伊雷
丹尼尔·S·辛普金斯
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
IDHL holding company
Original Assignee
Hillcrest Laboratories Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hillcrest Laboratories Inc filed Critical Hillcrest Laboratories Inc
Publication of CN101233504A publication Critical patent/CN101233504A/zh
Application granted granted Critical
Publication of CN101233504B publication Critical patent/CN101233504B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • G06F3/04817Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance using icons
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • G06F3/0482Interaction with lists of selectable items, e.g. menus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/431Generation of visual interfaces for content selection or interaction; Content or additional data rendering
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/431Generation of visual interfaces for content selection or interaction; Content or additional data rendering
    • H04N21/4312Generation of visual interfaces for content selection or interaction; Content or additional data rendering involving specific graphical features, e.g. screen layout, special fonts or colors, blinking icons, highlights or animations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/431Generation of visual interfaces for content selection or interaction; Content or additional data rendering
    • H04N21/4312Generation of visual interfaces for content selection or interaction; Content or additional data rendering involving specific graphical features, e.g. screen layout, special fonts or colors, blinking icons, highlights or animations
    • H04N21/4316Generation of visual interfaces for content selection or interaction; Content or additional data rendering involving specific graphical features, e.g. screen layout, special fonts or colors, blinking icons, highlights or animations for displaying supplemental content in a region of the screen, e.g. an advertisement in a separate window
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/443OS processes, e.g. booting an STB, implementing a Java virtual machine in an STB or power management in an STB
    • H04N21/4438Window management, e.g. event handling following interaction with the user interface
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/47End-user applications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/47End-user applications
    • H04N21/482End-user interface for program selection
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/83Generation or processing of protective or descriptive data associated with content; Content structuring
    • H04N21/84Generation or processing of descriptive data, e.g. content descriptors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2203/00Indexing scheme relating to G06F3/00 - G06F3/048
    • G06F2203/048Indexing scheme relating to G06F3/048
    • G06F2203/04806Zoom, i.e. interaction techniques or interactors for controlling the zooming operation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/47End-user applications
    • H04N21/478Supplemental services, e.g. displaying phone caller identification, shopping application

Abstract

根据本发明的系统和方法提供了可用于创建可缩放用户界面的软件结构(程序块)。提供图形显示器的参数化变量的程序块可重复使用并联结用户界面上的不同场景。

Description

用于用户界面的分布式软件架构
相关申请
本申请与2005年1月5日提交的、题为“带有程序块的分布式软件架构”的第60/641,406号美国临时专利申请相关,并要求其优先权,该专利申请公开的内容通过引用并入本文。
背景技术
本发明描述一种用于组织、选择并启动媒体项的架构。所述架构的一部分包括定位、点击、滚动、停悬、缩放的基本构件块的图形用户界面的设计和操作,更具体地说,涉及与能够与用自由空间定位遥控装置使用的媒体项关联的图形用户界面。
与信息的通信相关的技术在过去的几十年里有了迅速的发展。电视、蜂窝电话、互联网和光学通信技术(这里仅列出几样)结合起来将消费者淹没在可得到的信息和娱乐选择中。以电视为例,最近30年来已经引入了有线电视服务、卫星电视服务、按次计费电影和视频点播。然而,20世纪60年代的电视观众在他们的电视机上通常只能够接收到也许是四或五个无线TV频道,今天的电视观众有机会在数以百计和潜在的数以千计的节目和信息频道中选择。目前主要在旅馆等中使用的视频点播技术提供了一种用于从数以千计的电影节目单中进行家庭娱乐选择的潜能。例如TiVo股份有限公司(加利福尼亚州奥维索金街2160,95002)推出的数字视频记录(DVR)设备进一步扩大了可以得到的选择。
为终端用户提供那么多的信息和内容的技术能力给系统设计人员和服务供应商提供了机会和挑战。一个挑战是尽管终端用户通常更愿意拥有更多的选择而不愿意选择变小,但这种喜好与他们希望的即快速又简单的选择处理所相背。不幸的是,终端用户通过其来访问媒体节目的系统和界面的发展使得选择处理既不快又不简单。再次考虑电视节目的实施方案。在电视处于初期时,确定看哪一个节目是相对简单的事情,这是因为可选择的数目较少。人们可以查阅印制的节目指南,该节目指南被格式化为例如一系列的行和列,这些行和列显示出了在(1)邻近的电视频道、(2)被传输到这些频道的节目以及(3)日期和时间之间的对应关系。通过调节调谐钮,电视被调谐到所需的频道,并且观众观看到所选择的节目。在这之后,允许观众远距离调谐电视的遥控控制装置被引入。这种对用户-电视交互的增添产生了被称为“频道冲浪”的现象,借此,观众能够迅速地观看在大量频道中广播的短片段,从而可以快速得知在任意给定的时间什么节目是可看的。
尽管存在频道的数量和可观看的内容急剧增加的事实,但通常可得到的用于电视的用户界面、控制设备选择和架构在过去的30年里没有改变太多。印制的节目指南仍然是用于传递节目信息的最流行的机制。具有上下箭头的多按钮遥控器仍然是最流行的频道/内容选择装置。设计和实现TV用户界面的人们对可得到的媒体内容的增加的反应已经成为现存的选择处理和界面对象的直接延伸。这样,印制的节目指南中的行数被增加以容纳更多的频道。遥控装置中的按钮的数目也被增加以支持附加的功能和内容处理,例如,像图1所示的那样。然而,这种方法大大增加了观众浏览可得到信息所需的时间和执行选择所需动作的复杂度。有争议的是,现存界面的麻烦的本质阻碍了一些服务(例如视频点播)的商业应用,这是由于消费者反对给在他们看来已经是太慢和太复杂的界面再增加复杂度的新服务。
除了在带宽和内容方面增加之外,技术的集成还加剧了用户界面的瓶颈问题。消费者正在积极地做出反应要选择购买集成系统而不是大量可分离组件。这种趋势的一个实施方案是电视/VCR/DVD的组合,其中的三个组成部分以前是三个独立的组件,如今则作为一个集成单元而被频繁购买。这种趋势会延续下去,潜在的最终结果是目前在家庭中可以找到的大部分(如果不是全部的话)通信设备将会组合在一起作为集成单元,例如,电视/VCR/DVD/互联网接入/收音机/立体声单元。即便是那些继续购买分离组件的人们也会期望上述单独组件的无缝控制和这些分立组件之间的互相交互。随着这种集成度的增长,产生了使用户界面更加复杂的潜在可能。例如,在所谓的“通用”遥控单元(例如TV遥控单元和VCR遥控单元功能的组合)被提出时,这些通用遥控单元上的按钮的数目通常地多于单个TV遥控单元或VCR遥控单元上的按钮数目。如果不能准确地找到该遥控装置中的正确按钮,这些增加了数目的按钮和功能使人除了只能在控制TV或VCR的最简单的方面外很难控制其它任何事情。许多时候,这些通用的遥控装置不能提供足够的按钮以访问某些TV所特有的许多层面上的控制或特性。在这种情况下,仍然需要原始设备的遥控单元,并且由于集成的复杂度导致的用户界面问题,所以处理多遥控的最初争论仍然存在。一些遥控单元通过增加可用专家命令编制的“软”按钮解决了这个问题。这些软按钮有时具有附随的LCD显示装置来指示它们的动作。这种方式也具有缺陷,即,如果不将视线从TV转移到遥控装置,它们就难以使用。这些遥控单元的另一个缺陷是采用了多模式以试图减少按钮个数。在这些“模式化”的通用遥控单元中,存在专门的按钮来选择该遥控装置是否与TV、DVD播放器、有线机顶盒和VCR等通信。这产生了许多使用性的问题,包括发送命令到错误的装置、迫使用户通过观看遥控装置来确信其是否处于正确的模式,并且它不能给多装置的集成提供任何的简化。这些通用遥控单元的最大好处是它可通过允许用户将用于多个装置的命令序列编制到遥控装置中来提供一定的集成度。这是一个较困难的任务,以至于许多用户雇佣职业的安装人员来对他们的通用遥控单元进行程序编制。
人们还做出了一些尝试来使终端用户和媒体系统之间的屏幕界面适应现代需求。电子节目指南(EPG)被开发并被实现以取代前述的媒体指南。早期的EPG基本提供的是印制的媒体指南的电子复制品。例如,有线服务操作员提供了模拟的EPG,其中,专用的频道显示了频道的缓慢滚动格栅(grid)和它们在一些时间范围(例如,下两个小时)中相关的节目。利用这种方式即便是滚动通过一百个频道也是冗长缓慢的,并且不能够可行地升级以包括大量的附加内容安排(deployment),例如,视频点播。更加精深复杂的数字EPG也被开发出来。在数字EPG中,节目表信息(以及可选的应用/系统软件)被传递到专用的EPG设备,例如,数字机顶盒(STB)。数字的EPG具有更大的灵活性来为媒体系统设计用户界面,这是因为它们能够提供局部交互,并能够在用户和将被观看的媒体节目之间置入一个或多个界面层。可在卡门(Kamen)等人的第6,421,067号美国专利中找到上述界面的一个实施方案,该文公开的内容被并入本文作为参考。图2示出了在’067号专利中描述的一种GUI(图形用户界面)。在图2中,根据卡门等人的专利,第一栏190列出了节目频道,第二栏191表示当前正在播放的节目,栏192表示在下半个小时播放的节目,第四栏193表示在半个小时之后播放的半小时节目。棒球棒图标121横跨栏191和192,以此表示预计棒球比赛继续到与栏192对应的时间档。然而,文本框111没有延伸通入栏192。这表示预计美式足球比赛不会延伸到与栏192对应的时间档。如图所示,象形图标194表示在美式足球比赛之后,ABC将播出赛马节目。图2中的图标能够使用游标(未示出)来启动(actuate)以执行各种操作,例如下载与所选择节目相关的信息。在美国第6,314,575、6,412,110和6,557,350号专利中还描述了其它的数字EPG和相关界面,其公开的内容也被并入本文作为参考。
然而,上述的界面具有(在其它的缺点中)不能够容易地在媒体项目的大集合和媒体项目的小集合之间调整大小(scale)的问题。例如,依赖于节目列表的界面可以为小的媒体节目集合很好地工作,但是对于浏览大的媒体节目集合却是冗长乏味的。与用于大媒体节目集合的列表界面相比,依赖于分等级的导航(navigation)(例如树结构)的界面可具有更快的遍历速度,但是不适于小的媒体节目集合。另外,用户趋向于失去在其中用户不得不在树结构中移动经过三层或更多层的选择处理的兴趣。对于所有的这些情况,目前的遥控单元通过迫使用户反复地按下上按钮和下按钮来遍历上述列表或分级结构以更冗长乏味地进行这些选择处理。在可以使用选择跳跃控制时(例如上翻页和下翻页),用户经常不得不看该遥控装置以找到这些具体的按钮,或不得不经过训练以知道它们恰好存在。
简化用户与媒体系统之间的控制和屏幕界面、并加快选择过程的组织架构、技术和系统已在2004年1月30日提交的、题为“用于组织、选择和启动媒体项的带有可缩放的图形用户界面的控制架构”的第10/768,432号美国专利申请中描述,该专利申请公开的内容通过引用并入本文,并在下文引用为“432申请”。该架构允许服务提供商通过便利地向用户供应大量媒体节目和新的服务来利用对终端用户设备增加的可用带宽的益处。
与用户界面相关联的典型的软件开发、以及与例如机顶盒和电视系统相关联的应用程序设计包括两个不同极端之间的选择。一种方法是将全部的软件作为一个统一的应用程序开发。这种方法的优势在于,完全封装(encapsulate)了用户和用户界面之间的交互作用且能够完全控制其性能。其缺陷在于用户界面新特性的开发慢,因为每当某一方面发生变化时,整个应用程序都受到影响。此领域的另一个极端的方法是设计与网络浏览器非常类似的用户界面。利用这种方法,构建翻译HTML码从而建立用户界面屏幕的小型机器。该第二方法的优势在于应用程序的开发非常快。其缺陷在于用户与用户界面之间的交互作用没有被完全封装并且带宽性能问题没有得到完全控制。由于一致的用户交互作用对好的用户界面设计(尤其是电视用户界面设计)是重要的,因此前一个问题可能十分重要。此外,因为例如机顶盒经常必须克服严重的带宽限制,所以后一个问题也可能很麻烦。
因此,期望得到克服这些困难的用户界面、方法和软件设计架构。
发明内容
根据本发明的系统和方法通过提供显示在屏幕上的、具有多个控制元件的用户界面满足了上述需要和其它需要,多个控制元件中的至少一些上显示至少一个文字数字式字符。文本框用于显示利用多个控制元件输入的文字数字式字符、和多组显示项。用户界面上多个组的布局基于被显示的组的第一个数,其中组内显示项的布局基于在组内显示的显示项的第二个数。
本发明一个示例性的实施方案提供了一种用于与元数据处理系统相关联的分布式软件架构的方法,包括以下步骤:提供多个第一类型的系统范围软件构造,其每一个定义用户与各自的高层元数据类型的交互;以及提供至少一个第二类型的低层系统范围软件构造,其中所述多个第一类型的系统范围软件构造中的每一个包括一个或多个所述第二类型的低层系统范围软件构造。
本发明另一个示例性的实施方案提供了具有分布式软件构造的元数据处理系统,包括:元数据供应源,用于为所述元数据处理系统提供各种类型的元数据;多个第一类型的系统范围软件构造,其每一个定义用户与各自的高层元数据类型的交互;以及至少一个第二类型的低层系统范围软件构造,其中所述多个第一类型的系统范围软件构造中的每一个包括一个或多个所述第二类型的低层系统范围软件构造。
附图说明
相应的附图描述本发明的示例性实施方案,其中:
图1示出了用于娱乐系统的传统遥控单元;
图2示出了用于娱乐系统的传统图形用户界面;
图3示出了在其中能够实现本发明的示例性实施方案(显示器和遥控器)的一个示例性媒体系统;
图4详细地显示了图3中的系统控制器;
图5-8示出了根据本发明一个示例性实施方案的用于媒体系统的图形用户界面;
图9描述了根据本发明一个示例性实施方案的示例性数据结构;
图10(a)和10(b)描述了利用图9所示的根据本发明一个示例性实施方案的数据结构建立的示例性GUI的一部分的缩小和放大版本;
图11示出了用于产生根据本发明的示例性实施方案的GUI显示的有序双向链表;
图12(a)和12(b)显示了另一示例性GUI的一部分的缩小和放大版本,它用于描述根据本发明的示例性实施方案的节点监视算法的操作;
图13(a)和13(b)示出了根据本发明的示例性实施方案的示例性数据结构,其被用来描述在GUI从图12(a)中的视图向图12(b)中的视图转换时节点监视算法的操作;
图14示出了根据本发明另一个示例性实施方案的、包括实现分辨率一致的缩放的虚拟相机的数据结构;
图15(a)和15(b)显示了示例性GUI的一部分的缩小和放大版本,其示出了根据本发明的示例性实施方案的语义缩放;
图16-20示出了根据本发明另一个示例性实施方案的可缩放的图形用户界面;
图21描述了一组示例性的、能够根据本发明的示例性实施方案被提供的覆盖控制(overlay control);
图22描述了用于实现根据本发明的可缩放图形用户界面的示意性架构;
图23示出了根据本发明的示例性实施方案的与生成可缩放图形用户界面相关联的数据流;
图24描述了根据本发明的示例性实施方案的利用程序块绘制的GUI屏幕;
图25描述了根据本发明的示例性实施方案的利用程序块绘制的第二GUI屏幕;
图26描述了根据本发明的示例性实施方案的可用于创建程序块的工具箱屏幕;
图27描述了根据本发明的示例性实施方案的、系统程序块在其中作为便于分布式软件设计的系统构建块使用的系统;以及
图28示出了根据本发明的示例性实施方案的不同类型的程序块的层次(hierarchy)。
具体实施方式
下面参照附图对本发明进行详细的说明。在不同的附图中,相同或相似的元件用同一参考标号表示。此外,以下对本发明的详细说明并不是对本发明的限制。相反,本发明的范围是由所附权利要求来限定的。
为提供上下文以便于讨论,首先参考图3至图22对其中可以实现本发明的一个示例性的集成媒体系统200进行详细描述。但是,本领域普通技术人员可以预见到,本发明并不仅限于实现这类媒体系统,而是可以在其中包括更多或更少的组件。在本系统中,输入/输出(I/O)总线210将媒体系统200中的各个组件连接在一起。该I/O总线210代表多种用于对媒体系统组件之间的信号进行传输的机制和技术中的任意一种。例如,该I/O总线210可以包括适当数量的用于传输音频信号的独立音频“插头”电缆、用于传输视频信号的同轴电缆、用于传输控制信号的双线式串行线路或红外线或射频收发器、光纤或任何用于传输其它类型的信号的其它传输机制。
在这个示例性的实施方案中,媒体系统200包括电视/监视器212、视频卡式记录器(VCR)214、数字化视频盘(DVD)记录/回放装置216、音频/视频调谐器218和小型碟播放机220,这些器件都被连接到I/O总线210上。VCR 214、DVD 216和小型碟播放机220可以是单光盘或单磁带式设备,也可以是多光盘或多磁带式设备。它们可以是独立的单元或者被集成在一起。此外,媒体系统200还包括一个麦克风/扬声器系统222、摄像机224和无线I/O控制装置226。根据本发明的示例性实施方案,无线I/O控制装置226是支持自由空间定位的媒体系统遥控单元,它具有最小数目的按钮以用于支持导航,并通过RF信号与娱乐系统200进行通信。例如,无线I/O控制装置226可以是利用回转仪(gyroscope)或其它机制来限定屏幕位置和位移矢量从而确定出所需的特殊命令的自由空间定位装置。在无线I/O控制装置226上还可包括将启动在下面描述的“点击”基元(primitive)的一组按钮,以及包括“后退”按钮。在另一个示例性的实施方案中,无线I/O控制装置226是通过IR信号与媒体系统200的组件进行通信的媒体系统遥控单元。在另一个实施方案中,无线I/O控制装置134可以在外观上类似于典型的媒体系统遥控装置,同时增加有可允许用户在媒体系统100的显示器中设置鼠标位置的跟踪球或其它导航机制的特性。
媒体系统200还包括系统控制器228。根据本发明的一个示例性的实施方案所述,系统控制器228能够操作以存储和显示可从多个娱乐系统数据源获得的娱乐系统数据,并能控制与系统各组件相关的多种特征。如图3所示,必要时,系统控制器228可通过I/O总线210被直接或者间接地连接到系统的各个组件。在一个示例性的实施方案中,除I/O总线210外,或者用来替代I/O总线210,系统控制器228配备有无线通信发射机(或收发器),它能够通过IR信号或RF信号与系统组件进行通信。无论控制媒质是什么,系统控制器228都被设置成能够通过下文所述的图形用户界面来控制媒体系统200中的各个媒体组件。
如图3进一步所示,媒体系统200可以被设置用于接收来自多个媒体源和服务提供商的媒体节目。在这个示例性的实施方案中,媒体系统200从以下数据源中的任一个或全部接收信息并且可选择地向其发送信息:有线广播230,卫星广播232(例如通过卫星天线),广播电视网234的甚高频(VHF)或超高频(UHF)射频通信(例如通过空中的天线),电话网236和有线调制解调器238(或者其它的互联网内容源)。本领域技术人员可以预见到,图3所示的媒体组件和媒体源仅仅是一个示例,媒体系统200可以包括更多或者更少的这些组件。例如,对于上述系统的其它形式的输入包括AM/FM无线装置和卫星无线装置。
图4是示出根据本发明的示例性的系统控制器228的方框图。系统控制器228例如能够实现为机顶盒,并例如包括处理器300、存储器302、显示器控制器304、其它设备控制器(例如,与系统200的其它组件相关的装置)、一个或多个数据存储设备308以及I/O接口310。这些组件通过总线312与处理器300进行通信。本领域技术人员可以预见到,可使用一个或多个处理单元来实现处理器300。存储设备302可例如包括DRAM或SRM、ROM,这些存储设备中的一些可以被指定成存储待由处理器300运行的软件和/或这些程序使用的数据的高速缓冲存储器,这些软件和数据包括与在下面描述的图形用户界面相关联的软件和/或数据。显示器控制器304可由处理器300操作以控制监视器212的显示,以连通其它事情一起显示在下面描述的GUI屏幕和对象。根据本发明的示例性实施方案的可缩放的GUI提供了与分辨率(resolution)无关的缩放,从而使得监视器212能够以任意的分辨率进行显示。设备控制器306提供了媒体系统200的其它组件和处理器300之间的接口。数据存储器308可包括一个或多个硬盘驱动器、软盘驱动器、CD-ROM设备或其它的大容量存贮器设备。输入/输出接口310可包括多种接口中的一个或多个,包括例如键盘接口、RF接口、IR接口和麦克风/语音接口。根据本发明示例性的实施方案,I/O接口310将包括用于接收与无线定位装置的运动关联的位置信息的接口。
根据本发明的示例性实施方案的图形用户界面由系统控制器228响应处理器执行包含于存储器302中的指令序列来生成和控制,以显示媒体项选择信息。上述指令可从其它计算机可读媒介(例如数据存储设备308)或从外接于媒体系统200的计算机读入到存储器302中。对包含于存储器302中的指令序列的执行使得处理器在监视器212中连同其它的事情一起生成图形用户接口对象和控制。在可选的实施方案中,可使用硬连线电路来代替或与软件指令组合来实现本发明。如在背景技术部分中提到的那样,传统的与电视工业关联的界面架构在为用户提供简单且全面的选择体验能力方面具有严重的缺陷。因此,在本文中描述的控制架构克服了这些限制,并因此适于与电视一起使用,当然不排除与其它装置一起使用。还应该预见到在本文中描述的创新的控制架构、图形用户界面和/或各种算法可应用于与计算机和其它非电视设备使用的接口中。为了区别本发明的示例性实施方案的这些各种应用,在本说明书中使用术语“电视”和“TV”来指代显示器设备的子集,而术语“GUI”、“GUI屏幕”和“显示屏”是普通的,并指电视显示器、计算机显示器和其它任意显示器设备。更具体地说,术语“电视”和“TV”的意图是指在无需使用适配器就可将电视信号转换为其它格式(例如,计算机视频格式)的情况下能够显示电视信号(例如,NTSC信号、PAL信号或SECAM信号)的显示器设备的子集。此外,术语“电视”和“TV”指通常能从几英尺或更远的距离观看的显示器子集(例如沙发到家庭活动室TV),而计算机显示器通常是近距离观看的(例如,从椅子到桌面的显示器)。
在描述了能够用来实现根据本发明的包括可缩放图形界面的控制架构后,现在描述这些界面的几个实施例。根据本发明的示例性实施方案,用户界面显示了可按类别分组的可选择项。用户将遥控单元指向感兴趣的一个或多个种类,并且按下选择按钮以进行放大,或按下“后退”按钮缩放回原来的状态。用户的每次放大或缩放回原来状态的动作都使得通过用户界面显示于屏幕中的可选择的节目的放大等级和/或内容产生变化。根据示例性的实施方案,每次放大等级的改变可以是一致的,即以预定的级别来改变放大等级。本发明的示例性实施方案还提供了并入有几个可视化技术以实现放大到很大比例的用户界面。这些技术包括构件块和能够获得可缩放和易于使用的技术(尤其是采用用户界面来提高用户视觉记忆以快速地重新访问用户界面对象的技术)的组合。
用户界面在很大程度上是视觉体验。在这样的环境中,本发明的示例性实施方案使用了用户能够记起该视觉环境中的对象位置的能力。这通过为用户界面选择项提供稳定的、相关的(dependable)位置来实现。每一个对象在可缩放布局中都具有相应的位置。一旦用户发现感兴趣的对象,就会本能地记起设置对象的方向。如果该对象是特别感兴趣的,则用户可能会不止一次地访问该项目,这会加强用户对到该对象的路径的记忆。根据本发明的示例性实施方案的用户界面提供了视觉记忆系统(visual mnemonics),它能够帮助用户记起所感兴趣的项目的位置。该视觉记忆系统包括移动(pan)和缩放动画、通过用户界面的虚拟面生成运动的地理感觉的转场效果、和一致的缩放功能性(functionality),基于下面描述的实施例,它们连同其它的事情一起将变得更加显而易见。
组织机制被提供以使得用户能够从极多的节目组中进行选择,而同时屏蔽与大量选择组关联的细节。根据本发明,可以使用各种类型的组织机制,在下面给出实施例。
首先参照图5到图8,其中描述了根据本发明的示例性实施方案的包括可缩放图形用户界面的示例性控制架构在显示和选择音乐媒体节目中的使用。图5描绘了处于最大缩小状态的可缩放的GUI。其中,界面显示了一组形状(shape)500。显示在各个形状500中的是描述通过GUI的这些部分可对媒体节目选择组进行操作的文本502和/或图片504。如图5所示,形状500为矩形的,文本502和/或图片504描述了媒体的种类。然而,本领域的技术人员应该认识到,该首先看到的GUI组能够表示用户可得到的媒体选择的其它方面,例如,艺术家、出品年份、艺术家的居住区域、节目的长度或选择的其它特征。而且用来在GUI中概略描述各种分组的形状不一定要是矩形的。除了形状组500中的文本500和/或图片504外,或作为对文本500和/或图片504的替代,专辑封面(album cover)的缩小版本和其它图标能够用来为用户提供进一步的浏览提示。GUI 506的背景部分可以显示为纯色,或可以是例如映射图的图片的一部分,以帮助用户记起种类的空间位置,从而在以后需要较少阅读就能使用该界面。选择定位器(游标)508跟随输入设备的运动,并在用户按下该设备中的按钮(在图5中未示出)时指出将要放大的位置。
根据本发明的一个示例性实施方案,输入设备可以是自由空间定位设备,例如在2005年5月2日提交的、标题为“自由空间定位设备和方法”的第11/119,683号专利申请中描述的自由空间定位设备,该申请公开的内容通过引用并入本文,并在下文中称为“‘683号申请”,它与支持定位、点击、滚动、停悬和缩放构件块(将在下面进行更加详细的描述)的图形用户接口耦合。在和本发明一起使用时会带来有益效果的该示例性输入设备的一个特征是,其仅具有两个按钮和一个滚动轮,也就是三个输入启动对象。这些按钮中的一个能够被配置成放大(选择)按钮,另一个按钮能够被配置为缩小(后退)按钮。与例如图1所示的传统遥控控制单元相比,本发明通过大大减少按钮的个数等来简化用户在选择他或她的媒体节目时所面对的GUI的这些方面。根据本发明的示例性实施方案的输入设备的附加优选(但不是必需)特征是它们为用户提供了“自由空间定位”的能力。在该说明书中使用的短语“自由空间定位”指用户在显示屏前空中的三维(或更多)空间自由移动输入设备的能力,以及用户界面将这些运动直接转换为游标在屏幕上的运动的相应能力。因此,“自由空间定位”不同于传统的计算机鼠标定位技术,传统的计算机鼠标定位技术使用不同于显示屏的表面(例如桌子表面或鼠标垫)作为代理(proxy)表面,鼠标在这些表面的相对运动被转化成计算机显示屏中的游标运动。使用自由空间定位来控制根据本发明的示例性实施方案的架构进一步简化了用户的选择过程,而同时提供了将姿势(gesture)作为可区别的输入引入到上述界面的机会。姿势可被看作是能够随时间变化的可识别运动模式,该模式可被转换为GUI命令,例如以x、y、z、平摆(yaw)、俯仰(pitch)和摇摆维度的或它们任意的子组合的运动的函数。然而,本领域的技术人员应该认识到任意适合的输入设备能够与根据本发明的可缩放的GUI一起使用。其它适合的输入设备的实施方案包括但不限于跟踪球、触摸垫(touchpad)、传统的TV遥控设备、语音输入设备、任意能够将用户的姿势传递/转换成GUI命令的设备,或它们的任意组合。其意图是在本文中进行描述的GUI功能的每个方面都能够使用至少一个姿势和语音命令在根据本发明的架构中启动。可选的实现包括使用游标和/或其它遥控键或甚至是语音输入来识别选择的节目。
图6显示了如果用户从图5中选择种类3(例如,通过在显示器212中将游标508在矩形环绕种类3围绕的区域上移动,并在输入设备中按下按钮)的话将被显示的种类3进行放大的图。本发明的界面能够产生从图5到图6的缩放,从而使得用户清楚产生了缩放。上述产生的缩放/转场效果的实施例将在下面进行描述。一旦包含种类3的形状516占用了大部分的显示器212中的屏幕,上述界面显示了在上述种类中具有专辑的艺术家。在该实施例中,显示了七个不同的艺术家和/或它们的作品。与种类3相邻的未选择的种类515(其在图5中为缩小视图)仍然与在视图上放大的种类3相邻,但是它在显示器212的边缘处于被部分剪切的状态。这些未选择的种类能够通过选择指针508对它们的选择进行快速浏览。然而应该认识到本发明的其它示例性实施方案能够忽略被剪切相邻对象,相反仅显示未被剪切的选择。艺术家组(例如,艺术家组512)中的每一个都能够包含缩小专辑封面的图像、艺术家的照片或可由用户定制的艺术作品(如果上述分类包含用户建立的艺术家列表的话)。
用户则可以选择一个艺术家组用于进一步浏览和/或选择。图7显示了响应用户经由对游标508进行定位、并启动输入设备而选择了艺术家3的进一步放大的视图,其中,可以看到专辑封面520的图片。如图从图5和图6的GUI屏幕转变一样,未被选择的、邻近的艺术家(在该实施例中是艺术家#2、6和7)被显示为朝向被放大的显示中的侧边,用户能够使用选择指针508对它们进行点击,从而看到这些艺术家的全部视图。除了专辑封面的图像520外,在界面的这部分中,艺术家信息524能够作为艺术家组中的节目而显示。这些信息可包含例如艺术家的照片、传记、琐事、作品目录、影响、链接网址和其它有关数据。相册图片520中的每一个可包含相册封面的图片,以及可选地包含有文本数据。在相册图片520包括用户创建的艺术家列表的情况下,图形用户界面能够显示通过该界面自动选择或用户预先选择的图片。
最后,在用户从组521中选择专辑封面图片520时,上述界面缩放到如图8所示的专辑封面。随着缩放的继续,该专辑封面能够退为或变为包含这样一些项目的视图,例如,专辑530的艺术家和标题、曲目列表532、与专辑相关的进一步信息536、专辑封面的更小版本528、以及用于回放内容、修改分类、链接到艺术家网页,或找出与选择有关的任意其它信息的控制信息534。相邻的专辑538显示出那些能够通过使用选择定位器508选择,以使得界面显示它们的内容。如上所提到的那样,本发明可选择的实施方案能够例如放大到仅显示被选择的对象(例如,专辑5),并忽略未被选择的对象(例如,专辑4和6)的剪切部分。该最终的缩放提供了语义性缩放(semantic zooming)的一个实施方案,其中某些GUI元件被显示出来,而先前的缩放等级中它则是不可见的。各种用于实现根据本发明的示例性实施方案的技术在下面进行描述。
如图5-8以及说明书中示出的那样,该示例性实施方案的图形用户界面提供了对音乐集的浏览。根据本发明的界面还能够用于视频集,例如用于DVD、VHS带、其它记录的媒体、视频点播、视频片段和家庭影院。其它的音频使用包括对无线电节目、教学磁带、文史资料和声音剪接的浏览。还能够使用本发明来组织和访问印制的或文本媒体,例如新闻故事和电子书。
根据前面的描述,本领域的技术人员应该认识到,根据本发明的可缩放的图形用户界面为用户提供了快速且容易地浏览大量(或较少)媒体项的能力。这种能力可归因于本发明的示例性实施方案的界面的许多特性,这些特性包括但不限于:(1)使用图像作为用于特殊媒体项的全部或部分选择信息,(2)使用缩放来快速提供与用户进行选择所需的尽可能多或尽可能少的信息,以及(3)使用几种GUI技术,它们被组合起来给用户所有界面都位于同一平面的感觉,从而能够完成GUI的浏览,并通过用户的方向感觉而被记住。根据本发明的GUI的后一方面能够连同其它事情一起将各种GUI屏幕“地理性地”连接起来,它通过使尽可能多的GUI对象从一个GUI屏幕到下一个GUI屏幕保持连续而实现,例如,通过显示相邻的、环绕于当前GUI屏幕边沿的未被选择的对象的边缘。可选地,如果期望得到清楚的视图以及其它的GUI技术提供地理性的反馈,则可以忽略被剪切的对象。如在该文种使用的那样,短语“GUI屏幕”指在同一时间呈现于一个或多个显示器单元中的一组GUI对象。GUI屏幕可被呈现于输出媒体项的同一显示器中,或者它可被呈现在不同的显示器中。显示器可以是TV显示器,计算机监视器或任意其它合适的GUI输出设备。
另一个提高用户感觉到GUI屏幕是连接性的GUI效果是在执行缩放时、或在用户选择与当前被选择的对象的缩放等级相等的邻近对象时产生的移动动画(panning animation)效果。返回到图5所示的实施例,在用户最初观看该GUI屏幕时,他或她的观察点集中在点550附近。然而,在他或她选择种类3进行放大时,他或她的观察点转移到点552。根据本发明的示例性实施方案,放大处理被激励以将POV中心从点550转移到点552。这种移动动画能够被用来改变各种GUI,例如从缩放等级的改变,或将一个对象改变到同一GUI放大等级中的另一个对象的改变。因此,如果(例如)位于图6的GUI屏幕中的用户选择最左侧的未被选择的种类515(种类2),则将发生移动动画,这将给用户在视觉上以左或西“移”的影响。本发明的示例性实施方案使用上述技术来提供GUI屏幕之间的定向运动是一致的感觉,从而使用户更加快速地在放大等级之间和在相同放大等级的媒体项之间浏览GUI。
能够使用各种数据结构和算法来实现根据本发明的可缩放的GUI。例如,用于在显示照片的图像浏览器中进行移动和缩放的数据结构和算法在例如下面的论文中已经被描述:“Quantum Treemaps andBubblemaps for a Zoomable Image Browser”,Benjamin B.Bederson,UIST2001,ACM Symposium on User Interface Software and Technology,CHI Letters,3(2),pp.71-80(本杰明·B·比得森的题为“用于可缩放图像浏览器的量子数图和冒泡图”,UIST2001,用户界面软件和技术的ACM论坛,CHI学报,3(2),第71-80页),其被并入本文作为参考。然而,为了提供用于媒体选择的、能够以高的等级来在大量的应用中进行切换,并且能够使用户以较低的等级控制所选择的图像以执行各种媒体选择功能的GUI,需要附加的结构和算法。
可缩放的GUI可被概念化为能够在显示设备的视区中的用户界面组件的场景周围支持移动和缩放动画。为了完成这种影响,根据本发明的示例性实施方案的可缩放的GUI能够使用场景图数据结构(scenegraph data structure)来实现。在场景图中的每一个节点表示用户界面组件的某些部分,例如按钮或文本标签或一组界面组件。节点内部的子节点表示图形元素(线、文本、图像等)。例如,在场景图中的一个应用可以被表示为具有用于其界面中的图形元素的各种子节点的节点。两种特殊类型的节点在本文中被称为相机和分层。相机是通过着眼于分层节点而将视区提供到场景图的其它部分的节点。在这些分层节点的下面是用户界面元素。用于可缩放界面的控制逻辑通过编程调整相机视线变化,以提供移动或缩放效果。
图9显示了包含基本可缩放的界面元素的场景图,这些元素能够用来实现本发明的示例性实施方案,具体地讲,该场景图包含了一个相机节点900和一个分层节点902。相机节点900和分层节点902之间的点划线表示相机节点900被配置成将分层节点902的子节点绘制(render)到相机的视区中。被联结的显示器设备904使用户看到相机的视区。分层节点具有描绘圆和一对椭圆的三个子节点904。该场景图还进一步指出,通过节点912-918在上述圆中画出了矩形,以及在三个三角形中画出了矩形。场景图通过根节点920被联系入其它数据结构的其它场景图。节点906-918中的每一个具有通过使用局部坐标变换矩阵使其相对于其父节点进行比例缩放和定位的能力。图10(a)和10(b)分别示出了通过相机以第一放大等级缩小、以及以第二放大等级放大的场景图的样子。
绘制场景图可实现如下。当显示器904需要更新时,例如用户触发了从图10(a)的视图到图10(b)的视图的放大,则重画事件调用联结到显示器904的相机节点900以绘制相机节点900自身。这样反过来使得相机节点900通知分层节点902绘制相机视区内的区域。分层节点902通过通知它的子节点绘制这些子节点自身而将其本身绘制,等等。用于上述区域更新的当前变换矩阵和外接长方形在各个步骤被传递(pass),并且可选地得到修改以通知各个节点它们应该用来进行绘制的适当比例和偏移。由于在根据本发明的可缩放的GUI内操作的应用的场景图可包括数以千计的节点,所以各个节点能够检测变换矩阵以及要被更新的区域,以确保它们的绘制操作真正能够被用户看到。尽管前面描述的实施例描述了包括一个相机节点和一个分层节点的场景图,但是应该预见到,本发明的示例性实施方案能够嵌入多个相机和分层。这些被嵌入的相机能够为用户提供用户节点元素,例如指示在整个可缩放界面中用户当前视线区域的小的缩小图,并且能够允许用户界面组件可独立地缩放和移动。
在使用可缩放界面来协调多应用(例如像将在下面参照图14-18描述的示例性电影浏览器一样)的操作时,用于每个应用的存储和资源需求可能会超过在媒体系统中的总有效存储。这就暗示在用户不再看它们时,需将这些应用的一些或全部代码和数据卸载。然而,在根据本发明的可缩放的GUI中,提供这样的外观是期望的,即,使一些或所有应用对于用户总是看起来是激活的。为了满足上述两个对抗的目标,对于用户视线来说是“幕外(off-screen)”的应用能够进入到临时挂起的状态。为了在根据本发明的可缩放的GUI中实现这个功能,将事件发送到应用以指示它们何时进入和退出视区。实现上述事件的一个方式是在绘制组件的代码中增加逻辑,从而使得在用户进入视区时进行检测。然而,这意味者该通知逻辑在每个绘制事件被调用,并且更重要的是在用户浏览过远离组件的视区时,它不能够容易地检测。另一种用于将事件发送到应用的方法是将通知逻辑并入到GUI浏览元件(例如超级链接和按钮)中,从而使得在它们改变相机视区以将所感兴趣的组件包括进来时,将通知发送到上述组件。然而,这需要程序员来警惕地(vigilantly)将通知代码增加到所有可能的浏览UI元素中。
根据一个示例性实施方案,能够使用有计算效率节点监视算法来通知应用GUI组件和/或应用在何时进入和退出相机视区。在高的等级上,该节点监视算法具有三个主要处理级:(1)初始化,(2)视区改变评估,以及(3)场景图改变评估。初始化级计算由视区改变评估级使用的节点量,并且初始化正确的数据结构。视区改变评估级在视区改变时被调用,并通知所有进入或退出视区的监视节点。最后,场景图改变评估级更新在初始级产生的计算,这些计算由于在场景图中的变化而变得无效。例如,如果监视节点的先辈节点(ancestor node)在场景图中改变了位置,则在初始级中进行的计算需要重新计算。
在这些级中,视区改变评估级驱动节点监视算法的其余部分。为了描绘节点在何时进入和退出视区,初始化步骤确定期望节点的边界矩形,并将其从其局部坐标系统转变到视区的局部坐标系统。按照这种方式,检测节点进入不需要在各个视区改变处进行一系列坐标转换。由于该节点的父节点可具有转换矩阵,所以该初始步骤需要从该节点直到相机节点来遍历场景图。如下所述,如果在场景图数据结构中使用嵌入的相机节点,则需要多个边界矩形来容纳在多个位置出现的节点。
在视区坐标系统中计算出用于各个监视节点的边界矩形后,初始化级将边界矩阵增加到视区改变评估数据结构中。上述节点监视算法使用基本的构件块用于屏幕中的每一维度。在根据一些示例性实施方案的可缩放界面中,这包括x维度、y维度以及比例维度。然而,如在下面所述的那样,其它示例性实施方案可具有附加的或不同的维度。比例维度描述了在视区的节点的放大等级,并且通过下式来描述:
s = d ′ d
其中,s是比例,d是从该节点的一个点到该节点的局部坐标中的另一个点的距离,以及d’是在该视区中上述点到另一点的距离。
图11显示了用于检测一个维度的场景进入和退出的示例性构件块。下面描述在x维度的处理,但是本领域的技术人员应该认识到能够以相似的方式处理其它的维度。区域块1100包含被转换边界矩形坐标的基准(references)。这包括矩形的左和右(顶部和底部或最小和最大比例)偏移量。左和右偏移量分别存储在转换块1102和1104中,转换块1102和1104本身置于有序的双向链表中,从而使得较低编号的偏移量朝向起始位置。当前的视区边界存储于视线边界区块1106。区块1106具有指向刚好超出视图的左侧和右侧的转换块的指针,例如,直接位于由视图左侧指向的区块的右侧的转换块出现在视图中,除非上述由视图左侧指向的区块由视区右侧指向。
在视区改变时,对于每一维度发生下述处理。首先,检测视图左侧和视图右侧指针以确认它们是否需要移动以包括或排除转换块。接下来,如果上述指针中的一个或两个需要移动,则它们略过(slide over)上述转换块以到达它们新的位置。接着,对于由左侧和视图右侧指针经过的每个转换块,上述节点监视算法执行在下面将描述的转换块通知编码。该通知编码确定其各自的节点是否有可能进入或退出的视区。如果具有,则该节点被添加到后处理列表(post processing list)中。最后,在用于各个维度的该处理的结尾,检测上述后处理列表中的各个节点其视区状态是否真实地发生了改变(与先改变然后变回相反)。如果真的发生了改变,则上述算法发送事件到上述组件。应该注意到,如果视区快速跳转到可缩放的界面的新区域,则上述算法可检测到更多伪进入和退出事件。
转换块通知编码能够被实现成检查表,该检查表确定移入和移出用于该维度的节点是否被检测。下面显示了示例性的上述表。
  节点侧   视图侧   视图移动方向   局部相交通知   完全相交通知
  左   左   左   无   进入
  左   左   右   无   退出
  右   左   左   进入   无
  右   左   右   退出   无
  左   右   左   退出   无
  左   右   右   进入   无
  右   右   左   无   退出
  右   右   右   无   进入
表1-转换通知表
第1、2和3栏是转换通知表的输入。具体地说,节点监视算法使用节点侧、视图侧和视图移动方向的组合来编址该表,以确定该评估的节点是否被进入、退出或没有影响。栏1指由视区指针经过的转换块所表征的节点侧。栏2指视区侧,栏3指在视区通过节点的转换块时该视区侧移动的方向。输出栏4或5是在上述节点部分或完全可视时根据该节点是否应该被通知来进行选择的。例如,在一些实现方案中,理想的情况是仅在应用(例如视频流窗口)完全可视之后才通知该应用,这是因为将部分可视的视频窗口加载到可缩放的GUI中在视觉上是分裂性的。
在该表的输出表示进入和退出时,该节点监视算法将该节点添加到后处理列表。表1中的输出栏基于下面的规则来填充(populate)。如果该节点在所有的维度相交,则将进入通知发送到上述后处理步骤。如果该节点在视图中并且现在一个或多个维度停止交叉,则将发送退出通知。为了降低后处理列表中的节点个数,转换块通知编码在将该节点添加到列表之前检测与其它维度的交叉。这在所有数目的维度(例如,三个或更多交叉)中仅有一个或两个维度交叉时,免去了后处理步骤。在用户界面对象(例如,应用)要被通知其在GUI中的视区状态时,它用上述节点监视算法登记一个函数(function)。在上述应用进入或退出视图时,节点监视算法用指示发生什么情况的参数来调用该应用所登记的函数。作为一种选择,能够使用消息传递来执行通知。在这种情况下,各个应用具有事件队列。上述应用告诉节点监视算法如何与其事件队列来通信。例如,它能够指出队列的地址。接着,在节点监视检测出转换时,它建立包含通知起因的数据结构,并将其置于该应用的队列中。
除了使用用于应用存储管理的节点监视通知,该算法还能够用于根据本发明的可缩放GUI中的其它功能。例如,节点监视算法能够用来基于用户视图的焦点来改变应用行为,例如通过将音频输入焦点切换到当前可视的应用中。其它用于节点监视算法的应用在放大等级改变时,将载入或卸载较高的分辨率,并将图像进行合成。这通过使绘图实施者(renderer)绘制较少的、分辨率更加接近匹配显示器的对象,来降低了其计算负载。除了节点监视算法监视相机的视区外,使它监视浏览编码(navigation code)也是有用的,该浏览编码告诉视区在动画制造之后该视区所结束的位置。这较早地通知组件它们将出现在视图中,并且还能够使得根据本发明实施方案的可缩放的GUI避免将通知发送到由于移动动画而被溢出的节点。
为了更好地理解节点操作监视算法的操作,下面将参照图12(a)、12(b)、13(a)和13(b)来描述实施例。图12(a)和12(b)示出了两个不同放大等级的、可缩放的图像用户界面的部分。在图12(a)的较低放大等级处可以看见三个节点:圆形、三角形和椭圆。在图12(b)中,该视图被放大,从而使得椭圆和圆形部分可见,三角形完全不可见。这些节点可例如表征依赖于有效事件通知的应用或用户界面组件,并因此由根据本发明的示例性实施方案的节点监视算法跟踪。在该实施例中,在图12(a)和12(b)明确示出了各个节点的边界矩形,尽管本领域的技术人员应该认识到在GUI中典型地不会显示这些边界矩形。在12(a)和12(b)中对各个边界矩形的各边进行了标注,这些标注将用来显示边界矩形的边与上面描述的转换块数据结构之间的对应关系。
图13(a)示出了用于图(12)的缩小视图的水平维度的示例性节点监视数据结构。在该图中,节点边界矩形的各边使用转换块来表征。水平转换块以它们在GUI中出现的从左到右的顺序显示于图13(a)中。例如,圆形的左边C首先出现,接着三角形的左边T,等等,直到椭圆的右边E出现为止。该列表的两端用空标志转换块来标记。在图13(a)中还显示了用于各个节点和指向它们相应的到它们边界矩形的水平转换块的指针的区域块。在图13(a)的底部是视图边界数据结构,它包含指向刚好位于当前视图之外的转换块的指针。对于该缩小的视图,所有节点是完全可见的,并因此它们所有的转换块位于由视图边界数据结构指向的转换块之间。
图13(b)显示了用于图12(b)的放大视图的节点监视数据结构。在该图中,可以看出数据结构的视图边界部分被改变,从而使得它指向用于三角形的右边T以及椭圆的右边E的转换块,这是因为上述两个边界矩形边正好位于当前(放大)视图之外。
在给出上述示例性数据结构和GUI场景后,在进行缩放转换时节点监视算法内的相关处理如下所述。首先从视图的左侧开始,节点监视算法将视图左侧指针向右移动,直到到达刚好处于左侧视图之外的转换块。如图13(b)所示,视图左侧指针首先通过C转换块。例如,假设圆形节点表征与可缩放的GUI关联的应用或其它用户界面对象(在其完全在视图中可视时,需要通知)。给出到节点监视算法的上述输入后,表1示出该圆形节点对于水平维度应该接收退出通知。当然,节点监视算法在通知该节点之前会典型地集合来自所有维度的通知,以避免发送多余的退出通知。接下来,视图左侧指针通过三角形的左边T。如果该三角形节点在其完全离开视图时请求通知,则该节点监视算法在每个表1中指出没有通知是必要的。然而,在视图指针通过T时,表1示出该三角形完全退出视图,并且应该被通知。视图指针停止在这里,这里因为圆形边界矩形的右边C在视图中仍然可见。
节点监视算法从该右侧的处理是相似的。试图右侧指针左移到椭圆的右边E。根据椭圆是否请求全部或部分的通知,该节点监视算法会或不会按照表1对椭圆发送通知。能够使用相似的数据结构以及顶和底边界矩形值来以相似的方式处理垂直维度。本领域的技术人员还应该认识到在需要更精确的通知时,多个边界矩形能够用来逼近非矩形的节点。此外,本发明设想能够通过节点监视算法来跟踪并处理通过其它维度的运动,例如,第三几何(深度或比例)维度,以及非几何维度,例如时间、内容定级(成人,PG-13等)以及内容类型(戏剧、喜剧等)。根据使用的维度的个数,该算法更精确地检测边界段、矩形和n维超立方体的交叉。
除了上面描述的节点监视算法外,本发明的示例性实施方案提供了能够在根据本发明的示例性实施方案的可缩放的GUI中使用的分辨率一致的语义缩放算法。语义缩放是指根据组件的放大等级对可缩放的GUI中的组件进行增加、去除或改变组件的细节。例如,在下面描述的电影浏览器界面中,当用户将镜头足够接近影片的图像时,该浏览器改变以显示影片元数据以及回放控制。该放大等级的计算是基于组件在显示器设备中使用的像素个数的。该可缩放的GUI能够存储门限放大等级,该门限放大等级指示将在何时进行切换以例如从没有影片元数据和回放控制的视图切换至具有影片元数据和回放控制的视图。
电视和计算机显示器具有变化范围很大的显示器分辨率。一些监视器具有足够高的分辨率,从而使得可呈现在低分辨率显示器中的图片和文本太小以至于完全不可阅读。这还对于使用语义缩放、尤其是在高分辨率显示器(例如,HDTV)中的应用产生问题。在这种情况下,基于显示的像素个数绘制的语义缩放码在可阅读更详细的视图前将改变图像。程序性地修改语义缩放改变组件的门限仅能够对一个分辨率起到作用。
理想的结果是所有的监视器分辨率都进行一致的语义缩放。一种解决方法是在高分辨率的监视器中使用较低分辨率的显示模式,以使得在所有显示器中的分辨率是一致的。然而,如果语义缩放仍然如期望的那样进行的话,高分辨率的监视器用户更喜欢以它们最佳的分辨率来绘制图片。因此,本发明的示例性实施方案提供了一种支持所述不同分辨率显示、而不存在前述语义观看问题的语义缩放技术。这能够例如通过在场景内建立虚拟显示器来实现。通过使用内嵌的虚拟相机节点1200和增加逻辑来补偿显示器分辨率从而在图14中显示。该虚拟的相机节点1200定义了尺寸映射到用户视线距离和监视器尺寸的视区。例如,大的虚拟相机视区表示用户要么是非常近地坐在监视器前,要么具有足够大的监视器来分辨许多细节。可选地,小的视区表示用户远离监视器,并需要大的字体和图像。该可缩放的GUI编码能够是基于在上述虚拟相机中看到的,并使用用户最佳观看状态的组件的放大等级中的语义缩放转换。
附着到显示器设备1204的主相机节点1202具有通过配置以使其显示虚拟相机1200正在显示的各种事物的视区。由于图示影像和文本在该主相机1202之前没有映射成像素,所以不会从虚拟相机中发生质量下降。这种结果是高精确度的监视器显示器显示高质量的图像,并且不会触发使显示难于阅读的语义缩放改变。
根据本发明的示例性实施方案,上述处理实现如下。在场景图中的各相机和节点具有相关的转换矩阵(T1到Tn)。这些矩阵将节点的局部坐标系统转换至针对显示器的下一节点的局部坐标系统。在图中,T1从其视区将坐标转换到显示器坐标。同样,T2将其局部坐标系统转换到相机的视区。如果叶节点1206需要在显示器中绘制一些内容,则它计算下面的转换矩阵:
A=T1T2…Tn
该计算能够在通过场景图时被执行。由于改变组件来支持语义缩放是基于虚拟相机1200的,所以执行下面的计算:
B=T4T5…Tn
通常可通过询问监视器的分辨率和检查场景图而事先确定T1到T3。因此,从A确定B是通过下式对这些矩阵求逆和相乘实现的:
B=(T1T2T3)-1A
对于事先计算T1到T3时存在问题的这种情况,例如,如果图形API隐藏了附加的转换的话,可将逻辑增加到虚拟相机,从而拦截(intercept)它将用来绘制到显示器的转换矩阵。这些被拦截的转换矩阵接着被求逆并进行相乘(如上所述),以计算语义缩放门限。
根据本发明的示例性实施方案的可缩放的界面的一个有利特征是它具有能够在导航界面时维护上下文的能力。所有的界面组件看来似乎存在于可缩放的世界中,用户仅需要移动和缩放来达到任意的它们。上述的语义缩放技术根据缩放或放大等级改变上述组件的外观。图15(a)和15(b)提供了用于组件的语义缩放的实施例,其中该组件的缩小的版本(图15(a))是图片,放大版本(图15(b))包括相同的图片以及一些控制和细节。对此更详细的一些实施例在下面给出。与语义缩放有关的一个挑战是在视图之间会突然发生改变,以及例如α混合的转换技术在两个上述视图之间转换时不会在视觉上提供满意的结果。
因此,本发明的示例性实施方案在所有的组件视图中提供一些公用(common)的图像和文本,以在执行语义缩放时对转场效果提供焦点。例如,在图15(a)和15(b)中,公用元素是图片。在放大版本和缩小版本之间的转场效果能够例如使用上述节点监视算法通过以下方式来触发。首先,在主相机的视区从组件的缩小版本转换到放大版本时,用上述节点监视算法执行登记以接收事件。接着,在事件发生时,能够显示展示从它们缩小版本位置缩放和转换到它们放大版本位置的公用元素的动画。同时,相机视区继续推进到上述组件。
在浏览下面参照图16-20描述的另一示例性实施方案后,根据本发明的图形用户界面的这些能力将变得更加显而易见。在图16-20中,启始GUI屏幕1400显示多个像媒体组一样操作的组织对象。完全是示例性的家庭影院、影片、TV、体育、收音机、音乐和音乐的媒体组当然能够包括不同的、更多或更少的媒体组。在通过用户启动这些图标中的一个时,根据本发明的该示例性实施方案的GUI将显示多个图像,这些多个图像中的每一个被分组成特殊的类别和种类。例如,如果用户启动图16中的“影片”图标,则能够显示图17的GUI屏幕。在图17中显示了大量的(例如120个或更多的)选择对象。这些选择对象能够被分类为特殊的组,例如,动作、古典、喜剧、戏剧、家庭剧和新发行影片。本领域的普通技术人员应该认识到能够提供更多或更少的种类。在该示例性实施方案中,媒体项的图像可以是与各影片选择关联的特征封面。尽管在图17中的区块太小而不能允许显示该选择项图像的相对多的组的详细描述,但是在应用中,这些图像的放大等级可使通过与影片关联的图像辨别这些影片的身份,即便是这些文本中的一些或全部可以是太小以至于不能容易地阅读。
可将游标(在图17中未示出)置于一组影片图像上并驱动输入设备为该组中的一个提供选择指示。在该示例性实施例中,用户选择戏剧组,则用户图形界面显示戏剧图像组中的缩放版本,如图18所示。和前述实施方案一样,在GUI从图17中的GUI屏幕切换到图18中的GUI屏幕时,还会显示转场效果,例如,在缩放之前或在缩放过程当中,该GUI可以将视图从图17中的GUI屏幕的中心移动到戏剧组图像的中心。应该注意到,尽管图18的戏剧组的缩放版本仅显示了戏剧组中的所有图像的子集,但是该缩放版本能够可选地包含被选择组中的所有图像。在任意给定的GUI屏幕的放大版本中显示或不显示被选择组中的所有图像能够基于(例如)组内的媒体项的个数,以及用于特殊缩放等级的媒体项的最小期望放大等级来进行。根据本发明的GUI的后一特征能够通过系统设计员/服务提供商预先确定,或通过用户经由GUI中的软件设置来定制。例如,可通过服务提供商和终端用户中的一个和两个来配置组内的媒体项的个数以及最小和/或最大放大等级。上述特征使得那些例如具有不好的视力的用户能够增加被显示的媒体项的放大等级。相反,视力非常好的用户可减小放大等级,以及增加在任意给定事件显示在GUI屏幕中的媒体项个数,并减少浏览时间。
能够在根据本发明的图形用户界面中使用的一个示例性的转场效果被称为“鞋到细节(shoe-to-detail)”视图效果。在被启动时,该转场效果获取缩小的图像并同时将该缩小的图像收缩和转换到更小的视图,即,下一更高等级的缩放。从在图17中的GUI屏幕中使用的放大等级转换到在图18中的GUI屏幕中使用的更大的放大等级,这导致GUI为显示于图18的放大版本中的图像披露出附加的细节。该GUI根据这些细节在当前被选择的缩放等级是否很好地被显示,来选择性地显示或隐藏各种缩放等级的细节。和试图分辨细节而不论它们对于肉眼的可视能力如何的相机缩放不同,本发明的示例性实施方案提供了可配置的缩放等级参数,这些参数规定了在何时显示全部图像和何时显示具有被扣留细节的图像版本之间的转换点。该转换点能够基于独立于图像描述的内部分辨率,而不是基于TV/监视器212的分辨率。利用这种方式,根据本发明的GUI是一致的,而不论在媒体系统中使用的显示设备的分辨率是多小。
在该示例性实施方案中,能够通过将游标经过特殊图像之上来提供用于特殊图像的附加量的放大。这种特征在图19中显示,其中,游标在影片“阿波罗13”的图像上滚动。尽管在图19中未示出,与图18中GUI屏幕中处于较低放大等级的相应图像相比,上述附加的放大例如能够使实现与相关媒体项的特征封面中的引文“休斯顿,我们遇到了麻烦”变得更加清晰可读。用户对于该图像的选择,例如通过在输入设备上按下按钮,能够进一步缩放以显示图20中显示的细节。这还提供了另一个如前所述的语义缩放的实施例,这是因为在图19的GUI屏幕中不可见的各种信息和控制元素被显示在图20的GUI屏幕中。例如,关于影片“阿波罗13”的主要包括影片放映时间、价格和演员的信息被显示。本领域的技术人员应该认识到,其它类型的信息能够在这里提供。该GUI附加地包括GUI控制对象,GUI控制对例如包括用于购买该影片、观看电影预告片或返回到前一GUI屏幕(其还能够在输入设备中按下放大按钮来实现)的按钮控制对象。还能够使用超级链接来允许用户例如跳转到与相关影片(在图20的GUI屏幕的右下角处标志)关联的GUI屏幕,或与该影片中的演员相关的信息。在该实施例中,在标题“影片目录(Filmography)”下的一些或全部电影名能够实现为超级链接,在用户通过输入设备启动时,这些链接将使得GUI为被指示的电影显示与图20中的GUI屏幕对应的GUI屏幕。
在用户启动超级链接时还能够使用转场效果。由于超级链接可以高的放大等级来产生,因此,简单地跳转到被链接的媒体项可使用户失去他或她对媒体项选择“映射图”的跟踪。相应地,本发明的示例性实施方案提供了转场效果以在启动超级链接时,帮助维持用户的地理性位置感觉。为此而使用的一个示例性的转场效果是跳跃转换。在该转场效果的初始阶段,GUI缩小并以超级链接指向的项的方向移动。缩小和移动在目的图像和原始图像都被用户看见之前持续进行。再次使用图20的实施例,如果用户选择超级链接用于“拯救大兵瑞恩”,则该超级链接的跳跃转场效果的第一阶段将包括缩小并朝图像“拯救大兵瑞恩”移动,直到用于“拯救大兵瑞恩”的图像和“阿波罗13”对于用户是可视的位置。在此,该转场效果给用户带来以弧形朝向目的图像向上移动的视觉印象。一旦目标图像出现在视图中,转场效果的第二阶段给用户带来放大和例如以上述弧形的另一半移动到目的图像的视觉印象。跳跃时间,即显示第一阶段和第二阶段的时间量,在任意两个超级链接图像项之间是可以是固定的。可选地,跳跃时间可以变化,例如基于在GUI上前进的距离。例如,跳跃时间能够被参数化为:跳跃时间(HopTime)=A log(放大比例等级/跳跃顶点比例等级)+B(超级链接媒体项之间的距离)+C,其中,A、B、和C被合适地选择为恒定值。
上面参照图9-13(b)描述的节点监视算法还能够用来帮助在图19的示例性GUI屏幕和图20的示例性GUI屏幕中描述的缩放等级之间进行转换。与较低缩放等级的图像相比,包含文本和/或控制元素(它们在被选择的图像的其它缩放等级是看不见的)的GUI屏幕的绘制需要更强的计算和/或存储。相应地,该节点监视算法能够在本发明的示例性实施方案中使用,以通过监视GUI的导航节点以更加快速地识别被缩放的媒体项,从而帮助预先载入GUI屏幕,例如在图20中显示的GUI屏幕。
被包含在本发明的示例性实现中的是屏幕位置和基于语义的导航控制。在游标接近用户位置时,或者游标处于在与屏幕中的这些控制关联的区域(在其中这些控制是正确的,如图21所示)中时,这些控制区域出现。例如,在播放影片时,快进、后退、暂停、停止等这些所谓的技巧(trick)功能在语义上是适当的。在该示例性实施方案中,被分配以这些功能的屏幕区域在右下角,并且在游标位于这些区域附近或位于其中时,用于这些技巧功能的图标集显示。这些图标在被使用的功能明确结束或在游标重新位于屏幕中的其它位置时消失。还能够使用同样的技术来覆盖如同文本搜索和室内屏幕选择的其它导航特征。在该示例性的实现中,这些控制在所有的屏幕上是语义相关的,并且配与它们的区域位于右上角。在游标位于这些区域或这些区域附近时,用于这些导航控制的图标集显示。这些图标在功能被启动或游标重新位于屏幕的其它位置时消失。应该注意到,处于用户训练的目的,关联的控制图标可初始可选地暂时显示(例如5秒)在一些或所有的相关屏幕中,以将引起不熟练的用户注意到它们的存在。
在提供了根据本发明的可缩放的图形用户界面的一些实施例后,现在描述使用上述界面的示例性架构和结构(infrastructure)。图22提供了架构图,其中,与各种高级应用1900(例如,影片、电视、收音机和体育)关联的可缩放的界面由基元(primitive)1902(在图中被称为“原子”)扮演。在该示例性实施方案中,基元1902包括定位、点击、缩放、停悬和滚动,当然本领域的技术人员应该认识到其它的基元也能够包含在该组中,例如,移动和拖拽。如上所述,定位和点击基元的操作确定游标的位置,并且在例如用户启动手持输入设备中的放大或缩小按钮时触发事件。这些基元简化了导航并去除了用于重复上、下、左、右按钮的需要。如上所述,缩放基元用来纵览可能的选择,并在用户缩小他或她的选择时给予用户上下文。这种构思使该界面能够按照大量的媒体选择和任意的显示大小来规定。滚动基元处理来自示例性手持输入设备中的滚动轮输入设备的输入,并能够用来例如加速线性菜单导航。停悬按钮基元动态地放大指针下面的选择(和/或改变选择的内容),以使得用户能够浏览潜在的选择而无需实际执行。能够以大量不同的方式在根据本发明的GUI中启动前述各个基元的操作。例如,定位、点击、停悬、停悬和缩放可以与用户能够执行的不同姿势关联。这些姿势能够经由输入设备(不管它是否是自由空间指针、跟踪球、触摸垫等)被传递到系统,并被转换成适当基元的启动。同样,各个基元能够与各自的语音命令关联。
在低级的基元1902和高级的应用1900之间存在各种软硬件结构1904,它们用来产生与根据本发明的可缩放的GUI关联的图像。如在图22中看到的那样,该结构1904能够包括手持输入设备/定位器、应用程序接口(API),可缩放的GUI屏幕、开发工具等。
前面的示例性实施方案在本质上是完全描述性的。以各等级提供到用户的缩放等级个数以及特殊的信息和控制是变化的。本领域的技术人员应该认识到本发明提供了革命性的技术用于使用可缩放的界面来呈现大和小组的媒体项,从而使得用户能够容易地搜索、浏览、组织和回放媒体项,例如影片和音乐。根据本发明的图形用户界面在虚拟的表面中组织媒体项选择,从而使得相似的选择被组合在一起。最开始,该界面传送上述表面的缩小视图,并且在大部分情况下,在该等级是看不见实际的选择的,而仅仅看到它们的组名。随着用户逐渐向内缩放,显示关于媒体项组或选择的更多细节。在各个缩放等级可得到不同的控制,从而使得用户能够播放选择的组或单个的选择、或者到达虚拟面的其它部分以浏览其它相关的媒体项。根据本发明的示例性实施方案的缩放图形用户界面能够包含嵌套到任意深度的图像种类以及种类的种类。媒体项能够包括局部存储的内容、广播提供商的广播、经由来自内容提供商的直接连接或在对等基础上接收的信息。媒体项能够以日程安排的格式提供,其中,日期/时间信息在一些等级的GUI提供。另外,根据本发明的示例性实施方案的架构和GUI还能够应用到在其中将用于选择的项出售给用户的电视商业中。
分布式软件架构
有多种方法可开发可用于生成以上描述的GUI屏幕以及与该系统相关联的其它用户界面特性的软件。本发明的示例性实施方案提供了一种环境,用于绘制丰富的可缩放的用户界面(ZUI),同时简化了实现上的复杂性并用于维护ZUI。在下文讨论根据本发明的示例性实施方案的ZUI架构中用到术语“场景”(scene)和“程序块”(brick)。场景描述导航变化中用户可用的ZUI组件的集合。程序块描述被封装的ZUI组件,例如,与那些用来显示按钮(和处理与按钮相关联的功能)或图像一样简单的软件包,或更复杂的诸如用来生成一个或一组景象的软件包。
图23描述了从场景或程序块的设计到场景的绘制或编辑的示例性数据流。其中,UI设计工具2000提供用于构建程序块或场景的可视化编程环境,下面给出了一个实施例。通常,艺术家或应用程序开发员使用UI设计工具2000并保存程序块2002或场景2004。程序块2002和场景2004可引入(reference)存储在程序块库2006或多媒体源2008中的常用UI组件,例如点阵工艺图(例如前文描述的作为可选择的在用户界面上显示的媒体项的影片封面)。在此示例性架构中,场景加载器2010(或工具箱后端)读入场景文件或字节流,并动态在任一被引入的程序块2002或多媒体源2008中链接。这样就构造了用于ZSD编译器2012或本地场景提供者2014的场景图,从而用来在例如电视屏幕上生成用户界面。
根据本发明的示例性实施方案,程序块和场景可使用被称为可缩放矢量图形(SVG)的编程语言生成。SVG是可扩展标记语言(XML)中被设计用于描述二维图形的语言。SVG在W3C推荐标准2003年1月14日公布的“可缩放矢量图形(SVG)1.1规约(Scalable VectorGraphic(SVG)1.1Specification)”中详细说明,该规约可见http://www.w3.org/TR/2003/REC-SVGl 1-20030114/,其公开的内容通过引用并入本文。其中,SVG用于三种图形目标:矢量图形(例如由直线和曲线构成的路径)、图像和文本。图形目标可分组、分类、变换以及组合成先前绘制的目标。其特征集包括:嵌套变换、裁切路径、透明遮罩(alpha mask)、过滤器效应和样板目标。在SVG中可得到的这些特征中的许多都能用于为创建用户界面而生成程序块和场景,例如上文描述的那些特征。然而,根据本发明示例性的实施方案,已经开发出了SVG语言的扩展,从而提供某些ZUI功能,包括程序块构造。
更特别地,场景和程序块的描述支持使用ECMA脚本语言(JavaScript的标准版本)的脚本。在其它功能中,脚本增加了场景到场景的导航、动画、数据库查询、以及对场景和程序块功能的媒体控制。脚本支持的一个组件是用于获得上述功能的应用程序接口(API)。该API在本文中被称为ZUI目标模型(ZOM),ZOM的特征在下文描述。根据本发明的示例性实施方案,实现ZOM的一方面包括扩展SVG编程语言,以包括在SVG语言中规定的元素和属性的扩展,下面给出了与程序块和场景相关联的功能性的一些实施方案。在此,元素名称和属性名称表示为“zui:name”的形式,以表示对SVG的元素和属性的扩展。
<zui:brick>
“zui:brick”标记将另一ZML/SVG文件插入指定位置的场景。为程序块创建新的变量环境,并且允许用户通过使用“zui:variable”子标记将变量送入场景。根据本发明示例性的实施方案的、改良的SVG的特性提供了在可缩放界面中使用的、以其参数化图形性质为特征的灵活的编程元素,该元素在可缩放用户界面中可在多个场景中交叉重复使用(级联(cascade))。程序块实现的详细实施方案在下文参照图24至26和相应的软件代码给出。
  属性   可能值   说明
  id   Alpha数字串   由工具箱默认指定;用户定义的值可使JavaScript更清楚。
  Width   整数   像素中节点的宽度
  Height   整数   像素中节点的高度
  Transform   代表变换矩阵的字符串   使用“scripts/Transform.js”读写属性转变(transform)。节点存储的值是变换中的“矩阵”属性;“数组(array)”是希望生成的存储阵列。例如,该属性可定义程序块相对于父类如何放置(偏移、定标、旋转)。
  pointer-events   none/zui:all   用“none”禁用鼠标;用“zui:all”启用鼠标。隐藏/可见的元素将接收定位器事件(pointer-events)的结果,除非该属性设置为“none”。
  Visibility   hidden/visible  用“hidden”将元素隐藏;用“visible”使元素可见;可见性在用户输入端没有影响。
  xlink:href   URL  作为程序块加载的ZML/SVG文件的URL。
表2<zui:brick>标记属性
<zui:scene>
SVG的该扩展用于指定:系统应安插一个场景作为当前场景的子场景。
  属性   可能值   描述
  id   Alpha数字串   由工具箱默认指定;用户定义的值可使JavaScript更清楚。
  x   整数   场景位置边界的左上角相对于屏幕左上角的水平位置。
  y   整数   场景位置边界的左上角相对于屏幕左上角的垂直位置。
  Width   整数   像素位置的宽度
  Height   整数   像素位置的高度
  xlink:href   URL   作为程序块加载的ZML/SVG文件的URL。
表3<zui:scene>标记属性
   <zui:scene-swap>
SVG的扩展设置场景转换过程中的场景交换效果。
  属性   可能值   描述
  id   Alpha数字串   由工具箱默认指定;用户定义的值可使JavaScript更清楚。
  Cover   Alpha数字串   用于场景转换效果的封面的id。其应为相同的svg中的元素id。
  Start   整数   根据转换持续时间的百分比,交换应该开始的时间。0为瞬间转换,100为在转换结束时交换。
  End   整数   根据转换持续时间的百分比,交换应该结束的时间。其应总是大于等于start。
  Inherits   Alpha数字串   照相机转换应从中继承状态的元素的id。如果为空,使用默认值;如果设置了,则使用在其它元素中设置的值作为默认值
表4<zui:scene-swap>标识符属性
<zui:variable>
SVG的该扩展将当前范围中的指定变量设置为指定值。变量范围由“zui:scene”和“zui:brick”标记自动创建。
  属性   可能值   描述
  id   Alpha数字串   由工具箱默认指定;用户定义的值可使JavaScript更清楚。
  Name   字符串   待设置变量的名称
  Value   可变的   待设置变量的值
表5<zui:variable>标记符属性
考虑以下参照图24到26给出的完全说明性的实施方案,可更好地理解前文所述用于提供程序架构(该架构尤其可在生成例如电视的可缩放用户界面中使用)的SVG的扩展。图24描述了与音乐选择相关联的示例性的用户界面的第一可缩放显示层。其中,GUI屏幕显示六组(音乐架(music shelf)),其中的每组包括25个按种类划分的可选音乐项(5×5个音乐封面样式图像)。每个组被实现为包含标题悬浮效应的程序块,例如如图24所示,用户游标(未示出)位于以“摇滚与流行(Rock & Pop)”命名的组上,这样相对于显示在GUI屏幕上的其它五个组,该组的标题和该组的元素被略微放大。为生成该GUI屏幕,与该程序块相关联的软件代码被给予名为“music”的变量,该变量是以标题类型为“摇滚(Rock)”的用户音乐集的查询,如下示例性的软件代码中突出显示的部分所示。
<?xml version=″1.0″encoding=″UTF-8″standalone=″no″?>
<!DOCTYPE svg PUBLIC ″-//W3C//DTD SVG 1.1//EN″
″http ://www.w3.Org/Graphics/SVG/1.1/DTD/svgll.dtd″>
<svg height=″720″id=″svg″onload=″music_shelf_system_onload (evt)″
width=″1280″xmlns=″http://www.w3.org/2000/svg″xmlns:xlink=″http:
//www.w3.org/1999/xlink″xmlns:zi=″http://ns.hcrest.
com/ZUIIllustratorExtensions/1.O ″xmlns:zui=″http://ns.hcrest.
com/ZUIExtensions/1.0″zui:top=″true″>
<script language=″j avascript″xlink :href=″./music_shelf.js ″/>
<gid=″bkgd″>
<image height=″720″id=″musicbkgd″preserveAspectRatio=″xMidYMid
meet″transform=″matrix (1.000,0.000,0.000,1.000,1,0)″width=″1280″
xlink:href=″../background/hdtv/music_hdtv.ρng″zui:layer=″background″
/>
<text fill=″#ffffff″font-family=″HelveticaNeue LT 87Heavy Condensed″
font-size=″38″id=″glob_121″transform=″matrix(0.984,0.000,0.000,
1.000,16,0)″x=″1020″y=″103″>
<![CDATA [AIl Music]]>
</text>
<zui:brick height=″306″id=″svg_123″transform=″matrix(0.660,
0.000,0.000,0.669,245,129)″width=″262″xlink:href=″.
/briαk_shelf.svg″zi:cursorControl=″true″>
<zui:variable id=″var_0″name=″itiusic″value=″com.
hcrest.music.mds:albums(genres contains′Rock Samp;Pop′,@
sort=′title′)″/>
</zui:brick>
<zui:brick height=″306″id=″glob_124″transform=″matrix(0.660,0.000,
0.000,0.669,522,129)″width=″262″xlink:href=″./brick_shelf.svg″>
<zui:variable 1d=″var_26″name=″music″value=″com.hcrest.music.mds:
albums(genres contains′Jazz Vocal′,@sort=′title′)″/>
</zui:brick>
<zui:brick height=″306″id=″glob_170″transform=″matrix(0.660,0.000,
0.000,0.669,245,391)″width=″262″xlink:href=″./brick_shelf.svg″>
<zui:variable id=″var_78″name=″music″value=″com.hcrest.music.mds:
albums(genres contains′International′,@sort=′title′)″/>
</zui:brick>
<zui:brick height=″306″id=″glob_169″transform=″matrix(0.660,0.000,
0.000,0.669,522,391)″width=″262″xlink:href=″./brick_shelf.svg″>
<zui:variable id=″var_104″name=″music″value=″com.hcrest.music.
mds:albums(genres contains′Blues′,@sort=′title1)″/>
</zui:brick>
<zui:brick height=″306″id=″glob_168″transform=″matrix(0.660,0.000,
0.000,
0.669,799,391)″width=″262″xlink:href=″./brick_shelf.svg″>
<zui:variable id=″var_130″name=″music″value=″com.hcrest.music.inds r
albums(genres contains′Country′,@sort=′title′)″/></zui:brick>
<zui:brick height=″365″id=″svg_0″transform=″matrix(0.660,0.000,
0.000,0.660,799,127)″width=″350″xlink:href=″.
/brick_shelf_soundtrackv2.svg″>
<zui:variable id=″var_51″name=″music″value=″com.hcrest.music.mds:
albums(genres contains′Soundtracks′,@sort=′title′)″/>
</zui:brick></g>
<g id=″Layer_3″>
<zui:brick height=″720″id=″playlistBrick″transform=″matrix(1.000,
0.000,0.000,1.000,0,-56)″width=″1280″xlink:href=″..
/playlistBrick/playlist_brick.svg″zui:layer=″playlistθverlay″>
<zui.-variable id=″var_156″name=″playlistGroup″value=″′music′″/>
<zui:variable id=″var_157″name=″playlistType″value=″′music′″/><zui:
variable id=″var_158″name=″cover_art_field″value=″′album.image.uri′
″/><zui:variable id=″var_159″name=″title_field″value=″′title′″/><zui:
variable id=″var_160″name=″watch_uri_field″value=″′uri′″/>
</zui:brick>
<g id=″screw_you_button_6_state_andj oe″><g id=″new_slideshow″>
<image height=″67″id=″new_slideshow_on″
preserveAspectRatio=″xMidYMid meet″transforrα=″matrix(0.342,0.000,
0.000,1.221,1071,376)″width=″257″xlink:href=″..
/playlistBrick/images/create_playlist_normal_over.png″/>
<image height=″65″id=″new_slideshow_off″
preserveAspectRatio=″xMidYMid meet″transform=″matrix(0.342,0.000,
0.000,1.221,1071,377)″width=″257″xlink:href=″..
/playlistBrick/images/create_playlist_normal.png″/>
</g></g>
<g id=″createplaylist″zi:p6Base=″createplaylist-off″zi:
p6Down=″createplaylist-down″zi:p6Label=″true″zi:
p60ver=″createplaylist-over″zi:p6Sel=″createplaylist-sel″zi:
p6SelDown=″createplaylist-sel_down″zi:
p6SelOver=″createplaylist-sel_over″>
<image height=″226″id=″createplaylist-sel_down″
preserveAspectRatio=″xMidYMid meet″transform=″matrix(0.734,0.000,
0.000,0.734,1081,463)″visibility=″hidden″width=″124″xlink:href=″.
/images/createplaylist-over.png″/>
<image height=″226″id=″createplaylist-sel_over″
preserveAspectRatio=″xMidYMid meet″transform=″matrix(0.734,0.000,
0.000,0.734,1081,463)″visibility=″hidden″width=″124″xlink:href=″.
/images/createplaylist-over.png″/>
<image height=″226″id=″createplaylist-sel″
preserveAspectRatio=″xMidYMid meet″transform=″matrix(0.734,0.000,
0.000,0.734,1081,463)″visibility=″hidden″width=″124″xlink:href=″.
/images/createplaylist-off.png″/>
<image height=″226″id=″createplaylist-down″
preserveAspectRatio=″xMidYMid meet″transform=″matrix(0.734,0.000,
0.000,0.734,1081,463)″visibility=″hidden″width=″124″xlink:href=″.
/images/createplaylist-over,png″/>
<image height=″226″id=″createplaylist-over″
preserveAspectRatio=″xMidYMid meet″transform=″matrix(0.734,0.000,
0.000,0.734,1081,463)″visibility=″hidden″width=″124″xlink:href=″.
/images/createplaylist-over.png″/>
<image height=″226″id=″createplaylist-off″
preserveAspectRatio=″xMidYMid meet″transform=″matrix(0.734,0.000,
0.000,0.734,1081,463)″width=″124″xlink:href=″.
/images/createplaylist-off.png″/>
</g></g>
</svg>
根据本发明示例性的实施方案,每组中的每个元素(封面样式图像)也作为程序块被编码。因此,如图25所示,当用户在“Rock & Pop”组中的25个元素中的一个元素上暂停游标时,使该元素(本实施方案中为专辑封面“降落伞(Parachute)”的图像)突出显示。以下示出了用于实现该GUI屏幕的示例性的程序块代码。
<?xml version=″1.0″encoding=″UTF-8″standalone=″no″?>
<!DOCTYPE svg PUBLIC″-//W3C//DTD SVG 1.1//EN″
″http://www.w3.Org/Graphics/SVG/1.1/DTD/svg11.dtd″>
<svg height=″365″onload=″brick_shelf_system_onload(evt)″width=″350″
xmlns=″http://www.w3.org/2000/svg″xmlns:xlink=″http://www.
w3.org/1999/xlink″
xmlns:zi=″http://ns.hcrest.com/ZUIIllustratorExtensions/1.0″
xmlns:zui=″http://ns.hcrest.com/ZUIExtensions/1.0″>
<script language=″javascript″xlink:href=″./brick_shelf.js″/>
<g id=″Layer_1″>
<zui:brick height=″46″id=″svg24″transform=″matrix(1.305,0.000,
0.000,1.239,277,290)″width=″47″
xIink:href=″./albumCoverEffect.svg″>
<zui:variable id=″var_0″name=″this″value=″music[24]″/>
</zui:brick>
<zui:brick height=″46″id=″svg23″transform=″matrix(1.305,0.000,0.000,
1.239,210,290)″width=″47″xlink:href=″./albumCoverEffect.svg″>
<zui:variable id=″var_1″name=″this″value=″music[23]″/></zui:brick>
<zui:brick height=″46″id=″svg22″transform=″matrix(1.305,0.000,0.000,
1.239,144,290)″width=″47″xlink:hre£=″./albumCoverEffect.svg″>
<zui:variable id=″var_2″name=″this″value=″music[22]″/></zui:brick>
<zui:brick height=″46″id=″svg21″transform=″matrix(1.305,0.000,0.000,
1.239,77,290)″width=″47″xlink:hre£=″./albumCoverEffectsvg″>
<zui:variable id=″var_3″name=″this″value=″music[21]″/></zui:brick>
<zui:brick height=″46″id=″svg20″transform=″matrix(1.305,0.000,0.000,
1.239,11,290)″width=″47″xlink:hre£=″./albumCoverEffect.svg″>
<zui:variable id=″var_4″name=″this″value=″music[20]″/></zui:brick>
<zui:brick height=″46″id=″svgl9″transform=″matrix(1.305,0.000,0.000,
1.239,278,228)″width=″47″xlink:href=″./aIbumCoverEffect.svg″>
<zui:variable id=″var_5″name=″this″value=″music[19]″/></zui:brick>
<zui:brick height=″46″id=″svgl8″transform=″matrix(1.305,0.000,0.000,
1.239,210,228)″widlh=″47″xlink:hrei=″./albumCoverEffect.svg″>
<zui:variable id=″var_6″name=″this″value=″music[18]″/></zui:brick>
<zui:brick height=″46″id=″svgl7″transform=″matrix(1.305,0.000,0.000,
1.239,144,228)″width=″47″xlink:href=″./albumCoverEffect.svg″>
<zui:variable id=″var_7″name=″this″value=″music[17J″/></zui:brick>
<zui:brick height=″46″id=″svgl6″transform=″matrix(1.305,0.000,0.000,
1.239,77,228)″width=″47″xlink:hrel=″./aIbumCoverEffect.svg″>
<zui:variable id=″var_8″name=″this″value=″music[16]′7></zui:brick>
<zui:brick height=″46″id=″svgl5″transform=″matrix(1.305,0.000,0.000,
1.239,11,228)″width=″47″xlink:href=″./albumCoverEffect.svg″>
<zui:variable id=″var_9″name=″this″value=″music[15]″/></zui:brick>
<zui:brick height=″46″id=″svgl4″transform=″matrix(1.305,0.000,0.000,
1.239,278,165)″width=″47″xlink:href=″./albumCoverEffect.svg″>
<zui:variable id=″var_10″name=″this″value=″music[14]″/></zui:brick>
<zui:brick height=″46″id=″svgl3″transform=″matrix(1.305,0.000,0.000,
1.239,210,165)″width=″47″xlink:hreP=″./albumCoverEffect.svg″>
<zui:variable id=″var_11″name=″this″value=″music[13]″/></zui:brick>
<zui:brick height=″46″id=″svgl2″transform=″matrix(1.305,0.000,0.000,
1.239,144,165)″width=″47″xlink:href=″./albumCoverEffect.svg″>
<zui:variable id=″var_12″name=″this″value=″music[12]″/></zui:brick>
<zui:brick height=″46″id=″svgl1″transform=″matrix(1.305,0.000,0.000,
1.239,77,165)″width=″47″xlink:href=″./albumCoverEffect.svg″>
<zui:variable id=″var_13″name=″this″value=″music[11]″/></zui:brick>
<zui:brick height=″46″id=″svglθ″transform=″matrix(1.305,0.000,0.000,
1.239,11,165)″width=″47″xlink:hreF=″./albumCoverEffect.svg″>
<zui:variable id=″var_14″name=″this″value=″music[10]″/></zui:brick>
<zui:brick height=″46″id=″svg9″transform=″matrix(1.305,0.000,0.000,
1.239,278,101)″width=″47″xlink:href=″./albumCoverEffect.svg″>
<zui:variable id=″var_15″natne=″this″value=″music [9]″/></zui:brick>
<zui:brick height=″46″id=″svg8″transform=″matrix(1.305,0.000,0.000,
1.239,210,101)″width=″47″xlink:href=″./albumCoverEffect.svg″>
<zui:variable id=″var_16″name=″this″value=″music [8]″/></zui:brick>
<zui:brick height=″46″id=″svg7″transform=″matrix(1.305,0.000,0.000,
1.239,144,101)″width=″47″χ[ink:href=″./albumCoverEffect.svg″>
<zui:variable id=″var_17″name=″this″value=″music [7]″/><zui:brick>
<zui:brick height=″46″id=″svg6″transform=″matrix(1.305,0.000,0.000,
1.239,77,101)″width=″47″xlink:href=″./albumCoverEffect.svg″>
<zui:variable id=″var_18″name=″this″value=″music[6]″/></zui:brick>
0.000,1.239,11,101)″width=″47″
<zui:brick height=″46″id=″svg4″transform=″matrix(1.305,0.000,0.000,
1.239,278,36)″width=″47″xlink:href=″./albumCoverEffect.svg″>
<zui:variable id=″var_20″name=″this″value=″music[4]″/><zui:brick>
<zui:brick height=″46″id=″svg3″transform=″matrix(1.305,0.000,0.000,
1.239,210,36)″width=″47″xlink:href=″./albumCoverEffect.svg″>
<zui:variable id=″var_21″name=″this″value=″music [3]′7></zui:brick>
<zui:brick height=″46″id=″svg2″transform=″matrix(1.305,0.000,0.000,
1.239,144,36)″width=″47″xlink:hreP=″./albumCoverEfFect.svg″>
<zui:variable id=″var_22″name=″this″value=″music[2]″/>
</zui:brick>
<zui:brick height=″46″id=″svgl″transform=″matrix(1.305,0.000,0.000,
1.239,77,36)″width=″47″xIink:href=″./albumCoverEffect.svg″>
<zui:variable id=″var_23″name=″this″vaIue=″music[1]″/></zui:brick>
<zui:brick height=″46″id=″svgθ″transform=″matrix(1.305,0.000,0.000,
1.239,11,36)″width=″47″xlink:href=″./albumCoverEffect.svg″>
<zui:variable id=″var_24″name=″this″value=″music[0]″/></zui:brick>
<g id=″more″visibility=″hidden″zi:p6Base=″more-off′
zi:p6Down=″more-down″zi:p6Label=″true″zi:p60ver=″more-over″
zi:p6Sel=″more-sel″zi:p6SelDown=″more-seI_down″
zi:p6SelOver=″more-sel_over″>
<image height=″84″id=″more-sel_down″preserveAspectRatio=″xMidYMid
meet″transform=″matrix(0.274,0.000,0.000,0.274,281,9)″
visibility=″hidden″width=″213″
xlink:href=″../movielink/images/homescreen/more-over.png″/>
<image height=″84″id=″more-sel_over″preserveAspectRatio=″xMidYMid
meet″transform=″matrix(0.274,0.000,0.000,0.274,281,9)″
visibility=″hidden″width=″213″
xlink:href=″../movielink/images/homescreen/more-over.png″/>
<image height=″84″id=″more-sel″preserveAspectRatio=″xMidYMid meet″
transform-′matrix(0.274,0.000,0.000,0.274,281,9)″visibility=″hidden″
width=″213″xlink:href=″../movielink/images/homescreen/more-off.png″/>
<image height=″84″id=″more-down″preserveAspectRatio-′xMidYMid
meet″transform=″matrix(0.274,0.000,0.000,0.274,281,9)″
visibility=″hidden″width=″213″
xlink:href=″../movielink/images/homescreen/more-over.png″/>
<image height=″84″id=″more-over″preserveAspectRatio=″xMidYMid
meet″transform=″matrix(0.274,0.000,0.000,0.274,281,9)″
visibility=″hidden″width=″213″
xlink:href=″../movielink/images/homescreen/more-over.png″/>
<image height=″84″id=″more-off″preserveAspectRatio-′xMidYMid meet″
transform=″matrix(0.274,0.000,0.000,0.274,281,9)″width=″213″
xlink:href=″../movielink/images/homescreen/more-off.png″/></g>
<zui:text-rect iill=″#ffffff′font-family=″HelveticaNeue LT 67Medium
Condensed″font-size=″24″height=″23″id=″genre″pointer-events=″none″
width=″235″x=″10″y=″9″zui:metadata=″music[O].genres[O]″
zui:text-allcaps=″original″
Figure A20068000158100451
-justification-′left″>
<![CDATA[Genre]]></zui:text-rect>
<view id=″top″viewBox=″(-71,-30,493,302)″
zui:transition=″hcrest_view″/><a id=″top_bounds″xHnk:href=″#top″>
<rect height=″302″id=″top_rect_1″width=″493″x=″-71″y=″-30″/></a>
<view id=″bottom″viewBox=″(-71,97,493,302)″
zui:transition=″hcresl_view″/><a id=″bpttom_bounds″
xlink:href=″#bottom″>
<rect height=″302″id=″bottom_rect_1″width=″493″x=″-71″y=″97′7></a>
<rect height=″188″id=″autopan_up″stroke=″#ffOOOO″visibility=″hidden″
width=″399″x=″-24″y=″-23″/><rect height=″167″id=″autopan_down″
stroke=″#OOffOO″visibility=″hidden″width=″399″x=″-24″y=″222″/></g>
<zui:scene height=″48″id=″trans_xx_25″width=″47″x=″8″
xlink:href=″music_detail.svg″y=″37″/><zui:scene height=″48″
id=″trans_x.x_26″width=″47″x=″8″xlink:href=″music_detail.svg″y=″37″/>
<zui:scene height=″48″id=″trans_xx_27″widtli=″47″x=″8″
xlink:href=″music_detail.svg″y=″37″/><zui:scene height?=″48″
id=″trans_xx_28″width=″47″x=″8″xlink:href=″music_detail.svg″y=″377>
<zui:scene height=″48″id=″trans_xx_29″\vidth=″47″x=″8″
xlink:href=″music_detail.svg″y=″37″/><zui:scene height=″48″
id=″trans_xx_30″width=″47″x=″8″xlink:href=″music_detail.svg″y=″37″/>
<zui:scene height=″48″id=″trans_xx_31″width=″47″x=″8″
xlink:href=″music_detail.svg″y=″37″/><zui:scene height=″48″
id=″trans_xx_32″width=″47″x=″8″xlink:href=″music_detail.svg″y=″37′7>
<zui:scene height=″48″id-′trans_xx_33″width=″47″x=″8″y=″37″/>
<zui:scene height=″48″id=″trans_xx_34″width=″47″x=″8″
xlink:hrd=″music_detail.svg″y=″377><zui:scene height=″48″
id=″trans_xx_35″width=″47″x=″8″xlink:href=″music_detail.svg″y=″377>
<zui:scene height=″48″id=″trans_xx_36″width=″47″x=″8″
xlink:href=″music_detail.svg″y=″37″/><zui:scene height=″48″
id=″trans_xx_37″width=″47″x=″8″xlink:href=″music_detail.svg″y=″377>
<zui:scene height=″48″id=″trans_xx_38″width=″47″x=″8″
xlink:href=″music_detail.svg″y=″377>
<zui:scene height=″48″id=″trans_xx_39″width=″47″x=″8″
xlink:href=″music_detail.svg″y=″37′7></svg>
需要注意上述实施例中加粗的代码涉及在父类SVG程序块(music_shelf.svg)中设置的、变量音乐中的第25个元素。之前的音乐查询返回25个元素。然后利用名为“this”的变量,该音乐元素(本实施例中为专辑)被传递给名为“albumCoverEffect.svg”的子程序块中。根据本发明示例性的实施方案,如上两个代码片断,以及图24和25中对应的GUI屏幕,用来说明与可重复使用的SVG扩展相关联的两个有益特性,其本文中被描述用于生成可缩放的图形用户界面。首先,SVG程序块提供程序架构以提供从GUI屏幕到GUI屏幕(场景到场景)可重复使用的代码。在这种环境中,重复使用用于生成图24的GUI屏幕的程序块代码生成图25的GUI屏幕。此外,程序块在它们生成的图形显示内容的至少一些是由元数据画出的意义上被参数化,这些元数据可随时间改变。这意味着,相同的程序代码可用来产生多个用户界面以供选择例如点播的电影,随着影片随时间的改变,在根据本发明的任意给定缩放等级的用户界面上描绘的界面内容也相应地随时间改变。
程序块代码自身可利用例如可视化编程界面生成,图26示出了一个正在对元素2600(专辑封面图像)编码的实施例。与该工具箱功能相关联的示例性代码如下给出。
<?xml version=″1.0″encoding=″UTF-8″standalone=″no″?>
<!DOCTYPE svg PUBLIC″-//W3C//DTD SVG 1.1//EN″
″http://www.w3.org/Graphics/SVG/1.1/DTD/svgll.dtd″>
<svg height=″46″onload=″albumCoverEffect_system_onload(evt)″width=″
47″xmlns=″http://www.w3.org/2000/svg″xmlns:xlink=″http://www.
w3.org/1999/xlink″xmlns:zi=″http://ns.hcrest.
com/ZUIIllustratorExtensions/1.0″xmlns:zui=″http://ns.hcrest.
com/ZUIExtensions/1.0″>
<script language=″j avascript″xlink:href=″./albumCoverEffeet.js″/>
<g id=″layer″>
<a id=″anchor_0″xlink:href=″zuichild:trans_0″>
<g id=″cover″>
<image height=″150.00″id=″image″ρreserveAspeαtRatio=″xMidYMid
meet″transform=″matrix(0.313,0.000,0.000,0.307,0.000,-0.050)″
width=″150.00″xlink:href=″../placeholders/cdcover.png″
zui:metadata=″this.image.uri″/><g id=″title″>
<rect fill=″#000000″height=″15″id=″rect_0″width=″47″x=″0″
y=″31″/><zui:text-rect fill=″#ffffff″font-family=″HelveticaNeue LT
67Medium Condensed″font-size=″6″height=″14″id=″textrect_0″
width=″45″x=″1″y=″32″zui:metadata=″this.title″zui:
text~allcaps=″original″zui:text-justification=″left″>
<!tCDATA[album title line two]]>
</zui:text-rect></g></g></a>
</g>
<zui:scene height=″46″id=″trans_0″transition=″trans_0_transition″
width=″47″x=″0″xlink:href=″music_detail.svg″y=″0″>
<zui:variable name=″this″value=″this″usage=″musicDetail″/></zui:
scene>
<zui:transition id=″trans_0_transition″
inherits=″hcrest_placement_swap_effect″>
<zui:scene-swap cover=″cover″/></zui:transition>
</svg>
Also see albumCoverAffect.js This file is a companion file to the SVG.The
javascript is what actually creates the title hover effect.
document.include(″../scripts/Hoverzoom.js″);document.include(″..
/scripts/Cursor.js″);function albumCoverEffect_user_onload_pre(evt)
{createCursorController(document.getElementByld(″cover″));
createHoverzoomTitleEffect(document.getElementByld(″cover″),
0.400000,250.000000,document.getElementByld(″title″));}
//θToolkit-begin(pseudo-tag for Toolkit-generated code)////////////////////////////
//////////////////////////////////
!!!The prior function albumCoverEffect_user_onload_pre is what actually
creates the title hover effect.
*AUTO GENERATED CODE:DO NOT EDIT
*/function albumCoverEffect_system_onload(evt){if
(″albumCoverEffect_user_onload_pre″in this)
{albumCoverEffect_user_onload_pre(evt);
}if(″albumCoverEffect_user_onload_post″in this)
{albumCoverEffect_user_onload_post(evt);
}}
//@Toolkit-end(pseudo-tag for Toolkit-generated code)//
////////////////////////////////////////////////////////////////////////////////////
以上软件代码实施方案中的加粗部分中,具有名为“cover”的元素。该封面元素是与待由该程序块在GUI屏幕的特殊位置上描绘的专辑封面相关联的图像元数据。还要注意其中表述为″zui:metadata=′this.image.uri′″的程序行。这一程序行是在第一代码实施例(父类SVG)中作为所感兴趣的专辑而建立的,即该专辑被传递给该程序块,并且相关联的封面样式被该变量引入。
以上示例性的实施方案将使用环境中的程序块描述为,基于SVG程序语言扩展的用户界面构建块,而程序块可更一般地作为利于分布式软件设计的系统构建块使用。例如考虑图27描述的系统。其中,软件系统2700提供了用于元数据2702(例如与影片、购物、音乐等相关联的数据)与终端用户设备例如电视机2704和遥控设备2706之间的控制和交互作用的、完整的内容传递架构。更一般地,元数据是关于特殊数据集的信息,该数据集可描述例如其它数据如何、何时、由谁接收、创建、访问和/或修改,以及如何安排其它数据的格式,以及其它数据的内容、质量、条件、历史记录和其它特性中的一个或多个。基于预先定义的程序块模型,程序块由程序块引擎创建为可重复使用的软件构造,在图27的示例性系统中,该构造体现为适用于与系统相关联的特殊应用的架构层之上的全部相关逻辑。为使该逻辑模块化,可开发不同层的程序块,例如应用程序层、小应用程序层、语义层和基本层的程序块,如图28所示。这些不同类型程序块中的每一个都将同一些实施方案一起更详细地描述。
最高层是应用程序程序块。在图27所示的系统实施例中,应用程序与元数据类型相对应,例如音乐应用程序用于将音乐传送给终端用户,电影应用程序用于将点播的电影传送给终端用户等等。应用程序电影程序块提供了允许用户浏览/搜索/查找电影元数据的入口层次,以起到描述终端用户和电影元数据之间的完整交互的迷你(mini)应用程序的作用。相似地,电影应用程序块描述了终端用户和电影元数据之间的完整交互。因此,应用程序程序块实质上定义了用于图27所示的示例性系统的、与特殊元数据类型相关联的分布式类,并提供了用于识别和区分相应源元数据2702的具体机制。一旦应用程序程序块被生成,通过创建该应用程序程序块的单独实例(通过传递新的参数而定制)可重复使用该应用程序程序块。例如,当电影应用程序块被创建,并在为应CinemaNow的点播而提供的电影进行元数据分析、用户界面的生成、以及用户请求(在其它事情之中)之后,通过将不同的参数传递给该程序块的另一实例,该程序块的另一实例可处理其它提供者(如Movielink)提供的电影。因此应用程序可看作一种充分操纵顶层元数据分类的、自含式的、系统范围内的构造。图16描述的不同功能的图符中的每一个都可与一种不同的应用程序程序块相关联。
在图28的层中降低一层,应用程序程序块由几个小应用程序程序块组成。小应用程序程序块是一种充分操纵第二层元数据类或充分表示元数据特殊功能的、自含式的、系统范围内的构造。在这种环境中,第二层元数据指可用于高层元数据域内的元数据类型,例如电影的高层元数据,第二层元数据可包括电影片名、明星、片长等。元数据特殊功能指与特殊的高层元数据绑定的功能,例如浏览/播放电影或浏览商品元数据/将商品元数据放入购物车。例如,布满与特殊应用相关联的书架(bookshelf)的导航屏幕可使用书架导航小应用程序程序块定义。该导航小应用程序程序块映射以适合其更高层应用程序程序块的方式而组织的全部相关元数据。例如,由特殊电影提供者提供的全部内容可根据在电影导航小应用程序程序块中定义的可用的元数据而描述为书架的布置。相同的电影导航小应用程序程序块的另一实例可用于为不同电影提供者提供的内容生成相似的用户界面屏幕,并处理交互。小应用程序程序块提供相关元数据(如之前由应用程序程序块组织的元数据)与用户界面的场景布置之间的链接,以控制界面的各个方面,例如书架的尺寸规格、封面样式的尺寸规格等。小应用程序程序块还能控制用户和系统之间在该层的功能性交互,例如书架对暂停在其显示区域上的游标作出反应的方式(见如图24)。
每一个小应用程序程序块可由几个语义程序块组成,语义程序块趋向于作为充分封装了与系统相关联的特殊语义交互的、自含式的、系统范围内的构造而操作。例如,尽管小应用程序程序块可与特殊的元数据本体(ontology)相关联,例如图24所示的导航书架用户界面屏幕,然而语义程序块也可与特殊的书架相关联,例如图25所示。因此语义程序块可包括项(例如封面样式图像)的大小的详细描述、封面样式的详细描述、语义悬浮的详细描述(例如当用户将游标在特殊封面样式图像上暂停以生成如图25所示结果时,如何生成悬浮放大)、标题的详细描述等。
考虑语义程序块的如下实施方案。具体地,考虑由程序块引擎示例说明的、用以显示关于特殊的人(例如可使用界面选择的电影中的演员)的信息的语义程序块。该语义程序块将以下信息显示给系统中的用户:姓名、出生日期、简短传记和相关工作,例如属于该语义程序块中的属性的、他或她主演的电影。该传记还包括可滚动的文本框(其可利用图28所示的最低层的基本程序块创建)。语义程序块可重复用于所有的支持上述属性的普通元数据类型。还要注意到,语义程序块可示出相关工作的缩略图。然而,语义块还可进一步定义可预先缓存与每种缩略图相关联的、在用户点击缩略图进入该视图时的更大的图像的功能,这样减少了达到场景的等待时间。这可视为与面向对象(OO)类相类似,因为根据创建者是音乐家、乐团、演员、导演或演员,类“person”具有不同的实例。然而语义程序块可仅需示出相关工作的封面样式,则支持姓名、出生日期、简短传记和封面样式的所有类型的普通元数据都可重复使用该程序块。在存在相关工作但不能得到代表该工作的封面样式的情况下,该程序库在被调用时构造而替代地在用户界面上显示占位符图像。事实上,根据元数据类型(例如看起来像是电影盘或书),可使用不同类型的占位符图像。这说明了程序块处理错误的能力。
如上所述,基本程序块是表示基本交互作用的、自含式的、系统范围内的构造。基本程序块的实施方案有文本框、按钮、图片、滚动条等。
上述示例性的实施方案在所有方面趋于是用来描述而不是限制本发明。因此,本发明能够在具体的实现中具有许多变种,本领域的技术人员能够通过包含在本文中的描述得到这些变种。所有的这些变种和修改被看作是落入本发明在下面权利要求中定义的范围和精神内。除非是明确说明,否则在本申请的说明书中使用的元素、动作或指令不能解释为对本发明是关键或必要的。而且,如在本文中使用的那样,冠词“一(a)”的意图包括了一个或多个。

Claims (14)

1.一种用于在图形用户界面上显示信息的方法,包括以下步骤:
以第一放大等级显示第一多个图像;
接收识别所述多个图像的子集的第一选择指示;以及
以第二放大等级显示所述多个图像的所述被选子集的第一缩放版本,
其中,所述第一和第二显示步骤都通过执行至少一个可重复使用的软件代码块实现。
2.如权利要求1所述的方法,其中,所述至少一个可重复使用的软件代码块用可缩放矢量图形(SVG)语言编写。
3.如权利要求2所述的方法,其中,用于生成所述至少一个可重复使用的软件代码块的所述SVG语言被修改以包括程序块构造,所述程序块构造具有以下属性:
标识(id)值、规定像素中相应节点的宽度的宽度值、规定像素中相应节点的高度的高度值、转变值、定位器事件值、可见性属性、以及对作为程序块加载的SVG文件的URL。
4.如权利要求1所述的方法,其中,所述至少一个可重复使用的软件代码块用于绘制包括作为所述第一多个图像的多个可选项的架。
5.如权利要求4所述的方法,其中,利用作为参数传递给所述至少一个可重复使用的软件代码块的图像数据在所述用户界面上绘制所述第一多个图像。
6.如权利要求5所述的方法,其中,所述参数是与电影和音乐之一相关联的元数据。
7.一种用于构造与元数据处理系统相关联的分布式软件的方法,所述方法包括以下步骤:
提供多个第一类型的系统范围软件构造,其每一个定义用户与各自的高层元数据类型的交互;以及
提供至少一个第二类型的低层系统范围软件构造,其中所述多个第一类型的系统范围软件构造中的每一个包括一个或多个所述第二类型的低层系统范围软件构造。
8.如权利要求7所述的方法,其中,所述至少一个第二类型的低层系统范围软件构造定义与第二层元数据类型的系统交互、或定义元数据特殊功能。
9.如权利要求7所述的方法,其中,所述高层元数据类型是电影,且所述第二层元数据类型包括电影片名和电影明星的姓名。
10.如权利要求7所述的方法,其中,所述第二类型的低层系统范围软件构造是利用形式修改的可缩放矢量图形(SVG)语言构造的程序块。
11.一种具有分布式软件构造的元数据处理系统,包括:
元数据供应源,用于为所述元数据处理系统提供各种类型的元数据;
多个第一类型的系统范围软件构造,其每一个定义用户与各自的高层元数据类型的交互;以及
至少一个第二类型的低层系统范围软件构造,其中所述多个第一类型的系统范围软件构造中的每一个包括一个或多个所述第二类型的低层系统范围软件构造。
12.如权利要求11所述的元数据处理系统,其中,所述至少一个第二类型的低层系统范围软件构造定义与第二层元数据类型的系统交互、或定义元数据特殊功能。
13.如权利要求11所述的元数据处理系统,其中,所述高层元数据类型是电影,且第二层元数据类型包括电影片名和电影明星的姓名。
14.如权利要求11所述的元数据处理系统,其中,所述第二类型的低层系统范围软件构造是利用形式修改的可缩放矢量图形(SVG)语言构造的程序块。
CN2006800015814A 2005-01-05 2006-01-05 用于用户界面的分布式软件架构 Expired - Fee Related CN101233504B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US64140605P 2005-01-05 2005-01-05
US60/641,406 2005-01-05
PCT/US2006/000257 WO2006074267A2 (en) 2005-01-05 2006-01-05 Distributed software construction for user interfaces

Publications (2)

Publication Number Publication Date
CN101233504A true CN101233504A (zh) 2008-07-30
CN101233504B CN101233504B (zh) 2010-11-10

Family

ID=36648159

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2006800015814A Expired - Fee Related CN101233504B (zh) 2005-01-05 2006-01-05 用于用户界面的分布式软件架构

Country Status (6)

Country Link
US (1) US20060176403A1 (zh)
EP (1) EP1834491A4 (zh)
JP (1) JP2008527540A (zh)
KR (1) KR20070093084A (zh)
CN (1) CN101233504B (zh)
WO (1) WO2006074267A2 (zh)

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102331933A (zh) * 2011-09-30 2012-01-25 南京航天银山电气有限公司 嵌入式软件界面实现方法及系统
CN102742291A (zh) * 2009-12-08 2012-10-17 Lg电子株式会社 图像显示设备及其操作方法
CN103021151A (zh) * 2012-11-21 2013-04-03 深圳先进技术研究院 服务系统及其电子设备及对多源遥控器进行响应的方法
CN103150089A (zh) * 2013-01-17 2013-06-12 恒泰艾普石油天然气技术服务股份有限公司 大幅面图形图像缩略图浏览和快速定位目标区域的方法
US9665384B2 (en) 2005-08-30 2017-05-30 Microsoft Technology Licensing, Llc Aggregation of computing device settings
US9696888B2 (en) 2010-12-20 2017-07-04 Microsoft Technology Licensing, Llc Application-launching interface for multiple modes
US9766790B2 (en) 2010-12-23 2017-09-19 Microsoft Technology Licensing, Llc Application reporting in an application-selectable user interface
CN107479780A (zh) * 2017-07-13 2017-12-15 北京微视酷科技有限责任公司 一种虚拟场景处理、下载方法及装置、vr设备
US10114865B2 (en) 2011-09-09 2018-10-30 Microsoft Technology Licensing, Llc Tile cache
US10254955B2 (en) 2011-09-10 2019-04-09 Microsoft Technology Licensing, Llc Progressively indicating new content in an application-selectable user interface
US10303325B2 (en) 2011-05-27 2019-05-28 Microsoft Technology Licensing, Llc Multi-application environment
US10353566B2 (en) 2011-09-09 2019-07-16 Microsoft Technology Licensing, Llc Semantic zoom animations
US10579250B2 (en) 2011-09-01 2020-03-03 Microsoft Technology Licensing, Llc Arranging tiles
CN111191410A (zh) * 2018-10-26 2020-05-22 富士施乐株式会社 用于计算笔记本界面的系统和方法及其计算机可读介质
CN111768819B (zh) * 2020-06-04 2021-04-27 上海森亿医疗科技有限公司 动态显示或隐藏页眉页脚的方法、装置、设备和介质
US11698721B2 (en) 2011-05-27 2023-07-11 Microsoft Technology Licensing, Llc Managing an immersive interface in a multi-application immersive environment

Families Citing this family (88)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100619071B1 (ko) * 2005-03-18 2006-08-31 삼성전자주식회사 메뉴 표시 장치 및 그 방법과 이를 수행하기 위한프로그램이 기록된 기록매체
JP3974624B2 (ja) * 2005-05-27 2007-09-12 松下電器産業株式会社 表示装置
US8543420B2 (en) * 2007-09-19 2013-09-24 Fresenius Medical Care Holdings, Inc. Patient-specific content delivery methods and systems
US8850478B2 (en) * 2005-12-02 2014-09-30 Hillcrest Laboratories, Inc. Multimedia systems, methods and applications
US8924889B2 (en) * 2005-12-02 2014-12-30 Hillcrest Laboratories, Inc. Scene transitions in a zoomable user interface using a zoomable markup language
US7536654B2 (en) * 2006-02-06 2009-05-19 Microsoft Corporation Photo browse and zoom
KR100746874B1 (ko) * 2006-03-16 2007-08-07 삼성전자주식회사 이동 단말기에서 터치패드를 이용한 서비스 제공 장치 및방법
JP2007304666A (ja) 2006-05-08 2007-11-22 Sony Computer Entertainment Inc 情報出力システム及び情報出力方法
US7864163B2 (en) 2006-09-06 2011-01-04 Apple Inc. Portable electronic device, method, and graphical user interface for displaying structured electronic documents
US7956849B2 (en) 2006-09-06 2011-06-07 Apple Inc. Video manager for portable multifunction device
US7886267B2 (en) * 2006-09-27 2011-02-08 Symantec Corporation Multiple-developer architecture for facilitating the localization of software applications
US8015581B2 (en) 2007-01-05 2011-09-06 Verizon Patent And Licensing Inc. Resource data configuration for media content access systems and methods
US20080168478A1 (en) 2007-01-07 2008-07-10 Andrew Platzer Application Programming Interfaces for Scrolling
US20080168402A1 (en) 2007-01-07 2008-07-10 Christopher Blumenberg Application Programming Interfaces for Gesture Operations
US20080201695A1 (en) * 2007-02-16 2008-08-21 Qing Zhou Computer graphics rendering
KR100869885B1 (ko) * 2007-11-13 2008-11-24 에스케이 텔레콤주식회사 모바일 단말기의 웹 페이지를 브라우징하는 무선인터넷서비스 시스템 및 그 방법
US20090144776A1 (en) * 2007-11-29 2009-06-04 At&T Knowledge Ventures, L.P. Support for Personal Content in a Multimedia Content Delivery System and Network
US8745513B2 (en) * 2007-11-29 2014-06-03 Sony Corporation Method and apparatus for use in accessing content
US20090183068A1 (en) * 2008-01-14 2009-07-16 Sony Ericsson Mobile Communications Ab Adaptive column rendering
US8645827B2 (en) 2008-03-04 2014-02-04 Apple Inc. Touch event model
US8717305B2 (en) 2008-03-04 2014-05-06 Apple Inc. Touch event model for web pages
KR101475939B1 (ko) * 2008-07-02 2014-12-23 삼성전자 주식회사 이미지 처리 장치의 제어 방법과 이미지 처리 장치, 이미지파일
JP5470861B2 (ja) 2009-01-09 2014-04-16 ソニー株式会社 表示装置及び表示方法
US8698741B1 (en) 2009-01-16 2014-04-15 Fresenius Medical Care Holdings, Inc. Methods and apparatus for medical device cursor control and touchpad-based navigation
US20100192181A1 (en) * 2009-01-29 2010-07-29 At&T Intellectual Property I, L.P. System and Method to Navigate an Electonic Program Guide (EPG) Display
US8566045B2 (en) 2009-03-16 2013-10-22 Apple Inc. Event recognition
US8285499B2 (en) 2009-03-16 2012-10-09 Apple Inc. Event recognition
US9684521B2 (en) 2010-01-26 2017-06-20 Apple Inc. Systems having discrete and continuous gesture recognizers
US9142044B2 (en) * 2009-05-26 2015-09-22 Oracle International Corporation Apparatus, systems and methods for layout of scene graphs using node bounding areas
US9076264B1 (en) * 2009-08-06 2015-07-07 iZotope, Inc. Sound sequencing system and method
US20110078718A1 (en) * 2009-09-29 2011-03-31 Google Inc. Targeting videos for advertisements by audience or content
US10799117B2 (en) 2009-11-05 2020-10-13 Fresenius Medical Care Holdings, Inc. Patient treatment and monitoring systems and methods with cause inferencing
US8632485B2 (en) * 2009-11-05 2014-01-21 Fresenius Medical Care Holdings, Inc. Patient treatment and monitoring systems and methods
US9219946B2 (en) 2009-11-16 2015-12-22 Lg Electronics Inc. Method of providing contents information for a network television
CN102598701B (zh) * 2009-11-16 2015-05-20 Lg电子株式会社 为网络电视提供内容信息
CN101763270B (zh) 2010-01-28 2011-06-15 华为终端有限公司 组件显示处理方法和用户设备
US8552999B2 (en) 2010-06-14 2013-10-08 Apple Inc. Control selection approximation
CN102339197A (zh) * 2010-07-26 2012-02-01 鸿富锦精密工业(深圳)有限公司 具有日期和时间调整功能的嵌入式系统及其调整方法
US9377876B2 (en) * 2010-12-15 2016-06-28 Hillcrest Laboratories, Inc. Visual whiteboard for television-based social network
US8612874B2 (en) 2010-12-23 2013-12-17 Microsoft Corporation Presenting an application change through a tile
US9423951B2 (en) 2010-12-31 2016-08-23 Microsoft Technology Licensing, Llc Content-based snap point
US9383917B2 (en) 2011-03-28 2016-07-05 Microsoft Technology Licensing, Llc Predictive tiling
USD655716S1 (en) * 2011-05-27 2012-03-13 Microsoft Corporation Display screen with user interface
CN102394053B (zh) * 2011-06-20 2013-08-14 深圳市茁壮网络股份有限公司 一种纯单色图片显示方法及装置
US9557909B2 (en) 2011-09-09 2017-01-31 Microsoft Technology Licensing, Llc Semantic zoom linguistic helpers
US9244802B2 (en) 2011-09-10 2016-01-26 Microsoft Technology Licensing, Llc Resource user interface
KR101383840B1 (ko) * 2011-11-17 2014-04-14 도시바삼성스토리지테크놀러지코리아 주식회사 리모트 컨트롤러와, 이를 이용한 제어 시스템 및 제어 방법
US10382287B2 (en) * 2012-02-23 2019-08-13 Ajay JADHAV Persistent node framework
GB201210167D0 (en) * 2012-06-08 2012-07-25 Macat Internat Ltd A system and method for assembling educational materials
US9280575B2 (en) * 2012-07-20 2016-03-08 Sap Se Indexing hierarchical data
JP5831889B2 (ja) * 2013-02-19 2015-12-09 Necパーソナルコンピュータ株式会社 情報処理方法、情報処理装置、及びプログラム
USD737310S1 (en) * 2013-02-23 2015-08-25 Samsung Electronics Co., Ltd. Display screen or portion thereof with graphical user interface
USD737311S1 (en) * 2013-02-23 2015-08-25 Samsung Electronics Co., Ltd. Display screen or portion thereof with graphical user interface
AU349940S (en) * 2013-02-23 2013-07-29 Samsung Electronics Co Ltd Display screen for an electronic device
US9171401B2 (en) 2013-03-14 2015-10-27 Dreamworks Animation Llc Conservative partitioning for rendering a computer-generated animation
US9659398B2 (en) 2013-03-15 2017-05-23 Dreamworks Animation Llc Multiple visual representations of lighting effects in a computer animation scene
US9514562B2 (en) 2013-03-15 2016-12-06 Dreamworks Animation Llc Procedural partitioning of a scene
US9589382B2 (en) 2013-03-15 2017-03-07 Dreamworks Animation Llc Render setup graph
US9626787B2 (en) 2013-03-15 2017-04-18 Dreamworks Animation Llc For node in render setup graph
US9218785B2 (en) 2013-03-15 2015-12-22 Dreamworks Animation Llc Lighting correction filters
US9811936B2 (en) 2013-03-15 2017-11-07 Dreamworks Animation L.L.C. Level-based data sharing for digital content production
US9230294B2 (en) 2013-03-15 2016-01-05 Dreamworks Animation Llc Preserving and reusing intermediate data
US9208597B2 (en) * 2013-03-15 2015-12-08 Dreamworks Animation Llc Generalized instancing for three-dimensional scene data
USD751587S1 (en) * 2013-04-30 2016-03-15 Microsoft Corporation Display screen with graphical user interface
KR20160016826A (ko) * 2013-06-05 2016-02-15 톰슨 라이센싱 멀티스크린 감상을 위한 콘텐츠 분배를 위한 방법 및 장치
CN105378695B (zh) 2013-06-05 2020-05-19 交互数字Ce专利控股公司 用于内容分发以便多屏幕观看的方法和装置
US9733716B2 (en) 2013-06-09 2017-08-15 Apple Inc. Proxy gesture recognizer
USD755843S1 (en) * 2013-06-10 2016-05-10 Apple Inc. Display screen or portion thereof with graphical user interface
US9766789B1 (en) 2014-07-07 2017-09-19 Cloneless Media, LLC Media effects system
USD808995S1 (en) 2016-05-16 2018-01-30 Google Llc Display screen with graphical user interface
USD792427S1 (en) * 2016-05-16 2017-07-18 Google Inc. Display screen with animated graphical user interface
USD822677S1 (en) 2016-05-16 2018-07-10 Google Llc Display screen with graphical user interface
USD815109S1 (en) * 2016-05-16 2018-04-10 Google Llc Display screen with graphical user interface
USD792892S1 (en) * 2016-05-16 2017-07-25 Google Inc. Display screen with graphical user interface
CN106569939B (zh) * 2016-10-28 2020-06-12 北京数科网维技术有限责任公司 一种控件脚本程序多国文字解析系统及多国文字解析方法
USD825586S1 (en) * 2016-11-11 2018-08-14 Atlas Copco Airpower, Naamloze Vennootschap Display screen with a graphical user interface
USD849757S1 (en) * 2016-12-13 2019-05-28 Samsung Electronics Co., Ltd. Display screen with animated graphical user interface
USD823322S1 (en) * 2017-03-10 2018-07-17 Atlas Copco Airpower, Naamloze Vennootschap Display screen with a graphical user interface
USD812072S1 (en) * 2017-03-29 2018-03-06 Sorenson Ip Holdings, Llc Display screen or a portion thereof with graphical user interface
USD822686S1 (en) * 2017-05-09 2018-07-10 Atlas Copco Airpower, Naamloze Vennootschap Display screen with a graphical user interface
USD823319S1 (en) * 2017-05-09 2018-07-17 Atlas Copco Airpower, Naamloze Vennootschap Display screen with a graphical user interface
USD822687S1 (en) * 2017-05-09 2018-07-10 Atlas Copco Airpower, Naamloze Vennootschap Display screen with a graphical user interface
US20200045375A1 (en) * 2018-07-31 2020-02-06 Salesforce.Com, Inc. Video playback in a web-application using a resizable and repositionable window
US10901593B2 (en) * 2018-09-21 2021-01-26 Salesforce.Com, Inc. Configuring components in a display template based on a user interface type
USD937294S1 (en) * 2019-02-18 2021-11-30 Samsung Electronics Co., Ltd. Display screen or portion thereof with graphical user interface
USD933681S1 (en) * 2020-03-26 2021-10-19 Denso International America, Inc. HVAC system display screen or portion thereof with graphical user interface
USD957433S1 (en) * 2020-10-23 2022-07-12 Smith & Nephew, Inc. Display screen with surgical controller graphical user interface
USD957432S1 (en) * 2020-10-23 2022-07-12 Smith & Nephew, Inc. Display screen with surgical controller graphical user interface

Family Cites Families (62)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4745402A (en) * 1987-02-19 1988-05-17 Rca Licensing Corporation Input device for a display system using phase-encoded signals
US5045843B1 (en) * 1988-12-06 1996-07-16 Selectech Ltd Optical pointing device
US5341466A (en) * 1991-05-09 1994-08-23 New York University Fractal computer user centerface with zooming capability
US5359348A (en) * 1992-05-21 1994-10-25 Selectech, Ltd. Pointing device having improved automatic gain control and information reporting
DE69418908T2 (de) * 1993-01-26 2000-01-20 Sun Microsystems Inc Verfahren und Gerät zum Informationsanschauen in einer Rechnerdatenbank
US5524195A (en) * 1993-05-24 1996-06-04 Sun Microsystems, Inc. Graphical user interface for interactive television with an animated agent
US6614914B1 (en) * 1995-05-08 2003-09-02 Digimarc Corporation Watermark embedder and reader
US5619249A (en) * 1994-09-14 1997-04-08 Time Warner Entertainment Company, L.P. Telecasting service for providing video programs on demand with an interactive interface for facilitating viewer selection of video programs
US5671342A (en) * 1994-11-30 1997-09-23 Intel Corporation Method and apparatus for displaying information relating to a story and a story indicator in a computer system
US5553221A (en) * 1995-03-20 1996-09-03 International Business Machine Corporation System and method for enabling the creation of personalized movie presentations and personalized movie collections
US6002394A (en) * 1995-10-02 1999-12-14 Starsight Telecast, Inc. Systems and methods for linking television viewers with advertisers and broadcasters
US6049823A (en) * 1995-10-04 2000-04-11 Hwang; Ivan Chung-Shung Multi server, interactive, video-on-demand television system utilizing a direct-access-on-demand workgroup
US5793438A (en) * 1995-11-13 1998-08-11 Hyundai Electronics America Electronic program guide with enhanced presentation
US5796395A (en) * 1996-04-02 1998-08-18 Wegener Internet Projects Bv System for publishing and searching interests of individuals
KR100188659B1 (ko) * 1996-06-28 1999-06-01 윤종용 방송에약녹화 시스템의 방송 프로그램 안내 표시장치및그방법
US6151059A (en) * 1996-08-06 2000-11-21 Starsight Telecast, Inc. Electronic program guide with interactive areas
US6195089B1 (en) * 1996-08-14 2001-02-27 Samsung Electronics Co., Ltd. Television graphical user interface having variable channel changer icons
US5978043A (en) * 1996-08-14 1999-11-02 Samsung Electronics Co., Ltd. TV graphical user interface that provides customized lists of programming
US5835156A (en) * 1996-08-14 1998-11-10 Samsung Electroncis, Ltd. Television graphical user interface employing remote random access pointing device
US6057831A (en) * 1996-08-14 2000-05-02 Samsung Electronics Co., Ltd. TV graphical user interface having cursor position indicator
US6191781B1 (en) * 1996-08-14 2001-02-20 Samsung Electronics, Ltd. Television graphical user interface that combines electronic program guide with graphical channel changer
US6181333B1 (en) * 1996-08-14 2001-01-30 Samsung Electronics Co., Ltd. Television graphical user interface having channel and program sorting capabilities
US6016144A (en) * 1996-08-14 2000-01-18 Samsung Electronics Co., Ltd. Multi-layered television graphical user interface
US6411308B1 (en) * 1996-08-14 2002-06-25 Samsung Electronics Co., Ltd. Television graphical user interface having variable channel control bars
US5955988A (en) * 1996-08-14 1999-09-21 Samsung Electronics Co., Ltd. Graphical user interface for establishing installation location for satellite based television system
US5940072A (en) * 1996-08-15 1999-08-17 Samsung Information Systems America Graphics decompression using system ROM indexing in TV set top box
US5790121A (en) * 1996-09-06 1998-08-04 Sklar; Peter Clustering user interface
US6037933A (en) * 1996-11-13 2000-03-14 Samsung Electronics Co., Ltd. TV graphical user interface for providing user access to preset time periods of TV program information
US6154723A (en) * 1996-12-06 2000-11-28 The Board Of Trustees Of The University Of Illinois Virtual reality 3D interface system for data creation, viewing and editing
US5982369A (en) * 1997-04-21 1999-11-09 Sony Corporation Method for displaying on a screen of a computer system images representing search results
US6397387B1 (en) * 1997-06-02 2002-05-28 Sony Corporation Client and server system
KR100317632B1 (ko) * 1997-07-21 2002-02-19 윤종용 메뉴 선택 제어방법
US6175362B1 (en) * 1997-07-21 2001-01-16 Samsung Electronics Co., Ltd. TV graphical user interface providing selection among various lists of TV channels
US6680694B1 (en) * 1997-08-19 2004-01-20 Siemens Vdo Automotive Corporation Vehicle information system
US6005578A (en) * 1997-09-25 1999-12-21 Mindsphere, Inc. Method and apparatus for visual navigation of information objects
US5912612A (en) * 1997-10-14 1999-06-15 Devolpi; Dean R. Multi-speed multi-direction analog pointing device
US6092076A (en) * 1998-03-24 2000-07-18 Navigation Technologies Corporation Method and system for map display in a navigation application
US6163749A (en) * 1998-06-05 2000-12-19 Navigation Technologies Corp. Method and system for scrolling a map display in a navigation application
US6268849B1 (en) * 1998-06-30 2001-07-31 United Video Properties, Inc. Internet television program guide system with embedded real-time data
JP2000029598A (ja) * 1998-07-13 2000-01-28 Matsushita Electric Ind Co Ltd 表示制御装置、表示制御方法及び表示制御プログラムを記録したコンピュータ読み取り可能な記録媒体
US6295646B1 (en) * 1998-09-30 2001-09-25 Intel Corporation Method and apparatus for displaying video data and corresponding entertainment data for multiple entertainment selection sources
KR100301016B1 (ko) * 1998-10-27 2001-09-06 윤종용 온-스크린메뉴선택방법및그장치
KR20000027424A (ko) * 1998-10-28 2000-05-15 윤종용 방송되는 프로그램 타이틀을 표시하는 프로그램 가이드 제어방법
US6452609B1 (en) * 1998-11-06 2002-09-17 Supertuner.Com Web application for accessing media streams
US6577350B1 (en) * 1998-12-21 2003-06-10 Sony Corporation Method and apparatus for displaying an electronic program guide
US6429813B2 (en) * 1999-01-14 2002-08-06 Navigation Technologies Corp. Method and system for providing end-user preferences with a navigation system
US6426761B1 (en) * 1999-04-23 2002-07-30 Internation Business Machines Corporation Information presentation system for a graphical user interface
JP2001050767A (ja) * 1999-08-06 2001-02-23 Aisin Aw Co Ltd ナビゲーション装置および記憶媒体
US6349257B1 (en) * 1999-09-15 2002-02-19 International Business Machines Corporation System for personalized mobile navigation information
US6753849B1 (en) * 1999-10-27 2004-06-22 Ken Curran & Associates Universal remote TV mouse
US6803931B1 (en) * 1999-11-04 2004-10-12 Kendyl A. Roman Graphical user interface including zoom control box representing image and magnification of displayed image
US6421067B1 (en) * 2000-01-16 2002-07-16 Isurftv Electronic programming guide
US20010030667A1 (en) * 2000-04-10 2001-10-18 Kelts Brett R. Interactive display interface for information objects
US20020112237A1 (en) * 2000-04-10 2002-08-15 Kelts Brett R. System and method for providing an interactive display interface for information objects
US6385542B1 (en) * 2000-10-18 2002-05-07 Magellan Dis, Inc. Multiple configurations for a vehicle navigation system
US8117565B2 (en) * 2001-10-18 2012-02-14 Viaclix, Inc. Digital image magnification for internet appliance
US20030128390A1 (en) * 2002-01-04 2003-07-10 Yip Thomas W. System and method for simplified printing of digitally captured images using scalable vector graphics
JP2007516496A (ja) * 2003-05-08 2007-06-21 ヒルクレスト ラボラトリーズ, インコーポレイテッド メディア項目を編成、選択及び開始するためのズーム可能なグラフィカルユーザインタフェースを有する制御フレームワーク
US20040268393A1 (en) * 2003-05-08 2004-12-30 Hunleth Frank A. Control framework with a zoomable graphical user interface for organizing, selecting and launching media items
US8046705B2 (en) * 2003-05-08 2011-10-25 Hillcrest Laboratories, Inc. Systems and methods for resolution consistent semantic zooming
US7239301B2 (en) * 2004-04-30 2007-07-03 Hillcrest Laboratories, Inc. 3D pointing devices and methods
US8418075B2 (en) * 2004-11-16 2013-04-09 Open Text Inc. Spatially driven content presentation in a cellular environment

Cited By (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9665384B2 (en) 2005-08-30 2017-05-30 Microsoft Technology Licensing, Llc Aggregation of computing device settings
CN102742291A (zh) * 2009-12-08 2012-10-17 Lg电子株式会社 图像显示设备及其操作方法
CN102742291B (zh) * 2009-12-08 2016-08-03 Lg电子株式会社 图像显示设备及其操作方法
US9696888B2 (en) 2010-12-20 2017-07-04 Microsoft Technology Licensing, Llc Application-launching interface for multiple modes
US9766790B2 (en) 2010-12-23 2017-09-19 Microsoft Technology Licensing, Llc Application reporting in an application-selectable user interface
US11126333B2 (en) 2010-12-23 2021-09-21 Microsoft Technology Licensing, Llc Application reporting in an application-selectable user interface
US10969944B2 (en) 2010-12-23 2021-04-06 Microsoft Technology Licensing, Llc Application reporting in an application-selectable user interface
US9870132B2 (en) 2010-12-23 2018-01-16 Microsoft Technology Licensing, Llc Application reporting in an application-selectable user interface
US9864494B2 (en) 2010-12-23 2018-01-09 Microsoft Technology Licensing, Llc Application reporting in an application-selectable user interface
US10303325B2 (en) 2011-05-27 2019-05-28 Microsoft Technology Licensing, Llc Multi-application environment
US11698721B2 (en) 2011-05-27 2023-07-11 Microsoft Technology Licensing, Llc Managing an immersive interface in a multi-application immersive environment
US10579250B2 (en) 2011-09-01 2020-03-03 Microsoft Technology Licensing, Llc Arranging tiles
US10353566B2 (en) 2011-09-09 2019-07-16 Microsoft Technology Licensing, Llc Semantic zoom animations
US10114865B2 (en) 2011-09-09 2018-10-30 Microsoft Technology Licensing, Llc Tile cache
US10254955B2 (en) 2011-09-10 2019-04-09 Microsoft Technology Licensing, Llc Progressively indicating new content in an application-selectable user interface
CN102331933A (zh) * 2011-09-30 2012-01-25 南京航天银山电气有限公司 嵌入式软件界面实现方法及系统
CN103021151A (zh) * 2012-11-21 2013-04-03 深圳先进技术研究院 服务系统及其电子设备及对多源遥控器进行响应的方法
CN103021151B (zh) * 2012-11-21 2016-09-07 深圳先进技术研究院 服务系统及其电子设备及对多源遥控器进行响应的方法
CN103150089B (zh) * 2013-01-17 2015-12-02 恒泰艾普石油天然气技术服务股份有限公司 大幅面图形图像缩略图浏览和快速定位目标区域的方法
CN103150089A (zh) * 2013-01-17 2013-06-12 恒泰艾普石油天然气技术服务股份有限公司 大幅面图形图像缩略图浏览和快速定位目标区域的方法
CN107479780A (zh) * 2017-07-13 2017-12-15 北京微视酷科技有限责任公司 一种虚拟场景处理、下载方法及装置、vr设备
CN111191410A (zh) * 2018-10-26 2020-05-22 富士施乐株式会社 用于计算笔记本界面的系统和方法及其计算机可读介质
CN111768819B (zh) * 2020-06-04 2021-04-27 上海森亿医疗科技有限公司 动态显示或隐藏页眉页脚的方法、装置、设备和介质

Also Published As

Publication number Publication date
KR20070093084A (ko) 2007-09-17
EP1834491A2 (en) 2007-09-19
JP2008527540A (ja) 2008-07-24
US20060176403A1 (en) 2006-08-10
WO2006074267A3 (en) 2007-12-06
EP1834491A4 (en) 2010-06-02
CN101233504B (zh) 2010-11-10
WO2006074267A2 (en) 2006-07-13

Similar Documents

Publication Publication Date Title
CN101233504B (zh) 用于用户界面的分布式软件架构
CN101341457B (zh) 利用3d定位增强电视应用的方法和系统
KR100994011B1 (ko) 미디어 항목들을 편성하고, 선택하며, 개시하기 위한주밍(zooming) 가능한 그래픽 유저 인터페이스를갖춘 제어 프레임워크
US8924889B2 (en) Scene transitions in a zoomable user interface using a zoomable markup language
US7834849B2 (en) Control framework with a zoomable graphical user interface for organizing selecting and launching media items
US20180113589A1 (en) Systems and Methods for Node Tracking and Notification in a Control Framework Including a Zoomable Graphical User Interface
US8555165B2 (en) Methods and systems for generating a zoomable graphical user interface
US8046705B2 (en) Systems and methods for resolution consistent semantic zooming
CN101484869B (zh) 用于处理一到多个对象的调整大小和布局的方法和系统
CN100454220C (zh) 用于组织、选择和启动媒体项的控制架构

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20180611

Address after: Delaware

Patentee after: IDHL holding company

Address before: American Maryland

Patentee before: Hillcrest Lab Inc.

TR01 Transfer of patent right
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20101110

Termination date: 20180105

CF01 Termination of patent right due to non-payment of annual fee