RFC 2190 (rfc2190) - Page 3 of 12


RTP Payload Format for H



Alternative Format: Original Text Document



RFC 2190       RTP Payload Format for H.263 Video Streams September 1997


   Syntax-based Arithmetic Coding (SAC): When the SAC option is used,
   the resultant run-value pair after quantization of Discrete Cosine
   Transform (DCT) coefficients will be coded differently from Huffman
   codes, but the macroblock hierarchy will be preserved. Since context
   variables are only synchronized after fixed length codes in the
   bitstream, any fragmentation starting at variable length codes will
   result in difficulty in decoding in the presence of packet loss
   without carrying the values of all the context variables in each
   H.263 payload header.

   The Unrestricted motion vectors feature allows large range of motion
   vectors to improve performance of motion compensation for inter-coded
   pictures. This option also affects packetization because it uses
   larger range of motion vectors than normal.

   To enable proper decoding of packets received, without dependency on
   previous packets, the use of these optional features is signaled in
   the H.263 payload header, as described in Section 5.

3.2 GOB Numbering

   In H.263, each picture is divided into groups of blocks (GOB). GOBs
   are numbered according to a vertical scan of a picture, starting with
   the top GOB and ending with the bottom GOB. In contrast, a GOB in
   H.261 is composed of three rows of 16x16 MB for QCIF, and three
   half-rows of MBs for CIF. A GOB is divided into macroblocks in H.263
   and the definition of the macroblocks are the same as in H.261.

   Each GOB in H.263 can have a fixed GOB header, but the use of the
   header is optional. If the GOB header is present, it may or may not
   start on a byte boundary. Byte alignment can be achieved by proper
   bit stuffing by the encoder, but it is not required by the H.263
   bitstream specification [4].

   In summary, a GOB in H.263 is defined and coded with finer
   granularity but with the same source format, resulting in more
   flexibility for packetization than with H.261.

3.3 Motion Vector Encoding

   Differential coding is used to code motion vectors as variable length
   codes. Unlike in H.261, where each motion vector is predicted from
   the previous MB in the GOB, H.263 employs a more flexible prediction
   scheme, where one or three candidate predictors could be used
   depending on the presence of GOB headers.






Zhu                         Standards Track