Systems and methods for encoding redundant motion vectors in compressed video bitstreams
AssigneeIntervideo, Inc.
InventorsChang-Su Kim, Ioannis Katsavounidis
Life of this patent
Estimating the term…
Abstract
The invention is related to methods and apparatus that encode redundant motion vectors for predictive-coded visual object planes (P-VOPs) to increase the robustness of transmitted video signals. One embodiment provides the redundant motion vectors in a user data video packet of an MPEG-4 compliant bitstream, which thereby allows the enhanced bitstream to remain compliant with MPEG-4 syntax and backwards compatible with MPEG-4 decoders. The enhanced bitstreams allow a video decoder to display a video with a better picture and relatively less error and error propagation when portions of the bitstream are disturbed or corrupted by interference, delays, and the like.
Claims34
A video encoder adapted to compress video information in a robust coded bitstream comprising:
- a definition module adapted to receive video frames and to parse the video frames into video objects;
- and
- a video object plane (VOP) encoders adapted to generate intra-coded VOPs (I-VOPs) and predictive-coded VOPs (P-VOPs) that correspond to the video objects, where a VOP encoder from the VOP encoders is configured to generate a predictive-coded VOP (P-VOP) from the video frame, where the VOP encoder is configured to generate a standard motion vector for the video object of the present frame, where the standard motion vector references motion to a portion of a frame that is immediately prior to the present frame, where the VOP encoder is configured to generate a redundant motion vector that is independent of the standard motion vector for the video object of the present frame, where the redundant motion vector references motion to a portion of a frame that is prior to the frame referenced by the standard motion vector, where the VOP encoder embeds the redundant motion vector in a data packet, where an output of the VOP encoder is related to the robust coded bitstream.
A motion encoder that robustly encodes temporal movement of video object planes (VOPs) for a first video frame in a sequence of video frames to be encoded, the motion encoder comprising:
- a previous VOP memory configured to store VOPs of a second video frame, where the second video frame corresponds to a video frame that is immediately prior to the first video frame;
- a previous VOP reconstruction circuit in communication with the previous VOP memory, where the previous VOP reconstruction circuit is configured to reconstruct video objects from the previous VOP memory;
- a first motion vector generator adapted to generate a standard motion vector from a first video object in the first video frame and a first reconstructed video object from the previous VOP reconstruction circuit;
- previous-previous VOP memory configured to store VOPs of at least a third video frame, where the third video frame corresponds to a video frame that is immediately prior to the second video frame;
- a previous-previous VOP reconstruction circuit in communication with the previous VOP memory, where the previous-previous VOP reconstruction circuit is configured to reconstruct video objects from the previous-previous VOP memory;
- and
- a second motion vector generator to generate a standard motion vector from the first video object in the first video frame and a second reconstructed video object from the previous-previous VOP reconstruction circuit.
A process of providing a redundant motion vectors in an encoded video bitstream, the process comprising:
- receiving a plurality of video frames to be encoded;
- determining whether to encode a video frame as an Intra-coded frame (I-frame) or as a Predictive-coded frame (P-frame);
- when encoding a P-frame:
- encoding a first video object in the frame as a first predictive video object plane (P-VOP);
- determining whether the first P-VOP is related to a second VOP in a video frame at least two video frames prior to the P-frame that is being encoded;
- and
- computing a redundant motion vector that references motion for the first P-VOP based on the second VOP.
A video bitstream that carries a plurality of video frames including intra-coded frames (I-frames) and predictive-coded frames (P-frames), the video bitstream comprising:
- a plurality of first packets that carry video object planes (VOPs), where the plurality of packets include packets for intra-coded VOPs (I-VOPs) and packets for predictive-coded VOPs (P-VOPs);
- and
- a plurality of second packets, where a second packet carries at least one redundant motion vector corresponding to a P-VOP in the video bitstream.
A user data video packet in a video bitstream comprising:
- a start code corresponding to syntax that indicates a user data video packet;
- and
- data corresponding to a motion vector of a portion of a first frame relative to a portion of a second frame earlier in time than the first frame.
A video encoder that provides redundant motion vectors in an encoded video bitstream comprising:
- means for receiving a plurality of video frames to be encoded;
- means for determining whether to encode a video frame as an Intra-coded frame (I-frame) or as a Predictive-coded frame (P-frame);
- means for encoding a first video object in the frame as a first predictive video object plane (P-VOP) when encoding a P-frame;
- means for determining whether the first P-VOP is related to a second VOP in a video frame at least two video frames prior to the P-frame that is being encoded when encoding a P-frame;
- and
- means for computing a redundant motion vector that references motion for the first P-VOP based on the second VOP.
Dependencies are inferred from the claim text.