用于在多媒体系统中执行前向纠错编码的装置及方法

申请号 CN201610158780.1 申请日 2012-07-06 公开(公告)号 CN105610552A 公开(公告)日 2016-05-25
申请人 三星电子株式会社; 发明人 黄盛熙; 黄承吾; 明世澔; 梁贤九; 朴勍模;
摘要 提供了用于在多媒体系统中发送包括多个前向纠错(FEC)包的FEC包 块 的方法及装置。所述方法包括:通过对多个源码元执行第一FEC编码来生成多个第一FEC包块,所述多个第一FEC包块中的每一个包括至少一个源包和用于所述至少一个源包中的每一个的修复的至少一个修复包;通过对所述多个第一FEC包块执行第二FEC编码来生成第二FEC包块,所述第二FEC包块包括用于所述多个第一FEC包块的至少一个修复包;以及发送所述第二FEC包块,其将以下信息包括在所述至少一个源包和至少一个修复包中的每一个的报头信息中:用于指示多个第一FEC包块的块边界的第一块边界信息和用于指示第二FEC包块的块边界的第二块边界信息中的至少一个、以及相关包的序号信息。
权利要求

1.一种用于在多媒体系统中执行前向纠错(FEC)编码的方法,所述方法包括:
对多个源码元中的每一个执行第一FEC编码以产生多个FEC包块的每一个并且产生至少一个第一修改包;并且
对所述多个源码元块执行第二FEC编码以产生至少一个第二修改包,其中,所述至少一个第一修复包中的修复包包括指示与所述修复包对应的FEC包块的边界的信息。
2.如权利要求1所述的方法,其中,所述至少一个第一修复包中的修复包包括标识所述至少一个第一修复包中的修复包是否与所述FEC包块的边界相关联的信息。
3.一种用于在多媒体系统中执行前向纠错(FEC)编码的装置,所述装置包括:
第一FEC编码器,被配置成对多个源码元块中的每一个执行第一FEC编码以产生多个FEC包块中的每一个并且产生至少一个第一修改包;和
第二FEC编码器,被配置成对所述多个源码元块执行第二FEC编码以产生至少一个第二修改包,
其中,所述至少一个第一修复包中的修复包包括指示与所述修复包对应的FEC包块的边界的信息。
4.如权利要求3所述的装置,其中,所述至少一个第一修复包中的修复包包括标识所述至少一个第一修复包中的修复包是否与所述FEC包块的边界相关联的信息。

说明书全文

用于在多媒体系统中执行前向纠错编码的装置及方法

[0001] 本申请是申请日为2012年07月06日、申请号为201280033919.X、发明名称为“用于在多媒体系统中生成前向纠错包的方法和用于发送和接收前向纠错包的方法及装置”的发明专利申请的分案申请。

技术领域

[0002] 本发明涉及用于在多媒体系统中生成前向纠错包的方法和用于发送和接收前向纠错包的方法及装置。

背景技术

[0003] 由于内容类型增加并且比如高清晰度(HD)内容和超高清晰度(UHD)内容的高容量或者高数据的内容的数量增加,在通信网络中,数据拥塞日益变糟。
[0004] 图1示意地示出了一般的基于互联网协议(IP)的网络拓扑和数据流。
[0005] 参照图1,由于数据拥塞,可以是主机A的发送器110发送的内容可能不能完全地被传送到可以是主机B的接收器130,并且内容中的一些可能会在其从发送器110到接收器130的路线中丢失。在典型的IP网络中,以包为基础发送数据,因此,它可能以传输包为基础被丢失。因此,接收器130不能接收到在网络中丢失的传输包,因此不能发现在丢失的传输包中的数据,这引起各种各样的用户不便,包括音频质量退化、视频质量退化、屏幕裂缝、丢失字幕信息以及文件丢失。
[0006] 因此,存在对于用于修复或者恢复在网络中丢失的数据的方法的需要。因此,发送器110可以通过对源数据进行前向纠错(FEC)编码以及将修复数据附加到其来生成FEC,并且可以通过一系列过程来发送FEC帧。在协议栈的应用层中,与其中以传输顺序接收传输数据的物理层不同,在应用层中,可能不能以传输顺序接收传输数据,这是因为它通过网络中的多个路由器150。因此,存在对于用于使得接收器能够确定FEC帧中的码元中的每一个的顺序的排序方法以及用于使得接收器能够得到FEC帧之间的边界信息的包生成和传输方法的需要。
[0007] 如图1中所示的IP包170可以通过多个路由器150而被传输到接收器130。然而,IP包170可能以与发送器110发送包170的顺序不同的顺序被传输到接收器130。因此,存在对于指示音频/视频(AV)内容流中的包的传输顺序的需要。为此,优选地,在应用级中,图1中的数据171可以被认为是使用实时协议(RTP)、通过对在AV编解码器级中压缩的数据进行打包而生成的RTP包数据,或者可以被认为是运动图像专家组(MPEG)媒体传输(MMT)包数据。

发明内容

