Barbell lifting for multi-layer wavelet coding
AssigneeMicrosoft Corporation
InventorsShipeng Li, Ruiqin Xiong, Lin Luo, Jizheng Xu, Feng Wu
Life of this patent
Estimating the term…
Abstract
A method for coding video data includes scalably generating layers of wavelet coefficients based on a frame of video data, scalably generating motion vector data associated with the plurality of layers, and combining the motion vector data and the plurality of layers of wavelet coefficients into a coded video frame representing the frame of video data. The method may further include transmitting the coded video frame. A system for coding video data includes a temporal decomposition module scalably applying a barbell function to a frame of video data, and a motion vector module scalably coding motion vector data at multiple levels of refinement.
Claims44
A computer-readable medium having computer-executable instructions encoded thereon for executing a computer process on a computer, the computer process comprising:
- scalably generating a plurality of layers of wavelet coefficients based on a plurality of frames of video data;
- scalably generating motion vector data associated with the plurality of layers;
- combining the motion vector data and the plurality of layers of wavelet coefficients into a plurality of coded video frames representing the plurality of frames of video data;
- selecting a motion vector coding mode with which to scalably generate the motion vector data;
- wherein the selecting operation comprises selecting one of:
- a half magnitude mode;
- a forward transmit/backward generate mode;
- a backward transmit/forward generate mode;
- and
- an inverse direction mode;
- wherein scalably generating motion vector data comprises:
- generating a plurality of motion vectors encoded at a plurality of motion levels of resolution, including a base level and at least one enhancement level;
- determining a switching bit rate, wherein at a bit rate below the switching bit rate a base motion vector at the base level of resolution is transmitted and at a bit rate above the switching bit rate a fine motion vector at an enhancement level of resolution is transmitted, and wherein the determining comprises applying a function of the form:
- arg
-
-
- min
- i
-
- {
- D
- t
-
- (
- R
- -
- R
- Mi
- )
- +
- D
- Mismatch
-
- (
- M
- ,
- M
- i
- )
- }
-
- ,
- (
- 1
- ≤
- i
- ≤
- n
- )
- wherein M represents a given motion vector, Mi represents a motion vector encoded at an ith motion level, i represents one of n motion levels, R represent a bit rate associated with M, RMi represents a bit rate associated with Mi, Dt denotes a rate-distortion function, DMismatch represents distortion caused by motion mismatch between M and Mi.
A computing device comprising:
- a processor;
- and
- a memory coupled to the processor, the memory comprising computer-program instructions executable by the processor for:
- scalably generating a plurality of layers of wavelet coefficients based on a plurality of frames of video data;
- scalably generating motion vector data associated with the plurality of layers;
- combining the motion vector data and the plurality of layers of wavelet coefficients into a plurality of coded video frames representing the plurality of frames of video data;
- and
- selecting a motion vector coding mode with which to scalably generate the motion vector data;
- wherein the selecting operation comprises selecting one of:
- a half magnitude mode;
- a forward transmit/backward generate mode;
- a backward transmit/forward generate mode;
- and
- an inverse direction mode;
- wherein scalably generating motion vector data comprises:
- generating a plurality of motion vectors encoded at a plurality of motion levels of resolution, including a base level and at least one enhancement level;
- determining a switching bit rate, wherein at a bit rate below the switching bit rate a base motion vector at the base level of resolution is transmitted and at a bit rate above the switching bit rate a fine motion vector at an enhancement level of resolution is transmitted, and wherein the determining comprises applying a function of the form:
- arg
-
-
- min
- i
-
- {
- D
- t
-
- (
- R
- -
- R
- Mi
- )
- +
- D
- Mismatch
-
- (
- M
- ,
- M
- i
- )
- }
-
- ,
- (
- 1
- ≤
- i
- ≤
- n
- )
- wherein M represents a given motion vector, Mi represents a motion vector encoded at an ith motion level, i represents one of n motion levels, R represent a bit rate associated with M, RMi represents a bit rate associated with Mi, Dt denotes a rate-distortion function, DMismatch represents distortion caused by motion mismatch between M and Mi.
A computing device comprising:
- a processor;
- and
- a memory coupled to the processor, the memory comprising computer-program instructions executable by the processor for:
- scalably generating a plurality of layers of wavelet coefficients based on a plurality of frames of video data;
- scalably generating motion vector data associated with the plurality of layers;
- combining the motion vector data and the plurality of layers of wavelet coefficients into a plurality of coded video frames representing the plurality of frames of video data
- selecting a motion vector coding mode with which to scalably generate the motion vector data;
- wherein the selecting operation comprises selecting one of:
- a half magnitude mode;
- a forward transmit/backward generate mode;
- a backward transmit/forward generate mode;
- and
- an inverse direction mode;
- wherein scalably generating motion vector data comprises:
- generating a plurality of motion vectors encoded at a plurality of motion levels of resolution, including a base level and at least one enhancement level;
- determining a switching bit rate, wherein at a bit rate below the switching bit rate a base motion vector at the base level of resolution is transmitted and at a bit rate above the switching bit rate a fine motion vector at an enhancement level of resolution is transmitted, and
- wherein scalably generating motion vector data further comprises estimating a distortion between a given motion vector at an associated bit rate and a motion vector encoded at an ith enhancement level by applying a function of the form:
- Di(R)=Dt(R−RMi)+DMismatch(M, Mi),(1≦i≦n),
- wherein M represents the given motion vector, Mi represents a motion vector encoded at an ith motion level, i represents one of n motion levels, R represent a bit rate associated with M, RMi represents a bit rate associated with Mi, Dt denotes a rate-distortion function, DMismatch represents distortion caused by motion mismatch between M and Mi.
A computer-readable medium having computer-executable instructions encoded thereon for executing a computer process on a computer, the computer process comprising:
- scalably generating a plurality of layers of wavelet coefficients based on a plurality of frames of video data;
- scalably generating motion vector data associated with the plurality of layers;
- combining the motion vector data and the plurality of layers of wavelet coefficients into a plurality of coded video frames representing the plurality of frames of video data
- selecting a motion vector coding mode with which to scalably generate the motion vector data
- wherein the selecting operation comprises selecting one of:
- a half magnitude mode;
- a forward transmit/backward generate mode;
- a backward transmit/forward generate mode;
- and
- an inverse direction mode;
- wherein scalably generating motion vector data comprises:
- generating a plurality of motion vectors encoded at a plurality of motion levels of resolution, including a base level and at least one enhancement level;
- determining a switching bit rate, wherein at a bit rate below the switching bit rate a base motion vector at the base level of resolution is transmitted and at a bit rate above the switching bit rate a fine motion vector at an enhancement level of resolution is transmitted, and
- wherein scalably generating motion vector data further comprises estimating a distortion between a given motion vector at an associated bit rate and a motion vector encoded at an ith enhancement level by applying a function of the form:
- Di(R)=Dt(R−RMi)+DMismatch(M, Mi),(1≦i≦n),
- wherein M represents the given motion vector, Mi represents a motion vector encoded at an ith motion level, i represents one of n motion levels, R represent a bit rate associated with M, R Mi represents a bit rate associated with Mi, Dt denotes a rate-distortion function, DMismatch represents distortion caused by motion mismatch between M and Mi.
Dependencies are inferred from the claim text.