对前向纠错进行组合

申请号 CN200480044166.8 申请日 2004-10-06 公开(公告)号 CN101040475A 公开(公告)日 2007-09-19
申请人 诺基亚公司; 发明人 S·旺热; M·昂尼克塞拉;
摘要 本 发明 涉及用于组合针对编码媒体包的组的序列的FEC 帧 的方法。为了减少在译码端(15)的缓冲延迟,提出使FEC帧与媒体包的组对准。为此,确定完全适合于FEC帧的多个下一个后续组。如果有的话,与所确定的一组或多组相关联的所有编码媒体包被选择用于FEC帧(步骤202、402)。然后,编码所选择的编码媒体包以获得至少一个用于FEC帧的FEC包(步骤206、406)。此外,对于固定的FEC帧结构,根据需要,提出引入填充包作为附加媒体包。
权利要求

1.一种用于组合针对编码媒体包的组的序列的前向纠错的方 法,所述方法包括:对于部分包括在先前的前向纠错帧中的编码媒 体包的组的没有剩余编码媒体包仍必须被包括在前向纠错帧中的情 况,
-确定多个完全适合于前向纠错帧的编码媒体包的下一个后续 组,并且如果有的话,选择与所述确定的编码媒体包的一组或多组 相关联的所有编码媒体包以用于所述前向纠错帧(步骤202、402); 以及
-编码所述选择的编码媒体包以获得至少一个前向纠错包以用 于所述前向纠错帧(步骤206、406)。
2.根据权利要求1所述的方法,进一步包括:对于部分包括在 先前的前向纠错帧中的编码媒体包的组的剩余编码媒体包仍必须被 包括在前向纠错帧中的情况,其中所有所述剩余编码媒体包适合于 单个前向纠错帧,
-确定除所述剩余编码媒体包之外还完全适合于前向纠错帧的 编码媒体包的多个下一个后续组,并且如果有的话,选择所述剩余 编码媒体包和与所述确定的编码媒体包的一组或多组相关联的所述 编码媒体包以用于所述前向纠错帧(步骤202、402);以及
-编码所述选择的编码媒体包以获得至少一个前向纠错包来用 于所述前向纠错帧(步骤206、406)。
3.根据权利要求1所述的方法,进一步包括:对于下一组编码 媒体包不完全适合于前向纠错帧或者部分包括在先前的前向纠错帧 中的编码媒体数据的组的所有剩余编码媒体包不适合于单个前向纠 错帧的情况(步骤203、403),
-确定完全适合于前向纠错帧的下一个后续编码媒体包的最大 数量,并且选择所述确定的编码媒体包来用于所述前向纠错帧(步 骤208、408);以及
-编码所述选择的编码媒体包以获得至少一个前向纠错包用于 所述前向纠错帧(步骤206、406)。
4.根据权利要求1所述的方法,其中对于所述编码,通过添加 预定数据到包括在所述选择的编码媒体包中的媒体数据,所有选择 的编码媒体包被补充为具有与所述选择的编码媒体包中最大一个相 同的尺寸(步骤204、404),以及其中每个所述获得的至少一个前 向纠错包具有所述选择的编码媒体包的所述最大一个的所述尺寸。
5.根据权利要求4所述的方法,其中对于所述前向纠错帧的传 输,所有选择的编码媒体包被以包括的媒体数据的原始尺寸传输, 每个编码媒体包包括对所包括的媒体数据的尺寸的指示(步骤207、 407)。
6.根据权利要求1所述的方法,其中属于前向纠错帧的包的数 量是可调的,以及其中所述数量基于所述选择的编码媒体包的数量 被调节(步骤205)。
7.根据权利要求6所述的方法,其中选择在所述编码中将要获 得的多个前向纠错包,使得所述前向纠错帧的所得到的尺寸处于前 向纠错帧的预定最小尺寸之上以及前向纠错帧的预定最大尺寸之下 (步骤205)。
8.根据权利要求1所述的方法,其中前向纠错帧内编码媒体包 的数量被固定为第一预定数量以及其中前向纠错帧内前向纠错包的 数量被固定为第二预定数量,以及其中在所述选择编码媒体包的数 量低于所述第一预定数量的情况下,添加包括作为有效载荷中的媒 体数据的填充值的包以获得编码媒体包的所述第一预定数量用于所 述前向纠错帧以进行所述编码(步骤405)。
9.根据权利要求8所述的方法,其中对于所述前向纠错帧的传 输,包括填充值的所述包被虚拟填充包代替,所述虚拟填充包具有0 字节的有效载荷长度并且在有效载荷报头中指示包括所述填充值的 所述媒体数据的尺寸。
10.一种用于组合针对编码媒体包的组的序列的前向纠错帧的 前向纠错帧生成器(14),
-其中对于部分包括在先前的前向纠错帧中的编码媒体包的组 中没有剩余编码媒体包仍必须被包括在前向纠错帧中的情况,所述 前向纠错帧生成器(14)适用于确定多个完全适合于前向纠错帧的 编码媒体包的下一个后续组,并且如果有的话,选择与所述确定的 编码媒体包的一组或多组相关联的所有编码媒体包以用于所述前向 纠错帧;以及
-其中所述前向纠错帧生成器(14)适用于编码选择的编码媒体 包以获得至少一个前向纠错包以用于所述前向纠错帧。
11.一种包括根据权利要求10的前向纠错帧生成器(14)的电 子设备(10)。
12.一种包括至少一个根据权利要求10的前向纠错帧生成器 (14)和至少一个前向纠错译码器(16)的通信系统。
13.一种用于组合针对编码媒体包的组的序列的前向纠错帧的 软件代码,所述软件代码当运行在处理模中时实现下列步骤:对 于部分包括在先前的前向纠错帧中的编码媒体包的组的没有剩余编 码媒体包仍必须被包括在前向纠错帧中的情况,
-确定多个完全适合于前向纠错帧的编码媒体包的下一个后续 组,并且如果有的话,选择与所述确定的编码媒体包的一组或多组 相关联的所有编码媒体包以用于所述前向纠错帧(步骤202、402); 以及
-编码所述选择的编码媒体包以获得至少一个前向纠错包以用 于所述前向纠错帧(步骤206、406)。
14.一种存储根据权利要求13的软件代码的软件程序产品。
15.一种用于组合具有编码媒体包和至少一个前向纠错包的前 向纠错帧的方法,其中前向纠错帧内编码媒体包的数量被固定为第 一预定数量以及其中前向纠错帧内前向纠错包的数量被固定为第二 预定数量,所述方法包括:
-在所述编码媒体包的数量低于所述第一预定数量的情况下,添 加包括作为有效载荷中的媒体数据的填充值的包以获得编码媒体包 的所述第一预定数量用于所述前向纠错帧(步骤405);以及
-编码所述编码媒体包以获得所述至少一个前向纠错包(步骤 206、406)。
16.根据权利要求15所述的方法,其中对于所述前向纠错帧的 传输,包括填充值的所述包被虚拟填充包代替,所述虚拟填充包具 有0字节的有效载荷长度并且在有效载荷报头中指示包括所述填充 值的所述媒体数据的尺寸。
17.一种用于组合具有编码媒体包和至少一个前向纠错包的前 向纠错帧的前向纠错帧生成器(14),其中前向纠错帧内编码媒体 包的数量被固定为第一预定数量以及其中前向纠错帧内前向纠错包 的数量被固定为第二预定数量,
-其中所述前向纠错帧生成器(14)适用于在所述编码媒体包的 数量低于所述第一预定数量的情况下,添加包括作为在有效载荷中 的媒体数据的填充值的包,以获得所述第一预定数量的编码媒体包 来用于所述前向纠错帧;以及
-其中所述前向纠错帧生成器(14)适用于编码所述编码媒体包 以获得所述至少一个前向纠错包来用于所述前向纠错帧。
18.一种包括根据权利要求17的前向纠错帧生成器(14)的电 子设备(10)。
19.一种包括至少一个根据权利要求17的前向纠错帧生成器 (14)和至少一个前向纠错译码器(16)的通信系统。
20.一种用于组合具有编码媒体包和至少一个前向纠错包的前 向纠错帧的软件代码,其中前向纠错帧内编码媒体包的数量被固定 为第一预定数量以及其中前向纠错帧内前向纠错包的数量被固定为 第二预定数量,所述软件代码当运行在处理模块中时实现下列步骤:
-在所述编码媒体包的数量低于所述第一预定数量的情况下,添 加包括作为有效载荷中的媒体数据的填充值的包以获得编码媒体包 的所述第一预定数量用于所述前向纠错帧(步骤405);以及
-编码所述编码媒体包以获得所述至少一个前向纠错包(步骤 206、406)。
21.一种存储根据权利要求20的软件代码的软件程序产品。

