IP Library › Granted Patent US 8,311,127
Granted Patent B2
US 8,311,127 · App. 11/067,853 · Granted Nov 13, 2012

Method and apparatus to check for wrongly decoded macroblocks in streaming multimedia applications

Assignee: NVIDIA Corporation
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,311,127
App. No.
11/067,853
Granted
Nov 13, 2012
Kind
B2
Abstract

A method to detect (identify) wrongly decoded data (I type macro-blocks), which can be subsequently concealed by error concealment techniques, thereby improving the visual quality of a decoded stream, is provided. Additionally, a method is provided. In use, a set of macro-block data is selected for validation. Additionally, a set of suspicious macro blocks is selected from the set of macro-block data based on location information for each suspicious macro block.

Claims (31)

1. A method, comprising:

decoding macro-block data for detection of wrongly decoded macro-blocks within the macro-block data, utilizing a video decoding system; and

determining a plurality of macro-blocks from the macro-block data as suspicious of being wrongly decoded but for which it is unknown whether the macro-blocks are wrongly decoded by:

traversing the macro-block data in reverse zig zag order,

upon traversal of a macro-block of the macro-block data, evaluating the traversed macro-block relative to a location of the traversed macro-block with respect to its packet boundary and a location of another macro-block determined to be suspicious of being wrongly decoded, and

identifying the traversed macro-block as suspicious, based on the evaluation;

wherein the determining the plurality of macro-blocks from the macro-block data as suspicious includes keeping track of a count of consecutive macro-blocks being identified as suspicious and terminating the determining when the count reaches three.

2. The method as claimed in claim 1 , further comprising detecting at least one of the plurality of macro-blocks determined as suspicious of being wrongly decoded as being a macro-block with false coding.

3. The method as claimed in claim 2 , further comprising concealing the detected at least one macro-block and generating at least one error concealed video frame.

4. The method as claimed in claim 2 , wherein the detecting includes:

evaluating a threshold parameter based on a quantization value of a selected macro-block from the plurality of macro-blocks determined as suspicious of being wrongly decoded;

searching neighboring valid macro-blocks in a vertical adjacent location followed by a horizontal adjacent location;

finding a continuity measure by taking into consideration at least two macro-block boundaries by taking a sum of an absolute difference in pixel data for the selected suspicious macro-block and the adjacent macro-blocks;

comparing respective pixel data on the boundaries; and

deciding to mark the selected suspicious macro-block as LOST by comparing the continuity measure with a dynamic threshold.

5. The method as claimed in claim 4 , in which the threshold parameter varies dynamically based on the quantization value of the selected suspicious macro-block.

6. The method as claimed in claim 1 , wherein the traversed macro-block is identified as suspicious in response to a result of the evaluation indicating that the traversed macro-block is at an end of a packet in a current frame.

7. The method as claimed in claim 1 , wherein the traversed macro-block is identified as suspicious in response to a result of the evaluation indicating that the traversed macro-block is adjacent to another macro-block identified as suspicious of being wrongly decoded.

8. The method as claimed in claim 1 , wherein the traversed macro-block is identified as suspicious in response to a result of the evaluation indicating that the macro-block precedes a LOST macro-block within a fixed number of macro-blocks of the macro-block data.

9. The method as claimed in claim 1 , further including transmitting a list of the plurality of macro-blocks determined as suspicious of being wrongly decoded, marking at least one of the plurality of macro-blocks in the list as LOST based on a comparison of a continuity measure with a dynamic threshold, and transmitting the list with the at least one marked LOST macro-blocks for performing error concealment on the at least one marked LOST macro-blocks in the list.

10. An apparatus, comprising:

an error selection and detection block coupled to a decoder for:

receiving decoded macro-block data for detection of wrongly decoded macro-blocks within the macro-block data; and

determining a plurality of macro-blocks from the macro-block data as suspicious of being wrongly decoded but for which it is unknown whether the macro-blocks in the selected set are wrongly decoded by:

traversing the macro-block data in reverse zig zag order,

upon traversal of a macro-block of the macro-block data, evaluating the traversed macro-block relative to a location of the traversed macro-block with respect to its packet boundary and a location of another macro-block determined to be suspicious of being wrongly decoded, and

identifying the traversed macro-block as suspicious, based on the evaluation;

wherein the determining the plurality of macro-blocks from the macro-block data as suspicious includes keeping track of a count of consecutive macro-blocks being identified as suspicious and terminating the determining when the count reaches three.

11. The apparatus as claimed in claim 10 , wherein the error selection and detection block further generates a refined set of suspicious macro-blocks.

12. The apparatus as claimed in claim 10 , wherein the error selection and detection block further evaluates threshold parameters of the plurality of macro-blocks determined as suspicious of being wrongly decoded based on a quantization value.

13. The apparatus as claimed in claim 10 , wherein the error selection and detection block further searches neighboring valid macro-block data, finds a continuity measure by taking a difference in pixel data for a selected macro-block from the plurality of macro-blocks determined as suspicious and adjacent macro-blocks, and decides that the selected suspicious macro-block is LOST by comparing the continuity measure with a dynamic threshold.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 31, 2008
From: KARANDIKAR, PRAVIN GANGADHAR; NATH, SHANTANU; PORE, VINAYAK JAYARAM; PANVALKAR, JAYA SHRIKRISHNA; CHAURASIA, PARAG
To: NVIDIA CORPORATION
Reel/Frame 021325/0443 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 28, 2005
From: KARANDIKAR, PRAVIN GANGADHAR; NATH, SHANTANU; PORE, VINAYAK JAYARAM; PANVALKAR, JAYA SHRIKRISHNA; CHAURASIA, PARAG
To: PACE SOFT SILICON PVT. LTD.
Reel/Frame 016342/0159 →
Continuity (2)
Provisional Application 60550174 · Mar 4, 2004
Related Publication 20050195903A1 · Sep 8, 2005