Sub-PU motion prediction for texture and depth coding
In accordance with one or more techniques of this disclosure, a video coder may divide a current prediction unit (PU) into a plurality of sub-PUs. Each of the sub-PUs may have a size smaller than a size of the PU. Furthermore, the current PU may be in a depth view of the multi-view video data. For each respective sub-PU from the plurality of sub-PUs, the video coder may identify a reference block for the respective sub-PU. The reference block may be co-located with the respective sub-PU in a texture view corresponding to the depth view. The video coder may use motion parameters of the identified reference block for the respective sub-PU to determine motion parameters for the respective sub-PU.
1. A method of decoding multi-view video data, the method comprising:
dividing, by a video decoder, a current prediction unit (PU) of a current coding unit (CU) of a current picture into a plurality of sub-PUs, each of the sub-PUs having a size smaller than a size of the current PU, the current PU being in a depth view of the multi-view video data;
deriving, by the video decoder, default motion parameters, for the current PU, from a texture block co-located with a center sub-PU of the current PU;
for each respective sub-PU of the plurality of sub-PUs:
identifying, by the video decoder, a reference block for the respective sub-PU, wherein the identified reference block for the respective sub-PU is co-located with the respective sub-PU and the identified reference block for the respective sub-PU is in a texture view corresponding to the depth view,
when motion parameters of the identified reference block for the respective sub-PU are available, using, by the video decoder, motion parameters of the identified reference block for the respective sub-PU to determine motion parameters for the respective sub-PU, wherein the motion parameters of the identified reference block comprise a motion vector,
when the motion parameters of the identified reference block for the respective sub-PU are not available, setting the motion parameters of the respective sub-PU to the default motion parameters, and
using, by the video decoder, the motion parameters for the respective sub-PU to determine a respective predictive block for the respective sub-PU;
determining, by the video decoder, a predictive block for the current PU by assembling the predictive blocks for the sub-PUs; and
reconstructing, by the video decoder, the current PU based at least in part on the predictive block for the current PU.
2. The method of claim 1 , wherein for each respective sub-PU of the plurality of sub-PUs, the motion parameters of the identified reference block for the respective sub-PU include a first motion vector, a second motion vector, a first reference index, and a second reference index, the first motion vector and the first reference index being for a first reference picture list, the second motion vector and the second reference index being for a second reference picture list.
3. The method of claim 1 , further comprising:
including, by the video decoder, a particular candidate in a merge candidate list of the current PU, wherein the particular candidate has the motion parameters of each of the sub-PUs;
obtaining, by the video decoder, from a bitstream, a syntax element that indicates a selected candidate in the merge candidate list; and
based on the selected candidate being the particular candidate, invoking, by the video decoder, motion compensation for each of the sub-PUs.
4. The method of claim 1 ,
wherein the default motion parameters comprise a first default motion vector, a second default motion vector, a first default reference index, and a second default reference index, the first default motion vector and the first default reference index being for a first reference picture list, the second default motion vector and the second default reference index being for a second reference picture list.
5. The method of claim 1 , wherein each sub-PU of the plurality of sub-PUs has a block size equal to 4×4, 8×8, or 16×16.
6. The method of claim 1 , wherein using the motion parameters of the identified reference block for the respective sub-PU to determine the motion parameters for the respective sub-PU comprises using, by the video decoder, the motion parameters of the identified reference block for the respective sub-PU as the motion parameters for the respective sub-PU.
7. The method of claim 1 , further comprising:
dividing the current CU of the current picture into a plurality of PUs, the plurality of PUs including the current PU.
8. The method of claim 1 , wherein the center sub-PU is the sub-PU with the following coordinates relative to a top-left sample of a prediction block of the current PU:
((( nPSW >>( u+ 1))−1)<< u , (( nPSH >>( u+ 1))−1<< u )
or with the following coordinates relative to a top-left sample of a prediction block of the current PU:
(( nPSW >>( u+ 1))<< u , (( nPSH >>( u+ 1))<< u )
where nPSW and nPSH are the width and height of the prediction block of the current PU, and where the sub-PU size is 2 U ×2 U .
9. A method of encoding multi-view video data, the method comprising:
dividing, by a video encoder, a current prediction unit (PU) of a current coding unit (CU) of a current picture into a plurality of sub-PUs, each of the sub-PUs having a size smaller than a size of the current PU, the current PU being in a depth view of the multi-view video data;
deriving, by the video encoder, default motion parameters, for the current PU, from a texture block co-located with a center sub-PU of the current PU;
for each respective sub-PU of the plurality of sub-PUs:
identifying, by the video encoder, a reference block for the respective sub-PU, wherein the identified reference block for the respective sub-PU is co-located with the respective sub-PU and the identified reference block for the respective sub-PU is in a texture view corresponding to the depth view,
when motion parameters of the identified reference block for the respective sub-PU are available, using, by the video encoder, motion parameters of the identified reference block for the respective sub-PU to determine motion parameters for the respective sub-PU, wherein the motion parameters of the identified reference block comprise a motion vector,
when the motion parameters of the identified reference block for the respective sub-PU are not available, setting the motion parameters of the respective sub-PU to the default motion parameters, and
using, by the video encoder, the motion parameters for the respective sub-PU to determine a respective predictive block for the respective sub-PU;
determining, by the video encoder, a predictive block for the current PU by assembling the predictive blocks for the sub-PUs; and
encoding, by the video encoder, the current PU based at least in part on the predictive block for the current PU.
10. The method of claim 9 , wherein for each respective sub-PU of the plurality of sub-PUs, the motion parameters of the identified reference block for the respective sub-PU include a first motion vector, a second motion vector, a first reference index, and a second reference index, the first motion vector and the first reference index being for a first reference picture list, the second motion vector and the second reference index being for a second reference picture list.
11. The method of claim 9 , further comprising:
including, by the video encoder, a particular candidate in a merge candidate list of the current PU, wherein the particular candidate has the motion parameters of each of the sub-PUs;
signaling, by the video encoder, in a bitstream, a syntax element that indicates a selected candidate in the merge candidate list; and
based on the selected candidate being the particular candidate, invoking, by the video encoder, motion compensation for each of the sub-PUs.
12. The method of claim 9 ,
wherein the default motion parameters comprise a first default motion vector, a second default motion vector, a first default reference index, and a second default reference index, the first default motion vector and the first default reference index being for a first reference picture list, the second default motion vector and the second default reference index being for a second reference picture list.
13. The method of claim 9 , wherein each sub-PU of the plurality of sub-PUs has a block size equal to 4×4, 8×8, or 16×16.
14. The method of claim 9 , wherein using the motion parameters of the identified reference block for the respective sub-PU to determine the motion parameters for the respective sub-PU comprises using, by the video encoder, the motion parameters of the identified reference block for the respective sub-PU as the motion parameters for the respective sub-PU.
15. The method of claim 9 , further comprising:
dividing the current CU of the current picture into a plurality of PUs, the plurality of PUs including the current PU.
16. The method of claim 9 , wherein the center sub-PU is the sub-PU with the following coordinates relative to a top-left sample of a prediction block of the current PU:
((( nPSW >>( u+ 1))−1)<< u , (( nPSH >>( u+ 1))−1<< u )
or with the following coordinates relative to a top-left sample of a prediction block of the current PU:
(( nPSW >>( u+ 1))<< u , (( nPSH >>( u+ 1))<< u )
where nPSW and nPSH are the width and height of the prediction block of the current PU, and where the sub-PU size is 2 U ×2 U .
17. A device for coding multi-view video data, the device comprising:
means for dividing a current prediction unit (PU) of a current coding unit (CU) of a current picture into a plurality of sub-PUs, each of the sub-PUs having a size smaller than a size of the current PU, the current PU being in a depth view of the multi-view video data;
means for deriving default motion parameters, for the current PU, from a texture block co-located with a center sub-PU of the current PU;
for each respective sub-PU of the plurality of sub-PUs:
means for identifying a reference block for the respective sub-PU, wherein the identified reference block for the respective sub-PU is co-located with the respective sub-PU and the identified reference block for the respective sub-PU is in a texture view corresponding to the depth view,
means for using motion parameters of the identified reference block for the respective sub-PU to determine motion parameters for the respective sub-PU when motion parameters of the identified reference block for the respective sub-PU are available, wherein the motion parameters of the identified reference block comprise a motion vector,
means for setting the motion parameters of the respective sub-PU to the default motion parameters when the motion parameters of the identified reference block for the respective sub-PU are not available, and
means for using the motion parameters for the respective sub-PU to determine a respective predictive block for the respective sub-PU;
means for determining a predictive block for the current PU by assembling the predictive blocks for the sub-PUs; and
means for reconstructing the current PU based at least in part on the predictive block for the current PU.
18. The device of claim 17 , wherein for each respective sub-PU of the plurality of sub-PUs, the motion parameters of the identified reference block for the respective sub-PU include a first motion vector, a second motion vector, a first reference index, and a second reference index, the first motion vector and the first reference index being for a first reference picture list, the second motion vector and the second reference index being for a second reference picture list.
19. The device of claim 17 , further comprising:
means for including a particular candidate in a merge candidate list of the current PU, wherein the particular candidate has the motion parameters of each of the sub-PUs;
means for obtaining, from a bitstream, a syntax element that indicates a selected candidate in the merge candidate list; and
means for invoking motion compensation for each of the sub-PUs based on the selected candidate being the particular candidate.
20. The device of claim 17 ,
wherein the default motion parameters comprise a first default motion vector, a second default motion vector, a first default reference index, and a second default reference index, the first default motion vector and the first default reference index being for a first reference picture list, the second default motion vector and the second default reference index being for a second reference picture list.
21. The device of claim 17 , further comprising:
means for dividing the current CU of the current picture into a plurality of PUs, the plurality of PUs including the current PU.
22. The device of claim 17 , wherein the center sub-PU is the sub-PU with the following coordinates relative to a top-left sample of a prediction block of the current PU:
((( nPSW >>( u+ 1))−1)<< u , (( nPSH >>( u+ 1))−1<< u )
or with the following coordinates relative to a top-left sample of a prediction block of the current PU:
(( nPSW >>( u+ 1))<< u , (( nPSH >>( u+ 1))<< u )
where nPSW and nPSH are the width and height of the prediction block of the current PU, and where the sub-PU size is 2 U ×2 U .
23. A device for coding multi-view video data, the device comprising:
a memory configured to store the multi-view video data; and
a video coder configured to:
divide a current prediction unit (PU) of a current coding unit (CU) of a current picture into a plurality of sub-PUs, each of the sub-PUs having a size smaller than a size of the current PU, the current PU being in a depth view of the multi-view video data;
derive default motion parameters, for the current PU, from a texture block co-located with a center sub-PU of the current PU;
for each respective sub-PU of the plurality of sub-PUs:
identify a reference block for the respective sub-PU, wherein the identified reference block for the respective sub-PU is co-located with the respective sub-PU and the identified reference block for the respective sub-PU is in a texture view corresponding to the depth view,
when motion parameters of the identified reference block for the respective sub-PU are available, use motion parameters of the identified reference block for the respective sub-PU to determine motion parameters for the respective sub-PU, wherein the motion parameters of the identified reference block comprise a motion vector,
when the motion parameters of the identified reference block for the respective sub-PU are not available, setting the motion parameters of the respective sub-PU to the default motion parameters, and
use the motion parameters for the respective sub-PU to determine a respective predictive block for the respective sub-PU;
determine a predictive block for the current PU by assembling the predictive blocks for the sub-PUs; and
reconstruct the current PU based at least in part on the predictive block for the current PU.
24. The device of claim 23 , wherein for each respective sub-PU of the plurality of sub-PUs, the motion parameters of the identified reference block for the respective sub-PU include a first motion vector, a second motion vector, a first reference index, and a second reference index, the first motion vector and the first reference index being for a first reference picture list, the second motion vector and the second reference index being for a second reference picture list.
25. The device of claim 23 , wherein the video coder is further configured to:
include a particular candidate in a merge candidate list of the current PU, wherein the particular candidate has the motion parameters of each of the sub-PUs;
obtain, from a bitstream, a syntax element that indicates a selected candidate in the merge candidate list; and
based on the selected candidate being the particular candidate, invoke motion compensation for each of the sub-PUs.
26. The device of claim 23 ,
wherein the default motion parameters comprise a first default motion vector, a second default motion vector, a first default reference index, and a second default reference index, the first default motion vector and the first default reference index being for a first reference picture list, the second default motion vector and the second default reference index being for a second reference picture list.
27. The device of claim 23 , wherein each sub-PU of the plurality of sub-PUs has a block size equal to 4×4, 8×8, or 16×16.
28. The device of claim 23 , wherein the video coder is configured such that, as part of using the motion parameters of the identified reference block for the respective sub-PU to determine the motion parameters for the respective sub-PU, the video coder uses the motion parameters of the identified reference block for the respective sub-PU as the motion parameters for the respective sub-PU.
29. The device of claim 23 , wherein the video coder is further configured to:
divide the current CU of the current picture into a plurality of PUs, the plurality of PUs including the current PU.
30. The device of claim 23 , wherein the center sub-PU is the sub-PU with the following coordinates relative to a top-left sample of a prediction block of the current PU:
((( nPSW >>( u+ 1))−1)<< u , (( nPSH >>( u+ 1))−1<< u )
or with the following coordinates relative to a top-left sample of a prediction block of the current PU:
(( nPSW >>( u+ 1))<< u , (( nPSH >>( u+ 1))<< u )
where nPSW and nPSH are the width and height of the prediction block of the current PU, and where the sub-PU size is 2 U ×2 U .