数字广播系统及其纠错方法转让专利

申请号 : CN200710303600.5

文献号 : CN101257634B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 姜永硕

申请人 : 三星电子株式会社

摘要 :

一种数字广播系统及其纠错方法,包括:服务器,对预定数量的多播分组进行分组以获得用于数字广播数据(MPEG TS)传输的前向纠错FEC组,使用FEC组中多播分组的数目和分段长度为每个多播分组创建FEC数据,将所述FEC数据包括在多播分组中,并通过网络来传输所产生的多播分组;以及机顶盒,响应于通过网络接收的多播分组发生丢失,通过除了丢失的多播分组以外的多播分组的数字广播数据(MPEG TS)分片来恢复丢失的多播分组的各个数字广播数据(MPEG TS)分片,并把所恢复的数字广播数据(MPEG TS)分片进行结合以恢复丢失的多播分组。

权利要求 :

1.一种数字广播系统,包括:

服务器,对预定数量的多播分组进行分组以获得用于数字广播数据(MPEG TS)传输的前向纠错FEC组,使用FEC组中多播分组的数目和分段长度为每个多播分组创建FEC数据,将所述FEC数据包括在多播分组中,并通过网络来传输所产生的多播分组;以及机顶盒,响应于通过网络接收的多播分组发生丢失,通过除了丢失的多播分组以外的多播分组的数字广播数据(MPEG TS)分片来恢复丢失的多播分组的各个数字广播数据(MPEG TS)分片,并把所恢复的数字广播数据(MPEG TS)分片进行结合以恢复丢失的多播分组。

2.如权利要求1所述的系统,其中,所述服务器包括:

获得用于数字广播数据(MPEG TS)传输的多播FEC组;

数据分段器,按照设定数对FEC组中的多播分组的数字广播数据(MPEG TS)进行分段;

FEC数据设置器,按照设定数对FEC组中的多播分组各自的数字广播数据(MPEG TS)进行分段,通过对分段的数字广播数据(MPEG TS)执行异或(XOR)运算来为每个多播分组设置FEC数据,将所述FEC数据包括在多播分组中,并通过网络来传输所产生的多播分组;以及FEC报头设置器,设置FEC组中每个多播分组的流ID、序列号和顺序,并将所述流ID、序列号和顺序包括在每个多播分组中。

3.如权利要求2所述的系统,其中,所述机顶盒基于所述序列号来判定是否存在丢失的分组。

4.一种用于数字广播系统的服务器,所述服务器包括:

前向纠错FEC组设置器,对预定数量的多播分组进行分组以获得用于数字广播数据(MPEG TS)传输的FEC组;

数据分段器,按照设定数对FEC组中的多播分组的数字广播数据(MPEG TS)进行分段;

以及

FEC数据设置器,按照设定数对FEC组中的多播分组的数字广播数据进行分段,通过对分段的数字广播数据(MPEG TS)执行异或(XOR)运算来为每个多播分组设置FEC数据,将所述FEC数据包括在多播分组中,并通过网络来传输所产生的多播分组。

5.如权利要求4所述的服务器,还包括:FEC报头设置器,设置FEC组中每个多播分组的流ID、序列号和顺序,并将所述流ID、序列号和顺序包括在每个多播分组中。

6.一种用于数字广播系统的机顶盒,所述机顶盒包括:

差错判定器,基于多播分组中包含的序列号来判定通过网络接收的任何多播分组是否已经丢失;

至少一个缓冲器;以及

差错纠正器,通过恢复FEC组中除了丢失的多播分组以外的所有多播分组的前向纠错FEC数据来恢复丢失的多播分组。

7.如权利要求6所述的机顶盒,其中,所述差错纠正器检查具有要恢复的FEC数据的多播分组和该多播分组的数字广播数据(MPEG TS)分片的位置,把所述FEC数据存储在第一缓冲器中,从除了具有所存储的FEC数据的多播分组和丢失的多播分组以外的多播分组中提取进行恢复所需的各个数字广播数据(MPEG TS)分片,并对每个所提取的数字广播数据(MPEG TS)分片和存储在第一缓冲器中的FEC数据执行异或运算,以恢复丢失的多播分组的第P个数字广播数据(MPEG TS)分片,以及所述差错纠正器通过FEC组中除了丢失的多播分组以外的多播分组的FEC数据来进一步恢复丢失的多播分组的各个数字广播数据(MPEG TS)分片,并对所恢复的数字广播数据(MPEG TS)分片进行结合,以恢复丢失的多播分组的数字广播数据(MPEG TS)。

8.一种针对数字广播系统在服务器中设置纠错信息的方法,所述方法包括:

对预定数量的多播分组进行分组,以获得用于数字广播数据(MPEGTS)传输的FEC组;

按照设定数对FEC组中的多播分组的数字广播数据(MPEG TS)进行分段;以及按照设定数对FEC组中的多播分组的数字广播数据(MPEG TS)进行分段,使用FEC组中多播分组的数目和分段长度为每个多播分组设置前向纠错FEC信息,将所述FEC数据包括在多播分组中,并通过网络来传输所产生的多播分组。

