分组化数据比特率适配和数据分组重传之间的协作的制作方法

文档序号:7946864阅读:184来源:国知局
专利名称:分组化数据比特率适配和数据分组重传之间的协作的制作方法
技术领域
本发明涉及用于提高分组化数据比特率适配和数据分组重传之间协作的方法、系统、客户端、服务器、计算机程序和计算机程序产品。
背景技术
在第一方面中,流是指安装在客户端的应用的能力,其用于在那些流正通过数据网络传输到客户端时以连续的方式播放例如语音、音频和视频流等同步媒体流。在第二方面中,流还指例如会话应用的实时低延迟应用。
能够建立于流服务之上的应用可被分类为点播和直播信息分发应用。第一类的例子是音乐和新闻点播应用。第二类的例子是广播和电视节目的直播分发。实时低延迟应用例如是多媒体(视频)电话或IP承载的语音以及任意类型的会话多媒体应用。
通过固定因特网协议(IP)网络的流已经是当前的主要应用。尽管互联网工程任务小组(IETF)和万维网联盟(W3C)已经开发出在固定IP流服务中使用的一组协议,但还没有定义完整的标准化流媒体架构。对于根据由第三代合作伙伴计划(3GPP)开发的标准的第三代(3G)移动通信来说,3G包交换流服务(PSS)填补了3G多媒体消息服务(MMS)和会话&流服务之间的空缺,多媒体消息服务(MMS)例如是下载应用和多媒体内容。技术规范3GPP TS26.234 v0.3.0“Transparent end-to-end Packet-switched StreamingService(PSS);Protocols and codecs(Release 6)TSG-SA4 PSM SWGinternal working draft”中对PSS进行了详细的描述,以下表示为TS26.234。
PSS实现移动流应用,其中终端的复杂度低于会话服务所需的复杂度,因为不需要媒体输入设备和编码器,并且因为可使用较低复杂度的协议。PSS包括流控制协议、传输协议、媒体编解码器和场景描述协议的基础集。
摘自TS 26.234的图1示意性地示出PSS协议栈1,该协议栈控制内容或媒体服务器和客户端之间的可流化(streamable)和不可流化(non-streamable)内容的传输。
不可流化内容106,例如不是用于流目的而创建的多媒体内容(例如记录在终端设备上的MMS剪辑),还有图片、位图和矢量图形、文本、时控文本(Timed Text)以及合成音频通过超文本传输协议(HTTP)107传输,其利用了下层传输控制协议(TCP)108和更下一层的IP 105的服务。
例如视频、音频和语音的可流化内容101在适配层103中首先被转化为实时传输协议(RTP)102的有效载荷格式。所述RTP提供通过利用下层用户数据包协议(UDP)104发送实时或流数据的装置,其接着使用下层IP协议105的服务。
在IETF请求注解(RFC)文档1889“RTPA Transport Protocol forReal-Time Application”中规定的RTP 102对具有实时特性的数据提供端到端分发服务,这些数据例如是交互的音频和视频。这些服务包括载荷类型标识、序列编号、时间戳(Timestamping)和分发监视。RTP本身不提供确保及时分发的任何机制或提供其它的服务质量保证,而是依赖于更低层服务来提供。它不确保分发或阻止混乱分发,它也不认为下层网络是可靠的并且按顺序分发分组。包括在RTP中的序列号允许接收方重构发送方的分组序列,但序列号也可用于确定分组的合适位置,例如在视频解码中,不需要按顺序对分组进行解码。
紧密地连接到RTP 102(其实际携带数据)的是RTP控制协议(RTCP),其监视服务的质量并且传达关于基于RTP的持续会话中的参与方的信息。RTCP基于利用与数据分组相同的分发机制将控制分组周期性地发送到会话中的所有参与方。RTCP提供关于数据传输的质量的反馈。这是RTP作为传输协议功能的主要部分并且涉及其它传输协议的流和拥塞控制功能。反馈可直接用于诊断数据传输中的故障。反馈功能由RTCP发送方和接收方报告来执行。
基于由RTCP提供的质量反馈,PSS提供RTP重传方案以便减轻当RTP分组在传输过程中丢失时所遇到的质量降低。丢失的分组由基于RTCP的质量反馈指示并且被有效地从服务器重传到客户端。这需要服务器存储它已经发送达到某个传输深度的RTP分组,例如,在最后5秒内发送的所有RTP分组必须存储在服务器处的RTP分组传输缓冲器内以便考虑它们重传的情形。
而对于不可流化内容106,HTTP 107内置的会话建立和控制能力足以传输该内容,在可流化内容101的情况下,高级会话建立和控制协议必须被调用,例如为了启动、停止和中止从内容服务器经由RTP/UDP/IP传输到客户端的流视频。该任务由实时流协议(RTSP)109执行,其既可以使用下层TCP 108也可以使用下层UDP 104。RTSP至少需要表示描述(Presentation Description)110来建立流会话。这样的表示描述110例如可以以会话描述协议(SDP)文件的形式利用。所述SDP文件包含会话的描述,例如会话的名称和作者、要表示的媒体的类型、接收所述媒体的信息、例如地址、端口、格式等,以及媒体的比特率。
PSS包括可用于允许PSS会话将传输和内容速率(例如比特率)适配于可用的网络资源的多个协议和功能。当然该速率适配的目标是利用可用的资源来获得终端用户的体验的最高可能质量,并同时保持媒体的无中断播放。速率适配需要估计可用的网络资源并且传输速率被适配到可用的网络链路速率。这可阻止溢出网络缓冲器并且因此避免了分组的丢失。必须要考虑被传输的媒体的实时属性以便媒体不会到达太晚而没有用处。这需要将媒体内容速率(即,内容的比特率)适配于传输速率。
为了避免缓冲器的溢出导致客户端必须要丢弃有用的数据,虽然依然允许服务器向客户端缓冲器中分发尽可能多的数据,但在PSS的范围内定义用于客户端缓冲器反馈的功能。这就允许服务器严密地监视客户端侧的缓冲情况并且执行其可以执行的功能以便避免客户端缓冲器下溢。客户端规定了服务器可使用多大的缓冲器空间以及保护的期望目标等级。当获得期望的保护等级时,服务器可利用超出维持该保护等级所需资源的任意资源来提高媒体的质量。服务器还可利用缓冲器反馈信息来确定媒体质量是否需要被降低以便避免缓冲器的下溢以及导致的播放中断。对于服务器,执行速率适配的一种方式是保留相同内容的多个编码版本,其中编码比特率用作区别依据。接着,可通过根据客户端缓冲器的状态在不同的编码内容之间进行切换来执行速率适配。
PSS的速率适配是以服务器为中心的,这意味着传输和内容速率由服务器控制。服务器将RTCP和RTSP作为关于客户和网络的状态的基本信息资源使用。
为了允许PSS中的速率适配,PSS客户端和PSS服务器应该支持客户端缓冲器反馈信令功能。对于支持客户缓冲器反馈信令功能的PSS客户端和服务器来说,至少应该实施下面的部分-将客户端提供的用于速率适配的缓冲器的大小(例如,以字节方式)通过RTSP发送到服务器。
-将客户缓冲器中的最老分组的序列号(“最老缓冲序列号”)经由RTCP发送到服务器。OBSN信息例如可在RTCP应用(APP)分组中从客户端发送到服务器。
借助于缓冲器大小、OBSN参数以及通过已经包含在RTCP接收方报告中的“最高接收序列号”HRSN,服务器能够在最后接收到的RTCP报告的发送时间计算客户端缓冲器中的字节的数。
基于计算的客户缓冲器填充等级,服务器可避免溢出缓冲器。该等级还允许服务器检测何时缓冲等级下降并因此做出反应来尝试阻止下溢。服务器通过查阅最高序列号的分组的时间戳、最老序列号的分组的时间戳以及最老序列号的分组的播放延迟(如果它们都被发送的话),来估计客户端缓冲器将下溢前的时间。播放延迟提高了所估计的客户端下溢前时间的精确度。例如,在低帧率视频的情况下,播放延迟可对客户端的总缓冲时间做出显著贡献。
然而,在PSS中将速率适配功能和RTP重传功能进行结合将造成问题。
首先,当服务器基于从客户端接收到的反馈通过改变分组流的比特率来执行速率适配时,服务器冲刷它的传输缓冲器。这样的冲刷操作严重地干扰或甚至破坏了RTP重传方案的正常功能,该正常功能基于对某个传输深度的已传输RTP分组进行的存储来解决由于RTP分组丢失而产生可能未来的RTP分组的重传。例如,如果需要对一个RTP分组进行重传而该RTP分组由于所述冲刷在所述服务器处不再可用,则所述服务器可能不得不再次获得所述RTP分组(例如,经由通过服务器侧3GP文件内的提示轨(Hint tracks)的重复迭代来寻找合适的RTP分组),这将导致额外的延迟,或根本就不再可能。所述RTP分组的所述延迟或所述缺少直接影响在所述RTP上运行的应用,例如相关流媒体的播放可能被冻结或甚至停止。
当在速率适配的上下文中(例如,通过RTCP APP分组)由客户端所报告的OBSN大于或十分接近RTP重传上下文中重传所需的RTP分组的序列号时,将出现另外的问题。由所述报告的OBSN标识的RTP分组是由客户端为了解码的目的(例如,为了等待被显示而被放入到后置解码器缓冲器中)从RTP分组缓冲器中移去的第一个RTP分组。因此,带有小于报告的OBSN的序列号的RTP分组的任何重传将是不必要的并且因此浪费了带宽。

