Video Error Detection Using CRC Parity Codes on Macroblock Groups
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current video error detection methods are computationally expensive and prone to false positives and negatives, especially when using Flexible Macroblock Ordering and Variable Length Coding, which complicates identifying bit errors in non-byte aligned macroblocks and can result in discarding entire slices due to transmission errors.
Innovation Solution
A method using Cyclic Redundancy Check (CRC) parity codes calculated over groups of macroblocks before transmission, with comparisons made upon receipt to detect errors and enable targeted error concealment, avoiding the need to discard entire slices by associating CRC codes with specific macroblocks and calculating them in sets within a slice.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If Variable Length Coding (VLC) is used to enhance compression efficiency, then compression efficiency is improved, but error resiliency deteriorates because error propagation becomes harder to detect and manage
Solution Approach 1:
The patent divides the video stream into slices, where each slice contains a specific number of macroblocks. This segmentation allows error detection to be confined to individual slices rather than propagating throughout the entire stream. The slice-based structure enables targeted error recovery mechanisms that can process only affected portions without impacting the rest of the video data.
Solution Approach 2:
The patent incorporates resynchronization markers in the slice headers before transmission. These markers are pre-placed at known positions to enable the decoder to identify and recover from bit errors. The markers serve as preliminary error recovery points that are ready to be activated when errors occur, allowing the system to resume proper decoding without requiring complex error analysis.
2Adaptability or versatility
If Flexible Macroblock Ordering is used to improve coding flexibility, then coding flexibility is improved, but error detection difficulty increases because macroblocks are not adjacent in display order
Solution Approach 1:
The patent groups macroblocks into slices with specific error detection mechanisms. Even though macroblocks may be reordered using Flexible Macroblock Ordering, the slice structure maintains logical groupings that can be independently monitored for errors. This segmentation allows the system to track error conditions within each slice regardless of the spatial arrangement of individual macroblocks.
3Ease of operation
If byte alignment is enforced for slice headers to simplify processing, then processing simplicity is improved, but error detection precision deteriorates because macroblock boundaries become misaligned
Solution Approach 1:
The patent introduces resynchronization markers as intermediary elements between the byte-aligned slice headers and the actual macroblock data. These markers act as reference points that bridge the alignment discrepancy, allowing the decoder to accurately identify macroblock boundaries even when they are not byte-aligned. The markers provide a mediating mechanism that maintains both processing simplicity and error detection precision.
4Ease of manufacture
If entire slices are discarded upon detecting transmission errors, then error handling simplicity is improved, but information loss increases because non-corrupt macroblocks are also discarded
Solution Approach 1:
The patent implements slice-based error detection that can identify and isolate specific corrupted macroblocks within a slice. This segmentation allows the system to distinguish between corrupted and uncorrupted data, enabling selective error concealment only for affected macroblocks rather than discarding the entire slice. The slice structure provides the granularity needed for precise error management.
Solution Approach 2:
The patent applies different handling strategies to different parts of the video stream based on their error status. Corrupted macroblocks within a slice are subjected to error concealment, while uncorrupted macroblocks are processed normally. This local quality approach ensures that error recovery operations are applied only where necessary, preserving the quality of unaffected regions and minimizing overall information loss.
Data Source
AI summary
Detection of errors in a video stream occurs by calculating an error detection code, such as a Cyclic Redundancy Check (CRC) code over a group of not more than N macroblocks in a slice of the stream prior and after transmission, where N is an integer greater than zero but less than the total number of macroblocks in the slice. A comparison of the error detection codes reveals whether any errors exist in the group of macroblocks. If the group has no errors, normal decoding occurs. If the macroblock group has an error, then the macroblock group, and the remaining blocks in the slice undergo error concealment.

