RTP Control Protocol (RTCP) Extended Report (XR) Block for Loss Concealment Metrics for Video Applications
Extracted elements (24)
Frame-freeze is differentiated from other concealment methods (interframe extrapolation, interpolation, error-resilient encoding) because frame-freeze repairs video based on whole frames whereas the others repair at finer granularity (macroblocks or bitstreams), causing measurement metrics to differ. This difference necessitates separate report blocks and a distinct V flag value.
The Mean Frame-Freeze Duration field is made optional (present only when V=10) because it is only meaningful for frame-freeze concealment and would increase block size unnecessarily for other concealment method types.
This block complements the audio loss concealment metrics defined in RFC 7294, extending RTCP XR reporting to the video domain. It relies on the Measurement Information Block from RFC 6776 for timing context and MUST be co-located in the same compound RTCP packet.
Block Length MUST be set to 5 when V=10 (frame-freeze) and set to 4 when V=11 (other concealment). The block MUST be discarded if block length is set to a different value.
For MCFP calculation, when Video Loss Concealment Method Type=10 (frame-freeze), each frame covered in the period of frame freeze is considered totally concealed; a value of 0xFF MUST be assigned.
For MIFP calculation, if a video frame is totally lost, a value of 0xFF SHOULD be used for that frame. For MCFP, a value of 0xFF SHOULD be used for a lost frame that is totally concealed, and 0 for frames with no concealed macroblocks.
If frame-freeze (V=10) and another concealment method (V=11) are used together for a media stream, two report blocks SHOULD be compounded together to report complete concealment information.
Reserved bits (RSV and Reserved fields) MUST be set to zero by senders and ignored by receivers, per Section 4.2 of RFC 6709.
The Interval Metric Flag value I=01 (Sampled Value) MUST NOT be used for this block type. I=10 indicates interval duration, I=11 indicates cumulative duration.
The Video Loss Concealment Report Block MUST be sent in conjunction with the Measurement Information Block (RFC 6776). If the Measurement Information Block is not received in the same compound RTCP packet, this metric block MUST be discarded at the receiving side.
Four video loss concealment method types are defined: (a) frame freeze — previously displayed frame held for duration of loss; (b) interframe extrapolation — reuse pixels from previous frame(s); (c) interpolation — use undamaged pixels in current frame to estimate missing blocks; (d) error-resilient encoding — sender embeds redundant data (including FEC).
SDP signaling uses the 'rtcp-xr' attribute extended with xr-format value 'vlc' (via xr-vlc-block = "vlc") to signal use of the Video Loss Concealment Report Block. Offer/Answer usage follows RFC 3611 Section 5.2 for unilateral parameters.
The Video Loss Concealment Method Type (V) field (2 bits) distinguishes frame-freeze (V=10) from other loss concealment methods (V=11). Values V=01 and V=00 are reserved. This differentiation is needed because frame-freeze operates at the frame level while other methods operate at finer granularity (macroblocks, bitstreams).
The Video Loss Concealment Report Block (BT=34) is a new RTCP XR block for reporting video loss concealment metrics. It contains fields for Impaired Duration, Concealed Duration, optional Mean Frame-Freeze Duration, MIFP, MCFP, FFSC, and flags for interval type (I) and concealment method type (V).
A new SDP parameter 'video-loss-concealment' is registered in the 'RTP Control Protocol Extended Reports (RTCP XR) Session Description Protocol (SDP) Parameters Registry'.
Block type value 34 is assigned to the Video Loss Concealment Metric Report Block in the IANA 'RTP Control Protocol Extended Reports (RTCP XR) Block Type Registry'.
This block introduces no new security considerations beyond RFC 3611. Per-packet statistics are not provided, so the confidentiality risk described in RFC 3611 Section 7 paragraph 3 does not apply. Implementers SHOULD apply encryption and authentication (e.g., SAVPF per RFC 5124) where security is a concern, as attackers could inject incorrect concealment reports to distort QoE estimation.
Concealed Duration is a 32-bit field expressing total duration of concealed damaged video in RTP timestamp units. Reserved values: 0xFFFFFFFE indicates out-of-range, 0xFFFFFFFF indicates measurement unavailable.
FFSC (Fraction of Frames Subject to Concealment) is an 8-bit fixed-point field representing the fraction of frames to which concealment was applied. Value 0 means no concealed frames; 0xFF means all frames in the interval were concealed.
Impaired Duration is a 32-bit field expressing total video impaired duration in RTP timestamp units. Reserved values: 0xFFFFFFFE indicates out-of-range, 0xFFFFFFFF indicates measurement unavailable.
MCFP (Mean Concealed Frame Proportion) is an 8-bit fixed-point field representing mean proportion of each frame to which loss concealment was applied. For V=10 (frame-freeze), each frame in a freeze period MUST be assigned 0xFF.
Mean Frame-Freeze Duration is an optional 32-bit field (present only when V=10) expressing the mean duration of frame-freeze events in RTP timestamp units, calculated as total freeze duration divided by number of events.
MIFP (Mean Impaired Frame Proportion) is an 8-bit fixed-point field with binary point at the left edge, representing mean proportion of each frame impaired before concealment. A totally lost frame contributes 0xFF.
The block header encodes: BT (8 bits, value=34), Interval Metric Flag I (2 bits), Video Loss Concealment Method Type V (2 bits), RSV (4 bits reserved), and Block Length (16 bits). The Block Length MUST be set to 5 when V=10 (frame-freeze) and 4 when V=11 (other concealment).