9.如权利要求8所述的方法,其中,按照设定数对FEC组中的多播分组的数字广播数据(MPEG TS)进行分段,使用分段的数字广播数据(MPEGTS)为每个多播分组设置FEC数据,将所述FEC数据包括在多播分组中,以及通过网络来传输所产生的多播分组的步骤包括:通过对分段的数字广播数据(MPEG TS)执行异或(XOR)运算,为每个多播分组设置FEC数据。

10.如权利要求8所述的方法,还包括:设置FEC组中每个多播分组的流ID、序列号和顺序,并将所述流ID、序列号和顺序包括在每个多播分组中。

11.一种在数字广播系统的机顶盒中进行纠错的方法,所述方法包括:

基于包含在每个多播分组中的序列号,判定通过网络接收的任何多播分组是否已经丢失;

通过FEC组中除了丢失的多播分组以外的所有多播分组的FEC数据来恢复丢失的多播分组的数字广播数据(MPEG TS)分片,并且把所恢复的数字广播数据(MPEG TS)分片进行结合,以恢复丢失的多播分组。

说明书 :

数字广播系统及其纠错方法

技术领域

[0001] 本发明涉及一种数字广播系统及其纠错方法,更具体地,涉及一种数字广播系统及通过前向纠错来纠正丢失的多播分组的纠错方法。

背景技术

[0002] 数字广播系统基于运动图像专家组(MPEG)编码标准有效地压缩多个频道的节目,基于每个传输介质的数字调制系统有效地多路复用(multiplex)这些频道的节目,并传输这些节目。相应地,该数字广播系统能广播数十到数百个频道而不使用许多的中继器,这不同于模拟广播系统。
[0003] 取决于传输介质,数字广播可被分类为数字地面广播、数字卫星广播和有线数字广播。当代数字卫星广播已经扩展到全球,而且数字地面广播也已经在美国和一些欧洲国家进行测试。
[0004] 大多数数字广播服务都通过有线的方式提供。然而,伴随着近来高速因特网技术的发展,这样的数字广播服务可以通过因特网协议(IP)网络来提供。
[0005] 用来提供数字广播服务的数字广播系统包括:数字广播服务器,通过IP网络提供广播数据;以及多个连接到该IP网络的机顶盒,用于把来自于数字广播服务器的广播数据提供给用户。
[0006] 数字广播服务器通过编码把从数字广播站(系统操作装置)接收的模拟广播数据转换并压缩为数字广播数据,并且通过IP网络来多播(multicast)所产生的分组。可根据运动图像专家组2(MPEG-2)传输流(TS)标准来构成通过IP网络进行传送的多播分组。
[0007] 也就是说,数字广播服务器把任意频道的广播数据多播到IP网络。
[0008] 机顶盒对通过IP网络接收到的多播分组进行解码和解压缩,并将所产生的数字广播数据提供给数字电视。
[0009] 如上所述,数字广播数据通过IP网络从数字广播服务器多播至机顶盒。当IP网络上的数字广播数据(MPEG TS)丢失时,该多播不允许重新传输该数据。
[0010] 相应地,与机顶盒相连的数字电视不能再现丢失的数字广播数据。相反,其在屏幕上与丢失的数字广播数据相对应的再现区域中显示噪声。
[0011] 为了解决这个问题,使用前向纠错(FEC)。FEC是这样一种方法:传输用于丢失分组恢复的多个FEC分组以及数字广播数据(MPEG TS)的多播分组流,并通过使用有关的FEC分组和邻近于丢失的多播分组的分组来恢复丢失的多播分组。
[0012] 如图1所示,FEC分组f(A,B)和f(B,C)插入到原始多播分组流之间。注意,f(A,B)=A XOR B且f(B,C)=B XOR C。
[0013] 也就是说,数字广播服务器将多个FEC分组f(A,B)和f(B,C)插入到原始多播分组流A,B,C,D,E……之间,并通过IP网络多播这些分组。
[0014] 机顶盒通过使用恢复丢失的多播分组所需的FEC分组和邻近于丢失的多播分组的分组,来恢复通过IP网络从数字广播服务器接收的多播流中丢失的多播分组。
[0015] 例如,当通过IP网络从数字广播服务器接收的多播流中的分组B丢失时,机顶盒对邻近的分组C和FEC分组f(B,C)执行异或(XOR)操作,以恢复丢失的分组B。
[0016] 如上所述,数字广播服务器将FEC分组增加到多播分组流之间,并通过IP网络传输所产生的分组,以便机顶盒恢复丢失的分组B。然而,所增加的FEC分组导致IP网络上的开销增大。
[0017] 例如,如图1中所示,与原始多播分组流相比较,所增加的FEC分组导致IP网络上的开销加倍。
[0018] 此外,增加用于丢失分组恢复的FEC分组要求机顶盒具备FEC分组处理部件。

发明内容

