具体说明
以下描述阐述了用于为采用虚拟调谐器功能集的客户端设备调度媒体节目的处理(例如,记录)的调度功能集。虚拟调谐器功能集以虚拟方式调谐到一个或多个媒体节目,并且能同时消耗任意数目的媒体节目,其前提是所消耗的带宽总量不超出可用带宽的总量。换句话说,使用虚拟调谐器功能集的客户端设备能以各种不同的方式“瓜分”可用带宽来消耗媒体节目。该能力为构建调度表引入了额外的自由度,并由此使调度媒体节目的任务更复杂(与为使用固定数目的物理调谐器的客户端设备执行的调度相比)。在此所描述的调度功能集有效地解决该附加复杂度。
关于术语体系,术语“媒体信息”是指以电子形式表示的可由用户消耗的任何数据。媒体信息能包括传达音频和/或视频信息,诸如音频源(例如音乐、口语主题等等)、静态画面资源(例如,数字照片等等)、运动图像资源(例如,视听电视媒体节目、电影等等)等等的任何信息。
术语“媒体节目”表示能由客户端设备消耗的任何单元的媒体信息。例如,媒体节目可以表示电视媒体节目、电影、乐曲等等。
术语“客户端设备”是指用于处理和呈现媒体信息的任何单元。例如,客户端设备可包括机顶盒模块、数字视频录像机(DVR)、可重写数字视频盘(DVD-RW)设备、具有集成媒体处理功能集的电视设备、装备媒体处理功能集的计算机等等,或这些设备的某种组合。
术语“调度表”指的是指定有关要被录制的媒体节目的突出信息的条目的集合。例如,这些条目指定媒体节目将开始和结束的定时。这些条目也可以指定将提供媒体节目的源(例如,频道)以及媒体节目的其他潜在可能的特征。通常,在调度表中呈现的信息在此称为“调度表信息”。
术语“媒体节目指南”是指定义由多个不同源(例如,频道)投放的媒体节目的定时的主调度表信息。术语“媒体节目指南信息”通常是指在媒体节目指南中呈现的信息。媒体节目指南信息可以包括定期更新的电子媒体节目指南(EPG)信息。
本公开内容包括以下章节。章节A说明用于实现调度表功能集的示例性系统。而章节B给出示例说明章节A的系统的操作的流程图和随附的例子。
A.示例性系统(图1-4)
通常,参考附图所描述的功能的任何一个能使用软件、固件(例如,固定逻辑电路)、人工处理、或这些实现的组合来实现。如在此所使用的术语“逻辑”、“模块”或“功能集”一般表示软件、固件,或软件与固件的组合。例如,在软件实现的情形中,术语“逻辑”、“模块”或“功能集”表示当在一个或多个处理设备(例如,一个或多个CPU)上执行时执行指定任务的媒体节目代码(和/或声明型指令)。媒体节目代码能存储在一个或多个计算机可读存储器设备中。更一般地说,将逻辑、模块和功能集示例性地分成不同单元可以反映这些软件和/或硬件的实际物理编组和分配,或能对应于由单个软件媒体节目和/或硬件单元执行的不同任务的概念分配。所示的逻辑、模块和功能集能位于单个站点(例如,由处理设备实现)或能分布在多个位置上。
A.1.示例性设计范例的概述(图1)
图1示出系统100,其中,头端操作中心(OC)102将媒体节目投放到多个客户端设备(104、106,...108)。代表性的客户端设备104位于家庭110中。家庭110潜在可能包括另外的客户端设备(未示出)。例如,家庭110潜在可能包括位于家庭110的各个不同房间中的不同客户端设备。在以下讨论中,本发明的特征将参考位于家庭110中的代表性客户端设备104来描述,但所指认的特征也效力等同地适用于其他客户端设备和家庭。
操作中心102使用通信信道(“信道”)112来将媒体信息投放到示例性家庭110。信道112包括用于将媒体信息流送到家庭114的规定量的带宽114。术语“带宽”是指在给定时间里在信道112上可传送的信息量。在一种情形中,操作中心102以等于带宽114的恒定数据速率在信道112上传送信息。在另一情形中,操作中心102以由带宽114封顶的可变速率在信道112上传送信息。在任一情形中,信道112能比喻为具有由带宽114限定的“直径”的通信管道,该“直径”控制在任何给定时间能够流过该管道的最大信息量。
带宽114能容纳将多个标识出的媒体信息流投放到家庭110。这使单个客户端设备104潜在能够使用信道112提取多个媒体信息流用于在此同时呈现。这进而使用户能够在同一时间观看或记录多个媒体节目。在另一情形中,通信信道112能提供多个流以供家庭110内由同一信道112“馈给”的不同客户端设备接收。
在本公开内容中作了带宽114保持基本恒定的简化假设。然而,在此所述的调度算法也能适用于带宽114随时间变化的情形。例如,调度算法能适用于带宽114在一天中的某些时间被设在第一级别而在一天中的其他时间被设在第二级别的情形。许多其他可变带宽情景是可能的。在这些情形中,调度算法确定在未来节目广播期间可用的带宽,并在调度这些节目时将该因素纳入考虑。
在本公开内容中作了由任何节目消耗的带宽基本上保持恒定——例如,在标准清晰度恒定级别、高清晰度恒定级别等等这一进一步的简化假设。然而,在此所描述的调度算法也能适用于由节目消耗的带宽量随节目过程而变化的情形。当调度这些类型的节目时,调度算法可将该附加因素纳入考虑。
客户端设备104采用虚拟调谐器功能集(未示出)来从信道112接收媒体节目。例如,假定操作中心102经诸如因特网用户组管理协议(IGMP)等的多播技术来提供媒体信息。在IGMP技术中,媒体信息源使用分发节点树将该媒体信息散布到一组接收者。在这种情形中,虚拟调谐器功能集能通过接入媒体节目的多播分发来“调谐到”该媒体节目;它能通过在这些节点的树中定位到合适的分发节点来执行该任务。替换地,假定操作中心102经单播技术提供媒体信息。在该单播技术中,媒体信息源以一对一方式提供媒体信息对接收者的有针对性的散布。在这种情形中,虚拟调谐器功能集能通过标识提供媒体节目的源(可以对应于例如由操作中心102提供的服务器机器)来“调谐到”该媒体节目。在其他情形中,虚拟调谐器功能集可以使用多播和单播技术的组合,或其他一种或多种技术。
虚拟调谐器功能集能应用其功能集的不同实例来接收不同媒体节目。在此所使用的术语体系中,这些单独的实例构成单独的“虚拟调谐器”。虚拟调谐器在各个方面不同于常规的物理调谐器。例如,虚拟调谐器通过逻辑地标识分发(以上述方式)媒体节目的源来“调谐到”这些媒体节目。相反,物理调谐器通过典型地锁定到调制媒体节目的频率上来调谐到这些媒体节目。此外,虚拟调谐器功能集能支持任意数目的虚拟调谐器(只要由这些虚拟调谐器消耗的带宽合计量不超出分配的带宽114的总量)。相反,物理调谐器表示分立硬件单元,因此,传统的客户端设备提供不物理地添加(或移除)单元就不能改变的固定数目的此类单元。正是由于上述的原因,虚拟调谐器功能集被定性为“虚拟的”。
虚拟调谐器功能集的特性的更详细说明如下。
假定通信信道112提供N个单位的带宽114。进一步假定可用不同的记录质量,诸如标准清晰度(SD)记录质量和高清晰度(HD)记录质量来提供一媒体节目。SD流消耗SSD单位的带宽,而HD流消耗SHD单位的带宽,其中,SSD<SHD。另一潜在格式是画中画(PIP)格式,它包括该流的缩略图版本,其中SPIP<SSD。在客户端设备104仅接收SD流的简化情形中,信道112能支持T个虚拟调谐器。
T=N/SSD。
或以另一种方式表达:
K(SSD)≤N。
该表达式表示SD流的数目K总计消耗的带宽必须少于可用带宽114的总量N。
在其中客户端设备104能接收消耗任意量Si的带宽的流的更一般化的情形中,以下表达式必须总是成立。
换句话说,由所接收的流消耗的带宽总计量必须小于可用带宽114的总量N。例如,考虑其中客户端设备114接收L个SD流,每个消耗带宽SSD单位的带宽,并接收J个HD流,每个消耗带宽SHD单位的带宽的示例性情形。以上指认的约束变为:
L*SSD+J*SHD≤N
上述方程式表示近似。在实际应用中,系统100能使用其带宽114的一部分来处理除媒体节日的主流外的其他任务。例如,系统100能使用带宽的一部分来处理将丢失包提供给客户端设备104的重试活动。如下文所述,在可用带宽上还存在其他潜在的“损耗”。例如,耦合到信道112的实体(诸如个人计算机)能例如通过从因特网下载音乐、将图片上传到网站、接收和/或发送电子邮件等等来消耗带宽114的一部分。此消耗的带宽减少了可用于接收媒体节目的带宽总量,从而影响节目的调度。
系统100提供在调度供客户端设备104消耗的媒体节目的记录时使用上述约束的调度功能集。在一种情形中,此调度功能集能在操作中心102实现为OC调度功能集116。在该实现中,OC调度功能集116在操作中心102站点维护用于所有客户端设备(104,106,...,108)的调度表。在另一情形中,该调度功能集能被实现为位于代表性的客户端设备104上的客户端一方的调度处理功能集118。(如上所述,该论述将集中在代表性客户端设备104上,但其他客户端设备能实现它们各自相应的客户端一方的调度处理功能集,并且关于客户端设备104阐述的内容以等同效力适用于其他客户端设备)。在另一情形中,该调度功能集可由将操作中心102和客户端设备104处提供的功能集的组合以分布式方式来实现。为便于论述,并提供一个有形例子,剩余的论述将假定此调度功能集的核心是在操作中心102处由OC调度功能集116实现的。
调度功能集116的目的——相对于代表性的客户端设备104而言——是为客户端设备104维护用于确定客户端设备104应当记录由操作中心102提供的媒体节目的定时的调度表。为以这种方式执行,客户端设备104的用户能将调度指令转发到调度功能集116来创建调度表。然后当调度表指示是记录在该调度表中标识出的媒体节目的时间时,调度功能集116能进而将记录指令向下发送到客户端设备104。然后,客户端设备104着手将所标识的媒体节目记录在本地存储120中。
在其他实现中,能使用调度表来确定一个或多个媒体节目向客户端设备104的流送而不必要求在客户端设备104处记录这些媒体节目。换句话说,调度表可以指示客户端设备104在同一时间调谐到多个节目,并且客户端设备104能在同一时间简单地呈现这些节目,例如以画中画方式或其他某种方式(而不必记录这些节目)。或者客户端设备104能记录其所接收的节目中的一些,但不记录另一些。替换地,操作中心102本身能在操作中心102处将媒体节目录制在适当的媒体节目存储(未示出)中,在此之后,这些节目能被流送至客户端设备104以供在客户端设备104出呈现。然而,最后提及的情景完全消除了调度的需要。这是因为在操作中心102记录这些节目后,通常不需要在同一时间将多个节目流送至客户端设备104,除非客户端设备104处于某种原因希望在同一时间接收多个记录的节目,诸如在画中画情景中就是这样。
在任一情形中,调度功能集116应用上述指认出的约束来评估调度表中冲突的存在。更具体地说,当在调度表内的任何给定时间点,以上所指认出的约束中有一个或多个得不到满足时,就存在冲突。即,在这些时间点,调度表正试图记录消耗的带宽合计大于可用的带宽的媒体节目。
冲突可能因不同类型的事件而发生。在一种情形中,用户可以将新的媒体节目添加到调度表中,从而产生与调度表中的一个或多个预先存在的媒体节目的冲突。或者用户可能修改调度表中的现有媒体节目,以致它现在与调度表中的一个或多个其他媒体节目产生干扰。例如,假定可用带宽114将容纳在同一时间接收两个HD媒体节目。如果用户试图在同一时间记录三个HD媒体节目,那么用户将造成冲突(因为通信信道112不可能提供所需量的媒体信息,除非,如下所述,可以用一个或多个SD媒体节目来代替一个或多个对应的HD媒体节目。)在另一种情形中,冲突可能因媒体节目指南信息的变化而产生。例如,假设调度表是基于媒体信息将在时间X广播这一假定,但有新媒体节目指南信息到来,它将已调度的媒体节目的广播改到时间Y。该新的广播时间可能产生与调度表中的一个或多个其他媒体节目的冲突。在另一情形中,冲突可能因消耗所配给的带宽114的系统100中的任何其他事件而产生。因此,从而使得不可能接收一个或多个先前已调度的媒体节目。例如,假定家庭110中的个人计算机(未示出)与客户端设备104共享通信信道112。在与因特网(或其他某个实体)交互中,该计算机可能消耗带宽,由此减少了能由客户端设备104消耗的可用带宽114的总量,因此,当计算机正在操作时,它可能会与根据调度表并发流送到客户端设备104的节目产生冲突。在上述情形的任何一个中,当调度表中的任何条目发生变化时,就会具有影响其他条目的连锁反应。这是因为所有条目都从公用的带宽114库中汲取,因此,该公用库的缩减潜在可能影响调度表中的许多条目。
后面的几个章节将提供调度功能集116解决调度表中的冲突的方式的详细说明。作为介绍,调度功能集116能首先标识带宽事件。如上所述,这些事件定义表示带宽利用率的变化的任何发生;这些事件可能引起也可能不引起带宽的过分配。调度功能集116随后可标识被调度为将要记录的各媒体节目的不同带宽版本,以及有关记录的这些媒体节目的方式的用户偏好(诸如SD、HD等等)。调度功能集116随后能建立将带宽事件、媒体节目的可用带宽版本、和用户偏好纳入考虑的调度表。
在形成调度表时,调度功能集116提供用于解决可能产生的任何冲突的机制。用于解决冲突的一种示例性机制涉及标识调度表中发生过分配的时段,为每一时段枚举这些冲突的解决方案,以及经用户界面(UI)呈现来将这些解决方案呈递给用户。UI呈现允许用户通过选择一个或多个标识出的方案来解决冲突。
A.2包括调度功能集的示例性系统(图1)
在以上介绍章节中指认出了图1的系统100的多个特征。本章节提供系统100中的这些特征的更全面的概述。
首先,操作中心102包括获取功能集122,用于从媒体信息的一个或多个源124提供媒体信息。源124能表示产生或提供媒体信息的任何种类的实体,诸如有线或卫星电视供应商、一个或多个视频点播(VOD)供应商、一个或多个信息出版社、一个或多个库源、任何种类的启用因特网特征的储存库等等。从这些源124接收的媒体信息能包括视频、音频、静态图像,和/或其他多媒体内容。媒体节目的源124可以用多种不同录制格式,诸如SD、HD、PIP(缩略图大小)等等提供媒体节目(或其一些子集)。这为用户提供以优选记录格式收看和记录媒体节目的选择。
获取功能集122还从媒体节目指南源126接收媒体节目指南信息。该媒体节目指南源126能表示产生或提供媒体节目指南信息的任何种类的实体,诸如汇编和分发电子媒体节目指南(EPG)信息的商业服务。媒体节目指南信息通常标识将在标识的时区——诸如zai112天内——发生的媒体事件。媒体节目指南信息能通过提供表示事件的ID信息、事件将开始和结束的时间以及将提供事件的源(例如信道)等等来标识事件。
获取功能集122本身能包括一个或多个服务器计算机或专用于检索资源信息的任务的其他功能集。
操作中心102可选地包括信息内容存储128,用于在向客户端设备(104,106,...,108)散布媒体信息前存储媒体信息。信息内容存储128可被实现为一个或多个数据库以及相关联的数据库管理功能集。
操作中心102还能包括信息散布功能集130,用于经耦合机构132将媒体信息提供给客户端设备(104,106,...,108)。不同系统可以以不同方式使用信息散布功能集130。如上所述,系统100可用多播方式、单播方式、单播与多播组合方式或使用其他某种通信技术,使用信息散布功能集130来将获取功能集122(或从其他某个源)接收的媒体信息传送到客户端设备104。
信息散布功能集130能被实现为服务器模块的集合(未示出),以便于将媒体信息传送到客户端设备(104,106,...,108)。服务器模块可以提供冗余服务,以便能指定这些服务器模块中的任何一个来向客户端设备(104,106,...,108)中的任何一个提供相同服务。
无论使用哪种投放策略,操作中心102都能使用各种封装范例来将媒体信息投放给客户端设备(104,106,...,108)。在一种情形中,操作中心102能在不同信道中将一系列媒体节目提供给用户。在这种模式中,操作中心102能以传统的信道投放的方式根据固定调度表来呈现媒体节目(尽管这些信道可能不具有使用物理调谐器的传统模拟系统的频率专属含义)。在另一种情形中,操作中心102能在固定时间将个体的媒体节目提供给用户。
媒体信息本身能用任何格式来表示,包括但不限于MPEG-2标准、微软公司的VC-1标准、ISO/ITU H.264标准等等。已编码媒体信息可使用任何格式,包括但不限于实时传输协议(RTP)、实时流协议(RTSP)等等来封装在包中。
耦合机构132将操作中心102耦合到客户端设备(104,106,...,108)。该耦合机构132能以不同方式实现来适合不同技术和商业环境。例如,耦合机构132能包括任何种类的网络(或网络的组合),诸如广域网(例如,因特网)、内联网、数字用户线(DSL)网络基础结构、点对点耦合基础结构等等。耦合机构132能使用或涉及任何种类的协议或协议的组合。在使用一个或多个数字网络来散布信息的情形中,耦合机构132能包括各种硬布线和/或无线链路、路由器、网关、名称服务器等等。在使用DSL基础结构来散布信息的情形中,耦合机构130能部分地利用电话耦合基础结构和DSL处理功能集的服务。
耦合机构132允许操作中心102与客户端设备(104,106,...,108)之间的双向通信。例如,该双向通信使客户端设备104能将调度选择发送到操作中心102(经路径134),以及使操作中心102能将录制指令和媒体信息发送到客户端设备104(经用于家庭110的路径112)。将操作中心102连接到客户端设备104的信道112可使用与将客户端设备104连接到操作中心102的信道134相同的通信机制;替换地,这些信道能使用不同通信机制来实现。
现在参考系统100的客户端一方的方面,客户端设备(104,106,...,108)本身能以各种方式实现。任何给定的客户端设备(104,106,...,108)可以表示具有集成IP接口/处理功能集的电视机、具有与之耦合的相关联机顶盒的电视机、数字视频录像机(DVR)设备、可重写数字视频盘(DVD-RW)设备、具有AV解码功能集的个人计算机等等(以及这些设备的任意组合)。或者给定客户端设备(104,106,...,108)能采取个人移动电话、个人数字助理(PDA)、输入板式计算机设备、任何种类的可穿戴计算机(例如腕表型计算机设备)等等的形式。
无论客户端设备(104,106,...,108)以何种方式实现,它们都能包括通信地耦合到媒体呈现模块的媒体处理模块。例如,客户端设备104包括耦合到媒体呈现模块138的媒体处理模块136,客户端设备106包括耦合到媒体呈现模块142的媒体处理模块140,并且客户端设备108包括耦合到媒体呈现模块146的媒体处理模块144。媒体处理模块(136,140,...144)可以包括用于处理媒体信息的功能集,并且媒体呈现模块(138,142,...,146)可以包括用于呈现媒体呈现模块(136,140,...144)的输出的功能集。媒体处理模块(136,140,...144)能与媒体呈现模块(138,142,...,146)集成(例如,在媒体处理模块被集成到各个IP就绪电视机中的情形中),或媒体处理模块(136,140,....144)能与媒体呈现模块(138,142,...,146)分离(但与之耦合)(例如,在媒体处理模块被收容在耦合到电视机的各个机顶盒中的情形中)。
如上所述,代表性的客户端设备104包括媒体处理模块136,媒体处理模块136进而能包括可选的客户端一方调度表处理功能集118。如果存在,则该调度处理功能集118执行与部署在操作中心102处的调度功能集116协调所需的任何任务。最后,媒体处理设备104还包括本地存储120。本地存储120能用来响应来自操作中心102的指令等存储媒体信息流。
如上所述,系统100能将调度功能集完全地分配给OC调度功能集116。或者系统100能将调度功能集完全地分配给客户端一方的调度处理功能集118。或者系统100能以分布式方式,将调度功能集分配给OC调度功能集116和客户端一方的调度处理功能集118两者。如上所述,本公开内容将集中在将创建和维护调度表、以及解决在调度表中出现的冲突的责任分派给OC调度功能集116的实现。客户端一方的调度处理功能集118被分派与OC调度功能集116交互并在OC调度功能集116请求时协调本地存储器120中的媒体节目的存储的任务。
章节A.4(如下)提供有关OC调度功能集116的一个示例性实现的更多信息。
A.3示例性客户端细节(图2)
图2提供有关代表性客户端设备104(如在图1的上下文中所介绍的)的更多的细节。图2中所示的客户端设备104的组成仅代表许多可能实现的一种。
客户端设备104包括耦合到媒体呈现模块138的上文所指认的媒体处理模块136。在一种情形中,媒体处理模块136能包括在单个集成设备(例如单个IP就绪电视机)中与媒体呈现模块138组合的AV处理功能集。在另一情形中,媒体处理模块136能包括通信地耦合到媒体呈现模块138(例如电视屏幕)的单独的机顶盒或DVR单元(或其他种类的单独单元)。
媒体处理模块228能包括多个模块,用于执行其所归属的任务。首先,媒体处理模块136包括网络接口模块202。网络接口模块202能表示使用任何耦合机构从操作中心102接收媒体信息的任何功能集。例如,网络接口模块202能包括以太网NIC、DSL调制解调器、电缆调制解调器、无线网络接口,或其他种类的网络接口设备。
媒体处理模块136还包括存储器204。存储器204的一部分能包括FIFO型缓冲器,用于在信息被解码之前存储媒体信息。
媒体处理模块136还包括音频-视频(AV)解码器206,用于将所接收的媒体信息解码(和解压缩)成其视频和音频分量。解码包括将分组排序(如果是乱序地接收的),从所接收的分组流提取媒体信息,还有提取将支配媒体信息的回放的定时信息。解码器206还能例如通过包括使用单播和/或多播技术或其他某种技术调谐到一个或多个所标识的媒体信息流的逻辑,从而来实现上述虚拟调谐器功能集。
媒体处理模块136还包括一个或多个处理器208,用于执行实现媒体处理模块228的功能集的指令。
媒体处理模块136还包括I/O接口210,用于经一个或多个输入设备(例如远程控制器212、PC 214、游戏杆(未示出)、触摸屏输入机构(未示出)等等),与消费者交互。
媒体处理模块136还包括A/V接口模块216,用于以适当格式(例如以适当色空间)将媒体信息提供给媒体呈现模块220。
媒体处理模块还包括上述所指认的本地存储120,用于存储媒体信息和/或其他信息。通常,能使用由客户端设备104部署的存储设备(例如存储器204,本地存储120等等)的任意组合来存储实现客户端一方调度表处理功能集118的指令(如果使用了该可选的客户端一方功能集的话)。
最后,客户处理模块136可包括在该图中未具体枚举的各种其他模块218。例如,客户处理模块136能包括图形合成器,用于在逐帧基础上将来自AV解码器206的媒体信息的视频分量与图形信息组合。图形信息可以包括重叠在媒体信息上的各种用户界面呈现。
媒体呈现模块138可以包括用于呈现AV信息的各种设备,包括CRT型设备、LCD型设备等等。在任一情形中,媒体呈现模块138定义显示面220。媒体处理模块136能在显示面220上呈现一个或多个用户界面呈现222。例如,能提供允许用户创建、查看和修正调度表的用户界面呈现(未示出)。此界面可由(操作中心102的)调度功能集116提供,或由客户端一方的调度处理功能集118本地(或由这些功能集的组合)提供。
A.4.示例性调度功能集细节(图3)
图3示出调度功能集116的示例性细节。图3中所示的部件能一同位于单个头端站点处或分布在多个站点上。通常,图3中所示的逻辑是示例性的;其他功能集能应用不同的逻辑模块来实现在此所述的基本设计原理。
首先,调度功能集116包括可供在与客户端设备(104,106,...,108)和相关联的用户交互中使用的客户端界面模块302。
调度功能集116还包括调度表设置模块304,它提供用于创建、查看和修正调度表306的功能集。调度表设置模块304将这些调度表306存储在调度存储308中。调度表306支配媒体信息(诸如电视媒体节目)的记录以供在各个客户端设备(104,106,...,108)处回放。(替换地,客户端设备能将它们自己的各个调度表存储在它们各自的本地存储中,从而将这些调度表的处理委托给头端调度功能集116)。每一调度表能包括描述相关联媒体呈现媒体节目的一个或多个条目。例如,一条目可以通过标识媒体节目的开始时间、结束时间、源(例如,将在其上呈现它的频道)、和媒体节目的其他突出特性来描述媒体节目。
在创建调度表时,调度表设置模块304能访问指南源信息(来自指南源126)和用户偏好信息310。媒体节目指南信息指定什么媒体节目将在特定时间和特定频道上广播。媒体节目指南信息也可以指定媒体节目的可用格式(诸如SD、HD等等)。用户偏好信息310指示用户的记录喜好,例如有关由用户选择的将用来记录媒体节目的格式。例如,客户端设备104的用户可以指示她偏好以HD格式记录除新闻媒体节目(应当以SD格式录制)外的所有媒体节目。因此,如果该用户将新的媒体节目添加到调度表,调度表设置模块304就能被配置成在调度表中自动创建指定具有所需记录格式(如果那一格式可用)的媒体节目版本的条目。
如上所述,不同的事件会导致记录冲突。当用户将正好与一个或多个预先存在的媒体节目冲突的(因为对于一个或多个时段,记录所有指定媒体节目所需带宽比可用的更多)新的媒体节目添加到调度表时,就会发生一个这种事件。当用户修改预先存在的媒体节目以致其现在与调度表中的一个或多个其他媒体节目产生干扰时就引起另一事件。当媒体节目指南信息的提供商修改已调度的媒体节目的定时或格式以致其现在与调度表中的一个或多个其他媒体节目冲突时就引起另一事件。冲突的另外的原因也是可能的。
在冲突的情形中,调度功能集116采用冲突分析功能集312来标识和解决冲突。代表性的冲突分析功能集312包括多个模块以便执行其职责的不同方面。
首先,冲突标识模块314标识调度表中的冲突。在一种技术中,该模块314通过将调度表划分成不同时段来执行该任务。每一时段由其表示与时间上在前的时段不同的媒体消耗事件组合这一事实来区分。每一时段还表示冲突存在的新的可能性。例如,新媒体节目的开始划分新时段的开始。那一时段的结束可以对应于任何后续带宽事件,诸如任何媒体节目的开始或结束。这些时段中的一些包含冲突以及其他不包含。因此,在形成时段之后,冲突标识模块314能标识出存在实际冲突的那些时段(例如,当所需带宽量超出可用带宽114的量时)。
解决方案枚举模块316枚举由冲突标识模块314标识出的冲突的解决方案。图4a表示解决冲突的横向方法,而图4b表示纵向方法。在这两种情况下,假定用户首先创建标识在这些图中所示的示例时区期间发生的媒体节目A、B和C的调度表。此时,因为通信信道112包括足够的带宽来记录所有这些媒体节目,所以即使在媒体节目A在时间上重叠媒体节目C,且稍后媒体节目B在时间上重叠媒体节目C时的交接上也没有冲突。然而,假定用户随后创建记录媒体节目D的调度表条目。这产生至少一个冲突。假定带宽114不足以接收媒体节目A、C和D(在这些媒体节目重叠的交接处),和/或不足以接收媒体节目B、C和D(在这些媒体节目重叠的交接处)。
图4a中所示的横向方法对所有冲突提供完全解决方案。例如,该问题的可能解决方案可以是:(1)不记录媒体节目C,或(2)不记录媒体节目A和B,或(3)不记录媒体节目D。选择这些解决方案的任何一个解决用于由该调度表包含的整个时区上的所有冲突(在这种情况下,时区是由5pm至10pm定义的)。
图4b中所示的纵向方法枚举用于每一时段的解决方案。例如,假定解决方案枚举模块316确定时段S1和S2包含冲突。这表示对时段S1,可用带宽114不足以记录媒体节目A、C和D,而对于时段S2,可用带宽114不足以记录媒体节目B、C和D。在这种情况下,解决方案枚举模块316标识用于时段S1和时段S2的不同解决方案集。例如,用于时段S1的问题的解决方案可以是:(1)不记录媒体节目A,或(2)不记录媒体节目C,或(3)不记录媒体节目D。在节目消耗相同带宽量的情况下,纵向方法给出通过移除单个节目来解决冲突的解决方案(与通过移除多个节目的组合来解决冲突的解决方案相反)。
在某些环境中,解决方案枚举模块316将确定一个或多个媒体节目在解决冲突中不起关键作用。即,对这些媒体节目,记录或不记录它们没有区别。在一个例子中,一媒体节目被认为不是根本的,因为移除该媒体节目将不会释放足够的带宽来解决该冲突。在更一般化的情况下,当对任何唯一性解决方案未产生必要贡献时,该媒体节目被认为不是根本的。例如,考虑一个唯一性解决方案是取消所有三个SD节目X、Y和Z的情形,在这种情况下,所有这三个节目都是“根本的”,以及不应当从分析移除。另一方面,考虑X和Y均是HD节目且当组合在一起时足以解决冲突的的情形,如果Z是SD节目,则Z对任何唯一性解决方案均不作贡献(假定X+Z或Y+Z均不是解决方案)。如果一个或多个媒体节目被确定不是根本的,那么能从分析中有效地移除这些媒体节目以致不会不必要地使用户的决定复杂化。
最后,返回到图3,冲突分析功能集312包括冲突解决模块318。冲突解决模块318使用由解决方案枚举模块316确定的一个或多个解决方案来解决由冲突标识模块314评估的冲突。例如,假定当用户尝试将新的媒体节目D添加到调度表时冲突产生。此时,冲突解决模块318能提醒用户该冲突以及其可能的解决方案,然后允许用户手动地选择一个或多个解决方案。(如下文所述,如果没有用户来手动地解决该冲突,那么冲突分析功能集312能基于各种规则尝试自动地解决冲突。)
例如,考虑使用横向方法来枚举解决方案的情形。在这种情况下,冲突解决模块318能向用户连续地显示不同解决方案(其中,每一解决方案移除调度表中的所有冲突)。例如,冲突解决模块318能首先询问用户他们是否希望放弃记录媒体节目C。如果用户拒绝该解决方案,则冲突解决模块318能询问用户他们是否希望放弃记录媒体节目A和B两者。如果用户拒绝该解决方案,则冲突解决模块318能询问用户他们是否希望放弃记录媒体节目D等等。
纵向方法能将类似的方法应用于解决冲突,即,让用户接连步进地遍历不同解决方案。但在该情况下,冲突解决模块318依次解决每一冲突时段,要求用户为每一时段选择一解决方案。在一个示例性情形下,对于第一时段的用户选择(例如放弃记录那一时段的特定媒体节目)将从该调度表完全地消除那一媒体节目。这可能具有也可能不具有改变后发时段的冲突情况的效果(即,也是通过移除该稍后时段的冲突)。替换地,冲突解决模块318能被配置成使得用户的将一媒体节目从冲突时段移除的指令将仅移除该媒体节目在那一时段中的那一部分,这潜在地导致在稍后时段中记录那一媒体节目的剩余部分。用户可以期望该选项,因为用户仍然对记录冲突的媒体节目的部分感兴趣,例如,在用户即使不能观看第一部分比赛也希望观看后四分之一的足球比赛的情况下即为如此。
不同用户界面技术能用来便于用户选择解决方案。在一种技术中,冲突解决模块318结合表示重叠媒体节目的图形时间条呈现(例如以图4a和4b所示的呈现的方式)来呈现标识可能的解决方案的文本信息。然后,用户能点击对应于所需的一个或多个解决方案的文本信息。在另一情况下,冲突解决模块318能允许用户与图形时间条呈现本身交互。例如,冲突解决模块318能提供有关表示能在可用带宽114的限制内记录的一组媒体节目的时间条的虚拟表示(诸如彩色点或其他符号)。
例如,首先考虑横向解决方案的情形。冲突解决模块318能以媒体节目A、媒体节目B和媒体节目D的时间条上有红点的方式来初始地呈现图4a中所示的时间条——这是一种解决方案。这表示如果用户接受该解决方案,那么将记录媒体节目A、B和D,但不记录媒体节目C。如果用户希望记录C,则冲突解决模块318能允许用户点击媒体节目C的时间条。这将使红点显示在媒体节目C上,并且红点可能从媒体节目A和B被移除。如果该解决方案不令人满意,那么,用户随后可以点击用于媒体节目A和B的时间条,这使红点再次显示在那些时间条上,但可能会使红点从媒体节目D的时间条被移除。用这种方式,用户能循环遍历可能的解决方案。时间条的图形表示和相关记录表示允许用户易于理解可能的记录排列。能采用相同的图形范例来查看和选择纵向技术的解决方案。但在该情况下,冲突解决模块318能依次图形地顺序遍历每一时段的不同解决方案。
能将逻辑添加到上述解决方案循环机制来确保冲突解决模块318在重复一解决方案前已访问了每一可能的解决方案。这是防止冲突解决模块318在两个解决方案间“往复”非常有用的特征。例如,如果用户点击用于媒体节目C的时间条来将彩色点添加到时间条C上,则从时间条D消除彩色点而留下用于时间条A和B的彩色点可能是合适的。但如果用户此后点击时间条D,那么从时间条C再次移除彩色点将是无益的(因为用户仅表示该解决方案不令人满意)。确切地,从时间条A和B移除彩色点而留下时间条C和D上的彩色点将是更有建设性的。这将确保冲突解决模块318完全地顺序遍历可用选项。通过维护可用解决方案的列表,以及确保在访问到列表上的所有选项之前不重复解决方案就能实现该特征。
能使用其他特征来提高上述UI体验。例如,冲突解决模块318能例如通过根据各解决方案潜在的合意程度来排序这些解决方案能使用不同的规则来评估合意程度。例如,一个规则可以是顺序遍历所有解决方案,涉及在移动到包含移除多个媒体节目的解决方案前仅移除一个媒体节目的所有解决方案。例如,在纵向方法中,考虑已经调度过节目A、B和C的情形。节目A和B消耗1单位的带宽,而节目C消耗2单位的带宽。假定接着试图记录消耗2单位的带宽的节目D。一种解决方案是移除节目A和B,另一解决方案是移除节目C。上述解决方案排序规则可以提示用户在考虑移除节目A和B前,先考虑移除节目C(在移除一个节目比移除两个节目的破坏性更小的假设下)。另一规则可能依赖于用户明确地定义的选择准则,例如,用户可以指示她认为体育媒体节目比新闻媒体节目的价值更高,因此,如果在这两种媒体节目间存在选择,则冲突解决模块318将首先显示移除新闻媒体节目的解决方案。这些仅是示例性规则,其他应用能采用不同的规则。
根据另一特征,调度表中的一个或多个媒体节目可以具有记录质量不同的广播。例如,假定用户初始地表示她希望以HD模式记录体育媒体节目。然而,假定用户稍后将与该体育媒体节目冲突的另一媒体节目添加到调度表中。冲突解决模块318能被配置成提醒用户该体育媒体节目的不同格式——诸如SD——的可用性,其前提是该格式的选择将补救该冲突。能将替换记录格式的可用性以不同的方式传送给用户。例如,如图4a所示,冲突解决模块318能将表示较低质量的记录可用于此媒体节目以补救该冲突的视觉表示(例如消息泡)添加到时间条(与特定媒体节目相关联)。用户能点击该表示来调用该较低质量的记录。
根据另一特征,如果一个或多个媒体节目在解决方案中不起作用(因为移除这些媒体节目不可能解决该冲突),那么冲突解决模块318能消除这些媒体节目以致它们不会出现在UI呈现上。这是有利的,因为移除这些媒体节目产生较少混乱的UI呈现,以及潜在地使UI呈现更容易理解,从而便于用户做决定。
根据另一特征,供应商能添加支配如何将可用带宽114分配给虚拟调谐器的“人为”约束。即,如上所述,假定所消耗的带宽总和不超出可用带宽114,正常情况下虚拟调谐器功能集应当能将可用带宽划分给任意多个流。但供应商可能希望指定仅能部署最大数目的虚拟调谐器,诸如2个HD虚拟调谐器和2个SD虚拟调谐器等等。如果可适用,则冲突分析功能集312能将这些“人为”约束纳入到其冲突解决技术的考虑中。
调度功能集的其他特征和变形是可能的。未决和共同受让的题为“VideoRecording Conflict Management and User Interface(视频记录冲突管理及用户界面)”,发明人Aaron J.DeYonker,Peter J.Potrebic,Thomas H.Taylor和Jeffery C.Fong的美国专利申请No._____(代理案卷号No.13768.520/308482.01)描述了能应用于在虚拟调谐环境中调度节目的情形的另一用户界面功能集和其他特征。该申请在此全部引入以供参考。
作为最后一个主题,不直接响应用户动作的动作可能会触发其他冲突。例如,媒体节目指南信息可能定期地更新。如果新的媒体节目指南信息指示已调度的条目的时隙已经改变,或其记录质量已经改变等等,那么冲突分析功能集312能开始起作用来尝试解决这些改变会引起的任何冲突。在一种情况下,如果可能,冲突分析功能集312可标记该冲突以便于由用户在接下来与她的客户端设备104交互时来解决。如果这不可能,那么冲突分析功能集312能尝试自动地解决该冲突。这能通过基于上述示例性规则自动地选择确定为最佳的解决方案来执行(其中,解决方案基于它们评估的合意性来排序)。例如,一种规则可以是将一个或多个节目的记录质量从HD自动地降低到SD,以便解决该冲突(即使用户的正常偏好可能是以HD记录节目)。
B.示例性操作方法(图5-10)
剩余附图结合阐明流程图的操作的具体例子,以流程图形式来描述调度功能集116的操作。为便于论述,将某些操作描述为以某一次序执行的构成性的不同步骤。这些实现是示例性的,而不是限制。在此所述的某些步骤可被编组在一起并在单个操作中执行,并且某些步骤能按以与在本公开内容中阐述的例子中所采用的次序不同的次序来执行。优于在前章节中已经解释过在这些流程图中所述的许多功能,因此,本章节将主要用作那些功能的回顾。
B.1.调度功能集的操作方法(图5和6)
图5中所示的过程500提供图1和3的调度功能集116的示例性操作方法的概述。
在步骤502,调度功能集116标识可能出现调度冲突的一个或多个带宽事件。如前所述,第一种事件表示将新媒体节目添加到调度表,或修改现有的媒体事件(例如,通过变更其记录质量)。第二种事件表示媒体节目指南信息中产生冲突的变化(或不直接由用户的动作引起的其他事件)。
在步骤504,调度功能集116标识添加到调度表的新媒体节目的不同带宽版本(如果在步骤502评估的带宽事件实际上对应于新媒体节目被添加到调度表)。步骤504能可选地包含确定调度表中的预先存在的媒体节目的不同带宽版本,在改变调度表中的一个或多个预先存在的媒体节目的记录质量以便容纳引入新媒体节目是合适的情况下,这是有用的信息。示例性记录质量包括SD、HD、PIP等等。
在步骤506,调度功能集116标识有关记录质量的用户偏好。例如,用户可以表示她偏好以SD格式、HD格式等等记录某一种类的所有媒体节目。
在步骤508,调度功能集116处理在前各步骤的结果以便更新该调度表,例如通过将具有所需记录质量的新媒体节目添加到调度表。步骤508还评估在步骤502中所标识的带宽事件是否产生需要解决的冲突。如果没有,那么,调度功能集116将更新后的调度表存储在存储308中。然而,如果发生冲突,那么处理前进到图6的过程600。过程600使用上述纵向技术来提供用于解决冲突的一个示例性方法。作为概述,该技术涉及将调度表划分成其分量时段,然后在逐段的基础上解决冲突(或多个冲突)。
更具体地说,在步骤602,调度功能集116从将包含冲突的调度表分成其分量时段开始。每时段表示与其前一时段不同的带宽事件的组合。例如,新媒体节目的开始将标记新时段的开始。任何媒体节目的结束或任一媒体节目的开始将标记那一时段的结束。一些由此创建的时段将包含冲突,而其他可能不包含。
在步骤604,调度功能集116移除不包含任何冲突的时段,仅留下包含冲突的时段。在这些冲突时段中,存在带宽的过分配,意指带宽不足以记录用户希望记录的所有媒体节目。
在步骤606,调度功能集116能为发生冲突的每一时段枚举冲突的所有解决方案。即,对每一时段,调度功能集116标识一组解决方案,其中任何一个解决方案都将解决该段的冲突。
在步骤608,调度功能集116降低时段的复杂性(如果可能的话)来反映步骤606的结果。例如,假定在步骤606确定一个或多个媒体节目不可能对解决方案有贡献。在一个例子中,这是因为移除这些媒体节目未能释放足够的带宽来解决该冲突。在这种情况下,步骤608能从该调度表移除不重要的媒体节目以及重新确定时段。这对接合一个或多个在前定义的时段可能有影响。
在步骤610,调度功能集116使用上述UI技术来解决冲突。例如,调度功能集116能允许用户图形地循环遍历可能的解决方案,以及依次为每一时段选择合需的冲突解决方案。
B.2.示例性例子(图7-10)
剩余附图表示在图5和6中阐述的过程的例子。
首先考虑图7的介绍性情形。在这种情况下,假定分配的总带宽114为3单位。假定SD流消耗1单位的带宽,以及HD流消耗2单位的带宽。(这些无单位带宽值在本章节中用作仅教示目的,即,这些值本身并不重要)。进一步假定用户希望记录SD媒体节目A、HD媒体节目B,最后,新HD媒体节目C。这里存在冲突,因为在媒体节目A、B和C重叠的那些部分中,总共需要1+2+2=5单位的带宽,而仅存在3个可用单位。
在这种情况下,尽管媒体节目A与媒体节目C重叠,媒体节目A不是冲突的任何解决方案的一部分。这是因为取消A不会释放足够的带宽来解决该冲突。更具体地说,移除节目A不会形成任何唯一性解决方案的必要分量(例如,可以通过取消节目A和B来解决冲突,但移除节目B自身就已足够,从而使移除节目A多余)。因此,冲突枚举得到两种可能的解决方案:(1)不记录B(允许记录C);或(2)不记录新的媒体节目C(由此维持现状)。
在第二情景中,同样参考图7,假定媒体节目A是SD媒体节目,媒体节目B是HD媒体节目,然而,现在,媒体节目C是SD媒体节目。
在这种情况下,由于新请求是SD媒体节目,因此取消媒体节目A或媒体节目B将释放足够的带宽,以允许记录媒体节目C。因此,冲突解决枚举得到三种可能的解决方案:(1)不记录媒体节目A,或(2)不记录媒体节目B,或(3)不记录新媒体节目C(由此维持现状)。
图8(包括图8a、图8b和图8c)的情景示例说明更复杂的情形,逐步表示根据图6的过程600执行的分析。在该例子中,再次假定系统提供3单位的带宽114,以及SD媒体节目消耗1单位带宽以及HD媒体节目消耗2单位带宽。在该例子中,媒体节目A和B是HD流,媒体节目C是SD流,以及新媒体节目D是HD流。
步骤602涉及确定所有时段,这产生图8a中所示的结果。每一段表示新冲突的可能性,但每一时段可能并不实际包含冲突。
步骤604涉及移除不表示带宽过分配由此不呈现冲突的段。这产生图8b中所示的结果。如在此所示,在图8a中所示的五个段中,仅两个(段S1和S2)包括实际评估出的冲突。调度功能集116能依赖于以上所指认的约束方程式(在章节A.1中定义)来确定在每一时段中是否存在过分配。
步骤606涉及为每一时段枚举可能的解决方案,由此为每一时段产生一组一个或多个解决方案。例如,对时段S1,存在两个解决方案:(1)不记录媒体节目A,或(2)不记录媒体节目D。对时段S2,也仅存在两个解决方案:(1)不记录媒体节目B,或不记录媒体节目D。在该特定情景中,是否记录媒体节目C不是问题,因为移除该媒体节目不会解决该冲突。为此,如在图8c中所示,媒体节目C实际上能从呈现给用户的UI中被移除。
最后,步骤610涉及以上述方式解决冲突。这可涉及以上述方式依次图形地顺序遍历每一时间片的解决方案。
图9(包括图9a、图b、9c和9d)表示另一例子。在该情况下,再次假定系统提供总共3单位的带宽114,以及SD流消耗1单位的带宽以及HD流消耗2单位带宽。其中,媒体节目A和B均是SD流,C是HD流,并且新媒体节目D是HD流。
再次应用图6中所示的过程600。在步骤602,调度功能集116确定可能出现新冲突的所有时段。这产生图9a中所示的五个时段。
步骤604涉及移除不表示过分配(由此不表示冲突)的时段。这产生图9b中所示的结果,其中,三个时段(S1、S2和S3)仍然在调度表中。
步骤606涉及为存在冲突的每一时段枚举解决方案。在这种情况下,媒体节目A和B不对任何解决方案有贡献,因为移除这些媒体节目将不会移除所评估出的冲突中的任何一个。因此,能从UI移除媒体节目A和B,以产生图9c中所示的时间条表示。针对这三个时段中的每一个的可能解决方案是:(1)不记录媒体节目C,或(2)不记录媒体节目D。
步骤608涉及响应步骤606的结果对UI进行重新分段。即,在步骤606,分析丢弃了媒体节目A和B。这允许调度功能集116将这三个时段接合成单个时段,如图9d所示。
步骤610涉及以上述方式使用UI来解决冲突。在这种情况下,可向用户呈现图9d中所示的简化的UI表示,便于用户做决定。
图10(包括图10a和10b)示出最后一个例子。在该情况下,假定系统提供总共4单位的带宽114,并且SD流消耗1单位的带宽而HD消耗2单位带宽。媒体节目A和B是HD流,而媒体节目C和D是SD流。新媒体节目X是HD流。
再次应用图6中所示的过程600。在步骤602,调度功能集116确定可能发生冲突的所有时段。这产生图10a中所示的五个时段。
在步骤604中,调度功能集116移除未呈现任何冲突的时段。这产生图10b中所示的结果。剩余时段S1和S2包含过分配带宽。
在步骤606中,调度功能集116为时段S1和S2中的每一个枚举可能的解决方案。在时段S1中,解决方案包括:(1)不记录媒体节目A;或(2)不记录媒体节目C和D,或(3)不记录媒体节目X。类似的解决方案适用于时段S2(但具有提议省略媒体节目B而不是A的解决方案)。
在步骤610,调度功能集116使用上述基于UI的方法请求用户解决评估出的冲突。
最后,这里通过首先标识多个特征能解决的示例性问题来描述了这些特征。这一说明方式不构成对于其他人已经以在此指定的方式意识到和/或阐述过这些问题的承认。对于相关技术中存在的问题的认识和阐述应被理解为本发明的一部分。
尽管以专用于结构特征和/或方法动作的语言描述了本发明,但应理解到在所附权利要求书中定义的本发明不必限定于所描述的具体的特征或动作。确切而言,这些具体的特征和动作是作为实现所要求保护的发明的示例性形式来公开的。