H.263视频编码协议结构介绍

H.263视频编码协议结构介绍

  H.263:视频编码和解码
  (H.263:Video Coding and Decoding - CODEC rk)

H.263是国际电联ITU-T的一个标准草案,是为低码流通信而设计的。但实际上这个标准可用在很宽的码流范围,而非只用于低码流应用,它在许多应用中可以认为被用于取代H.261。H.263的编码算法与H.261一样,但做了一些改善和改变,以提高性能和纠错能力。.263标准在低码率下能够提供比H.261更好的图像效果,两者的区别有:(1)H.263的运动补偿使用半象素精度,而H.261则用全象素精度和循环滤波;(2)数据流层次结构的某些部分在H.263中是可选的,使得编解码可以配置成更低的数据率或更好的纠错能力;(3)H.263包含四个可协商的选项以改善性能;(4)H.263采用无限制的运动向量以及基于语法的算术编码;(5)采用事先预测和与MPEG中的P-B帧一样的帧预测方法;(6)H.263支持5种分辨率,即除了支持H.261中所支持的QCIF和CIF外,还支持SQCIF、4CIF和16CIF,SQCIF相当于QCIF一半的分辨率,而4CIF和16CIF分别为CIF的4倍和16倍。

1998年IUT-T推出的H.263+是H.263建议的第2版,它提供了12个新的可协商模式和其他特征,进一步提高了压缩编码性能。如H.263只有5种视频源格式,H.263+允许使用更多的源格式,图像时钟频率也有多种选择,拓宽应用范围;另一重要的改进是可扩展性,它允许多显示率、多速率及多分辨率,增强了视频信息在易误码、易丢包异构网络环境下的传输。另外,H.263+对H.263中的不受限运动矢量模式进行了改进,加上12个新增的可选模式,不仅提高了编码性能,而且增强了应用的灵活性。H.263已经基本上取代了H.261。

H.263 由 ITU 定义,支持用于视频会议和视频电话应用程序的视频压缩(解码)。 H.263 基于 H.261 编码,并且为在最低带宽为 20K 到 24K bit/sec 上传输的视频流而开发。作为一种一般规则, H.263 只需 H.261 一半的带宽即可达到与 H.261 相同的视频质量,所以在很大程度上 H.263 取代了 H.261 。 H.263 使用 RTP 传输视频流。

H.263 的编码算法和 H.261 中的类似,但它在 H.261 的基础上有了提高和改变,从而增强了性能和错误恢复能力。 H.263 中运动补偿采用的是半像素精度,而在 H.261 中采用的是全像素精度和环路过滤。数据流中分层结构的某些部分是可选的,如此视频编译码就可以被配置成有较低的数据率或较好的错误恢复能力。目前有四种能够提高性能的可选协商选项:无限制运动矢量、基于语法的算术编码、先进预测和前后帧预测,这类似于 MPEG ,叫做 P-B 郑

H.263 支持五种分辨率。除了 H.261 支持的 QCIF 和 CIF 外,还有 SQCIF 、4CIF 和 16CIF 。SQCIF 的分辨率大约是 QCIF 的一半,而 4CIF 和 16CIF 的分辨率分别是 CIF 的 4 倍和 16 倍。支持 4CIF 和 16CIF 意味着视频编码器可以与其它具有较高比特率的视频编码标准相抗衡 ,如 MPEG 标准。
H.261 与 H.263 编码算法的不同点列表如下:

H.263视频编码协议结构介绍

  协议结构

H.263 有效载荷头定义了三种格式(模式 A、模式 B 和模式 C)。在模式 A 中,在实际压缩 H.263 视频比特流之前存在4字节的 H.263 有效载荷头。这样允许在 GOB 边界有分段。在模式 B 中,使用的是8字节的 H.263 有效载荷头,且每个数据包从 MB 边界开始,没有 PB 帧选项。最后,模式 C 中使用的是12字节的 H.263 有效载荷头,采用 PB 帧选项支持在 MB 边界的帧分段。