[0019] 本发明的目的是提供一种数字广播系统及其纠错方法,通过传输包含用于丢失分组恢复的FEC数据的前向纠错(FEC)组的多播分组来减轻网络的负荷。
[0020] 本发明的第一方面提供了一种数字广播系统,包括:服务器,对预定数量的多播分组进行分组以获得用于数字广播数据(MPEG TS)传输的前向纠错FEC组,使用FEC组中的多播分组的数目和分段长度为每个多播分组创建FEC数据,将所述FEC数据包括在多播分组中,并通过网络来传输所产生的多播分组;以及机顶盒,响应于通过网络接收的多播分组发生丢失,通过除了丢失的多播分组以外的多播分组的数字广播数据(MPEG TS)分片来恢复丢失的多播分组的各个数字广播数据(MPEG TS)分片,并把所恢复的数字广播数据(MPEG TS)分片进行结合以恢复丢失的多播分组。
[0021] 所述服务器可以包括:FEC组设置器,对预定数量的多播分组进行分组,以获得用于数字广播数据(MPEG TS)传输的多播FEC组;数据分段器,按照设定数对FEC组中的多播分组的数字广播数据(MPEG TS)进行分段;FEC数据设置器,按照设定数对FEC组中的多播分组各自的数字广播数据(MPEG TS)进行分段,通过对分段的数字广播数据(MPEG TS)执行异或(XOR)运算来为每个多播分组设置FEC数据,将所述FEC数据包括在多播分组中,并通过网络来传输所产生的多播分组;以及FEC报头设置器,设置FEC组中每个多播分组的流ID、序列号和顺序,并将所述流ID、序列号和顺序包括在每个多播分组中。
[0022] 所述机顶盒可以基于所述序列号来判定是否存在丢失的分组。
[0023] 本发明的第二方面提供了一种用于数字广播系统的服务器,所述服务器包括:前向纠错FEC组设置器,对预定数量的多播分组进行分组以获得用于数字广播数据(MPEG TS)传输的FEC组;数据分段器,按照设定数对FEC组中的多播分组的数字广播数据(MPEG TS)进行分段;以及FEC数据设置器,按照设定数对FEC组中的多播分组的数字广播数据进行分段,通过对分段的数字广播数据(MPEG TS)执行异或(XOR)运算来为每个多播分组设置FEC数据,将所述FEC数据包括在多播分组中,并通过网络来传输所产生的多播分组。
[0024] 所述服务器还可以包括:FEC报头设置器,设置FEC组中每个多播分组的流ID、序列号和顺序,并将所述流ID、序列号和顺序包括在每个多播分组中。
[0025] 本发明的第三方面提供了一种用于数字广播系统的机顶盒,所述机顶盒包括:差错判定器,基于多播分组中包含的序列号来判定通过网络接收的任何多播分组是否已经丢失;至少一个缓冲器;以及差错纠正器,通过恢复FEC组中除了丢失的多播分组以外的所有多播分组的前向纠错FEC数据来恢复丢失的多播分组。
[0026] 本发明的第四方面提供了一种针对数字广播系统在服务器中设置纠错信息的方法,所述方法包括:对预定数量的多播分组进行分组,以获得用于数字广播数据(MPEG TS)传输的FEC组;按照设定数对FEC组中的多播分组的数字广播数据(MPEG TS)进行分段;以及按照设定数对FEC组中的多播分组的数字广播数据(MPEG TS)进行分段,使用FEC组中的多播分组的数目和分段长度为每个多播分组设置前向纠错FEC信息,将所述FEC数据包括在多播分组中,并通过网络来传输所产生的多播分组。
[0027] 按照设定数对FEC组中的多播分组的数字广播数据(MPEG TS)进行分段,使用分段的数字广播数据(MPEG TS)为每个多播分组设置FEC数据,将所述FEC数据包括在多播分组中,并通过网络来传输所产生的多播分组的步骤可以包括:通过对分段的数字广播数据(MPEG TS)执行异或(XOR)运算,为每个多播分组设置FEC数据。
[0028] 所述方法还可以包括:设置FEC组中每个多播分组的流ID、序列号和顺序,并将所述流ID、序列号和顺序包括在每个多播分组中。
[0029] 本发明的第五方面提供了一种在数字广播系统的机顶盒中进行纠错的方法,所述方法包括:基于包含在每个多播分组中的序列号,判定通过网络接收的任何多播分组是否已经丢失;通过FEC组中除了丢失的多播分组以外的所有多播分组的FEC数据来恢复丢失的多播分组的数字广播数据(MPEG TS)分片,并且把所恢复的数字广播数据(MPEG TS)分片进行结合,以恢复丢失的多播分组。

附图说明

[0030] 参照接下来相关联的附图做进一步详细的描述,本发明及其附带的许多优点将会更容易更明显地被理解,在附图中,相同的附图标记代表相同或类似的部件,其中:
[0031] 图1是在数字广播系统中用于恢复丢失的多播分组的前向纠错(FEC)的图示;
[0032] 图2是根据本发明实施例的数字广播系统的图示;
[0033] 图3是根据本发明实施例的FEC服务器的框图;
[0034] 图4是根据本发明实施例的机顶盒的框图;
[0035] 图5是根据本发明实施例的多播分组的图示;
[0036] 图6是图5中FEC报头字段的图示;
[0037] 图7是根据本发明实施例的分段的数字广播数据(MPEG TS)的图示;
[0038] 图8是根据本发明实施例的FEC组中的多播分组的FEC字段的图示;
[0039] 图9是根据本发明实施例用于在FEC服务器中设置FEC数据的方法的流程图;
[0040] 图10是根据本发明实施例在机顶盒中进行纠错的方法的流程图;以及[0041] 图11是在图10的机顶盒的纠错方法中恢复多播分组的FEC区域的过程的流程图。

具体实施方式