说明书全文

技术领域

发明涉及用于组合针对编码媒体包的组的序列的前向纠错 的方法、处理模电子设备、软件代码和软件程序产品。本发明 还涉及支持前向纠错帧的组合的通信系统。

背景技术

大多数基于包的通信网络,尤其是不具有受保证的服务质量的网 际协议(IP)网络,会遭受不定数量的丢包和删包。这些丢失可能 源于许多来源,例如路由器或传输段过载或包中比特误差,导致它 们的删除。应该理解,丢包是在大多数包网络架构中的公同操作点, 而不是网络故障。
媒体传输,特别是压缩的视频的传输,极大地受到丢包的损害。
早前,已经公布了用于提高基于包的信道的质量的手段。基于重 传的机制可以以不定延迟为代价确保无消除信道。然而,对于流和 谈话应用而言,这是不期望的。
由在媒体传输中的消除引起的媒体呈现中的恼人的伪像可以进 一步通过在媒体编码处理期间的许多不同手段来避免。然而,在媒 体编码处理期间添加冗余位对于预编码内容来说是不可能的,并且 通常比使用前向纠错(FEC)的信道编码中的最佳保护机制要低效。
前向纠错通过对各种待保护媒体包中待保护位计算多个冗余位, 将这些位添加到FEC包,以及传输媒体包和FEC包这二者来工作。 在接收器处,FEC包可用于检查媒体包的完整性以及重建可能缺失 的媒体包。在下文中,媒体包和保护这些媒体包的FEC包将被称为 FEC帧。
大多数用于消除保护的FEC方案允许选择待保护媒体包的数量 和将适应地被选择的FEC包的数量,以选择保护的强度和FEC子系 统的延迟的约束。一般而言,实现所需保护强度花费的位越多,造 成的延迟越少。可变FEC帧尺寸例如在1999年12月的规范RFC 2733:“An RTP Payload Format for Generic Forward Error Correction” 中或美国专利6,678,855中进行了讨论。
为了利用FEC的优势,在上述讨论的方面中基于包的FEC需要 针对FEC帧结构的接收器同步。即,接收器必须在纠错可以开始之 前缓冲FEC帧的所有媒体包和FEC包。
视频编码方案以及逐渐增加的一些音频编码方案例如使用所谓 的预测编码技术。这种技术分别从之前的图像或音频帧预测之后的 视频图像或音频帧的内容。以下,视频图像和音频帧将都被称为“图 像”,以将它们与FEC帧相区别。通过使用预测编码技术,压缩方 案可以非常有效,但预测链变得越长,压缩方案对于消除也变得越 来越脆弱。因此,有时会插入所谓关键图像或非预测地编码的音频 帧的等同物,以下都被称为关键图像,其通过仅使用非预测编码技 术重建预测链的完整性。一些可选机制仅使用预测地编码的图像来 避免使用关键图像来有利于保证刷新时间。在本文档的范围内,所 谓逐步译码器刷新机制基本上与关键图像相同。通常地,关键图像 比预测地编码的图像大5至20倍。每个编码的图像可以对应于例如 一个待保护媒体包。
遵循MPEG-2视觉协议,以关键图像开始并跟有0个或多个非关 键图像的图像序列以下被称为图像组(GOP)。在数字TV中,GOP 通常包括不多于六个图像。这种短GOP的关键原因主要在于当切换 TV频道时的延迟约束:由于有意义的译码仅可以开始于关键图像, 译码器在它可以开始对有意义的关键图像进行译码之前平均必须等 待GOP的位的传输时间的一半。在流应用中,GOP尺寸通常选择为 较大,通常为一个GOP中的数百个图像,以便更好地利用预测地编 码的图像的编码效率。因此对这种序列的“调谐(tune in)”会花费几 秒。
当FEC帧为大尺寸时,例如当它们包括数百个包时,FEC方案 可以设计得更有效。类似地,当选择较大GOP尺寸时,大多数媒体 编码方案会赢得效率,这是因为GOP仅包括一个单一的关键图像, 其在统计上远大于GOP的其他图像。
然而,大FEC帧和大GOP尺寸都要求针对它们各自的结构进行 同步。对于FEC帧,这意味着接收时缓冲整个FEC帧以及纠正任何 可纠正的错误。对于媒体GOP,这意味着解析和丢弃那些未形成GOP 的开始(关键帧)的媒体包。
这不仅需要大量的缓冲存储器,而且还需要大量的缓冲时间。在 传统系统中,其中FEC译码和媒体译码是独立实现的,调谐的平均 延迟是1.5 dFEC+0.5 dMedia,其中dFEC是FEC帧的缓冲延迟(在 等时网络中,其与FEC帧的尺寸成比例),并且dMedia是媒体GOP 的缓冲延迟。最坏情况是,缓冲器大小必须被选择为使得完整的FEC 帧和完整的GOP分别适合于FEC译码器的缓冲器和媒体译码器的缓 冲器。

