Claims
- 1. A method for encoding a sequence of video frames, said method comprising:
receiving the sequence of video frames; for each video frame from the sequence of video frames:
dividing the video frame into a plurality of macroblocks; encoding each of the plurality of macroblocks using at least one of an intraframe mode (I-mode) technique and a prediction mode (P-mode) technique, wherein the P-mode technique generates at least n+1 prediction error signals for each of the plurality of macroblocks, where n represents a number of channels; and providing both the I-mode technique encoded data and the at least n+1 P-mode technique prediction error signals to each of the n channels, wherein each of the n channels are used to transmit the encoded plurality of macroblocks.
- 2. The method of claim 1, wherein encoding each of the plurality of macroblocks using at least one of an intraframe mode (I-mode) technique and a prediction mode (P-mode) technique comprises:
selecting either the I-mode technique or the P-mode technique based on which technique uses fewer bits to produce the same image reconstruction quality; and encoding each of the plurality of macroblocks using either the I-mode technique or the P-mode technique.
- 3. The method of claim 1, wherein encoding each of the plurality of macroblocks using at least one of an intraframe mode (I-mode) technique and a prediction mode (P-mode) technique comprises:
selecting either the I-mode technique or the P-mode technique based on a target bit rate, a coding efficiency and a redundancy rate, wherein the target bit rate and coding efficiency are defined by a predetermined number of bits that are to be used for each frame of video, and the redundancy rate is determined from a predefined redundancy rate; and encoding each of the plurality of macroblocks using either the I-mode technique or the P-mode technique.
- 4. The method of claim 1, wherein, for each macroblock to be encoded using the I-mode technique, the I-mode technique comprises:
dividing the macroblock into a plurality of eight-by-eight blocks; applying an eight-by-eight discrete cosine transform (DCT) to produce a set of DCT coefficients for each of the plurality of eight-by-eight blocks; applying a four-variable pairing transform to all of said sets of DCT coefficients for each of the plurality of eight-by-eight blocks to produce a plurality of coefficients; decomposing said plurality of coefficients into two sets of coefficients; encoding each of said two sets of coefficients to form two descriptions; and outputting said two descriptions over separate channels.
- 5. The method of claim 1, wherein, for each macroblock to be encoded using the P-mode technique, the P-mode technique comprises:
determining three best prediction error macroblocks with corresponding motion vectors and prediction errors from the macroblock; determining whether to code the prediction error macroblocks using the I-mode technique or the P-mode technique; if using the P-mode technique, then:
dividing each of said three prediction error macroblocks into a plurality of eight-by-eight blocks; applying an eight-by-eight discrete cosine transform (DCT) to each of the plurality of eight-by-eight blocks to produce three sets of DCT coefficients; applying a four-variable pairing transform to each of said three sets of DCT coefficients to produce a plurality of coefficients; decomposing said plurality of coefficients into two sets of coefficients; encoding each of said two sets of coefficients to form two descriptions; and outputting said two descriptions over separate channels.
- 6. The method of claim 5, wherein determining three best prediction macroblocks with corresponding motion vectors and prediction errors from the macroblock comprises:
using a reconstructed previous frame from both descriptions.
- 7. The method of claim 5, wherein determining three best prediction macroblocks with corresponding motion vectors and prediction errors from the macroblock comprises:
using a reconstructed previous frame from both descriptions; and at least one selected from the group of:
a reconstructed previous frame from said first description; and a reconstructed previous frame from said second description.
- 8. A computer-readable medium having stored therein a computer program for encoding a sequence of video frames, said computer program comprising:
receiving the sequence of video frames; for each video frame from the sequence of video frames:
dividing the video frame into a plurality of macroblocks; encoding each of the plurality of macroblocks using at least one of an intraframe mode (I-mode) technique and a prediction mode (P-mode) technique, wherein the P-mode technique generates at least n+1 prediction error signals for each of the plurality of macroblocks, where n represents a number of channels; and providing both the I-mode technique encoded data and the at least n+1 P-mode technique prediction error signals to each of the n channels, wherein each of the n channels are used to transmit the encoded plurality of macroblocks.
- 9. The computer-readable medium of claim 8, wherein encoding each of the plurality of macroblocks using at least one of an intraframe mode (I-mode) technique and a prediction mode (P-mode) technique comprises:
selecting either the I-mode technique or the P-mode technique based on which technique uses fewer bits to produce the same image reconstruction quality; and encoding each of the plurality of macroblocks using either the I-mode technique or the P-mode technique.
- 10. The computer-readable medium of claim 8, wherein encoding each of the plurality of macroblocks using at least one of an intraframe mode (I-mode) technique and a prediction mode (P-mode) technique comprises:
selecting either the I-mode technique or the P-mode technique based on a target bit rate, a coding efficiency and a redundancy rate, wherein the target bit rate and coding efficiency are defined by a predetermined number of bits that are to be used for each frame of video, and the redundancy rate is determined from a predefined redundancy rate; and encoding each of the plurality of macroblocks using either the I-mode technique or the P-mode technique.
- 11. The computer-readable medium of claim 8, wherein, for each macroblock to be encoded using the I-mode technique, the I-mode technique comprises:
dividing the macroblock into a plurality of eight-by-eight blocks; applying an eight-by-eight discrete cosine transform (DCT) to produce a set of DCT coefficients for each of the plurality of eight-by-eight blocks; applying a four-variable pairing transform to all of said sets of DCT coefficients for each of the plurality of eight-by-eight blocks to produce a plurality of coefficients; decomposing said plurality of coefficients into two sets of coefficients; encoding each of said two sets of coefficients to form two descriptions; and outputting said two descriptions over separate channels.
- 12. The computer-readable medium of claim 8, wherein, for each macroblock to be encoded using the P-mode technique, the P-mode technique comprises:
determining three best prediction error macroblocks with corresponding motion vectors and prediction errors from the macroblock; determining whether to code the prediction error macroblocks using the I-mode technique or the P-mode technique; if using the P-mode technique, then:
dividing each of said three prediction error macroblocks into a plurality of eight-by-eight blocks; applying an eight-by-eight discrete cosine transform (DCT) to each of the plurality of eight-by-eight blocks to produce three sets of DCT coefficients; applying a four-variable pairing transform to each of said three sets of DCT coefficients to produce a plurality of coefficients; decomposing said plurality of coefficients into two sets of coefficients; encoding each of said two sets of coefficients to form two descriptions; and outputting said two descriptions over separate channels.
- 13. The method of claim 12, wherein determining three best prediction macroblocks with corresponding motion vectors and prediction errors from the macroblock comprises:
using a reconstructed previous frame from both descriptions.
- 14. The method of claim 12, wherein determining three best prediction macroblocks with corresponding motion vectors and prediction errors from the macroblock comprises:
using a reconstructed previous frame from both descriptions; and at least one selected from the group of:
a reconstructed previous frame from said first description; and a reconstructed previous frame from said second description.
- 15. An apparatus for encoding a sequence of video frames, comprising:
a mode selection component, said mode selection component outputs an input macroblock; an intraframe mode (I-mode) multiple description coding (MDC) component switchably connected to said mode selection component, said I-mode MDC outputs a first I-mode description and a second I-mode description; a prediction mode (P-mode) MDC component switchably connected to said mode selection component, said P-mode MDC outputs a first P-mode description and a second P-mode description; a first redundancy allocation component connected to said mode selection component, said I-mode MDC component and said P-mode MDC component, said first redundancy allocation component provides inputs for controlling the allocation of the macroblock between the I-mode MDC and the P-mode MDC; a rate control component connected to said mode selection, I-mode MDC, R-mode MDC and first redundancy allocation components, said rate control component provides inputs for controlling the number of bits used to represent the macroblock; and a plurality of frame buffers connected to said mode selection component and P-mode MDC components.
- 16. The apparatus of claim 15, wherein said plurality of frame buffers comprises:
a first frame buffer for storing reconstructed frames from said P-mode first and second descriptions connected to said MDMEC; a second frame buffer for storing reconstructed frames from said P-mode first description connected to said MDMEC; and a third frame buffer for storing reconstructed frames from said P-mode second description connected to said MDMEC.
- 17. The apparatus of claim 15, wherein said P-mode MDC component comprises:
a multiple description motion estimation and coding component (MDMEC), said MDMEC outputs a first description of motion information and a second description of motion information; a first frame buffer connected to said MDMEC; a second frame buffer connected to said MDMEC; a third frame buffer connected to said MDMEC; a first motion compensated predictor (MCP) connected to said MDMEC, said first frame buffer, said second frame buffer and said third frame buffer, said first MCP outputs a first predicted macroblock; a second MCP connected to said MDMEC and said second frame buffer, said second MCP outputs a second predicted macroblock; a third MCP connected to said MDMEC and said third frame buffer, said third MCP outputs a third predicted macroblock; a second redundancy allocation component connected to said MDMEC, said second redundancy allocation component provides inputs for controlling the allocation between motion and prediction error; and a multiple description coding of prediction error (MDCPE) component connected to said first MCP, said second MCP, said third MCP and said second redundancy allocation component, said MDCPE outputs a first prediction error and a second prediction error.
- 18. The apparatus of claim 17, wherein said first MCP generates said first predicted macroblock using the first and second descriptions of motion information, a reconstructed previous frame created from said P-mode first and second descriptions, a reconstructed previous frame created from said P-mode first description and a reconstructed previous frame created from said P-mode second description.
- 19. The apparatus of claim 17, wherein said second MCP generates said second predicted macroblock using said first description of motion information and a reconstructed previous frame created from said P-mode first description.
- 20. The apparatus of claim 17, wherein said third MCP generates said third predicted macroblock using said second description of motion information and a reconstructed previous frame from said P-mode second description.
- 21. The apparatus of claim 17, wherein said MDCPE comprises:
a MDCPE encoder unit for receiving a coding redundancy allocation, said input macroblock and said first, second and third predicted macroblocks, wherein said input macroblock and said first, second and third predicted macroblocks are encoded to output a first description of the prediction error for said first predicted macroblock, a second description of the prediction error for said first predicted macroblock, an enhancement stream for said second predicted macroblock and an enhancement stream for said third predicted macroblock; and a MDCPE decoder unit connected to said MDCPE encoder for receiving a decoding redundancy allocation, the first description of the prediction error for said first predicted macroblock, the second description of the prediction error for said first predicted macroblock, said first predicted macroblock, the enhancement stream for said second predicted macroblock, said second predicted macroblock, the enhancement stream for said third predicted macroblock and said third predicted macroblock.
- 22. The apparatus of claim 21, wherein said MDCPE decoder outputs a first recovered macroblock when both the first description of the prediction error for said first predicted macroblock and the second description of the prediction error for said first predicted macroblock are received, said MDCPE decoder outputs a second recovered macroblock when only the first description of the prediction error for said first predicted macroblock is received and said MDCPE decoder outputs a third recovered macroblock when only the second description of the prediction error for said first predicted macroblock is received.
- 23. The apparatus of claim 21, wherein said MDCPE encoder unit comprises:
a first adder, said first adder outputs a first prediction error; a second adder, said second adder outputs a second prediction error; a third adder, said third adder outputs a third prediction error; an error multiple description coding (EMDC) encoder component connected to said first adder, said EMDC encoder outputs a first coded description of prediction error and a second coded description of prediction error; a first encoder component connected to said second adder connected to said EMDC encoder, said first encoder outputs a first enhancement stream; and a second encoder component connected to said third adder and connected to said EMDC encoder, said second encoder outputs a second enhancement stream.
- 24. The apparatus of claim 23, wherein said MDCPE decoder unit comprises:
an EMDC decoder component, said EMDC decoder outputs a first reconstructed prediction error; a first decoder component connected to said EMDC decoder component, said first decoder outputs a second reconstructed prediction error; a second decoder component connected to said EMDC decoder component, said second decoder outputs a third reconstructed prediction error; a first adder connected to said EMDC decoder component, said first adder outputs a first reconstructed macroblock; a second adder connected to said first decoder component, said second adder outputs a second reconstructed macroblock; and a third adder connected to said second decoder component, said third adder outputs a third reconstructed macroblock.
- 25. The apparatus of claim 17, wherein said MDMEC comprises:
a motion estimation component, said motion estimation component outputs a plurality of even macroblock motion vectors and a plurality of odd macroblock motion vectors; a first motion encoder connected to said motion estimation component, said first motion encoder outputs a plurality of coded even macroblock motion vectors and a plurality of even macroblock reconstructed motions; a second motion encoder connected to said motion estimation component, said second motion encoder outputs a plurality of coded odd macroblock motion vectors and a plurality of odd macroblock reconstructed motions; a first motion interpolator connected to said first motion encoder, said first motion interpolator outputs a plurality of motions in odd macroblocks; a second motion interpolator connected to said second motion encoder, said second motion interpolator outputs a plurality of motions in even macroblocks; a first motion adder connected to said first motion interpolator and said motion estimation component, said first motion adder outputs a first interpolation error; a second motion adder connected to said second motion interpolator and said motion estimation component, said second motion adder outputs a second interpolation error; a third motion encoder connected to said first adder, said third motion encoder outputs an encoded first interpolation error; and a fourth motion encoder connected to said second adder, said fourth motion encoder outputs an encoded second interpolation error.
- 26. An apparatus for performing multiple description motion estimation and coding (MDMEC) of a sequence of video frames, said apparatus comprising:
a motion estimation component, said motion estimation component outputs a plurality of even macroblock motion vectors and a plurality of odd macroblock motion vectors; a first motion encoder connected to said motion estimation component, said first motion encoder outputs a plurality of coded even macroblock motion vectors and a plurality of even macroblock reconstructed motions; a second motion encoder connected to said motion estimation component, said second motion encoder outputs a plurality of coded odd macroblock motion vectors and a plurality of odd macroblock reconstructed motions; a first motion interpolator connected to said first motion encoder, said first motion interpolator outputs a plurality of motions in odd macroblocks; a second motion interpolator connected to said second motion encoder, said second motion interpolator outputs a plurality of motions in even macroblocks; a first motion adder connected to said first motion interpolator and connected to said motion estimation component, said first motion adder outputs a first interpolation error; a second motion adder connected to said second motion interpolator and connected to said motion estimation component, said second motion adder outputs a second interpolation error; a third motion encoder connected to said first adder, said third motion encoder outputs an encoded first interpolation error; and a fourth motion encoder connected to said second adder, said fourth motion encoder outputs an encoded second interpolation error.
- 27. An apparatus for performing multiple description coding of prediction error (MDCPE) of a sequence of video frames, said apparatus comprising:
a MDCPE encoder unit, said MDCPE encoder unit outputs a first description of the prediction error for a first predicted macroblock, a second description of the prediction error for a first predicted macroblock, an enhancement stream for a second predicted macroblock and an enhancement stream for a third predicted macroblock; and a MDCPE decoder unit connected to said MDCPE encoder, said MDCPE decoder unit outputs a first recovered macroblock when both the first description of the prediction error for said first predicted macroblock and the second description of the prediction error for said first predicted macroblock are received, said MDCPE decoder outputs a second recovered macroblock when only the first description of the prediction error for said first predicted macroblock is received and said MDCPE decoder outputs a third recovered macroblock when only the second description of the prediction error for said first predicted macroblock is received.
- 28. The apparatus of claim 27, wherein said MDCPE encoder unit comprises:
a first adder, said first adder outputs a first prediction error; a second adder, said second adder outputs a second prediction error; a third adder, said third adder outputs a third prediction error; an error multiple description coding (EMDC) encoder component connected to said first adder, said EMDC encoder component outputs a first coded description of prediction error and a second coded description of prediction error; a first encoder component connected to said second adder and connected to said EMDC encoder, said first encoder outputs a first enhancement stream; and a second encoder component connected to said third adder and to said EMDC encoder, said second encoder outputs a second enhancement stream.
- 29. The apparatus of claim 28, wherein said EMDC encoder component comprises:
a first adder, said first adder outputs a first predicted error; a discrete cosine transform (DCT) unit connected to said first adder, said DCT unit outputs a plurality of DCT coefficients; a pairing transform unit connected to said DCT unit, said pairing transform unit outputs a plurality of DCT coefficient pairs; a pair of first quantizer units connected to said pairing transform unit and a rate and redundancy allocation unit, each of said pair of first quantizer units outputs a plurality of quantized DCT coefficient pairs; a pairwise correlating transform (PCT) unit connected to said pair of first quantizer units and said rate and redundancy allocation unit, said PCT unit outputs a pair of PCT coefficients; a first run length coding unit connected to said PCT unit, said first run length coding unit outputs a first coded description of prediction error; and a second run length coding unit connected to said PCT unit, said second run length coding unit outputs a second coded description of prediction error.
- 30. The apparatus of claim 28, wherein said EMDC encoder component comprises:
a first adder, said first adder outputs a first predicted error; a discrete cosine transform (DCT) unit connected to said first adder, said DCT unit outputs a plurality of DCT coefficients; a pairing transform unit connected to said DCT unit, said pairing transform unit outputs a plurality of DCT coefficient pairs; a pair of first quantizer units connected to said pairing transform unit and a rate and redundancy allocation unit, each of said pair of first quantizer units outputs a plurality of quantized DCT coefficient pairs; a pairwise correlating transform (PCT) unit connected to said pair of first quantizer units and said rate and redundancy allocation unit, said PCT unit outputs a pair of PCT coefficients; a first run length coding unit connected to said PCT unit, said first run length coding unit outputs a first bitstream; and a second run length coding unit connected to said PCT unit, said second run length coding unit outputs a second bitstream.
- 31. The apparatus of claim 28, wherein said EMDC encoder component comprises:
a first adder, said first adder outputs a first predicted error; a discrete cosine transform (DCT) unit connected to said first adder, said DCT unit outputs a plurality of DCT coefficients; a pairing transform unit connected to said DCT unit, said pairing transform unit outputs a plurality of DCT coefficient pairs; a pair of first quantizer units connected to said pairing transform unit and a rate and redundancy allocation unit, each of said pair of first quantizer units outputs a plurality of quantized DCT coefficient pairs; a pairwise correlating transform (PCT) unit connected to said pair of first quantizer units and said rate and redundancy allocation unit, said PCT unit outputs a pair of PCT coefficients; a run length coding unit connected to said PCT unit, said run length coding unit outputs a first bitstream.
- 32. A method for decoding encoded video bitstreams to form a reconstructed sequence of video frames when at least two descriptions of said encoded video bitstreams are received, said method comprises:
for each frame in said encoded video bitstreams:
receiving said at least two video bitstreams; decoding the frame from said at least two video bitstreams into a plurality of macroblocks; for each macroblock in the plurality of macroblocks;
determining whether an I-mode coding technique or a P-mode coding technique was used to encode the macroblock; if the macroblock was encoded using the I-mode coding technique, then, decode the macroblock using the I-mode decoding technique to form a reconstructed I-mode macroblock; if the macroblock was encoded using the P-mode coding technique, then, decode the macroblock using the P-mode decoding technique to form a reconstructed P-mode macroblock; assembling said reconstructed P-mode macroblock or said reconstructed I-mode macroblock into a reconstructed frame; and sending the reconstructed frame to a frame buffer for reconstructed frames from both descriptions.
- 33. The method of claim 32, wherein said I-mode decoding technique comprises:
for each I-mode macroblock in the plurality of macroblocks:
decoding the I-mode macroblock into a plurality of blocks; decoding each block in the plurality of blocks into two sets of 64 coefficients; applying an inverse four-variable pairing transform to each of the two sets of 64 coefficients to produce a set of DCT coefficients for each block in the plurality of blocks; applying an inverse eight-by-eight discrete cosine transform (DCT) to each of said set of DCT coefficients for each block in the plurality of blocks to produce four eight-by-eight blocks; and assembling said four eight-by-eight blocks into said reconstructed I-mode macroblock.
- 34. The method of claim 32, wherein said P-mode decoding technique comprises:
for each P-mode macroblock in the plurality of macroblocks:
decoding motion vectors from the P-mode macroblock and forming a prediction macroblock from said motion vectors and a reconstructed previous frame from both descriptions; decoding the P-mode macroblock into a plurality of blocks; decoding each block in the plurality of blocks into two sets of 64 coefficients; applying an inverse four-variable pairing transform to each of the two sets of 64 coefficients to produce a set of DCT coefficients for each block in the plurality of blocks; applying an inverse eight-by-eight discrete cosine transform (DCT) to each of said set of DCT coefficients for each block in the plurality of blocks to produce four eight-by-eight blocks; assembling said four eight-by-eight blocks into said reconstructed P-mode macroblock; and adding said reconstructed P-mode macroblock to the prediction macroblock.
- 35. A method for decoding encoded video bitstreams to form a reconstructed sequence of video frames when only one description of said encoded video bitstream is received, said method comprises:
for each frame in said encoded video bitstream;
receiving said only one video bitstream from a first channel; decoding the frame from said only one video bitstream into a plurality of macroblocks; for each macroblock in the plurality of macroblocks:
determining whether an I-mode coding technique or a P-mode coding technique was used to encode the macroblock; if the macroblock was encoded using the I-mode coding technique, then, decode the macroblock using the I-mode decoding technique to form a reconstructed I-mode macroblock; if the macroblock was encoded using the P-mode coding technique, then, decode the macroblock using the P-mode decoding technique to form a reconstructed P-mode macroblock; assembling said reconstructed I-mode macroblock or said P-mode macroblock into a reconstructed frame; and sending the reconstructed frame to a frame buffer for reconstructed frames from only one description.
- 36. The method of claim 35, wherein, for each I-mode macroblock in the plurality of macroblocks, said I-mode decoding technique comprises:
decoding the I-mode macroblock into a plurality of blocks; decoding each block in the plurality of blocks into two sets of 64 coefficients; producing an estimated two sets of 64 coefficients for each block for a second channel; applying an inverse four-variable pairing transform to each of the two sets of 64 coefficients to produce a set of DCT coefficients for each block; applying an inverse eight-by-eight discrete cosine transform (DCT) to each of said set of DCT coefficients for each block to produce four eight-by-eight blocks; and assembling said four eight-by-eight blocks into a reconstructed I-mode macroblock.
- 37. The method of claim 35, wherein, for each P-mode macroblock in the plurality of macroblocks, said P-mode decoding technique comprises:
decoding up to two motion vectors from the P-mode macroblock and forming a prediction macroblock from a reconstructed previous frame from said first description to form a prediction macroblock; decoding the P-mode macroblock into a plurality of blocks; decoding each block in the plurality of blocks into two sets of 64 coefficients; producing an estimated two sets of 64 coefficients for each block for a second channel; applying an inverse four-variable pairing transform to each of the two sets of 64 coefficients to produce a set of DCT coefficients for each block; applying an inverse eight-by-eight discrete cosine transform (DCT) to each of said set of DCT coefficients for each block to produce four eight-by-eight blocks; assembling said four eight-by-eight blocks into said reconstructed P-mode macroblock; and adding said reconstructed P-mode macroblock to the prediction macroblock.
CROSS-REFERENCE TO RELATED PATENT APPLICATIONS
[0001] This patent application claims the benefit of U.S. Provisional Application Serial No. 60/145,852 entitled Method and Apparatus for Accomplishing Multiple Description Coding for Video, filed Jul. 27, 1999.
[0002] This patent application is related to the following commonly assigned U.S. Provisional Application: Multiple Description Coding Communication System, Serial No. 60/145,937, filed Jul. 28, 1999. This patent application is also related to the following commonly assigned U.S. patent applications: Multiple Description Coding Communications System, Ser. No. 08/179,416, filed Jan. 30, 1997; and Multiple Description Coding of Pairs, Ser. No. ______ (Attorney Docket Number 2685/113550), filed January, 2000.
Divisions (1)
|
Number |
Date |
Country |
Parent |
09478002 |
Jan 2000 |
US |
Child |
10350537 |
Jan 2003 |
US |