首页 >> IPTV(网络电视) >> 技术 >> 正文
基于IP网络的H.264关键技术及应用
2007年9月10日 14:06    C114    评论()    阅读:
作 者:数码在线网站

    头信息划分:包含片中宏块的类型,量化参数和运动矢量,是片中最重要的信息。

    帧内信息划分:包含帧内CBPs和帧内系数,帧内信息可以阻止错误的蔓延。

    帧间信息划分:包含帧间CBPs和帧间系数,通常比前两个划分要大得多。

    帧内信息划分结合头信息解出帧内宏块,帧间信息划分结合头信息解出帧间宏块。帧间信息划分的重要性最低,对重同步没有贡献。当使用数据划分时,片中的数据根据其类型被保存到不同的缓存,同时片的大小也要调整,使得片中最大的划分小于MTU尺寸。

    解码端若获得所有的划分,就可以完整重构片;解码端若发现帧内信息或帧间信息划分丢失,可用的头信息仍然有很好的错误恢复性能。这是因为宏块类型和宏块的运动矢量含有宏块的基本特征。

    5.参数集的使用

    序列的参数集(SPS)包括了一个图像序列的所有信息,图像的参数集(PPS)包括了一个图像所有片的信息。多个不同的序列和图像参数集经排序存放在解码器。编码器参考序列参数集设置图像参数集,依据每一个已编码片的片头的存储地址选择合适的图像参数集来使用。对序列的参数和图像的参数进行重点保护才能很好地增强H.264错误恢复性能。

    在差错信道中使用参数集的关键是保证参数集及时、可靠地到达解码端。例如,在实时信道中,编码器用可靠控制协议及早将他们以带外传输的方式发送,使控制协议能够在引用新参数的第一个片到达之前把它们发给解码器;另外一个办法就是使用应用层保护,重发多个备份文件,确保至少有一个备份数据到达解码端;第三个办法就是在编解码器的硬件中固化参数集设置。

    6.灵活的宏块次序(FMO)

    灵活的宏块次序是H.264的一大特色,通过设置宏块次序映射表(MBAmap)来任意地指配宏块到不同的片组,FMO模式打乱了原宏块顺序,降低了编码效率,增加了时延,但增强了抗误码性能。FMO模式划分图像的模式各种各样,重要的有棋盘模式、矩形模式等。当然FMO模式也可以使一帧中的宏块顺序分割,使得分割后的片的大小小于无线网络的MTU尺寸。经过FMO模式分割后的图像数据分开进行传输,以棋盘模式为例,当一个片组的数据丢失时可用另一个片组的数据(包含丢失宏块的相邻宏块信息)进行错误掩盖。实验数据显示,当丢失率为(视频会议应用时)10%时,经错误掩盖后的图像仍然有很高的质量。

    7.冗余片方法

    前边提到了当使用无反馈的系统时,就不能使用参考帧选择的方法来进行错误恢复,应该在编码时增加冗余的片来增强抗误码性能。要注意的是这些冗余片的编码参数与非冗余片的编码参数不同,也就是用一个模糊的冗余片附加在一个清晰的片之后。在解码时先解清晰的片,如果其可用就丢弃冗余片;否则使用冗余模糊片来重构图像。

    四、H.264中实时传输协议(RTP)

    1.RTP载荷规范

    在第二部分已经对H.264的网络协议环境作了阐述,这里要详细讨论RTP的载荷规范和抗误码性能。RTP通过发送冗余信息来减少接收端的丢包率,会增加时延,与冗余片不同的是它增加的冗余信息是个别重点信息的备份,适合于应用层的非等重保护。下边阐述与多媒体传输有关的3个规范。

    (1)分组复制多次重发,发送端对最重要的比特信息分组进行复制重发,使得保证接收端能至少正确接收到一次,同时接收端要丢弃已经正确接收的分组的多余备份。

    (2)基于分组的前向纠错,对被保护的分组进行异或运算,将运算结果作为冗余信息发送到接收方。由于时延,不用于对话型应用,可用于流媒体。

    (3)音频冗余编码,可保护包括视频在内的任何数据流。每个分组由头标、载荷以及前一分组的载荷组成,H.264中可与数据分割一起使用。

    2.H.264NAL单元的概念

    H.264NAL单元对编码数据进行打包,NAL单元由1字节的头,3个定长的字段和一个字节数不定的编码段组成。

    头标的语法:NALU类型(5bit)、重要性指示位(2bit)、禁止位(1bit)。

    NALU类型:1~12由H.264使用,24~31由H.264以外的应用使用。

    重要性指示:标志该NAL单元用于重建时的重要性,值越大,越重要。

    禁止位:网络发现NAL单元有比特错误时可设置该比特为1,以便接收方丢掉该单元。

    3.分组打包的规则

    (1)额外开销要少,使MTU尺寸在100~64k字节范围都可以;

    (2)不用对分组内的数据解码就可以判别该分组的重要性;

    (3)载荷规范应当保证不用解码就可识别由于其他的比特丢失而造成的分组不可解码;

    (4)支持将NALU分割成多个RTP分组;

    (5)支持将多个NALU汇集在一个RTP分组中。

    RTP的头标可以是NALU的头标,并可以实现以上的打包规则。

    4.简单打包

    一个RTP分组里放入一个NALU,将NALU(包括同时作为载荷头标的NALU头)放入RTP的载荷中,设置RTP头标值。为了避免IP层对大分组的再一次分割,片分组的大小一般都要小于MTU尺寸。由于包传送的路径不同,解码端要重新对片分组排序,RTP包含的次序信息可以用来解决这一问题。

    5.NALU分割

    对于预先已经编码的内容,NALU可能大于MTU尺寸的限制。虽然IP层的分割可以使数据块小于64千字节,但无法在应用层实现保护,从而降低了非等重保护方案的效果。由于UDP数据包小于64千字节,而且一个片的长度对某些应用场合来说太小,所以应用层打包是RTP打包方案的一部分。

    新的讨论方案(IETF)应当符合以下特征:

    (1)NALU的分块以按RTP次序号升序传输;

    (2)能够标记第一个和最后一个NALU分块;

    (3)可以检测丢失的分块。

    6.NALU合并

    一些NALU如SEI、参数集等非常小,将它们合并在一起有利于减少头标开销。已有两种集合分组:

    (1)单一时间集合分组(STAP),按时间戳进行组合;

    (2)多时间集合分组(MTAP),不同时间戳也可以组合。

    五、结束语

    本文重点讲述了在IP网络的限制条件下H.264进行错误恢复的几种有力工具,但在不同的IP网络中要组合使用各种工具才能实现高效率编码和传输。因为目前无线网络对MTU尺寸和时延的限制,所以错误恢复工具可以结合使用图像的分割、数据的划分和RTP分组技术,避免使用冗余信息和反馈来提高错误恢复性能;另外高效率的FMO编码模式可以大大提高编码的抗分组丢失性能

[1]  [2]  编 辑:张翀
关键字搜索:IPTV  IP  H.264  
  [ 发 表 评 论 ]     用户昵称:   会员注册
 
 
  推 荐 新 闻
  技 术 动 态
  通 信 圈