[0008] 技术问题
[0009] 本发明的示例性实施例的一方面是提供一种用于在多媒体系统中生成前向纠错(FEC)包以防止包损失的方法。
[0010] 本发明的示例性实施例的另一个方面是提供用于在多媒体系统中发送和接收包括FEC包的FEC包的方法及装置。
[0011] 技术方案
[0012] 依据本发明的一个方面,提供一种用于在多媒体系统中发送包括多个前向纠错(FEC)包的FEC包块的方法。所述方法包括:通过对多个源码元执行第一FEC编码来生成多个第一FEC包块,所述多个第一FEC包块中的每一个包括至少一个源包和用于所述至少一个源包中的每一个的修复的至少一个修复包;通过对所述多个第一FEC包块执行第二FEC编码来生成第二FEC包块,所述第二FEC包块包括用于所述多个第一FEC包块的至少一个修复包;以及发送所述第二FEC包块,其将以下信息包括在所述至少一个源包和所述至少一个修复包中的每一个的报头信息中:用于指示所述多个第一FEC包块的块边界的第一块边界信息和用于指示所述第二FEC包块的块边界的第二块边界信息中的至少一个、以及相关包的序号信息。
[0013] 依据本发明的另一个方面,提供一种用于在多媒体系统中发送包括多个FEC包的FEC包块的发送装置。所述发送装置包括:发送器,用于根据预定通信方案发送FEC包块;第一FEC编码器,用于通过对多个源码元执行第一FEC编码来生成多个第一FEC包块,所述多个第一FEC包块中的每一个包括至少一个源包和用于所述至少一个源包中的每一个的修复的至少一个修复块;第二FEC编码器,用于通过对所述多个第一FEC包块执行第二FEC编码来生成第二FEC包块,所述第二FEC包块包括用于所述多个第一FEC包块的至少一个修复包;以及控制器,用于将指示所述多个第一FEC包块的块边界的第一块边界信息和指示所述第二FEC包块的块边界的第二块边界信息中的至少一个、以及相关包的序号信息附加到所述至少一个源包和所述至少一个修复包中的每一个的报头信息,以及用于控制每个FEC包块的发送。
[0014] 依据本发明的又一方面,提供一种用于在多媒体系统中接收包括多个FEC包的FEC包块的方法。所述方法包括:接收构成通过对多个源码元执行第一FEC编码生成的多个第一FEC包块的多个包,所述多个第一FEC包块中的每一个包括至少一个源包和用于所述至少一个源包中的每一个的修复的至少一个修复包;接收构成通过对所述多个第一FEC包块执行第二FEC编码生成的第二FEC包块的多个包,所述第二FEC包块包括多个第一FEC包块和用于所述多个第一FEC包块的至少一个修复包;以及从所接收到的构成所述多个第一FEC包块或者所述第二FEC包块的多个包中的每一个提取报头信息,确定所述多个第一FEC包块和所述第二FEC包块的块边界,并且对所接收到的多个包中的每一个进行解码;以及当作为解码的结果,存在丢失的源包时,使用相应修复包来修复丢失的源包。每个包的报头信息包括指示所述多个第一FEC包块的块边界的第一块边界信息和指示所述第二FEC包块的块边界的第二块边界信息中的至少一个、以及相关包的序号信息。
[0015] 依据本发明的仍一方面,提供一种用于在多媒体系统中接收包括多个FEC包的FEC包块的接收装置。所述接收装置包括:接收器,用于接收构成通过对多个源码元执行第一FEC编码生成的多个第一FEC包块的多个包,所述多个第一FEC包块中的每一个包括至少一个源包和用于每一个源包的修复的至少一个修复包,以及用于接收构成通过对所述多个第一FEC包块执行第二FEC编码生成的第二FEC包块的多个包,所述第二FEC包块包括多个第一FEC包块和用于所述多个第一FEC包块的至少一个修复包;解码器,用于对所接收到的多个第一FEC包块或者第二FEC包块执行解码;以及控制器,用于从所接收到的构成所述多个第一FEC包块或者所述第二FEC包块的多个包中的每一个提取报头信息,确定所述多个第一FEC包块和所述第二FEC包块的块边界,使用所述解码器对每一个包进行解码,并且当作为解码的结果,存在丢失的源包时,使用相应修复包来修复丢失的源包。每个包的报头信息包括指示所述多个第一FEC包块的块边界的第一块边界信息和指示所述第二FEC包块的块边界的第二块边界信息中的至少一个、以及相关包的序号信息。附图说明
[0016] 从下列结合附图的描述,本发明的某些示例性实施例的上述和其它方面、特征和优点将更加清楚,附图中:
[0017] 图1示意地示出了一般的基于互联网协议(IP)的网络拓扑和数据流;
[0018] 图2示出了根据本发明的示例性实施例的应用第一前向纠错(FEC)和第二FEC的编码结构;
[0019] 图3a和图3b示出了分别根据本发明的示例性实施例应用第一FEC和第二FEC的FEC块和FEC包块;以及
[0020] 图4示出了根据本发明的示例性实施例的运动图像专家组(MPEG)媒体传输(MMT)系统和传输功能层的结构。

具体实施方式

