Low-complexity error-resilient coder using a block-based standard
First Claim
1. A method for transferring video data, the method comprising the steps:
- receiving video data for a picture;
subdividing the video data into blocks;
transforming the blocks of video data into blocks of residual data;
quantizing the blocks of residual data;
comparing the video data for the picture with stored video data for a previous picture in order to generate motion vector data;
organizing the blocks of residual data into a plurality of macroblocks (MBs);
organizing the plurality of MBs into groups of blocks (GOBs), wherein each GOB corresponds to a slice of the picture and the motion vector data in each GOB is independent of any other GOBs;
constructing an erasure slice comprised of another GOB, wherein the GOB of the erasure slice is further comprised of another plurality of MBs, wherein each one of the plurality of MBs of the erasure slice corresponds to one of the plurality of MBs in each of a plurality of GOB of the picture and wherein the erasure slice is constructed with data in at least some of the plurality of MBs combined from corresponding MBs in the GOBs of the picture;
encoding each one of the GOBs of the picture data and the erasure slice into a predetermined standard compliant packet; and
transmitting each standard compliant packet.
3 Assignments
0 Petitions
Accused Products
Abstract
Disclosed is an error-correction method and apparatus for transmission of block-based coding standard compliant video data, such as H.263, MPEG or JPEG. A picture is divided into slices wherein each slice of the picture is coded into a group of blocks (GOB) in which each macroblock in the GOB is encoded only with reference to other macroblocks in the same GOB. An erasure slice, which is also a GOB, is then formed wherein the data for each macroblock of the erasure slice is determined by summing a corresponding macroblock in each of the GOBs containing slices of the picture. The GOBs containing slices of the picture are then transmitted, along with the GOB containing the erasure slice, as block-based coding standard compliant data packets. The result is that if any one of the GOBs containing slices of the picture is lost, then the lost GOB can be reconstructed from the remaining GOBs and the erasure slice.
-
Citations
33 Claims
-
1. A method for transferring video data, the method comprising the steps:
-
receiving video data for a picture; subdividing the video data into blocks; transforming the blocks of video data into blocks of residual data; quantizing the blocks of residual data; comparing the video data for the picture with stored video data for a previous picture in order to generate motion vector data; organizing the blocks of residual data into a plurality of macroblocks (MBs); organizing the plurality of MBs into groups of blocks (GOBs), wherein each GOB corresponds to a slice of the picture and the motion vector data in each GOB is independent of any other GOBs; constructing an erasure slice comprised of another GOB, wherein the GOB of the erasure slice is further comprised of another plurality of MBs, wherein each one of the plurality of MBs of the erasure slice corresponds to one of the plurality of MBs in each of a plurality of GOB of the picture and wherein the erasure slice is constructed with data in at least some of the plurality of MBs combined from corresponding MBs in the GOBs of the picture; encoding each one of the GOBs of the picture data and the erasure slice into a predetermined standard compliant packet; and transmitting each standard compliant packet. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17)
-
-
18. A block-based coding standard compliant encoder comprising:
-
a subtractor having first and second input terminals and an output terminal, the subtractor being configured to subtract a signal received at the second input terminal from a signal received at the first input terminal in order to produce a difference signal at the output terminal, wherein the first input terminal of the subtractor is configured to receive video data corresponding to a picture; a transformer having input and output terminals, the input terminal of the transformer being coupled to the output terminal of the subtractor, wherein the transformer is configured to transform the difference signal received at the input terminal of the transformer into residual data output at the output terminal of the transformer; a quantizer having input and output terminals and a control terminal, the input terminal of the quantizer being coupled to the output terminal of the transformer, wherein the quantizer is configured to quantize the residual data received from the transformer responsive to a QUANT signal received at the control terminal of the quantizer to produce quantized data output at the output terminal of the quantizer; a variable length encoder and multiplexor having an input terminal coupled to the output terminal of the quantizer, an output terminal, an INTER/INTRA terminal configured to receive an INTER/INTRA signal, a PTYPE terminal configured to receive a PTYPE signal, a QUANT terminal configured to receive the QUANT signal, and a motion vector terminal configured to receive motion vector data, wherein the input terminal of the variable length encoder and multiplexor is coupled to the output terminal of the quantizer, and wherein the variable length encoder and multiplexor is configured to encode the quantized data and form block-based coding standard compliant data packets which include the INTER/INTRA, PTYPE and QUANT signals and the motion vector data and wherein each group of blocks of the block-based coding standard compliant data packets corresponds to a slice of picture data; a buffer configured to receive and store the block-based coding standard compliant data packets formed by the variable length encoder and multiplexor; and an erasure slice constructor configured to receive the block-based coding standard compliant data packets stored in the buffer and, responsive thereto, generate an erasure slice corresponding to the picture from which one of the block-based coding standard compliant data packets can be reconstructed from the remaining block-based coding standard compliant data packets for the picture and the erasure slice for the picture. - View Dependent Claims (19, 20, 21, 22, 23, 24, 25, 26, 27)
-
-
28. A block-based coding standard decoder comprising:
-
an input buffer configured to receive and store block-based coding standard compliant data packets corresponding to a picture along with an erasure slice corresponding to the picture; a variable length decoder and demultiplexor configured to receive and decode the block-based coding standard compliant data packets, the variable length decoder and demultiplexor being configured to output quantized data decoded from the block-based coding standard compliant data packets at an output terminal and extract an INTER/INTRA signal, a PTYPE signal, a QUANT signal and motion vector data from the block-based coding standard compliant data packets which are output at an INTER/INTRA terminal, a PTYPE terminal, a QUANT terminal and a motion vector terminal, respectively, and where the variable length decoder and demultiplexor is further configured to extract and output group of blocks header information from the block-based coding standard data packets at an header information terminal; an inverse quantizer having input and output terminals and a control terminal, the input terminal of the quantizer being coupled to the output terminal of the variable length decoder and demultiplexor, wherein the inverse quantizer is configured to inverse quantize the quantized data received from the variable length decoder and demultiplexor responsive to the QUANT signal received at the control terminal of the inverse quantizer to produce residual data output at the output terminal of the inverse quantizer; an inverse transformer having input and output terminals, the input terminal of the inverse transformer being coupled to the output terminal of the inverse quantizer, wherein the inverse transformer is configured to inverse transform the residual data received at the input terminal of the inverse transformer into a difference signal at the output terminal of the inverse transformer; a motion compensation predictor configured to receive the INTER/INTRA and PTYPE signals and the motion vector data and, responsive thereto, generate a reference signal; an adder configured to receive the reference signal and the difference signal and, responsive thereto, generate a video signal corresponding to the picture; and an erasure slice reconstructor configured to receive the block-based coding standard data packets and the erasure slice stored in the buffer, where the erasure slice reconstructor is further configured to receive the group of blocks header information and, responsive thereto, determine whether there is a lost block-based coding standard data packet and reconstruct the lost packet from the remaining block-based coding standard compliant data packets for the picture and the erasure slice for the picture. - View Dependent Claims (29, 30, 31, 32, 33)
-
Specification