Video Error Detection Using CRC Parity Codes on Macroblock Groups

Resolve Bottlenecks,
Find Innovative Solutions
Generate 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

VSEngineering 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

Engineering Contradiction:
Improvecompression efficiencyVSAvoiderror resiliency
Core Design Contradiction:
ProductivityVSReliability

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.

Inventive Principle:
Principle #1Segmentation

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.

Inventive Principle:
Principle #10Preliminary action

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

Engineering Contradiction:
Improvecoding flexibilityVSAvoiderror detection difficulty
Core Design Contradiction:
Adaptability or versatilityVSDifficulty of detecting and measuring

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.

Inventive Principle:
Principle #1Segmentation

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

Engineering Contradiction:
Improveprocessing simplicityVSAvoiderror detection precision
Core Design Contradiction:
Ease of operationVSMeasurement precision

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.

Inventive Principle:
Principle #24Intermediary (Mediator)

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

Engineering Contradiction:
Improveerror handling simplicityVSAvoidinformation loss
Core Design Contradiction:
Ease of manufactureVSLoss of information

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.

Inventive Principle:
Principle #1Segmentation

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.

Inventive Principle:
Principle #3Local quality

Data Source

PatentUS9204167B2Video error detection technique using a CRC parity code
Publication Date: 2015.12.01 INTERDIGITAL MADISON PATENT HLDG
  • US9204167B2 patent drawing
  • US9204167B2 patent drawing

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.