[0021] 现在将参照附图详细描述本发明的优选实施例。在下列描述中,比如详细配置和组件的特定细节仅仅被提供用来协助对本发明的示例性实施例的全面理解。因此,对于本领域技术人员来说,以下应该是清楚的:可以对这里描述的实施例进行各种改变和修改而不会偏离本发明的范围和精神。此外,为清楚和简洁起见,省略了对公知功能和构造的描述。
[0022] 本发明的下述示例性实施例包括当使用传输协议传输FEC块时、用于排序以及传输包括在前向纠错(FEC)块中的多个FEC包(比如实时协议(RTP)包或者运动图像专家组(MPEG)媒体传输(MMT)包)的包生成和传输方法。然而,在描述本发明的示例性实施例之前,这里使用的术语将简要地定义如下:
[0023] 前向纠错(FEC):用于纠正错误的纠错码或者擦除码元;
[0024] FEC帧:由对要保护的信息进行FEC编码而生成的代码字,所述代码字包括信息部分和奇偶校验位或者修复部分;
[0025] 码元:数据的单元,其中,以位为单位的尺寸称为码元尺寸;
[0026] 源码元:未受到保护的数据码元,其是FEC帧的信息部分;
[0027] 编码码元:通过对源码元进行FEC编码而生成的码元;
[0028] 修复码元:通过对源码元进行FEC编码生成的FEC帧的奇偶校验部分,其中,对于其中源码元在FEC编码期间保持不变的系统编码,编码码元=源码元+修复码元;
[0029] 包:包括报头和有效载荷的传输单元;
[0030] 有效载荷:要从发送器发送并且位于包内部的一条用户数据;
[0031] 包报头:包的报头;
[0032] 源块:码元组,其包括一个或多个源码元;
[0033] 修复块:码元组,其包括一个或多个修复码元;
[0034] FEC块:FEC帧组或者码元组,其包括源块和修复块;
[0035] FEC包:用于传输FEC包块的包;
[0036] 源包:用于传输源块的包;
[0037] 修复包:用于传输修复块的包;以及
[0038] FEC包块:用于传输FEC包块的包组。
[0039] 所述源包是用于传输作为多个源码元的组的源块的包。所述修复包是用于传输作为多个修复码元的组的修复块的包。所述FEC块包括所述源块以及所述修复块,并且用于传输所述FEC块的包组被称为FEC包块。
[0040] 根据本示例性实施例,一种用于生成所述FEC包块的方法可以包括生成要提供给用户的内容的至少一个源包,以及生成包括用于修复或者恢复所述至少一个源包中的有效载荷的修复码元的至少一个修复包。因而,所述FEC包块被生成以包括所述至少一个源包以及所述至少一个修复包。
[0041] 此外,根据另一个示例性实施例,一种用于生成所述FEC包块的方法可以包括:生成要提供给用户的内容的至少一个源包,生成包括用于修复所述至少一个源包中的相关有效载荷的第一修复码元的至少一个第一修复包,以及生成包括用于所述至少一个源包和至少一个第一修复包的所有有效载荷的第二修复码元的至少一个第二修复包。因而,FEC包块被生成以包括所述至少一个源包以及至少一个第一修复包和至少一个第二修复包。
[0042] 根据又一示例性实施例,一种用于生成所述FEC包块的方法可以包括:生成要提供给用户的内容的至少一个源包,生成包括用于修复所述至少一个源包中的相关有效载荷的第一修复码元的至少一个第一修复包,以及生成包括用于所述至少一个源包的所有有效载荷的第二修复码元的至少一个第二修复包。因而,FEC包块被生成以包括所述至少一个源包以及至少一个第一修复包和至少一个第二修复包。
[0043] 根据本发明的示例性实施例,包括所述源包和所述第一修复包的FEC包块被称为‘第一FEC包块’,并且包括所述源包和所述第一修复包和第二修复包的FEC包块被称为‘第二FEC包块’,或者可替换地,包括所述源包和所述第二修复包的FEC包块被称为‘第二FEC包块’。包括在第一FEC包块中的修复块被称为‘第一修复块’,并且包括在所述第二FEC包块中的修复块被称为‘第二修复块’。
[0044] 当第一FEC包块和第二FEC包块中的源块分别被称为第一源块和第二源块时,则第一源块和第二源块可以包括相同的源码元,或者可以包括不同的源码元。当所述第二FEC块是通过将通过另外的FEC编码生成的第二修复块附加到第一FEC包块的源块生成的时,则第一源块和第二源块可以包括相同的源码元,因为第二FEC块的源块与第一FEC块的源块相同。当第二FEC块的第二源块是通过包括第一源块和第一修复块生成的时,第一源块和第二源块可相互区别开。
[0045] 图2示出了根据本发明的示例性实施例的应用第一FEC和第二FEC的编码结构。
[0046] 参照图2,通过将预定数量的码元划分成M个第一源码元201a到203a、并且对第一源码元201a到203a中的每一个执行第一FEC编码而生成M个第一编码码元205到207。M个第一编码码元205到207包括所述第一源码元201a到203a以及它们关联的第一修复码元201b到203b。
[0047] 通过所述第一FEC编码生成的M个第一编码码元205到207、或者M个第一源码元201a到203a被用作第二源码元,并且第二编码码元209(比如如图2中所示中的编码码元2)可以包括第一编码码元205到207以及第二修复码元208(比如如图2中所示的修复码元2),可以通过对所述第二源码元执行第二FEC编码而生成第二编码码元209。附加地,虽然图2中未示出,但是可以选择性地应用第一FEC过程和第二FEC过程中的仅仅一个。
[0048] 图3a和图3b示出了根据本发明的示例性实施例的应用第一FEC和第二FEC的FEC块和FEC包块。
[0049] 参照图3a和3b,包括基于图2的编码码元的源块的源有效载荷301、修复块的第一修复有效载荷303的M个第一FEC块307a和M个第一FEC包块317a可以通过将包报头311a和313a附加到FEC块中的每一个的相应有效载荷311和313来而被打包以用于以包为基础的传输。
[0050] 参照3a,当应用第二FEC时,第二FEC块307可以包括M个第一FEC块307a、以及用于传输所述M个第一FEC块307a的至少一个第二修复有效载荷305的第二修复块。
[0051] 参照图3b,当应用第二FEC时,第二FEC包块317可以包括M个第一FEC包块317a、以及用于传输所述M个第一FEC包块317a的至少一个第二修复块315的、应用包报头315a的第二修复块。每个包包括报头和有效载荷。虽然未示出,但是可以对每个包应用没有FEC、仅仅第一FEC或者仅仅第二FEC。
[0052] 当应用结合3a和图3b描述的第一FEC编码结构和第二FEC编码结构时,M个第一FEC包块317a被生成以包括包含内容的源码元的至少一个源包和取决于第一FEC编码的包含用于源包的有效载荷的第一修复码元的至少一个第一修复包。此外,第二FEC包块317被生成以包括M个第一FEC包块317a以及取决于第二FEC编码的用于所述第一FEC包块的至少一个第二修复包。
[0053] 下面将描述根据本发明的示例性实施例包括在FEC包块中的包的报头结构。在下列描述中,FEC包可以是包括在FEC包块中的每个包和/或任意包。每个FEC包的报头可以包括第一FEC包块和第二FEC包块的边界信息字段、序号字段、第一修复块和第二修复块的边界信息字段以及有效载荷类型信息字段中的至少一个。
[0054] 包报头可以包括所述第一FEC的参数信息,比如包括在第一FEC包块和第一源块中的包的包计数信息,或者包括在第一源块和第一修复块中的包的包计数信息。所述包报头也可以包括所述第二FEC的参数信息,比如包括在第二FEC包块和第二源块中的包的包计数信息,或者对于包括在第二源块和第二修复块中的包的包计数信息。
[0055] 所述包报头也可以包括指示第一FEC和第二FEC的应用和不应用中的至少一个的FEC结构字段。根据FEC结构字段的字段值,可以可选地包括或者可以不同地定义第一FEC包块和第二FEC包块的边界信息字段、序号字段、第一修复块的边界信息字段、有效载荷类型信息字段、第一FEC的参数信息字段以及第二FEC的参数信息字段。
[0056] [表1]
[0057] FEC包报头格式1
[0058]有效载荷类型
序号
FEC结构
FEC块1边界信息
FEC块2边界信息
修复块1边界信息
修复块2边界信息
FEC块1(或者源块1)的包数#
源块1(或者修复块1)的包数#
FEC块2(或者源块2)的包数#
源块2(或者修复块2)的包数#
[0059] 表1示出了根据本发明的示例性实施例的FEC包的报头格式1。
[0060] 表1中示出的报头格式可以是对被包括在FEC包的报头中的信息字段的集合而非对信息字段的固定集合。可以根据采用的FEC包传输方案来可选地配置报头格式中的每个信息字段。
[0061] 当仅应用一个FEC时,与当如图3a和图3b中所示地使用两个FEC时不同,FEC包块生成方法可以包括当应用FEC时、生成用于传输源码元的至少一个源包和用于传输修复码元的至少一个修复包。
[0062] [表2]
[0063] FEC包报头格式2
[0064]有效载荷类型
序号
FEC标志
FEC块边界信息
修复块边界
FEC块(或者源块)的包数#
源块(或者修复块)的包数#
[0065] 表2示出了根据本发明的示例性实施例的当仅应用一个FEC时的FEC包报头格式2。
[0066] 参照表2,每个FEC包的报头可以包括用于FEC包块的边界信息字段(即FEC块边界)、序号字段、修复边界信息字段以及有效载荷类型信息字段中的至少一个。
[0067] 包报头也可以包括FEC的参数信息的信息字段,比如包括在FEC包块和源块中的包的包计数信息,或者包括在源块和修复块中的包的包计数信息。所述包报头也可以包括指示FEC的应用或者不应用的FEC标志信息字段。此外,根据FEC标志信息字段的值,可以可选地包括FEC包块的边界信息字段、序号字段、修复块的边界信息字段、有效载荷类型信息字段和FEC的参数信息字段。
[0068] 下面将描述本示例性实施例的FEC包传输方法。第一FEC包传输方法可以包括生成用于传输源码元的至少一个源包,当应用第一FEC时,生成用于传输第一修复码元的至少一个第一修复包,以及当应用第二FEC时,生成用于传输第二修复码元的至少一个第二修复包。
[0069] 所生成的源包和修复包中的每一个可以如这里所述地被传输。在每个包的传输期间,基于包的传输顺序而不管它是源包还是修复包来顺序地分配每个包的序号。在每个包的传输期间,相关FEC块的开始序号被包括在每个包的报头中以作为FEC块边界信息。当应用第一FEC和第二FEC两者时,在第二FEC包块中的每个包的传输期间,第二FEC包块的开始序号被包括在第二FEC包块的每个包报头中。
[0070] 当选择性地应用第一FEC和第二FEC之一时,每个包的报头信息包括在每个包的传输期间的FEC结构信息。当第一FEC包块和第二FEC包块中的源包或者修复包的数量可变时,传输报头信息,包括第一FEC包块和第二FEC包块中的每一个的包计数信息和源包计数信息,或者源包计数信息和修复包计数信息。每个源包的有效载荷类型信息被设置为指示源有效载荷的类型,比如音频、视频以及任意其它数据类型,并且每个修复包的有效载荷类型信息指示有效载荷是第一修复有效载荷还是第二修复有效载荷。
[0071] [表3]
[0072]
[0073]
[0074] 表3示出了根据示例性实施例的当应用第一FEC包传输方法时的FEC包的报头格式。
[0075] 下面将描述本发明的示例性实施例提供的第二FEC包传输方法。每个包的报头的有效载荷类型被设置为对应于在每个包的传输期间的相关有效载荷。换句话说,用于源有效载荷的包的有效载荷类型指示源有效载荷类型,比如音频、视频或者其它类似的且适合的类型,并且用于每个修复有效载荷的包的有效载荷类型指示修复有效载荷是第一修复有效载荷还是第二修复有效载荷。在传输期间,顺序地分配源包的序号,并且与源包的序号独立地,顺序地分配修复包的序号。此外,分开发送第一修复包的序号和第二修复包的序号。
[0076] 在每个包的传输期间,第一FEC包块的开始序号和第二FEC包块的开始序号被包括在每个包的报头中作为第一FEC包块的块边界信息(即FEC块1边界信息)、以及第二FEC包块的块边界信息(即FEC块2边界信息)。在传输期间,修复块边界信息被包括在每个包的报头或者修复包的报头中。第一FEC包块中的第一修复包的开始序号被包括在第一FEC包块中的每个包或者第一修复包的报头中,并且第二FEC包块中的第二修复包的开始序号被包括在第二FEC包块中的每个包或者第二修复包的报头中。
[0077] 当选择性地应用第一FEC和第二FEC之一时,在每个包的传输期间,FEC结构信息被包括在每个包的报头中。当第一FEC包块和第二FEC包块中的源包或者修复包的数量可变时,在FEC包块的传输期间,第一FEC包块和第二FEC包块中的每一个的包计数信息和源包计数信息、或者源包计数信息和修复包计数信息被包括在每个包的报头中。此外,第二FEC包传输方法中使用的报头格式可以与表1中所示的报头格式相同。
[0078] 下面将描述根据另一个示例性实施例的第三FEC包传输。每个包的报头的有效载荷类型被设置为对应于在其传输期间的相关有效载荷。换句话说,源有效载荷的包的有效载荷类型指示源有效载荷类型,比如音频、视频及其它类似的类型,并且修复有效载荷的包的有效载荷类型可以指示修复有效载荷是第一修复有效载荷还是第二修复有效载荷。在传输期间,顺序地分配源包的序号,并且与源包的序号独立地,顺序地分配修复包的序号。修复包的开始序号被设置为从例如,源包的开始序号开始,以便能够确定FEC包块中的修复块的边界。换句话说,FEC包块中的源包和修复包的序号被设置为彼此具有相关性,因此使确定包括修复包的修复块的边界成为可能。
[0079] 在第一FEC包块的传输期间,第一FEC包块的开始序号和第二FEC包块的开始序号被包括在每个包的报头中作为第一FEC包块的块边界信息和第二FEC包块的块边界信息。当选择性地应用第一FEC和第二FEC之一时,在包的传输期间,FEC结构信息被包括在每个包的报头中。当第一FEC包块和第二FEC包块中的源包或者修复包的数量可变时,则在每个包的传输期间,第一FEC包块和第二FEC包块中的每一个的包计数信息和源包计数信息、或者源包计数信息和修复包计数信息被包括在每个包的报头中。
[0080] [表4]
[0081]有效载荷类型
序号
FEC结构
FEC块1边界信息
FEC块2边界信息
FEC块1(或者源块1)的包数#
源块1(或者修复块1)的包数#
FEC块2(或者源块2)的包数#
源块2(或者修复块2)的包数#
[0082] 第三FEC包传输方法的报头格式可以与表4中所示地相同。
[0083] 下面将描述根据本发明的另一个示例性实施例的第四FEC包传输方法。当应用FEC时并且当使用一个FEC时,与当使用两个FEC不同,第四FEC包传输方法被应用到生成用于传输源码元的至少一个源包和用于传输修复码元的至少一个修复包的情况。
[0084] 每个包的报头的有效载荷类型对应于在每个包的传输期间的相关有效载荷。换句话说,源有效载荷的包的有效载荷类型指示源有效载荷类型,并且修复有效载荷的包的有效载荷类型指示修复有效载荷类型。在传输期间,顺序地分配源包的序号,并且与源包独立地,顺序地分配修复包的序号。在每个包的传输期间,相关FEC包块的开始序号被包括在每个包的报头中以作为FEC块边界信息。
[0085] 在每个包或者修复包的传输期间,修复块边界信息被包括在每个包的报头或者修复包的报头中。来自FEC包块中的修复包的开始序号被包括在FEC包块中的每个包或者修复包的报头中。当可选地应用FEC时,在每个包的传输期间,FEC标志信息被包括在每个包的报头中。当FEC包块中的源包或者修复包的数量可变时,在每个包的传输期间,用于FEC包块的包计数信息和源包计数信息、或者源包计数信息和修复包计数信息被包括在每个包的报头中。第四FEC包传输方法的报头格式可以与表2中所示的报头格式相同。
[0086] 下面将描述根据本发明的另一个示例性实施例的第五FEC包传输方法。
[0087] 每个包的报头的有效载荷类型对应于在每个包的传输期间的相关有效载荷。换句话说,源有效载荷的包的有效载荷类型指示源有效载荷类型,并且修复有效载荷的包的有效载荷类型指示修复有效载荷类型。在相应包的传输期间,源包的序号被顺序地分配,并且修复包的序号与源包独立地被顺序地分配。修复包的开始序号被设置为从例如,源包的开始序号开始,以便能够确定FEC包块中的修复块的边界。换句话说,FEC包块中的源包和修复包的序号被设置为具有相关性,因此使确定包括修复包的修复块的边界成为可能。
[0088] 在传输期间,相关FEC包块的开始序号被存储在每个包的报头中以作为FEC块边界信息。当FEC被可选地应用时,在每个包的传输期间,FEC标志信息被包括在每个包的报头中。当FEC包块中的源包或者修复包的数量可变时,在传输期间,FEC包块的包计数信息和源包计数信息、或者源包计数信息和修复包计数信息被存储在每个包的报头中。
[0089] [表5]
[0090]有效载荷类型
序号
FEC标志
FEC块边界
FEC块(或者源块)的包数#
源块(或者修复块)的包数#
[0091] 第五FEC包传输方法的报头格式可以与表5中所示地相同。
[0092] 下面将描述根据本发明的另一个示例性实施例的第六FEC包传输方法。
[0093] 在传输期间,基于包的传输顺序而不管它是源包还是修复包来顺序地分配每个包的序号。在每个包的传输期间,相关FEC块的开始序号被包括在每个包的报头中以作为FEC块边界信息。当可选地应用FEC时,FEC标志信息被包括在每个包的报头中。
[0094] 当FEC包块中的源包或者修复包的数量可变时,在传输期间,FEC包块的包计数信息和源包计数信息、或者源包计数信息和修复包计数信息被包括在每个包的报头中。每个源包的有效载荷类型信息指示源有效载荷的类型,并且每个修复包的有效载荷类型指示修复有效载荷类型。此外,第六FEC包传输方法的报头格式可以与表5的报头格式相同。
[0095] 根据另一个示例性实施例,可以通过使每个包包括第二FEC包块的块边界信息而不是将第一FEC包块的块边界信息包括在每个包中来减小每个包的报头信息开销。在这种情况下,被包括在每个包的报头信息中的第二FEC包块的块边界信息也可以被设置为第二FEC包块的开始序号。
[0096] 在图3a和3b的示例性实施例中,如果M个第一FEC包块317a的每个源块中的源包数量和每个修复块中的修复包数量是相同的,并且它们的相应数量是固定的,则可以基于包括在每个包的报头信息中的序号信息从M个第一FEC包块317a中确定包括在M个第一FEC包块317a的每个源块和每个修复块中的包所属的特定第一FEC包块。即使仅第二FEC包块的开始序号被用作块边界信息,也可以确定此。
[0097] 例如,假定包括在每个第一FEC包块317a中的源包的数量是100、包括在每个修复块中的修复包的数量是100、并且第二FEC包块的开始序号是‘1’,则,如果FEC包的序号是‘210’,则可以确定所述包是属于第二个第一FEC包块的包。上述方案可以在源包和修复包之间无差别地应用。然而,本发明不限于此,并且上述方案也可以仅应用于源包,或者上述方案可以不应用于修复包。
[0098] 图4示出了根据本发明的示例性实施例的MPEG媒体传输系统和传输功能层的结构。
[0099] 参照图4,图4的左侧示出了MPEG媒体传输(MMT)系统的结构,并且图4的右侧示出了传输功能层的详细结构。
[0100] 在媒体编码层401中压缩的音频/视频(A/V)数据经由封装功能层(以下简称E层)403以与A/V数据的文件格式相对应的格式而被打包。传送功能层405将经打包的A/V数据转换成MMT有效载荷格式,并且通过将MMT传输包报头附加到其来输出MMT传输包,或者,可替换地,使用现有的RTP协议输出RTP包。MMT传输包报头可以包括各种各样的格式的FEC包的报头信息。之后,输出的包经由用户数据报协议/传输控制协议(UDP/TCP)传输协议层407而在互联网协议(IP)级409上被转换成IP包。
[0101] 根据本发明的示例性实施例提供的应用层(AL)-FEC通过从封装功能层403接收输出而被应用于在MMT D.1层421中的产生MMT有效载荷格式的过程。当应用FEC时,如果要应用第一FEC和第二FEC两者,则控制功能层411将命令发送到传送功能层405,这使得MMT D.1层421能够在下述过程中从MMT D.1层421的输出生成FEC包块,如图3a中所示,以及使得MMT D.2层423能够在下述过程中从MMT D.1层421的输出生成FEC包块,如图3b中所示。MMT D.3层413提供与层之间的信息传输相关的功能。换句话说,所述MMT D.3层413使得能够进行层之间的内容传送和必要的通信。
[0102] 例如,所述MMT D.1层421以源块(即,6400个源有效载荷)为单位划分从E层403输入的数据,每个源块包括6400个有效载荷,其中,每个有效载荷具有1000个字节的尺寸,并且所述MMT D.1层421将源块划分成32个源子块,因而,每个源子块包括200个源有效载荷。通过经由系统编码的第一FEC编码将50个修复有效载荷附加到每个源子块(比如源块1)而生成包括200个源有效载荷和40个修复有效载荷的第一FEC包块。通过经由系统编码的第二FEC编码将320个第二修复有效载荷附加到包括7680个有效载荷的所生成的32个第一FEC包块或者包括6400个有效载荷的源块而生成第二FEC包块。
[0103] MMT D.2层423通过将MMT传输包报头附加到第二FEC包块中的每个有效载荷(所述第二FEC包块包括由MMT D.1层421生成的6400个源有效载荷、32×40个第一修复有效载荷和320个第二修复有效载荷(如图3b中所示))并且包括8000个有效载荷来执行MMT传输打包,并且MMT传输包报头格式可以如表1或表3中所示地配置。当MMT传输包报头格式如表1中所示地配置时,可以如下地设置字段值:
[0104] 有效载荷类型:通过将1个字节分配给该字段或者将在例如10h~F0h之间的值分配给源有效载荷中的每一个来标识每个源有效载荷,其中,通过将F1h的值分配给第一修复有效载荷并且将F2h的值分配给第二修复有效载荷来标识源有效载荷以及第一修复有效载荷和第二修复有效载荷;
[0105] 序号:2个字节被分配给该字段以将s~s+6399顺序地分配给6400个源包、将r1~r1+1279顺序地分配给与32个第一修复块相对应的1280个修复包、并且将r2~r2+319顺序地分配给包括320修复包的第二修复块,因此,如果所述序号达到其最大值(例如,FFFFh),则下一个序号是0000h;
[0106] FEC结构:2个比特被分配给该字段,并且该字段被设置为11b以指示应用了第一FEC和第二FEC两者;
[0107] 第一FEC包块的块边界信息(FEC块1边界信息):2个字节被分配给该字段以设置每个第一FEC包块的开始序号,从而在可以是第一FEC包块1的第一FEC包块的包中设置‘s’,在可以是第二FEC包块1的第一FEC包块的包中设置s+240,…,并且在可以是第32个FEC包块1的第一FEC包块的包中设置s+31*240,以作为第一FEC包块的块边界信息;
[0108] 第二FEC包块的块边界信息(FEC块2边界信息):2个字节被分配给该字段以将每个包中的第二FEC包块的块边界信息同样地设置为‘s’;
[0109] 第一修复块的块边界信息(修复块1边界信息):2个字节被分配给该字段以设置每个第一修复块的开始序号,从而在可以是第一FEC包块1的第一FEC包块的包中设置r1,在可以是第二FEC包块1的第一FEC包块的包中设置r1+40,…,并且在可以是第32个FEC包块1的第一FEC包块的包中设置r1+31*40,以作为第一修复块的块边界信息;
[0110] 第二修复块的块边界信息(修复块2边界信息):2个字节被分配给该字段以将每个包中的第二修复块的块边界信息同样地设置为‘r2’;
[0111] 第一源块的包数量(源块1的包数#_):2个字节被分配给该字段,其在每个包中被设置为‘200’;
[0112] 第一修复块的包数量(修复块1的包数#_):2个字节被分配给该字段,其在每个包中被设置为‘40’;
[0113] 第二源块的包数量(源块2的包数#_):2个字节被分配给该字段,其在每个包中被设置为‘7680’;以及
[0114] 第二修复块的包数量(修复块2的包#_):2个字节被分配给该字段,其在每个包中被设置为‘320’以用于MMT传输包的传输;
[0115] 当MMT输送包报头格式如表3中所示地配置时,字段值可以按如下设置:
[0116] 有效载荷类型:1个字节被分配给该字段,以通过将在10h~F0h之间的值分配给源有效载荷来标识每个源有效载荷,并且通过将F1h的值分配给第一修复有效载荷并且将F2h的值分配给第二修复有效载荷来标识源有效载荷以及第一修复有效载荷和第二修复有效载荷;
[0117] 序号:2个字节被分配给该字段以将s~s+7999顺序地分配给8000个FEC包而不管所述包是源包还是修复包;
[0118] FEC结构:2个比特被分配给该字段,并且该字段被设置为11b以指示应用了第一FEC和第二FEC两者;
[0119] FEC块边界信息(FEC Block Boundary Info):在第二FEC包块的所有包中同样地设置‘s’作为FEC块边界信息;
[0120] 第一源块的包数量(源块1的包数#_):2个字节被分配给该字段,其在每个包中被设置为‘200’;
[0121] 第一修复块的包数量(修复块1的包数#_):2个字节被分配给该字段,其在每个包中被设置为‘40’;
[0122] 第二源块的包数量(源块2的包数#_):2个字节被分配给该字段,其在每个包中被设置为‘7680’;以及
[0123] 第二修复块的包数量(修复块2的包数#_):2个字节被分配给该字段,其在每个包中被设置为‘320’以用于MMT传输包的传输;
[0124] 当MMT输送包报头格式如表3中所示地配置时,字段值可以以另一种方法按如下设置:
[0125] 有效载荷类型:1个字节被分配给该字段,以通过将在10h~F0h之间的值分配给源有效载荷来标识每个源有效载荷,并且通过将F1h的值分配给第一修复有效载荷并且将F2h的值分配给第二修复有效载荷来标识源有效载荷以及第一修复有效载荷和第二修复有效载荷;
[0126] 序号:2个字节被分配给该字段以将s~s+6399顺序地分配给6400个源包、将s~s+39顺序地分配给32个第一修复块当中的的第一修复块(比如第一修复块1)的包、将s+200~s+200+39顺序地分配给第一修复块(比如第二修复块1)的包、将s+31*200~s+31*200+39顺序地分配给第一修复块(比如第32修复块1)的包以及将s~s+319顺序地分配给包括320个修复包的第二修复块,然而,如果所述序号达到其最大值(例如,FFFFh),则下一个序号是
0000h;
[0127] FEC结构:2个比特被分配给该字段,并且该字段被设置为11b以指示应用了第一FEC和第二FEC两者;
[0128] FEC块边界信息(FEC Block Boundary Info):在第二FEC包块的所有包中同样地设置第二FEC包块的开始序号‘s’作为FEC块边界信息;
[0129] 第一源块的包数量(源块1的包数#):2个字节被分配给该字段,其在每个包中被设置为‘200’;
[0130] 第一修复块的包数量(修复块1的包数#):2个字节被分配给该字段,其在每个包中被设置为‘40’;
[0131] 第二源块的包数量(源块2的包数#):2个字节被分配给该字段,其在每个包中被设置为‘7680’;以及
[0132] 第二修复块的包数量(修复块2的包数#):2个字节被分配给该字段,其在每个包中被设置为‘320’以用于MMT传输包的传输;
[0133] 当仅应用第一FEC和第二FEC之一时,则通过利用执行FEC编码在6400个源有效载荷中生成1600个修复有效载荷来生成包括8000个有效载荷的FEC包块,并且在将MMT传输包报头附加到每个有效载荷之后发送FEC包块,其中,MMT传输包报头格式可以如表5中所示地配置。当MMT传输包报头格式如表5中所示地配置时,可以如下地设置字段值:
[0134] 有效载荷类型:1个字节被分配给该字段,以通过将在10h~F0h之间的值分配给源有效载荷来标识每个源有效载荷,并且通过将F1h的值分配给修复有效载荷来标识源有效载荷和修复有效载荷;
[0135] 序号:2个字节被分配给该字段以将s~s+6399顺序地分配给6400个源包、以及将s~s+1599顺序地分配给1600个修复块,其中,如果所述序号达到其最大值(例如,FFFFh),则下一个序号是0000h;
[0136] FEC结构:2个比特被分配给该字段,并且该字段被设置为01b或者10b以指示应用了第一FEC和第二FEC两者,或者仅应用了它们中的一个;
[0137] FEC块边界信息(FEC Block Boundary Info):在FEC包块的所有包中同样地设置FEC包块的开始序号‘s’作为FEC块边界信息;
[0138] 源块的包数量(源块的包数#_):2个字节被分配给该字段,其在每个包中被设置为‘6400’;以及
[0139] 修复块的包数量(修复块的包数#_):2个字节被分配给该字段,其在每个包中被设置为‘1600’以用于MMT传输包的传输;
[0140] 在上述描述中,给出所述MMT传输包报头格式作为根据本发明的示例性实施例的FEC包报头格式的示例。然而,本发明不限于此,并且当MMT D.1层421生成MMT有效载荷格式时,如果MMT有效载荷格式被划分成报头和有效载荷,则MMT有效载荷格式的报头可以用作FEC包报头格式,如这里所示。在这种情况下,MMT有效载荷格式中的有效载荷在经历FEC编码之后变成FEC包有效载荷。
[0141] 可应用本发明的示例性实施例的发送装置可以包括:发送器,用于根据预定通信方案发送第一FEC包块或者第二FEC包块中的每个包;至少一个编码器,用于执行第一FEC编码和第二FEC编码;以及控制器,用于将报头信息附加到构成第一FEC包块和第二FEC包块的每个包。
[0142] 对应于所述发送装置的接收装置可以包括:接收器,用于根据预定通信方案接收第一FEC包块或者第二FEC包块中的每个包;至少一个解码器,用于对应用到至少一个编码器的FEC方案执行第一FEC解码和第二FEC解码;以及控制器,用于通过从构成第一FEC包块和第二FEC包块的每个包提取报头信息来确定第一FEC包块和第二FEC包块的块边界,以及用于在丢失源包时,控制使用关联的修复包恢复丢失的源包的操作。
[0143] 本发明的示例性实施例提供的报头信息优选地被看作是一般的FEC相关信令信息,从而它在物理上不受限,并且所述报头信息位于FEC包中的有效载荷的前部。
[0144] 如上所述,尽管包的到达序列改变或者在通过网络中的几个传输路由器的内容传送期间出现包丢失,但是本发明的示例性实施例的FEC包生成及传输方法也可以容易地恢复丢失的包,因此使得将高质量的内容和服务提供给用户成为可能。
[0145] 尽管已经参照本发明的某些示例性实施例示出和描述了本发明,但本领域技术人员将会理解,可以对本发明进行形式和细节上的各种改变,而不会脱离权利要求及其等效物限定的本发明的精神和范围。
QQ群二维码
意见反馈