自适应前向纠错的制作方法

文档序号:7949659阅读:266来源:国知局
专利名称:自适应前向纠错的制作方法
技术领域
本发明主要涉及前向纠错(FEC)。
背景技术
有时,由于可能会出现大量的大包丢失/丢弃,无线网络的错误率不足以用于视频应用。丢弃或丢失的包有时没有被恢复,但是在实施包恢复的方案中,利用重传或FEC或两者结合来恢复包。FEC已广泛用于纠错而无需重传。FEC通过发送冗余信息来恢复被损坏、被丢弃或丢失的包中所包含的数据,该冗余信息可被接收器用来重构丢失的数据。FEC提供比重传更快的数据恢复,并且不需要反馈信道。静态FEC技术已被许多研究人员使用,但是它不能使FEC开销与信道和网络条件匹配。
在无线网络中使用FEC已成为无线视频应用的活跃研究领域。FEC的一个优点是它很适于多播。而且,FEC不需要与视频编码器进行交互,因此可应用于任何视频编码技术以及存储的和直播的视频。然而,由于网络资源和静态FEC算法所添加的冗余量之间的不匹配,该冗余量消耗无线网络的有限带宽,静态FEC算法可能会使性能降级。
自适应FEC技术已显示出有利于网络性能。所有自适应技术都需要反馈来估计可用的网络带宽,然后基于该反馈来修改冗余量。反馈可以是显式的,如实时控制协议(RTCP)报告,或隐式的,如使用无线发送器低层包重传。一般而言,如果网络条件差,则自适应机制增加要发送的冗余包数。如果网络条件令人满意,则不需要发送冗余包,或者只需要发送少量的冗余包。大多数现有技术方法都针对位级FEC。

发明内容
本发明致力于解决现有技术的这些和其它缺陷和缺点,且本发明针对自适应前向纠错(FEC)。本发明的自适应FEC的一种应用是用于无线网络上的视频流传输。
根据本发明一方面,提供一种自适应FEC设备。该设备包括FEC编码器和自适应FEC装置。该FEC编码器用于将k个源数据包编码为n个包,其中n>k,并且该n个包包括冗余包。该自适应FEC装置用于基于至少一条反馈消息,来适应性地确定要和k个编码包一起发送的冗余包数。该至少一条反馈消息可以指示要在其上发送FEC编码包的无线网络的条件或状态通过以下示范性实施例的详细描述,并结合附图,本发明的这些及其它方面、特征和优点将变得显而易见。


