专利名称:流式媒体的制作方法
技术领域:
本发明涉及通过空中接口从流式服务器向移动客户机装置流动媒体。
背景技术:
分组交换流式业务PSS当前被3GPP(第三代合作项目)标准化用于移动环境。能够流动媒体(流动视频和/或音频)的通信系统的一个实例在图1被示出。该系统包括流式服务器111,其与IP网(网际协议)104耦接。IP网104例如可以是互联网或业务提供者运营商的内联网(属于运营商领域的内联网网络)。IP网104经由Gi接口与移动通信网络的核心网103耦接。移动通信网络也具有与核心网103耦接的无线接入网(RAN)102。无线接入网102提供给移动通信装置101通过空中接口接入该移动通信网络。所述接入可以通过电路交换方式(电路交换话音或数据呼叫)或分组交换方式或通过二者提供。在下文中,GPRS(通用分组无线电业务)被用作通过空中接口通信的分组交换方式的一个实例。关于GPRS,一般术语无线接入网(RAN)被认为包括基站(收发器)(BS)和基站控制器(BSC)。
在流动媒体时,‘活动图像’(即视频)或声音(即音频)序列或‘活动图像’与声音一起(即多媒体)的序列以压缩形式被从流式服务器11 1发送到移动通信装置101(下文中称为客户机装置101)。与整个媒体文件必须在其能被播放之前到达客户的技术相比,流式技术使得媒体(视频和/或音频)能从流式服务器111以连续方式发送到客户机装置101,并能在媒体到达客户时播放媒体。
当媒体在诸如图1所提出的系统的蜂窝移动通信系统中流动时,出现了该移动环境所特有的新问题。这些问题大部分是因为移动系统的不同约束导致。一种这样的问题出现在图2所提出的小区再选(即切换)情形中。
在图2中,无线接入网102的第一基站BS1服务第一小区201的区域,而无线接入网102的第二基站BS2服务第二小区202的区域。在小区再选之前,客户机装置101由第一基站BS1服务,即客户机装置101与第一基站BS1具有有效无线电链路。这种情形在图2的左侧被示出。在小区再选之后,客户机装置101由第二基站BS2服务。由虚线所示的与第一基站BS1的无线电链路被丢弃。该情形在图2的右侧被示出。
小区再选(CR)可以划分为三个时间周期a)CR前周期b)CR周期c)CR后周期在CR前周期期间,在第一小区的接收信号质量削弱,且客户机装置101启动小区再选信令。客户机装置101在该周期期间能经由第一基站BS1接收流式媒体。在CR周期期间,执行实际的小区再选。客户机装置101在该周期期间不能接收流式媒体。在CR后周期期间,客户机装置101能经由第二基站BS2接收流式媒体。
小区再选可能引起业务的长时间中断。例如,在GPRS被用作无线电承载的情况下的小区再选(CR周期)可能要花费多达30-40秒。这将影响正在进行的流式会话。例如,携带流式媒体的分组的一部分可能被丢失,和/或可能在客户机装置101发送播放媒体的冻结。如果流式媒体包含视频流,则冻结意味着,在流式媒体被再次接收并能被再次播放之前,静止图像将在客户机装置显示器上出现并持续一段时间周期。如果流式媒体包含音频媒体,则冻结意味着,在CR周期结束之前不播放声音(即无声)。
因此,需要找到用于降低小区再选对正在进行的流式会话的影响的适当方法。
发明内容
根据本发明的第一方面,提供一种用于通过空中接口从流式服务器向移动客户机装置流动媒体的方法,其特征在于该方法包括请求所述流式服务器发送所述移动客户机装置因小区再选而无法接收的流式媒体。
请求所述流式服务器发送流式媒体的请求可以在所述小区再选之前或之后从所述移动客户机装置发送到所述流式服务器。
所述请求并不局限于请求只发送所述移动客户机装置因小区再选(在小区再选周期期间)而无法接收的媒体。在一个实施例中,该请求可以被这样解释实际请求的是重发未被接收的媒体内容的一部分,以及发送该媒体内容的任何剩余部分。
术语媒体被认为指视频或音频或另一媒体,如静止图像,或它们的任意组合,即多媒体。
优选地,响应于该小区再选发送一个重发请求。该重发请求优选为在移动客户机装置应用和流式服务器应用之间发送的应用层请求。
在一个优选实施例中,流式服务器被请求以增大的速率发送一段确定的时间周期,以便在客户机装置增大临时存储器(如缓存器)的充满度,流式媒体在回放之前被临时存储在该临时存储器。优选地,这是通过请求流式服务器从发送较高比特率媒体流切换到以增大速率发送较低比特率媒体流实现的。该较高和较低比特率流优选由多速率编解码器提供。
根据本发明的第二方面,提供一种用于通过空中接口从流式服务器接收流式媒体的移动客户机装置,该移动客户机装置包括用于请求所述流式服务器发送所述移动客户机装置因小区再选而无法接收的流式媒体的装置。
优选地,该空中接口将所述移动客户机装置耦接到移动通信网络。该移动客户机装置优选地包括蜂窝移动电话。
根据本发明的第三方面,提供一种用于通过空中接口向移动客户机装置发送流式媒体的流式服务器,该流式服务器包括
用于请求所述流式服务器发送所述移动客户机装置因小区再选而无法接收的流式媒体的装置;和用于按所述接收的请求操作的装置。
根据本发明的第四方面,提供一种包含流式服务器和移动客户机装置的系统,用于通过空中接口从所述流式服务器向所述移动客户机装置流动媒体,该系统在所述移动客户机装置包括用于请求所述流式服务器发送所述移动客户机装置因小区再选而无法接收的流式媒体的装置,该系统在所述流式服务器进一步包括用于接收所述请求的装置;和用于按所述接收的请求操作的装置。
根据本发明的第五方面,提供一种可在移动客户机装置中执行的计算机程序,该计算机程序包括用于使所述移动客户机装置请求所述流式服务器发送所述移动客户机装置因小区再选而无法接收的流式媒体的程序代码。
根据本发明的第六方面,提供一种可在流式服务器中执行的计算机程序,该计算机程序包括用于使所述流式服务器接收一个请求,请求所述流式服务器发送所述移动客户机装置因小区再选而无法接收的流式媒体的程序代码;和用于按照所述接收的请求操作的程序代码。
从属权利要求包含本发明的优选实施例。在从属权利要求中包含的涉及本发明的一个特定方面的主题也可应用于本发明的其他方面。
现在参照附图通过举例描述本发明的实施例,其中图1示出了能流动媒体的通信系统;图2示出了图1的通信系统中的小区再选情形;图3示出了在客户机装置缓存器比小区再选所花费的时间短的情形中的客户机装置缓存器;
图4示出了在客户机装置缓存器比小区再选所花费的时间长的情形中的客户机装置缓存器;图5示出了在图4之后的情形的另一种例示;图6示出了在本发明的优选实施例中的优选动作;图7示出了本发明的一个优选实施例;图8示出了本发明的一个优选实施例;图9示出了根据本发明的一个优选实施例的客户机装置;图10示出了根据本发明的一个优选实施例的流式服务器;和图11示出了根据本发明的优选实施例发送消息的三种方式。
具体实施例方式
图1所示的系统也可用于本发明的优选实施例中(同样适用于图2)。因此,该系统包括与IP网络104耦接的流式服务器111。IP网络104可以是,例如,互联网或服务提供者运营商的内联网。IP网络104经由Gi接口与移动通信网络的核心网103耦接。移动通信网络还具有与核心网103耦接的无线接入网(RAN)102。无线接入网102提供给移动通信装置101通过空中接口接入该移动通信网络。所述接入可通过电路交换方式(电路交换话音或数据呼叫)或分组交换方式或通过二者提供。在下文中,GPRS(通用分组无线电业务)被用作通过空中接口通信的分组交换方式的一个实例。
为了更好地理解本发明的优选实施例,我们考虑以下实例。
在该实例中,移动通信装置101(再次称为客户机装置101)在由第一基站BS1服务时,已经与流式服务器111建立了流式会话。在该实例中以及在下面的说明中,主要考虑视频流式会话。然而,相应的考虑适用于音频流式会话以及多媒体(例如,视频加音频)流式会话。
RTSP(实时流式协议)协议在流式会话建立时使用。一旦已经建立了会话,可以根据RTP(实时传输协议)或另一协议执行该流动本身(即可以发送媒体流)。然而,如果期望对所建立的绘画中进行改变,这将通过使用RTSP被再次执行。
在所建立的流式会话之初,所接收的以分组(或帧)发送的流式媒体(媒体流)在客户机装置处的缓存器(下文中称为客户机装置缓存器)中被缓存(即被临时存储)。当客户机装置缓存器装满时,在缓存器的一端开始播放(回放)流式媒体,同时缓存器在另一端被连续填充接收的媒体流。因此,在系统的正常操作期间缓存器将保持几乎是满的。
客户机装置现在经历从第一小区201到第二小区202的小区再选(图2)。应指出,尽管在图2中无线接入网(RAN)102只是通过单片云示意,其可包括不同的无线接入网。其可包括GPRS(只是GPRS)RAN,3G(第三代)RAN或它们的组合。第一小区201(由基站BS1服务)和第二小区202(由基站BS2服务)因此可以是,例如,GPRS RAN或3G RAN的小区。因此,小区再选(切换)可以发生在,例如,属于GPRS RAN的基站之间,属于3G RAN的基站之间,或在属于GPRS RAN的基站和属于3G RAN的基站之间。
客户机装置101在CR周期期间不能接收流式媒体。因此,当CR周期开始时,客户机装置缓存器开始排空,因为在停止连续填充的同时缓存器内容被进一步播放。根据客户机装置缓存器的大小,可以确定两种不同情形i)客户机装置缓存器(在时间上)比小区再选所花费的时间短,即排空整个客户机装置缓存器的时间比CR周期短,ii)客户机装置缓存器(在时间上)比小区再选所花费的时间长,即排空整个客户机装置缓存器的时间比CR周期长。
在第一种情形下(图3),缓存器在CR周期期间将变成全空。由于缓存器变空,客户机装置101不再有媒体播放。因此,客户机装置101开始再缓存。再缓存可以在CR后周期期间启动。为了使再缓存启动,客户机装置101可以使用RTSP PAUSE/PLAY(暂停/播放)方法。在该方法中,客户机装置101首先发送RTSP PAUSE(暂停)消息到流式服务器111。该PAUSE消息将使服务器111暂停发送媒体流。随后,客户机装置101发送一个RTSP PLAY(播放)消息,该消息请求流式服务器111开始从最后接收的帧向前重发该流式媒体。再缓存在客户再次开始接收该流式媒体时启动。当客户机装置缓存器装满时,从最后接收的帧向前重新开始播放该流式媒体。同时,最后接收的帧作为静止图像显示在客户机装置显示器上。然而,尽管显示静止图像有缺陷,没有分组会实际上丢失,因为在CR周期期间在客户机装置未被接收的媒体流在CR周期之后被从服务器111重发到客户机装置101。
在第二种情形下(图4),缓存器的整个内容在CR周期期间没有被播放。因此,缓存器在CR周期期间只是变成部分空,即当CR周期结束时在缓存器中仍有流式媒体(DATA)。在CR后周期期间(在CR周期之后),在缓存器的一端进一步继续播放在CR周期之前存储在缓存器中的流式媒体(DATA*),同时另一端填充在CR周期之后接收的流式媒体(即DATA**)。如果什么都不做,则DATA**将最终结束,并且将以数据DATA**的第一帧继续播放。不显示静止图像。然而,DATA**的第一帧不是在DATA*的最后一帧之后正好就应播放的帧。由于客户机装置101在CR周期期间不能接收流式媒体,其甚至未曾接收到在DATA*的最后一帧之后应显示的帧。在缓存的媒体中存在一个时间间隙。结果,客户机装置101将跳过显示因小区再选而不能被接收的流式媒体(视频)序列。对于音频流,同样的效果出现,即客户机装置101将跳过播放不能被接收的声音。
借助图5进一步说明第二种情形。应指出,图5仅示出一种非常简化的情况。在图5中,认为时间从左至右流动。服务器发送的流式媒体序列包括视频帧A-S。这些帧在客户机装置被接收,并在播放之前被缓存。当缓存器满时(即当帧A-G已经被存储到缓存器中时)从帧A开始的媒体播放启动,这些帧(活动视频图片)随后在客户机装置显示器上被显示。为清晰起见,帧G之后的帧的缓存没有在图5中示出。
在CR周期期间,从服务器到客户机装置的媒体流动是不可能的。因此,客户机装置没有接收帧L-O。否则,媒体流在客户机装置被完全接收。由于CR周期比缓存器大小短,在CR周期之前最后接收的帧(帧K)的显示将在CR周期之后首先接收的帧(帧P)的显示之前。视频帧L-O根本没有示出。对于音频流,同样的效果发生,即用户听到暂停和声音中的时间间歇。
存在两种类型的帧 内部帧(intra frames)和交互帧(interframes)。内部帧包含图像的所有必要信息,而交互帧只包含与前一图像相比的变化或预测变化。前一图像可以是内部帧或交互帧。因此,如果帧P是内部帧,所示出的图片只是在时间上从帧K向前绕到帧P。在此情况下,帧L-O不仅仅是显示给用户。但如果帧P是交互帧,则在下一内部帧被接收和播放之前,在所示的(活动)图片中可能出现严重的失真。
图6所示的本发明的优选实施例集中于有关第二种情形的上述问题。在该实施例中,缓存器比CR周期的持续时间长。因此,在CR周期期间缓存器没有变成全空,而只是部分空。应指出,图6只示出了一种非常简化的情况。在图6中,认为时间从左至右流动。服务器发送的流式媒体序列包括帧A-S。这些帧在客户机装置被接收并在播放之前被缓存。在缓存器满时启动从帧A开始的媒体播放,这些帧(活动视频图片)被随后显示在客户机装置显示器上。为清晰起见,帧G之后的帧的缓存没有在图6中示出。在CR周期期间从服务器到客户机装置的媒体流动是不可能的。因此,客户机装置没有接收帧L-O。否则,媒体流在客户机装置被完全接收。
当CR周期结束时,客户机装置确切地知道什么是其在CR周期之前(即在CR前周期期间)接收的最后一帧。在此实施例中是帧K。客户机装置就在CR周期结束后请求流式服务器从最后接收的帧向前开始重发流式媒体。在接收到请求后,流式服务器开始重发该媒体流。要发送的第一帧在这个实施例中为帧L。在CR周期之后但在重发启动之前发送和接收的任何帧(可能是从帧P开始的一些帧)被客户机装置忽略。当在CR周期之前在缓存器中存储的(帧A-K的)流式媒体结束时,该播放以在该CR周期之后接收的重发流式媒体的第一帧(帧L)继续。因此,在所显示的视频图片中将不会对用户出现间断。在图6中,在客户机装置没有被接收的重发视频帧L-O以粗体显示。相应地,对于音频流,流式服务器被请求在客户机装置中已经停止接收的点处开始重发该音频流。在播放中不会出现间断。
实际上,该重发请求可以通过RTSP PAUSE/PLAY方法执行。在该方法中,客户机装置在CR周期已经结束之后向流式服务器发送一个RTSP PAUSE消息。该PAUSE消息将使服务器暂停发送媒体流。然而,在客户机装置接收的流式媒体的播放不会暂停,直到缓存器变空(这不应是这种情况)。随后,客户机装置向流式服务器111发送一个RTSP PLAY消息。该PLAY消息包含关于重发的起始点的信息。在CR周期结束时,客户机装置知道了最后接收的帧的时间。基于此,客户机装置在发送该PLAY消息之前确定该起始点。该PLAY消息使服务器开始重发。
PAUSE消息的一个例子如下PAUSE rtsp//example.com/foo RTSP/1.0CSeq6Session354832该PAUSE消息通知服务器变化来临。随后发送的PLAY消息的一个例子如下PAUSE rtsp//example.com/foo RTSP/1.0CSeq7Session354832Rangenpt=28.00-消息字段“Range(范围)”告知重发的起始点。在此例中,起始点为距离流式媒体序列的开始28秒。对于图6所示的实施例,该点将正好是流式媒体序列中的帧L的时间。
在刚刚描述的实施例中,在CR周期期间丢失的帧(分组)将从服务器重发到客户机装置。而且,由于缓存器的大小比CR周期的持续时间长,在所示的视频图片中不应出现中断,而且用户经验被最大化。
然而,由于情况是在正常流动时间,缓存器的充满度没有改变,因为缓存器的变空(播放)速率与填充速率相同,这可能引起其他问题。在刚刚描述的实施例中,由于前面描述的原因,在小区再选之后,客户机装置缓存器比以前更空。因此,如果例如,在最近的将来要执行新的小区再选,更空的缓存器可能引起在上述第一种情形下讨论的相同缺陷(即客户机装置缓存器比小区再选所花费时间更短的情形)。
本发明的一个优选实施例集中于上述问题。在该实施例中,为了保证所示的视频图片(相应地播放的声音)的平滑性能,客户机装置在CR周期之后,以比排空(播放)更高的速率,被填充一段时间周期。当填充周期结束时缓存器再次填满,并且继续进行缓存器的填充速率与排空速率相同的正常流动。
应指出,通常提高缓存器的充满度需要暂停播放。在当前实施例中,播放不暂停,但缓存器的充满度仍能提高,这是因为有聪明的缓存器管理,其中缓存器在播放期间以比播放速率更高的速率得到填充。
为了不暂停播放同时提高缓存器的充满度,本实施例中的客户机装置请求服务器切换到发送较低比特率流式媒体序列,但在实际发送中使用如前的相同传输比特率(下文中称为原始传输比特率)。为了达到该原始传输比特率,客户机装置请求服务器以一个加速系数加速该较低比特率序列的传输。加速传输比特率使得相比从缓存器读出,更多数据被写入缓存器。因此,缓存器的充满度按期望的那样增大。
换句话说,服务器被要求从发送以第一比特率编码的原始序列切换到发送以比第一比特率低的第二比特率编码的新的对应序列,以及增大该新序列的传输比特率以便达到该原始传输比特率(带宽)。应指出,媒体流被编码(和将被解码)的比特率与传输比特率是一个不同的概念。媒体流已经被编码的比特率对图片质量有影响。如果媒体流已经以更高的比特率被编码,这意味着相比以较低比特率编码,已经有更多比特用于编码。这通常导致更佳的图片质量。另一方面,传输比特率是媒体流被实际发送的比特率,其取决于可用带宽。
切换到发送较低比特率序列和加速传输比特率的请求可通过使用RTSP PAUSE/PLAY方法来传送。当客户机装置在CR后周期期间希望填充客户机装置缓存器时,其首先发送一个PAUSE消息到服务器指示变化来临,该消息对应于在前面的说明中已经提到的消息。其随后产生一个PLAY消息并将其发送到服务器。
这种PLAY消息的例子如下PLAY rtsp//example.com/foo RTSP/1.0CSeq7Session354832Rangenpt=28.00-40.00Bandwidth20000Speed1.5该消息包含两个任选消息字段,即在客户机装置和流式服务器被理解的“Bandwidth(带宽)”和“Speed(速度)”。在标准RFC 2326(实时流式协议)中,这些字段已经被IETE(互联网工程任务组)指定为任选字段。
消息字段“带宽”告知服务器要改变为发送较低比特率序列(这里比特率为20kbps的序列),且消息字段“速度”告知服务器要以一个加速系数(这里1.5)加速发送。消息字段“Range(范围)”告知以时间为单位的流式媒体序列的起始点和停止点(从流式媒体序列的开始计算)。
所示的PLAY消息将适合一个例子,在该例子中,服务器首先以30kbps的原始传输比特率发送30kbps比特率序列,而且服务器为了填充缓存器,被期望切换为发送比特率为20kbps的序列,并且以加速系数1.5加速发送,以在12秒的填充周期期间(即在媒体序列的28和40秒时刻)达到30kbps的原始传输比特率。
如果客户知道了可能的比特率选项(在会话建立期间,例如借助对RTSP DESCRIBE消息的200OK响应,它们通常被从服务器发送到客户),利用以下公式能计算到达原始比特率所需的加速系数 当缓存器充满时,客户机装置向服务器发送另一个RTSP PAUSE和PLAY消息对。PLAY消息的一个例子如下PLAY rtsp//example.com/foo RTSP/1.0CSeq67Session354832Rangenpt=40.00-Bandwidth30000Speed1.0该示例性消息请求服务器从媒体序列的40秒时刻开始(Rangenpt=40.00-),以30 kbps的原始传输比特率(Speed1.0)开始发送该(原始)30kbps比特率媒体序列(Bandwidth30000)。
客户机装置利用以下公式可以计算缓存区填充周期的长度 其中 在这些公式中,LowSeq Time指示在客户机装置中较低比特率序列播放时间的持续时间,BufferSize指示以秒为单位的缓存器大小,而BufferData指示以秒为单位的缓存器中剩余的数据。
缓存器的填充如图7所示。应指出,图7只示出了一种非常简化的情况。例如,所有的延迟被忽略。在图7中,认为时间从左至右流动。可以看出,当CR周期开始时缓存器开始排空。在接收到第一PLAY消息后,服务器切换到发送具有较低比特率(这里20kbps)的媒体序列和以加速系数(这里又是1.5)加速该发送。由于加速系数是1.5,缓存器填充要花费排空周期所持续的时间的两倍。例如,如果排空周期持续25秒,则填充周期借助这个加速系数应为50秒。当缓存器充满时,第二PLAY消息被发送,且服务器切换到发送具有较高比特率(这里30kbps)的原始媒体序列并继续以原始传输比特率发送。
在前面,已经描述,例如,视频流通常包括内部帧和交互帧,其中内部帧为“独立的帧”,包含图像的所有必要信息,而交互帧只包含与前一图像相比的变化或预测变化。在本发明的以下优选实施例中,关于这一点更密切地描述从较低比特率序列切换到原始比特率序列的定时。
在该实施例中,目的是在可能时,记录从较低比特率序列切换到原始比特率序列发生在原始比特率序列的内部帧的点处(或更一般地,在发送被切换的序列的内部帧的点处)的时间。通过这种方式,可以避免媒体(帧)流的预测误差和/或跳跃。图8示意了这个实施例。应指出,图8仅仅示出了一种简化情况。在图8中,认为时间从左至右流动。在该实施例中,从原始比特序列到较低比特率序列的第一切换借助第一PAUSE/PLAY消息对在时间点28秒执行。
如图8所示,在原始比特率序列中内部帧的位置可能不同于较低比特率序列的内部帧的位置。然而,基于完全填满缓存器所需的时间,即“填充周期”,在原始序列中两个相邻内部帧的时间距离,即内部帧速率“IFrameTimeOriginal”,和从原始比特率序列到较低比特率序列的第一切换执行的时间,即“切换时间”,可以计算切换回原始比特率序列的适当时间点。参数“IFrameTimeOriginal”可以在切换到较低比特率序列之前根据原始比特率序列在客户机装置中进行计算。对于切换回原始比特率序列的适当时间点的计算可以利用以下公式执行
在该公式中,“SeqChangeTime”指示切换回原始比特率序列的时间点,而括号指示地板函数(或截尾函数),其将在括号中计算的值的分数部分截去。例如,如果完全填充缓存器所需的时间,即“填充周期”为16秒,第一切换执行的时间,即“切换时间”为28秒,且在原始序列中的两个相邻内部帧之间的时间差,即IFrameTimeOriginal为5秒,则切换回原始比特率序列的时间点为40秒(SeqChangeTime=5*floor((28+16)/5)=40秒)。因此,如图8所示,第二PAUSE/PLAY消息对在时间点40秒被发送。在该实施例中,置于PLAY消息的消息字段“范围”中的起始点和停止点分别为28秒和40秒。
应指出,由于内部帧速率,可能不是在所有情况下都可能完全填满缓存器。例如,在刚刚描述的例子中,要多花4秒来完全填满缓存器。然而,该公式给出了最接近于缓存器填充周期的适当内部帧。
在另一个实施例中,最好是,在CR周期之前的最近接收的帧的时间点处,在较低比特率媒体序列中没有内部帧。在该实施例中,该重发请求的起始点被向后调整了必要数量的帧(或时间),使得在起始点在较低比特率序列中有内部帧。在此情况下,属于起始点后的时间周期的在CR周期之前最近接收的一组帧在客户机装置被忽略,以便保证连续播放。
在本发明的另一个实施例中,不需要刚刚描述的定时方法就可执行两个不同比特率序列之间的切换。在该实施例中,第一切换点(从较高到较低比特率序列)由最近接收的帧直接确定,而第二切换点(从较低到较高比特率序列)由完全填满缓存器所需的时间(“填充周期”)确定。切换点因此能在内部帧或交互帧的点处结束。如果切换点在内部帧(例如P帧)点处结束,在播放的媒体中可能出现小的预测误差,然而,在该实施例中,缓存器能被完全填满。
执行切换的另一种方式是使用所谓的“切换帧”。这些帧是包含不同比特率序列中的对应帧之间的“差别”信息的帧。在该实施例中,借助这些帧利用该差别信息执行这两个序列之间的桥接和切换。
图9示出了根据本发明的优选实施例的客户机装置101。客户机装置可以是蜂窝无线电话网络的移动台。客户机装置101包括处理单元MCU,射频部分RF和用户接口UI。射频部分RF和用户接口UI与处理单元MCU耦合。用户接口UI通常包括显示器,一个或多个扬声器,以及键盘(未示出),用户借助键盘能使用装置101。
处理单元MCU包括处理器(未示出),存储器210和计算机软件。软件存储在存储器210中。前述客户机装置缓存器240也包含在存储器210中。处理器根据软件控制客户机装置101的操作,如接收从服务器111发送的流式媒体并通过射频部分RF发送请求到服务器111,在缓存器240中读和写接收的流式媒体(视频和/或音频),以及在显示器上显示接收的流式视频和在用户接口UI的一个或多个扬声器上显示音频。适当大小的缓存器(在时间上)可以是,例如,最大(或平均)CR时间周期的1.5或2倍。
软件包括流式客户软件应用220(下文中称为客户软件220),协议栈230,用于实现必要的协议层,如RTP层,RTSP层,SDP(会话描述协议)层,TCP(传输控制协议)层,IP层以及IP层下的较低协议层。另外,软件包括用于播放接收的媒体的媒体播放器,作为客户软件220的一部分。
处理器基于客户软件220生成前述的PAUSE和PLAY消息,并通过射频部分RF将它们发送到服务器111。处理器还基于客户软件220执行与加速系数相关,与缓存器填充周期相关以及与从较低比特率序列切换回原始比特率序列的适当时间点相关的必要计算。
重发请求(PLAY消息)的产生和发送以及其他适当动作通过在移动客户机装置101中发生的小区再选事件触发。该事件可由客户软件220通过从协议栈230的较低层提供的API(应用编程接口)接收异步消息检测。或者或另外,该事件可通过监视缓存器级别,即客户机装置缓存器240的充满度来检测。在此情况下,如果缓存器240在某个量X的时间内(取决于具体实现,参数X可以定义为常数值,而且它是客户软件220理解小区再选事件已经发生的阈值)没有接收到数据,而且如果客户机装置101在某个可变量Y的时间(其中Y>X,Y为CR周期的真实持续时间)之后开始接收数据,则客户可触发在该说明书中描述的动作。
图10示出了根据本发明的优选实施例的流式服务器111。流式服务器111包括处理单元CPU,第一存储器310,IP网络接口350,和第二存储器360。第一存储器310,IP网络接口350,和第二存储器360与处理单元CPU耦接。
处理单元CPU根据第一存储器310中存储的计算机软件控制流式服务器111的操作,如处理从客户机装置101接收的请求和经IP网络接口350发送存储在第二存储器(盘)360中的预先纪录的媒体流到客户机装置101。
该软件包括流式服务器软件应用320(下文中称为服务器软件320),用于实现必要协议层的协议栈330,如RTP层,RTSP层,SDP层,TCP层,IP层和较低协议层。
从客户机装置101发送的PAUSE和PLAY消息经由IP网络接口350接收。处理单元CPU的处理器(未示出)根据服务器软件320和协议栈330处理消息并采取适当的动作。
本发明提供用于降低小区再选对正在进行的流式会话的影响的方法。应指出,根据本发明的优选实施例,在应用层上,即在客户软件应用220和服务器软件应用320之间发送一个重发请求(例如,PLAY消息)。优选使用通过TCP(传输控制协议)的RTSP或通过另一种可靠协议的RTSP来将应用层请求从客户机装置传送到流式服务器。因此在流式服务器的消息的接收基本上被保证。
尽管已经描述将在两个基站之间执行小区再选,应指出,还能在同一个基站的两个扇区之间执行小区再选。而且,应指出,根据具体实现,最好是,不需要暂停发送流式媒体的独立消息(PAUSE消息)。在一个可选实施例中,由单个适当的消息引起停止发送流式媒体和开始重发流式媒体。
另外,关于该缓存器填充实施例,前面已经描述当服务器切换到发送较低比特率序列时,将维持原始传输比特率。然而,在本发明的一个可选实施例中,在填充周期期间使用比原始传输比特率更高的传输比特率,以便更快速地填充缓存器。在此实施例中,假设移动客户机装置可请求较大带宽,而且较大带宽在无线接入网中实际上是可用的。
此外,关于该缓存器填充实施例,序列的带宽信息也能由RTSP字段“带宽”以外的其他方式(例如,通过请求以客户机装置101已知的比特率编码的特定序列)发送到流式服务器111。在此情况下,字段“带宽”未被使用,根据实际的已知序列比特率重新计算字段“速度”和“范围”。
可能网络(空中接口)带宽在缓存器填充周期期间变化。如果客户机装置101支持涉及比特流切换的带宽自适应,客户机装置101在将带宽自适应消息发送到流式服务器111之前应暂停缓存器填充(利用RTSP PAUSE消息)。在带宽自适应操作结束后,客户机装置可再次启动缓存器填充,并根据新媒体流的比特率和定时信息重新计算“带宽”,“速度”和“范围”值。
而且,关于该缓存器填充实施例,应指出,在一个可选实施例中,第二PAUSE/PLAY消息根本没有被发送,但将基于在第一PLAY消息中包含的停止点信息由服务器自动执行切换回以原始传输比特率发送原始媒体序列。
在本发明的各个实施例中提到的重发请求,在某些情况下,实际上为发送请求。一种这样的情况被考虑为本发明的一个可选实施例。在该实施例中,预先知道小区再选将在最近的将来发生的客户机装置(101)在小区再选周期的开始之前(即在CR前周期期间)发送一个PAUSE消息到流式服务器(111)。PAUSE消息的发送由借助较低层API被通知给客户软件220的小区再选启动事件触发。PAUSE消息引起流式服务器111停止发送该流式媒体。当CR周期结束时,客户机装置101接着发送一个PLAY消息,使得流式服务器在CR周期之前在停止发送的点处开始发送。在客户机装置101,流式媒体的播放不会在中间停止,且如果客户机装置缓存器240已经被选择得比小区再选所花费的时间要长,则缓存器240在小区再选期间不会变成全空,而且用户在回放中不会经历任何跳跃或中断。该PLAY消息可能包含以增大的速率进行发送的请求,以便增大缓存器240的充满度。
在另一个实施例中,移动客户机装置101在CR周期之前发送给流式服务器111一个适当的消息,请求流式服务器停止发送流式媒体,以及在CR周期之后的一个适当时间点再次开始发送。消息的发送在CR前周期期间由借助较低层API被通知给客户软件220的小区再选启动事件触发。知道小区再选将花费的大致时间的移动客户机装置101估计其能再次接收数据的适当时间点。其将该信息插入到该消息中,以便防止流式服务器111开始再次发送太早。
上面提到的消息的一个例子如下PLAY rtsp//example.com/foo RTSP/1.0CSeq7Session354832Rangenpt=28.00-40.00;time=19970123T153600ZBandwidth20000Speed1.5这是具有报头字段“时间”的RTSP PLAY消息。该字段的值排定了流式媒体的“将来”发送的开始。
图11示意了(特别关于该缓存器填充实施例)以下发送消息的三种方式情形1第一PAUSE和PLAY消息在CR周期之后被发送。第二PAUSE和PLAY消息在缓存器240充满时被发送。
情形2第一PAUSE消息在CR周期之前被发送。相关的PLAY消息在CR周期之后被发送。第二PAUSE和PLAY消息在缓存器240充满时被发送。
情形3第一PAUSE消息在CR周期之前被发送。相关的PLAY消息在PAUSE消息之后但在CR周期之前被发送。第二PAUSE和PLAY在缓存器240充满时被发送。
如果第一PLAY消息包含一个闭合的“范围”字段,则第二PAUSE消息的发送没有必要。
已经描述了本发明的特定实现和实施例。本领域的技术人员清楚本发明并不局限于上述实施例的细节(例如,消息名称和消息字段名称),而是可以在利用等效方式的其他实施例中实现,而不偏离本发明的特性。本发明的范围仅受所附专利权利要求书的限制。
权利要求
1.一种用于通过空中接口将媒体从流式服务器(111)流动到移动客户机装置(101)的方法,其中所述方法包括请求所述流式服务器(111)发送所述移动客户机装置(101)因小区再选而无法接收的流式媒体。
2.根据权利要求1的方法,其中所述流式服务器具有开始发送的起始点。
3.根据权利要求1的方法,其中流式服务器(111)响应于所述请求,发送所述移动客户机装置(101)因所述小区再选而无法接收的流式媒体以及流式媒体的剩余部分。
4.根据权利要求1的方法,其中所述小区再选包括所述移动客户机装置(101)无法接收流式媒体的小区再选周期,所述方法包括在所述小区再选周期之后,从所述移动客户机装置(101)向所述流式服务器(111)发送重发请求,用于请求所述流式服务器(111)重发所述移动客户机装置(101)在所述小区再选期间无法接收的流式媒体。
5.根据权利要求4的方法,其中所述重发请求根据RTSP协议(实时流式协议)生成。
6.根据权利要求4的方法,其中所述重发请求通过RTSPPAUSE/PLAY消息对实现。
7.根据权利要求1的方法,其中所述流式媒体在播放之前,被临时存储在所述客户机装置(101)的临时存储器(240),如缓存器中。
8.根据权利要求7的方法,其中所述临时存储器(240)的大小在时间上长于小区再选周期。
9.根据权利要求7的方法,其中所述流式服务器被请求以高于所述媒体的播放速率的速率发送流式媒体,以便增大所述临时存储器(240)的充满度。
10.根据权利要求9的方法,其中具有加速系数的带宽或期望的传输比特率在请求中被通信给所述流式服务器(111)。
11.根据权利要求9的方法,其中所述流式媒体以高于所述播放速率的速率被存储在所述移动客户机装置(101)中。
12.根据权利要求9的方法,其中所述流式服务器(111)被随后请求恢复原始配置。
13.根据权利要求7的方法,其中所述临时存储器(240)的充满度在所述小区再选期间降低,并且尽管所述临时存储器(240)尚未变成全空,所述流式服务器被请求发送所述未被接收的流式媒体,而且所述请求的执行不暂停在所述移动客户机装置(101)的回放。
14.根据权利要求1的方法,其中所述流式服务器具有一组可用于传输的媒体流,其中所述相同的媒体内容已经被按照不同比特率编码。
15.根据权利要求14的方法,其中关于所述可用组媒体流的信息在流式会话建立中被预先通信到所述移动客户机装置(101)。
16.根据权利要求15的方法,其中所述流式服务器(111)被请求从发送较高比特率媒体流切换到以增大的速率发送较低比特率媒体流。
17.根据前述任何一项权利要求的方法,其中所述流式媒体包括以下一项视频流、音频流、另一单一媒体流、多媒体流。
18.根据前述任何一项权利要求的方法,其中所述流式服务器(111)经由移动通信网络发送流式媒体到所述移动客户机装置(101)。
19.根据前述任何一项权利要求的方法,其中所述移动通信网络包括移动分组无线电网络,如GPRS(通用分组无线电业务)网络。
20.根据前述任何一项权利要求的方法,其中在从包含以下的组中选择的两个基站(BS1,BS2)之间执行所述小区再选属于GPRS系统的基站,属于第三代移动通信系统的基站。
21.一种用于通过空中接口从流式服务器(111)接收流式媒体的移动客户机装置(101),所述移动客户机装置(101)包括用于请求所述流式服务器(111)发送所述移动客户机装置(101)因小区再选而无法接收的流式媒体的装置(220,230,MCU)。
22.一种用于通过空中接口向移动客户机装置(101)发送流式媒体的流式服务器(111),所述流式服务器(111)包括接收用以请求所述流式服务器(111)发送所述移动客户机装置(101)因小区再选而无法接收的流式媒体的请求的装置(350);和用于按照所述接收的请求操作的装置(320,330,CPU)。
23.一种包含流式服务器(111)和移动客户机装置(101)的系统,用于通过空中接口从所述流式服务器(111)向所述移动客户机装置(101)流动媒体,所述系统在所述移动客户机装置(101)中包括用于请求所述流式服务器(111)发送所述移动客户机装置(101)因小区再选而无法接收的流式媒体的装置(220,230,MCU),所述系统在所述流动服务器(111)中包括用于接收所述请求的装置(350);和用于按照所述接收的请求操作的装置(320,330,CPU)。
24.一种可在移动客户机装置(101)中执行的计算机程序,所述计算机程序包括用于使所述移动客户机装置(101)请求流式服务器(111)发送所述移动客户机装置(101)因小区再选而无法接收的流式媒体的程序代码。
25.一种可在流式服务器(111)中执行的计算机程序,所述计算机程序包括用于使所述流式服务器(111)接收用以请求所述流式服务器(111)发送所述移动客户机装置(101)因小区再选而无法接收的流式媒体的请求的程序代码;和用于按照所述接收的请求操作的程序代码。
全文摘要
本发明涉及一种用于通过空中接口将媒体从流式服务器(111)流动到移动客户机装置(101)的方法,其中,在小区再选之后,所述方法包括请求所述流式服务器(111)发送所述移动客户机装置(101)因小区再选而无法接收的流式媒体。
文档编号H04L12/56GK1706146SQ200380101370
公开日2005年12月7日 申请日期2003年10月10日 优先权日2002年10月14日
发明者艾格尔·D·D·柯西奥, 米伊卡·兰丹 申请人:诺基亚公司