Summary

  • RFC 2032 forbade an H.261 macroblock from crossing RTP packets. Each packet began and ended at a macroblock boundary and copied the decoding state needed to enter the bitstream there.
  • That design created a local restart point after loss. It did not recreate a missing macroblock or guarantee that inter-frame prediction would produce an undamaged picture.
  • Optional H.261-specific FIR and NACK reports gave a receiver coordinates for requesting an intra refresh or naming lost sequence numbers. A request was evidence of requested action, not of delivery, execution, timely repair or viewing.

A video packet can be perfectly intelligible while the picture it belongs to is already wrong. RFC 2032 was unusually precise about that separation.

Published in October 1996, the proposed standard described how to carry H.261 video directly in RTP. H.261 had been designed for fixed-rate ISDN channels and could be placed inside H.221 frames containing video, audio, data and error correction. The Internet payload did not reproduce those 512-bit frames. It carried the Huffman-coded video stream itself, accepting packet loss as a network fact and arranging the syntax so a decoder would not necessarily lose the rest of the stream with one datagram.

A boundary selected for recovery

An H.261 picture is divided into Groups of Blocks, and each group contains 33 macroblocks. A macroblock represents a 16-by-16-pixel region. RFC 2032 chose the macroblock as the fragmentation unit: packets had to begin and end on macroblock boundaries, and a macroblock could not be divided between packets. A packet also could not be cut between a GOB header and its first macroblock.

This was a recovery decision, not aesthetic packet formatting. Huffman-coded fields depend on where decoding begins. If a loss lands in the middle of an undelimited code stream, the receiver may not know which following bits are field values and which are continuations of an earlier code. A packet boundary at a known macroblock edge gives the next received packet an accountable entry point.

But the unit of syntactic restart is not the unit of visual independence. H.261 uses inter-frame and differential coding. A macroblock that can be parsed may still refer to an earlier picture whose corresponding region was lost or decoded incorrectly. RFC 2032 itself warns that damaged regions can persist until the affected macroblocks are sent in INTRA mode. The next clean boundary limits uncertainty; it does not erase the past.

The packet carried its starting memory

The four-byte H.261 payload header preserves what a decoder needs at the boundary. SBIT and EBIT say how many non-video bits at the first and last octets should be ignored. That reconciles a bit-oriented codec with byte-oriented packets.

GOBN identifies the Group of Blocks in which the packet starts; zero means that the packet begins with a picture header. MBAP carries the macroblock-address predictor relative to the GOB start. QUANT carries the quantizer value in force for the next macroblock. HMVD and VMVD retain the reference horizontal and vertical motion-vector data needed to reconstruct differential motion vectors.

Those fields are copied context. They let the receiver reconstruct the state at a chosen point without receiving every preceding code word in the same GOB. MBAP is particularly easy to overread: it is a predictor needed to interpret address differences, not a claim that a rectangle of the displayed image has been recovered.

The I and V bits are similarly modest. I says the stream contains only INTRA-coded macroblocks; V says whether motion vectors may be used. The RFC treats them as session-level hints and notes that an implementation can conservatively set V to one and I to zero. They help a decoder choose a safe path. They do not audit the coding mode of every macroblock, certify the prediction reference or measure picture quality.

Frame ending was observable; frame completeness was not

Every RTP packet for one video image carries the same 90 kHz timestamp. The marker bit is set on the final packet of a frame so a receiver can display the frame without waiting for the next picture start code. When a packet contains several pictures, the RTP timestamp belongs only to the first and later display times must be derived from H.261 picture headers.

These signals locate time and closure. They do not close the evidentiary gap. A marker bit proves that the sender labelled this packet as the end of the frame. It does not prove that all earlier sequence numbers arrived. The RTP sequence space can reveal a gap, while UDP gives the sender no intrinsic confirmation that a datagram reached the receiver. “Last packet received” and “complete frame received” are different observations.

Error containment was not error correction

RFC 2032 lists several ways to reduce persistent damage. A coder can periodically use an all-INTRA frame, change its refresh rate in response to loss, or receive a request from a decoder after damage is detected. Each measure creates a possible control loop. None makes the loop self-proving.

The distinction matters because the packet format solves a narrow failure. Without the macroblock boundary and copied context, one missing packet could destroy parsing context for later packets. With them, later syntax can be decoded. Yet pixels based on a bad reference may remain wrong, the lost region may never be retransmitted, and a late correction may miss the display deadline. Error containment protects future interpretability. Error correction requires additional events and evidence.

FIR and NACK expressed intent in coordinates

RFC 2032 also specified optional H.261 control messages over RTCP. A Full INTRA-frame Request used payload type 192 to ask the coder to encode the next frame entirely in INTRA mode. The SSRC identified the receiver making the request. A Negative Acknowledgement used payload type 193. Its FSN field named the first RTP sequence number the receiver believed lost; a 16-bit bitmask named losses among the following sixteen sequence numbers.

The economy is striking. FIR says “refresh the prediction base.” NACK says “these positions in the sequence space are missing.” Both turn a receiver’s observation into an addressable request.

Both were optional. The RFC cautioned that negative acknowledgements could be harmful at sites with many participants and described direct decoder-to-coder transmission that worked only when no mixers or translators intervened. Its IVS example enabled the scheme only with a small number of receivers. The control surface therefore depended on topology, implementation support and scale.

A captured FIR proves that a receiver produced a refresh request. It does not prove the reverse path delivered it or that the coder emitted an intra frame. A captured NACK proves which packets the receiver believed absent. It does not prove retransmission was supported, that data returned before playout, or that the repaired picture reached a screen. Feedback coordinates are excellent evidence of diagnosis and weak evidence of outcome unless the rest of the loop is observed.

The standard stopped at the right layer

Heng Lu's minimum-specification principle clarifies the achievement. RFC 2032 standardized the shared facts needed for interoperable packetization: legal cut points, restart context, timing, frame closure and optional feedback syntax. It did not centralize buffer policy, refresh strategy, acceptable delay or the operator's definition of an adequate picture.

Running-code primacy supplies the audit test. A published field layout is one fact; an encoder setting the fields correctly is another; a network delivering both directions is a third; a decoder displaying a repaired frame in time is a fourth. Replacing one layer with the vocabulary of another produces a confident but false conclusion.

That is why RFC 2032 remains useful as an evidence lesson even though RFC Editor now marks it obsolete through RFC 4587. The lasting design is not a promise of seamless video. It is a disciplined reduction of the area that one loss can make unintelligible, plus a way to say where repair might begin. The picture still needs independent proof.

Sources