IP Library › Granted Patent US 11,722,692
Granted Patent B2
US 11,722,692 · App. 17/136,983 · Granted Aug 8, 2023

History-based motion vector predictor constraint for merge estimation region

Inventors: Han Huang (San Diego, CA); Wei-Jung Chien (San Diego, CA); Vadim Seregin (San Diego, CA); Marta Karczewicz (San Diego, CA)
Assignee: Qualcomm Incorporated
H04N19/58H04N19/105H04N19/139H04N19/167H04N19/176H04N19/436
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 11,722,692
App. No.
17/136,983
Granted
Aug 8, 2023
Kind
B2
Abstract

A device for decoding video data can be configured to store a table of history-based motion vector predictors (HMVPs); determine motion information for a first block of the video data; add the motion information for the first block to the table of HMVPs in response to determining that the first block is located at a bottom-right corner of a motion estimation region (MER); and use the table of HMVPs to decode a second block of the video data.

Claims (96)

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

(a) storing a table of history-based motion vector predictors (HMVPs);

(b) determining motion information for a first block of the video data;

(c) determining that the first block is located at a bottom-right corner of a motion estimation region (MER);

(d) determining if a value of (an x-coordinate of a top-left sample of the first block plus a width of the first block divided by a size of the MER) is greater than (the value of the x-coordinate of the top-left sample divided by the size of the MER);

(e) determining if a value of (a y-coordinate of a top-left sample of the first block plus a height of the first block divided by the size of the MER) is greater than (the value of the y-coordinate of the top-left sample divided by the size of the MER);

adding the motion information for the first block to the table of HMVPs in response to (c), (d) and (e) being true; and

using the table of HMVPs to decode a second block of the video data.

2. The method of claim 1 , wherein using the table of HMVPs to decode the second block of the video data comprises:

for the second block, generating a candidate list of motion information, wherein the candidate list includes a candidate from the table of HMVPs;

selecting a candidate from the candidate list of motion vectors; and

using the selected candidate to decode the second block of video data.

3. The method of claim 1 , wherein the MER is a first MER, and wherein the second block belongs to a second MER.

4. The method of claim 1 , wherein

the determining if a value of (an x-coordinate of a top-left sample of the first block plus a width of the first block divided by a size of the MER) is greater (the value of the x-coordinate of the top-left sample divided by the size of the MER) is represented as

floor( x Cb/merSize)<floor(( x Cb+cbWidth)/merSize),

wherein the determining if a value of (a y-coordinate of a top-left sample of the first block plus a height of the first block divided by the size of the MER) is greater than (the value of the y-coordinate of the top-left sample divided by the size of the MER) is represented as

floor( y Cb/merSize)<floor(( y Cb+cbHeight)/merSize), wherein

the xCb represents the x-coordinate of the top-left sample of the first block,

the yCb represents the y-coordinate of the top-left sample of the first block,

the cbWidth represents the width of the first block,

the cbHeight represents the height of the first block,

the merSize represents the size of the MER,

< represents a less than operation, and

the floor( ) represents a floor operation.

5. The method of claim 1 , further comprising:

outputting decoded video data that includes decoded versions of the first block and the second block.

6. The method of claim 1 , wherein the method of decoding is performed as part of a video encoding process, the method further comprising:

storing one or more decoded picture that include decoded versions of the first block and the second block; and

using the one or more stored decoded pictures to encode other blocks of other pictures of the video data.

7. A device for decoding video data, the device comprising:

a memory configured to store video data; and

one or more processors implemented in circuitry and configured to:

(a) store a table of history-based motion vector predictors (HMVPs);

(b) determine motion information for a first block of the video data;

(c) determine that the first block is located at a bottom-right corner of a motion estimation region (MER);

(d) determine if a value of (an x-coordinate of a top-left sample of the first block plus a width of the first block divided by a size of the MER) is greater than (the value of the x-coordinate of the top-left sample divided by the size of the MER);

(e) determine if a value of (a y-coordinate of a top-left sample of the first block plus a height of the first block divided by the size of the MER) is greater than (the value of the y-coordinate of the top-left sample divided by the size of the MER);

add the motion information for the first block to the table of HMVPs in response to (c), (d) and (e) being true; and

use the table of HMVPs to decode a second block of the video data.

8. The device of claim 7 , wherein to use the table of HMVPs to decode the second block of the video data, the one or more processors are further configured to:

for the second block, generate a candidate list of motion information, wherein the candidate list includes a candidate from the table of HMVPs;

select a candidate from the candidate list of motion vectors; and

use the selected candidate to decode the second block of video data.

9. The device of claim 7 , wherein the MER is a first MER, and wherein the second block belongs to a second MER.

10. The device of claim 7 , wherein