发明内容

本发明的目的是改善一种用于分组的媒体包的FEC编码。
对于本发明的第一方面,提出一种用于组合针对编码媒体包的组 的序列的FEC帧的方法。对于部分包括在先前的FEC帧中的编码媒 体包的组中没有剩余编码媒体包仍必须被包括在FEC帧中的情况, 该方法包括:
-确定多个完全适合于FEC帧的下一个后续编码媒体包的组,并 且如果有的话,选择与所确定的编码媒体包一组或多组相关联的所 有编码媒体包以用于FEC帧;以及
-编码所选择的编码媒体包以获得至少一个FEC包以用于FEC 帧。
“下一个后续组”分别是那些紧跟着一个其媒体包已至少部分包 括在先前FEC帧中的组的后续组。在处理开始时,下一个后续组从 编码媒体包的第一组开始。
此外,提出一种用于组合针对编码媒体包的组的序列的FEC帧 的FEC帧生成器。对于部分包括在先前的FEC帧中的编码媒体包的 组中没有剩余编码媒体包必须被包括在FEC帧中的情况,该FEC帧 生成器用于确定多个完全适合于FEC帧的编码媒体包的下一个后续 组,并且如果有的话,选择与所确定的编码媒体包的一组或多组相 关联的所有编码媒体包以用于FEC帧。该FEC帧生成器还用于编码 所选择的编码媒体包以获得至少一个FEC包以用于FEC帧。FEC帧 生成器可以例如通过硬件或通过运行对应软件的处理组件来实现。
此外,提出一种电子设备,其包括所提出的FEC帧生成器。这 种设备可以是必须对分组媒体数据等应用FEC编码的任何设备,例 如流服务器
此外,提出一种用于组合针对编码媒体包的组的序列的FEC帧 的软件代码。当在处理组件中运行时,该软件代码实现所提出的方 法的步骤。
此外,提出一种软件程序产品,其存储所提出的软件代码。
最后,提出一种通信系统,其包括至少一个如所提出的述FEC 帧生成器和至少一个FEC译码器。FEC译码器将适合于译码由FEC 帧生成器提供的FEC帧。
本发明从以下考虑出发,如果FEC帧与媒体包的组对准,则FEC 帧和媒体包的组针对它们各自结构的同步可以被加速。因此提出, 只要可能,完整个数的组的媒体包专有地用于各个FEC帧中。
本发明的优点在于其减少了当调谐到编码媒体包的组的特定序 列时的缓冲延迟。在译码端可以信赖的情况下,通过译码端来使用 本发明,本发明的又一优点在于其减少了对于在译码端的缓冲区大 小的需求。
对于部分包括在先前的FEC帧中的编码媒体包的组中剩余编码 媒体包仍必须被包括在FEC帧中的情况,如果所有剩余编码媒体包 适合于单个FEC帧,则可以使用类似的方法。更具体地,可以确定 除剩余编码媒体包之外还完全适合于FEC帧的编码媒体包的多个下 一个后续组。然后如果有的话,选择剩余编码媒体包以及与所确定 的编码媒体包的一组或多组相关联的编码媒体包以用于FEC帧。此 外,编码所选择的编码媒体包以获得至少一个FEC包以用于该FEC 帧。
就是说,即使在该FEC帧中对编码媒体数据的组的对准是不可 能的,也可确保这种对准可以通过下一FEC帧再次实现。
对于甚至编码媒体数据的单个下一组不完全适合于FEC帧或者 已经部分包括在先前的FEC中的编码媒体数据的组的所有剩余编码 媒体包不适合于单个FEC帧的情况,FEC可以仅利用编码媒体包尽 可能地填满。因此,确定完全适合于FEC帧的下一个后续编码媒体 包的最大数量,并且该确定的编码媒体包被选择以用于FEC帧。所 选择的编码媒体包然后被编码以获得至少一个FEC包以用于FEC 帧。
在本发明的一个实施方式中,对于编码,所有选择的编码媒体包 被补充为与所选择的编码媒体包中最大一个具有相同尺寸。为此, 预定数据被添加到包括在所选择的编码媒体包中的媒体数据。此外, 每个所获得的至少一个FEC包具有对应于所选择的编码媒体包中最 大一个的尺寸的尺寸。
然而,在本发明的一个实施方式中,仅针对编码目的而执行所选 择的编码媒体包的补充,以基于相等尺寸的媒体包获得FEC包。如 果组合的FEC帧将被传输,所有选择的编码媒体包被以所包括的媒 体数据的原始尺寸传输。通过传输原始编码媒体包,传输网络上的 负荷被最小化。此外,编码媒体包可以包括原始包括的媒体数据的 尺寸的指示,其然后可在接收端对其进行检查。
属于FEC帧的包的数量可以是固定的也可以是可调的。
在本发明的一个实施方式中,属于FEC帧的包的数量是可调的, 并且基于所选择的编码媒体包的数量来调节该数量。即,如果仅很 少的媒体包被选择,则FEC帧中包的数量可以小于如果大量媒体包 被选择的情况。此外,将在编码中获得的FEC包的数量可以被选择 为使得FEC帧的所得到的尺寸处于FEC帧的预定最小尺寸之上并且 处于FEC帧的预定最大尺寸之下。
在本发明的另一实施方式中,FEC帧内编码媒体包的数量被固定 为第一预定数量,以及FEC帧内FEC包的数量被固定为第二预定数 量。在所选择的编码媒体包的数量低于第一预定数量时,包括作为 有效载荷中的媒体数据的填充值的包被添加以获得编码媒体包的第 一预定数量来用于编码所需的FEC帧。对于这种FEC帧的传输,包 括填充值的包可以被虚拟填充包代替,该虚拟填充包具有0字节的 有效载荷长度并且仅在有效载荷报头中指示包括填充值的媒体数据 的尺寸。如果将被使用的填充值在编码端和译码端都已知,则译码 端将可以仅从包括填充值的媒体数据的所指示的尺寸就知道实际上 应当使用哪个填充值。
根据本发明的第二方面,后面的实施方式也可以独立于本发明的 第一方面来使用。
因此,还提出一种用于组合具有编码媒体包和至少一个FEC包 的FEC帧的方法,其中FEC帧内编码媒体包的数量被固定为第一预 定数量,以及其中FEC帧内FEC包的数量被固定为第二预定数量。 该方法包括在编码媒体包的数量低于第一预定数量的情况下,添加 包括作为有效载荷中的媒体数据的填充值的包,以获得第一预定数 量的编码媒体包来用于前向纠错帧。该方法还包括编码该编码媒体 包以获得至少一个FEC包。
如上所述,对于FEC帧的传输,包括填充值的包可以被虚拟填 充包代替,该虚拟填充包具有0字节的有效载荷长度并且在有效载 荷报头中指示包括填充值的媒体数据的尺寸。
此外,对于本发明的第二方面,提出一种用于组合具有编码媒体 包和至少一个FEC包的FEC帧的FEC帧生成器,其中FEC帧内编 码媒体包的数量被固定为第一预定数量,以及其中前向纠错帧内 FEC包的数量被固定为第二预定数量。该FEC帧生成器用于执行根 据本发明第二方面的方法的步骤。
对于本发明的第二方面,还提出一种电子设备,其包括所述FEC 帧生成器。同样,提出一种通信系统,其包括至少一个所述FEC帧 生成器以及至少一个FEC译码器。
此外,对于本发明的第二方面,提出一种用于组合具有编码媒体 包和至少一个前向纠错包的前向纠错帧的软件代码,其中前向纠错 帧内编码媒体包的数量被固定为第一预定数量,以及其中前向纠错 帧内前向纠错包的数量被固定为第二预定数量。当在处理模块中运 行时,该软件代码实现根据本发明第二方面的方法的步骤。
最后,对于本发明的第二方面,提出一种存储所提出的软件代码 的软件程序产品。
附图说明
本发明的其他目的和特征将通过后面结合附图的详细描述而变 得显而易见。
图1是根据本发明实施方式的通信系统的示意图;
图2是示出根据本发明第一实施方式的图1的系统中前向纠错编 码的流程图
图3是示出当使用前向纠错帧的传统组合时与当使用根据图2 的前向纠错帧的组合时在同步延迟上的差别的时序图;
图4是示出根据本发明第一实施方式的图1的系统中前向纠错编 码的流程图;以及
图5是示出图4的前向纠错中前向纠错帧的结构的时序图。

