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