LOSSLESS INTRA-PREDICTION VIDEO CODING
First Claim
1. A method for encoding a digital video stream including a plurality of frames, the method comprising:
- selecting a block of a frame of the plurality of frames, the block being one of a plurality of blocks of the frame;
performing, using a processor, inter-prediction on the block using an inter-frame prediction motion vector to calculate a first residual block;
selecting one of a first coding process or a second coding process to encode the first residual block based on a comparison of a magnitude of the inter-frame prediction motion vector to a threshold value;
if the first coding process is selected, performing the first coding process by;
entropy coding the first residual block; and
including the entropy coded first residual block in an encoded video bitstream; and
if the second coding process is selected, performing the second coding process by;
encoding the first residual block to form an encoded residual block;
entropy coding the encoded residual block to include in the encoded video bitstream;
decoding the encoded residual block to form a second residual block;
subtracting the second residual block from the first residual block to form a difference residual;
entropy coding the difference residual block to form an encoded difference residual block; and
including the encoded difference residual block in the encoded video bitstream.
2 Assignments
0 Petitions
Accused Products
Abstract
Blocks of a frame of a video stream can be encoded using lossless inter-frame prediction encoding. The compression ratio of lossless inter-frame encoding can be improved by first examining the magnitude of a motion vector used to perform inter-frame prediction. If the magnitude of the motion vector is small, the residual generated by the inter-prediction can be entropy coded and included in the encoded bitstream. If the magnitude of the motion vector is greater than a threshold, the residual can be encoded using lossy encoding and then decoded and subtracted from the original residual. The resulting difference residual is encoded using lossless encoding and included in the output bitstream along with the lossy encoded residual, permitting the block to be decoded with no loss at a decoder.
45 Citations
20 Claims
-
1. A method for encoding a digital video stream including a plurality of frames, the method comprising:
-
selecting a block of a frame of the plurality of frames, the block being one of a plurality of blocks of the frame; performing, using a processor, inter-prediction on the block using an inter-frame prediction motion vector to calculate a first residual block; selecting one of a first coding process or a second coding process to encode the first residual block based on a comparison of a magnitude of the inter-frame prediction motion vector to a threshold value; if the first coding process is selected, performing the first coding process by; entropy coding the first residual block; and including the entropy coded first residual block in an encoded video bitstream; and if the second coding process is selected, performing the second coding process by; encoding the first residual block to form an encoded residual block; entropy coding the encoded residual block to include in the encoded video bitstream; decoding the encoded residual block to form a second residual block; subtracting the second residual block from the first residual block to form a difference residual; entropy coding the difference residual block to form an encoded difference residual block; and including the encoded difference residual block in the encoded video bitstream. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
-
-
13. An apparatus for encoding a digital video stream including a plurality of frames, the apparatus comprising:
-
a memory; and a processor configured to execute instructions stored in the memory to; select a block of a frame of the plurality of frames, the block being one of a plurality of blocks of the frame; perform inter-prediction on the block using an inter-frame prediction motion vector to calculate a first residual block; select one of a first coding process or a second coding process to encode the block based on a comparison of a magnitude of the inter-frame prediction motion vector to a threshold value; if the first coding process is selected, perform the first coding process by; entropy coding the first residual block; and including the entropy coded first residual block in an encoded video bitstream; and if the second coding process is selected, perform the second coding process by; encoding the first residual block to form an encoded residual block; entropy coding the encoded residual block to include in the encoded video bitstream; decoding the encoded residual block to form a second residual block; subtracting the second residual block from the first residual block to form a difference residual; entropy coding the difference residual block to form an encoded difference residual block; and including the encoded difference residual block in the encoded video bitstream. - View Dependent Claims (14, 15)
-
-
16. A method for decoding an encoded video bitstream including a plurality of encoded frames, the method comprising:
-
receiving an encoded residual block of a frame of the plurality of encoded frames, the encoded residual block being one of a plurality of encoded residual blocks of the frame and the encoded residual block formed by; determining whether an encoded difference residual block is associated with the encoded residual block; determining whether the encoded residual block was inter-predicted; when the encoded residual block was inter-predicted and no encoded difference residual block is associated with the encoded residual block; entropy decoding the encoded residual block to form a residual block; generating a reference block using an inter-frame prediction motion vector; and adding the reference block to the residual block to reconstruct a first block of a frame of a digital video stream; when the encoded residual block was inter-predicted and the encoded difference residual block is associated with the encoded residual block; decoding the encoded residual block to form a second residual block; entropy decoding the encoded difference residual block to form a difference residual block; adding the second residual block to the difference residual block; generating the reference block using the inter-frame prediction motion vector; and adding the reference block to a sum of the second residual block and the difference residual block to reconstruct the first block of the frame of the digital video stream. - View Dependent Claims (17, 18, 19, 20)
-
Specification