具体实施方式
数字广播网络1
参照图1,示出了根据本发明用于向移动终端2递送内容的通信网络1。通信网络1包括手持数字视频广播(DVB-H)网络,该DVB-H网络用作广播接入网络以便递送内容作为网际协议数据广播(IPDC)业务。然而,可以使用其他数字广播网络,包括其他类型的DVB网络,比如地面DVB(DVB-T)网络、有线DVB(DVB-C)网络或者卫星DVB(DVB-S)网络、数字音频广播(DAB)网络、高级电视系统委员会(ATSC)网络、地面综合业务数字广播-地面(ISDB-T)网络以及类似于或者基于这些网络的其他网络。
网络1包括例如形式为视频、音频和数据文件的内容源31、32、用于取回、重新格式化和存储内容的内容提供器4、用于确定业务组成的数据广播业务系统服务器5、多协议封装(MPE)封装器6和用于调制信号8和向包括移动终端2的接收器(未示出)广播信号8的发送器7。
可以提供其他网元,比如用于接收和重新传输信号8的一个或者多个间隙填充发送器(未示出)。另外,为了提供从移动终端2到数字广播网络1的返回信道而可以提供通信网络(未示出),比如优选地形式为分别比如GSM或者UMTS的第2代或者第3代移动网络这样的公共陆地移动网络。可以提供比如因特网这样更多的通信网络(未示出)连接到数字广播网络1的分布式元件,比如内容提供器4和业务系统服务器5。
MPE封装器6
参照图2,示出了MPE封装器6和发送器7的功能框图。
MPE封装器6接收形式为具有不同IP地址的多个网际协议(IP)流9的内容以及用来创建MPEG节目特殊信息(PSI)和DVB业务信息(SI)的业务信息数据10。
MPE封装器6包括用于过滤一个或者多个所需IP流并且把过滤的IP流排列成一个或者多个过滤流12的IP解多路复用块11。每个过滤流12可以包括一个或者多个IP流。解多路复用块11向编码块13转发过滤流12。
MPE封装器6包括用于为过滤流12提供向前纠错(FEC)的编码块13。编码块13预备和转发MPE-FEC帧14。如果FEC没有用于给定的过滤流12,则编码器13不执行编码,而是简单地缓存流12。编码器13也可以执行将在后面更具体地描述的交织。
MPE封装器6还包括用于把MPE-FEC帧14中包含的数据映射到MPE段16和MPE-FEC段17的MPE/MPE-FEC段封装块15。参照ETSIEN 301 192“Digital Video Broadcasting(DVB);DVB Specification fordata broadcasting”V1.4.1(2004-06)。
MPE封装器6还包括用于把MPE段16和MPE-FEC段17进行时间分片成突发19的时间分片块18。正如后面将更具体地描述的,MPE封装器6根据本发明可以在多于一个突发19中传输来自一个MPE-FEC帧14的数据和/或在一个突发19中传输来自多于一个MPE-FEC帧14的数据。MPE封装器16也可以用常规方式在一个突发19中传输一个MPE-FEC帧14,但是这一点将不在这里具体地描述。
MPE封装器6还包括根据ETSI EN 300 468“Digital VideoBroadcasting(DVB);Specification for Service Information(SI)in DVBsystems”V1.6.1(2004-06)用于把SI表封装成段21的SI/PSI段封装块20。
MPE封装器6还包括用于管理图2所示封装器中其他元件的控制块22。
MPE封装器6的功能可以通过运行计算机程序(未示出)的计算机(未示出)来实施。
发送器7包括传输流(TS)生成和多路复用块23。根据ISO/IEC标准13818-1“Information Technology-Generic coding of moving pictureand associated audio information:Systems”,TS生成和多路复用块23把突发19中包含的MPE段16和MPE-FEC段17划分成分段,并且将它们放入TS分组25A(图25)中并将这些TS分组与例如携带MPEG-2 TV业务24的其他TS分组多路复用成多路复用25中。
发送器7也包括根据ETSI EN 300 744“Digital Video Broadcasting(DVB);Framing structure,channel coding and modulation for digitalterrestrial television(DVB-T)”V1.5.1(2004-06)用于生成参考信号8的调制块26。
操作MPE封装器6的方法
参照图2至图18,现在将描述操作MPE封装器6的方法。
对于给定IP流集9,根据本发明MPE封装器6可以在多于一个突发19中传输来自一个MPE-FEC帧14的数据和/或在一个突发19中传输来自多于一个MPE-FEC帧14的数据。
MPE封装器6预备用于保持MPE-FEC帧14的多个编码表27(步骤S1)。这可以简单地包括为每个编码表27分配存储区。正如后面将要更具体地描述的,编码表27和MPE-FEC帧14可以保持多于2M比特的数据。
MPE封装器6用信号发送关于时间分片和MPE-FEC的信息以便使得接收器能够接收突发19(步骤S2)。这一点在后面更具体地描述。
具体参照图4,解多路复用器11(图2)接收包括第一个流和第二个流91、92的多个流9。第一个流91包括第一层集3数据报281,包括数据报281,1、281,2、281,3、281,4。第二个流92包括第二层集3数据报282,包括282,1、282,2。
参照图5,第一和第二数据报集281、282的每个数据报28是以网际协议(IP)数据报的形式并且包括报头29和有效载荷30。然而,可以使用其他类型的数据帧,比如UDP数据报。
现在参照图6,解多路复用器11(图2)过滤和输出第一和第二IP流91、92分别地到第一和第二过滤流121、122中。在本举例中,每个过滤流121、122包括单个IP流91、92。然而,过滤流121、122可以包括多于一个IP流。
参照图7,MPE-FEC编码器13包括分别地用于第一和第二过滤流121、122(图6)的第一和第二编码表271、272。例如可以针对额外的过滤流提供更多编码表(未示出)。除此之外或者取而代之,更多编码表可以针对相同的过滤流来提供,并且可以组合形成单个更大的编码表。
第一编码表271提供应用数据表321和奇偶数据表331。类似地,第二编码表272提供用于存储应用数据表和奇偶数据表的分部322、332。
第一编码表321可以被排列成具有255列341和数目灵活的行351的矩阵。行351的数目在业务信息(SI)10(图2)中用信号来发送。编码表271中的每个位置361保持一个字节的数据。
第二编码表272也可以被排列成具有255列342和数目灵活的行352的矩阵。行352的数目在业务信息(SI)10(图2)中用信号来发送。编码表272中的每个位置362保持一个字节的数据。
每个位置361、362可以保持多于或者少于一个字节的数据。
对于第一编码表271,应用数据表321可以由编码表271的最左部分提供并且可以包括191列。为来自第一过滤流121(图6)和可选填塞数据(未示出)的数据报281(图6)保留应用数据表321。奇偶数据表331可以由第一编码表271的最右部分提供并且可以包括64列。为奇偶数据保留奇偶数据表331。应用数据表321中的每个位置具有范围从0到(191×行号-1)的地址。类似地,RS数据表331中的每个位置具有范围从0到(64×行号-1)的地址。第一编码表271可以不同地加以配置并且可以包括不同数目的列。例如,编码表271可以反转。应用数据表321可以由编码表271的最右部分提供。编码表271可以利用编码表271的最上部分或者最下部分所提供的应用数据表321来水平地划分。
对于第二编码表272,应用数据表322可以由编码表272的最左部分提供并且可以包括191列342。为来自第二过滤流122(图6)和可选填塞数据(未示出)的数据报282(图6)保留应用数据表322。奇偶数据表332可以由编码表272最右部分提供并且可以包括64列342。为奇偶数据保留奇偶数据表332。
应用数据表322中的每个位置具有范围从0到(191×行号-1)的地址。类似地,奇偶数据表332中的每个位置具有范围从0到(64×行号-1)的地址。第二编码表272可以不同地加以配置并且可以包括不同数目的列。
编码表271、272可以不同地加以排列。例如,应用数据表321、322可以包括表271、272的最右列。编码表271、272可以水平地而不是垂直地划分成上部分和下部分。
第一和第二编码表271、272可以具有不同大小的奇偶数据表331、332。换句话说,可以使用不同级别的FEC编码。
IP流91、91被导向第一和第二编码表(步骤S4)。
参照图8,从第一编码表271的左上角的第一数据报281,1中的第一字节371开始并且在第一最左列341,1中向下,逐个数据报地引入第一数据报集281。在第一数据报281,1结束之后立即地开始第二数据报281,2,随后是第三数据报281,3、第四数据报281,4等等。
第一和第二编码表271、272可以不同地加以填充。例如,第一数据报281,1的第一字节371可以放置于第一编码表271的右上角并且向下或者放置于左下角或者右下角并且向下。
每个数据报281占据应用数据表321中的相应列341。然而,数据报281可以各自占据少于一列341或者多于一列341。另外,每个数据报281的长度可以因数据报而变化。如果数据报281没有在341的末尾结束,则它可以在随后列341的顶部继续。当所有数据报281已经输入到应用数据表321时,可以用零字节(未示出)填塞任何未填充的字节位置,由此完全地填充最左边191列。然而,无需明确地添加填塞。
类似地,从第二编码表272的左上角的第一数据报282,1中的第一字节372开始并且在第一最左列342,1中向下,逐个数据报地引入第二数据报集282。在第一数据报282,1结束之后立即地开始第二数据报282,2等等。
每个数据报282占据应用数据表322中的相应列342。然而,数据报282可以占据少于一列342或者多于一列342。另外,每个数据报282的长度可以因数据报而变化。如果数据报282没有在342的末尾结束,则它可以在随后列342的顶部继续。当所有数据报282已经输入到应用数据表322时,可以用零字节(未示出)填塞任何未填充的字节位置,由此完全地填充最左边191列。然而,无需明确地添加填塞。
现在参照图9,用如下数据报281填充应用数据表321,数据报281包括数据报281,1、281,2、281,3、281,4、281,r-1、281,r、281,r+1、281,n-1、281,n。如前所言,在一些情况下,应用数据表321可以用数据报281来部分地填充,并且可以添加填塞数据来填充它。
一旦填充应用数据报321,计算形式为包括奇偶码字381,1、381,2、381,p的一奇偶码字集381的奇偶数据381,并且将它放入奇偶数据表331中(步骤S5)。由此,为第一行351,1计算第一奇偶码字381,1、为第二行351,2计算第二奇偶码字381,2等等,直至为最后一行351,p计算最后的奇偶码字381,p。
类似地,用如下数据报282填充第二应用数据表322,数据报282包括数据报282,1、282,2、282,3、282,4、282,5、282,s-1、282,s、282,s+1、282,m-1、282,m。
一旦填充第二应用数据报322,计算形式为包括奇偶码字382,1、382,2、381,q的奇偶码字382的奇偶数据382,并且将它放入奇偶数据表332中。
使用Reed-Solomon(RS)奇偶代码,在本例中是RS(255,191,64)代码。因此,奇偶数据表331、332在下文中称为RS奇偶数据表,而奇偶码字381、382在下文中称为RS码字。RS数据表331、332一些列可以被丢弃因此不被传输以实现删余。删余RS列的准确数目无需明确地用信号来发送,并且可以在帧之间动态地改变。然而,可以使用其他代码。
参照图10,示出了保持相应数据帧,这里称为MPE-FEC帧141,1、142,1的完成的第一和第二编码表271、272。
第一RS数据表331可以按列划分以提供RS列数据401,包括RS列401,1、401,2、401,u-2、401,u-1、401,u。类似地,第二RS数据表332可以按列划分以提供RS列数据402,包括RS列402,1、402,2、402,v-2、402,v-1、402,v。
为每个过滤流121、122生成一系列MPE-FEC帧141,1、141,2、142,1、142,2(图19)。为了标识每个帧141,1、141,2、142,1、142,2,根据它们的过滤流121、122,其是使用帧标识参数Frame_id来指示的,并根据它们在帧系列内的位置,其是使用帧计数器参数Frame_counter来指示的,来标记帧141,1、141,2、142,1、142,2。
因此,为每个帧141,1、142,1生成帧标识和帧计数器参数411,1、421,1、412,1、422,1。在本例中,Frame_id=1和Frame_counter=1用于第一MPE-FEC帧141,1,而Frame_id=2和Frame_counter=i用于第二MPE-FEC帧142,1。
如上所述,MPE封装器6根据本发明可以在多个突发19中传输来自一个MPE-FEC帧14的数据和/或在一个突发19中传输来自多于一个MPE-FEC帧14的数据。MPE封装器6也可以用常规方式在一个突发19中传输一个MPE-FEC帧14,但是将不描述这一点。
在这一情况下,每个MPE-FEC帧141,1、142,1将在多于一个突发191、192、193(图19)中被传输。
参照图11,从编码表271、272中读出数据报281、282。
随着从第一编码表271中读出每个数据报281或者RS列401,编码器13也可以输出数据报281的第一字节的地址431、用于指示数据报281或者RS列401是否在帧141,1的末尾的表边界标志441、以及帧边界标志451。
类似地,随着从第二编码表272中读出每个数据报282或者RS列402,编码器13也可以输出数据报282或者RS列402的第一字节的地址432、用于指示数据报281或者RS列402是否在帧142,1的末尾的表边界标志442、以及帧边界标志452。
交织数据报281、282和RS列401、402(步骤S6和S7)。
从第一编码表271中读出第一数据报281,1,并且从第一编码表271中顺序地读出数据报,直至读出第r-1个数据报281,r-1。然后,从第二编码表272中读出第一数据报282,1,并且从第二编码表272中顺序地读出数据报,直至读出第s-1个数据报281,s-1。
从第一编码表271中读出第r个数据报281,r,并且从第一编码表271中顺序地读出数据报,直至读出第n个数据报281,n。然后,从第二编码表272中读出第s个数据报282,s,并且从第二编码表272中顺序地读出数据报,直至读出第m个数据报282,m。
从第一编码表271中读出第一RS列401,1,并且从第一编码表271中顺序地读出RS列,直至读出第u个RS列401,u。然后,从第二编码表272中读出第一RS列402,1,并且从第二编码表272中顺序地读出RS列,直至读出第v个RS列402,v。
参照图12,以上述次序从编码表271、272中有选择地读出数据报281、282和RS列401、402的效果在于将每个MPE-FEC帧141,1、142,1划分成三个帧块141,1,1、141,1,2、141,1,3,142,1,1、142,1,2、142,1,3,并且交织这些帧块141,1,1、141,1,2、141,1,3,142,1,1、142,1,2、142,1,3。帧块141,1,1、141,1,2、141,1,3,142,1,1、142,1,2、142,1,3大小不等。然而,MPE-FEC帧141,1、142,1可以各自划分成大小相等或者在实践中大小接近相等的帧块。MPE-FEC帧141,1、142,1可以划分成更少或者更多块141,1,1、141,1,2、141,1,3,142,1,1、142,1,2、142,1,3或者根本不加以划分。另外,帧块141,1,1、141,1,2、141,1,3,142,1,1、142,1,2、142,1,3可以用不同的次序加以交织。另外,帧块141,1,1、141,1,2、141,1,3,142,1,1、142,1,2、142,1,3可以与来自其他帧(未示出)的其他帧块相交织,这些其他帧中的至少一些帧可能源自于相同的过滤流121、122。
参照图13和图14,在帧块141,1,1、141,1,2、141,1,3,142,1,1、142,1,2、142,1(图12)中包含的数据报28和RS列40连同用于它们所归属的帧141,1、142,1的相应帧标识和帧计数器参数41、42(图11)以及相应地址数据43、表边界标志44和突发边界标志45一起供应到MPE/MPE-FEC段封装块15。
具体参照图13,MPE/MPE-FEC段封装块15生成和输出MPE段16,每个MPE段16包括报头46、有效载荷47和尾部48(步骤S8)。
当MPE/MPE-FEC段封装块15收到数据报28时,它把数据报28映射到有效载荷47,并且将对应的帧标识和帧计数器参数41、42放入报头46中(步骤S9)。MPE/MPE-FEC段封装块15也可以在报头46中放入地址数据43、表边界标志44和帧边界标志45(步骤S10)。MPE/MPE-FEC段封装块15可以把多于一个数据报28映射到有效载荷47。
参照图14,MPE/MPE-FEC段封装块15还生成和输出MPE-FEC段17,每个MPE-FEC段17包括报头49、有效载荷50和尾部51。
当MPE/MPE-FEC段封装块15收到RS列40时,它把RS列40映射到MPE-FEC段17的有效载荷50,并且将对应的帧标识和帧计数器参数41、42放入报头49中。MPE/MPE-FEC段封装块15也可以在报头49中放入地址数据43、表边界标志44和帧边界标志45。
MPE和MPE-FEC段16、17遵循下表1中所示的数字存储介质命令和控制(DSM-CC)段格式:
表1
Syntax |
No.of bits |
Identifier |
datagram_section(){ | | |
table_Id |
8 |
uimsbf |
section_syntax_indicator |
1 |
bslbf |
private_indicator |
1 |
bslbf |
Reserved |
2 |
bslbf |
section_length |
12 |
uimsbf |
MAC_address_6 |
8 |
uimsbf |
MAC_address_5 |
8 |
uimsbf |
Reserved |
2 |
bslbf |
payload_scrambling_control |
2 |
bslbf |
address_scrambling_control |
2 |
bslbf |
LLC_SNAP_flag |
1 |
bslbf |
current_next_indicalor |
1 |
bslbf |
section_number |
8 |
uimsbf |
last_section_number |
8 |
uimsbf |
MAC_address_4 |
8 |
uimsbf |
MAC_address_3 |
8 |
uimsbf |
MAC_address_2 |
8 |
uimsbf |
MAC_address_1 |
8 |
uimsbf |
if(LLC_SNAP_flag==“1”){ | | |
LLC_SNAP() | | |
}else{ | | |
for(j=0;j<N1;j++){ | | |
IP_datagram_data_byte |
8 |
bslbf |
} | | |
} | | |
if(section_number=last_section_number){ | | |
for(j=0;j<N2;j++){ | | |
stuffing_byte |
8 |
bslbf |
} | | |
} | | |
if(section_syntax_indicator==″0″); | | |
Checksum |
32 |
uimsbf |
}else{ | | |
CRC_32 |
32 |
rpchof |
} | | |
} | | |
参照图15,在MPE段16中,可以划分第五MAC地址字段以便提供用于分别地存储帧标识和帧计数器参数41、42的第一和第二字段52、53。第一和第二字段52、53可以各自包括四比特。第一、第二、第三和第四MAC地址字段用来提供实时参数字段54。保留字段用来提供可以包括三比特或者四比特的用于存储突发编号63(图18)的第三和第四字段55、56。突发编号将在随后更具体地说明。第一、第二、第三和第四字段52、53、55、56可以被不同地分配用来允许使用更小或者更大的值。如果使用不同的报头结构或者如果更多比特变得可用,则可以使用帧标识、帧计数器和突发编号41、42、63的更大值。
参照图16,在MPE-FEC段17中,可以划分第五MAC地址字段以便提供用于分别地存储帧标识和帧计数器参数41、42的第一和第二字段57、58。第一和第二字段57、58可以各自包括四比特。第一、第二、第三和第四MAC地址字段用来提供实时参数字段59。保留字段用来提供可以包括三比特或者四比特的用于存储突发编号63(图18)的第三和第四字段60、61。第一、第二、第三和第四字段57、58、60、61可以被不同地分配用来允许使用更小或者更大的值。如果使用不同的报头结构或者如果更多比特变得可用,则可以使用帧标识、帧计数器和突发编号41、42、63的更大值。
实时参数字段54、59遵循如下表2中所示的语法。
表2
Syntax |
No.of bits |
Identifier |
realtime paramters){ | | |
delta_t |
12 |
uimsbf |
table_boundary |
1 |
bslbf |
burst_boundary |
1 |
bslbf |
Address |
18 |
uimsbf |
} | | |
突发边界字段burst_boundary用来指示突发的结束并且接收突发边界标志45(图13)。帧边界标志45可以用来在相同的突发中指示不同的帧。
参照图17,MPE/MPE-FEC段封装块15输出包括161、162、163、164、16a-1、16a、16a+1、16a+2、16a+3、16b-1、16b、16b+1、16c-2、16c-1、16c、16c+1、16d-2、16d-1的MPE段16和包括171、172、17e-3、17e-2、17e-1、17e、17e+1、17f-3、17f-2、17f-1的MPE-FEC段17。
MPE段16和MPE-FEC段17包括以上述次序交织的数据报281,1、281,2、281,3、281,4、281,r-1、281,r、281,r+1、281,n-1、281,n、数据报282,1、282,2、282,3、282,4、282,s-1、282,s、282,s+1、282,m-1、282,m、RS列401,1、401,2、401,u-2、401,u-1、401,u和RS列402,1、402,2、402,v-2、402,v-1、402,v。然而,MPE段16和MPE-FEC段17可以用其他的不同次序来交织。
无论是否使用MPE-FEC都在MPE段16中携带数据报28。这使接收完全地向后兼容于不支持MPE-FEC的接收器(未示出)。如上所述,每个MPE段16在段报头46(图13)中携带有效载荷47(图13)的起始地址43(图13)。这一地址43(图13)指示了段有效载荷47(图13)的第一字节在应用数据表中的字节位置。如果通过多个MPE段16来划分数据报28,则每个MPE段16指示了在段内携带的数据报分段的第一字节在应用数据表中的字节位置。接收器(未示出)在应用数据表中的恰当字节位置放入收到的数据报28,并且针对RS解码器将这些位置标记为“可靠”,只要段CRC-32检验表明了段正确即可。
应用数据表的最后段包含表边界标志,该标志指示了应用数据表内数据报的结束。如果已经正确地收到应用数据表内的所有先前段,则接收器无需接收任何MPE-FEC段,并且如果使用时间分片则可以关闭接收器而不接收和解码RS数据。如果还收到MPE-FEC段17,则在MPE-FEC段的段报头中以八比特指示应用数据表中填塞列,即仅填充有填塞字节的列的数目。如果执行RS解码则仅需要此值。如果携带table_boundary的段丢失,则接收器(未示出)可能不知道应用数据结束以及填塞开始的准确位置。然而,它根据填塞列知道填塞过多少完整列,因此这些列可以标记为可靠。
RS列在MPE-FEC段17中加以携带。每个MPE-FEC段17携带RS数据表的恰好一列,虽然它们可以携带少于一列或者多于一列。删余的列不被传输,并且删余列的数目不用信号来明确地发送,而是在MPE-FEC段报头中与最后段编号一起用信号来发送。
参照图18,时间分片模块18接收MPE分段16和MPE-FEC分段17,而将每个段16、17的Δt 62和突发编号63的对应值放入段16、17的报头46、49中(步骤S11和S12)。时间分片模块18还为每个段16、17计算循环冗余代码(CRC-32)数据63,并且将CRC-32数据64放入段16、17的尾部48、51中。
MPE段16和MPE-FEC段17被转发到缓存器65。具有相同突发编号63的段16、17被收集并且如在突发19中那样转发到发送器7(图2)(步骤S13)。
参照图19,在第一和第四帧块141,1,1、142,1,1中携带的并且包括MPE段161、162、163、164、16a-1、16a、16a+1、16a+2、16a+3、16b-1(图17)的MPE段16被排列成第一突发191。在第二和第五帧块141,1,2、142,1,2中携带的并且包括MPE段16b、16b+1、16c-2、16c-1、16c、16c+1、16d-2、16d-1(图17)的MPE段16被排列成第二突发192。在第三和第六帧块141,1,3、142,1,3中携带的并且包括MPE-FEC段171、172、17e-3、17e-2、17e-1、17e、17e+1、17f-3、17f-2、17f-1(图17)的MPE-FEC段17被排列成第三突发193。突发191、192、193各自以比特率Bb进行传输并且具有突发持续时间Bd。
同样地使用突发边界标志45(图13)来标识每个突发19中的最后段。例如,段16b-1中的突发边界标志45(图13)设置为‘1’。接收器(未示出)可以使用突发边界标志45(图13)来确定它何时已经收到突发并且因此它应当何时‘进入休眠’。
每个段16、17携带从段16、17的传输时间起直至第一段16、17在下一突发19中的传输时间为止的持续时间的值。例如,图示了用于第一MPE段16n的Δt 621,1,该值指示了在传输MPE段16b之前的持续时间。接收器(未示出)可以使用Δt参数62(图18)来确定它应当何时‘唤醒’并且接收下一突发19。
在相同突发19内的段16、17中使用值相同的突发编号参数63(图18)。在本例中,对突发进行计数向下编号,始于值二始而结束于零。接收器(未示出)可以使用突发编号参数63(图18)来确定突发19是否已经丢失或者它是否已经收到用于给定的MPE-FEC帧14的所有突发。
如果将三比特用于突发编号参数63,则突发可以从直至十五的突发编号开始。如果四比特是单位,例如由在MPE段16中的保留字段55、56(图15)或者在MPE-FEC段17中的保留字段60、61(图16)所提供的那样,则突发可以从直至三十一的突发编号开始。突发编号可以是循环的,在它已经达到零之后再次始于十五(或者三十一)。
预备和传输MPE-FEC帧这一过程继续预备和传输使用第一和第二编码表271、272来预备的第三和第四MPE-FEC帧141,2、142,2,这些帧在第四、第五和第六突发194、195、196(步骤S 14)中得以传输,直至过滤流121、122中的数据报281、282已经得以传输(步骤S15)。
在刚才描述的例子中,第一和第二MPE-FEC帧141,2、142,1各自划分成三个块141,1,1、141,1,2、141,1,3、142,1,1、142,1,2、142,1,3。然而,MPE-FEC帧141,2、142,1可以被划分成更少或者更多的块。这些块可以大小相等或者不等。
参照图20,第一MPE-FEC帧141可以划分成四个块141,1,1’、141,1,2’、141,1,3’、141,1,4’并且在四个突发191’、192’、193’、194’中被传输。类似地,第二MPE-FEC帧141(图19)可以划分成四个块(未示出)。另外,块141,1,3’可以携带来自应用数据表321,1和RS数据表331,2的数据,换句话说,携带MPE段16和MPE-FEC段17。
在多于一个突发之间分布来自一个MPE-FEC帧的数据的优点在于增加了帧的交织长度。如果存在影响突发的噪声‘散射’,则减少了丢失来自一个MPE-FEC帧所有数据的可能性。数据中归因于噪声散射的任何错误都可以使用FEC奇偶数据来校正。
除此之外或者取而代之,正如现在将更具体地描述的,较大MPE-FEC帧14可以用来帮助在多个突发19之间分布来自一个MPE-FEC帧14的数据。
参照图21,示出了用于传输MPE-FEC帧的常规设置。在常规设置中,各自具有1024行的六个MPE-FEC帧661,1、661,2、661,3、661,4、661,5、661,6在相应的突发671、672、673、674、675、676中被传输。这一设置的缺点在于它具有短的交织深度68。如上所述,如果噪声散射影响到突发之一,例如第二突发672、则在MPE-FEC帧,在本例中是MPE-FEC帧661,2中包含的所有数据都可能丢失。
参照图22,示出了根据本发明用于传输MPE-FEC帧的示例性设置。在本例中,MPE-FEC帧141,1’具有6×1024行。因此,帧141,1’可以保持12M比特的数据。MPE-FEC帧可以具有N×M行,其中N=2、3、4或者5而N=1024。N可以具有大于6的值。另外,M无需等于1024。例如,M可以等于64、128、192、256、320、384、448、512、576、640、704、768、832、896或者960。MPE-FEC帧141,1’按列划分成在六个相应的突发191”、192”、193”、194”、195”、196”中传输的六个块141,1,1”、141,1,2”、141,1,3”、141,1,4”、141,1,5”、141,1,6”。每个突发191”、192”、193”、194”、195”、196”包括2M比特的数据。这一设置具有交织深度68’。因此,如果噪声散射影响突发之一,例如第二突发192’,则数据代表了使用FEC进行恢复的更佳可能性。正如随后将要具体描述的,为了允许接收较大的MPE-FEC帧,比如MPE-FEC帧141,1’,移动终端(未示出)可以包括较大的时间分片缓存器106(图31)。
因此,增加MPE-FEC帧的大小和/或来自多个MPE-FEC帧的交织数据有助于增加交织长度和提供防御噪声的鲁棒性。
在前述例子中,来自两个IP流91、92(图6)的数据报281、282(图6)在突发集191、192、193(图19)中被传输。相同级别的编码用于每个IP流91、92(图6)。换句话说,应用数据表321、322(图7)各自具有相同大小而RS数据表331、332(图7)各自具有相同大小。
然而,不同的IP流9可能需要不同的编码率,即不同级别的编码。这之所以可能发生是由于IP流9可能需要以不同的优先级来递送。被编码到不同级别编码的IP流在接收器进行解码要花费不同量的时间和处理能力。
参照图23,编码器13可以具有用于分别地各自包括相应IP流93、94、95的第三、第四和第五过滤流123、124、125的第三、第四和第五编码表273、274、275。编码表273、274、275包括相应的应用数据表323、324、325和RS数据表333、334、335。
例如,在第三IP流93中传输视频数据,在第四IP流94中传输语音数据,而在第五IP流95中传输有关数据。希望以低优先级传输视频数据、以高优先级传输有关数据而以中间优先级传输语音数据。
为了实现不同的优先级,使用了不同的编码级别。
例如,第三编码表273使用RS(255,239,16)代码,第四编码表274使用RS(255,223,32),而第五编码表275使用RS(255,191,64)。因此,第三应用数据表323包括255列343中的239列,第四应用数据表324包括255列344中的223列,而第五应用数据表325包括255列345中的223列。取代了使用不同编码,可以通过删余某一数目的RS列来减少编码率而通过在应用数据表中使用填塞来增加编码率。
在本举例中,第三和第四编码表273、274各自包括384行343、344,而第五编码表275包括256行344。因此,可以在单个2M比特的突发197中传输三个MPE-FEC帧143,1、144,1、145,1。
编码表273、274、275可以各自包括更少或者更多的列353、354、355和/或更少或者更多的行343、344、345。可以使用大小更大或者更小的突发197。然而将理解到,编码表273、274、275可以存储的数据的量应当等于或者小于突发197的大小。可以使用大于2M比特的突发。
利用通过与上文所述的用以产生MPE-FEC帧143,1、144,1、145,1(步骤S3至S5)的方式相似的方式所计算的数据报283、284、285和RS列403、404、405来填充编码表273、274、275。
从编码表273、274、275中读出MPE-FEC帧143,1、144,1、145,1,并且以上述方式相似的方式来预备突发197。然而,无需使用交织(步骤S6和S7)。
封装数据报283、284、285和RS列403、404、405(步骤S8)。帧标识和帧计数器参数41、42(图13)被添加到MEP段16h和MPE-FEC段17i的报头(步骤S9和S10)。
在时间分片块19(图2)中,Δt和突发参数62、63被添加到MEP段16h和MPE-FEC段17i的报头(步骤S11和S12),而MEP段16h和MPE-FEC段17i被排列成单个突发197(步骤S13)。在这一情况下,突发编号参数63(图18)可以被设置成burst_no=0。Δt被设置用以指示下一突发198的到达,该突发可以包括使用编码表273、274、275而预备的下一MPE-FEC帧集(未示出)。
将理解到,两个、三个或者更多MPE-FEC帧14可以在一个突发19中被传输,而这些MPE-FEC帧中的至少一个帧可以具有与其他MPE-FEC帧不同的编码率。
参照图24和图25至图27,现在将描述操作发送器的方法。
具体参照图25,形式为包括MPE段161、162、163、164的MPE段16和包括MPE-FEC段17f-2、17f-1的MPE-FEC段17的间歇流这一形式的突发19(图18)由TS流生成和多路复用块23(图2)接收并且被拆分成段分段,包括分段691、692、693、694、69g-1、69g。每个分段69被放入对应的TS分组25A中。例如,分段691、692、693、694、69g-1、69g被分别地放入TS分组25A,1、25A,2、25A,3、25A,4、25A,g-1、25A,g中。
参照图26,TS分组25A通常长为188字节并且遵循ISO/IEC标准13818-1“Information Technology-Generic coding of moving pictures andassociated audio information:Systems”。每个TS分组25A包括使用分组标识符(PID)71的分组报头70。分组标识符70可以用来标识TS分组有效载荷72的内容。
TS流生成和多路复用块23(图2)添加与突发集对应的PID,该突发集携带用于相同过滤流12或者相同过滤流集12(图2)的MPE段16和MPE-FEC段17。
参照图27,TS流生成和多路复用块23(图2)将携带MPE段16和MPE-FEC段17的TS分组25A与携带SI和PSI表段22(图2)的TS分组25B和携带一个或者多个MPEG-2 TV业务24(图2)的TS分组25C多路复用成共同的多路复用25。SI/PSI表段21(图2)和MPEG-2TV业务24(图2)没有进行时间分片。多路复用25被转发到调制块26以供调制、放大和作为参考信号8(图1)来传输。
参照图2,MPE封装器6接收用来预备SI和PSI/SI及SI数据的业务信息数据10,包括IP/MAC通知表(INT)未示出,并将数据21传输到包括移动终端2(图1)的接收器(未示出)。
SI/PSI段封装块20(图2)把INT(未示出)分段成段(未示出)并且将表段传递到TS流生成器和多路复用装置24以便映射到具有PID=0x004C的TS分组25B和多路复用成多路复用25(图2)。INT在EN 301 192 ibid.的条款7.8中有更具体的描述。
如上简略地提到,在使用业务描述段传输的业务描述表(SDT)中的数据广播描述符指示了第一、第二、第三和第四MAC地址字段用来携带实时参数,比如Δt。广播描述符可以指示第五MAC地址字段和保留字段用来携带比如帧标识、帧计数器和突发编号这样的参数。业务描述段和数据广播描述符在EN 300 468 ibid.的条款6和7中有更具体的描述。
参照图28,时间分片和FEC标识符描述符73用来以信号发送与用于给定基本流的MPE-FEC和时间分片有关的信息。
描述符73类似于在EN 301 192 ibid.的条款9.5中描述的时间分片和FEC标识符描述符74,该描述符标识了在给定的基本流上是否使用时间分片和/或MPE-FEC。然而,描述符73包括附加字段,这些附加字段包括:字段75,用于指示被用来传输单个MPE-FEC帧的突发的数目;字段76,用于指示MPE-FEC帧的大小;以及字段77,用于指示在单个突发中携带的MPE-FEC帧的数目。也可以指示版本编号、编码类型,尤其是如果不同于RS(255,191,64)和最大的帧大小,尤其是如果不同于最大的突发大小。
参照图29,在具有第一和第二描述符循环体(loop)79、80的网络信息表(NIT)78中使用时间分片标识符描述符73。
当定位于第一描述符循环体79中时,描述符73适用于在表78内预示的所有传输流。描述符73适用于在任何传输流上具有给定流类型字段值的所有基本流。流类型字段值0x0D可以用于那些仅携带MPE流的基本流。流类型字段值0x80可以用于那些携带MPE和FEC段的基本流。在0x80与0xFF之间的stream_type字段值可以用于那些仅携带FEC段的基本流。
当定位于第二描述符循环体80中时,描述符73适用于在传输流字段(未示出)中指定的有关传输流。描述符73适用于所有具有给定流类型字段值的基本流。这一描述符73重写在第一描述符循环体中可能有的描述符。
描述符73可以包含于其他类型的表中,比如包含于INT(未示出)中。
当定位于INT(未示出)的平台描述符循环体(未示出)中时,该描述符适用于在表内所引用的所有基本流。这一描述符重写在NIT中可能有的描述符。
当定位于INT(未示出)的目标描述符循环体(未示出)中时,该描述符适用于在描述符出现之后在有关的目标描述符循环体(未示出)内所引用的所有基本流。这一描述符重写在平台描述符循环体中和在NIT中可能有的描述符。在从INT内的多个位置引用基本流的情况下,每个基本流包含相同信令。
SI/PSI段封装块20(图2)将NIT 78分段成段(未示出)并且将段传递到TS流生成器和多路复用块24以便映射到具有PID=0x0010的TS分组26B和多路复用成多路复用26(图2)。
接收器通常在连接到网络1(图1)时仅访问NIT 78。
接收器(未示出)可能需要在从一个传输流变成另一传输流(未示出)时读取INT的内容而且通常不多于一次。INT的变化可以使用PMT表(未示出)在PSI中用信号来发送,由此确保无需对INT的不断过滤。
比如PMT(未示出)这样的PSI表通常在每100ms内被重新传输至少一次。如果突发的持续时间长于100ms,则接收器在接收突发的同时访问PMT。对于较短的突发,接收器可以选择保持接通直至所有所需PSI表都得以接收。
移动终端2
参照图30,示出了用于从数字广播网络1(图1)接收内容的移动终端2。
移动终端2的形式为具有多媒体功能的移动电话手机。移动终端2包括第一和第二天线811、812、接收器821和收发器822。在本例中,第一天线811和接收器821用以从广播网络1(图1)接收信号。第二天线812和收发器822用以向比如PLMN这样的第二通信网络(未示出)发送信号并从其接收信号。接收器和收发器811、822各自包括用于对收到的信号进行放大和解调的相应参考信号处理电路(未示出)以及用于信道解码和解多路复用的相应处理器(未示出)。
移动终端2还包括处理器83、用户接口84、存储器85、可选智能卡读取器86、在智能卡读取器86中接收的可选智能卡87、编码器/解码器(编码解码器)88、具有对应放大器90的扬声器89和具有对应预放大器92的麦克风91。
用户接口84包括显示器93和键盘94。显示器93适于例如通过具有比常规移动电话的显示器更大的尺寸和/或具有比常规移动电话的显示器更大的分辨率并能够支持彩色图像来显示图像和视频。移动终端2还包括电池95。
处理器83在存储于存储器85中的计算机软件(未示出)指令之下管理移动终端2的操作。例如,控制器83为显示器93提供输出和从键盘94接收输入。
可以通过提供适于从广播网络(图1)和第二通信网络(未示出)接收信号的单个接收器以及适于向第二通信网络(未示出)发送信号的发送器来修改移动终端2。可选地,可以提供单个收发器用于这两个通信网络。
参照图31,接收器821包括用于解调参考信号8和输出TS分组26以供处理器83进行处理的解调器96。然而,处理无需由处理器83执行而可以在接收器821内执行或者由专用数字信号处理器(未示出)执行。处理器83所执行的过程在图31中以功能框图加以图示。
TS过滤块97接收TS流25’,根据在TS分组报头70(图26)中保持的PID值71(图26)来过滤TS分组25A、25B,并且把过滤的TS分组25A、25B传递到段解析块98。也可以用常规方式来过滤和处理携带MPEG-2 TV的TS分组25C。
段解析块98对TS分组25A、25B的有效载荷72(图26)进行解封装并且输出MPE段16、MPE-FEC段17和SI/PSI表段22。表段21包括携带NIT 78(图29)和INT(未示出)的段(未示出)。
当移动终端2被用户开启时,TS过滤块97可能不知道携带如下过滤流12的TS分组25A的PID值,这些过滤流提供了用户希望消费的一个或者多个业务。因此,TS过滤块97起初可能仅接收和过滤TS分组25B,这些分组携带了用于业务发现的NIT 78(图29)和INT(未示出),这一点例如在EN 301 192 ibid中有描述。向用户呈现他或者她可以从中选择业务的电子业务向导(未示出)。处理器83(图30)在NIT 78(图29)或者INT(未示出)中查找用于所选业务的PID并且将该PID提供给TS过滤块97以便过滤TS分组25A。
段解封装块99从MPE和MPE-FEC段16、17的报头46、49(图13和图14)中提取实时参数frame_id和frame_counter参数,并且将它们提供给控制器块100。
段解封装块99从MPE和MPE-FEC段16、17以及SI/PSI表段21的有效载荷47、50(图13和图14)中提取数据报和RS列,并且将它们分别地转发到MPE-FEC解码块102和PSI/SI解析器103。段解封装块99还把地址43(图13)转发到MPE-FEC解码块102。
控制器块100分析实时参数并且生成用于命令接收器821关断或者节电的控制信号104。控制器块100还可以生成用以命令其他处理块关断或者节电的其他控制信号(未示出)。
控制器块100还分析实时参数并且如果突发的末尾丢失则生成用于命令MPE-FEC解码块102开始解码的控制信号105。
MPE-FEC解码块102包括一个或者多个解码表106。正如随后将更具体地说明的,解码表106的数目和大小可以基于MPE-FEC帧设置来确定。
MPE-FEC解码块102将过滤流12根据IP地址输出到对IP流9进行过滤的IP分析和过滤块107。
参照图30、31和32,现在将描述操作移动终端2的方法。
当移动终端2由用户开启时或者在另一方便的时间,处理器83下载NIT 78(图29)和INT(未示出)并且将它们存储于存储器85中(步骤S18和S19)。
通过使用NIT(图29)和INT(未示出),可以根据需要并在需要时下载适当的SI表(未示出)以便提供电子业务向导(ESG)(未示出)。移动终端用户(未示出)可以经由显示器93浏览ESG并且使用键盘94来选择业务(步骤S19)。
用户希望消费由过滤流121、122(图4)提供的业务。
一旦已经选择业务,处理器83在存储于存储器85内的网路NIT 78中搜索对应的时间分片和FEC标识符描述符73。处理器83检查描述符73的时间分片、MPE FEC、最大突发持续时间、最大平均速率、突发大小和帧大小以及时间分片标识字段以确定是否使用时间分片和MPE-FEC,并且如果是这样,则获取时间分片和MPE-FEC参数。
此外,处理器83检查突发编号字段75、帧大小字段76、MPE-FEC帧编号字段77和突发大小字段以确定被用来传输单个MPE-FEC帧的突发的数目、MPE-FEC帧的大小和在单个突发中携带的MPE-FEC帧的数目。这些参数被传递到TS过滤块97、分段解调器99和MPE-FEC解码块102。
参照图33,MPE-FEC解码块102预备缓存器106,这些缓存器在本例中是与第一和第二编码表271、272(图7)相对应并且包括相应的应用数据表1071、1072、RS数据表1081、1082以及具有255列1091、1092和1024行1101、1102的第一和第二缓存器1061、1062,缓存器1061、1062内的每个位置1111、1112保持一个字节的数据(步骤S21)。预备缓存器106可以包括向给定的MPE-FEC帧分配具有L×2M比特,其中L>1,大小的单个缓存器的部分。
如果接收器821尚未开启,则控制器100命令接收器821开启(步骤S22)。
接收器821对信号8进行解调并且输出TS流25’。TS流25’包括至少部分多路复用25(图27)。
TS过滤块97根据PID 71过滤TS分组25A(图25)(步骤S23)。TS过滤块97可以丢弃任何包含错误的TS分组25A。
段解析块98接收TS分组25A,从TS分组25A中解封装段分段29(图25),并且输出例如与图17中所示相似的MPE段16和MPE-FEC段17(步骤S24)。
另外参照图34,段解封装块99接收MPE段16和MPE-FEC段17,从来自MPE和MPE-FEC段16、17的它们的有效载荷47、50中解封装数据报28和RS列40,并且从报头46、49中提取实时参数,该实时参数包括地址(步骤S26)、帧标识和帧计数器参数(步骤S27)以及突发编号(S28)。
参照图35,MPE-FEC解码块102接收例如包括数据报281,1、281,2、282,1、282,2、282,3、282,4的数据报281、282以及RS列401、402,还接收对应的帧标识和帧计数器参数41、42、地址数据43、表标志44、突发结束标志45和突发计数器60。
基于帧标识参数41,MPE-FEC解码块106把数据报28和RS列40分路到第一和第二缓存器1061、1062,并且根据地址数据43将它们放入第一和第二缓存器1061、1062中(步骤S29)。
MPE-FEC解码块102检查是否已经到达突发的末尾(步骤S30)。这包括检查实时参数字段54、59(图15和图16)中的突发结束字段并且确定突发结束字段是否等于‘1’,其中‘1’指示了突发的末尾。如果尚未到达突发的末尾,则继续TS分组25A和分段16、17的处理(步骤S23至S30)。
如果到达突发的末尾,则MPE-FEC解码块102检查是否预期携带来自相同MPE-FEC帧的更多数据的更多突发(步骤S31)。这包括检查突发计数器60并且确定突发计数器是否等于‘0’。这也可以用来检查突发是否为包括多个完全MPE-FEC帧的单个突发。
参照图36,如果由于该突发是携带一个或者多个MPE-FEC帧的一系列突发中的最后一个或者由于该突发包括多个完全MPE-FEC帧、所以预期没有携带来自相同MPE-FEC帧的更多数据的更多突发,则可以假定已经收到该或者每个MPE-FEC帧141、142。
MPE-FEC解码块102无需接收或者可以忽略RS列401、402。
参照图37,MPE-FEC解码块102对该或者每个MPE-FEC帧141、142进行解码(步骤S31)。这包括使用RS码字381、382来检错和纠错,比如错误字节1121,1。
MPE-FEC解码块102无需解码该MPE-FEC帧141、142或者每个MPE-FEC帧141、142。
MPE-FEC解码块102从缓存器1061、1062中读出数据报281、282(步骤S33)。
过滤块107根据它们的IP地址来过滤数据报281、282,并且将它们传递到应用(未示出)或者存储器以供存储、进一步处理、呈现或者其他用途(步骤S33)。如果已经递送或者不再需要该业务,则可以停止对用于该业务的TS分组25A的接收和处理(步骤S25)。
如果预期有更多突发,则控制器100命令接收器821关断(步骤S36)、等待Δt(步骤S37),优选地使用在突发的最后段中接收的值、并且命令接收器821开启以接收下一突发(步骤S22)。
参照图38,如果要接收大于2M比特的MPE-FEC帧,例如MPE-FEC帧141,1’(图22),则可以预备大于常规时间分片缓存器即大于2M比特的解码表1061’。
参照图39,如果要在单个突发中接收多个MPE-FEC帧,例如MPE-FEC帧143,1、144,1、145,1,则可以预备相应的解码表1063、1064、1065。
应理解,对前述实施方式可做出多种修改。例如,移动终端2可以是个人数据助理(PDA)或者是至少能够经由第一通信网络1接收信号的其他移动终端。移动终端也可以是半固定或者半便携的,比如在像汽车这样的交通工具中携带的终端。