Method and device for concealment and containment of errors in a macroblock-based video codec
First Claim
1. A method for concealment of errors occurring in a bitstream using control information for a macroblock-based video codec, where at least one previous video frame of macroblocks is stored, comprising the steps of:
- A) counting bits, of a received transmission, between a plurality of bits having control information to determine whether a current frame or a portion of a current frame has been corrupted;
B) wherein if at least the current frame has been corrupted and an immediately previous frame has been buffered,the following steps are performed;
B1) determining a resynchronization bit position in the bitstream;
B2) displaying the immediately previous video frame of macroblocks at the resynchronization bit position for a predetermined number of frames;
B3) returning to step A;
C) wherein if a portion of a current frame has been corrupted, regenerating a plurality of corrupted macroblocks of the frame by the steps of;
C1) determining a pool of motion vectors for a first macroblock of the plurality of corrupted macroblocks;
C2) determining, from the pool, a motion vector that provides the macroblock from the immediately previous stored frame having a highest correlation of intensity values along borders of the macroblock in the current frame, providing a regenerated macroblock;
C3) repeating steps C1-C2 for preselected corrupted macroblocks to provide a plurality of regenerated macroblocks;
C4) displaying the regenerated macroblocks in the current frame and returning to step A.
2 Assignments
0 Petitions
Accused Products
Abstract
The present invention provides a method (100, 200) and a device (300, 400, 600) for containing and concealing errors which occur in a transmitted video bitstream. Utilizing a plurality of predetermined scanning patterns, particular macroblocks are chosen per frame to have their intensity information encoded and transmitted. This approach provides an efficient method to limit the degradation to the visual quality of a video sequence decoded from a bitstream corrupted by an extended error burst. Concealment of areas within a video sequence that are affected by short error bursts and/or random errors is achieved by estimating the corresponding lost macroblock information from the remaining uncorrupted macroblocks. That is, for each lost macroblock a prediction of the intensity information is generated through the use of a motion vector from a neighboring uncorrupted macroblock.
-
Citations
15 Claims
-
1. A method for concealment of errors occurring in a bitstream using control information for a macroblock-based video codec, where at least one previous video frame of macroblocks is stored, comprising the steps of:
-
A) counting bits, of a received transmission, between a plurality of bits having control information to determine whether a current frame or a portion of a current frame has been corrupted; B) wherein if at least the current frame has been corrupted and an immediately previous frame has been buffered, the following steps are performed; B1) determining a resynchronization bit position in the bitstream; B2) displaying the immediately previous video frame of macroblocks at the resynchronization bit position for a predetermined number of frames; B3) returning to step A; C) wherein if a portion of a current frame has been corrupted, regenerating a plurality of corrupted macroblocks of the frame by the steps of; C1) determining a pool of motion vectors for a first macroblock of the plurality of corrupted macroblocks; C2) determining, from the pool, a motion vector that provides the macroblock from the immediately previous stored frame having a highest correlation of intensity values along borders of the macroblock in the current frame, providing a regenerated macroblock; C3) repeating steps C1-C2 for preselected corrupted macroblocks to provide a plurality of regenerated macroblocks; C4) displaying the regenerated macroblocks in the current frame and returning to step A. - View Dependent Claims (2, 4, 5, 6)
-
-
3. The method of claim I wherein the highest correlation of intensity values is a mean squared error of intensity values based on at least one border of the current macroblock.
-
7. A device for containment of errors occurring in a bitstream of a macroblock-based video input, wherein the device comprises at least one of an encoder and a decoder,
wherein the encoder includes a video compressor comprising: -
A) a macroblock containment scan controller, coupled to receive a temporal reference and a macroblock identification number, for determining I- macroblocks to be intensity encoded; B) a video encoder containment unit, coupled to the macroblock containment scan controller, to receive a video sequence from a frame memory and to receive a motion vector from a motion vector memory, for providing an adaptively encoded macroblock using one of a temporal predictive encoding scheme and an intra-encoding scheme in accordance with whether the macroblocks are identified as prediction macroblocks or I-macroblocks; and C) an error control unit, coupled to the video encoder containment unit, for adding error control information to the adaptively encoded macroblock; and wherein the decoder includes a video decompressor comprising; D) an error detector, coupled to a noisy channel, for utilizing information in a received bitstream for determining when errors are present in the received bitstream and for sending an activation signal to an error concealment unit when errors are present; E) a video decoder, coupled to the error concealment unit and coupled to receive a temporal reference from the error detector, for, if a short burst is detected, providing motion vectors from neighboring error-free macroblocks to the error concealment unit and intensity information from a previous frame, and for, if an extended burst is detected, waiting to update an output buffer until I-macroblock scans have updated an entire video frame; F) the error concealment unit, coupled to the error detector and the video decoder, for, in response to the activation signal, replacing corrupted information in the received bitstream with known information in accordance with a predetermined scheme; and G) the output frame memory, coupled to the video decoder, for updating an output buffer in accordance with the predetermined scheme used by the error concealment unit. - View Dependent Claims (8, 9)
-
-
10. A device for concealment of errors occurring in a bitstream using control information for a macroblock-based video codec, where at least one previous video frame of macroblocks is stored, wherein the device is directed by a computer program that is embodied in at least one of:
-
A) a memory; B) an application specific integrated circuit; C) digital signal processor; and D) a field programmable gate array, and the computer program includes steps of; E) counting bits, of a received transmission, between a plurality of bits having control information to determine whether a current frame or a portion of a current frame has been corrupted; F) wherein if at least the current frame has been corrupted and immediately previous frame is buffered, the following steps are performed; F1) determining a resynchronization bit position in the bitstream; F2) displaying the immediately previous video frame of macroblocks at the resynchronization bit position for a predetermined number of frames; F3) returning to step E; G) wherein if a portion of a current frame has been corrupted, regenerating a plurality of corrupted macroblocks of the frame by the steps of; G1) determining a pool of motion vectors for a first macroblock of the plurality of corrupted macroblocks; G2) determining, from the pool, a motion vector that provides the macroblock from the immediately previous stored frame having a highest correlation of intensity values along borders of the macroblock in the current frame, providing a regenerated macroblock; G3) repeating steps G1-G2 for preselected corrupted macroblocks to provide a plurality of regenerated macroblocks; G4) displaying the regenerated macroblocks in the current frame and returning to step E. - View Dependent Claims (11, 12, 13, 14, 15)
-
Specification