根据以下例图,可以更好地理解本发明,其中图1示出了可以应用本发明的示范性编码/解码前向纠错(FEC)过程的图;图2示出了可以应用本发明的典型无线视频系统架构的图;图3示出了无线局域网(WLAN)链路的接收比特率对所提供的发送速率的曲线;以及图4示出了根据本发明原理的,用于无线网络上视频流传输的自适应FEC方法的流程图。
具体实施例方式
在通过无线网络进行视频流传输的优选实施例中,本发明针对自适应前向纠错(FEC)。本发明提供一种通过基于网络条件动态调节FEC强度,来提高视频流性能的自适应FEC方法和设备。基于网络条件来优化通过无线网络发送的冗余包数。利用反馈信号向发送器方的自适应FEC装置告知网络条件。反馈信号可以来源于,但不限于接收器、中间节点或发送器链路层。可以在发送器方,通过访问发送器无线硬件的信息如重传尝试,或者如果使用RTP(实时协议)时则利用RTCP报告,来监测网络条件。发送器方信息的使用提供了对网络条件变化的更快响应,因为不经常发送RTCP报告以保留网络资源。然而,RTCP报告包括更多的信息,并且可用于更准确地估计可用的网络带宽。也可使用反馈消息的组合。自适应FEC装置基于网络条件来决定要发送多少冗余包。如果网络条件差,则与网络条件令人满意的情况相比,要发送的冗余包数目更多。应该理解,虽然本发明是根据包级擦除FEC来描述的,但是也可以在保持本发明精神和范围的同时,根据本发明使用其它类型的包级FEC。
本说明书说明本发明实施例的原理。因而,应该理解,本领域技术人员将能够设计出虽然未在此处描述的实施例中明确描述或示出,但体现本发明原理且被包括在本发明精神和范围内的各种配置。
在此列举的所有例子和条件语言都旨在教导,来帮助读者理解本发明原理、以及本发明人对本领域进一步贡献的概念,并且应该被看作是不限于这些具体列举的例子和条件。
而且,在此列举本发明原理、方面和实施例及本发明特例的所有语句,都旨在包括与本发明结构上和功能上等同之物。另外,这些等同物旨在包括当前周知的等效物以及将来研发出的等效物,即研发出来执行相同功能的任何元件,而不论其结构怎样。
因而,例如,本领域技术人员应该理解,在此给出的框图代表体现本发明原理的说明性电路的概念视图。类似,应该理解,任何流程表、流程图、状态转移图、伪码等,都代表基本上可在计算机可读介质上表示、因而可通过计算机或处理器来执行的各种过程,而不管是否明确示出这种计算机或处理器。
可以利用专用硬件以及能够与适当软件关联地执行软件的硬件,来提供图中所示各元件的功能。当通过处理器来提供这些功能时,可以通过单个专用处理器、单个共享处理器、或其中一些可被共享的多个单独处理器,来提供这些功能。而且,术语“处理器”或“控制器”的显式使用不应被看作是专门指能够执行软件的硬件,而可以隐含包括但不限于数字信号处理器(DSP)硬件、用于存储软件的只读存储器(ROM)、随机存取存储器(RAM)和非易失性存储器。
也可以包括其它常规或定制的硬件。类似地,图中所示的任何开关都只是概念性的。可以通过程序逻辑的工作、专用逻辑、程序控制与专用逻辑的交互,乃至手动地,执行它们的功能,实施者可以通过对上下文更具体的理解,来选择特殊技术。
在本发明权利要求中,被表示为用于执行指定功能的手段的任何元件都旨在包括执行该功能的任何方式,例如包括a)执行该功能的电路元件的组合,或b)任何形式的软件,因而包括固件和微码等形式的软件,该软件与用于执行该软件的适当电路结合以执行该功能。如这种权利要求所定义的本发明在于,由所列举的各种手段提供的功能性以权利要求所要求的方式被组合和集合在一起。因而,认为能够提供那些功能性的任何手段都等效于在此示出的手段。
包级擦除FEC用于提高无线链路的可靠性。因为错误的确切位置已知,所以擦除较容易进行。(n,k)擦除FEC方案将k个源包编码为n(n>k)个包。这样进行编码,以致于由k个包组成的任何子集都足以重构源数据。
转到图1,总地用参考标记100来表示示范性编码/解码FEC过程。源包(k个原始包)110被输入到编码器120,由编码器120输出n个包130。这n个包130包括与这k个包对应的编码数据131以及冗余包对应的编码数据132(即图1中的阴影块)。可利用多个FEC包的插入,来提高多个FEC块的纠错性能。解码器140对这n个包(包括原始的k个包110和冗余包)进行解码,以获得重构数据150(和k个原始包110相同)。
无线网络的丢包率随时间、网络条件、网络负载等而波动。因此,自适应前向纠错控制方案对于调节通过信道发送的冗余的数量很有用。本发明提供基于反馈的自适应前向纠错方法和设备。如果网络条件令人满意,则不需要发送大量的冗余包。相反,当丢包率高时(在预定阈值以上),则发送较多的冗余包。
转到图2,总地用参考标记200来表示典型的无线视频系统架构。发送器方(包括元件205、210、215、220、225和230)是受到FEC保护的视频源,视频源可以是存储的或直播的内容。无线视频系统架构200包括视频存储器205,该视频存储器205具有以信号通信方式与FEC编码器210的输入相连的输出。任选地可以利用视频捕获单元215来代替视频存储器205,该视频捕获单元215具有以信号通信方式与视频编码器220的输入相连的输出,该视频编码器220依次又包括以信号通信方式与FEC编码器210的输入相连的输出。FEC编码器210的输出以信号通信方式与缓冲器225的第一输入相连。缓冲器225的输出以信号通信方式与无线网络接口230的输入相连。无线网络接口230的第一输出以信号通信方式与无线链路(在此也称为“无线网络”)235相连。自适应FEC装置240的第一和第二输入以信号通信方式分别与无线网络接口230的第二输出和无线链路235相连。FEC装置240的输出以信号通信方式与缓冲器225的第二输入相连。接收器245以信号通信方式与无线链路235相连。
发送器方FEC编码器210对包进行编码。每个包都包括整数个宏块,并具有固定的字节数。然后,发送器方在经由无线网络接口230将视频数据传递到无线网络235上之前,用实时协议/用户数据报协议(RTP/UDP)对视频数据进行打包。
发送器方始终发送所有的原始包。自适应FEC块基于一条或多条反馈消息(以下称为“反馈消息”),来决定要发送的冗余包数。反馈消息可以来源于接收器方、并通过RTCP被发送给发送器,或者可以从发送器无线重传信息来获得反馈消息。无线重传信息测量一个包被重传的次数,并可用作网络条件指示器。虽然发送器方信息可用于产生对网络条件的快速适配,但有效的自适应方法可以将这两种信息和RTCP一起使用,来提供对网络条件的更长期观察。
自适应FEC装置240基于反馈消息来决定所要发送的包数。可利用许多替换技术确定所要发送的包的数量。例如,本发明的一个实施例使用增加/减少功能。根据该实施例原理,“令人满意的”反馈消息使要发送的冗余包减少1,直到0;否则,使冗余包数增加1,直到n-k个包。为了得到良好适配率,应该使用大的n-k值。
在另一个替换实施例中,可以利用RTCP接收器报告来进行调节。尤其是,可以利用丢失碎片和丢失包累加数的RTCP发送器报告字段,来进行调节。这些字段分别代表自最后一次接收器报告以来的丢包数,以及自开始发送以来的总丢包数。
对于许多实际的802.11无线局域网(WLAN)链路,实际吞吐量在某一点上稳定到一常数,并且在某些情况下,当发送设备试图通过链路推送更多数据时,实际吞吐量实际上将下降。图3中说明了这一点,其中一般用附图标记300来表示WLAN链路的接收比特率对所提供的发送速率的曲线。
如果视频发送器(包括在无线网络接口230中)正在以这样一种速率发送数据,其中接收速率随着所提供的发送速率增大而增大,则FEC将提高实际接收的信息量。然而,如果当视频发送器正在曲线平直部分、或者更坏的情况下在正在下降的曲线部分上工作时,试图发送更多数据,则FEC将无济于事,并且可能实际上造成接收的视频信息更少。为此,重要的是,视频发送器要了解它实际上正在图3曲线的什么部分中工作。如果视频发送器正在曲线下降部分中工作,则它不应该增加FEC数据量,而应该设法以某种其它方式(例如减小比特率)来提高性能,使得工作转到曲线上升部分。如果视频发送器已经在曲线的上升部分上工作,则视频发送器可以添加附加的FEC信息并得到良好结果。
视频发送器想要了解它处于曲线什么部分的一种方式是,使用来自接收器245的反馈(例如RTCP报告)或无线发送器重传信息。如果一旦添加了FEC,视频接收器245接收较低的包速率,则视频发送器正在曲线的下降部分上工作。如果一旦添加了FEC,视频接收器245接收较高的包速率,则视频发送器正在曲线上升部分上工作。如果视频接收器245已经通过某种反馈路径接收关于丢弃包的信息,则上述信息将可为视频发送器所用。作为选择,如已经描述的,可以利用来自无线发送器的媒体存取控制(MAC)级重传信息来估计丢包数。
转到图4,总地用参考标记400来表示用无线网络进行视频流传输的自适应FEC方法。
功能块405对视频流编码,以产生固定大小的视频包(例如运动图像专家组2(MPEG2)传输包),并将控制传递给功能块410。在功能块405,要发送的冗余包数(以下也用变量“X”来表示)等于0。
功能块410利用擦除码FEC对每k个源包进行编码,以产生具有n-k个冗余包的n个包,然后将控制传递给功能块415。功能块415发送头k个源包,并将控制传递给决策块420。决策块420测量并确定网络条件。如果网络条件良好(即在预定阈值以上),则控制传递到功能块425。否则,如果网络条件差(即在预定阈值以下),则控制传递到决策块430。
功能块425发送X=max{X-1,0}个冗余包,并将控制返回给功能块410。即,功能块425比先前发送的包数少发送一个冗余包,向下直到零个冗余包下限。决策块430根据接收到的比特率对所提供的发送速率(图3所示曲线),来确定视频发送器的工作区。尤其是,决策块430确定发送器是在图3曲线的上升区域中还是图3曲线非上升区域中工作。如果发送器正在曲线非上升区域中工作,则控制传递给决策块440,该决策块440发送X个冗余包,并将控制向后传递给功能块410。否则,如果发送器正在曲线上升区域中工作,则控制传递给功能块450,该功能块450发送X=min{X+1,n-k}个冗余包,并将控制向后传递给功能块410。即,功能块450比先前发送的包数多发送一个冗余包,直到(n-k)个冗余包上限。由功能块425、440和450返回到功能块410,使得能够基于网络条件来调节所发送的冗余包数。
相关领域的普通技术人员基于此处的教导,可以容易弄清本发明的这些及其它特征和优点。应该理解,可以以各种形式的硬件、软件、固件、专用处理器或它们的组合,来实施本发明的教导。
最优选的是,将本发明的教导实施为硬件和软件的组合。而且,优选地将软件实施为确实可在程序存储单元上具体化的应用程序。可将该应用程序上载到包括任何合适架构的机器,并通过该机器来执行。优选地,在具有硬件如一个或多个中央处理器(CPU)、随机存取存储器RAM和输入/输出(I/O)接口的计算机平台上,实施该机器。该计算机平台也可包括操作系统和微指令码。在此描述的各种过程和功能可以是可通过CPU执行的微指令码一部分或应用程序一部分、或它们的任意组合。另外,其它各种外围单元可连接到该计算机平台,如附加数据存储单元和打印单元。
应该进一步理解,因为优选地用软件来实施附图中所描述的一些系统组成部件和方法,所以系统部件或过程功能块之间的实际连接可以随本发明的编程方式而有所不同。给定此处的教导,相关领域的普通技术人员将能够预期本发明的这些及类似实施或配置。
虽然在此参考附图描述了说明性实施例,但是应该理解,本发明不限于那些确切的实施例,并且在不脱离本发明范围或精神的情况下,相关领域普通技术人员可以对本发明进行各种变化和更改。所有这种变化和更改都旨在被包括在如所附权利要求所阐述的本发明范围内。
权利要求
1.一种设备,包括前向纠错编码器(210),用于将源数据的k个包编码为n个包,其中n>k,并且该n个包包括冗余数据;以及前向纠错自适应装置(240),用于响应至少一条反馈消息的接收,来自适应地确定要和k个源数据包一起编码成具有编码数据和冗余数据的n个包的冗余数据量。
2.根据权利要求1所述的设备,其中至少一条反馈消息指示要借以发送所述编码数据和冗余数据的网络的条件。
3.根据权利要求2所述的设备,其中所述网络是无线网络。
4.根据权利要求3所述的设备,其中当至少一条消息指示所述无线网络的条件令人满意时,所述前向纠错自适应装置(240)使冗余包数减少一,下至最小值0。
5.根据权利要求3所述的设备,其中当至少一条消息指示无线网络的条件不令人满意时,所述前向纠错自适应装置(240)使冗余包数增加一,上至最大值n-k个包。
6.根据权利要求2所述的设备,其中k个源数据包至少部分地包括视频流数据。
7.根据权利要求1所述的设备,其中所述前向纠错自适应装置(240)基于增加/减少功能,来调节所要发送的冗余包数。
8.根据权利要求1所述的设备,其中至少一条反馈消息包括实时控制协议(RTCP)接收器报告,该实时控制协议(RTCP)接收器报告说明的丢失包碎片和累计丢包数。
9.根据权利要求2所述的设备,其中根据预定阈值来确定网络的条件,该预定阈值是基于实际收到的比特率对所提供的发送比特率的关系。
10.根据权利要求9所述的设备,其中当实际收到的比特率和所提供的发送比特率都增大时,所述前向纠错自适应装置(240)增加所要发送的冗余包数。
11.根据权利要求1所述的设备,其中至少一条反馈消息对应于无线接口硬件低层的重传信息。
12.根据权利要求1所述的设备,其中所述前向纠错编码器(210)利用擦除包级前向纠错来对k个源数据包进行编码。
13.一种用于无线网络上视频流传输的自适应前向纠错(FEC)方法,所述方法包括编码步骤(410),将k个源数据包编码为n个包,其中n>k,并且该n个包包括来源于k个包的源数据以及冗余数据;以及确定步骤(420、430),响应于接收指示无线网络条件的至少一条反馈消息,来自适应地确定所述n个包的数量,其中发送来源于k个包的所述源数据及所述冗余数据。
14.根据权利要求13所述的方法,其中所述自适应确定步骤包括,基于增加/减少功能来调节所要发送的冗余包数目的步骤。
15.根据权利要求14所述的方法,其中当至少一条消息指示无线网络的条件令人满意时,所述调节步骤使冗余包数减少(425)一,下至最小值0。
16.根据权利要求14所述的方法,其中当至少一条消息指示无线网络的条件不令人满意时,所述调节步骤使冗余包数增加(450)一,上至最大值n-k个包。
17.根据权利要求13所述的方法,其中至少一条反馈消息包括实时控制协议(RTCP)接收器报告,该实时控制协议(RTCP)接收器报告说明丢包碎片和累计丢包数。
18.根据权利要求13所述的方法,其中根据预定阈值来确定网络条件,该预定阈值是基于实际收到的比特率对所提供的发送比特率的关系。
19.根据权利要求18所述的方法,其中当实际收到的比特率和所提供的发送比特率都增大时,所述确定步骤增加(450)所要发送的冗余包数。
20.根据权利要求13所述的方法,其中所述无线网络包括无线接口硬件,且一条或多条反馈消息对应于无线接口硬件低层的重传信息。
21.根据权利要求13所述的方法,其中所述确定步骤包括以下步骤当收到的包速率低于n个编码包的发送速率时,禁止增加所要发送的冗余包数。
22.根据权利要求21所述的方法,其中所述确定步骤包括以下步骤当收到的包速率低于n个编码包的发送速率时,减少(425)所要发送的冗余包数。
23.根据权利要求13所述的方法,其中所述编码步骤(410)利用擦除包级前向纠错,来对所述k个源数据包进行编码。
24.一种前向纠错方法,包括编码步骤(410),将源数据的k个包和(n-k)个冗余数据包一起编码为n个包;以及确定步骤(420、430),响应关于发送所述n个包的网络的状态的至少一条反馈消息的接收,来确定要在其中发送所述源数据和所述冗余数据的所述n个包的数量。
25.一种前向纠错设备,包括用于将k个源数据包和(n-k)个冗余数据的包一起编码为n个包的装置(210);以及用于响应关于发送所述n个包的网络的状态的至少一条反馈消息的接收,来确定要在其中发送所述源数据和所述冗余数据的所述n个包数量的装置(240)。
全文摘要
本发明描述了用于无线网络上视频流传输的自适应前向纠错(FEC)设备和方法。该设备包括FEC编码器(210)和自适应FEC装置(240)。该FEC编码器(210)用于将k个源数据包编码为n个包,其中n>k,并且该n个包包括冗余数据。该自适应FEC装置(240)用于基于一条或多条反馈消息的接收,来自适应地确定要和k个编码包一起发送的冗余包数。这一条或多条反馈消息指示要借以发送编码视频的无线网络的条件。
文档编号H04L1/00GK101061659SQ200580039836
公开日2007年10月24日 申请日期2005年6月14日 优先权日2004年12月2日
发明者伊扎特·希克马特·伊扎特, 玛丽·拉菲萨·科默, 托马斯·安东尼·施塔尔 申请人:汤姆逊许可公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1