RFC 2190 (rfc2190) - Page 4 of 12
RTP Payload Format for H
Alternative Format: Original Text Document
RFC 2190 RTP Payload Format for H.263 Video Streams September 1997
If the GOB header is present in a GOB, motion vectors are coded with
reference to MBs in the current GOB only. If a GOB header is not
present in the current GOB, three motion vectors must be available to
decode one macroblock, where two of them might come from the previous
GOB. To correctly decode a whole inter-coded GOB, all the motion
vectors for MBs in the previous GOB must be available to compute the
predictors or the predictors themselves must be present. The optional
use of three motion vector predictors can be a major problem for a
packetization scheme like the one defined for H.261 when packetizing
at MB boundaries [5].
Consider the case that a packet starts with a MB but the GOB header
is not present. If the previous packet is lost, then all the motion
vectors needed to predict the motion vectors for the MBs in the
current GOB are not available. In order to decode the received MBs
correctly, all the motion vectors for the previous GOB or the motion
vector predictors would have to be duplicated at the beginning of the
packet. This kind of duplication would be very expensive and
unacceptable in terms of bandwidth overhead.
The encoding strategy of each H.263 CODEC (CODer and DECoder)
implementation is beyond the scope of this document, even though it
has significant effect on visual quality in the presence of packet
loss. However, we strongly recommend use of the GOB header for every
GOB at the beginning of a packet to address this problem.
Similar problems exist because of cross-GOB data dependency related
to motion vectors, but they can not be addressed by using the GOB
header. For 16CIF and 4CIF pictures, a GOB contains more than one row
of MBs. If a GOB can not fit in one RTP packet, and the first packet
containing the GOB header is lost, then MBs in the second packet can
not compute motion vectors correctly, because they are coded relative
to data in the lost packet. Similarly, when OBMC (Overlapped Block
Motion Compensation) [4] in Advanced Prediction mode is used, motion
compensation for some MBs in one GOB could use motion vectors of MBs
in previous GOB regardless of the presence of GOB header. When MBs
that are used to decode received MBs are lost, those received MBs can
not be decoded correctly. Each implementation of the method described
in this document should take these limitations into account.
Zhu Standards Track