IP Library Granted Patent US 9,503,702
Granted Patent B2
US 9,503,702 · App. 13/839,447 · Granted Nov 22, 2016

View synthesis mode for three-dimensional video coding

Inventors: Ying Chen (San Diego, CA); Li Zhang (San Diego, CA); Marta Karczewicz (San Diego, CA)
Assignee: QUALCOMM Incorporated
H04N13/0048H04N19/109H04N19/176H04N19/597H04N19/70
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,503,702
App. No.
13/839,447
Granted
Nov 22, 2016
Kind
B2
Abstract

A video encoder signals, in a bitstream, a syntax element that indicates whether a current video unit is predicted from a VSP picture. The current video unit is a macroblock or a macroblock partition. The video encoder determines, based at least in part on whether the current video unit is predicted from the VSP picture, whether to signal, in the bitstream, motion information for the current video unit. A video decoder decodes the syntax element from the bitstream and determines, based at least in part on the syntax element, whether the bitstream includes the motion information.

Claims (119)

1. A method of decoding video data, the method comprising:

determining whether a current video unit of the video data is coded using a first mode, wherein the current video unit is either a macro block (MB) or an MB partition of a current texture view component of a current view of a current access unit;

when the current video unit is coded using the first mode:

determining a reference view picture for view synthesis prediction, wherein the reference view picture is in the current access unit and is in a view indicated in a slice header as being a view for view synthesis;

setting a reference index for the current video unit such that the reference index indicates the reference view picture; and

deriving, from either a depth map or disparity motion vectors of one or more blocks that spatially or temporally neighbor the current video unit, a motion vector for the current video unit, wherein the motion vector for the current video unit refers to the reference view picture and the motion vector for the current video unit is not equal to 0, wherein deriving the motion vector comprises:

determining a representative depth value;

converting the representative depth value to a disparity vector; and

setting the motion vector for the current video unit equal to the disparity vector;

when the current video unit is coded using a second mode, decoding, from the bitstream, the reference index for the current video unit and a motion vector difference for the current video unit;

generating a predictive block for the current video unit based on a reference block indicated by motion information of the current video unit, the motion information of the current video unit including the motion vector for the current video unit and the reference index for the current video unit; and

adding the predictive block to a residual block to construct a sample block of the current video unit.

2. The method of claim 1 , wherein the first mode is identified by one of the following syntax elements: a sub_mb_vsp_flag, a mb_part_vsp_flag, and a vsp_mb_flag.

3. The method of claim 1 , wherein determining whether the current video unit is coded using the first mode comprises determining that the current video unit is coded using the first mode when the reference index for the current video unit has a specific value.

4. The method of claim 1 , wherein setting the reference index for the current video unit comprises: for each i from 0 to a number of active reference pictures in a reference picture list RefPicList 0 , inclusive, if RefPicList 0 [ i ] is equal to the reference view picture for view synthesis prediction, setting the reference index to i.

5. A video decoding device comprising:

a buffer configured to store reconstructed sample blocks of video data; and

one or more processors configured to:

determine whether a current video unit of the video data is coded using a first mode, wherein the current video unit is either a macroblock (MB) or an MB partition of a current texture view component of a current view of a current access unit;

when the current video unit is coded using the first mode:

determine a reference view picture for view synthesis prediction, wherein the reference view picture is in the current access unit and is in a view indicated in a slice header as being a view for view synthesis;

set a reference index for the current video unit such that the reference index indicates the reference view picture; and

derive, from either a depth map or disparity motion vectors of one or more blocks that spatially or temporally neighbor the current video unit, a motion vector for the current video unit, wherein the motion vector for the current video unit refers to the reference view picture and the motion vector for the current video unit is not equal to 0, wherein to derive the motion vector for the current video unit, the one or more processors:

determine a representative depth value;

convert the representative depth value to a disparity vector; and

set the motion vector for the current video unit equal to the disparity vector;

when the current video unit is coded using a second mode, decode, from the bitstream, the reference index for the current video unit and a motion vector difference for the current video unit;

generate a predictive block for the current video unit based on a reference block indicated by motion information of the current video unit, the motion information of the current video unit including the motion vector for the current video unit and the reference index for the current video unit; and

add the predictive block to a residual block to construct a sample block of the current video unit.

6. The video decoding device of claim 5 , wherein the first mode is identified by one of the following syntax elements: a sub_mb_vsp_flag, a mb_part_vsp_flag, and a vsp_mb_flag.

7. The video decoding device of claim 5 , wherein the one or more processors are configured to determine that the current video unit is coded using the first mode when the reference index for the current video unit has a specific value.

8. The video decoding device of claim 5 , wherein the one or more processors are configured to set the reference index for the current video unit such that, for each i from 0 to a number of active reference pictures in a reference picture list RefPicList 0 , inclusive, if RefPicList 0 [ i ] is equal to the reference view picture for view synthesis prediction, the one or more processors set the reference index to i.

9. The video decoding device of claim 5 , wherein the video decoding device comprises at least one of:

an integrated circuit;

a microprocessor; or

