Derived disparity vector in 3D video coding
AssigneeQUALCOMM Incorporated
InventorsYing Chen, Li Zhang
Life of this patent
Estimating the term…
Abstract
A video coder stores only one derived disparity vector (DDV) for a slice of a current picture of the video data. The video coder uses the DDV for the slice in a Neighboring Block Based Disparity Vector (NBDV) derivation process to determine a disparity vector for a particular block. Furthermore, the video coder stores, as the DDV for the slice, the disparity vector for the particular block.
Claims40
A method of decoding video data, the method comprising:
- storing only one derived disparity vector (DDV) for a slice of a current picture of the video data, wherein the slice includes multiple blocks;
- using the DDV for the slice in a Neighboring Block Based Disparity Vector (NBDV) derivation process to determine a disparity vector for a particular block, wherein the particular block is one of the blocks of the slice, wherein using the DDV for the slice in the NBDV derivation process comprises:
- determining whether a temporal neighboring block has a disparity motion vector;
- responsive to determining that the temporal neighboring block has a disparity motion vector, deriving the disparity vector for the particular block based on the disparity motion vector of the temporal neighboring block;
- responsive to determining that the temporal neighboring block does not have a disparity motion vector, determining whether any spatial neighboring block in a plurality of spatial neighboring blocks has a disparity motion vector;
- responsive to determining that a particular spatial neighboring block in the plurality of spatial neighboring blocks has a disparity motion vector, deriving the disparity vector for the particular block based on the disparity motion vector of the particular spatial neighboring block;
- and
- responsive to determining that no spatial neighboring block in the plurality of spatial neighboring blocks has a disparity motion vector, deriving the disparity vector for the particular block as the DDV for the slice;
- and
- storing, as the DDV for the slice, the disparity vector for the particular block.
A method of encoding video data, the method comprising:
- storing only one derived disparity vector (DDV) for a slice of a current picture of the video data, wherein the slice includes multiple blocks;
- using the DDV for the slice in a Neighboring Block Based Disparity Vector (NBDV) derivation process to determine a disparity vector for a particular block, wherein the particular block is one of the blocks of the slice, wherein using the DDV for the slice in the NBDV derivation process comprises:
- determining whether a temporal neighboring block has a disparity motion vector;
- responsive to determining that the temporal neighboring block has a disparity motion vector, deriving the disparity vector for the particular block based on the disparity motion vector of the temporal neighboring block;
- responsive to determining that the temporal neighboring block does not have a disparity motion vector, determining whether any spatial neighboring block in a plurality of spatial neighboring blocks has a disparity motion vector;
- responsive to determining that a particular spatial neighboring block in the plurality of spatial neighboring blocks has a disparity motion vector, deriving the disparity vector for the particular block based on the disparity motion vector of the particular spatial neighboring block;
- and
- responsive to determining that no spatial neighboring block in the plurality of spatial neighboring blocks has a disparity motion vector, deriving the disparity vector for the particular block as the DDV for the slice;
- and
- storing, as the DDV for the slice, the disparity vector for the particular block.
A video coding device comprising:
- a memory that stores video data;
- and
- one or more processors configured to:
- store only one derived disparity vector (DDV) for a slice of a current picture of the video data, wherein the slice includes multiple blocks;
- use the DDV for the slice in a Neighboring Block Based Disparity Vector (NBDV) derivation process to determine a disparity vector for a particular block, wherein the particular block is one of the blocks of the slice, wherein the one or more processors are configured such that, as part of using the DDV for the slice in the NBDV derivation process, the one or more processors:
- determine whether a temporal neighboring block has a disparity motion vector:
- responsive to determining that the temporal neighboring block has a disparity motion vector, derive the disparity vector for the particular block based on the disparity motion vector of the temporal neighboring block;
- responsive to determining that the temporal neighboring block does not have a disparity motion vector, determine whether any spatial neighboring block in a plurality of spatial neighboring blocks has a disparity motion vector;
- responsive to determining that a particular spatial neighboring block in the plurality of spatial neighboring blocks has a disparity motion vector, derive the disparity vector for the particular block based on the disparity motion vector of the particular spatial neighboring block;
- and
- responsive to determining that no spatial neighboring block in the plurality of spatial neighboring blocks has a disparity motion vector, derive the disparity vector for the particular block as the DDV for the slice;
- and
- store, as the DDV for the slice, the disparity vector for the particular block.
A video coding device configured to code video data, the video coding device comprising:
- means for storing only one derived disparity vector (DDV) for a slice of a current picture of the video data, wherein the slice includes multiple blocks;
- means for using the DDV for the slice in a Neighboring Block Based Disparity Vector (NBDV) derivation process to determine a disparity vector for a particular block, wherein the particular block is one of the blocks of the slice, wherein the means for using the DDV for the slice in the NBDV derivation process comprises:
- means for determining whether a temporal neighboring block has a disparity motion vector;
- means for deriving, responsive to determining that the temporal neighboring block has a disparity motion vector, the disparity vector for the particular block based on the disparity motion vector of the temporal neighboring block;
- means for determining, responsive to determining that the temporal neighboring block does not have a disparity motion vector, whether any spatial neighboring block in a plurality of spatial neighboring blocks has a disparity motion vector;
- means for deriving, responsive to determining that a particular spatial neighboring block in the plurality of spatial neighboring blocks has a disparity motion vector, the disparity vector for the particular block based on the disparity motion vector of the particular spatial neighboring block;
- and
- means for deriving, responsive to determining that no spatial neighboring block in the plurality of spatial neighboring blocks has a disparity motion vector, the disparity vector for the particular block as the DDV for the slice;
- and
- means for storing, as the DDV for the slice, the disparity vector for the particular block.
A non-transitory computer-readable medium having instructions stored thereon that, when executed, cause one or more processors of a video coding device to:
- store only one derived disparity vector (DDV) for a slice of a current picture of the video data, wherein the slice includes multiple blocks;
- use the DDV for the slice in a Neighboring Block Based Disparity Vector (NBDV) derivation process to determine a disparity vector for a particular block, wherein the particular block is one of the blocks of the slice, wherein as part of causing the one or more processors to use the DDV for the slice in the NBDV derivation process, the instructions cause the one or more processors to:
- determine whether a temporal neighboring block has a disparity motion vector;
- responsive to determining that the temporal neighboring block has a disparity motion vector, derive the disparity vector for the particular block based on the disparity motion vector of the temporal neighboring block;
- responsive to determining that the temporal neighboring block does not have a disparity motion vector, determine whether any spatial neighboring block in a plurality of spatial neighboring blocks has a disparity motion vector;
- responsive to determining that a particular spatial neighboring block in the plurality of spatial neighboring blocks has a disparity motion vector, derive the disparity vector for the particular block based on the disparity motion vector of the particular spatial neighboring block;
- and
- responsive to determining that no spatial neighboring block in the plurality of spatial neighboring blocks has a disparity motion vector, derive the disparity vector for the particular block as the DDV for the slice;
- and
- store, as the DDV for the slice, the disparity vector for the particular block.
Dependencies are inferred from the claim text.