System and method for enhanced DMVD processing
First Claim
1. A method, comprising:
- receiving a decoder-side motion vector derivation (DMVD) encoded block and a non-DMVD encoded block;
determining the DMVD encoded block is spatially neighboring the non-DMVD encoded block;
for the DMVD encoded block, performing motion estimation (ME) using temporally neighboring reconstructed pixels in reference pictures, without using spatially neighboring reconstructed pixels in a current picture;
for the non-DMVD encoded block, predicting a motion vector of the non-DMVD encoded block based, at least in part, on motion vectors of spatially neighboring blocks, and recovering a motion vector difference from received data, wherein said predicting comprises at least one of;
limiting the spatially neighboring blocks to an available subset of the spatially neighboring blocks that excludes the DMVD block as unavailable for motion vector prediction for the non-DMVD encoded block, orcalculating a motion vector of the DMVD encoded block based on an available subset of blocks spatially neighboring the DMVD block and using the calculated motion vector in the motion vector predicting for the non-DMVD encoded block before completing decoder-side motion estimation of the DMVD encoded block; and
decoding the DMVD encoded block and the non-DMVD encoded block in parallel.
3 Assignments
0 Petitions
Accused Products
Abstract
To let decoder side motion vector derivation (DMVD) coded blocks be decoded in parallel, decoder side motion estimation (ME) dependency on spatially neighboring reconstructed pixels can be removed. Mirror ME and projective ME are only performed on two reference pictures, and the spatially neighboring reconstructed pixels will not be considered in the measurement metric of the decoder side ME. Also, at a video decoder, motion estimation for a target block in a current picture can be performed by calculating a motion vector for a spatially neighboring DMVD block, using the calculated motion vector to predict motion vectors of neighboring blocks of the DMVD block, and decoding the DMVD block and the target block in parallel. In addition, determining a best motion vector for a target block in a current picture can be performed by searching only candidate motion vectors in a search window, wherein candidate motion vectors are derived from a small range motion search around motion vectors of neighboring blocks.
-
Citations
24 Claims
-
1. A method, comprising:
-
receiving a decoder-side motion vector derivation (DMVD) encoded block and a non-DMVD encoded block; determining the DMVD encoded block is spatially neighboring the non-DMVD encoded block; for the DMVD encoded block, performing motion estimation (ME) using temporally neighboring reconstructed pixels in reference pictures, without using spatially neighboring reconstructed pixels in a current picture; for the non-DMVD encoded block, predicting a motion vector of the non-DMVD encoded block based, at least in part, on motion vectors of spatially neighboring blocks, and recovering a motion vector difference from received data, wherein said predicting comprises at least one of; limiting the spatially neighboring blocks to an available subset of the spatially neighboring blocks that excludes the DMVD block as unavailable for motion vector prediction for the non-DMVD encoded block, or calculating a motion vector of the DMVD encoded block based on an available subset of blocks spatially neighboring the DMVD block and using the calculated motion vector in the motion vector predicting for the non-DMVD encoded block before completing decoder-side motion estimation of the DMVD encoded block; and decoding the DMVD encoded block and the non-DMVD encoded block in parallel. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A system, comprising:
-
a processor; and a memory in communication with said processor, for storing a plurality of processing instructions for directing said processor to receive a decoder-side motion vector derivation (DMVD) encoded block and a non-DMVD encoded block; determine the DMVD encoded block is spatially neighboring the non-DMVD encoded block; for the DMVD encoded block, perform motion estimation (ME) using temporally neighboring reconstructed pixels in reference pictures, without using spatially neighboring reconstructed pixels in a current picture; for the non-DMVD encoded block, predict a motion vector of the non-DMVD encoded block based, at least in part, on motion vectors of spatially neighboring blocks, and recover a motion vector difference from received data, wherein said predict comprises at least one of; a limit on the spatially neighboring blocks to an available subset of the spatially neighboring blocks that excludes the DMVD block as unavailable for motion vector prediction for the non-DMVD encoded block, or a calculation of a motion vector of the DMVD encoded block based on an available subset of blocks spatially neighboring the DMVD block and a use of the calculated motion vector in the motion vector prediction for the non-DMVD encoded block before decoder-side motion estimation of the DMVD encoded block is completed; and decode the DMVD encoded block and the non-DMVD encoded block in parallel. - View Dependent Claims (10, 11, 12, 13, 14, 15, 16)
-
-
17. A computer program product including a non-transitory computer readable medium having computer program logic stored therein, the computer program logic comprising:
-
logic to cause a processor to receive a decoder-side motion vector derivation (DMVD) encoded block and a non-DMVD encoded block; logic to cause the processor to determine the DMVD encoded block is spatially neighboring the non-DMVD encoded block; logic to cause the processor, for the DMVD encoded block, to perform motion estimation (ME) using temporally neighboring reconstructed pixels in reference pictures, without using spatially neighboring reconstructed pixels in a current picture; logic to cause the processor, for the non-DMVD encoded block, to predict a motion vector of the non-DMVD encoded block based, at least in part, on motion vectors of spatially neighboring blocks, and to recover a motion vector difference from received data wherein said predict comprises at least one of; a limit on the spatially neighboring blocks to an available subset of the spatially neighboring blocks that excludes the DMVD block as unavailable for motion vector prediction for the non-DMVD encoded block, or a calculation of a motion vector of the DMVD encoded block based on an available subset of blocks spatially neighboring the DMVD block and a use of the calculated motion vector in the motion vector prediction for the non-DMVD encoded block before decoder-side motion estimation of the DMVD encoded block is completed; and logic to cause the processor to decode the DMVD encoded block and the non-DMVD encoded block in parallel. - View Dependent Claims (18, 19, 20, 21, 22, 23, 24)
-
Specification