IP Library Granted Patent US 9,210,425
Granted Patent B2
US 9,210,425 · App. 13/766,691 · Granted Dec 8, 2015

Signaling of temporal motion vector predictor (MVP) flag for temporal prediction

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,210,425
App. No.
13/766,691
Granted
Dec 8, 2015
Kind
B2
Abstract

In one embodiment, a method determines whether a flag that controls whether a temporal motion vector is used for slice is present in an encoded bitstream. If the flag is present, the method determines a value for the flag, and if the flag is not present, the method infers that the value for the flag is a default value. Then, the method evaluates whether to determine a collocated reference picture in decoding the slice from the encoded bitstream based on the value of the flag.

Claims (72)

1. A method comprising:

determining, by a computing device, whether a flag that controls whether a temporal motion vector is used for a slice is present in an encoded bitstream;

if the flag is present, determining, by the computing device, a value for the flag;

if the flag is not present, inferring, by the computing device, that the value for the flag is a default value; and

evaluating, by the computing device, whether to determine a collocated reference picture in decoding the slice from the encoded bitstream based on the value of the flag.

2. The method of claim 1 , wherein the default value enables the using the temporal motion vector for the slice.

3. The method of claim 2 , wherein the default value is “1”.

4. The method of claim 1 , further comprising receiving the encoded bitstream from an encoder, wherein the encoder determined whether to encode a value for the flag in the encoded bitstream.

5. The method of claim 1 , wherein when the value of the flag enables the use of the temporal motion vector, the method further comprises:

determining the collocated reference pictures from a list of reference pictures.

6. The method of claim 1 , wherein:

a first value indicates that the temporal motion vector should be used in a temporal prediction process in encoding or decoding the slice, and

a second value indicates that the temporal motion vector should not be used in the temporal prediction process in decoding the slice.

7. The method of claim 1 , wherein the slice includes at least one block.

8. A method comprising:

determining, by a computing device, whether a first flag that controls whether a temporal motion vector is used for a slice is present in an encoded bitstream;

if the first flag is present, determining, by the computing device, a value for the first flag;

if the first flag is not present, inferring, by the computing device, that the value for the first flag is a default value;

evaluating, by the computing device, whether to determine a collocated reference picture in decoding the slice from the encoded bitstream based on the value of the first flag;

if the value of the first flag is a first value, performing:

evaluating, by the computing device, a first condition to determine whether to decode a second flag that indicates whether to use a first list containing a first list of reference pictures or a second list containing a second list of reference pictures for determining a collocated reference picture;

if the first condition indicates the second flag should be decoded, decoding, by the computing device, the second flag in decoding slice;

evaluating, by the computing device, a second condition to determine whether to decode position information that indicates a position of the collocated reference picture in one of the first list or the second list; and

if the second condition indicates the position information in decoding the slice; and

if the value of the first flag is a second value, not decoding, by the computing device, the second flag and the position information in decoding the slice.

9. The method of claim 8 , wherein evaluating the first condition comprises:

determining a slice type associated with the slice; and

if the slice type is equal to a B type, then decoding the second flag in decoding the slice.

10. The method of claim 9 , further comprising if the slice type is not equal to the B type, then not decoding the second flag in decoding the slice.

11. The method of claim 8 , wherein evaluating the second condition comprises:

determining a slice type associated with the slice;

if the slice type is not equal to an I type, performing:

evaluating a third condition to determine whether to decode the position information; and

if the third condition indicates the position information should be decoded, then decoding the position information in decoding the slice.

12. A decoder comprising:

one or more computer processors; and

a non-transitory computer-readable storage medium comprising instructions that, when executed, control the one or more computer processors to be configured for:

determining whether a flag that controls whether a temporal motion vector is used for a slice is present in an encoded bitstream;

if the flag is present, determining a value for the flag;

if the flag is not present, inferring that the value for the flag is a default value; and

evaluating whether to determine a collocated reference picture in decoding the slice from the encoded bitstream based on the value of the flag.

13. The decoder of claim 12 , wherein the default value enables the using the temporal motion vector for the slice.

14. A method comprising:

determining by a computing device, whether a temporal motion vector should be used for encoding slice;

determining, by the computing device, whether a flag that controls whether a temporal motion vector should be used for encoding the slice;

if the flag should be used, encoding, by the computing device, a value for the flag in an encoded bitstream for the slice;

if the flag should not be used, not encoding, by the computing device, the value for the flag in the encoded bitstream; and

sending, by the computing device, the encoded bitstream to a decoder, wherein the decoder infers that the value of the flag is a default value when the value for the flag is not present in the encoded bitstream.

15. The method of claim 14 , wherein the default value enables the using the temporal motion vector for the slice.

16. The method of claim 15 , wherein the default value is “1”.

17. The method of claim 14 , wherein when the value of the flag is first value that enables the use of the temporal motion vector, the method further comprising:

determining the collocated reference picture from a list of reference pictures.

18. A method comprising:

determining by a computing device, whether a temporal motion vector should be used for encoding slice;

determining, by the computing device, whether a first flag that controls whether a temporal motion vector should be used for encoding the slice;

if the first flag should be used, encoding, by the computing device, a value for the first flag in an encoded bitstream for the slice;

if the first flag should not be used, not encoding, by the computing device, the value for the first flag in the encoded bitstream;

sending, by the computing device, the encoded bitstream to a decoder, wherein the decoder infers that the value of the first flag is a default value when the value for the first flag is not present in the encoded bitstream;

if the value of the first flag is a first value, performing:

evaluating, by the computing device, a first condition to determine whether to decode a second flag that indicates whether to use a first list containing a first list of reference pictures or a second list containing a second list of reference pictures for determining a collocated reference picture;

if the first condition indicates the second flag should be encoded, encoding, by the computing device, the second flag in encoding the slice;

evaluating, by the computing device, a second condition to determine whether to encode position information that indicates a position of the collocated reference picture in one of the first list or the second list; and

if the first flag is a second value, not encoding, by the computing device, the second flag and the position information in encoding the slice.

19. An encoder comprising:

one or more computer processors; and

a non-transitory computer-readable storage medium comprising instructions that, when executed, control the one or more computer processors to be configured for:

determining whether a temporal motion vector should be used for encoding slice;

determining whether a flag that controls whether a temporal motion vector should be used for encoding the slice;

if the flag should be used, encoding a value for the flag in an encoded bitstream for the slice;

if the flag should not be used, not encoding the value for the flag in the encoded bitstream; and

sending the encoded bitstream to a decoder, wherein the decoder infers that the value of the flag is a default value when the value for the flag is not present in the encoded bitstream.

20. The encoder of claim 19 , wherein the default value enables the using the temporal vector for the slice.

Assignments (4)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 17, 2014
From: MOTOROLA MOBILITY LLC
To: GOOGLE TECHNOLOGY HOLDINGS LLC
Reel/Frame 034274/0290 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 9, 2013
From: GENERAL INSTRUMENT CORPORATION
To: GENERAL INSTRUMENT HOLDINGS, INC.
Reel/Frame 030764/0575 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 9, 2013
From: GENERAL INSTRUMENT HOLDINGS, INC.
To: MOTOROLA MOBILITY LLC
Reel/Frame 030866/0113 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 18, 2013
From: YU, YUE; LOU, JIAN; WANG, LIMIN
To: GENERAL INSTRUMENT CORPORATION
Reel/Frame 029825/0421 →