a wireless communication device.

10. A video decoding device comprising:

means for determining whether a current video unit of video data is coded using a first mode, wherein the current video unit is either a macroblock (MB) or an MB partition of a current texture view-component of a current view of a current access unit;

means for determining, when the current video unit is coded using the first mode, a reference view picture for view synthesis prediction, wherein the reference view picture is in the current access unit and is in a view indicated in a slice header as being a view for view synthesis;

means for setting, when the current video unit is coded using the first mode, a reference index for the current video unit such that the reference index indicates the reference view picture;

means for deriving, when the current video unit is coded using the first mode, from either a depth map or disparity motion vectors of one or more blocks that spatially or temporally neighbor the current video unit, a motion vector for the current video unit, wherein the motion vector for the current video unit refers to the reference view picture and the motion vector for the current video unit is not equal to 0, wherein deriving the motion vector comprises:

determining a representative depth value;

converting the representative depth value to a disparity vector; and

setting the motion vector of the current video unit equal to the disparity vector;

means for decoding, when the current video unit is coded using a second mode, from the bitstream, the reference index for the current video unit and a motion vector difference for the current video unit;

means for generating a predictive block for the current video unit based on a reference block indicated by motion information of the current video unit, the motion information of the current video unit including the motion vector for the current video unit and the reference index for the current video unit; and

means for adding the predictive block to a residual block to construct a sample block of the current video unit.

11. A non-transitory computer-readable storage medium having instructions stored thereon that, when executed by one or more processors of a video decoding device, configure the video decoding device to:

determine whether a current video unit of video data is coded using a first mode, wherein the current video unit is either a macroblock (MB) or an MB partition of a current texture view component of a current view of a current access unit;

when the current video unit is coded using the first mode:

determine a reference view picture for view synthesis prediction, wherein the reference view picture is in the current access unit and is in a view indicated in a slice header as being a view for view synthesis;

set a reference index for the current video unit such that the reference index indicates the reference view picture;

derive, from either a depth map or disparity motion vectors of one or more blocks that spatially or temporally neighbor the current video unit, a motion vector for the current video unit, wherein the motion vector for the current video unit refers to the reference view picture and the motion vector for the current video unit is not equal to 0, wherein the instructions configure the video decoding device to:

determine a representative depth value;

convert the representative depth value to a disparity vector; and

set the motion vector for the current video unit equal to the disparity vector;

when the current video unit is coded using a second mode, decode, from the bitstream, the reference index for the current video unit and a motion vector difference for the current video unit;

generate a predictive block for the current video unit based on a reference block indicated by motion information of the current video unit, the motion information of the current video unit including the motion vector for the current video unit and the reference index for the current video unit; and

add predictive block to a residual block to construct a sample block of the current video unit.

12. A method for encoding video data, the method comprising:

signaling, in a bitstream that includes an encoded representation of multiple texture views of the video data and multiple depth views of the video data, whether a current video unit is coded using a first mode, wherein the current video unit is either a macro block (MB) or an MB partition of a current texture view component of a current view of a current access unit;

when the current video unit is coded using a second mode, signaling, in the bitstream, a reference index for the current video unit and a motion vector for the current video unit;

when the current video unit is coded using the first mode:

determining a reference view picture for view synthesis prediction, wherein the reference view picture is in the current access unit and is in a view indicated in a slice header as being a view for view synthesis;

setting the reference index for the current video unit such that the reference index indicates the reference view picture;

deriving, from either a depth map or disparity motion vectors of one or more blocks that spatially or temporally neighbor the current video unit, the motion vector for the current video unit, wherein the motion vector for the current video unit refers to the reference view picture and the motion vector for the current video unit is not equal to 0, wherein deriving the motion vector comprises:

determining a representative depth value;

converting the representative depth value to a disparity vector; and

setting the motion vector for the current video unit to the disparity vector; and

omitting, from the bitstream, the motion vector for the current video unit; and

outputting the bitstream.

13. The method of claim 12 , wherein the first mode is identified by one of the following syntax elements: a sub_mb_vsp_flag, a mb_part_vsp_flag, and a vsp_mb_flag.

14. The method of claim 12 , wherein signaling whether the current video unit is coded using the first mode comprises signaling, in the bitstream, that the reference index for the current video unit has a specific value.

15. The method of claim 12 , wherein setting the reference index for the current video unit comprises: for each i from 0 to a number of active reference pictures in a reference picture list RefPicList 0 , inclusive, if RefPicList 0 [ i ] is equal to the reference view picture for view synthesis prediction, setting the reference index to i.

16. A video encoding device comprising:

one or more processors configured to:

signal, in a bitstream that includes an encoded representation of multiple texture views of video data and multiple depth views of the video data, whether a current video unit is coded using a first mode, wherein the current video unit is either a macroblock (MB) or an MB partition of a current texture view component of a current view of a current access unit;

when the current video unit is coded using a second mode, signal, in the bitstream, a reference index for the current video unit and a motion vector for the current video unit;

when the current video unit is coded using the first mode:

