I wonder why mpeg decoders always produce artifacts (bad blocks) when decoding a stream with errors. Shouldn't there be a much better way to handle stream errors? What about discarding the block, there should only be a little glitch then instead of a completely bad block.
The other, more difficult option would seem to be to try to find a block that would match the crc and replace the bad block with it.
At least the current situation seems to be less that optimal.
It seems a similar idea has already been patented: "(WO/2004/028160) DETECTION AND REPAIR OF MPEG-2 CHROMA UPCONVERSION ARTIFACTS"