发送及接收实时数据的制作方法

文档序号:7668475阅读:282来源:国知局
专利名称:发送及接收实时数据的制作方法
技术领域
本发明涉及通过分组交换网络处理对时间敏感的数据,尤其是通过因特网发送及接收视频数据。
本发明涉及一种通过分组网络向客户机提供流式视频服务的方法,同时在维持缓冲器的使用时降低通常与准备数据缓冲器相关联的启动延迟。本发明还涉及一种控制流式视频的传输速率的方法,以适应网络中的拥塞。
背景技术
传统上,因特网支持的通信业务包括FTP、e-mail以及网上冲浪,其中总体延迟并没有根本上降低媒体的最终展示。更快速处理的多媒体PC机的出现推动了通过因特网来传送多媒体,包括视频。可是对时间敏感的应用要求连续的、保证服务质量的、宽带数据信道,这看上去与因特网的基于分组的特性不一致,并且有可能给传输带来无法接受的分组抖动,也就是由于拥塞而由可变路由选择以及传送率的易变性所导致的分组到达间隔时间的变化。当前,商业流式技术通过在开始回放视频材料之前构建一个大缓冲器(5-30秒)来克服抖动。这种启动延迟对于用户来说并不是最优的,用户在认识到被请求的内容的错误之前,不得不在这段时间内进行等待;并且一般会损害用户的多媒体展示的感受。

发明内容
根据本发明的第一方面,提供了一种操作实时通信设备的方法,该设备包括一个实时数据发送器,一个实时数据显示装置和一个同所述发送器及所述显示装置连接的网络,其中该显示装置包括一个存储器,所述方法包括步骤
操作所述发送器向所述显示装置发送多个第一编码率数据分组,其中该数据分组表示一个实时展示的第一部分,所述传输速率大于所述编码率;操作所述显示装置以接收所述第一编码率数据分组并存至所述存储器;以所述第一编码率从所述存储器中移除第一编码率数据分组以进行解码,以便于以第一质量等级将所述实时展示呈现给所述用户;当向所述存储器填充的所述第一编码率数据达到一个预定水平时,向所述发送器发送一个表示已经达到所述水平的指示;在接收到所述指示时,操作所述发送器向所述显示装置发送表示所述实时展示的随后部分的第二编码率数据分组,所述第二编码率大于所述第一编码率;操作所述显示装置以接收表示实时展示的随后部分的第二编码率数据分组并存至所述存储器;以所述第二编码率从所述存储器中移除第二编码率数据分组以进行解码,以便于以高于所述第一质量等级的第二质量等级将所述实时展示呈现给所述用户。
根据本发明的另一方面,提供了一种在构建一个时间敏感数据的缓冲器的同时,向客户机提供时间敏感数据的方法,该方法包括接收已被发送至所述客户机的时间敏感数据,把所述时间敏感数据传送至一个数据缓冲器;以及,监视数据缓冲器中的时间敏感数据的数量;从数据缓冲器中读出所述时间依赖数据以进行处理从而查看;其中该方法的特征在于,从数据缓冲器中读取时间敏感数据的速率低于将该时间敏感数据传送至数据缓冲器的速率;并且当时间敏感数据到达数据缓冲器时把时间敏感数据从数据缓冲器中读出,使得在客户机接收时间敏感数据和使时间敏感数据可用之间基本没有延迟;并且提供该时间敏感数据。
在某一时刻数据缓冲器将变得足够满。那么,可以将传输速率降至等于查看装置的消耗速率,这将使得缓冲器中的数据量达到平衡。可是在这种情况下,该连接的带宽并不能充分利用。
在本发明的另一方面中提供了一种向客户机提供时间敏感数据的方法,其中在数据缓冲器中填充了预定数量的数据之前,一直接收以第一比特率编码的时间敏感数据,在此刻之后接收以第二比特率编码的时间敏感数据,其中第二比特率高于第一比特率。
本发明的另一方面提供了一种向客户机呈现时间敏感数据的方法,其中以第一传输速率从第一数据缓冲器中读出以第一比特率编码的时间敏感数据以将其传输到客户机;并且,根据请求以第二速率从第二数据缓冲器中读取出以第二比特率编码的时间敏感数据。
由于较高比特率的视频数据会带来较好的再现质量,因此希望使用一个链路的尽可能多的可用带宽来传输数据。可是,网络中数据的损失会导致服务的严重退化-大大超过增加比特率所带来的好处。例如,利用预测编码方案例如H.263以及MPEG,接收一个500kbits-1视频流的一半很可能会比接收一整个250kbits-1视频流得到差很多的质量。因此,以一种受控方式来降低传输速率而不是任由数据在网络中丢失是很重要的。因特网协议TCP具有一个内建控制机制,其中数据传输速率被稳定增加直到检测到有分组丢失,随后降低数据速率。而在分组损失再次出现之前再次增加数据速率。可变的传输速率被称为弹性的速率,并且能够响应网络状态而控制数据传输速率的应用被称为TCP友好的应用。希望以TCP友好的方式来提供视频数据,使得在任何时候都利用尽可能多的可用带宽。TCP友好的数据传输的另一个好处就是由于各个应用自己降低数据速率,直到每个应用具有公平的带宽份额,因此管理了网络中的拥塞。
标准压缩技术例如MEPG或H.263可以表现出TCP友好的特性,例如可以参见本申请人的共同待审的专利申请GB9928023.2。但是,这种方案要求每个视频流都有高速、专用的PC机。当检测到网络阻塞时,对编码后的数据流进行由高比特率至低比特率的代码转换也会遭受计算量过重的问题。另一种方法就是使用视频流的分层,借此通过增加或丢弃视频流的层来实现质量适应。该方法的一个缺点就是效率低,这是由于可用带宽的一部分必须被分配给用来集成各层的指令。
本发明还进一步提供了一种方法,其中从第一及第二缓冲器中读取时间敏感数据的速率可以根据到客户机的链路状态而动态改变,并且进一步,根据到客户机的链路状态,以第一传输速率从第一数据缓冲器中读出按照第一比特率编码的时间敏感数据,以将其发送至客户机,或者以第二传输速率从第二数据缓冲器中读出按照第二比特率编码的时间敏感数据,其中所述第一比特率低于第二比特率。


