通过监视客户机缓冲区的丰度来检测网络化设备中的时钟漂移的制作方法

文档序号:7952165阅读:187来源:国知局
专利名称:通过监视客户机缓冲区的丰度来检测网络化设备中的时钟漂移的制作方法
技术领域
本发明一般涉及数字媒体回放系统,尤其涉及在这种系统中调整媒体流的回放。
背景技术
诸如音频流、视频流和/或文本媒体内容流的数字媒体流变得越来越流行了。术语“流”(streaming)通常用来指表示媒体的数据由主计算机设备经网络提供给客户机设备(即,实现为各种常规计算设备的任一种的媒体回放设备,诸如台式PC、笔记本或便携式计算机、蜂窝式电话或其它无线通信设备、个人数字助理(PDA)、游戏控制台、IP机顶盒、手持式PC等)。客户机设备在从主机中接收内容时就提交流内容,而不等待要传送的全部内容或整个“文件”。
当媒体内容在网络上“流动”时,通常以数据包形式被流传送。然而,并非总是能确保数据包将以所发送的相同顺序到达其目的地,甚至根本不能确保它们到达了目的地。此外,通常不确保数据包从源行进到目的地所花时间具有特定的持续期,或者该时间对不同数据包是相同的。
为了考虑到向客户机设备的数据传送中的这些变化,客户机设备通常维持一数据缓冲区。该缓冲区使客户机设备能平滑数据传送中的变化,使这些变化在内容回放期间不会被用户注意到。因而,例如如果网络带宽中有因网络拥塞(例如网络交叉通信量、干扰、较差的无线接收)导致的短暂故障,在大多数情形中缓冲区中的数据量允许客户机设备继续播放媒体内容,从而用户不会体验到该小故障(例如回放中的中断或暂停)的影响。然而,在一些情形中,例如网络故障所导致的数据传送变化可放空缓冲区并导致回放中的中断或暂停。
可导致客户机缓冲区持续放空以及媒体内容回放时的周期性中断的另一个问题是在主设备(即编码并传送流内容的源设备)和客户机设备(即接收并回放流内容的设备)上出现不同的时钟频率。即,调整客户机设备上回放的客户机时钟可能以与调整主/源设备上编码过程的主机时钟略有不同的频率来运行。主机时钟和客户机时钟之间的时钟漂移可导致客户机缓冲区用完用来回放的媒体内容。如果客户机时钟运行得比主机时钟快,则客户机将以比主机补充缓冲区略快的速率来从客户机缓冲区消耗媒体内容。在该情形中,客户机缓冲区将继续用完媒体内容,且媒体回放中出现周期性的暂停或中断以便于缓冲区复原。相反,时钟漂移也可导致客户机缓冲区的媒体内容溢出。如果客户机时钟比主机时钟慢,则客户机将以比主机填充缓冲区略慢的速率来从客户机缓冲区消耗媒体内容。在该情形中,客户机缓冲区将使媒体内容溢出。
因此,需要一种方法来检测将流内容传送给客户机回放设备的主设备和该客户机设备之间的时钟漂移。

发明内容
一种数字媒体系统和方法使用客户机缓冲区丰度报告来检测传送流媒体内容的主/源设备上的时钟和接收流媒体内容的客户机回放设备上的时钟之间的时钟漂移。
在一实施例中,客户机设备上的缓冲区监视器监视客户机缓冲区,并产生指示客户机缓冲区中数据水平的缓冲区丰度报告。缓冲区监视器将该缓冲区丰度报告发送给主设备上的时钟漂移检测和复原组件。该时钟漂移检测和复原组件从缓冲区丰度报告中确定客户机设备时钟和主设备时钟之间的任何时钟漂移的程度。如果在客户机时钟和主机时钟之间有时钟漂移,则该时钟漂移检测和复原组件实现一复原方法来使两个时钟同步。
在另一实施例中,客户机设备上的缓冲区监视器将缓冲区丰度报告发送给客户机设备上的时钟漂移检测和复原组件。客户机设备上的该时钟漂移检测和复原组件确定客户机时钟和主机时钟之间的任何时钟漂移的程度,并实现一复原方法来使两个时钟同步。在又一实施例中,客户机设备上的时钟漂移检测和复原组件向主设备发送有关检测到的时钟漂移的消息,且主设备上的时钟复原组件实现一复原方法来使两个时钟同步。该时钟漂移检测和复原组件还驻留在第三设备上(例如专用控制设备)并接收来自客户机的缓冲区丰度报告。再一次,时钟漂移检测和复原组件确定客户机时钟和主机时钟之间的任何时钟漂移的程度,并实现一复原方法来使两个时钟同步。