determine a reference view picture for view synthesis prediction, wherein the reference view picture is in the current access unit and is in a view indicated in a slice header as being a view for view synthesis;

set the reference index for the current video unit such that the reference index indicates the reference view picture;

derive, from either a depth map or disparity motion vectors of one or more blocks that spatially or temporally neighbor the current video unit, the motion vector for the current video unit, wherein the motion vector for the current video unit refers to the reference view picture and the motion vector for the current video unit is not equal to 0, wherein to derive the motion vector, the one or more processors:

determine a representative depth value;

convert the representative depth value to a disparity vector; and

set the motion vector for the current video unit to the disparity vector; and

omit, from the bitstream, the motion vector for the current video unit; and

an output interface configured to output the bitstream.

17. The video encoding device of claim 16 , wherein the first mode is identified by one of the following syntax elements: a sub_mb_vsp_flag, a mb_part_vsp_flag, and a vsp_mb_flag.

18. The video encoding device of claim 16 , wherein the one or more processors are configured to signal whether the current video unit is coded using the first mode by signaling, in the bitstream, that the reference index for the current video unit has a specific value.

19. The video encoding device of claim 16 , wherein the one or more processors are configured such that, for each i from 0 to a number of active reference pictures in a reference picture list RefPicList 0 , inclusive, if RefPicList 0 [ i ] is equal to the reference view picture for view synthesis prediction, the one or more processors set the reference index to i.

20. The video decoding device of claim 5 , further comprising a display configured to display decoded video data.

21. The video encoding device of claim 16 , wherein the video encoding device comprises at least one of:

an integrated circuit;

a microprocessor; or

a wireless communication device.

22. The video encoding device of claim 16 , further comprising a camera configured to capture the video data.

23. A video encoding device comprising:

means for signaling, in a bitstream that includes an encoded representation of multiple texture views of video data and multiple depth views of the video data, whether a current video unit is coded using a first mode, wherein the current video unit is either a macro block (MB) or an MB partition of a current texture view component of a current view of a current access unit;

means for signaling, when the current video unit is coded using a second mode, in the bitstream, a reference index for the current video unit and a motion vector for the current video unit;

means for determining, when the current video unit is coded using the first mode, a reference view picture for view synthesis prediction, wherein the reference view picture is in the current access unit and is in a view indicated in a slice header as being a view for view synthesis;

means for setting, when the current video unit is coded using the first mode, the reference index for the current video unit such that the reference index indicates the reference view picture;

means for deriving, when the current video unit is coded using the first mode, from either a depth map or disparity motion vectors of one or more blocks that spatially or temporally neighbor the current video unit, the motion vector for the current video unit, wherein the motion vector for the current video unit refers to the reference view picture and the motion vector for the current video unit is not equal to 0, wherein deriving the motion vector for the current video unit comprises:

determining a representative depth value;

converting the representative depth value to a disparity vector; and

setting the motion vector for the current video unit to the disparity vector; and

means for omitting, when the current video unit is coded using the first mode, from the bitstream, the motion vector for the current video unit; and

means for outputting the bitstream.

24. A non-transitory computer-readable storage medium having instructions stored thereon that, when executed by one or more processors of a video encoding device, configure the video encoding device to:

signal, in a bitstream that includes an encoded representation of multiple texture views of video data and multiple depth views of the video data, whether a current video unit is coded using a first mode, wherein the current video unit is either a macroblock (MB) or an MB partition of a current texture view component of a current view of a current access unit;

when the current video unit is coded using a second mode, signal, in the bitstream, a reference index for the current video unit and a motion vector for the current video unit;

when the current video unit is coded using the first mode:

determine a reference view picture for view synthesis prediction, wherein the reference view picture is in the current access unit and is in a view indicated in a slice header as being a view for view synthesis;

set the reference index for the current video unit such that the reference index indicates the reference view picture;

derive, from either a depth map or disparity motion vectors of one or more blocks that spatially or temporally neighbor the current video unit, the motion vector for the current video unit, wherein the motion vector for the current video unit refers to the reference view picture and the motion vector for the current video unit is not equal to 0, wherein the instructions configure the video encoding device to:

determine a representative depth value;

convert the representative depth value to a disparity vector; and

set the motion vector for the current video unit to the disparity vector; and

omit, from the bitstream, the motion vector for the current video unit; and

output the bitstream.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 28, 2013
From: CHEN, YING; ZHANG, LI; YU, YANG; VAN DER AUWERA, GEERT; LI, XIANG; KARCZEWICZ, MARTA
To: QUALCOMM INCORPOATED
Reel/Frame 030108/0948 →
Continuity (8)
Provisional Application 61624157 · Apr 13, 2012
Provisional Application 61635761 · Apr 19, 2012
Provisional Application 61639064 · Apr 26, 2012
Provisional Application 61639845 · Apr 27, 2012
Provisional Application 61642379 · May 3, 2012
Provisional Application 61646810 · May 14, 2012
Provisional Application 61696661 · Sep 4, 2012
Related Publication 20130271566A1 · Oct 17, 2013