专利名称:发送带内控制信息的策略的制作方法
技术领域:
该主题涉及用于发送控制信息的策略,更具体地涉及在媒体存在的环境中将控制信息从主机发送到客户端的策略。
背景技术:
计算机正在成为一种用于再现诸如音频信息和视频信息的媒体内容信息的常用机制。例如,用户可以使用该用户家中的经由网络与远端源连接的个人计算机从该远端源接收内容信息。用户可以接收作为完整文件或逐点流方式的内容信息。另选地,如果计算机包括调谐机制,则用户可以通过调谐这些源从通常的广播源(诸如电缆或卫星源)接收内容信息。用户可以将这些内容信息转发到一个或多个合适的家庭播放设备,诸如电视机或立体声系统。微软公司的媒体中心技术提供了一套示范性的用于以上述方式来接收并呈现媒体内容信息的设备。使用其他的设备,用户可以将家庭中的多个播放设备连接到现有的网络中。而后,用户可以将媒体信息从家庭中的一个设备传送到另一个设备。通用即插即用(UPnP)技术提供了一套方便地建立这种家庭网络的设备。
尽管技术的发展使媒体信息的传统呈现受到了很大地关注,但是这些技术还存在多个新的难题。例如,除了在计算机之间发送媒体内容信息之外,还有必要发送控制信息。例如,主机设备可以转发用于指导接收设备如何处理媒体内容信息的控制信息。这在网络环境中就可能变成为一个问题。例如,网络和处理的异常可能带来下面的一些情况,即接收设备接收不带有与其相关的控制信息的媒体内容信息,反之亦然。
因此,需要一种更有效的技术在任意环境(诸如上面提到的媒体存在环境)中发送控制信息。
发明内容
根据一种示范性实施方案,描述了用于将内容信息从主机模块传送到客户端模块的方法。该方法包括(a)在主机模块处,形成包含在要被发送到客户端模块的数据流中的内容信息单元(b)在主机模块处,形成至少一个包括在数据流中的控制信息单元;(c)在主机模块处,在内容信息单元中插入所述至少一个控制信息单元,其中与内容信息单元相对的所述至少一个控制信息单元的位置传送指令,该指令与一旦接收到控制信息就进行操作的客户端模块的方式有关;以及(d)通过主机模块将包括内容信息单元和所述至少一个控制信息单元的数据流发送到客户端模块,其中主机模块动态地改变控制信息,该控制信息基于控制数据流播放的用户所采取的动作而被插入到数据流中。
下面描述了其他的示范性实施方案。
图1表示用于实施上面概括的特征的示范性系统。
图2表示图1系统的选择部件的更加详细的模块图。
图3表示可以使用图1的系统发送的示范性分组序列,其中所述分组包括在内容信息中散布的控制信息。
图4到6表示三个不同的使用情况,其中控制信息传送与内容信息相关的不同指令。
图7是以流程图形式表示的用于创建数据流的示范性处理过程,所述数据流包括内容信息和控制信息。
图8是以流程图形式表示的用于解释在图7产生的数据流中接收的控制信息的示范性处理过程。
图9表示用于实施图1所示系统的各个方面的示范性计算环境。
在整个公开内容及附图中使用相同的数字来表示相同的部件和特征。序号100是指最初在图1中发现的特征,序号200是指最初在图2中发现的特征,序号300是指最初在图3中发现的特征等等。
具体实施例方式
下面将描述将控制信息从主机模块发送到客户端模块的示范性机制和程序。这种机制和程序发送带内控制信息,即在与媒体内容信息相同的通信频带中。更加具体地,这种机制和程序将控制信息定位到内容信息数据流中,以建立控制信息和内容信息之间的关系。
控制信息可以传送任何与内容信息相关的信息。例如,如果在数据流的结尾处插入控制信息,则该控制信息可以传送表明数据流末端的末端数据流信息。如果在数据流的开始处插入控制信息,则该控制信息就可以及时传送在控制信息之后的与数据流有关的信息。例如,在这种情况下,控制信息可以表明应当在客户端模块处使用预订的解密钥、或者使用预订的发送方资源来处理随后的数据流。如果控制信息位于两个内容信息数据流信息之间,则该控制信息可以传送表明数据流之间相互关系的信息。例如,在这种情况下,控制信息可以表明在两个数据流之间存在的断开连接。如下所述,还存在这种控制信息传送范例的其他应用。
就术语来说,术语“媒体内容信息”(或简称为“内容信息”)可能涉及任何种类的可以由用户以任意格式消费的资源,诸如音频资源(例如音乐等)、静止图像资源(例如数码照片等)、运动图像资源(例如电视节目、电影等)、计算机程序(例如游戏等)、标记语言资源(例如经由广域分组网络接收的超文本标记语言资源)等等。可以以模拟形式或数字形式或模拟和数字形式的组合来表示信息。该信息还可以包括(或者可以省略)交换式内容(如计算机游戏的情形)。
术语控制信息是指在内容信息上承载的任何种类的信息。例如,控制信息可以描述内容信息的某些属性,或者可以描述在控制信息上执行的某种处理行为。术语“控制事件”是指涉及控制事件创建的任何种类的事件。用户可以通过调用表达输入动作(例如,使用远程控制或其他输入机制)来触发这样一种事件。或者该系统可在满足某些条件的情况下自动地产生控制事件。术语“控制处理任务”是指在一控制事件出现时执行的操作。
这些公开内容包括下面几个部分。部分A描述了用于实施上述概括的特征的示范性系统。部分B描述了表示部分A的系统的操作的示范性流程图。以及部分C描述了用于实施部分A的系统的示范性计算机环境。
A.示范性系统A.1系统概要通常,可以使用软件、固件(例如固定逻辑电路)、人工操作或这些实施方式的组合来实现这里所描述的任何功能。这里使用的术语“模块”、“功能”和“逻辑”通常表示软件、固件或软件和固件的组合。在软件实施方式的情况下,术语“模块”、“功能”或“逻辑”表示在处理设备(例如CPU或CPUs)上执行特定任务的程序代码。该程序代码可以存储在一个或者多个固定和/或可移动计算机可读存储设备上。下面描述的技术特征是独立于平台的,意思是可以在任何商业计算平台或网络策略上来实现。
图1表示用于实现上面所述操作的示范性系统100。系统100包括经由通信机制106与客户端模块104相连的主机模块102。在其他的任务中,主机模块102用于将媒体内容信息和控制信息提供给客户端模块104,用于在其上显示。主机模块102可以从任何源108获得媒体内容信息。客户端模块104可以根据控制信息在任何显示设备110上呈现内容信息。用户112可以与客户端模块104和/或主机模块102通过诸如输入模块114(诸如远程控制设备或与客户端模块104相关联的键盘或显示设备106)这样的任何种类的输入机制进行交互作用。图1另外还表示一个或多个其他的客户端模块116,其可以从主机模块102接收内容信息,并且在一个或多个其他的显示设备118上显示这种信息。
图1所示的结构可以应用于多种不同的环境。一种情况是,主机模块102表示用户112家庭中的(或在某些其他室内环境中的)通用计算机设备。主机模块102可以从诸如本地源(例如,通过计算机设备、本地视频点播机、本地视频摄像机、本地麦克风等的硬件驱动来实施)的任何源108、或者从远端源接收内容信息。一个远端源可以表示传统的电视和无线电广播源,诸如传统的有线源(例如电缆)或传统的无线源(诸如陆地天线或卫星)。其他的远端源可以表示经由诸如TCP/IP(例如因特网)的网络与主机模块104相连的服务器或类似设备。其他种类的源还可以将内容信息提供给主机模块102。
任何种类的商业设备都可以控制内容信息到主机模块102的传播。源108可以以固定的时间表或以按需的方式来分配资源信息。源108可以对接收内容信息收费,还可以免费来传播这些信息。
同样,内容信息本身可能具有多种形式。内容信息可以表示实况转播的内容信息或预先录制的内容信息。内容信息可能具有音频成分和/或视觉(视频)成分和/或交互成分。内容信息可以表示静态信息(在一幅或多幅照片的情况下),或“运动”信息(诸如在视频的情况下)。可以以任何格式来表示内容信息,诸如用于视频信息的MPEG-1、MPEG-2或WMV(在其他格式中),以及用于音乐信息的MP3、WMA或WAV(在其他格式中)。可以以数字格式、模拟格式或数字和模拟格式的组合来表示内容信息。还可以接收其他种类的源格式。
在一种示范性实施方式中,客户端模块104可以表示位于用户112家中的其他种类的计算机设备。例如,客户端模块104可以表示其他通用计算机设备。客户端模块104还可以表示专用计算机设备,诸如游戏控制台或以从主机模块102接收内容信息为目的而设计的可扩展的控制台(从而“扩展”主机模块102可以将内容信息传递到家庭中的输出设备的数量)。客户端模块104可以表示本身集成在显示设备110中的逻辑功能。
在示范性家庭应用系统中,用户112可以在不同的房间中放置若干个客户端模块104,这些客户端模块依次与不同的置于这些房间中的媒体显示设备相连。这些客户端模块中的每一个都可以被配置为从主机模块102接收内容信息。如果这些客户端模块104实现为针对主机模块102的扩展,则可以将它们配置为运行由主机模块102提供的功能的若干个实例。还可以将系统100配置为允许在系统100的独立的部件中共同使用。例如,第一用户可以使用主机模块102来执行第一任务,而第二用户使用客户端模块104来执行第二任务,而不会受到第一用户的干扰。
呈现设备110可以表示任何类型的设备,因而用户可以消耗内容信息。呈现设备110的可能类型包括电视、收音机、立体声系统、计算机监视器等等。
通信机制106可以表示用于从主机模块102向客户端模块104发送信息的任何管道。在本地环境中,通信机制106可以实现为局域网(LAN),诸如以太网。诸如TCP/IP协议这样的任何协议或协议的组合可用于将信息从主机模块102转发到客户端模块104。可以使用任何物理部件的组合,诸如各种有线通信路径(铜线、电力线、光纤等)和各种无线通信路径,从物理上来实现通信机制106。尽管没有示出,但通信机制106还可以包括各种路由器、名字服务器、网关等。
上面描述的环境是示范性的而且没有限制。在其他的应用中,主机模块102可以表示计算机或远离客户端模块104的对等计算机的服务器类型。例如,主机模块102本身可以是在家庭之外的基于因特网或某些其他网络为客户端模块104提供内容信息的服务器计算机。其他的应用也是可能的;无论放置在何处,无论如何实现,主机模块102将被理解为任何内容信息来源,而客户端模块104将被理解为任何内容信息的接收方。下面要讨论的图9提供了使用适当配置的通用计算机设备(例如,个人计算机等)或专用计算机设备(例如,游戏控制台、扩展设备等)的主机模块102或客户端模块104的一种实施方案的细节。
如上所述,应当将注意力集中到主机模块102和客户端模块104的单个示范性部件。
从主机模块102开始,接收模块120从信息源108接收信息。接收模块120可以是用于调谐与信息源108相关的物理频率的调谐器,或者可以是可以同时调谐多个源的多个调谐器。作为替换(或者另外),接收模块120可以是从数字网络源接收内容信息的网络接口模块(任何一种调制解调器)。
传送处理模块122针对内容信息执行多种对其进行格式化的处理任务,以便基于通信机制106将其传送到客户端模块104,而后传送这种信息。图2描述了传送处理模块122的一种示范性组成。在上面的讨论中,传送处理模块122可以过滤和/或分析内容信息,以便为传输作准备,调整信息的比特率,将这些信息组装成分组序列,将多个分组序列复用为传输流,以便输出到通信机制106等。
图1表示作为数据流124的信息内容的传输。数据流是指以逐段方式对内容信息进行传输,以便客户端模块104可以接收并发送部分内容信息,而不接收这种信息的整个实体(与包含整个内容信息的文件的传输相对)。数据流124可以包括多个主要传送内容信息(即A/V资源,实际的音频和视频数据)的单元126(例如分组)。数据流124还可以包括一个或多个分散在内容信息126的数据流中的控制单元128(例如分组)。在数据流124中的控制分组126的位置传送有关如何将其中包括的控制信息应用于内容信息的信息(“位置”可以由分配给数据流124中的分组的顺序号来反映,而不是实际传送的数据流中的分组的物理顺序;这是因为,在分组网络中,期望某些分组“不按顺序”接收,要求客户端模块104以正确的顺序重新进行组装)。例如,示范性控制分组128可以传送在其之前的内容信息已经结束的事实。或者示范性控制分组128可以传送指定处理行为应当应用于在其之后的内容信息126的事实。或者示范性控制分组128可以传送在其之前的内容信息和在其之后的内容信息126之间存在断开连接的事实。还可以想象控制分组128其他的应用和解释。部分A.2(下面的)进一步提供了有关控制信息的产生和处理的细节。
播放器控制模块130控制主机模块102中的部件。例如,控制模块130可以与客户端模块104建立通信会话,而后通过多个可能的播放器控制客户端模块104的状态。该模块130还可以在满足一定标准的结合控制处理任务中起作用(下面将详细地描述)。
播放控制模块130还可以将控制指令经由独立的通信路径132转发到客户端模块104。因此,在路径132上发送的控制信息补充在数据流124(或者,另一种解释是带内发送的控制信息补充在通信路径132上转发的控制信息)的带内发送的控制信息。根据一种示范性的设计范例,在传送有关内容信息的这些信息的定时(位置对准)是重要的情况下,可以在带内发送控制消息。将参照图4-6(下面将讨论)来描述适合于带内传输控制信息的示范性情形。通信路径132可用于传递不必与带内控制信息一样精确地以时间/位置的方式传送的控制事件信息。通常,不同的应用程序可以使用不同的通信信道,以便根据这些应用程序的唯一需求来传递不同的控制事件。通信路径132可以使用不同的通信机制和/或协议,而不是由通信机制106使用,或者其可以使用相同的机制和协议。
还可以包括其他的控制路径。例如,主机模块102可以使用其他的控制路径(未示出)来控制与客户端模块104的信息相关的图形和元数据的显示。例如,该控制信道可用于协调各菜单、程序栏、信道信息等在呈现装置110上的显示。一种可用于实现该任务的示范性且不受限制的协议是远端桌面协议(RDP)。该协议允许系统100实质上经由客户端模块104将与主机模块102相关的图形功能“投射”到呈现设备110上。然而,这种策略是示范性的并且不受限制;其他的技术也可以用于将图形信息转发到呈现设备110。通常,与信息相关的元数据和图形数据可能源于主机模块102,和/或客户端模块104,和/或呈现装置110,和/或某些其他的模块;此外,任何模块或模块的组合都可以用于协调与信息相关的元数据和图形数据的显示。
最后,主机模块102可以包括多个其他模块132,以便执行其他未指定的任务(与讨论的中心不相关)。
现在将描述客户端模块104的组成部件,该客户端模块包括用于接收数据流124并且在该数据流上执行处理的接收处理模块134。图2提供了有关该部件134的其他细节。如上述所讨论的,该部件134可以多路分解数据流124中的信息,并且提取包含在其中的信息。分组可以包括识别它们成分的ID信息,例如无论它们是包含音频信息、视频信息还是控制信息。如果分组包括控制信息,则接收处理模块134基于控制信息执行一个或更多个控制操作。此外,接收处理模块134将内容信息向下转发到合适的再现者以便呈现该信息。此外,接收处理模块134以及客户端控制模块136(下面将描述)可以控制再现者执行各种操作。接收处理模块134可以使用带内控制信息(例如128)来控制再现者。
客户端控制处理模块136还控制客户端模块104中的部件。客户端控制处理模块136还与播放器控制模块130相互作用,以便基于路径132发送和接收控制信息。例如,客户端控制模块136可以提供用于向播放器控制模块102发送各种异步事件(诸如数据流事件的结束(表示客户端模块104已经到达数据流124的末端)、暂停事件(表示用户112已暂停内容信息的呈现)、停止事件(表示用户112已经停止了内容信息的呈现)以及各种错误事件等)的接口。
呈现处理模块138可以包括用于再现内容信息的各种功能。例如,其可以包括音频驱动器、视频驱动器等。呈现处理模块138可以作为呈现设备110的独立模块,或者可以与呈现设备110本身相结合。
最后,客户端模块104可以包括多个用于执行其他未指定任务(与该讨论的中心不相关)的其他模块140。
图2表示有关传送处理模块122、接收处理模块134和呈现处理模块138的进一步的细节。
首先,传送处理模块122可以包括信息处理模块202。信息处理模块202依次可以包括一套可以灵活地配置为针对从信息源108接收的内容信息来执行不同处理操作的处理工具。即,可以基于所接收的内容信息的类型、或者基于所希望的输出格式的种类等来选择这种工具的不同集合和组合。这些工具的实例可以包括●缓冲器管理器,其提供个人视频记录器(PVR)类型的功能,诸如记录内容信息、暂停内容信息、跳到内容信息中的不同位置的性能等等。
●用于将内容信息编码为所需格式的各种编码器,或者用于解码以给定格式表示的内容信息的解码器。
●各种内容过滤器和分析器,用于修改内容信息以改善在客户端模块104处的内容信息的呈现质量。不同的位置可以根据特定应用的特性和要求来采用这些过滤器和分析器(或者可以完全忽略这些滤波器和分析器)的不同组合。
●控制数据流124的比特率的多种速率滤波器。例如,在由于拥塞和干扰而使得可用网络带宽降低时,这种滤波器可以降低比特率。该滤波器可以通过重新编码数据流或衰落帧等来降低比特率。
●各种数字权利管理(DRM)滤波器,用于对基于控制机制106发送的内容进行加密,并且用于执行其他权利管理功能。
分组格式模块204从信息处理模块202接收一个输出,并且将该输出设置为适合于基于通信机制106进行传输的格式。分组格式模块204可以使用任何协议来处理内容信息。为了提供一种不受限制的示例,图3示出了多个分组的创建。数据流302可以以关键字帧和元数据帧的顺序开始形成。关键字帧表示独立显示的视频帧,该视频帧可用于重新构建视频而不需要参考其他帧。元数据帧可用于可预测地重新构建基于其他序列中的信息的视频帧。串行化的数据流由上述数据形成,包括视频、音频和其他信息。而后,通过将串行化数据流分割为分组来形成分组化数据流。各个分组可以包括首部和有效载荷。最后,分组可以进一步被多路复用为组,并且基于通信机制106作为传输数据流来发送。多个标准可用于实现上述概念,包括但不限于MPEG-2、实时传输协议(RTP)、各种专用标准等;然而,这里描述的原理并不与任何特定标准相结合。
参考图2,分组信息模块204通过对分组进行多路复用而将其组装为多个组来执行上面描述的任务。控制信息生成模块206将控制分组128和内容分组126插入到数据流124中。分组形成模块204利用队列208来生成和发送数据流124。即,队列208以所接收的顺序来存储分组,以及工作线(未示出)从队列208提取分组并且将它们与其他的分组相结合。
再次参考图3,该图表示一系列示范性的分组(304、306、308…310)。各个分组(304、306、308…310)包括各自的首部(312、314、316…318)和伴随的有效载荷(320、322、324…326)。这些有效载荷可以包括音频信息或视频信息。此外,根据当前的系统100,这些有效载荷还可以包括控制信息。例如,有效载荷320、322和324包括音频或视频信息(328、330、332),而有效载荷326包括控制信息334。首部(312、314、316…318)包括各种识别数据(336、338、340…342),包括它们各自的有效载荷(320、322、324…326)所含的数据类型的指示。更具体地,首部312、314和316包括识别数据(336、338、340),这些识别数据表示它们的有效载荷包括音频信息或视频信息(328、330、332),而首部318包括识别数据342,其表示其有效载荷326包括控制信息334。
反过来参考图2,接收处理模块134包括被配置为接收数据流124的接收机210。信息提取模块212接收接收机210的输出,并且从所接收的数据流124中提取各个信息字段。例如,信息提取模块212可以多路复用数据流124,并且基于一个分组接一个分组地确定其是否包括音频信息、视频信息或者控制信息。这可以通过调查已接收分组(304、306、308…310)的首部(312、314、316…318)中的识别数据(336、338、340…342)来实现。接收处理模块134基于它们的估计内容对有效载荷(320、322、324…326)的内容执行适当的处理。通过控制分组传送的控制信息可以包括控制由客户端模块104执行的处理行为的指令。
接收处理模块134将其接收的内容信息转发到显示处理模块138。该显示处理模块138使用各种解码器和驱动器(214、216)以及其他处理机制来再现内容信息。
最后,图2表示客户端模块104包括抖动缓冲器218(下面简称为缓冲器)。缓冲器218存储一定数量的内容信息,这些内容信息是缓冲器基于先进先出(FIFO)从数据流124接收的。当再现内容信息时,显示处理模块138从该缓冲器218提取该信息。如果在传输中出现低频干扰(例如轻微中断),则显示处理模块138可以预先从缓冲器218提出所接收的内容信息,而不存在影响内容信息显示的消极地低频干扰。然而,因为额外内容信息的显示是不可能的,所以在达到缓冲器218中存储的内容信息的末端时(不会从数据流124接收更多的内容信息),显示处理模块138将经历性能的降低。通常,图2描述了作为接收处理模块134的部件的缓冲器218;但该缓冲器218可以放置在作用于所接收的内容信息的模块链中的任何位置。同样,客户端模块104可以包括多个缓冲器。
存在多种希望刷新缓冲器218的情形。例如,当用户从一个数据流跳越到另一个数据流时,缓冲器218不再存储有用的内容信息,这些内容信息可能依赖于对网络低频干扰的补偿。因此,客户端模块204在这些环境中对缓冲器218进行刷新,并且利用取自其他数据流的内容信息进行再次填充。一旦信道发生变化(用户从一个程序流跳越到另一个程序流)同时一旦找到程序(用户从程序的一部分跳越到该程序的另一部分(例如迟早会出现)),客户端模块204就可以刷新缓冲器218。
然而,客户端模块104并不是受数据流断开连接影响的系统100中的唯一部件。当用户114改变信道时,例如,客户控制处理模块136可以将该事件通知给主机模块102,并且主机模块102可以通过采取适当的措施来响应。也就是说,例如,在主机模块侧的传送处理模块122还可以包括在队列中存储的信息以及配置设置;该信息可能需要在中断数据流124时进行刷新。因此,主机模块102还可以协调在传输处理模块122中存储的相关信息的刷新,并且处理其他的配置任务。通过将各种数据流边界信息插入到数据流124中,传送处理模块122通过清楚地区分数据流中的这些中断来响应这些连接的断开。而后,接收处理模块134可以忽略在接收数据流124中的这些分组,直到接收处理模块134接收到数据流边界信息为止。
因此,很显然在客户端模块104和主机模块102之间的相互作用可以相当地复杂,要求交换控制信息,一个或更多个缓冲器的刷新和再填充,各种设置的重新配置等等。当用户112调用引起数据流124断开的操作时,这样的错综复杂可能导致明显地延时。为了说明该问题,系统100可能包括减少在下述情况下的延时的结合模块,该情况是用户112在一个短的时间周期内进行多个控制动作。例如,结合模块可以通过减少与用户相关的延时起作用,重复地生成一系列信道变化命令,或者在相对短的时间内寻找命令。
A.2带内控制信息的生成和解释图4-6描述了三种一般的情况,其中在内容信息流中插入控制分组,以将与内容信息有关的这些指令提供给客户端模块104。这些指令可以传送与内容信息相关的信息,或者可以描述要对内容信息执行的处理等等。内容信息数据流中的控制分组的位置非常重要,因为其确定了客户端模块104如何将包括在其中的控制指令应用到内容信息(在一组分组中的控制分组的“位置”例如可以表示为分配给这些分组的序列号,而不是接收这些分组的实际顺序,因为可以不按照物理分组网络中的顺序来接收这些分组)。
参考图4,该图表示将控制信息402放置到内容信息流X404的指针末端的情形400(应当注意,在图4-6中,最新的发送信息出现在该图的最右端)。这种情形400适合于下述情形,即控制信息402提供划分数据流(EOS)末端的信息。带内定位EOS控制信息402连同内容信息是有用的,因为其能够使得接收处理模块134准确地知道什么时候采取必要的步骤将回放模式变换到理想模式,等等。
图5表示另一个情况500,其中控制信息502被定位到数据流Y504的开始处。这种定位情形可用于传送有关随后要由客户端模块104对数据流Y504执行的操作的指令。情形500的一个示例是解密密钥的变化。在密钥改变过程中,主机模块102通知客户端模块104应当使用不同密钥,以便接下来对从主机模块102接收的内容信息进行解密。还可以通过将新的密钥基于独立的控制信道132提前发送到客户端模块104来执行该任务。然后,传送处理模块122可以将密钥改变控制信息502插入到带内控制信息数据流124中。控制信息502的位置和包含在其中的控制数据将如下的信息通知给接收处理模块134,即应当将所接收的新的密钥应用于解释数据流Y,其后是控制信息502。
位于数据流开始处的其他类型的控制信息502可用于将如下信息通知给接收处理模块134,即在处理生成的数据流Y504的过程中使得能够和/或不能够进行由客户端模块104提供的再现资源。例如,如果音频信息未被允许以数字格式(例如,在内容保护的情况下)进行复制,则其可用于不能进行音频的数字输出。
图6表示另一种情形600,其中控制信息602位于数据流X604和数据流Y606之间。这种定位情形可用于传送有关数据流X604和数据流Y606之间关系的信息,诸如数据流X604和数据流Y606之间的断开连接。因为某些数据丢失的原因,可能存在这些数据流之间的断开连接。
或者这种断开连接可归因于表示由用户112经由客户端模块104、或者经由主机模块102(或者经由某些其他模块)发布的命令,其可以被转发到主机模块102(例如经由控制路径132)。例如,当由于切换信道,用户112从一个数据流切换到其他数据流时,这种类型的断开连接可以被触发,或者因为由于发布寻找命令,用户112已经从数据流的一部分切换到另一部分的原因。还可能存在其他断开连接的情形。
在上述任何一种情形中,主机模块102可以通过将控制信息602添加到数据流124来标记断开连接,其中这些控制信息602继续数据流边界控制信息。例如,考虑由下列动作情形表示的示范性情形●用户112发布信道改变命令。
●信道改变指令被转发到主机模块102(或者直接输入到与主机模块102相关联的计算机装置中)。
●主机模块102发布指令以刷新系统100中适当的缓冲器,以便从系统(与旧的信道相关联)中清除旧的内容信息。
●主机模块102的传送处理模块122将数据流边界控制信息602添加到数据流124中,以便标记与旧信道相关联的数据流和与新信道相管理的数据流之间的断开连接。
●客户端模块104接收该数据流边界控制信息602,以便起到适当的作用。例如,主机模块102可以提前警告客户端模块104应当发送数据流边界控制信息602,提示客户端模块设置一个标记。作为该标记的结果,客户端模块602可以被配置为删除所有已接收的分组,直到其接收到所允许的数据流边界控制信息602。
●一旦接收到数据流边界控制信息,客户端模块104就利用新的信道信息来填充其缓冲器,并且当缓冲器达到预定的满状态时,对其进行显示。
通常,将控制信息嵌入到内容信息流中存在至少两方面的优点。首先,客户端模块104可以同步接收与相关内容信息相关联的控制信息,而不需要提供复杂的联系控制信息和内容信息的附加链路信息。其次,如果实际上具体的实施方案选择使用这种独立控制信道132的话,发送带内控制信息来减少独立控制信道132中的负载。
控制信息本身可以以各种格式来表示。借助于示例而不是限制,可以使用任何协议(诸如RTP)中的扩展分组来表示该信息。这些分组可以包括用于识别由分组有效载荷承载的数据流特性的识别信息。该识别信息可以识别包括音频一视频信息、控制信息或某种其他信息的有效载荷。
下面是示例性的控制分组格式//Control codesenum CONTROL_CODES{STREW_BOUNDARY=0,STREAM_EOS,MACROVISION,ROTATE_KEY}
union MicrosoftExtensionPacketHeader{struct{//A control code indicating the type of control packetDWORD controlCode16;//Length of the payload contained in this control packetDWORD payloadLength16;} bitField;}DWORD dwExtPacketHdr;};Stream Boundary字段表示数据流中的断开连接。
End Of Stream(EOS)字段表示要被传送到客户端模块104的数据流的结束。
Macrovision字段表示该字段分组的有效载荷包括适合于某种规定操作模式的版本控制代码。
Rotate Key字段表示所有在该字段分组之后接收的样本都利用新的密钥进行加密。可以在插入该分组之前,基于控制信道来传送该新的密钥。
B、操作的示例性方法图7和8以流程图的形式描述了图1中的系统100的操作。为了方便讨论,将这些操作描述为以某种顺序执行的明确的步骤。这些实施方案是示范性的而且不受限制。这里所述的这些步骤可以被组合到一起,并且以单一的操作来执行,而且还可以以一种区别于在公开内容中阐述的示例中使用的顺序来执行某些步骤。
图7描述了用于创建包含内容信息126和控制信息128的数据流124的过程。
在步骤702,主机模块102形成内容信息126。这可以包括从源108收集内容信息,并且可操作地对其进行处理,以便以所希望的传输格式对其进行处理。
在步骤704,主机102形成控制信息128。当提示主机模块102在各种情况下都这样作时,其形成控制信息,诸如表示数据流的末端,表示新密钥的使用,表示断开连接的存在等等。在这些情况的一种子情况中,由于通过由用户112采取的动作提示主机模块102这样作,因此其形成控制信息,该用户112与主机模块102或客户端模块104相互作用。
在步骤706,主机模块102的传送处理模块122将内容信息126与控制信息128进行组合。这可以通过将控制信息128插入到包括内容信息的多路复用分组数据流中(例如AN信息)来执行。
在步骤708,传送处理模块122将数据流124传送到客户端模块104,其中数据流124包括内容信息126和控制信息128。
图8所示的处理过程用于解释并对已接收数据流124中出现的控制信息起作用。
在步骤802,接收处理模块134接收包括带内控制信息128的数据流124。
在步骤804,接收处理模块134确定来自数据流124的已接收分组是否包括控制信息。这可以通过检查分组的首部信息来执行,以确定其是否包括表明其包含控制信息的信息。
在步骤806,客户端模块104基于控制信息128执行接收内容信息126的处理。这样的处理可以采取上面参考图4-6描述的任何操作形式。例如,控制信息128可以将应当使用某种再现资源或解密密钥通知给客户端模块104,以处理所接收的内容信息。在数据流断开连接的情况下,客户端模块104可以删除分组,直到其接收了数据流边界控制信息为止,并且开始重新填充其缓冲器(例如缓冲器218)。
C、示例性计算机环境在一种示例性实施方案中,主机模块102和客户端模块104可以由两个被适当地配置为分别在主机和客户端中起作用的计算机设备来实现。在这种情况下,图9提供了有关示例性计算机环境900的信息,该示例性计算机环境900可用于实现主机模块102或客户端模块104。
计算环境900包括通用型计算机902和显示器件904。然而,计算环境900可以包括其它类型的计算环境。例如,尽管未示出,但是计算环境900可以包括手持或膝上设备,机顶盒、游戏控制台、扩展型计算机,大型机计算机、内嵌有逻辑功能的再现设备等等。另外,图9示出了被组合在一起的计算机环境900的元件,以方便讨论。然而,计算环境900可以使用分布式处理配置。在分布式计算机环境中,可通过环境来物理地分配计算资源。
示例性计算机902包括一个或多个处理器或处理单元906,系统存储器908,总线910。总线910使多个系统组件连接在一起。例如,总线910将处理器906连接到系统存储器908。可以使用任何类型的总线结构或总线结构的组合来实现总线910,包括存储总线或存储控制器,外围总线,加速图形端口,以及使用各种总线结构中的任一种的处理器或本地总线。
计算机902还包括各种计算机可读介质,包括各种类型的易失性和非易失性介质,其中的每一种都是可拆卸或不可拆卸的。例如,系统存储器908包括易失性形式的计算机可读介质,诸如随机访问存储器(RAM)912,和非易失性存储器,诸如只读存储器(ROM)914。ROM914包括输入/输出系统(BIOS)916,其包含有在开机时帮助将信息在计算机902的元件之间传送的基本程序。RAM912典型地包含有以可由处理单元906快速访问的形式的数据和/或程序模块。
其他类型的计算机存储介质包括硬盘驱动器918,用于从不可拆卸的非易失性磁介质中读取或写入,磁盘驱动器920,用于从可拆卸的非易失性磁盘922(例如“软盘”)中读取或写入,以及光盘驱动器924,用于从诸如CD-ROM,DVD-ROM的可拆卸的非易失性光盘926或其他光介质中读取或写入。硬盘驱动器918、磁盘驱动器920、光盘驱动器924的每一个可以通过一个或多个数据介质接口928连接到系统总线910。另选地,硬盘驱动器918、磁盘驱动器920、光盘驱动器924通过SCSI接口(未示出)或其他耦合结构连接到系统总线910。尽管未示出,计算机902可以包括其他类型的计算机可读介质,诸如磁带或其他磁存储设备,闪存卡,CD-ROM,数字通用盘(DVD)或其他光存储器,电可擦可编程只读存储器(EEPROM),等。
通常,上述计算机可读介质提供了通过计算机902使用的计算机可读指令、数据结构、程序模块。和其他数据的非易失性存储。例如,可读介质可以存储操作系统930,应用模块932,其他程序模块934,和程序数据936。
计算机环境900可以包括各种数据设备。例如,计算机环境900包括键盘938和点击设备940(例如“鼠标”),用于向计算机902输入命令和信息。计算机环境900可以包括其他输入设备(未示出),诸如麦克风、操纵杆、游戏垫、圆盘式卫星电视天线、串行口、扫描仪、读卡设备、数字或视频摄像机等。输入/输出接口942将输入设备连接到处理单元906。更一般地,输入设备可以通过诸如并行口、串行口、游戏端口、通用串行总线(USB)端口等这样的任一种接口或总线结构与计算机902相连。
计算机环境900还包括显示设备904。视频适配器944将显示设备904连接到总线910。除显示设备904之外,计算机环境900可以包括其他的输出外围设备,诸如扩音器(未示出),打印机(未示出)等。这些单元中的任一种都可以构成图1中所示的目标实体(120、122,...,124)。
计算机902使用与一个或多个远程计算机(诸如远程计算设备946)的逻辑连接在网络环境中进行操作。远程计算设备946可以包括任一种计算机设备,包括通用个人计算机,便携式计算机,服务器,游戏控制台,网络扩展设备等等。远程计算设备946可以包括与计算机902有关的上述所有特征,或其中的一部分。
任何类型的网络948(诸如WAN、LAN等)都可用于将计算机902与远程计算设备946相连。计算机902经由网络接口950与网络948相连,可以使用宽带连通性,调制解调连通性、DSL连通性、或其他连接策略。尽管未示出,但是计算环境900可以为将计算机902与远程计算设备946相连而提供无线通信功能(例如通过调制后的无线电信号、调制后的红外信号等)。
在一个实施中,计算机902和计算机946可以分别与主机模块102和客户机模块104相对应。在另一实施中,计算机902和计算机946可以分别与主机模块102和源108(其中源108可以构成服务器计算机)相对应。还有其他的应用也可以。
在结尾中,以可选的方式在该公开中列出了很多示例(例如例A或例B)。另外,该公开包括那些将可选的示例合并成单个实施例的情况(例如例A和例B),尽管在每种情况中并未说明这些合并情况。
更一般地,尽管本发明在语言描述上指定了结构特征和/或方法逻辑措施,但是应该理解附加权利要求中所限定的本发明并不限于所述的具体特征或措施。相反地,所公开的这些具体特征和措施对实施所保护的本发明只是示例性的形式。
权利要求
1.一种将内容信息从主机模块以流形式传送到客户端模块的方法,该方法包括在主机模块处,提供包含在要被发送到客户端模块的数据流中的内容信息的单元在主机模块处,提供至少一个包括在数据流中的控制信息的单元;在主机模块处,在内容信息单元中插入所述至少一个控制信息单元,其中与内容信息单元相对的所述至少一个控制信息单元的位置传送指令,该指令与一旦接收到控制信息所述客户端模块就进行操作的方式有关;以及通过主机模块将包括内容信息单元和所述至少一个控制信息单元的数据流发送到客户端模块,其中主机模块动态地改变控制信息,该控制信息基于控制数据流播放的用户所采取的动作而被主机模块插入到数据流中。
2.根据权利要求1所述的方法,其中所述至少一个控制信息单元位于一组内容信息单元的末端。
3.根据权利要求2所述的方法,其中所述至少一个控制信息单元对属于所述内容信息单元组的流(EOS)信息的结尾进行传送。
4.根据权利要求1所述的方法,其中所述至少一个控制信息单元位于一组内容信息单元的首部。
5.根据权利要求4所述的方法,其中所述至少一个控制信息单元对用于所述内容信息单元组的再现功能的多个方面进行传送。
6.根据权利要求4所述的方法,其中所述至少一个控制信息单元对用于改变应用于所述内容信息单元组的解密密钥的指令进行传送。
7.根据权利要求1所述的方法,其中所述至少一个控制信息单元位于两组内容信息单元之间。
8.根据权利要求7所述的方法,其中所述至少一个控制信息单元对与两组内容信息单元之间的不连续性相关的信息进行传送。
9.根据权利要求8所述的方法,其中所述不连续性是指示从一个流转换成另一个流,如通过用户指示。
10.根据权利要求9所述的方法,其中从一个流到另一流的转换表示在各自的信道上从一种程序到另一种程序的移动,如通过用户指示。
11.根据权利要求9所述的方法,其中从一个流到另一流的转换表示从相同流的一部分到另一部分的移动,如通过用户指示。
12.根据权利要求1所述的方法,还包括在客户端模块接收包含所述至少一个控制信息单元和所述内容信息单元的流;检测所述至少一个控制信息单元在流中的出现;以及将包含在所述至少一个控制信息单元中的控制信息应用于管理客户端模块的操作。
13.根据权利要求12所述的方法,其中所述应用包括响应包含在所述至少一个控制信息单元中的流结尾指令的接收而暂停客户端模块。
14.根据权利要求12所述的方法,其中所述应用包括将解密密钥用于接收的内容信息的后续处理中,以响应对与包含在所述至少一个控制信息单元中的指令有关的密钥的接收。
15.根据权利要求12所述的方法,其中所述应用包括恢复客户端缓冲器的再填充,以响应对包含在所述至少一个控制信息单元中的流边界指令的接收。
16.根据权利要求1所述的方法,其中内容信息单元和所述至少一个控制信息单元包括具有统一格式的分组。
17.根据权利要求16所述的方法,其中所述分组包括识别信息,用于识别分组信息是否包括内容信息或控制信息。
18.根据权利要求1所述的方法,其中所述内容信息包括音频/视频信息。
19.一种计算机可读介质,其上存储有用于执行权利要求1所述的方法的机器可读指令。
20.一种通过客户端模块接收流内容信息的方法,该方法包括从主机模块接收包含有位于多个内容信息单元中的至少一个控制信息单元的流;检测所述流中的所述至少一个控制信息单元的出现;以及将包含在所述至少一个控制信息单元中的控制信息用于管理所述客户端操作的方式,其中主机模块动态地改变控制信息,该控制信息基于控制数据流播放的用户所采取的动作而被主机模块插入到数据流中。
21.一种计算机可读介质,其上存储有用于执行权利要求20所述的方法的机器可读指令。
22.一种用于将内容信息以流形式传送到客户端模块的主机模块,该主机模块包括转发处理模块,被配置为提供包含在要被发送到客户端模块的数据流中的内容信息单元提供至少一个包括在数据流中的控制信息的单元;在内容信息单元中插入所述至少一个控制信息单元,其中与内容信息单元相对的所述至少一个控制信息单元的位置传送指令,该指令与一旦接收到控制信息所述客户端模块进行操作的方式有关;以及将包括内容信息单元和所述至少一个控制信息单元的数据流发送到客户端模块,其中主机模块动态地改变控制信息,该控制信息基于控制数据流播放的用户所采取的动作而被主机模块插入到数据流中。
23.一种客户端模块,用于从主机模块接收流内容信息,该客户端模块包括接收处理模块,被配置为从主机模块接收包含有位于多个内容信息单元中的至少一个控制信息单元的流;检测所述流中的所述至少一个控制信息单元的出现;以及将包含在所述至少一个控制信息单元中的控制信息用于管理所述客户端操作的方式,其中主机模块动态地改变控制信息,该控制信息基于控制数据流播放的用户所采取的动作而被主机模块插入到数据流中。
24.一种用于在主机模块和客户端模块之间传送内容信息的系统,该系统包括主机模块,被配置为提供包含在要被发送到客户端模块的数据流中的内容信息单元提供至少一个包括在数据流中的控制信息的单元;在内容信息单元中插入所述至少一个控制信息单元,其中与内容信息单元相对的所述至少一个控制信息单元的位置传送指令,该指令与一旦接收到控制信息所述客户端模块进行操作的方式有关;以及向客户端模块发送包括内容信息单元和所述至少一个控制信息单元的数据流,接收模块被配置为从主机模块接收包含有位于多个内容信息单元中的至少一个控制信息单元的流;检测所述流中的所述至少一个控制信息单元的出现;以及将包含在所述至少一个控制信息单元中的控制信息用于管理所述客户端操作的方式,其中主机模块动态地改变控制信息,该控制信息基于控制数据流播放的用户所采取的动作而被主机模块插入到数据流中。
25.根据权利要求24所述的系统,其中所述客户端模块作为经由连接结构与所述主机模块相连接的扩展单元,其中所述扩展单元被配置为运行由主机模块执行的介质分布服务的一个实例。
全文摘要
叙述了用于将控制信息从主机模块传送到客户端模块的策略。主机模块将带内控制信息沿介质内容信息分组流进行发送。控制信息可用于管理客户模块的操作。在一种情况中,控制信息警告客户模块在流中的不连续性,这可能是用户通过主机或客户端模块等改变信道、发布查找指令等等而造成的结果。以带内方式发送控制信息是有利的,这是因为其减少了对控制信息和相关联的内容信息之间的复杂链接的需求。
文档编号H04L29/06GK1770777SQ20051012916
公开日2006年5月10日 申请日期2005年7月29日 优先权日2004年7月29日
发明者G·维迪, J·A·戴维斯 申请人:微软公司