[0042] 在下文中,将参照相应的附图来描述本发明的示范实施例。为了清楚简明,本领域中与本发明有关的公知主题将不再描述。
[0043] 图2是根据本发明实施例的数字广播系统的图示。
[0044] 原始的MPEG-TS基于有线广播网络。相应地,数据按照188字节单元进行划分,并且把RS-CODE增加到数据中,用于通过有线传输时的纠错(数字视频广播标准)。
[0045] 这样,大多数广播设备都使用MPEG-TS对数据进行编码,作为参考,大多数IP TV使用1316字节,这是根据MPEG-TS系统的188字节单元的7倍。
[0046] 由于以太网中一个分组至多包含1500字节,那么在使用1344字节后,剩下156字节。
[0047] 相应地,在本申请中,剩下的156字节用于FEC字段,因此,可以最大化被设置为使用1500字节的设备的性能。
[0048] 由于以太网设备被设置为使用1500字节,其不能使用多于1500字节。相应地,以太网设备使用最接近于1500字节的大小。
[0049] 参照图2,根据本发明实施例的数字广播系统包括流服务器20,FEC服务器30和多个机顶盒40。
[0050] 流服务器20把广播站(未示出)提供的数字广播数据(MPEG TS)转换为MPEG-TS格式的多播分组,并将该多播分组提供给FEC服务器30。
[0051] FEC服务器30按照预定数目(例如,10)对来自于流服务器20的多播分组进行分组,以获得FEC组,把FEC组中的多播分组的数目减1,并把多播分组中包括的数字广播数据(MPEG TS)的长度除以相减结果值,以获得分段长度“fragment_size”。
[0052] FEC服务器30使用FEC组中多播分组的数目和分段长度为每个多播分组创建FEC数据,该FEC数据是恢复丢失的多播分组所需的,将生成的FEC数据包括在相应的多播分组中,并通过IP网络将所产生的多播分组多播至机顶盒40。
[0053] 机顶盒40对通过IP网络接收的多播分组进行解码和解压缩,并将所产生的数字广播数据提供给数字电视。
[0054] 当通过IP网络接收的任何多播分组丢失时,机顶盒40通过使用包含在与FEC组相对应的多播分组中的FEC数据来恢复丢失的多播分组。
[0055] 也就是,当通过网络接收的任何多播分组丢失时,机顶盒40通过除丢失的多播分组以外的多播分组的FEC数据来恢复丢失的数字广播数据(MPEG TS)的各个分片(piece),并把恢复的数字广播数据(MPEG TS)的分片进行结合,以恢复丢失的多播分组。
[0056] 图3是根据本发明实施例的FEC服务器的框图。
[0057] 参照附图3,FEC服务器包括FEC组设置器31、FEC报头设置器32和FEC数据设置器36。FEC报头设置器32包括流ID设置器33和顺序设置器35。FEC数据设置器36包括数据分段器39。
[0058] FEC组设置器31按照设定的数目(例如10)对从流服务器接收的多播分组进行分组,以获得FEC组。
[0059] 图5中示出了来自于流服务器的多播分组的格式。
[0060] 如图5所示,多播分组包括IP地址字段50、UDP字段51、数字广播数据(MPEG TS)字段52、FEC报头字段53和FEC数据字段54。
[0061] IP地址字段50包括流服务器的IP地址,这是生成多播分组的来源,而且还包括FEC组地址,多播分组将会传输至该地址。IP地址字段50包括20字节。
[0062] UDP字段51指示多播分组是通过UDP协议传输的。UDP字段51包含8字节。
[0063] 数字广播数据(MPEG TS)字段52包括数字广播数据(MPEG TS),并包含1316字节。
[0064] FEC报头字段53包括用于恢复丢失的多播分组而创建的FEC设置,并包含8字节。
[0065] FEC数据字段54包括用于恢复丢失的多播分组而创建的FEC数据,并具有图6中的“fragment_size”的长度。
[0066] 图6是用于创建多播分组的FEC数据的信息以及能够追踪丢失分组信息的信息的图示,这些信息是通过机顶盒来恢复丢失的分组所需要的。
[0067] 参照图6,FEC报头包括FEC组长度group_size,流ID stream_ID,FEC组中多播分组的顺序diff,分段长度fragment_size和序列号。
[0068] FEC组长度group_size对应于FEC组中多播分组的数目。FEC组是通过异或运算而相互关联的多播分组的数字广播数据(MPEG TS)的分片的组,其将被用来构成FEC数据。例如,当一个多播分组丢失时,丢失的多播分组的数字广播数据(MPEG TS)部分可以通过FEC组中所有其它的多播分组来恢复。由于允许每个FEC组恢复一个丢失的多播分组,所以较小的FEC组长度提供了良好的恢复率,但却增大了网络上的开销。
[0069] 流ID stream_ID表示用于识别包含在多播流中的数字广播数据(MPEG TS)的ID。
[0070] FEC组中第一个多播分组的顺序diff是0,第二个分组的顺序diff是1……,最后一个分组的顺序diff是group_size-1。
[0071] 分段长度fragment_size表示某个长度,把数字广播数据(MPEG TS)按照该长度进行分段,以创建FEC数据,该长度对应于FEC数据的长度。
[0072] 序列号表示分配给每个多播分组的编号,用于识别丢失的多播分组。
[0073] 下文描述用于设置图5中的FEC报头字段和FEC数据的方法。
[0074] 图6是FEC报头字段的图示。
[0075] 首先,确定FEC组长度group_size。取决于网络状态,FEC组长度可以从10到255的范围中任意地选择。
[0076] 因为允许每个FEC组恢复一个丢失的多播分组,较小的FEC组可以提供良好的恢复率,但却增大了网络上的开销,这就要求操作者选择适合的组长度。
[0077] 在下面的描述中,FEC组长度被假定为10。
[0078] 当定义了FEC组长度时,FEC报头设置器32在group_size字段中设置该定义值,并把分段长度fragment_size定义为从1316/(group_size-1)到148的范围内的正整数。
[0079] 1316/(group_size-1)?fragment_size?148
[0080] 然后,FEC报头设置器32中的流ID设置器33记录流IDstream_ID。
[0081] 针对数字广播流的每个频道设置一个流ID stream_ID,而且操作者可以将其定义为任意值。在机顶盒中,由于序列号sequence_number被用来识别具有相同流ID值的流以检查多播分组是否丢失,因此该流ID必须被定义为在不同频道之间不发生重叠。
[0082] 当已经设置了流ID时,序列号设置器34根据数字广播数据(MPEGTS)的顺序,设置属于FEC组的多播分组的序列号sequence_number。在机顶盒中,序列号sequence_number被设置用于识别多播分组是否丢失,其可以具有值0,1,2,……,65535。在最大值65535之后,把0设置为多播分组的序列号。
[0083] 当已经设置了序列号时,FEC报头设置器32中的顺序设置器35接着设置FEC组中包括的多播分组的顺序。组中多播分组的顺序diff反映了与FEC组中第一个分组的距离。FEC组中第一个分组的顺序为0,第二个分组的顺序为1,……,最后一个分组的顺序为group_size-1。
[0084] 在设置了FEC组中多播分组的顺序后,FEC报头设置器32把所设置的流ID、每个序列号、组长度、多播分组顺序diff和分段长度包含在每个多播分组的FEC报头中。
[0085] 下文描述用于设置图5中的FEC数据字段的方法。
[0086] FEC数据字段54存储由FEC数据设置器36创建的数据。当FEC报头设置器32已经设置了每个多播分组的FEC报头中的信息时,FEC数据设置器36基于FEC报头中设置的分段长度fragment_size,对多播分组中包括的数字广播数据(MPEG TS)进行分段。
[0087] 图7示出了依据分段长度进行分段的数字广播数据(MPEG TS)。图7是当分段长度fragment_size为148时所分段的数字广播数据(MPEG
[0088] TS)的图示。可以看出,依照分段长度fragment_size为148,数字广播数据(MPEG TS)被分段为9个148字节的分片。
[0089] 在把数字广播数据(MPEG TS)分段为分段长度的分片后,FEC数据设置器36获得将要插入图5中所示的多播分组的FEC数据区的FEC数据。
[0090] 具体地,FEC数据设置器36将数字广播数据(MPEG TS)分段成分片,接着初始化第一缓冲器37和第二缓冲器38。优选地,第一缓冲器37和第二缓冲器38具有分段长度。
[0091] 当FEC组中用于恢复FEC数据的多播分组的顺序n与用于提取数字广播数据(MPEG TS)分片的多播分组的顺序diff不匹配时,FEC数据设置器36把多播分组n的第(diff-1)个数字广播数据(MPEG TS)分片存储到第二缓冲器38中。
[0092] FEC数据设置器36对存储在第一缓冲器37中的FEC数据和存储在第二缓冲器38中的数字广播数据(MPEG TS)分片执行异或(XOR)操作,并将所产生的值存储在第一缓冲器37中。
[0093] 当FEC组中用于恢复FEC数据的多播分组的顺序n与用于提取数字广播数据(MPEG TS)分片的多播分组的顺序diff匹配时,FEC数据设置器36会把该多播分组的顺序diff增加设定值1,以提取下一个多播分组的数字广播数据(MPEG TS)分片。也就是说,该多播分组n以“diff+1”来存储,以提取下一个数字广播数据(MPEG TS)分片。
[0094] 在另一方面,当增加设定值的多播分组的计数值(n)顺序与FEC组长度不匹配时,FEC数据设置器36在第二缓冲器38中存储与计数值(n)顺序相对应的多播分组的第diff个数字广播数据(MPEG TS)分片。
[0095] FEC数据设置器36对存储在第一个缓冲器37中的多播分组n的FEC数据和存储在第二缓冲器38中的数字广播数据(MPEG TS)分片执行异或运算,并将所产生的值存储在第一缓冲器37中。
[0096] 当FEC组中多播分组的当前顺序(n=diff+1)与FEC组长度匹配时,FEC数据设置器36将存储于第一缓冲器37中的值插入FEC数据区。
[0097] 在把存储于第一缓冲器37中的值插入FEC数据区后,FEC数据设置器36通过IP网络多播所产生的多播分组。
[0098] 图4是根据本发明实施例的机顶盒的框图。
[0099] 参照图4,机顶盒40包括网络接口41、差错判定器42和差错纠正器43。
[0100] 差错判定器42通过IP网络接收多播分组流,并基于序列号来判定任意的多播分组是否丢失。当其判定多播分组丢失时,差错判定器42控制差错纠正器43以恢复该丢失的多播分组。
[0101] 为了恢复包含在丢失的多播分组中的数字广播数据(MPEG TS),差错纠正器43通过FEC组中除丢失的多播分组以外的多播分组的FEC数据来恢复丢失的多播分组的数字广播数据(MPEG TS)分片,并把恢复的数字广播数据(MPEG TS)分片进行结合,以恢复丢失的多播分组的数字广播数据(MPEG TS)。
[0102] 图9是根据本发明实施例在FEC服务器处设置FEC数据的方法的流程图。
[0103] 如图9所示,FEC服务器初始化第一缓冲器37、第二缓冲器38以及FEC组中多播分组的计数值(n)顺序(S90)。优选地,第一缓冲器37和第二缓冲器38具备分段长度。
[0104] FEC服务器判定用于设置FEC数据的分组的diff是否与图9中的计数值n匹配(S91)。注意,diff表示在图6中设置的用于创建FEC数据的diff值,该值在流程结束前是固定的。计数值‘n’表示计数器的值,该计数器对数字广播数据(MPEG TS)执行“group_size-1”次异或运算,以创建FEC数据。
[0105] 当FEC组中的多播分组的计数值(n)顺序与将要设置FEC数据的多播分组的FEC组中的多播顺序diff不匹配时,FEC服务器在第二缓冲器38中存储与FEC组中的计数值(n)顺序相对应的多播分组n的第(diff-1)个数字广播数据(MPEG TS)分片(S92)。
[0106] FEC服务器对存储在第一缓冲器37中的数字广播数据(MPEG TS)分片和存储在第二缓冲器38中的数字广播数据(MPEG TS)分片执行异或运算,并将所产生的值存储在第一缓冲器37中(S93)。
[0107] FEC服务器把计数值n递增1,以提取下一个多播分组的数字广播数据(MPEG TS)分片,并返回步骤S91(S94)。
[0108] 当FEC组中的多播分组的计数值(n)顺序与将要设置FEC数据的多播分组的FEC组中的多播顺序diff匹配时,FEC服务器通过把将要设置FEC数据的多播分组的顺序diff递增1,而把将要提取数字广播数据(MPEG TS)的多播分组n设置为“diff+1”(S95)。也就是说,当“n”等于“diff”时,FEC服务器把‘n’设为“diff+1”的值,以选择下一个多播分组,这是因为第一缓冲器中将要经历异或运算的数字广播数据(MPEG TS)分片与将要构成FEC数据的多播分组相同。
[0109] FEC服务器判定增加设定值的多播分组的计数值n是否与FEC组长度匹配(S96)。
[0110] 当已经判定增加设定值的多播分组的当前顺序(n=diff+1)与FEC组长度不匹配时,FEC服务器在第二缓冲器38中存储与将要设置FEC数据的多播分组的顺序diff相对应的数字广播数据(MPEG TS)分片,该分片是与增大设定值的多播分组的当前顺序(n=diff+1)相对应的多播分组的分段的数字广播数据(MPEG TS)分片之一(S97)。
[0111] FEC服务器对存储在第一个缓冲器37中的数字广播数据(MPEG TS)分片和存储在第二缓冲器38中的数字广播数据(MPEG TS)分片执行异或运算,并将所产生的值存储在第一缓冲器37中(S98)。
[0112] FEC服务器把计数值n递增1,然后返回步骤S96以提取下一个多播分组的数字广播数据(MPEG TS)分片(S99)。
[0113] 同时,当已经判定FEC组中的多播分组的当前顺序(n=diff+1)与FEC组长度匹配时,FEC服务器将存储于第一缓冲器37中的值插入FEC数据字段。然后,FEC服务器通过IP网络多播所产生的多播分组(S100)。
[0114] 下文参照图8来更加详细地描述根据本发明实施例在FEC服务器中设置FEC数据的方法。
[0115] 图8是根据本发明实施例的FEC组中的多播分组的FEC字段的图示。
[0116] 从图8中可以看出,FEC组包括从A到J的10个多播分组。相应地,FEC组长度为“10”。为FEC组中的多播分组设置的序列号从100到109。
[0117] 在FEC组中,多播分组A的顺序为“0”,多播分组B的顺序为“1”,……,而多播分组J的顺序为“9”。
[0118] 举例说明用于创建FEC组中的多播分组的FEC数据的数字广播数据(MPEG TS)分片。例如,可以看出,用于创建多播分组A的FEC数据的数字广播数据(MPEG TS)分片包括B0,C0,D0,E0,F0,G0,H0,I0和J0。在B0中,B表示多播分组B,而“0”表示多播分组B的第一个数字广播数据(MPEG TS)分片。
[0119] 下文参照图9来描述设置FEC的方法。假定对多播分组C的FEC数据进行设置。
[0120] FEC服务器初始化第一缓冲器37、第二缓冲器38和FEC组中的多播分组的计数值(n)顺序(S90)。优选地,第一缓冲器37和第二缓冲器38具有分段长度。
[0121] FEC服务器判定FEC组中的多播分组的计数值(n)顺序是否与用于设置FEC数据的多播分组顺序diff匹配(S91)。
[0122] 由于FEC组中的多播分组的当前顺序(n=0)与将要设置FEC数据的多播分组的FEC组中的多播顺序(diff=2)不匹配,所以FEC服务器在第二缓冲器38中存储与将要设置FEC数据的多播分组的顺序diff=2相对应的数字广播数据(MPEG TS)分片A1,该分片A1是与多播分组中的当前顺序(n=0)相对应的多播分组A的数字广播数据(MPEG TS)分片之一(S92)。
[0123] FEC服务器对存储在第一缓冲器37中的数字广播数据(MPEG TS)分片和存储在第二缓冲器38中的数字广播数据(MPEG TS)分片执行异或运算,并再次将所产生的值存储在第一缓冲器37中(S93)。
[0124] 然后,FEC服务器把FEC组中的多播分组的计数值(n)顺序递增设定数“1”,并返回步骤S91(S94)。
[0125] 由于在步骤S91,多播分组的计数值(n)顺序变为‘1’,而且将要设置FEC数据的多播分组的顺序diff为‘2’,FEC服务器接着转到步骤S92。
[0126] 也就是说,FEC服务器把多播分组B的第二个数字广播数据(MPEGTS)分片B1存储到第二缓冲器38中(S92)。
[0127] 然后,FEC服务器对第一缓冲器37的值和第二缓冲器38的值执行异或运算。
[0128] 在该情况下,存储在第一缓冲器37中的值就是运行“0XOR A1XORB1”的结果。
[0129] 然后,FEC服务器将多播分组的计数值(n)顺序递增1,并返回步骤S91。
[0130] 由于已经在步骤S91判定多播分组的计数值(n)顺序“2”与将要设置FEC数据的多播分组的顺序diff“2”匹配,因此FEC服务器转到步骤S95。
[0131] FEC服务器把将要设置FEC数据的多播分组的顺序diff“2”递增设定数“1”,并存储所产生的值作为多播分组的计数值(n)顺序(S95)。相应地,将要设置FEC数据的多播分组的顺序diff变为“3”。也就是说,由于是“diff(2)+1”,将要设置FEC数据的多播分组的顺序变为“3”。
[0132] FEC服务器检查FEC数据“3”的多播分组的顺序n是否与FEC组长度匹配(S96)。
[0133] 由于将要设置FEC数据的多播分组的顺序(n)“3”与FEC组长度“10”不匹配,因此FEC服务器转到步骤S97。
[0134] 相应地,FEC服务器在第二缓冲器38中存储多播分组D的第三个数字广播数据(MPEG TS)分片D2,并转到步骤S98。
[0135] FEC服务器对第一缓冲器37的值和第二缓冲器38的值执行异或运算,并再次将所产生的值存储在第一缓冲器37中(步骤S98)。存储在第一缓冲器37中的值是“0 XOR A1 XOR B1 XOR D2”的运算结果。
[0136] FEC服务器将多播分组的计数值(n)顺序递增1,并返回步骤S96。
[0137] 然后,FEC服务器重复地执行步骤S96到S99,直到多播分组的计数值(n)顺序与FEC组长度匹配。
[0138] 当通过重复执行步骤S96到S99使FEC组中的多播分组的当前顺序与FEC组长度匹配时,FEC服务器将存储在第一缓冲器37中的值插入FEC数据字段(S100)。然后,FEC服务器通过IP网络多播该多播分组。
[0139] 插入到FEC数据字段的值是“0 XOR A1 XOR B1 XOR D2 XOR E2 XORF2 XOR G2 XOR H2 XOR I2 XOR J2”的运算结果。
[0140] 图10是根据本发明实施例在机顶盒中进行纠错的方法的流程图。
[0141] 在FEC组中的所有多播分组都已被接收到之前,机顶盒进行等待(S200)。
[0142] 当已接收到多播分组时,把接收到的多播分组的FEC报头信息与之前刚接收到的多播分组的FEC报头信息进行比较,以检查FEC组是否发生改变。满足下面的等式意味着该FEC组没有改变。
[0143] {now(sequence_number)-pre(sequence_number)}
[0144] -{now(diff)-pre(diff)}=0
[0145] 这里,pre(x)表示之前刚接收的分组的FEC报头的x字段,now(x)表示当前的分组的FEC报头的x字段。
[0146] 当图10中S201步骤判定多播分组属于相同的FEC组时,将数字广播数据(MPEG TS)存储在TS缓冲器中(未示出),并将报头信息存储在FEC报头缓冲器中(S202)。
[0147] 当图10中S201步骤判定多播分组不属于相同的FEC组时,将FEC报头缓冲器中的内容相互进行比较,以查看FEC组中是否存在丢失的分组(S203)。
[0148] 当图10中S203步骤判定存在一个丢失的分组时,经由恢复步骤S205转到图11中的步骤S204,而当已经判定没有丢失分组或存在多于一个的丢失分组时,转到步骤S204。
[0149] 在图10的步骤S204中,当前分组的数字广播数据(MPEG TS)和FEC报头信息存储在各自的缓冲器中,与在步骤S202一样,并且把先前的FEC组的数字广播数据(MPEG TS)发送至解码器。
[0150] 图11是在图10的S205步骤中用于恢复丢失的多播分组的过程的流程图。
[0151] 注意,‘m’存储在第一缓冲器中。‘m’表示需要恢复FEC区的多播分组的编号,其范围从0到“group_size-1”。
[0152] 恢复丢失的分组需要与同一FEC组中所有其它多播分组有关的信息,这里用‘m’表示。
[0153] ‘P’表示被恢复的分片的位置。也就是说,由于在创建FEC数据时把数字广播数据(MPEG TS)按照分段长度进行划分,所以被划分的分片的数目变为group_size-1。这样划分的分片如图7所示,这里“P”表示分片编号。
[0154] 注意,‘n’也存储在第二缓冲器中。‘n’表示恢复数字广播数据(MPEG TS)分片所需的多播分组的计数,范围从0到group_size-1。
[0155] 为恢复丢失的分组,特定分组‘m’的第‘P’个分片按照下述过程来恢复:
[0156] 从第‘m’个分组中提取FEC数据,并从所有其它分组中提取数字广播数据(MPEG TS)的特定分片。然后,对这些数据进行异或运算以恢复第‘P’个分片。在这种情况下,除了第‘m’个多播分组以外的多播分组按照计数值‘n’被依次选择。
[0157] 首先,计数‘m’被设定为‘0’以选择将多播分组m存储在第一缓冲器中(S110)。这表示首先要被恢复的多播分组的顺序是diff‘0’。
[0158] 把表示将存储在第一缓冲器中的多播分组的‘m‘与丢失的分组的diff进行比较(S111)。
[0159] 当在步骤S11中已经判定‘m’小于丢失分组的diff,则把等于‘m’的分片编号P指定为第三缓冲器的存储位置(S114)。
[0160] 当在步骤S11中已经判定‘m’大于丢失分组的diff,则把‘m’-1的分片编号P指定为第三缓冲器的存储位置(S113)。
[0161] 被恢复的分组的分片位置在步骤S113和S114中确定。
[0162] 然后,判定‘m’是否小于group_size(S115)。
[0163] 如果‘m’小于group_size,则把第一缓冲器初始化为分组m的数字广播数据(MPEG TS)分片,并且把第二缓冲器和‘n’都初始化为‘0’(S117)。
[0164] 然后,判定将存储在第二缓冲器中的多播分组‘n’是否小于group_size(S119)。
[0165] 如果多播分组‘n’小于group_size,则判定将存储在第二缓冲器中的多播分组n是否不同于丢失分组的diff(S121)。
[0166] 如果将存储在第二缓冲器中的多播分组“n”不同于丢失分组的diff,则把将存储在第一缓冲器中的多播分组m与将存储在第二缓冲器中的多播分组n进行比较(S122)。
[0167] 如果多播分组n小于多播分组m,则把当前FEC组中第n个多播分组的第(m-1)个数字广播数据(MPEG TS)分片存储在第二缓冲器中(S123)。向缓冲器的剩余空间填充‘0’。
[0168] 另一方面,如果多播分组n大于多播分组m,则把当前FEC组中第n个多播分组的第m个数字广播数据(MPEG TS)分片存储在第二缓冲器中(S124)。向缓冲器的剩余空间填充‘0’。
[0169] 然后,对第一和第二缓冲器中的内容进行异或运算,并将结果存储在第一缓冲器中(S125)。
[0170] 然后,处理多播分组n+1(S118)。也就是说,把从下一个分组中提取的分片存储在第二缓冲器中。
[0171] 执行步骤S119、S121、S122、S123或S124、以及S125。当在步骤S119已经判定(判定多播分组‘n’是否小于group_size)多播分组‘n’与group_size相同,则把第一缓冲器中的信息存储在第三缓冲器的第P个分片的位置(S120)。也就是说,该数字广播数据(MPEG TS)分片在FEC组的一个多播分组中被恢复。
[0172] 然后,处理多播分组m+1(S112)。也就是说,对下一个多播分组的FEC数据进行恢复。
[0173] 然后,该过程转到步骤S111,此处,把表示将要被恢复的分组的‘m’与丢失分组的diff进行比较。
[0174] 重复执行上述步骤。
[0175] 当在步骤S115已经判定(判定‘m’是否小于group_size)‘m’与group_size相同,则把第三缓冲器的内容输出到TS缓冲器。也就是说,这意味着所有丢失的分组都已经被恢复。
[0176] 当在步骤S121已经判定(将存储在第二缓冲器中的多播分组n与丢失分组的diff不相同)将存储在第二缓冲器的多播分组n与丢失分组的diff相同,则把多播分组n递增1,使得将下一个多播分组存储在第二缓冲器中(S118),然后该过程转到步骤S119。这对下一个分组执行操作,因为不能从丢失分组中提取数字广播数据(MPEG TS)分片。
[0177] 另一方面,当在步骤S122已经判定(把将存储在第一缓冲器中的多播分组m的diff与将存储在第二缓冲器中的多播分组n进行比较)多播分组n与多播分组m相同,则把多播分组n递增1,使得将下一个多播分组存储在第二缓冲器中(S118),然后该过程转到步骤S119。这对下一个多播分组执行操作,因为呈现FEC数据的多播分组与呈现该分片的多播分组相同。
[0178] 如上所述,根据本发明的数字广播系统及其纠错方法,把用于丢失分组恢复的FEC数据包括在FEC组的多播分组中并将其传输,从而减轻了网络负荷。
[0179] 本发明参照典型的实施例进行了描述,本领域的技术人员能够理解,在不背离所附权利要求限定的本发明的范围的前提下,可以在形式和细节上做出各种修改。