用于分组头部压缩的方法和装置的制造方法_2

文档序号:9439533阅读:来源:国知局
。头部中字段的顺序也可以被改变。在下文中,进一步详细讨论了针对MMT-TP和MMT-PF的头部压缩的示例性实施例。
[0042]MMT-TP 头部
[0043]图3示出用于生成缩减的MMT-TP头部的示例性方法300。方法300在步骤305处开始。在步骤310处,deltajimestamp字段被用于表示时间戳。尽管就位而言其代价较高,但是需要保存与分组相关联的时间戳信息。
[0044]delta_timestamp字段包括参考完整尺寸头部的timestamp字段和使用完整头部的情况下当前timestamp字段中的值之间的差异。在一个实施例中,基于接收器和发送器这二者已知的规则,完整尺寸头部可以被推断为参考头部,例如,最后接收到的完整尺寸头部被用作参考头部。在另一实施例中,完整尺寸头部可以被明确指示为是参考头部。时间戳之间的差异以与NTP时间戳的19个最低有效位相似的方式被编码。这就保持了具有8秒持续时间的相同时间戳精度。如果这两个时间戳之间的差异大于8秒(因此超出了可以用19位进行编码的最大持续时间),则发送具有完整头部的分组以便为具有缩减尺寸头部的另外的分组提供新的时间戳参考值。
[0045]完整头部中的packet_id 字段被 reduced_pckt_id 取代。该 reduced_pckt_id在完整头部中利用8位而不是16位。因此,这种从16位分组id到8位id的缩减限制了packet_id在O和255之间的流的缩减的头部的使用。于是,在步骤320处,检查packet_id是否在O和255之间。如果是,那么方法300为reduced_pckt_id设置值并且继续生成缩减的头部。如果不是,那么提出的头部缩减机制不可用并且应该生成完整的头部。
[0046]在步骤330处,reduced_SeqNum字段被用于表示分组序列号。该reduced_SeqNum字段包括packet_sequence_number字段的8个最低有效位,当使用了完整尺寸头部时packet_sequence_number将在头部中。因为这种新的字段由8位编码,因此本原理要求针对每个流(由相同packet_id标识)在至少每256个分组处发送具有完整尺寸头部的分组。
[0047]在步骤340处,生成新的字段RefSeqNum。RefSeqNum包含完整头部被用作参考的分组的序列号的最后5位。通过允许接收器检查最后接收到的完整头部是否实际上是应该被用作当前缩减尺寸头部的参考的头部,该新字段带来额外的鲁棒性。由于分组可以被丢弃,字段RefSeqNum提供了一种机制来确保当完整头部参考没有被接收到时,接收器不尝试对缩减的头部进行不适当地解码。
[0048]在步骤350 处,字段 “delta_timestamp,,、“reduced_pckt_id,,、“reduced_SeqNum-RefSeqNum”以及其它字段例如,根据图5B中所示的格式被写入缩减尺寸头部中。方法300在步骤399结束。
[0049]需要注意的是方法300中的步骤可以按与图3所示的顺序不同的顺序进行,例如,步骤310-340可以按任意顺序被执行。
[0050]图4不出序列号中的位被用于生成字段“reduced_SeqNum”,并且字段“reduced_SeqNum”被用于利用示例在缩减的头部中对序列号进行解码。在该示例中,当前分组N+i将被发送,并且最后的完整尺寸头部在分组N中被接收。在发送器端,只有序列号(415)的8个最低有效位(430)被保持以生成字段“reducecLSeqNum”,这就减少了所需的处理。
[0051]接收器端处的解码比发送器端处的编码更复杂。首先,解压缩器需要存储被用作参考的分组的序列号(405)或者序列号(410)的24个最高有效位。解压缩器可能还需要存储序列号的8个最低有效位(430)作为reducecLSeqNum的初始值。然后,针对每个接收到的缩减的头部,解码器需要追踪reduced_SeqNum是否循环通过O。然后通过将reduced_SeqNum(430)附加至参考序列号(当reduced_SeqNum循环通过O时加I)的24个最高有效位(440)来获得缩减头部分组的完整序列号。也就是说,当reducecLSeqNum没有循环通过O时,440中所示的位等于410中所示的位,否则,440中所示的位比410所示的位大I。
[0052]图5A示出根据本原理提出的完整MMT-TP头部,并且图5B示出提出的缩减的MMT-TP 头部。与图 2 所示的 MMT-TP 头部相比较,字段“Q”、“F”、“P”、“FEC”、“RES”、“TB”、“DS”以及“R”被移动至所提出的完整MMT-TP头部的起始位置,并且它们的尺寸和语义不改变,移除字段“S”并且添加字段“C”和“I”。“I”标记被用于指示是否应该存储当前的头部信息,因为其随后会被用作参考,并且它已经被添加至完整MMT-PF和MMT-TP头部。
[0053]字段的顺序也要进行调整。因为标记“C”指示哪种头部将被使用,这需要成为由解码器确定的第一信息。假设解码器将首先确定第一位,利用标记“C”的第一位使得解码器能够首先确定后续是哪种头部。
[0054]将如图5B所示的提出的缩减的MMT-TP与图5A所示的完整MMT-TP头部进行比较,字段“packet_id,,、“packet_sequence_number” 以及“timestamp” 分别被“reduced_pckt_id,,、“reduced_SeqNum” 以及 “delta_timestamp” 所替代,并且字段 “ I ”、“RES” 以及“reserved”被移除。因此,最小的MMT-TP头部尺寸从99位减小至56位,这表示节省了43%的位。
[0055]MMT-TP流由它们的packet_id标识,并且每个流有它自己的packet_sequence_number序列。因此,通过在有限数量的流(packet_id在O和255之间)上应用头部缩减机制,RefSeqNum和reduced_pckt_id字段的组合以唯一的方式识别将被用于对缩减尺寸头部进行解码的参考分组。
[0056]此外,因为reduced_pckt_id只不过是具有更小范围的可能值的packet_id字段的副本,通常通过在packet_id上过滤实现的传统分组过滤可以在reduced_pckt_id上以相同方式操作。在一个示例中,过滤在于查看一些字段以便确定分组是否应该被发送或被接收。当使用诸如RoHC之类的技术时,为了读取头部的一个字段,整个头部都需要没有被压缩。相比之下,利用我们所提出的技术,只需要所需字段没有被压缩。也就是说,过滤可以在没有重现原始packet_id的情况下在reduced_packet_id上直接完成。因此,根据本原理的头部压缩技术在分组过滤上是完全透明的。
[0057]MMT-PF 头部
[0058]头部压缩通常针对大的以及重复的头部提供益处。针对MMT,头部压缩可以为FEC修复符号提供显著的位节省、或者当单个MPU在若干分段中传输时提供显著的位节省。因此,我们为可以从头部压缩中获益的一些具体使用情境设计了缩减的头部。鉴于这些使用情境,在下文中我们提出了缩减尺寸MMT-PF头部。
[0059](I)移除A、number_data_unit以及DU_offset字段,因为缩减尺寸头部不支持聚合。因此,当聚合被使用时应该使用完整的头部。
[0060](2)移除R标记,因为当随机接入点(RAP)在有效载荷中存在时完整头部会一直被使用。这就保证了具有RAP的分组可以自行解码(而不需要依赖于其它“参考”分组的编码)。
[0061](3)当具有缩减头部的所有分组会共用它们的“参考”分组的相同的payload_sequence_number 时,移除 P 和 payload_sequence_number 字段。
[0062](4)当头部压缩只用在相同尺寸的片段上时,移除length字段。因此,第一片段会使用完整的头部,并且具有与“参考”片段(通常是第一片段,但不是强制的)不同的尺寸的任意片段也会使用完整的头部。
[0063](5) RefSNum字段包含其完整头部被用作参考的分组的有效载荷序列号的最后4位。通过允许接收器检查最后接收到的完整头部是否实际上是将被用作当前缩减尺寸头部的参考的头部,这带来额外的鲁棒性。因为分组可能被丢弃,这就提供了一种机制以确保当完整的头部参考没有被接收到时,接收器不尝试对缩减的头部进行不适当地解码。
[0064]图6A示出所提出的完整MMT-PF头部,并且图6B示出提出的缩减的MMT-PF头部。与图1A所示的MMT-PF头部相比较,字段“f_i ”、“A”、“R”、“P”和“E”被移动至所提出的完整的MMT-PF头部的起始位置,并且他们的尺寸和语义不改变。移除标记“F”和“S”并且添加字段“C”和“I”。字段的顺序也被调整了。将如图6B所示的提出的缩减的MMT-PF头部与如图6A所示的完整MMT-PF头部进行比较,移除字段“I”、“A”、“R”、“P”、“length”、“numDU”、“DU_offset” 和 “payload_sequence_number”,并且添加字段 “RefSNum”。因此,最小的MMT-PF尺寸从128位减少至32位,这表示节省了 75%的位。
[0065]在许多应用中,相同资产的除最后的片段以外的所有片段将具有相同的尺寸,因此完整尺寸头部只能被用在第一片段和最后的片段中,并且在利用第一片段作为参考时所有其它的片段可以使用缩减的头部。
[0066]如上所讨论的,不同的方法被用来为MMT-PF和MMT-TP提供有效和强健的头部。在一个实施例中,当前字段和参考字段之间的差异(例如,delta_timestamp)被用在缩减的头部中。通过使用该差异而不是字段它本身,可以用更少的位来表示字段。在另
当前第2页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1