Method and apparatus for update step in video coding using motion compensated temporal filtering
First Claim
1. A method of encoding a digital video sequence using motion compensated temporal filtering for providing a bitstream having video data representative of encoded video sequence, the digital video sequence comprising a plurality of frames, wherein each frame comprises an array of pixels which can be divided into a plurality of macroblocks, said method comprising:
- for a macroblock, selecting a macroblock mode;
segmenting the macroblock into a number of blocks based on the macroblock mode;
performing a prediction operation on said blocks, based on motion compensated prediction with respect to a reference video frame and motion vectors, for providing corresponding blocks of prediction residues; and
updating said video reference frame based on motion compensated prediction with respect to said blocks of prediction residues and the macroblock mode, and further based on a reverse direction of said motion vectors.
1 Assignment
0 Petitions
Accused Products
Abstract
The present invention provides a method and module for performing the update operation in motion compensated temporal filtering for video coding. The update operation is performed according to coding blocks in the prediction residue frame. Depending on macroblock mode in the prediction step, a coding block can have different sizes. Macroblock modes are used to specify how a macroblock is segmented into blocks. In the prediction step, the reverse direction of the motion vectors is used directly as an update motion vector and therefore no motion vector derivation process is performed. Motion vectors that significantly deviate from their neighboring motion vectors are considered not reliable and excluded from the update step. An adaptive filter is used in interpolating the prediction residue block for the update operation. The adaptive filter is an adaptive combination of a short filter and a long filter.
67 Citations
38 Claims
-
1. A method of encoding a digital video sequence using motion compensated temporal filtering for providing a bitstream having video data representative of encoded video sequence, the digital video sequence comprising a plurality of frames, wherein each frame comprises an array of pixels which can be divided into a plurality of macroblocks, said method comprising:
for a macroblock, selecting a macroblock mode;
segmenting the macroblock into a number of blocks based on the macroblock mode;
performing a prediction operation on said blocks, based on motion compensated prediction with respect to a reference video frame and motion vectors, for providing corresponding blocks of prediction residues; and
updating said video reference frame based on motion compensated prediction with respect to said blocks of prediction residues and the macroblock mode, and further based on a reverse direction of said motion vectors. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
8. A method of decoding a digital video sequence from video data in a bitstream representative of an encoded video sequence, the encoded video sequence comprising a number of frames, each frame comprising an array of pixels, wherein the pixels in each frame can be divided into a plurality of macroblocks, said method comprising:
for a macroblock, obtaining a macroblock mode;
segmenting the macroblock into a number of blocks based on the macroblock mode;
decoding motion vectors and prediction residues of the blocks;
performing an update operation on a reference video frame of said blocks, based on motion compensated prediction with respect to the prediction residues of said blocks based on said macroblock mode and a reverse direction of the motion vectors; and
performing a prediction operation on said blocks based on motion compensated prediction with respect to updated reference video frame and the motion vectors. - View Dependent Claims (9, 10, 11, 12, 13, 14)
-
15. An encoding module for use in encoding a digital video sequence using motion compensated temporal filtering for providing a bitstream having video data representative of encoded video sequence, the digital video sequence comprising a plurality of frames, wherein each frame comprises an array of pixels which can be divided into a plurality of macroblocks, said encoding module comprising:
-
a mode decision module configured for selecting, for a macroblock, a macroblock mode so as to segment the macroblock into a number of blocks based on the macroblock mode;
a prediction module for performing a prediction operation on said blocks, based on motion compensated prediction with respect to a reference video frame and motion vectors, for providing corresponding blocks of prediction residues; and
an updating module for updating said video reference frame based on motion compensated prediction with respect to said blocks of prediction residues and the macroblock mode, and further based on a reverse direction of said motion vectors. - View Dependent Claims (16, 17, 18, 19, 20, 21)
-
-
22. A decoding module for use in decoding a digital video sequence from video data in a bitstream representative of an encoded video sequence, the encoded video sequence comprising a number of frames, each frame comprising an array of pixels, wherein the pixels in each frame can be divided into a plurality of macroblocks, said decoding module comprising:
-
a first decoding sub-module, responsive to the video data, for decoding a macroblock mode so as to segment the macroblock into a number of blocks based on the macroblock mode;
a second decoding sub-module for decoding motion vectors and prediction residues of the blocks;
an updating module for performing an update operation on a reference video frame of said blocks, based on motion compensated prediction with respect to the prediction residues of said blocks based on said macroblock mode and a reverse direction of the motion vectors; and
a prediction module for performing a prediction operation on said blocks based on motion compensated prediction with respect to updated reference video frame and the motion vectors. - View Dependent Claims (23, 24, 25, 26, 27, 28)
-
-
29. A software application product, comprising a storage medium having a software application for encoding a digital video sequence using motion compensated temporal filtering for providing a bitstream having video data representative of encoded video sequence, the digital video sequence comprising a plurality of frames, wherein each frame comprises an array of pixels which can be divided into a plurality of macroblocks, said software application comprising:
-
program code for selecting a macroblock mode for a macroblock;
program code for segmenting the macroblock into a number of blocks based on the macroblock mode;
program code for performing a prediction operation on said blocks, based on motion compensated prediction with respect to a reference video frame and motion vectors, for providing corresponding blocks of prediction residues; and
program code for updating said video reference frame based on motion compensated prediction with respect to said blocks of prediction residues and the macroblock mode, and further based on a reverse direction of said motion vectors. - View Dependent Claims (30)
-
-
31. A software application product, comprising a storage medium having a software application for decoding a digital video sequence from video data in a bitstream representative of an encoded video sequence, the encoded video sequence comprising a number of frames, each frame comprising an array of pixels, wherein the pixels in each frame can be divided into a plurality of macroblocks, said software application comprising:
-
program code for obtaining a macroblock mode for a macroblock from the video data;
program code for segmenting the macroblock into a number of blocks based on the macroblock mode;
program code for decoding motion vectors and prediction residues of the blocks;
program code for performing an update operation on a reference video frame of said blocks, based on motion compensated prediction with respect to the prediction residues of said blocks based on said macroblock mode and a reverse direction of the motion vectors; and
program code for performing a prediction operation on said blocks based on motion compensated prediction with respect to updated reference video frame and the motion vectors. - View Dependent Claims (32)
-
-
33. An electronic device configured to acquire a digital video sequence, comprising:
-
an encoding module for encoding the digital video sequence using motion compensated temporal filtering for providing a bitstream having video data representative of encoded video sequence, the digital video sequence comprising a plurality of frames, wherein each frame comprises an array of pixels which can be divided into a plurality of macroblocks, said encoding module comprising;
a mode decision module configured for selecting, for a macroblock, a macroblock mode so as to segment the macroblock into a number of blocks based on the macroblock mode;
a prediction module for performing a prediction operation on said blocks, based on motion compensated prediction with respect to a reference video frame and motion vectors, for providing corresponding blocks of prediction residues; and
an updating module for updating said video reference frame based on motion compensated prediction with respect to said blocks of prediction residues and the macroblock mode, and further based on a reverse direction of said motion vectors. - View Dependent Claims (34)
-
-
35. An encoding module for use in encoding a digital video sequence using motion compensated temporal filtering for providing a bitstream having video data representative of encoded video sequence, the digital video sequence comprising a plurality of frames, wherein each frame comprises an array of pixels which can be divided into a plurality of macroblocks, said encoding module comprising:
-
means for selecting, for a macroblock, a macroblock mode so as to segment the macroblock into a number of blocks based on the macroblock mode;
means for performing a prediction operation on said blocks, based on motion compensated prediction with respect to a reference video frame and motion vectors, for providing corresponding blocks of prediction residues; and
means for updating said video reference frame based on motion compensated prediction with respect to said blocks of prediction residues and the macroblock mode, and further based on a reverse direction of said motion vectors. - View Dependent Claims (36)
-
-
37. A decoding module for use in decoding a digital video sequence from video data in a bitstream representative of an encoded video sequence, the encoded video sequence comprising a number of frames, each frame comprising an array of pixels, wherein the pixels in each frame can be divided into a plurality of macroblocks, said decoding module comprising:
-
means, responsive to the video data, for decoding a macroblock mode so as to segment the macroblock into a number of blocks based on the macroblock mode;
means for decoding motion vectors and prediction residues of the blocks;
means for performing an update operation on a reference video frame of said blocks, based on motion compensated prediction with respect to the prediction residues of said blocks based on said macroblock mode and a reverse direction of the motion vectors; and
means for performing a prediction operation on said blocks based on motion compensated prediction with respect to updated reference video frame and the motion vectors. - View Dependent Claims (38)
-
Specification