Mesh node coding to enable object based functionalities within a motion compensated transform video coder
First Claim
1. A video coder that codes video data as coded output, the coded output including block based texture data, block based motion data and mesh node based motion data, the coder responsive to a predetermined command received over a back channel by reducing a number of mesh nodes represented in the mesh node based motion data.
2 Assignments
0 Petitions
Accused Products
Abstract
A method and apparatus for coding video data permits coding of video information with optional, enhanced functionalities. Video data is coded as base layer data and enhancement layer data. The base layer data includes convention motion compensated transform encoded texture and motion vector data. Optional enhancement layer data contains mesh node vector data. Mesh node vector data of the enhancement layer may be predicted based on motion vectors of the base layer. Thus, simple decoders may decode the base layer data and obtain a basic representation of the coded video data. However, more powerful decoders may decode both the base layer and enhanced layer to obtain decoded video permitting functionalities. An embodiment of the present invention provides a back channel that permits a decoder to affect how mesh node coding is performed in the encoder. The decoder may command the encoder to reduce or eliminate encoding of mesh node motion vectors. The back channel finds application in single layer systems and two layer systems.
-
Citations
42 Claims
- 1. A video coder that codes video data as coded output, the coded output including block based texture data, block based motion data and mesh node based motion data, the coder responsive to a predetermined command received over a back channel by reducing a number of mesh nodes represented in the mesh node based motion data.
- 5. A video decoder that decodes coded video data received over a channel, the coded video data including block based texture data, block based motion data and mesh node based motion data, the decoder determining whether the mesh node motion data is necessary for video decoding and, when the mesh node motion data is unnecessary, generating a back channel command representing a request to reduce a number of mesh nodes represented by the node based motion data.
-
9. A video coder that codes input video data, comprising:
-
a base layer encoder that receives the input video data and outputs coded base layer data representative of the input video data, the coded base layer data including block based texture data and block based motion data, an enhancement layer encoder that receives the input video data and outputs coded enhanced layer data including mesh node based motion information, a multiplexer that merges the coded base layer data and coded enhanced layer data into a unitary data stream and outputs the unitary data stream to a channel. - View Dependent Claims (10, 11, 12, 13, 14, 15)
-
-
16. A video decoder that decodes coded video data, the coded video data including block based motion data and block based texture data included in coded base layer data and mesh based motion data included in coded enhancement layer data, the decoder comprising:
-
a base layer decoder that decodes the coded base layer data into decoded video data and motion data, an enhancement layer decoder that decodes the enhancement layer data, a demutliplexer that receives the coded video data from a channel, routes the coded base layer data to the base layer decoder and routes the coded enhancement layer data to the enhancement layer decoder, and a compositor that receives decoded outputs from the base layer encoder and the enhancement layer decoder and generates a synthesized video output therefrom. - View Dependent Claims (17, 18, 19, 20, 21)
-
-
22. A video decoder that decodes coded video data, the coded video data including block based motion data and block based texture data included in coded base layer data and mesh based motion data included in coded enhancement layer data, the decoder comprising:
-
a base layer decoder that decodes the coded base layer data into decoded video data and motion data, a demutliplexer that receives the coded video data from a channel and routes the coded base layer data to the base layer decoder and ignores the coded enhancement layer data, and a compositor that receives a decoded output from the base layer encoder and generates a synthesized video output therefrom.
-
-
23. In a two-layer video coder that encodes input video data as coded video data, the coded video data including a base layer of block based texture data and block based motion data and an enhancement layer of mesh node based motion data, a method of coding the enhancement layer data, comprising:
-
generating mesh nodes from the input video data, receiving the block based motion data, for at least one mesh node; identifying a block that is spatially related to the mesh node, predicting a motion vector for the mesh node based upon a motion vector of the spatially related block, comparing an actual motion vector of the mesh node against the predicted motion vector, and encoding a difference between the actual motion vector and the predicted motion vector. - View Dependent Claims (24, 25, 26, 27, 28, 29, 30, 31, 32)
-
-
33. In a two-layer video decoder that decodes coded video data, the coded video data including a base layer of block based texture data and block based motion data and an enhancement layer of residual mesh node based motion data, a method of decoding the mesh node based motion data, comprising:
-
receiving the coded enhancement layer data, for at least one mesh node; for at least one mesh node; identifying a block that is spatially related to the mesh node, predicting a motion vector for the mesh node based upon a motion vector of the spatially related block, and adding residual motion data of the node to the predicted motion vector. - View Dependent Claims (34, 35, 36, 37, 38, 39, 40, 41, 42)
-
Specification