专利名称:用于支持按需电视应用的节目预编程的制作方法
技术领域:
本发明涉及在一个中央电视节目服务器中对按需暂停—恢复的支持。
暂停—恢复的特征是在VCR是最常用的操作之一。最近,发展多媒体服务器来支持按需电视节目应用(VOD)变得非常流行。在一个VOD环境中,常常有被许多观看者请求的热门电视节目。每个观看者对在任何时候单独暂停电视节目并在随后恢复观看的需求,会在每个播放的成批观看者中导致麻烦。
在一个现有的、支持按需暂停—恢复方法中,对每个观看者的电视节目请求提供一个电视节目流。对每个多媒体服务器,对其可支持的盘有一个最大的电视节目流数。该上限将被称为NMAX。这样,上面描述的方法仅能支持NMAX个观看者。
在对暂停—恢复问题的另一个现有方法中,将用于“热门”(流行)的电影的电视节目流编程使它们以非常短的间隔放送。在收到一个观众的一个恢复命令(在收到一个暂停后),服务器给该观众分配一个用于观看已编程将在不久的将来达到适当恢复点的该热门电影的那些电视节目流中的其中一个节目流。这样一个系统的一个问题是,观看者在电影能从其被观看者暂停之点观看之前,必须等待直到一个节目流到达适当的恢复点。
本发明的一个目的是对大于NMAX的数目的观看者提供暂停并很快恢复。
根据本发明的一个实施例,提供一个在能使多个用户分享一个公用数目流类型的一种按需电视节目服务中支持暂停恢复的系统和方法,当一个电视节目服务器接收到一个来自用户之一对于播放一个特殊电视节目的请求时,它识别并保留一个预编节目流。该预编节目流是在一个预定的时间周期后编程为可提供的另一个电视节目流。当该电视节目进行时,一个电视节目的公共数据流同时从电视节目服务器传送到在观看者所在的接收设备。公共数据流的传送使得该特殊电视节目在观看者的接收设备上播放。当电视节目服务器接收到一个来自观看者的暂停请求和随后的恢复请求时,它通过预编节目流而不是公共数据流来传送电视节目。
在一个优选的实施例中,使用“后备”(look aside)缓冲编程的“预编节目”流来支持一个大于NMAX的观看者。这个系统避免需要为每个观看者备置一个含有实际电视节目容量的磁盘。
如果可提供一个存储了t播放时间单位的缓冲器,则只要在t时间单位内有另一个流成为可提供时,就可以使两个观看者享用相同的电视节目流。这样至少对t单位时间,消除了对一个实际容量的需求。预编程给观看者后备了一个目前正被为另一个播放所使用的预编节目流,所以他可以在任何时间暂停和恢复。在预编节目流成为可提供前,暂停和恢复播放是由原始流通过缓冲所错过的内容来支持的。如果没有足够的缓冲器空间来支持该预编程,则使用一个被保留的流。
一个保留的流是服务器的另一种没使用的流容量。当分配了一个保留流,则多媒体系统的可用的流容量减一。使用一个保留流,可使一个与其它观看者一起享用一个公用电视节目流的观看者在任何时候暂停。当观看者恢复时,保留流变成了观看者观看的激活流。
当播放相关的预编节目流的电视节目完成时,如果能找到另一个将在t单位时间内完成的播放或保留的流,则能够指定一个新的预编节目流,并且该完成的预编节目流可用于编程给其它的观看者。所以一个观看者在播放期间可由一列不同的预编节目流来支持。
这样,每个观看者由播放电视节目的实际流、一些预编节目流或者一个保留流之一来支持。对于一个给定的播放,每个实际流或者保留流能够支持另一个播放的一个预编节目流。由于一个预编节目流的观看者可能暂停而使得实际完成时间不能确定,从而附加一定程度的复杂性。为了克服这个问题,则一但选择一个流为先行预编节目流,就不允许暂停。代之的是,当观看者暂停时,缓存该流。然后,当观看者恢复时,他可从缓冲器观看该电视节目。一但观看者能从缓冲器得到电视节目的剩余部分,将没有对电视节目的进一步的流需求。在观看完成以前,观看者的缓冲器的内容不被释放。
图1,是一个多媒体服务器的框图;图2,是(后备)缓冲器状态的框图;图3,是流状态表;图4,是一个对于电视节目请求处理例子的时间线;图5,是图1中根据本发明的一个实施例的预编节目程序的总流程图;图6a和6b是一个预编节目程序任务的详细图;图7是一个暂停操作的详细流程图8是一个恢复操作的详细流程图;图9是一个流完成操作的详细流程图;图10是一个观看完成操作的详细流程图;图11是一个预编节目流转换过程的详细流程图。
在多于一个图中显示的相同标记数字表示相同的元素。
图1为一个根据本发明的一个实施例的按需电视系统的方框图。在一个按需电视系统中,用户1通过通信网络3从一个电视服务器2提出请求。电影(电视节目)被存储在盘5上。该服务器2包括用于电影的暂存存储器的存储器缓冲器6,用于处理短的暂停请求。该电视节目服务器2还包括一个在主控程序(MCP)的控制下执行任务的处理器7(CPU)。电视节目服务器可配置成使具有足够能力来支持电视节目流数的处理器。例如,一个小容量的电视节目服务器可用一个RISC system/6000(RS/6000)系统来构成,而一个大容量服务器可用一个ES/9000系统来构成(两个系统均可从纽约、阿芒克的国际商用机器公司得到)。通信网络3可以为例如一个光纤网络。用户1通过一个能够使他们通过网络3向服务器2发出命令的顶置盒得到支持。
根据本发明的一个实施例,任务之一就是要实现预编节目的编程机9,用户能够对电影的开始、停止、暂停和恢复提出请求。单独以用户请求由一个用户编程机40来处理。在允许每个用户单独地暂停和恢复的同时,预编节目编程机9试图通过结合时间上靠在一起的相同电影的请求,来保留服务器的资源,以允许每个用户分别中暂停和恢复。
预编节目编程机9保存有一个跟踪存储器缓冲器6的使用的缓冲器状态表4。现在参考图2对存储器缓冲器状态进行描述。每个缓冲器块可以为三种状态之一保留,使用和可用。后面还进行详细解释,在电视节目的编程中,缓冲器可以处于一种“保留”状态以便支持暂停—恢复。当一个电视节目流存入其中时,一个“保留”缓冲器变成一个激活(使用)状态。既不是“保留”也不是“激活”状态的缓冲器是用于将来分配的。
预编节目编程机还保存了一个流状态表11,现在参考图3对流状态表进行描述。多媒体服务器仅支持一个固定数目的流。一个流如果支特一个实际演示的电视节目,则被认为是“激活”的。如果一个流被保存以便支持同时观看者的暂停—恢复时,一个流被认为是“保留”的。如果一个流即不是“激活”也不是“保留”的,则可以用于将来的演播。
图3图示了一种登录的方法。对每个流,记录激活、保留或均非的状态。在激活域301和保留域302两者中的记录状态的不存在(均非)表示该流可提供。对于一个保留的流,其相应于播放的电视节目的激活流的信息,也记录在在“保留”域302中。如果给一个观众在另一个由一个激活流服务提供的演播中,将一个流指定为预编节目流时,识别其激活流的信息被提供在“预编节目”域304中。播放在激活流上的电视节目的识别(ID)被记录在电视节目ID域306中。
例如,在图4中,假设在时间t0时对于电视节目A的三个请求得到编程,而在这时没有其它激活流,则选择流1作为激活流,而流2和流3选作流1的同时观看者的保留流。(见图3中流2和流3的保留域)。在时间t1,两个对于电视节目B的请求进入编程。假设流1在T时间单位内完成,并且有足够的缓冲器来支持作为一个预编节目流的流1。我们可以选择流4作为激活流并且用流1作为预编节目流。(见图3中在流1的预编节目域。)注意,第二组观看者(电视节目B的)并不足现在流1的观看者。他们仅仅使用流1(其正在执行电视节目A)作为一个预编节目流来支持暂停—恢复操作。因此,流1的观看者总是指第一组正在观看电视节目A的观看者。如果对电视节目C的另外四个请求随后立即进入编程,如果有足够的缓冲器,使用流5作为激活流而流2和流3作为预编节目流。另外,需将流6作为保留流。(见图3中流2的先行域和流6的保留域。)图3表示3在这时的流状态,有九个观看者占用了六个流的容量。
假设多媒体系统具有一个用于后备目的、容量为B的缓冲器,且流容量为NMAX。令NRESRV为系统中保存流的数目,而NACT为播放电视节目的激活流的数目。令BRESRV为保留的后备缓冲器的数目而令BUSE为正在使用的后备缓冲器的数目,我们还设定播放的每个单位时间需要K位数据。
每次选择一个用于播放的电视节目,如果NW个用户等待该电视节目,下面的过程决定了最大的观看者的数目,C,其可被编程以允许暂停—恢复。该过程使用了尽可能多的给出缓冲器约束的预编节目流,并由保留流支持的剩余观看者,具体说来1.首先决定通过使用当前缓冲器来支持的附加预编节目流的最大数目,将其称作NLAHEAD并且是下面两个量的最小值·在下面的假设设有暂停的T时间单位内完成的电视节目流的数目,其中t是一个从可用的缓冲器空间的数量来决定的预先决定的操作参数,以便支持暂停—恢复。这些是潜在的预编节目流。
·可由缓冲器的目前状态支持的附加预编节目流的数目。让我们对潜在预编节目流根据其所剩的要完成的时间进行排列,假设没有暂停。从一个缓冲观点,可根据其顺序选择预编节目流,即根据其完成时间选择预编节目流。假设第i个潜在预编节目流具有一个剩余的完成时间tαi,如果被选中,它需要一个大小为tRαi来保留。如果目前的潜在先行流的观看者进入一个暂停状态,需要这个缓冲器数量来保存要完成的电视节目内容。(它是足够大的来将剩余的播出流进缓冲器,即使是在最坏的立即暂停的情况下也是如此。)如果选择了X个预编节目流,则需要一个Xtkα量的附加保留缓冲器来处理与其相关的观看者的暂停,其中αt为用于第一个X个潜在预编节目流所剩的需要完成的平均时间,即α=(Σi=1Xαi)/X]]>另外,需要保留tk量的缓冲器空间,以便在预编节目流变为可用以前支持新的观看者组(目前等待进入编程)的短时暂停。因此,由于选择了X个预编节目流所需要保留的缓冲器的总量为(tk+xtkα)。这样,从缓冲器的视点来看,最大的可支持的预编节目流是最大的X值,这样就满足了缓冲器约束。
2.如果这个最大数(X)大于NW-1,所有这些请求的观看者可与一个用于播放电视节目的实时流和NW-1个预编节目流一起进入编程。在这种情况下,C等NW。
3.否则,所使用的预编节目流的数目为NLAHEAD。我们需要获得一些流容量来处于保留状态,以便处理没有被预编节目流支持的附加观看者。这个可获得的保留流必须小于可用的流数NAVAIL,它等于NMAX-(NRESRV+NACT)。如果NW-NLAHEAD-1或更多的流可被置于保留状态,则所有的请求的观看者仍可安排,即C等于NW。否贝,C将等于NAVAIL+NLAHEAD。
令D为所用的先行流的数目,然后我们令BRESRV等于tk+DKα+BRESV而且NACT加1。如果使用了保留流,NRESRV也相应增加。注意,当保留的缓冲器实际被使用以支持暂停行为时,BUSE将被增加。(BRESRV将减小同样的数量)。这个缓冲器在不需要时将被释放。
在步骤1中缓冲器约束可表示为 (tk+xtkα+BRESRV)<(B-BUSE),其中(theta)是一个调整参数。使 等于1保证了暂停的观看者总是能够不延迟的返回。实际上,并不是所有观看者打算在同一时间内暂停,所以 在仍然保持很低的返回的观看者需要等待的可能性的同时,被置成一个低值。同样地,NAVAIL可被重定义为NMAX-( NRESRV+NACT),其中 是另一个调整参数。注意,在保证无延迟恢复的情况下, 置为1。
所分配的预编节目流可被延迟。对于一个附加 tk量的缓冲器可在下个t时间单位内被保留,先行流随后可允许使用t时间单位。这个规则可重复施加。
当一个被指定为预编节目流的流完成时,如果能找到另一个预编节目流来替换它(即在t单位时间内完成),新的观看者的请求可入编程来使用新的可用的流容量。否则它变成一个保留的流。如果一个预编节目流在t+W单位时间后变成可用的,则保留的流可在W单位时间后由该预编节目流替换。然后其进入编程用于其它观看。
另一种改善容量的优化方法是允许一个恢复流来与一个随后播放的实时流合并。仍然象前面一样需要一个合适的预编节目流来在将来支持附加的暂停。
现在参考图5,浏览一下根据本发明的一个实施例的编程方法的流程图。在步骤10中表示电视节目请求的到达。在步骤15中,检查可用的流容量。如果没有可用的流容量,执行步骤20,在这里来到的电视节目请求进入一个请求等待排队。否则,如果有可用的流容量,执行步骤25-40。在步骤25中,电视节目请求或请求进入编程。编程处理的细节在图3中给出。当一个电视节目列入编程,每个观看者可以在任何需要的时间暂停并且随后恢复,如在步骤30中所指示的暂停操作和步骤35的恢复操作。用于支持暂停和恢复操作的登记的细节在图4和图5中相应在给出。步骤40表示了一个请求者观看的结束。与观看结束相关的操作的细节在图6中给出。
现在参考图6a和图6b对进程操作的细节进行更详细的描述。在步骤50中,假设每次选中一个用于播放的电影时,有NW个用户等待该电影。在步骤55中,决定可能标记为预编节目流的可用流的数目。这就是还没有标记为预编节目流的流的数目,假设没有暂停请求,它能在下面t单位时间内完成。在步骤60中,决定了可用于支持给出的缓冲器大小的最大预编节目流的(NLAHEAD)的数目。
在步骤65中,NLADHEAD与NW-1比较。如果NLAHEAD大于NW-1,所有请求者可享用一个电视节目流,其中另一个NW个预编节目流用于后备于暂停要求,如步骤70中所指示的。在步骤75中,用于支持先行进程的缓冲器数目被置于保留状态。
返回到步骤65,如果可用于支持给出的缓冲区大小的最大预编节目流的数目小于NW-1,′则没有足够的预编节目流,因此,需要将一些电视节目流容量置成保留状态。步骤80决定了目前可提供(即既不播放也不保留的)电视节目流的数目。在步骤85中,将可提供电视节目流的数目与所需要的用于支持未完的电视节目观看者的进行比较。如果有足够的可用电视节目流,则执行步骤90和95。否则执行步骤100和105。在步骤90和100中,适当数目的请求者进入编程观看相应的电视节目播出。在步骤95和105中,适当数目的电视节目流被相应地置于保留状态。在步骤110中,将用于支持预编节目程序所需量的缓冲器空间置于保留状态。在步骤115和120中,完成了在编程上的登记。
现在参考图7对暂停操作进行详细描述。步骤130表示在电视节目服务器上暂停请求的到达。在步骤135中,检查是否观看者由一个预编节目流支持。如果观看者被预编节目流支持,如步骤140所示,则使用保留缓冲器以便临时缓冲用于暂停观看者的遗漏内容到t单位时间。在步骤145中,检查暂停周期。如果超过限制,如果没有其它观看者使用缓冲器,则在步骤150释放该缓冲器。
在步骤135中,如果观看者不能被一个预编节目流支持,则在步骤155中进一步检查是否该支持流被标记为一个用于其它观看者的预编节目流。如果为真,在步骤160中,则电视节目流将继续将该电视节目流进缓冲器中,一直到完成。在图9中解释了在步骤170中所示的流完成操作。在步骤155中,如果没有将流标记为先行,则如步骤175中所示的那样停止。
现在参考图8,检查一下恢复操作的细节。在步骤200中,检查恢复点是否在缓冲器中可用。如果这样,则如步骤205中所示,观看者从缓冲器中恢复观看。否则,如步骤210中所示,将一个保留流置成一个实际播放流,来支持恢复的观看者。
现在参考图9,详细描述流完成操作。在步骤220中,当一个电视节目流完成时,进程器决定该流或任何其它相关的保留流是否被标记为一个预编节目流。如步骤230所示,对每个标记为预编节目流的流,进程器决定是否另一个流可被识别并转成一个预编节目流。在图8中对其详细表述。如果另一个流可被转换到一个预编节目流,执行步骤235和240。在步骤235中,该流表示为一个新的预编节目流来替换完成的电视节目流,而在步骤240中,完成流作为一个可用,的流释放,而且如果有等待电视节目的请求,则可以开始排列新的电视节目请求的处理(在图6中描述了流的进程处理)。在步骤230中,如果没有其它的流可被转成一个预编节目流,则执行步骤245和250,在步骤245中,将完成流置成一个保留流,而在步骤250中作适当登录。
现在参考图10,对观看完成的操作进行详细描述。注意,观看的完成不能晚于流的完成,这是由于在暂停期间,电视节目流可以继续并被存进缓冲器中。在步骤280中,如果没有被另外的观看者所要,所有使用或保留的用于完成观看者的缓冲器将被释放。在步骤285中,同时检测流的完成,如果是的话,执行图6中描述的适当的行动。
最后参考图11,将对转换预编节目流的过程进行详细描述。图8是图6的步骤230的更详细的流程图。在步骤300中,设ε(epsilon)为预编节目流到实际播放流的迟滞。在步骤305中,检查epsilon的值。如果不等于零,则在步骤310中,检查可用的缓冲器的量。如果在一些附加的分配( tkε量的)后有足够的缓冲器(大于BMIN),执行步骤315和320。在步骤315中,生成附加缓冲器分配,而在步骤320中将先行间隔设置为t。在步骤335中,假设没有暂停发生,检查是否仍有任何没有标记成可在随后的t时间单位内结束的一个预编节目流。(如果是的话,在步骤235中,选择没有暂停而恢复的最早结束的流,来作为先行流转换。)回到步骤310,如果在一些附加分配( tkε量的)后没有足够的缓冲器(小于BMIN),没有附加的缓冲器被保留并且执行步骤325和335。在步骤325中,先行间隔设置为t-ε。
回到步骤305,如果ε的值等于零,执行步骤330和335。在步骤330中,先行间隔设置为t。
现在参考实施例,已对本发明进行了描述,本领域中的技术人员可对其进行各种改变和改进。因此可理解为,作为例子提供的是较好的实施例,但并不是一个限制。本发明的范围由附加的权利要求来限定。
权利要求
1.一种支持用于按需电视节目系统的暂停—恢复的方法,这种系统能使多个观看者享用一个公共数据流,包括如下步骤从观看者之一处接收一个用于播放一个特殊电视节目的播出请求;响应播放请求,识别并保留一个预编节目流,该预编节目流是另一个进入编程并在一个预定时间周期后变为可用的电视节目流;同时将普通数据流从一个电视节目服务器传送到在多个观看者处的接收设备,数据流的传送使得特殊电视节目在接收设备上播出;为响应恢复请求,通过预编节目流而不是普通数据流的方法来传送特殊的电视节目。
2.如权利要求1的方法,其特征在于,当一个周期时间流逝而没有观看者提出一个暂停请求后,识别一个不同的预编节目流。
3.如权利要求1的方法,其特征在于,为响应播放请求,给每一个观看者分配一个保留流,当预编节目流被识别时释放保留流。
4.如权利要求1的方法,其特征在于,给每个观看者分配足够的缓冲器空间,将普通电视节目流缓存一个预定的时间周期。
5.如权利要求1的方法,其特征在于,为响应来自观看者的暂停请求,还包括另外的缓存电视节目数据流的步骤,由此增加了由一个给定流容量支持的观看者的数量。
6.一种对于一个按需电视节目系统支持暂停—恢复的系统,它可使多个观看者享用一个公共数据流,包括如下步骤用于接收来自一个观看者对一个特殊电视节目的播出请求的接收装置;连接到接收装置并响应播出请求的接收的识别装置,用于识别并分配一个预编节目流,该预编节目流是另一个进入进程并在一个预定时间周期后变为可用的电视节目流;用于同时将普通数据流从一个电视节目服务器传送到在多个观看者处的接收设备的传送设备,数据流的传送使得特殊电视节目在接收设备上播放;用于接收来自一个观看者的一个暂停请求和一个随后的恢复请求的暂停/恢复装置;替换装置,用于响应恢复请求,通过先行流而不是普通数据流来传送特殊的电视节目。
7.如权利要求6的系统,其特征在于,当一个周期时间流逝而没有观看者提出一个暂停请求后,识别一个不同的预编节目流。
8.如权利要求6的系统,其特征在于,给观看者分配一个保留流,当识别了预编节目流时释放该保留流。
9.如权利要求6的系统,替换装置不是通过预编节目流的方式来传送特殊的电视节目,除非恢复请求以大于一个预定的从暂停请求开始的时间周期被接收,另外还包括缓冲器装置,用于响应请停请求,将普通电视节目流缓存预定的时间周期,还包括缓冲器存取装置,用于从缓冲器装置服务一个观看者,如果恢复请求在预定的周期时间内被接收。
10.一种支持用于按需电视节目服务的方法,它能使多个观看者享用一个普通数据流,包括如下步骤从一个观看者处接收一个用于播一个特殊电视节目的播出请求;同时将普通数据流从一个电视节目服务器传送到在多个观看者处的接收设备,数据流的传送使得特殊电视节目在接收设备上播出;在电视节目服务器上接收一个来自一个观看者的暂停请求和随后的恢复请求;为响应恢复请求,通过开始传送一个承载特殊的交替流而不是普通数据流,来为一个观看者播放特殊的电视节目。
11.如权利要求10的方法,其特征在于,特殊的电视节目在一点上开始,从该点一个观看者提出暂停请求。
12.如权利要求10的方法,其特征在于,还包括为响应来自观看者的暂停请求而缓存电视节目数据流的步骤,由此而增加了由一个给定的流容量支持的观看者的数目。
13.如权利要求10的方法,其特征在于,还包括为响应播放请求而识别并分配一个预编节目流的步骤,该预编节目流是另一个进入进程并在一个预定时间周期后变成可用的电视节目流,并且使用该先行流作为替换流。
14.如权利要求10的方法,其特征在于,该替换是一个从电视节目服务器的保留容量中分配的保留流。
15.如权利要求10的方法,其特征在于,还包括分配缓冲器空间的步骤,用以将普通电视节目流缓存一个预定的时间周期,而且当一个观看者在预定的时间周期前恢复时,由缓冲器空间而不是由交替流的方式来为一个观看者提供特殊的电视节目。
全文摘要
一种支持按需电视节目服务中暂停-恢复的系统和方法,它能使多个观看者享用一个公共数流。当一个电视节目服务器接收到一个来自一个观看者对播放一个特殊电视节目的播放请求时,识别并保留一个预编节目流。该预编节目流是另一个进入编程并在一个预定时间周期后变为可用的电视节目流。当电视节目开始时,一个用于电视节目的普通数据流同时从电视节目服务器传送到在观看者处的接收设备。
文档编号H04N7/173GK1115952SQ9510323
公开日1996年1月31日 申请日期1995年2月28日 优先权日1994年3月15日
发明者J·L·沃尔夫, P·S·L·余 申请人:国际商业机器公司