Video coding
AssigneeMicrosoft Technology Licensing, LLC
InventorsAlexandros Tourapis, Feng Wu, Shipeng Li
Life of this patent
Estimating the term…
Abstract
Improved video coding is described to encode video data within a sequence of video frames. To this end, at least a portion of a reference frame is encoded to include motion information associated with the portion of the reference frame. At least a portion of a predictable frame that includes video data predictively correlated to said portion of said reference frame is defined based on the motion information. At least said portion of the predictable frame is encoded without including corresponding motion information and including mode identifying data. The mode identifying data indicate that the encoded portion of the predictable frame can be directly derived using at least the motion information associated with the portion of the reference frame.
Claims20
In a computing device that implements a video encoder, a method comprising:
- encoding a current frame in a sequence of video frames, wherein the current frame includes multiple blocks that are different portions of the current frame, and wherein the encoding the current frame includes, for each given block among the multiple blocks of the current frame, encoding the given block using motion compensation without using motion vector (“MV”) information in a bit stream for the given block but according to identifying information in the bit stream for the given block, wherein the identifying information in the bit stream for the given block indicates how to derive the MV information for the given block, and wherein:
- if the identifying information in the bit stream for the given block indicates motion projection is used for the given block, the MV information for the given block is derived using MV information of a block of another frame in the sequence of video frames;
- and
- if the identifying information in the bit stream for the given block indicates spatial prediction is used for the given block, the MV information for the given block is derived using MV information for one or more surrounding blocks of the current frame;
- and
- outputting encoded data for the current frame in the bit stream, wherein, for each given block among the multiple blocks of the current frame, the encoded data in the bit stream includes the identifying information in the bit stream for the given block that indicates how to derive the MV information for the given block, and the identifying information in the bit stream for the given block is separate from the identifying information in the bitstream for other blocks among the multiple blocks of the current frame.
A computing device comprising a processor and memory, wherein the computing device implements a video decoder configured to perform operations comprising:
- receiving encoded data in a bit stream for a current frame in a sequence of video frames, wherein the current frame includes multiple blocks that are different portions of the current frame, the encoded data in the bit stream including, for each given block among the multiple blocks of the current frame, identifying information in the bit stream for the given block that indicates how to derive motion vector (“MV”) information for the given block, wherein the identifying information in the bit stream for the given block is separate from the identifying information in the bitstream for other blocks among the multiple blocks of the current frame;
- and
- decoding the current frame, including, for each given block among the multiple blocks of the current frame, decoding the given block using motion compensation without using MV information in the bit stream for the given block but according to the identifying information in the bit stream for the given block, wherein:
- if the identifying information in the bit stream for the given block indicates motion projection is used for the given block, the MV information for the given block is derived using MV information of a block of another frame in the sequence of video frames;
- and
- if the identifying information in the bit stream for the given block indicates spatial prediction is used for the given block, the MV information for the given block is derived using MV information for one or more surrounding blocks of the current frame.
One or more computer-readable memory or storage devices having stored thereon encoded data in a bit stream, the encoded data having been produced by operations comprising:
- encoding a current frame in a sequence of video frames, wherein the current frame includes multiple blocks that are different portions of the current frame, and wherein the encoding the current frame includes, for each given block among the multiple blocks of the current frame, encoding the given block using motion compensation without using motion vector (“MV”) information in the bit stream for the given block but according to identifying information in the bit stream for the given block, wherein the identifying information in the bit stream for the given block indicates how to derive the MV information for the given block, and wherein:
- if the identifying information in the bit stream for the given block indicates motion projection is used for the given block, the MV information for the given block is derived using MV information of a block of another frame in the sequence of video frames;
- and
- if the identifying information in the bit stream for the given block indicates spatial prediction is used for the given block, the MV information for the given block is derived using MV information for one or more surrounding blocks of the current frame;
- and
- outputting encoded data for the current frame in the bit stream, wherein, for each given block among the multiple blocks of the current frame, the encoded data in the bit stream includes the identifying information in the bit stream for the given block that indicates how to derive the MV information for the given block, and the identifying information in the bit stream for the given block is separate from the identifying information in the bitstream for other blocks among the multiple blocks of the current frame.
Dependencies are inferred from the claim text.