发明内容
鉴于上面提到的问题,其中,本发明的目的是提供用于提高分组化数据比特率适配和数据分组重传之间协作的方法、系统、客户端、服务器、计算机程序和计算机程序产品。
根据本发明的第一方面,提出了提高分组化数据比特率适配和数据分组重传之间协作的方法,其包括以第一比特率从服务器向客户端传输数据分组;在至少一个服务器缓冲器中至少暂时地存储至少一个所述传输的数据分组;在客户端缓冲器中至少暂时地存储至少一个所述传输的数据分组;发送关于在所述传输期间至少一个所述传输数据分组的损坏的损坏信息到所述服务器,其中所述发送的损坏信息由所述服务器分析以便决定是否需要将所述服务器缓冲器中存储的至少一个数据分组从所述服务器重传到所述客户端;发送关于所述客户端缓冲器的状态的客户端缓冲器信息到所述服务器;以第二比特率将数据分组从所述服务器传输到所述客户端,其中所述第二比特率至少部分地基于所述客户端缓冲器信息而确定,并且其中当开始以所述第二比特率从所述服务器向所述客户端传输所述数据分组时,以所述第一比特率传输并且存储在所述服务器缓冲器中的至少一个数据分组被进一步存储在所述服务器缓冲器中。
所述数据分组可代表由携带信息的符号所构成的数据流的逻辑或物理单元,例如数据比特或其调制的表示。例如,所述数据流可以是在流会话中从所述服务器传输到所述客户端的媒体流,该流会话至少部分基于实时传输控制协议,并且,相应地,所述服务器可以是内容或流媒体服务器,所述客户端可以是流客户端,并且所述数据分组可以是RTP分组。接着所述流可以以单播或多播模式执行。从更为普遍的意义来说,所述服务器和客户端还可被理解为数据传输系统中的发射机和接收机。所述数据分组的所述传输可以是由协议所提供和/或控制的物理的或逻辑的传输。物理传输介质可以是无线的或接线,或可以是由无线和接线的分段所构成。所述数据分组的所述传输可以第一比特率来执行,这可以是指逻辑或物理的传输。例如,可通过对所述数据分组的内容执行的源和/或信道编码的量来确定比特率,或通过用于所述数据分组的传输的传输信道或承载的数量和/或传输容量来确定比特率。
在所述服务器处,传输到所述客户端的至少一个数据分组至少暂时地存储在服务器缓冲器中。该缓冲器代表重传缓冲器,在客户端没有正确接收到的数据分组将从此处再次发送,例如在自动重复请求ARQ协议的控制下或基于实时传输控制协议RTCP的服务。所述服务器缓冲器中的所述至少一个数据分组的所述存储可以是时间受限的,以便在预定的或动态的适配时间后从所述服务器缓冲器移去所述至少一个分组。
在所述客户端处,传输到客户端以及在客户端接收到的至少一个数据分组至少暂时地存储在所述客户端缓冲器中。从所述客户端缓冲器,存储的数据分组可导致所述客户端内的进一步处理,例如,来自所述客户端缓冲器的所述数据分组可由应用进行播放。所述客户端缓冲器可作为补偿缓冲器使用,该缓冲器允许由于服务器和客户端之间的物理和逻辑的传输介质的传输特性(例如,延迟、丢失)而改变到达所述客户端的数据分组使用的速率。
所述客户端向所述服务器发送损坏信息,其中所述损坏信息关于在它从所述服务器到所述客户端的传输期间至少一个数据分组的损坏。例如,所述损坏可表示一个或几个数据分组的丢失或破坏。损坏信息例子可以是标识的信令,例如正确接收的最后一个数据分组的序列号。所述数据分组传输服务器可从所述损坏信息中导出(特别是如果预定的时间已经过去)在所述接收机处还没有正确接收到一个或几个分组,并且接着试图重传数据分组。所述信令可基于协议执行,例如实时传输控制协议。基于所述损坏信息,所述服务器可确定重传是否已经被传送,但是需要损坏或丢失的数据分组,接着这些分组可从所述服务器缓冲器提取并且被重新传输到所述客户端。
所述客户端进一步向所述服务器发送客户端缓中器信息,该信息关于所述客户端缓冲器的状态。该客户端缓冲器信息例如可指示客户端缓冲器中剩下的空间,或可代表存储在所述客户端缓冲器中的特定数据分组的序列号,特别是存储在所述客户端缓冲器中的最老数据分组的序列号,即,还没有被从所述客户端缓冲器中读出以便进一步处理以及其存储时间是存储在所述客户端缓冲器中所述数据分组中最大的数据分组。相应地,所述最老数据分组是要从所述客户端缓冲器读出以便进一步处理的下一个数据分组。
基于所述发送的客户端缓冲器信息,所述服务器可将所述第一比特率改变为第二比特率。例如可能需要该分组化数据比特率适配步骤以避免所述客户端缓冲器的溢出或下溢,并且可能需要改变对所述数据分组的内容执行的源和/或信道编码的量,和/或改变用于所述数据分组的传输的传输信道或承载的数量和/或传输容量。
根据本发明的第一方面,当开始以所述第二比特率将所述数据分组从所述服务器发送到所述客户端时,以第一比特率传输并且存储在所述服务器缓冲器中的至少一个数据分组被进一步存储在所述服务器缓冲器中。因此当比特率被改变时,包括以第一比特率传输的数据分组的服务器缓冲器没有如现有技术的系统中那样被进行冲刷。相比而言,以第一比特率传输的存储的数据分组被保存在所述服务器缓冲器中,并且例如仅在可取决于所发送的损坏信息的一段持续时间之后从所述服务器缓冲器删除这些数据分组。甚至当已经启动了以第二比特率传输的数据分组时,这也允许数据分组的重传能够被顺利完成,只要它对于以第一比特率传输的数据分组是需要的。相比较于现有技术,根据本发明,因为不再发生如下情形,即由于从第一比特率到第二比特率的分组化数据速率适配造成的所述服务器缓冲器的冲刷所引起的、在服务器缓冲器中没有损坏或丢失的以第一比特率传输的数据分组可用于重传,因此避免了由所述数据分组供给的应用的延迟或中止。
根据本发明的第一方面的一个优选实施方式,以所述第一比特率传输并且存储在所述服务器缓冲器中的至少一个数据分组在一段持续时间期间被存储在所述服务器缓冲器中,而该持续时间由所述服务器基于所述发送的损坏信息确定。这可通过给所述服务器缓冲器中的数据分组分配终止时间来实现。
根据本发明的第一方面的一个优选实施方式,从所述服务器缓冲器中移去以第一比特率传输并且存储在所述服务器缓冲器中的所述至少一个数据分组取决于所述发送的客户端缓冲器信息。如果从所述客户端缓冲器信息确定所述数据分组的传输不再是必要的或有用的,则所述至少一个数据分组可例如从所述服务器缓冲器删除。
根据本发明的第一方面的一个优选实施方式,所述客户端缓冲器信息是指存储在所述客户端缓冲器中的最老数据分组的标识。所述术语老可被理解为与当所述数据分组被存储在客户端缓冲器中时的时间实例相关。所述标识例如可以是所述最老数据分组的序列号。
根据本发明的第一方面的一个优选实施方式,从所述服务器到所述客户端的所述数据分组的所述传输部分地基于实时传输协议RTP,并且其中所述损坏信息和所述客户端缓冲器信息的所述发送至少部分地基于实时传输控制协议RTCP。然后,所述数据分组是RTP分组,并且例如最老缓冲序列号OBSN的所述客户端缓冲器信息可通过利用RTCP应用APP分组来发送。
根据本发明的第一方面的一个优选实施方式,将所述数据分组与根据3GPP分组交换流服务PSS从所述服务器传输到所述客户端的媒体流相关联。
根据本发明的第一方面,进一步提出了用于提高分组化数据比特率适配和数据分组重传之间协作的系统、客户端和服务器。
根据本发明的第二方面,进一步提出了用于提高分组化数据比特率适配和数据分组重传之间协作的方法,包括以第一比特率从服务器向客户端传输数据分组;在至少一个服务器缓冲器中至少暂时地存储至少一个所述传输的数据分组;在客户端缓冲器中至少暂时地存储至少一个所述传输的数据分组;发送关于在所述传输期间至少一个所述传输数据分组损坏的损坏信息到所述服务器;发送关于所述客户端缓冲器的状态的客户端缓冲器信息到所述服务器,其中所述发送的客户端缓冲器信息由所述服务器分析以便将所述数据分组的所述传输的第一比特率变成第二比特率;基于所述发送的损坏信息和所述发送的客户端缓冲器状态信息确定是否需要数据分组的重传;并且仅当确定需要数据分组重传时,才将存储在所述服务器缓冲器中的至少一个数据分组从所述服务器重传到所述客户端。
所述数据分组可代表由携带信息的符号所构成的数据流的逻辑或物理单元,例如数据比特或其调制的表示。例如,所述数据流可以是在流会话中从所述服务器传输到所述客户端的媒体流,该流会话至少部分基于实时传输控制协议RTP,并且,相应地,所述服务器可以是内容或流媒体服务器,所述客户端可以是流客户端,并且所述数据分组可以是RTP分组。接着所述流可以以单播或多播模式执行。从更为普遍的意义来说,所述服务器和客户端还可被理解为数据传输系统中的发射机和接收机。所述数据分组的所述传输可以是由协议所提供和/或控制的物理的或逻辑的传输。物理传输介质可以是无线的或接线,或可以是由无线和接线的分段所构成。所述数据分组的所述传输可以第一比特率来执行,这可以是指逻辑或物理的传输。例如,可通过对所述数据分组的内容执行的源和/或信道编码的量来确定比特率,或通过用于所述数据分组的传输的传输信道或承载的数量和/或传输容量来确定比特率。
在所述服务器处,传输到所述客户端的至少一个数据分组至少暂时地存储在服务器缓冲器中。该缓冲器代表重传缓冲器,在客户端没有正确接收到的数据分组将从此处再次发送,例如在自动重复请求ARQ协议的控制下或基于实时传输控制协议RTCP的服务。所述服务器缓冲器中的所述至少一个数据分组的所述存储可以是时间受限,以便在预定的或动态的适配时间后从所述服务器缓冲器移去所述至少一个分组。
在所述客户端处,传输到客户端以及在客户端接收到的至少一个数据分组至少暂时地存储在所述客户端缓冲器中。从所述客户端缓冲器,存储的数据分组可导致所述客户端内的进一步处理,例如,来自所述客户端缓冲器的所述数据分组可由应用进行播放。所述客户端缓冲器可作为补偿缓冲器使用,该缓冲器允许由于服务器和客户端之间的物理和逻辑的传输介质的传输特性(例如,延迟、丢失)而改变到达所述客户端的数据分组使用的速率。
所述客户端向所述服务器发送损坏信息,其中所述损坏信息关于在它从所述服务器到所述客户端的传输期间至少一个数据分组的损坏。例如,所述损坏可表示一个或几个数据分组的丢失或破坏。损坏信息例子可以是标识的信令,例如正确接收的最后一个数据分组的序列号。所述数据分组传输服务器可从所述损坏信息中导出(特别是如果预定的时间已经过去)在所述接收机处还没有正确接收到一个或几个分组,并且接着试图重传数据分组。所述信令可基于协议执行,例如实时传输控制协议RTCP。
所述客户端进一步向所述服务器发送客户端缓冲器信息,该信息关于所述客户端缓冲器的状态。该客户端缓冲器信息例如可指示客户端缓冲器中剩下的空间,或可代表存储在所述客户端缓冲器中的特定数据分组的序列号,特别是存储在所述客户端缓冲器中的最老数据分组的序列号,即,还没有被从所述客户端缓冲器中读出以便进一步处理以及其存储时间是存储在所述客户端缓冲器中所述数据分组中最大的数据分组。相应地,所述最老数据分组是要从所述客户端缓冲器读出以便进一步处理的下一个数据分组。
基于所述发送的客户端缓冲器信息,所述服务器可将所述第一比特率改变为第二比特率。例如可能需要该分组化数据比特率适配步骤以避免所述客户端缓冲器的溢出或下溢,并且可能需要改变对所述数据分组的内容执行的源和/或信道编码的量,和/或改变用于所述数据分组的传输的传输信道或承载的数量和/或传输容量。
根据本发明的第二方面,存储在所述服务器缓冲器中的至少一个数据分组从所述服务器到所述客户端的重传仅在如果确定需要数据分组重传时才执行,其中该确定是基于所述发送的损坏信息和所述发送的客户端缓冲器状态信息的。对比于现有技术,其中对重传的确定是仅基于发送的损坏信息的,因此根据本发明的第二方面,在该确定中还考虑了发送的客户端缓冲器信息。如果例如所述损坏信息指示某个数据分组需要重传,则所述客户端缓冲器信息可仍指示该特定的数据分组不需要重传,这例如是因为该数据分组已经存储在所述客户端缓冲器中,或在以前的某个时间该数据分组已经被存储并且被进一步处理了,或该数据分组即使在成功重传的情形下会太晚到达所述客户端以致没有了利用价值。因此根据本发明的第二方面,在结合了数据分组重传和分组化数据比特率适配的现有技术系统中发生的、数据分组的不必要重传能够被完全避免。
根据本发明的第二方面的一个优选实施方式,所述损坏信息允许确定在传输期间损坏的至少一个数据分组的序列号,并且其中所述客户端缓冲器信息是指存储在所述客户端缓冲器的最老数据分组的序列号,并且其中所述对于是否需要数据分组的重传的确定取决于所述至少一个损坏的数据分组和所述最老数据分组的所述序列号之间的差。因此不必要的重传例如可通过要求仅重传比所述最老数据分组年轻的数据分组来避免,这对于随时间增大的数据分组的序列号来说,导致这样的要求,即为了重传所述损坏的数据分组,所述损坏的数据分组和所述最老数据分组的所述序列号之间的差必须大于零。
根据本发明的第二方面的优选实施方式,根据与存储在所述服务器缓冲器中的数据分组关联的序列号和所述最老数据分组的序列号之间的差,删除该存储在服务器缓冲器中的数据分组。这对于例如移去具有比所述最老数据分组小的序列号的所有数据分组(即,比所述客户端缓冲器中的所述最老数据分组更老的数据分组)来说是有益的。如果所述差小于零,则所述数据分组被删除。
根据本发明的第二方面的优选实施方式,从所述服务器到所述客户端的所述数据分组的所述传输部分地基于实时传输协议RTP,并且其中所述损坏信息和所述客户端缓冲器信息的所述发送至少部分地基于实时传输控制协议RTCP。然后,所述数据分组是RTP分组,并且例如最老缓冲序列号OBSN的所述客户端缓冲器信息可通过利用RTCP应用APP分组来发送。
根据本发明的第二方面的一个优选实施方式,将所述数据分组与根据3GPP分组交换流体服务PSS从所述服务器传输到所述客户端的媒体流相关联。
根据本发明的第二方面,进一步提出了用于提高分组化数据比特率适配和数据分组重传之间协作的系统、客户端和服务器。
根据本发明,计算机程序进一步由指令构成,该指令可操作使得处理器执行上述提到的任意方法步骤。
进一步提出的计算机程序产品包括具有指令的计算机程序,这些指令可操作使得处理器执行上述提到的任意方法步骤。
参考下面所述的实施方式,本发明的这些和其它方面将变得明显并且得到了阐明。