具体实施方式

图1是示例性通信系统的示意图,其中根据本发明FEC帧与媒 体包的组对准。
通信系统包括传输设备10和接收设备15,它们能够经由例如因 特网的通信网络19彼此通信。
传输设备10可以例如是流服务器,提供用于经由通信网络19 传输的音频和/或视频数据。传输设备包括存储组件11,其在文件12 中存储预编码媒体GOP,每个GOP包括多个编码媒体包。因此每个 GOP形成根据本发明的编码媒体包的组。此外,存储组件11存储文 件13,其包含关于每个存储的预编码的GOP的尺寸的信息。应该理 解,该第二文件不一定必须为文件系统中单独文件的形式。例如, 它也可以以索引轨道(hint-track)或算法的形式来实现,该算法解 析第一文件并识别GOP边界以及计算每个GOP的尺寸。本领域技 术人员也应该看到其他的可能性。
传输设备10进一步包括FEC帧生成器14。FEC帧生成器14可 以例如是运行FEC编码软件的处理组件。
接收设备15可以例如是由用户使用的家庭PC,用于请求经由通 信网络19来自流服务器的音频和/或视频数据。接收设备15包括FEC 译码器16、媒体译码器17和诸如屏幕或扬声器的输出装置18。FEC 译码器16可以例如是运行FEC译码软件代码的处理组件,以及媒体 译码器17可以例如是运行媒体译码软件代码的相同或另一处理组 件。
对于流会话,GOP和GOP的尺寸信息被存储组件11转发至FEC 帧生成器14。FEC帧生成器14以如下方式由所提供的信息生成FEC 帧,所述方式为只要可能的话,FEC帧的边界与GOP的边界对准, 这将在下面更详细地描述。
所得到的FEC帧通过通信网络19传输至接收设备15。在接收设 备15中,如果可能,则FEC译码器16重建最终丢失的编码媒体数 据包,并将编码媒体包转发至媒体译码器17。最后媒体译码器17 生成未压缩的媒体数据,准备好经由输出装置18呈现给用户。
以下,将针对本发明的两个不同的示例性实施方式呈现传输设备 10的FEC帧生成器14的操作。
在两个实施方式中,FEC帧生成器14在应用层上操作并对将在 IP/UDP/RTP协议结构中的基于包的Reed-Solomon FEC方案的包应 用到所接收的GOP,该包被实现为RTP有效载荷格式。在 Reed-Solomon FEC方案中,K个媒体包被N-K个FEC包保护以形成 N个包的FEC帧。媒体包和FEC包都在单个RTP会话中传送,RTP 有效载荷类型用于在接收端区别媒体包和FEC包。
在接收设备15处,可以通过观察RTP有效载荷类型和接收的 RTP包的序号来识别FEC帧,其中每个FEC帧包括K个媒体包(开 始于序号s)和N-K个FEC包(开始于序号s+K)。
采用Reed-Solomon的FEC帧的结构,即值K和N,可以是固定 的或可变的。
图2是示出根据本发明第一示例性实施方式的传输设备10的 FEC帧生成器14的操作的流程图。在本实施方式中,FEC帧生成器 14能够使用可变FEC帧结构。
FEC帧生成器14首先从存储组件11中的文件12、13中读取预 编码GOP媒体包以及相关联的GOP尺寸信息(步骤201)。
FEC帧生成器14已知FEC帧的最小和最大允许尺寸,这从应用 和网络统计观点来看是期望的。
基于GOP尺寸信息,FEC帧生成器14选择一个或多个完整GOP 的媒体包,其适合于在尺寸上由最大帧尺寸限制的FEC帧(步骤 202)。
如果至少一个完整GOP的媒体包适合于FEC帧(步骤203), 则如果需要的话,FEC帧生成器14均衡所有选择的媒体包的尺寸(步 骤204)。
进行均衡的原因是预记录的媒体包具有相同尺寸是非常不可能 的。然而,对于FEC编码,需要相等尺寸的K个媒体包来获得相同 尺寸的N-K个FEC包。令X是给定FEC帧的一部分的给定媒体包 中媒体数据的尺寸,例如以字节为度量。令Xmax是给定FEC帧的 所有媒体包的最大X。对于FEC计算,Xmax字节被认为是媒体数 据,其中例如媒体数据的最后Xmax-X字节携带预定恒定值,例如0。 对于前述均衡,这种预定恒定值被添加到不具有最大尺寸Xmax的 所有选择的媒体包中。
如果期望在通常可以假设的包的消除的情况下重建该包的所有 数据,则将媒体数据的尺寸放入每个媒体包的RTP有效载荷报头中, 该报头与例如IP报头不同,其受到了FEC保护。包括其例如IP、 UDP和RTP有效载荷报头的各种报头的完整媒体包的尺寸可以在其 他包报头中表示,例如在IP报头中。
接着,FEC帧生成器14基于FEC帧的允许的最小和最大尺寸选 择FEC帧的精确结构(步骤205)。媒体包数量K已经由紧接着的 一个或多个GOP的传输所需的媒体包的所标识数量所确定。此外, 帧中任何包的尺寸由最大的所选择的媒体包给出。因此,FEC帧生 成器1 4仍然必须选择FEC帧的数量(N-K)。
然后,FEC帧生成器14通过计算适当FEC方案的冗余奇偶校验 位以及通过将这些位打包到(N-K)个FEC包中来构造该确定数量 的FEC帧(步骤206)。K和N的值包括在用于带内信令的每个FEC 包的报头字段中。
通过遵循该处理,确保FEC帧的第一媒体包包括GOP的第一包。
然后FEC帧经由通信网络19传输至接收设备15(步骤207)。
然而,在该传输的FEC帧中,仅发送原始X个媒体字节和包报 头以用于每个媒体包。值Xmax不一定要被信号传输。因为所有FEC 包都是尺寸Xmax加上各种报头的尺寸,如果FEC帧的单个FEC包 被接收,则在接收端知道Xmax。如果帧的所有FEC包在传输中丢 失,则不可能重建任何丢失的媒体包。因此不管怎样仅所接收的媒 体包可用于最终的重建,并且它们的尺寸信息是已知的。
然后所述FEC编码处理可以继续在步骤201用于下一FEC帧。
如果在某循环中检测到下一GOP的媒体包不完全适合于FEC帧 (步骤203),则FEC帧生成器14选择最大限度适合于FEC帧的 下一GOP的那些媒体包(步骤208)。然后这些选择的媒体包如上 所述在步骤204至步骤207中被处理。
对于在下一循环中生成的后续FEC帧,这意味着不能确保FEC 帧的第一媒体包包括GOP的第一包。然而,对比于传统方法,这并 不增加任何附加的延迟或缓冲要求。
对于该后续帧,在步骤202中,选择完整GOP的多个媒体包, 除了先前GOP的剩余媒体包之外,其还最大限度适合于FEC帧。
如果至少一个下一GOP的媒体包完全适合于FEC帧(步骤203), 则如上所述执行步骤204至步骤207,并且为在下一循环中构造的 FEC帧重建该对准。
如果至少一个下一GOP的媒体包不完全适合于FEC帧(步骤 203),则选择最大限度适合于FEC帧的先前GOP的所有剩余媒体 包,其可以但不必须是先前GOP的所有剩余媒体包(步骤208)。 然后,步骤204至步骤207如上所述被执行。在这种情况下,最早 将在下一个仅一个循环中重建对准。
图3是包括时间线的时序图,包括以传统FEC编码实现的调谐 延迟和以如图2所示FEC编码实现的调谐延迟。
第一平线301表示媒体GOP结构。小垂直线指示不同GOP之 间的边界。可以看出,如在实践中,GOP结构在尺寸上是可变的, 并且若假定恒定传输带宽,其在时间上是可变的。然而,应当注意, 本发明不要求可变GOP尺寸;这里示出为可变的仅出于示例目的。
为虚线的第二水平线302表示在现有技术设计中使用的FEC帧。 小垂直线指示不同FEC帧之间的边界。简单起见,FEC帧被示出为 恒定尺寸,并因此当假定相同恒定带宽链路时在传输时间上是恒定 的。然而,应该注意,实际上它们也可以在尺寸上是可变的。
第三水平线303表示参照图2所述方法中使用的FEC帧。小垂 直线指示不同FEC帧之间的边界。
此外,FEC译码器16和媒体译码器17两者的同步的持续时间在 四个例子中被标记,一方面用于传统FEC帧302,另一方面用于当 出于根据本发明的FEC帧303时。在所有四种情况中,各个箭头指 示在调谐点与同步时刻之间的同步时间。对于传统方法,箭头以虚 线示出,而对于本发明方法,箭头以实线示出。
应该注意,通常,首先必须实现FEC译码器16中的同步,即, FEC译码器16必须检测新FEC帧的开始。然后才能开始媒体译码 器17中的同步,以检测新GOP的开始。同步也可以同时发生。
首先,将描述传统方法的四种情况中导致的延迟。
在第一情况,可以从调谐点311起在非常短的时间内达到同步, 这是因为FEC帧的开始和媒体帧的开始在这里是对准的。在时间线 312达到同步。基本上在连接启动时在当前设计中该特定情况是共同 的。
在第二情况,在稍后时间执行对连接的调谐。这里调谐点在传统 FEC帧的中间并且在媒体包的中间,如对应时间线313所示。为了 达到接收设备15的两个译码器16、17的同步,首先FEC译码器16 必须找到同步。该同步仅可以在时间线314处达到。此后媒体译码 器17才能设法找到对准,并最终在时间线315找到。
在第三情况,调谐点精确位于媒体编码器的两个GOP的边界之 上,如时间线315所示。然而,系统必须首先在时间线316处与FEC 译码器16对准,然后才能开始与媒体译码器17的同步。其在时间 线318达到同步。
在第四情况,如第二情况,调谐点319位于FEC帧和媒体GOP 的中间。然而,同步很快实现,这是因为在时间线316的FEC译码 器16的同步点和在时间线318的媒体译码器17的同步点在时间上 都在前方不远,并且以正确的顺序发生,即,首先是FEC接着是媒 体。
总而言之,在示出的第一和第四情况中,结合的同步较快发生, 但在示出的第二和第三情况中,其花费较长时间。
根据本发明,在FEC结构303中,FEC帧的边界已经与媒体GOP 301的边界对准。
在第一情况,所建议的FEC帧结构303与传统FEC帧结构302 一样保持调谐延迟相同,这是因为传统FEC结构302和媒体结构301 碰巧同样对准。
然而,在第二情况,对准的FEC结构303导致在时间线321处 的显著较低的调谐延迟。
在第三情况,其在现有技术设计中也导致很长的调谐延迟,通过 对准的FEC结构303该调谐延迟被减少到0。
仅在第四情况,在调谐延迟中没有变化,与同样排列于时间线 318处的FEC帧结构303的FEC帧相对照,即使在时间线316处的 FEC帧结构302的FEC帧不与在时间线318处的GOP结构301的媒 体包对准。
因此根据本发明的方法,通过强制流服务器10使FEC帧结构303 与媒体GOP结构301对准,允许减少调谐延迟。这通常导致减少的 调谐延迟,有时调谐延迟保持恒定,但决不会增加。
应该注意,在实践中,FEC译码器16在媒体译码器17可以开始 与来自译码的FEC帧的媒体包进行的同步之前首先必须将完整FEC 帧译码。然而,为清楚起见,这在图3所示中被忽略。为了绝对精 确的表示,译码时间因此应该向过去移位一个FEC帧。实际上,这 将使该方案甚至更有效,因为平均而言算法将选择更小的FEC帧。
图4是示出根据本发明第二示例性实施方式的传输设备10的 FEC帧生成器14的操作的流程图。在该实施方式中,FEC帧生成器 14必须使用预定FEC帧结构。即,值N和K在流会话期间保持恒 定并带外进行信号传输
FEC帧生成器14首先从存储组件11中的文件12、13中读取预 编码GOP媒体包以及相关联的尺寸信息(步骤201)。
FEC帧生成器14已知FEC帧的最小和最大允许尺寸,这从应用 和网络统计观点来看是期望的。
基于GOP尺寸信息,FEC帧生成器14选择一个或多个完整GOP 的媒体包,其适合于具有由最大帧尺寸定义的尺寸的FEC帧(步骤 402)。所选择的媒体包的数量用L表示。
如果至少一个完整GOP的媒体包适合于FEC帧(步骤403), 则如果需要的话,FEC帧生成器1 4均衡所有选择的媒体包的尺寸(步 骤404),如图以上参照图2的步骤204所述。
如果L小于K,则FEC帧生成器14添加K-L个填充包到L个 所选择的媒体包(步骤405)。填充包是扩展的虚拟填充包,在该步 骤中其具有与均衡的媒体包相同的尺寸,并承载在发送器和接收器 处已知的预定值(例如0)的有效载荷。
接着,FEC帧生成器14计算用于所选择的媒体包和填充包的奇 偶校验位。然后奇偶校验位被打包到(N-K)个FEC包中(步骤406)。
对于经由通信网络19向接收设备15传输FEC帧,首先K-L个 虚拟填充包被传输。这些虚拟填充包中的每个具有0字节的媒体有 效载荷长度,但其在RTP有效载荷报头中指示FEC编码中使用的对 应填充包的填充数据的尺寸,正如媒体包在RTP有效载荷报头中指 示它们的原始媒体数据的尺寸那样。因此,当与媒体包的平均尺寸 比较时,那些虚拟填充包非常小,并且不应构成对网络的显著负担。 在许多网络架构中,当采用报头压缩时,它们的尺寸接近0。
K-L个虚拟填充包后面是所选择的L个媒体包,仅包括原始媒体 数据,如参照图2的步骤207所述的。最后,N-K个FEC包被传输 (步骤407)。
类似FEC帧生成器14,FEC译码器16也对尺寸对应于最大原 始媒体包的尺寸的K个媒体包进行操作。这通过使用RTP有效载荷 报头中的填充尺寸信息以及基于预定填充位也将K-L个0长度的虚 拟填充包扩展为全尺寸填充包来实现的。类似地,正如在编码器侧 在步骤404中那样,L个编码媒体包被扩展。
然后可以在步骤401对下一FEC帧继续所述处理。
类似于图2,在图4中也另外考虑一些情况,其中在至少一个FEC 帧期间防止所期望的对准。
如果在某循环中检测到下一GOP的媒体包不完全适合于FEC帧 (步骤403),则FEC帧生成器14选择最大限度适合于FEC帧的 下一GOP的最先L个媒体包(步骤408)。然后将这些选择的媒体 包如上所述在步骤404至步骤407中进行处理。
对于在下一循环中生成的后续FEC帧,这意味着不能确保FEC 帧的第一媒体包包括GOP的第一包。对于该后续帧,在步骤402中, 选择完整GOP的多个媒体包,除了先前GOP的剩余媒体包之外其 还最大限度适合于FEC帧。剩余的媒体包和所选择的媒体包的总数 是L。
如果至少一个下一GOP的媒体包完全适合于FEC帧(步骤403), 则如上所述执行步骤404至步骤407,并且为在下一循环中构造的 FEC帧重建该对准。
如果至少一个下一GOP的媒体包不完全适合于FEC帧(步骤 403),则选择最大限度适合于FEC帧的先前GOP的所有L个剩余 媒体包(步骤408)。然后,步骤404至步骤407如上所述被执行。 在这种情况下,将在下一循环中最早处重建对准。
对于本领域技术人员来说是明显的:FEC帧的其他架构可以在该 第二实施方式中完全一样地使用。例如,K-L个填充包可以位于FEC 帧的末端,或者与媒体包交错。不需要用信号传输FEC帧的精确结 构,因为填充包可以通过它们为0的媒体字节的数量加以识别,并 且使用FEC方案对其进行保护。
图5是示出导致参照图4所述的操作的FEC帧结构的时序图。 通信网络19以示例的方式假定为固定速率网络。
第一水平线表示不同尺寸的两个媒体GOP 501、502,并因此具 有不同传输时间需求。小垂直线指示GOP 501、502的边界。
两个GOP 501、502被打包到两个FEC帧511、521中,其也要 求不同传输时间。第二水平线表示两个FEC帧511、521。小垂直线 指示FEC帧511、521的边界。
第一FEC帧511的更详细结构在左边示出,而第二FEC帧521 的详细结构在右边示出。
在该例子中,两个FEC帧511、521分别具有单个FEC包512 和522。两个FEC帧还具有四个非FEC包;因此K=4。
然而,第一FEC帧511包括仅两个媒体包513和两个很小的填 充包514。例如使用上面参照图4所述的虚拟填充方法生成填充包 514。
相比之下,第二FEC帧521承载大得多的GOP 502,其除了单 个FEC包521之外,还专地包括四个媒体包523。
尽管有该差别,但在两种情况中FEC结构都是N值等于5而K 值等于4。
应该注意,所述实施方式可以以各种方式进行变化,并且它们仅 构成本发明的各种可能实施方式中的两种。例如,该算法还用于具 有不同于直接Reed-Solomon的架构的FEC方案,例如具有所有类型 的“矩阵”方法。
QQ群二维码
意见反馈