现在参照附图,仅通过实例对本发明的实施例进行描述,其中图1为编码器、视频流式机以及客户机之间的关系示意图;图2显示视频流式机的结构;图3显示客户机的结构;以及图4示出了本发明一个实施例的逐步操作。
具体实施例方式
如图1所示,本发明的第一实施例包括一个压缩视频数据源,即编码器1,其同时以低比特率RL(例如500kbit-1)及高比特率RH(例如1500kbit-1)对数据进行编码。使用的压缩编解码器可以为H.263,但同样也可以为其它的编解码器例如MEPG。编码器1用“实况”视频数据作为它的输入,例如体育比赛的广播。
通过分立的逻辑连接以传输速率TE将两个编码后的数据流发送至视频流式机2。视频流式机2可以位于与编码器1相同的房屋内并通过内联网链接。视频流式机2在服务器计算机上运行,该服务器计算机例如是一台奔III700MHz、256M内存并能够访问因特网的服务器计算机。
视频浏览器(到目前为止称为客户机)在一个PC(图1中的a,b,c等等)上运行,该PC被配置为适于对访问因特网,该浏览器可以通过因特网与视频流式机2相连,因此该客户机能够对内容进行访问。比较合适的PC终端是266MHz的奔II膝上型电脑。该视频流式机2可以支持大量客户机(一般最多为1000)对相同的数据流进行查看。
对于一个实况广播,编码器1将以实时传输速率TE来发送数据。以不同的比特率编码的两个数据流RL以及RH将会提供不同质量的视频再现,但是各个数据流都有相同的传输速率TE。为了能够实时地重放节目,必须以该速率对数据进行解码。
图2示出了视频流式机2的结构。输入接头21和22分别从编码器2中接收以低比特率RL编码的低质量编码视频数据以及以高比特率RH编码的高质量编码视频数据,并将其分别提供给缓冲器23和24。需要指出的就是,为由视频流式机2接收的编码视频数据的每个通道都提供了一个缓冲器。通过开关26从各个缓冲器23、24中读出编码视频数据,并将所选择的编码视频数据流传送至输出接头27。还提供了一个缓冲器管理器25,该管理器25能够控制从各个缓冲器23、24中读取数据的速率并由此定义了视频流式机2的传输速率TS。该缓冲器管理器也同开关26相连并能够接收来自接头28的信号。可以通过改变各个分组的传输之间的时间延迟来选择TS,使得TS可以小于、等于或大于编码器传输速率TE。本领域内的技术人员能够理解的是,对于维持传输速率TS>TE的限制因素就是缓冲器23、24的大小,因此其大小为S kb的缓冲器能够支持TS=2TE传输速率的时间为大小为S/2kb的缓冲器传输速率所能支持的时间的两倍长。通过对开关26以及传输速率TS进行控制,该缓冲器管理器能够按两种标度来控制从视频流式机2向外输出的比特率;通过调整传输速率TS,可以实现对比特率的精细控制,并且通过在两个分别以比特率RL和RH进行编码的编码数据流之间的切换可以实现比特率的粗比例控制。响应从接头28收到的信号,该缓冲器管理器25调整TS或在缓冲器之间切换输出。
图3示出了在PC机3a、b、c等上面运行的客户机的结构。在客户机通过接头27接收从视频流式机2发出来的编码视频数据,并由分组损失检测器31检查其完整性。接着将该数据发送给客户机缓冲器32,该缓冲器的大小适于吸收网络吞吐量的波动。客户机缓冲器32直接与解码器33相连,并且从该解码器中将解码后的数据发送给客户机以在其屏幕(未示出)上进行显示。客户机状态监视器34分别同分组损失检测器31以及客户机缓冲器32相连。客户机状态监视器34能够通过接头28发送信号。
该分组损失检测器31监视输入的分组。如果检测到有分组损失,则会将一个信号发送至客户机状态监视器34,并由该监视器通过接头28通知视频流式机2的缓冲器管理器。并可以重新发送丢失的分组。该缓冲器管理器25平稳地增加传输速率TS直到出现一贯模式的分组损失,这就表示已经利用了最大的带宽。为了维持一个无阻塞网络,可以接着按照指数规律地降低传输速率TS。客户机状态监视器34监视客户机缓冲器32中数据量的大小,使得当客户机缓冲器32中充满了足够数据时通过接头28向视频流式机2的缓冲器管理器25发送一个信号。
如上所述的视频流式机2以及客户机3的系统允许用户友好的视频流传输,也就是该客户机缓冲器32能够保证视频质量而无论网络状态如何变化,否则的话,网络状态变化会对媒体质量在整体的感觉上带来不好的影响。
下面参照图4对该发明的当前实施例的操作进行说明。
对视频流式机2进行初始化,该视频流式机2向缓冲器23、24中填入了来自编码器1的数据量。对于一个实况广播,会持续地向缓冲器23、24中填入数据,并随后在接收了由缓冲器大小和数据质量定义的时间量之后就丢弃数据。
可以采用运行了浏览因特网网页的浏览器软件的PC来选择,例如,一个到一个网站上的实况广播的链接,其中该网站由提供视频流的实体掌握。如果对查看某一特定片断或广播感兴趣,则用户可以点击(选择)该链接。该浏览器软件检测到有人请求视频数据流并启动用于实施客户机3的视频查看客户机软件。客户机3通过接头28向缓冲器管理器25发出“发送数据”的命令,缓冲器管理器25设置开关26以从低比特率数据缓冲器23中读取编码视频数据并请求一个TS=2TE的传输速率。数据被发送给数据接头27并接着被传至客户机3。使用上面的对于RL500kbit-1的编码比特率实例,以速率1000kbit-1向网络中的客户机传输数据。
客户机3接收编码视频数据并通过分组损失检测器31将其发送给客户机缓冲器32,其中以速率2TE向客户机缓冲器32提供数据。当检测到缓冲器32中有数据时,就立即以速率TE把编码视频数据读出到解码器33。因此以速率TE向缓冲器32中填充数据,同时显示出来自解码器33的解码数据。因此就可以向用户提供视频图像而不需要等着向客户机缓冲器32填充。
客户机监视器34会等到客户机缓冲器32中的RL数据的数量达到一个规定水平,此时通过接头28向视频流式机2上的缓冲器管理器25发送“切换缓冲器”的命令。接着缓冲器管理器25会将数据流从低比特率数据缓冲器23切换至高比特率数据缓冲器24并指示以速率TS=TE进行传输。使用上面的编码率实例,以速率1500kbit-1在网络中传输数据。
接着开始向客户机缓冲器32中填充高质量数据,而该高质量数据将被放在低质量数据后面。经过一段时间以后,开始向解码器33中读入RH数据,由此用户可以感觉到图象质量的提高。这时,客户机3具有一个充满的缓冲器并且用户可以看到其质量与网络链接性能相一致的图像。
该视频流式机2可以支持多个客户机(典型的为1000个)。每个客户机最初被给予一个用于启动阶段的唯一的读出点,由此,在客户机缓冲器32达到平衡并且视频流式机2从其缓冲器24中提供高比特率数据之后,该读出点可以同其它客户机读出点合并。由于对于某一个客户机来说,网络容量上的差异会要求增加或减小传输速率,因此可能必须转移读出点。
技术人员会知道,低比特率数据缓冲器23的大小应该使得在一段时间内允许从其中以速率2TE读取数据,其中该段时间的长度足以向客户机缓冲器32提供合适的数据量。例如,为了在客户机3缓冲5秒钟的500kbit-1的数据,该视频流式机2必须提供5秒钟的1000kbits的数据,其中解码器33每秒钟消耗500kbits的数据并且每秒钟有500kbits的数据被装入到缓冲器中,直到经过了5秒钟。因此低比特率缓冲器必须能够容纳至少5Mb的数据(5×1000kbits),或者是稍微多于0.5Mb。
技术人员会知道,当开始从缓冲器中读取数据时,会存在与编码数据流的“接进”(tapping into)相关联的问题。编码器1中通常采用的压缩技术涉及对视频数据的一个帧编码,该帧被称为锚固帧或I-帧,并根据该帧来估计下一个帧的样子,这一估计出来的帧被称为B-帧。通过这种方式,表示一系列帧的数据量会大大减少。可是,如果将从数据缓冲器23、24之一中读取出来的第一帧为B-帧,则由于解码器试图根据一个估计来重构帧,解码数据的前几个帧会变得难以理解。在本发明的进一步的实施例中,与数据缓冲器23、24并列提供一个仅由I-帧构成的额外的数据缓冲器。将被发送的第一帧被从I-帧缓冲器中读取出来,因此会向解码器提供一个用于开始解码的可靠的点。然后,切换为从数据缓冲器23或24中读取数据。
该系统允许用户友好的视频流传输,也就是视频的质量并不随着网络状态的变化而迅速波动,而这种波动会对媒体的整体感受质量带来不好的影响。当客户机报告有分组损失时,系统会按照指数规律降低其传输速率。由于在客户机中缓冲有数据,因此这无需导致视频源的立即切换。恰在分组损失之后,可能传输速率低于编码率,并且为了满足视频解码器的要求,客户机将缓冲的数据补充到所接收到的数据,这就使得客户机的缓冲器清空。当发生单独的分组损失时,系统可以再一次增大传输速率,在最终返回至向缓冲器中填充数据的状态之前,在最开始的时候降低清空客户机缓冲器的速率。
技术人员都知道,在一段时间内以可变的速率发送数据的能力使得流式数据具有弹性并允许TCP友好的传输。由分组损失检测器31检测到的持续不断的分组损失表示网络发生了阻塞。视频流式机2的缓冲器管理器25通过命令降低来自高比特率数据缓冲器24的数据的传输速率来对分组损失的通知作出反应。高比特率数据缓冲器24的大小应该适于处理这种情况。如果在降低了的传输速率的情况下分组损失持续的时间长于高比特率数据缓冲器可以持续的时间,则缓冲器管理器25会切换为从低比特率数据缓冲器23中提供数据。当网络的数据性能波动时,就必须要有有效的管理协议来防止数据缓冲器23、24之间的快速切换,因为这样会导致回放的视频的感受质量发生变化。虽然用户可以忍受低质量的回放,但是质量的快速变化会使人感到很不愉快。
没有对可以提供给视频流式机的编码数据流的数量进行限制。最大的带宽利用率可以通过这种方式实现首先,从低比特率数据缓冲器中读取数据,增加传输速率。若在该传输速率的情况下没有发现分组损失,则将输出切换为一个较高的比特率数据缓冲器,由此增加传输速率。如果该传输速率没有受到阻碍,则会切换至一个更高的比特率数据缓冲器,如此下去直到使用了最大的带宽。
位于视频流式机2上的缓冲器管理器25可以确定如何调整传输速率Ts以及何时切换缓冲器。同样的,关于传输速率TS以及从哪个缓冲器读数据的指令可以被从客户机3发送至视频流式机2。已经为所述实施例中的缓冲器管理器25选择了位置,这是由于将控制中心置于负责服务收费的中心(在这种情况下就是ISP)附近是很实用的。
在上述的实施例中选择了视频数据作为多媒体数据的一个实例。本发明同样适用于其它形式的时间敏感数据,例如音频数据或多媒体展示。
在上述的实施例中,由编码器1提供数据。同样的,压缩视频数据也可以位于节目数据文件的库中,例如长片的库,可以在需要的时候对其进行访问。
视频流式机2可以远离编码器1,使得视频流式机2与编码器1通过因特网相连。还可以通过因特网服务提供者(ISP)和视频流式机2与编码器1之间的远程连接来操作视频流式机2,这就允许ISP从多个编码器向客户机提供可用内容。
权利要求
1.一种操作实时通信设备的方法,该设备包括一个实时数据发送器,一个实时数据显示装置和一个同所述发送器及所述显示装置连接的网络,其中该显示装置包括一个存储器,所述方法包括步骤操作所述发送器向所述显示装置发送多个第一编码率数据分组,其中该数据分组表示一个实时展示的第一部分,所述传输速率大于所述编码率;操作所述显示装置以接收所述第一编码率数据分组并存储至所述存储器;以所述第一编码率从所述存储器中移除第一编码率数据分组以进行解码,从而以第一质量等级将所述实时展示呈现给所述用户;当向所述存储器填充所述第一编码率数据到达一个预定水平时,向所述发送器发送一个表示已经达到所述水平的指示;在接收到所述指示时,操作所述发送器向所述显示装置发送表示所述实时展示的随后部分的多个第二编码率数据分组,所述第二编码率大于所述第一编码率;操作所述显示装置以接收表示所述实时展示的随后部分的第二编码率数据分组并存储至所述存储器;以所述第二编码率从所述存储器中移除第二编码率数据分组以进行解码,从而以高于所述第一质量等级的第二质量等级将所述实时展示呈现给所述用户。
2.一种呈现时间敏感数据并构建一个时间敏感数据缓冲器的方法,该方法包括接收时间敏感数据;把所述时间敏感数据读取至一个数据缓冲器;以及,从数据缓冲器中读出所述时间敏感数据以用于呈现;以及,呈现时间敏感数据;其中该方法的特征在于从数据缓冲器中读取时间敏感数据的速率低于将该时间敏感数据读取至数据缓冲器的速率;并且当该时间敏感数据最初到达数据缓冲器时,开始从数据缓冲器中读取时间敏感数据,使得在客户机最初接收时间敏感数据和使时间敏感数据可用于呈现之间基本没有延迟。
3.一种根据权利要求2的在客户机呈现时间敏感数据的方法,包括步骤监视数据缓冲器中时间敏感数据的数量;其中接收到的时间敏感数据的比特率取决于数据缓冲器中的数据量。
4.一种根据权利要求3的在客户机呈现时间敏感数据的方法,其中,在数据缓冲器中的数据量达到了一个上阈值之前,接收以第一比特率编码的时间敏感数据,此后接收以第二比特率编码的时间敏感数据,其中所述第一比特率低于第二比特率。
5.一种根据权利要求4的在客户机呈现时间敏感数据的方法,其中,在数据缓冲器中的数据量达到了一个下阈值之前,接收以第二比特率编码的时间敏感数据,此后接收以第一比特率编码的时间敏感数据。
6.一种根据前面任何一个权利要求的在客户机呈现时间敏感数据的方法,其中,把时间敏感数据读取到数据缓冲器中的速率取决于数据缓冲器中的数据量。
7.一种向客户机提供时间敏感数据的方法,其中以多个比特率对时间敏感数据进行编码;其中选择以一种比特率编码的数据用于向客户机传输;将该数据发送给客户机。
8.一种根据权利要求7的向客户机提供时间敏感数据的方法,其中可以动态地改变向客户机发送所选择的时间敏感数据的速率。
9.一种根据权利要求7的向客户机提供时间敏感数据的方法,其中根据一个接收到的信号选择以一种比特率编码的时间敏感数据。
10.一种根据权利要求8的向客户机提供时间敏感数据的方法,其中向客户机发送所选择的时间敏感数据的速率取决于一个接收到的信号。
11.一种根据权利要求9或10的向客户机提供时间敏感数据的方法,其中该接收到的信号表示至客户机的链路的状态。
12.一种根据权利要求9或10的向客户机提供时间敏感数据的方法,其中该接收到的信号表示客户机的数据缓冲器中的数据量。
13.一种根据权利要求11的向客户机提供时间敏感数据的方法,其中至客户机的链路的状态是由客户机的数据缓冲器中的数据量确定的。
14.一种根据前面任何一个权利要求的向客户机提供时间敏感数据的方法,其中,时间敏感数据表示视频数据,或者可以表示音频数据。
15.一种用于接收时间敏感数据的设备,该设备包括缓冲器装置,用来存储一段时间内接收到的时间敏感数据;用来把所述时间敏感数据读取至缓冲器装置的装置;用来从所述缓冲器装置中读取出所述时间依赖数据的装置;监视装置,用来监视缓冲器装置中容纳的数据量;以及用来发送与所述缓冲器装置中容纳的时间依赖数据量有关的数据的装置,所述设备的特征在于以下一种装置,其用来当监视装置检测到该时间敏感数据到达数据缓冲器时,开始从数据缓冲器中读出时间敏感数据,使得在客户机最初接收时间敏感数据和从缓冲器中读取出时间敏感数据之间基本没有延迟。
16.一种用于向至少一个客户机提供编码视频数据的设备,所述设备包括接收装置,用来接收多个数据流,其中各个数据流都包括来自相同源、具有不同量化参数的编码视频数据,多个缓冲器装置,用来存储一段时间内的各个编码视频数据流,至少一个读取装置,用来从其中一个缓冲器装置中读取编码视频数据,缓冲器管理装置,被设置为对至少一个读取装置进行控制,其特征在于在缓冲器管理装置的控制下,所述读取装置被设置为从任何一个缓冲器装置中读取编码视频数据,读取时的帧速率可以小于、等于或大于对视频数据进行编码的帧速率。
17.根据权利要求16的用于向客户机提供编码视频数据的设备,包括用来接收与客户机缓冲器中的编码视频数据量有关的数据的装置,以及用来确定至客户机的链路的当前容量的装置,其中缓冲器管理器被设置为根据客户机缓冲器中的编码视频数据量以及至客户机的链路的容量对读取装置进行控制。
全文摘要
本发明关于通过分组网络(例如因特网)进行实时数据(例如视频)流式传输。一般的,在分组网络中,为了查看流式视频数据,会生成一个数据贮存器来减小抖动带来的影响,这一抖动是由数据分组到达之间的时间间隔的变化导致的。因此,在当贮存器被填满并可以查看视频材料之前会经历一个时间延迟。本发明涉及不需要启动延迟就能够提供流式视频数据,这主要通过使从视频流式机向视频浏览器发送数据的速率高于视频浏览器损耗数据的速率并且使用多余的数据在视频浏览器中生成一个缓冲器。当生成了一个大小合适的缓冲器时,就可以降低向缓冲器发送数据的传输速率。为了在可用的带宽内发送质量最好的材料,当贮存器被填满时可以将视频数据提供源切换至一个更高比特率的源。可以在发送数据期间适应网络中的波动,其方法是通过调整数据的传输速率来进行精细标度的调节并通过在以不同的比特率编码的数据流之间切换来进行粗略标度的调节。通过计数视频浏览器中丢失的分组的数量来确定网络吞吐量的波动,将该信息反馈给视频流式机,并据此来调整数据的流量。
文档编号H04N7/24GK1478349SQ0181975
公开日2004年2月25日 申请日期2001年11月28日 优先权日2000年11月29日
发明者马休·大卫·沃克, 马休 大卫 沃克, 詹姆士 雅各布, 理查德·詹姆士·雅各布, 埃尔林 尼尔森, 迈克尔·埃尔林·尼尔森 申请人:英国电讯有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1