模式 A 中的头格式如下所示:

H.263视频编码协议结构介绍

  • F ― 标志位,表示有效载荷头的模式,具有以下几个值:
    0 ― 模式 A;
    1 ― 模式 B 或模式 C,取决于 P 位。
  • P ― P 指定可选的 PB 帧模式。
  • SBIT ― 起始位,指定最重要位(在第一个数据字节中忽略)的编号。
  • EBIT ― 结束位,指定最不重要位(在最后一个数据字节中忽略)的编号。
  • SRC ― 源格式(在 H.263 标准中 PTYPE 的位6、7和8压缩比特流)表示当前图片解析。
  • I ― 图片编码类型(在 H.263 标准中 PTYPE 的位9压缩比特流)。
  • U ― 在当前图片头中,如果无限制运动向量选项值为1,那么该值设置为1(在 H.263 标准中 PTYPE 的位10压缩比特流),否则该值为0。
  • S ― 在当前图片头中,如果基于语法的算法编码选项值为1,那么该值设置为1(在 H.263 标准中 PTYPE 的位11压缩比特流),否则该值为0。
  • A ― 在当前图片头中,如果高级预测选项值为1,那么该值设置为1(在 H.263 标准中 PTYPE 的位12压缩比特流),否则该值为0。
  • R ― 预留,值为0。
  • DBQ ― 用于计算量化值的差分量化参数,当使用 PB 帧选项时,B 帧的量化值基于 P 帧的量化值。该值需要与 H.263 标准压缩比特流中的 DBQUANT 相同。如果不是采用的 PB 帧选项,则该值为0。
  • TRB ― 该字段是作为 H.263 标准压缩比特流中 B 帧的暂时参考。如果不是采用的 PB 帧选项,则该值为0。
  • TR ― 该字段是作为 H.263 标准压缩比特流中 P 帧的暂时参考。如果不是采用的 PB 帧选项,则该值为0。
模式 B 中的头格式如下所示:

H.263视频编码协议结构介绍

  • 关于 F、P、SBIT、EBIT、SRC、I、U、S 和 A 各定义请参照模式 A。
  • QUANT ― 在数据包起始进行编码的第一个 MB 的量化值。如果数据包以 GOB 头开始,那么该值设置为0。
  • GOBN ― 数据包起始处的 GOB 编号。不同的解析中 GOB 编号不同。
  • MBA ― 数据包中第一个 MB 的 GOB 内的地址,按照扫描顺序从0开始计数。例如任意 GOB 中的第三个 MB 设置为 MBA = 2。
  • R ― 预留,值为0。
  • HMV1、VMV1 ― 为数据包中的第一个 MB 设置的水平和垂直运动向量预测。如果有某四个运动向量能为当前 MB 提供高级预测选项功能时,那么这些向量就是 MB 中的1号块的运动向量预测。
  • HMV2、VMV2 ― 为数据包中第一个 MB 的3号块提供的水平和垂直运动向量预测。如果有某四个运动向量能为当前 MB 提供高级预测选项功能时,需要该字段,这是因为 MB 中的3号块需要不同于 MB 中其它块的运动向量预测。当 MB 只具有一个运动向量时,不需要使用这两个字段。
模式 C 中的头格式如下所示:

H.263视频编码协议结构介绍

关于 F、P、SBIT、EBIT、SRC、I、U、S、A、DBQ、TRB 和 TR 各定义请参照模式 A。关于 QUANT、GOBN、MBA、HMV1、VMV1、HMV2 和 VNV2 各定义请参照模式 B。

RR ― 预留,设置为0(19 bit)。

相关协议
RTPRTSPH.245H.323H.225H.261
组织来源 H.263 是一种 ITU-T(http://www.itu.int/ITU-T/)标准。
相关链接
http://www.javvin.com/protocol/rfc2190.pdf: RTP Payload Format for H.263 Video Streams
http://www.h323forum.org/papers/ : H.323 papers and documents