the determine if a value of (an x-coordinate of a top-left sample of the first block plus a width of the first block divided by a size of the MER) is greater (the value of the x-coordinate of the top-left sample divided by the size of the MER) is represented as

floor( x Cb/merSize)<floor(( x Cb+cbWidth)/merSize),

wherein the determine if a value of (a y-coordinate of a top-left sample of the first block plus a height of the first block divided by the size of the MER) is greater than (the value of the y-coordinate of the top-left sample divided by the size of the MER) is represented as

floor( y Cb/merSize)<floor(( y Cb+cbHeight)/merSize), wherein

the xCb represents the x-coordinate of the top-left sample of the first block,

the yCb represents the y-coordinate of the top-left sample of the first block,

the cbWidth represents the width of the first block,

the cbHeight represents the height of the first block,

the merSize represents the size of the MER,

< represents a less than operation, and

the floor( ) represents a floor operation.

11. The device of claim 7 , wherein the one or more processors are further configured to:

output decoded video data that includes decoded versions of the first block and the second block.

12. The device of claim 7 , wherein the device comprise a video encoder and wherein the one or more processors are further configured to:

store one or more decoded picture that include decoded versions of the first block and the second block; and

use the one or more stored decoded pictures to encode other blocks of other pictures of the video data.

13. The device of claim 7 , wherein the device comprises a wireless communication device, further comprising a receiver configured to receive encoded video data.

14. The device of claim 13 , wherein the wireless communication device comprises a telephone handset and wherein the receiver is configured to demodulate, according to a wireless communication standard, a signal comprising the encoded video data.

15. The device of claim 7 , further comprising:

a display configured to display decoded video data.

16. The device of claim 7 , wherein the device comprises one or more of a camera, a computer, a mobile device, a broadcast receiver device, or a set-top box.

17. The device of claim 7 , wherein the device comprises a wireless communication device, further comprising a transmitter configured to transmit encoded video data.

18. The device of claim 17 , wherein the wireless communication device comprises a telephone handset and wherein the transmitter is configured to modulate, according to a wireless communication standard, a signal comprising the encoded video data.

19. The device of claim 7 , further comprising:

a camera configured to capture the video data.

20. A computer-readable storage medium storing instructions that when executed by one or more processors cause the one or more processors to:

(a) store a table of history-based motion vector predictors (HMVPs);

(b) determine motion information for a first block of the video data;

(c) determine that the first block is located at a bottom-right corner of a motion estimation region (MER);

(d) determine if a value of (an x-coordinate of a top-left sample of the first block plus a width of the first block divided by a size of the MER) is greater than (the value of the x-coordinate of the top-left sample divided by the size of the MER);

(e) determine if a value of (a y-coordinate of a top-left sample of the first block plus a height of the first block divided by the size of the MER) is greater than (the value of the y-coordinate of the top-left sample divided by the size of the MER);

add the motion information for the first block to the table of HMVPs in response to (c), (d) and (e) being true; and

use the table of HMVPs to decode a second block of the video data.

21. The computer-readable storage medium of claim 20 , wherein to use the table of HMVPs to decode the second block of the video data, the instruction cause the one or more processors to:

for the second block, generate a candidate list of motion information, wherein the candidate list includes a candidate from the table of HMVPs;

select a candidate from the candidate list of motion vectors; and

use the selected candidate to decode the second block of video data.

22. The computer-readable storage medium of claim 20 , wherein the MER is a first MER, and wherein the second block belongs to a second MER.

23. The computer-readable storage medium of claim 20 , wherein

the determine if a value of (an x-coordinate of a top-left sample of the first block plus a width of the first block divided by a size of the MER) is greater (the value of the x-coordinate of the top-left sample divided by the size of the MER) is represented as

floor( x Cb/merSize)<floor(( x Cb+cbWidth)/merSize),

wherein the determine if a value of (a y-coordinate of a top-left sample of the first block plus a height of the first block divided by the size of the MER) is greater than (the value of the y-coordinate of the top-left sample divided by the size of the MER) is represented as

floor( y Cb/merSize)<floor(( y Cb+cbHeight)/merSize), wherein

the xCb represents the x-coordinate of the top-left sample of the first block,

the yCb represents the y-coordinate of the top-left sample of the first block,

the cbWidth represents the width of the first block,

the cbHeight represents the height of the first block,

the merSize represents the size of the MER,

< represents a less than operation, and

the floor( ) represents a floor operation.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 20, 2021
From: HUANG, HAN; CHIEN, WEI-JUNG; SEREGIN, VADIM; KARCZEWICZ, MARTA
To: QUALCOMM INCORPORATED
Reel/Frame 054968/0179 →
Continuity (2)
Provisional Application 62955977 · Dec 31, 2019
Related Publication 20210203982A1 · Jul 1, 2021