在附图中示出图1根据现有技术的分组交换流服务(PSS)协议栈的示意性表示;图2根据本发明用于提高分组化数据比特率适配和数据分组重传之间协作的示例性系统的基本组件;图3根据本发明用于提高分组化数据比特率适配和数据分组重传之间协作的服务器所执行的方法步骤的示例性流程图;以及图4根据本发明用于提高分组化数据比特率适配和数据分组重传之间协作的客户端所执行的方法步骤的示例性流程图。
具体实施例方式
本发明提出通过不要求当改变分组化数据比特率时服务器冲刷它的重传缓冲器,并且仅当从客户端反馈回的客户端缓冲器信息指示该重传的分组是实际上需要的时候才重传数据分组,来提高分组化数据比特率适配和数据分组重传之间协作。在下面中,将在第三代合作伙伴计划(3GPP)分组交换流服务(PSS)的上下文中展示本发明的示例性实施方式。然而,应该指出本发明绝对不限于PSS中的应用,它可同样地在其中分组化的数据比特率适配和数据分组重传可被联合实施的所有通信系统中部署。
图2示出根据本发明用于提高分组化数据比特率适配和数据分组重传之间的协作示的例性系统20的基本组件。该系统包括服务器21和客户端22,其中RTP数据分组在流会话中从所述服务器21流向所述客户端22。这样的流会话的例子例如可以是从因特网服务器到移动电话的视频的下载,其中所述视频流在进行下载过程的同时在所述移动电话上播放。
所述服务器21例如从内容服务器或从任意类型的存储介质接收数据流,存储介质同样地也可位于所述服务器21中,并且在编码器实例210中将所述数据流编码成实时传输控制协议(RTP)分组的序列。该编码例如可包括在具有不同比特率的数据流之间进行切换,数据流例如是比特流。接着RTP分组被转发到传输实例211中,其通过传输信道执行到所述客户端22中接收机实例225的所述RTP分组的传输。该传输将被作逻辑上地理解,即,通过将RTP数据分组传递到执行服务器21和客户端22之间物理传输的更低层协议层来进行实际地传输。因此所述传输实例211例如可代表与所述客户端22中的对等实体225通信的RTP实体。由传输实例211将传输的RTP分组分别存储于比特率特定的重传缓冲器214-1、...214-3中,该传输示例211分别通过输入/输出(I/O)接口213-1..213-3可访问这些缓冲器。在图2的示例中,支持三种不同的比特率,并且由它们的序列号(SN)标识的实际七个数据分组已经从所述服务器21传输到所述客户端22,并且相应地存储在所述比特率特定重传缓冲器214-1、...、214-3。RTP分组SN=1和SN=2已经以最高速率被发送过并被存储在重传缓冲器214-3中。接着发生了从所述最高比特率到较低比特率的比特率改变,RTP分组SN=3、SN=4和SN=5以该较低速率被传输并被存储在重传缓冲器214-2中。在到更低比特率的改变之后,RTP分组SN=6和SN=7被传输并被存储在重传缓冲器214-1中。所述比特率的所述改变由比特率适配/重传控制实例212响应于客户端缓冲器信息而发起,在本例中将最老缓冲序列号(OBSN)在RTCP APP分组中从客户端22进行发送。基于该OBSN,客户端缓冲器大小(例如,在会话建立期间所发送的)和最高接收到的序列号(HRSN,在RTCP接收机报告中所发送的),比特率适配/重传控制实例212远端地控制客户端缓冲器224以便避免溢出和/或下溢。所述比特率适配/重传控制实例212控制所述编码器210以便改变比特率,例如通过指示编码器分别在具有不同比特率的比特流之间进行切换。所述比特率适配/重传控制实例212进一步控制所述I/O接口213-1...213-3以确保具有不同比特率的RTP分组被存储在正确的重传缓冲器214-1...214-3中。进一步,如果需要重传存储在所述重传缓冲器214-1...214-3中的RTP分组(这由所述比特率适配/重传控制实例212响应于来自所述客户端22的损坏信息而确定),则所述比特率适配/重传控制实例212还控制从重传缓冲器214-1...214-3到传输实例211的相应RTP分组的传输。根据本例子,所述损坏信息是关于丢失的RTP分组的信息,其由接收实例215从所述客户端225接收,这类似于所述客户端缓冲器信息。如所述传输实例211,所述接收实例215也将被作逻辑上地理解,即,客户端缓冲器信息和损坏信息可例如经由RTCP被发送,并且接着所述接收实例215代表与在所述客户端22中的对等实体221通信的RTCP实体。
所述客户端22接收经由接收实例225从所述服务器21传输的RTP分组,该接收实例225例如可以是RTP实体。在所述实体225中,例如通过简单的校验和来检查RTP分组是否被损坏(例如被破坏)。如果所述RTP分组没有被损坏,则他们将经由I/O接口223被存储在客户端缓冲器224中。所述客户端22中的比特率适配/重传控制实例222从所述接收实例225接收关于损坏的RTP分组的信息,例如正确接收到的最后一个数据分组的SN,以及从客户端缓冲器224接收客户端缓冲器状态信息,例如HRSN和OBSN的实际值。所述比特率适配/重传控制实例222触发经由传输实例221到所述服务器21的所述损坏信息和所述客户端缓冲器信息的反馈,该传输实例221可再次被理解为协议实体。进一步,所述比特率适配/重传控制实例222可控制I/O接口223来触发从所述客户端缓冲器224到解码器实例220的RTP分组转发,其中RTP分组被解码回具有不同比特率的数据流(例如比特流)。在本例中,所述客户端缓冲器中的OBSN是OBSN=3,并且所述客户端缓冲器进一步包括RTP分组SN=4。因此RTP分组SN=1和SN=2已经被接收,被存储于所述客户端缓冲器224中,被从所述客户端缓冲器224中读出并且由所述解码器220解码以便播放。但是,尽管正如由它们重传缓冲器214-1中的存储器所指示的,RTP分组SN=5,SN=6和SN=7已经被服务器21传输,然而,它们还没有被存储在所述客户端缓冲器224中。
现在考虑这样的情形,其中在从服务器21到客户端22的传输期间RTP分组SN=5被破坏或被丢失。通过客户端22的所述比特率适配/重传控制实例222,关于该破坏或丢失的信息被发送到服务器21的比特率适配/重传控制实例212,以便使得对RTP分组SN=5进行重传。该RTP分组SN=5的重传要求该RTP分组SN=5依然要存储在重传缓冲器214-1...214-3的一个中。然而,注意到RTP分组SN=3、SN=4和SN=5被以适度的比特率传输,并且在它们的传输之后,发生了到甚至更低比特率的改变来用于对RTP分组SN=6和SN=7进行的传输。根据现有技术,这样的改变通常导致重传缓冲器214-1...214-3被冲刷,即,存储于此的所有RTP分组被同时删除。该现有技术方法导致在当前情况下出现问题,因为伴随着所有重传缓中器214-1...214-3的冲刷,包含重传所需的RTP分组SN=5的重传缓冲器214-2将被冲刷,这将导致要么服务器21对重传该RTP分组的拒绝,要么导致会延迟到服务器可再次从内容源获得该RTP分组,而这样可能加入新的编码等。因此本发明,根据它的第一个方面,要求当比特率被改变时,重传缓冲器214-1...214-3不会被同时地冲刷,而必须进一步保留它们的RTP分组。因此根据本发明,RTP分组SN=5将被包括在重传缓冲器214-2中,尽管RTP分组SN=5被传输时的比特率已经被改变成RTP分组SN=6和SN=7被传输时的比特率。
因此本发明的第一方面提高比特率适配和重传之间的协作。这易于在服务器站点实施并且可以不需要在客户端站点进行改变。根据系统的最优性水平,它可以要求服务器不必或不应在比特率的改变之后冲刷它的重传缓冲器。在RTP分组的终止期(例如可从RTCP反馈报告或从OBSN得到)之后,接着可允许服务器从它的重传缓冲器214-1..214-3移去单个的RTP分组。
现在考虑这样的情形,即在传输期间RTP分组SN=3被破坏。在现有技术的系统中,这将触发RTP分组SN=3的重传(假设RTP分组SN=3依然存储在服务器的重传缓冲器214-1..214-3中,当例如假设RTP分组SN=3、SN=4和SN=5在被传输之后比特率没有发生可能导致重传缓冲器214-2的冲刷的改变时,无论事实上是否在服务器21中应用本发明的第一方面,都将会是上述这样的情况)。然而,根据客户端缓冲器224的OBSN=3,这指示出RTP分组SN=3已经被正确地存储在客户端缓冲器224中,实际上RTP分组SN=3的重传是不需要的。如果由于损坏信息的反馈和RTP分组的重传中的不可避免的延迟以及由此引起的超时,在不同的时间实例时客户端22接收了RTP分组SN=3的正确的和损坏的版本,这种情况例如可能发生。在一个不同的例子中,OBSN可指示OBSN序列号(其下一步将在客户端22中被处理(例如被播放))与要被重传的RTP分组的SN之间的差太小,使得甚至当所述RTP分组被成功重传时,在客户端22处的接收也将会太晚。
在现有技术中,仅将关于OBSN的信息考虑用于比特率适配,而不是用于重传。因此根据本发明的第二方面,提出在重传RTP分组前考虑损坏信息(关于破坏的RTP分组的)和客户缓冲器信息(关于OBSN)。
因此本发明的第二方面还提高了比特率和重传之间的协作。这也可在服务器站点轻易地实施并且可以不需要在客户端站点的改变。根据系统的最优性水平,如果意识到由客户端要求将重传的分组已经包含在客户端缓冲器224中或将会太晚到达客户端以致对客户端没有任何价值,则可以要求服务器不必或不应重传分组。OBSN可进一步由服务器用于从它的传输缓冲器214-1..214-3移去具有小于或等于OBSN的SN的RTP分组,当本发明的第一方面也在服务器中实施时,这将是特别有利的。
图3表示出根据本发明,在用于提高分组化数据比特率适配和数据分组重传之间协作的服务器处执行的方法步骤的示例性流程图。在第一步骤301中,服务器处的比特率被设置。该比特率例如可以是将要例如经由RTP从服务器传输到客户端的比特流的比特率。该比特率例如可以是对所述传输所规定的默认值,其在传输期间可基于从所述客户端的反馈而被进一步改进,以便确保在客户端的缓冲器中没有缓冲器溢出或缓冲器下溢发生。在第二步骤302中,接着例如RTP分组的数据分组从所述比特流生成并且在步骤303中被传输到所述客户端。在步骤304中根据所述设置的比特率,所传输的数据分组被存储在比特率特定服务器缓冲器中(重传缓冲器)。将损坏信息,例如将要被重传的被破坏的数据分组的SN或在所述客户端被正确接收的最后数据分组的SN,从所述客户端例如经由RTCP传输,并在步骤305中在所述服务器处接收该损坏信息。类似地,在步骤306中在所述服务器处接收客户端缓冲器信息,例如OBSN。基于所述损坏信息和客户端缓冲器信息,接着在步骤307确定实际是否需要对数据分组进行重传。如果发现需要,则在步骤308执行数据分组的重传。如果不需要,或者在重传之后,在步骤309检查是否需要改变比特率。这将至少部分地基于在步骤306中接收到的客户端缓冲器信息来确定,客户端缓冲器信息例如是OBSN,并且接着进一步关于客户端缓冲器大小的信息和HRSN可被使用以便进行所述检查。如果确定需要改变比特率以便避免客户端的缓冲器的溢出或下溢,则在步骤310改变比特率。在该步骤之后,或者如果确定了不需要改变,则在步骤311进一步检查是否可从比特率特定服务器缓冲器移去任何分组,例如因为它们的终止时间已过或因为在步骤306中接收到的客户端缓冲器信息指示这些数据分组的重传已经不再有用。如果确定数据分组将要被移去,在步骤312中执行该移去。在此之后,或如果没有进行移去,则本方法跳回到步骤302,并生成将要被传输到客户端的另外的数据分组。
图4表示根据本发明用于提高分组化数据比特率适配和数据分组重传之间协作的客户端执行的方法步骤的示例性流程图。在第一步骤401中,例如RTP分组的数据分组在客户端被接收。在步骤402中,检查数据分组是被正确接收还是被损坏或是被丢失,例如通过处理检验和或其它错误检测码或检查在接收到的分组的序列中是否存在任何丢失的SN。如果确定了是正确接收,则在步骤403中数据分组被存储在客户端缓冲器中。否则,损坏信息将被发送到服务器,在步骤404中该服务器发送该数据分组。可选地,而无论在步骤402中确定数据分组被正确地接收还是没有正确接收,都将损坏信息,例如在所述客户端处所正确接收到的最后数据分组的SN,发送到所述服务器。接着在步骤405中,从客户端缓冲器确定例如OBSN的客户端缓冲器信息并在步骤406中将其发送到服务器。接着,在步骤407,数据分组被进一步处理,例如通过将它们从客户端缓冲器中提取出并对它们进行解码或播放。最后,本方法跳回到步骤401,其中接收进一步的数据分组。
已经通过实施方式在上面对本发明进行了描述。应该注意到存在对本领域技术人员来说是显而易见的可选方式和变形,并且可在不脱离所附权利要求书的范围和精神下实施。特别地,本发明不限于3GPP PSS中的部署,它同样可部署在使用比特率适配和重传的所有类型的无线和/或接线的通信系统中。
权利要求
1.一种提高分组化数据比特率适配和数据分组重传之间协作的方法,包括-以第一比特率从服务器向客户端传输数据分组;-在至少一个服务器缓冲器中至少暂时地存储至少一个所述传输的数据分组;-在客户端缓冲器中至少暂时地存储至少一个所述传输的数据分组;-发送关于在所述传输期间至少一个所述传输数据分组的损坏的损坏信息到所述服务器,其中所述发送的损坏信息由所述服务器分析以便决定是否需要将所述服务器缓冲器中存储的至少一个数据分组从所述服务器重传到所述客户端;-发送关于所述客户端缓冲器的状态的客户端缓冲器信息到所述服务器;以及-以第二比特率将数据分组从所述服务器传输到所述客户端,其中所述第二比特率至少部分地基于所述客户端缓冲器信息而确定,并且其中当开始以所述第二比特率从所述服务器向所述客户端传输所述数据分组时,以所述第一比特率传输并且存储在所述服务器缓冲器中的至少一个数据分组被进一步存储在所述服务器缓冲器中。
2.根据权利要求1所述的方法,其中以所述第一比特率传输并且存储在所述服务器缓冲器中的所述至少一个数据分组在一段持续时间期间被存储在所述服务器缓冲器中,而该持续时间由所述服务器基于所述发送的损坏信息确定。
3.根据权利要求1所述的方法,其中从所述服务器缓冲器中移去以所述第一比特率传输并且存储在所述服务器缓冲器中的所述至少一个数据分组取决于所述发送的客户端缓冲器信息。
4.根据权利要求1所述的方法,其中所述客户端缓冲器信息是指存储在所述客户端缓冲器中的最老数据分组的标识。
5.根据权利要求1所述的方法,其中从所述服务器到所述客户端的所述数据分组的所述传输至少部分地基于实时传输协议RTP,并且其中所述损坏信息和所述客户端缓冲器信息的所述发送至少部分地基于实时传输控制协议RTCP。
6.根据权利要求1所述的方法,其中将所述数据分组与根据3GPP分组交换流服务PSS从所述服务器传输到所述客户端的媒体流相关联。
7.一种用于提高分组化数据比特率适配和数据分组重传之间协作的系统,包括-服务器;以及-客户端;其中以第一比特率从所述服务器向所述客户端传输数据分组;其中在至少一个服务器缓冲器中至少暂时地存储至少一个所述传输的数据分组;其中在客户端缓冲器中至少暂时地存储至少一个所述传输的数据分组;其中发送关于在所述传输期间至少一个所述传输数据分组的损坏的损坏信息到所述服务器;其中所述发送的损坏信息由所述服务器分析以便决定是否需要将所述服务器缓冲器中存储的至少一个数据分组从所述服务器重传到所述客户端;其中发送关于所述客户端缓冲器的状态的客户端缓冲器信息到所述服务器;其中以第二比特率将数据分组从所述服务器传输到所述客户端;其中所述第二比特率至少部分地基于所述客户端缓冲器信息而确定;并且其中当开始以所述第二比特率从所述服务器向所述客户端传输所述数据分组时,以所述第一比特率传输并且存储在所述服务器缓冲器中的至少一个数据分组被进一步存储在所述服务器缓冲器中。
8.一种提高分组化数据比特率适配和数据分组重传之间协作的客户端,包括-设置成用于以第一比特率接收从服务器向客户端传输的数据分组的装置,其中在至少一个服务器缓冲器中至少暂时地存储至少一个所述传输的数据分组;-设置成用于在客户端缓冲器中至少暂时地存储至少一个所述传输的数据分组的装置;-设置成用于发送关于在所述传输期间至少一个所述传输的数据分组的损坏的损坏信息到所述服务器的装置,其中所述发送的损坏信息由所述服务器分析以便决定是否需要将所述服务器缓冲器中存储的至少一个数据分组从所述服务器重传到所述客户端;-设置成用于发送关于所述客户端缓冲器的状态的客户端缓冲器信息到所述服务器的装置;-设置成用于以第二比特率接收从所述服务器传输到所述客户端的数据分组的装置,其中所述第二比特率至少部分地基于所述客户端缓冲器信息而确定,并且其中当开始以所述第二比特率从所述服务器向所述客户端传输所述数据分组时,以所述第一比特率传输并且存储在所述服务器缓冲器中的至少一个数据分组被进一步存储在所述服务器缓冲器中。
9.一种提高分组化数据比特率适配和数据分组重传之间协作的服务器,包括-设置成用于以第一比特率从所述服务器向客户端传输数据分组的装置,其中在客户端缓冲器中至少暂时地存储至少一个所述传输的数据分组;-设置成用于在至少一个服务器缓冲器中至少暂时地存储至少一个所述传输的数据分组的装置;-设置成用于接收关于在所述传输期间至少一个所述传输的数据分组的损坏的所发送的损坏信息的装置,其中所述发送的损坏信息由所述服务器分析以便决定是否需要将所述服务器缓冲器中存储的至少一个数据分组从所述服务器重传到所述客户端;-设置成用于接收关于所述客户端缓冲器的状态的所发送的客户端缓冲器信息的装置;-设置成用于以第二比特率将数据分组从所述服务器传输到所述客户端的装置,其中所述第二比特率至少部分地基于所述客户端缓冲器信息而确定,并且其中当开始以所述第二比特率从所述服务器向所述客户端传输所述数据分组时,以所述第一比特率传输并且存储在所述服务器缓冲器中的至少一个数据分组被进一步存储在所述服务器缓冲器中。
10.一种用于提高分组化数据比特率适配和数据分组重传之间协作的方法,包括-以第一比特率从服务器向客户端传输数据分组;-在至少一个服务器缓冲器中至少暂时地存储至少一个所述传输的数据分组;-在客户端缓冲器中至少暂时地存储至少一个所述传输的数据分组;-发送关于在所述传输期间至少一个所述传输的数据分组损坏的损坏信息到所述服务器;-发送关于所述客户端缓冲器的状态的客户端缓冲器信息到所述服务器,其中所述发送的客户端缓冲器信息由所述服务器分析以便将所述数据分组的所述传输的第一比特率变成第二比特率;-基于所述发送的损坏信息和所述发送的客户端缓冲器状态信息确定是否需要数据分组的重传;以及-如果确定需要数据分组重传,则仅将存储在所述服务器缓冲器中的至少一个数据分组从所述服务器重传到所述客户端。
11.根据权利要求10所述的方法,其中所述损坏信息允许确定在所述传输期间损坏的至少一个数据分组的序列号,并且其中所述客户端缓冲器信息是指存储在所述客户端缓冲器的最老数据分组的序列号,并且其中所述对于是否需要数据分组的重传的确定取决于所述至少一个损坏的数据分组和所述最老数据分组的所述序列号之间的差。
12.根据权利要求11所述的方法,其中根据与存储在所述服务器缓冲器中的数据分组关联的序列号和所述最老数据分组的所述序列号之间的差,删除该存储在服务器缓冲器中的数据分组。
13.根据权利要求10所述的方法,其中从所述服务器到所述客户端的所述数据分组的所述传输至少部分地基于实时传输协议RTP,并且其中所述损坏信息和所述客户端缓冲器信息的所述发送至少部分地基于实时传输控制协议RTCP。
14.根据权利要求10所述的方法,其中将所述数据分组与根据3GPP分组交换流服务PSS从所述服务器传输到所述客户端的媒体流相关联。
15.一种用于提高分组化数据比特率适配和数据分组重传之间协作的系统,包括-服务器;以及-客户端,其中以第一比特率从服务器向客户端传输数据分组;其中在至少一个服务器缓冲器中至少暂时地存储至少一个所述传输的数据分组;其中在客户端缓冲器中至少暂时地存储至少一个所述传输的数据分组;其中发送关于在所述传输期间至少一个所述传输的数据分组损坏的损坏信息到所述服务器;其中发送关于所述客户端缓冲器的状态的客户端缓冲器信息到所述服务器;其中所述发送的客户端缓冲器信息由所述服务器分析以便将所述数据分组的所述传输的第一比特率变成第二比特率;其中基于所述发送的损坏信息和所述发送的客户端缓冲器状态信息确定是否需要数据分组的重传;并且仅在确定需要数据分组重传时,才将存储在所述服务器缓冲器中的至少一个数据分组从所述服务器重传到所述客户端。
16.一种用于提高分组化数据比特率适配和数据分组重传之间协作的客户端,包括-设置成用于以第一比特率接收从服务器向客户端传输的数据分组的装置,其中在至少一个服务器缓冲器中至少暂时地存储至少一个所述传输的数据分组的装置;-设置成用于在客户端缓冲器中至少暂时地存储至少一个所述传输的数据分组的装置;-设置成用于发送关于在所述传输期间至少一个所述传输数据分组损坏的损坏信息到所述服务器的装置;-设置成用于发送关于所述客户端缓冲器的状态的客户端缓冲器信息到所述服务器的装置,其中所述发送的客户端缓冲器信息由所述服务器分析以便将所述数据分组的所述传输的第一比特率变成第二比特率;-设置成用于接收存储于所述服务器缓冲器中并从所述服务器重传到所述客户端的至少一个数据分组的装置,其中所述至少一个数据分组仅在确定需要数据分组重传时才被重传,并且其中所述确定是基于所述发送的损坏信息和所述发送的客户端缓冲器状态信息的。
17.一种用于提高分组化数据比特率适配和数据分组重传之间协作的服务器,包括-设置成用于以第一比特率从所述服务器向客户端传输数据分组的装置,其中在客户端缓冲器中存储至少一个所述传输的数据分组;-设置成用于在至少一个服务器缓冲器中暂时地存储至少一个所述传输的数据分组的装置;-设置成用于接收向所述服务器发送的关于在所述传输期间至少一个所述传输数据分组损坏的损坏信息的装置;-设置成用于接收向所述服务器发送的关于所述客户端缓冲器的状态的客户端缓冲器信息的装置,其中所述发送的客户端缓冲器信息由所述服务器分析以便将所述数据分组的所述传输的第一比特率变成第二比特率;-设置成用于基于所述发送的损坏信息和所述发送的客户端缓冲器状态信息来确定是否需要对数据分组重传的装置;以及-设置成用于从所述服务器向所述客户端重传存储于所述服务器缓冲器中的至少一个数据分组的装置,其中所述重传仅在确定需要数据分组重传时才执行。
18.一种具有指令的计算机程序,该指令可操作使得处理器执行权利要求1的所述方法步骤。
19.一种计算机程序产品,包括具有指令的计算机程序,该指令可操作使得处理器执行权利要求1的所述方法步骤。
20.一种具有指令的计算机程序,该指令可操作使得处理器执行权利要求10的所述方法步骤。
21.一种计算机程序产品,包括具有指令的计算机程序,该指令可操作使得处理器执行权利要求10的所述方法步骤。
全文摘要
一种提高分组化数据比特率适配和数据分组重传之间协作的方法,以第一比特率从服务器向客户端传输数据分组;在服务器缓冲器中存储传输的数据分组;在客户端缓冲器中存储传输的数据分组;发送关于在传输期间所传输的数据分组的损坏的损坏信息到所述服务器,其中发送的损坏信息由所述服务器分析以便确定是否需要重传所述服务器缓冲器中存储的数据分组;以及发送关于客户端缓冲器的状态的客户端缓冲器信息到服务器,其中客户端缓冲器信息由服务器分析以便确定是否需要重传数据分组。
文档编号H04L1/18GK1957576SQ200580015094
公开日2007年5月2日 申请日期2005年5月11日 优先权日2004年5月13日
发明者埃姆雷·阿克叙, 戴维·莱昂, 伊戈尔·屈尔西奥 申请人:诺基亚公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1