How does the VP8 decoder react when VP8-encoded frames' partitions data is corrupted?

41 views
Skip to first unread message

dmb...@gmail.com

unread,
Mar 6, 2019, 2:24:22 PM3/6/19
to Codec Developers
Hello,

Recently, I've been delving into the internals of WebRTC’s video calls, in particular the VP8 media decoding pipeline. I have already read the VP8 codec specification (RFC 6386) and WebM’s VP8 Data Format and Decoding Guide. I do understand that VP8-encoded frames exhibit three main sections: Uncompressed Frame Header, Partition I (including information for the entire frame and prediction information about each macroblock), and Partition II (which carries texture data). 

Upon performing some experimental tests, I have verified that data corruption occurring in different partitions of a frame produce disparate effects on the reconstructed video stream. For instance, a given frame can still be decoded even if all the DCT coefficients in Partition II are exchanged from their expected values (despite producing observable artefacts).


This fact has left me with a few questions regarding the decoding procedure in the event that data included in VP8-encoded frames is corrupted:
  1. To which extent can the data included inside Partition I be corrupted and still produce a valid decoding? 
  2. Is there some portion of data in Partition I that, despite its corruption, still leads to a decodable frame? (This question is based in the portion of Partition I which is known to include data about the encoded frame as a whole vs the portion containing per-macroblock data). 
Thank you for your help,

Best,
Diogo
Reply all
Reply to author
Forward
0 new messages