在附图中相同标号用来引用相同组件和特征。
图1示出适于检测传送流媒体内容的主/源设备上的时钟和接收流媒体内容的客户机回放设备上的时钟之间的时钟漂移的示例性环境。
图2示出适于检测传送流媒体内容的主/源设备上的时钟和接收流媒体内容的客户机回放设备上的时钟之间的时钟漂移的数字媒体系统的一示例性实施例。
图3示出当主设备使媒体内容流向客户机设备时客户机媒体缓冲区丰度水平随时间变化所见的各种情形。
图4示出当缓冲区丰度水平随时间因网络带宽波动而波动时的客户机媒体缓冲区丰度水平的另一情形。
图5示出适于检测传送流媒体内容的主/源设备上的时钟和接收流媒体内容的客户机回放设备上的时钟之间的时钟漂移的数字媒体系统的其它示例性实施例。
图6-7是示出用于检测传送流媒体内容的主/源设备上的时钟和接收流媒体内容的客户机回放设备上的时钟之间的时钟漂移的示例性方法的流程图。
图8示出适于实现诸如参照图1-7所述的主计算机设备和客户机回放设备的示例性计算环境。
具体实施例方式
导言以下讨论涉及一种数字媒体系统和方法,该系统和方法检测传送流媒体内容的主/源设备上的时钟和接收流媒体内容的客户机回放设备上的时钟之间的时钟漂移。主机时钟调整主设备上流媒体的编码,而客户机时钟调整流媒体在客户机设备上的回放。所述系统和方法的优点包括在流媒体内容回放期间回放中断的减少,以及由主/源设备编码的”实况”内容可实际上被体验为通过客户机设备上回放的“实况”内容有了更大可能性。
示例性环境图1示出适于检测传送流媒体内容的主/源设备上的时钟和接收流媒体内容的客户机回放设备上的时钟之间的时钟漂移的示例性环境100。网络106旨在表示采用各种常规网络协议的任一种(包括公共和/或专用协议)的各种常规网络拓朴和类型的任一种(包括光学、有线和/或无线网络)。网络106可包括,例如,家用网络、公司网络、或因特网、以及可能一个或多个局域网(LAN)或广域网(WAN)的至少一部分。
主/源设备102一般提供对诸如媒体文件的所存储媒体内容、和/或诸如实况有线电视馈入或Webcast的实况媒体内容。主设备102基于请求使媒体内容流向客户机回放设备104。客户机设备104一般接收来自主设备102的流媒体内容,并向用户作回放。来自客户机设备104的对流动主设备102上可用的媒体内容的请求经网络106从客户机设备104路由到主设备102。主设备102接收请求并将所请求内容经网络106返回给作出请求的客户机设备104。
主设备102可实现为各种常规计算设备的任一种,包括例如台式PC、笔记本或便携式计算机、工作站、大型机、因特网装置、及其组合等,它们可配置成使所存储的和/或活动的媒体内容流向客户机设备104。客户机回放设备104也可实现为各种常规计算设备的任一种,包括例如台式PC、笔记本或便携式计算机、工作站、大型机、因特网装置、游戏控制台、手持式PC、蜂窝式电话或其它无线通信设备、个人数字助理(PDA)、机顶盒、及其组合等。用于实现主设备102和客户机设备104的示例性计算环境在下面参照图8进行更详细地描述。
主设备102可使各种数据的任一种可用来流向客户机回放装置104,包括诸如音频、视频、文本、图像、动画等的内容。然而,当参照以下描述的示例性实施例在此使用时,媒体内容200旨在表示音频/视频(A/V)内容或仅表示视频内容。此外,在此对“媒体内容”、“流媒体”、“流视频”、“视频内容”及其任何变体的引用通常旨在包括音频/视频内容。术语“流”用来指表示媒体内容的数据经网络106提供给客户机回放设备104,并且内容的回放在内容被全部传送之前就可开始。数据可公用或可选择为受限制(例如仅限于某些用户、仅当支付了适当费用才可用、限于可访问特定网络的用户等)。此外,数据可以是“基于请求的”(例如预先记录的、已知大小的存储内容)或者可选择地来自活动的“广播”(例如具有未知大小,诸如当音乐会演出时捕捉的音乐会的数字表示,并在捕捉后马上可用于流传送)。
示例性实施例图2示出适于检测传送流媒体内容的主/源设备上的时钟和接收流媒体内容的客户机回放设备上的时钟之间的时钟漂移的数字媒体系统的一示例性实施例。主设备102通常配置成以由主设备102的主机时钟202调整的速率来编码媒体/视频内容200。然后主设备102可经网络106将编码后的媒体/视频内容200存储和/或流传送到客户机设备104中。客户机设备104通常被配置成以由客户机设备104的客户机时钟204调整的速率接收流媒体/视频内容200并回放该流内容。
在本实施例中,主设备102包括被配置成确定在客户机时钟204和主机时钟202之间是否有时钟漂移的时钟漂移检测和复原模块206。该检测和复原模块206基于它从客户机设备104接收的有关客户机媒体缓冲区208的信息来确定时钟漂移。客户机设备104以缓冲区丰度报告210的形式向主机设备102提供缓冲区信息。缓冲区丰度报告210指示在媒体内容200从主设备102流向客户机设备104期间在客户机设备104上的客户机媒体缓冲区208中出现的数据水平。由缓冲区丰度报告210指示的数据水平可包括音频缓冲区208(1)中音频数据212的水平,和/或视频缓冲区208(2)中视频数据214的水平。主设备102上的时钟漂移检测和复原模块206基于它从客户机设备104中接收的缓冲区丰度报告210(2)来确定时钟漂移,如以下进行更详细地讨论。
主设备102维持一个或多个媒体内容200的文件,从中可由客户机设备104的媒体播放器应用程序216进行选择(例如响应于通过媒体播放器应用程序216的用户输入)。此外,主设备102提供诸如从活动有线电视馈入到Webcast的活动内容的访问,该活动内容基于请求流向客户机回放设备104。在本实施例中,媒体内容200被视为通常具有音频成分的视频内容。因而,如上所述,在此对“媒体内容”、“流媒体”、“流视频”、“视频内容”及其任何变体的引用通常旨在表示音频/视频(A/V)和/或视频内容。主设备102经网络106向客户机设备104上的媒体播放器应用程序216传送作为数据流的请求媒体内容200。
客户机设备104维持媒体缓冲器208,作为一种平滑经网络106的数据传送中的变化(例如因网络交叉通信量、干扰、较差的无线接收等导致的网络小故障)的方法,从而在内容回放期间它们不会被用户注意到。在有利的网络条件下,缓冲区208的丰度水平将相对较高(例如>80%)并将指示健康的丰度水平。缓冲区208中的较高丰度水平通常允许缓冲区208内的全部媒体内容、以及来自主设备102的剩余流媒体内容的实时回放。
客户机设备104的缓冲区监视器218被配置成监视缓冲区208的丰度水平并产生缓冲区丰度报告210(1),同时媒体内容200从主设备102中流出。缓冲区丰度报告210是客户机设备104向主设备102报告缓冲区丰度信息的一种机制。一般而言,该信息由主设备102上的时钟漂移检测和复原模块206用来确定客户机时钟204和主机时钟202之间是否有时钟漂移。
图3示出当主设备使媒体内容流向客户机设备时客户机媒体缓冲区丰度水平随时间变化的各种情形。在每种情形中,缓冲区208以约80%的相对较高或健康的丰度水平开始。在由标绘线300示出的第一种情形中,缓冲区丰度水平随着时间逐渐增大。这表示缓冲区208中数据的填充比消耗快。在该情形中,缓冲区208最终将使数据溢出,这通常导致溢出数据(帧)被客户机104丢弃/撤消,且不在主设备102上的主缓冲区(未示出)中回放或存储。在由标绘线302示出的第二种情形中,缓冲区丰度水平随着时间保持不变。这表示缓冲区208中数据以与消耗相同的速率进行填充。在由标绘线304示出的第三种情形中,缓冲区丰度水平随着时间逐渐减小。这表示缓冲区208中数据的填充比消耗慢。在该第三情形中,缓冲区208最终将放空,并且在客户机设备104上的媒体回放中将发生暂停或中断,同时缓冲区208复原(即用数据填充)。在由标绘线306示出的第四种情形中,缓冲区丰度水平随着时间快速下降,表示缓冲区208中的数据以比消耗慢得多的速度进行填充。
为了确定在客户机时钟204和主机时钟202之间是否有时钟漂移,主设备102上的时钟漂移检测和复原模块206接收由客户机设备104上的缓冲区监视器218产生的缓冲区丰度报告210(2),并画出如缓冲区丰度报告210(2)中所表示的缓冲区丰度水平随时间变化的线条。因而,时钟漂移检测和复原模块206可产生诸如以上参照图3示出和讨论的线条。时钟漂移检测和复原模块206监视通过标绘产生的线条的斜率,以确定客户机时钟204和主机时钟202之间是否出现时钟漂移。如以下更详细讨论地,该斜率随时间进行平均以平滑网络的不稳定性。
再次参看图3,例如当标绘诸如300的线条时,时钟漂移检测和复原模块206将确定线条300具有平缓斜率,表示在客户机时钟204和主机时钟206之间出现了时钟漂移。此外,因为线条300的斜率为正,所以时钟漂移检测和复原模块206确定客户机时钟204以比主机时钟202更慢的速率运行,因为缓冲区208中的数据以比主设备102填充数据(由主机时钟202调整)慢的速率消耗(即由客户机104上的播放器应用程序216回放)。类似地,对于从缓冲区丰度报告210(2)中产生的其它线条,检测和复原模块206将从所画线条的斜率中确定在客户机时钟204和主机时钟202之间是否出现任何时钟漂移。例如,参照图3的线条302,因为线条302的斜率为零,检测和复原模块206将确定没有时钟漂移。参照线条304,检测和复原模块206将从线条的平缓负斜率确定出现了时钟漂移,且客户机时钟204以比主机时钟202快的速率运行,因为缓冲区208中的数据以比主设备102填充数据快的速率被消耗。参照线条306,检测和复原模块206将从线条的急剧负斜率确定有除单纯时钟漂移之外的情况,诸如网络中断,它导致客户机缓冲区208的急剧放空。网络中断可与时钟漂移有区别,因为从网络进入的媒体内容的速率因为网络中断而变成零,而在网络中断不存在时平均而言该速率保持恒定。此外,在网络拥塞期间,媒体内容流可变得较慢,但不会完全跌至零。例如,如果网络容量低于流的比特率(例如如果尝试经5.5Mbps网络发送6Mbps的流),则客户机设备104上的缓冲区丰度也可随时间放空。监视附加统计数据,诸如在网络层上重发/丢失的信息块数量、往返时间随时间的变化,或其它统计量,可标识这种网络过载。因此在确定主机时钟和客户机时钟之间是否存在时钟漂移时,被确定为是网络限制的结果的缓冲区放空结果可滤除。
图4示出缓冲区丰度水平因为网络带宽波动而随时间波动的另一情形,如标绘线400所示。在该情形中,缓冲区丰度可不显现为显然随时间增大或减小。然而,通过在较大时间窗口上平均缓冲区丰度并画出结果(例如标绘线402),可滤除网络带宽波动。检测和复原模块206然后可计算标绘线402的斜率,并确定缓冲区丰度实际上在以恒定速率下降。因此,如上所述,检测和复原模块206将从线条的平缓负斜率确定存在时钟漂移,且客户机时钟204以比主机时钟202快的速率运行。
除了确定客户机时钟204和主机时钟202之间是否出现时钟漂移之外,检测和复原模块206计算主机时钟202和客户机时钟204之间时钟速度的差异。各种数学模型(例如数学低通过滤、统计学分析等)可用来基于来自客户机缓冲区208的缓冲区丰度数据,计算主机时钟202和客户机时钟204之间时钟速度的差异。在一实现中,主机时钟202和客户机时钟204之间时钟速度的差异通过以下定义和等式(1)、(2)和(3)来定义rh-rc=dpc*(ch-cc)(1)ch是以赫兹(Hz)为单位的主机时钟202的实际速率。
cc是以赫兹(Hz)为单位的客户机时钟204的实际速率。
dpc是表示数据流的指定(即基于所指定值的期望值)数据速率。即,dpc等于主设备102和客户机设备104的指定数据速率。
rh是主设备102上数据产生的实际速率,它是指定数据速率(比特/秒)*ch/指定主机时钟速率,单位为Hz。因而rh=ch*dpcrc是客户机设备104上数据消耗的实际速率,它是指定期望数据速率(比特/秒)*cc/指定期望客户机时钟速率,单位为Hz。因而rc=cc*dpc因此,以上等式(1)通过从rh减去rc导出。等式(1)参照缓冲区丰度和时间可通过以下定义和等式(2)作另一表达
rh-rc=(ft-f0)/t(2)f0是时间0时的缓冲区丰度(数据比特数),它是时间为零时缓冲区丰度乘以缓冲区208的大小(比特)的百分比。
ft是时间t时的缓冲区丰度(数据比特数),它是时间为t时缓冲区丰度乘以缓冲区208的大小(比特)的百分比。
通过使以上等式(1)和(2)相等,主机时钟202和客户机时钟204之间时钟速度的差异(即时钟漂移量)显然如以下等式(3)dpc*(ch-cc)=(ft-f0)/tch-cc=ft-f0t*dcp---(3)]]>f0,ft和t的值可从用来产生图形的数据(即来自缓冲区丰度报告210(2)的数据)中确定。量(ft-f0)/t从基于缓冲区丰度报告210(2)的线条的斜率中确定。因而,时钟漂移检测和复原模块206可基于等式(3)简便地计算客户机时钟204和主机时钟202之间的时钟漂移量(即由量ch-cc表示的时钟速度的差异)。
在以上计算中,作了这样的假设平均网络容量随时间将大于由主设备102传送的媒体流的比特率。如果网络容量小于流的比特率,则客户机设备104上的缓冲区丰度也可随时间放空。监视可标识网络过载的附加统计量,诸如在网络层上重发/丢失的信息块数量、往返时间随时间的变化,或其它统计量,可改进网络容量随时间低于流的比特率的情形中的上述结果。
在确定客户机时钟204和主机时钟202之间有时钟漂移并计算该时钟漂移量之后,检测和复原模块206可实现使两个时钟同步的复原方法。例如,主设备102可向客户机104发送时钟改变请求,指示客户机将客户机时钟204拨快或拨慢。如果客户机时钟204比主机时钟202慢,则主设备102也可从流向客户机104的媒体内容200中丢弃一些视频帧,以便于使客户机时钟204赶上主机时钟202。主机设备102还可调节它自己的时钟以使两个时钟同步。使客户机时钟204和主机时钟202同步有助于减少当作为客户机时钟202以比主机时钟202快的速率运行的结果客户机缓冲区208放空时可发生的回放中断。此外,使客户机时钟204和主机时钟202同步有助于确保由主设备102以主机时钟速率编码的”实况”内容能以它在主设备102上编码的相同速率在客户机设备104上体验或回放为”实况”内容。
图5示出适于检测传送流媒体内容的主设备102上的时钟和接收流媒体内容的客户机回放设备104上的时钟之间的时钟漂移的数字媒体系统的一个或多个示例性实施例。主设备102和客户机设备104通常参照图2实施例如上所述地配置。然而,在图5的一个实施例中,客户机设备104还可用时钟漂移检测和复原模块502配置成确定在客户机时钟204和主机时钟202之间是否存在时钟漂移,并以与上述相似的方法来计算主机时钟202和客户机时钟204之间的时钟速度差异。此外,在检测时钟漂移并计算主机时钟202和客户机时钟204之间时钟速度差异之后,客户机设备104的检测和复原模块502可实现使客户机时钟204和主机时钟202同步的时钟复原方法(例如一定比率地调节客户机时钟204的速率)。在另一实施例中,主设备102可包括一时钟复原模块500,它被配置成从客户机设备104上的时钟漂移检测和复原模块502中接收时钟复原请求和/或信息。在接收这种请求和/或信息之后,时钟复原模块500可实现如上参照图2实施例所述的时钟复原方法。
示例性方法选择将主要参照图6和7的流程图来描述用于在数字媒体系统中检测传送流媒体内容的主/源设备102上的时钟和接收流媒体内容的客户机回放设备104上的时钟之间的时钟漂移的示例性方法。该方法应用于以上参照图1-5讨论的示例性实施例。尽管通过流程图和与流程图各框相关联的文本揭示了一种或多种方法,可以理解所述方法的各个元素并非必然按它们所呈现的顺序来执行,且另外的顺序也可导致相似的优点。此外,各方法并非是排他性的,并可单独地或者彼此结合地执行。所述各方法的元素可通过任何适当手段执行,包括例如通过ASIC上的硬件逻辑块或通过在处理器可读媒体上定义的处理器可读指令的执行。
“处理器可读媒体”在此使用时,可以是包含、存储、通信、传播、或传送由处理器使用或执行的多个指令的任何手段。处理器可读媒体可以是,但非限制,电子、磁性、光学、电磁、红外线、或半导体系统、装置、设备或传播媒体。处理器可读媒体的更多特定示例包括具有一条或多条电线的电连接(电子)、便携式计算机盘(磁性)、随机存取存储器(RAM)(磁性)、只读存储器(ROM)(磁性)、可擦可编程只读存储器(EPROM或闪存)、光纤(光学)、可重写光盘(CD-RW)(光学)、以及便携式光盘只读存储器(CDROM)(光学)。
在方法600的框602,客户机回放设备104经网络106从主设备102中接收流媒体内容。该媒体内容包括例如音频/视频和/或视频内容。在框604,客户机设备104将来自媒体内容的数据保存在客户机缓冲区208中。在流媒体内容的回放期间,缓冲区用来平滑因网络带宽的波动引起的数据传送中的变化(例如因网络交叉通信量、干扰、较差的无线接收等导致的网络小故障)的方法,从而在内容回放期间它们不会被用户注意到。在框606,缓冲区监视器218监视缓冲区208中数据的丰度水平,且在框608缓冲区丰度报告210(1)基于缓冲区监视而被产生。因而当媒体内容流入缓冲区并被客户机回放设备104消耗时,缓冲区丰度报告由缓冲区监视器产生,表示在内容流传送期间的不同时间上缓冲区中出现的数据量。
在方法600的框610,时钟漂移检测和复原模块(206、502)确定在调整媒体内容流动的主设备102上时钟和调整媒体内容回放的客户机设备104上时钟之间是否出现时钟漂移。在图7上继续并在下面讨论的方法700,进一步描述了如何确定时钟漂移。
在方法600的框612,计算时钟漂移量。如上所述,时钟漂移量根据以下等式来计算,其中dpc是常数,而f0,ft和t的值可从用来产生图形的数据(即来自缓冲区丰度报告210(2)的数据)中确定。
ch-cc=ft-f0t*dcp---(3)]]>在方法600的框614,时钟漂移检测和复原模块(206、502)或时钟复原模块500实现使客户机时钟204和主机时钟202同步的时钟复原方法。该复原方法包括,例如,调节客户机时钟、调节主机时钟、改变来自主设备的流内容(例如丢弃帧)等。
如上所述,图7的方法700进一步描述时钟漂移检测和复原模块(206、502)如何确定主机时钟和客户机时钟之间是否存在时钟漂移。在方法700的框702,检测和复原模块(206、502)在使媒体内容流向客户机设备104期间画出缓冲区丰度水平。在框704,计算通过标绘形成的线条的平均斜率。计算平均斜率可包括在较大时间窗口上平均缓冲区丰度并画出结果,以便于滤除否则可示出缓冲区丰度水平变化的网络带宽波动。
在框706,时钟漂移检测和复原模块(206、502)确定是否有除时钟漂移之外的因素,诸如网络限制,这些因素可导致客户机缓冲区208的放空。例如,如果网络容量低于流的比特率,则客户机设备104上的缓冲区丰度也可随时间放空。监视附加统计数据,诸如在网络层上重发/丢失的信息块数量、往返时间随时间的变化,或其它统计数据,可标识网络过载。因此在确定主机时钟和客户机时钟之间是否存在时钟漂移时,被确定为是网络限制的结果的缓冲区放空结果可滤除。
在框708,检测和复原模块(206、502)监视线条的平均斜率以确定在主机时钟和客户机时钟之间是否存在时钟漂移。如果线条的平均斜率为零,则检测和复原模块(206、502)确定没有出现时钟漂移,如框710所示。如果线条的平均斜率为负,则检测和复原模块(206、502)确定客户机时钟比主机时钟快,如框712所示。如果线条的平均斜率为正,则检测和复原模块(206、502)确定客户机时钟比主机时钟慢,如框714所示。
示例性计算环境图8示出适于实现诸如以上参照图1-7所述的主设备102和客户机回放设备104的计算机设备的示例性计算环境。尽管在图8中示出一特定配置,但这种计算设备可在其它计算配置中实现。
计算环境800包括计算机802形式的通用计算系统。计算机802的组件可包括,但不限于,一个或多个处理器或处理单元804、系统存储器806、和将包括处理器804的各种系统组件耦合到系统存储器806的系统总线808。
系统总线808代表若干类型的总线结构中任意的一种或多种,包括存储器总线或存储器控制器、外围总线、加速图形端口、和使用各种总线架构的任一种的处理器或本地总线。系统总线808的一种示例将是外围部件互连(PCI)总线,也称为Mezzanine总线。
计算机802具有各种计算机可读媒体。这样的媒体可以是计算机802可访问的任何可用媒体,且包括易失性和非易失性媒体、可移动和不可移动媒体。系统存储器806包括诸如随机存取存储器(RAM)810的易失性存储器形式的、和/或诸如只读存储器(ROM)812的非易失性存储器的计算机可读媒体。包含有助于计算机802如起动时在元件间传送信息的基本例程的基本输入/输出系统(BIOS)814存储在ROM 812中。RAM 810包含可被处理单元804即时访问和/或现时操作的数据和/或程序模块。
计算机802还可包括其它可移动/不可移动、易失性/非易失性计算机存储媒体。作为示例,图8图示了读取和写入不可移动、非易失性磁性媒体(未示出)的硬盘驱动器816,读取和写入可移动、非易失性磁盘820(如“软盘”)的磁盘驱动器818,读取和写入可移动、非易失性光盘824,如CD-ROM、DVD-ROM、或其它光学媒体的光盘驱动器822。硬盘驱动器816、磁盘驱动器818、和光盘驱动器822分别由一个或多个数据媒体接口825连接到系统总线808。可选地,硬盘驱动器816、磁盘驱动器818、和光盘驱动器822可经由SCSI接口(未示出)连接到系统总线808。
盘驱动器及其相关联的计算机可读媒体为计算机802提供计算机可读指令、数据结构、程序模块、和其它数据的非易失性存储。尽管该示例中图示了硬盘816、可移动磁盘820、和可移动光盘824,但可以理解其它类型的计算机可访问的可存储数据的计算机可读媒体,如磁带或其它磁性存储设备、闪存卡、CD-ROM、数字化多功能盘(DVD)或其它光学存储设备、随机存取存储器(RAM)、只读存储器(ROM)、电子可擦可编程只读存储器(EEPROM)等等,也可用来实现示例性计算系统和环境。
任何数量的程序模块,包括作为示例的操作系统826、一个或多个应用程序828、其它程序模块830、和程序数据832的,可存储于硬盘816、磁盘820、光盘824、ROM 812、和/或RAM 810。每一个这样的操作系统826、一个或多个应用程序828、其它程序模块830、和程序数据832(或其中某些组合)都可包括用于用户网络访问信息的高速缓存方案的一个实施例。
计算机802可包括各种标识为通讯媒体的计算机/处理器可读媒体。通讯媒体包含调制数据信号形式的诸如载波或其它传送机制的计算机可读指令、数据结构、程序模块、或其它数据,且包含任何信息传递媒体。术语“已调制数据信号”意指用对信号中信息编码的方式使其一个或多个特征设置或改变的信号。作为示例,而非限制,通讯媒体包括诸如有线网络或直线连接的有线媒体,和诸如声学、射频、红外线和其它无线媒体的无线媒体。所有以上内容的组合也应包含在“计算机可读媒体”范围之内。
用户可通过输入装置如键盘834和定位装置836(如“鼠标”)向计算机系统802输入指令和信息。其它输入装置838(未具体示出)可包括话筒、操纵杆、游戏垫、卫星接收器、扫描仪等等。这些和其它输入装置通常通过与系统总线808耦合的输入/输出接口840连接到处理单元804,但也可通过其它接口相连,如并行端口、游戏端口或通用串行总线(USB)。
监视器842或其它类型显示装置也通过接口,如视频适配器844和系统总线808相连。除了显示器842,其它外围输出装置可包括可通过输入/输出接口840与计算机802连接的组件,如扬声器(未示出)和打印机846。
计算机802可以在使用与一台或多台远程计算机,诸如远程计算设备848的逻辑连接的网络化环境中运行。作为示例,远程计算设备848可以是个人计算机、便携式计算机、服务器、路由器、网络计算机、同等装置或其它公共网络节点等等。远程计算设备848被示为可包括在此所述与计算机系统802相关的许多或全部部件的便携式计算机。
计算机802和远程计算机848间的逻辑连接包括局域网(LAN)850和广域网(WAN)852。这样的网络化环境在办公室、企业范围计算机网络、企业内联网和因特网上是常见的。当在LAN网络化环境中实现时,计算机802通过网络接口或适配器854与局域网850连接。当在WAN网络化环境中实现时,计算机802包括调制解调器856或其它用于在广域网852中建立通信的装置。可以内置或外置于计算机802的调制解调器856,通过输入/输出接口840或其它适当机制连接到系统总线808。可以理解的是,所示网络连接是示例性的,且其它用于在计算机802和848间建立通信连接的技术也可以使用。
在诸如计算环境800所示的网络化环境中,所描述的与计算机802相关的程序模块或其中部分模块,可存储在远程存储器存储设备中。作为示例,远程应用程序858驻留在远程计算机848的存储设备上。为进行说明,诸如操作系统的应用程序和其它可执行程序组件在此被示为离散框,尽管可以理解这样的程序和组件在各种时间会驻留于计算机系统802的不同存储组件上,并由该计算机的数据处理器执行。
结论尽管本发明已用结构化特征和/或方法论动作的专用语言作了说明,但可以理解的是在所附权利要求书中定义的本发明无须受限于所述特定特征或动作。相反,具体特征和动作是以实现本发明的示例性形式被揭示的。
权利要求
1.一种方法包括接收来自主设备的流内容;将来自所述流内容的数据保存在客户机设备缓冲区中;监视反映所述缓冲区中数据水平的缓冲区丰度水平;以及基于所述监视,确定主机时钟和客户机时钟之间是否有时钟漂移。
2.如权利要求1所述的方法,其特征在于,所述确定包括在时间间隔上标绘缓冲区丰度水平;计算通过所述标绘形成的线条的平均斜率;以及监视所述线条的平均斜率。
3.如权利要求2所述的方法,其特征在于,所述线条的平均斜率为0,且所述确定包括确定所述主机时钟和所述客户机时钟之间没有时钟漂移。
4.如权利要求2所述的方法,其特征在于,所述线条的平均斜率为负,且所述确定包括确定所述客户机时钟比所述主机时钟快。
5.如权利要求2所述的方法,其特征在于,所述线条的平均斜率为正,且所述确定包括确定所述客户机时钟比所述主机时钟慢。
6.如权利要求2所述的方法,其特征在于,计算所述线条的平均斜率包括滤除传送所述流内容的网络的带宽波动。
7.如权利要求1所述的方法,其特征在于,所述监视和所述确定能在所述主设备上执行,且所述监视包括将缓冲区丰度水平报告从所述客户机设备发送给所述主机设备。
8.如权利要求1所述的方法,其特征在于,所述确定包括通知主设备在所述主机时钟和所述客户机时钟之间是否有时钟漂移,且所述监视和所述确定在从包括以下的组合中选择的设备上执行所述客户机设备;以及除所述主设备和所述客户机设备之外的第三设备。
9.如权利要求1所述的方法,还包括根据以下等式计算时钟漂移量ch-cc=ft-f0t*dcp]]>其中所述时钟漂移量等于ch-cc;ch是主机时钟的频率;cc是客户机时钟的频率;dpc是以比特每秒为单位的所述主设备上的指定数据产生速率;f0是在时间0处的缓冲区丰度水平;ft是在时间t处的缓冲区丰度水平。
10.如权利要求1所述的方法,还包括实现消除所述主机时钟和所述客户机时钟之间时钟漂移的时钟复原方法。
11.如权利要求10所述的方法,其特征在于,所述实现从包括以下的所述组中选择调节所述客户机时钟;调节所述主机时钟;改变来自所述主设备的流内容;以及丢弃所述客户机设备上的数据帧。
12.一种包括处理器可执行指令的处理器可读媒体,所述可执行指令被配置成用于将流内容从主设备传送到客户机设备;监视所述客户机设备上在测量时间间隔上数据缓冲区的缓冲区丰度水平;以及基于所述监视,确定所述主设备上的主机时钟和所述客户机上的客户机时钟之间是否出现时钟漂移。
13.如权利要求12所述的处理器可读媒体,其特征在于,所述确定包括在所述测量时间间隔上计算缓冲区丰度水平的变化速率;以及基于所述缓冲区丰度水平的变化速率,确定存在所述时钟漂移。
14.如权利要求13所述的处理器可读媒体,其特征在于,所述缓冲区丰度水平变化的速率是恒定的正变化速率,且确定出现所述时钟漂移包括确定所述客户机时钟以比所述主机时钟低的频率运行。
15.如权利要求13所述的处理器可读媒体,其特征在于,所述缓冲区丰度水平变化的速率是恒定的负变化速率,且确定出现所述时钟漂移包括确定所述客户机时钟以比所述主机时钟高的频率运行。
16.如权利要求13所述的处理器可读媒体,还具有被配置成用来基于缓冲区丰度水平的变化速率计算时钟漂移量的处理器可执行指令。
17.如权利要求16所述的处理器可读媒体,其特征在于,所述时钟漂移量根据以下等式来计算ch-cc=ft-f0t*dcp]]>其中所述时钟漂移量等于ch-cc;ch是主机时钟的频率;cc是客户机时钟的频率;dpc是以比特每秒为单位的所述主设备上的指定的数据产生速率;f0是在时间0处的缓冲区丰度水平;ft是在时间t处的缓冲区丰度水平。
18.一种系统,包括客户机设备,被配置成用于接收来自主设备的媒体内容,并用于回放所述媒体内容;所述客户机设备上的缓冲区监视器,用于监视客户机缓冲区并产生指示所述客户机缓冲区中数据量的缓冲区丰度报告;以及时钟漂移检测和复原模块,被配置成从所述缓冲区丰度报告确定在主机时钟和客户机时钟之间是否出现时钟漂移。
19.如权利要求18所述的系统,其特征在于,所述时钟漂移检测和复原模块在所述主设备上被配置成接收来自所述缓冲区监视器的缓冲区丰度报告,并实现校正所述时钟漂移的复原方法。
20.如权利要求18所述的系统,还包括所述主设备上的时钟复原模块,其中所述时钟漂移检测和复原模块还被配置成向所述时钟复原模块发送时钟漂移信息,且所述时钟复原模块被配置成实现校正所述时钟漂移的复原方法。
全文摘要
一种数字媒体系统使用客户机缓冲区丰度报告来检测传送流媒体内容的主/源设备上的时钟和接收流媒体内容的客户机回放设备上的时钟之间的时钟漂移。该系统提供在流媒体内容回放期间回放中断的减少,以及由主/源设备编码的”实况”内容实际上可体验为通过客户机设备上回放的“实况”内容的更大可能性。
文档编号H04L29/00GK1825955SQ200610004359
公开日2006年8月30日 申请日期2006年1月25日 优先权日2005年2月11日
发明者G·维迪, J·A·戴维斯, T·鲍拉 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1