IP Library › Granted Patent US 10,771,811
Granted Patent B2
US 10,771,811 · App. 16/253,049 · Granted Sep 8, 2020

Overlapped motion compensation for video coding

Inventors: Hongbin Liu (Beijing, CN); Ying Chen (San Diego, CA); Jianle Chen (San Diego, CA); Xiang Li (Los Gatos, CA); Marta Karczewicz (San Diego, CA)
Assignee: QUALCOMM Incorporated
H04N19/583H04N19/167H04N19/176H04N19/423H04N19/44H04N19/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 10,771,811
App. No.
16/253,049
Granted
Sep 8, 2020
Kind
B2
Abstract

In an example, a method of decoding video data may include receiving a first block of video data. The first block of video data may be a sub-block of a prediction unit. The method may include receiving one or more blocks of video data that neighbor the first block of video data. The method may include determining motion information of at least one of the one or more blocks of video data that neighbor the first block of video data. The method may include decoding, using overlapped block motion compensation, the first block of video data based at least in part on the motion information of the at least one of the one or more blocks that neighbor the first block of video data.

Claims (92)

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

receiving, in an encoded video bitstream, a first coding unit of the encoded video data, the first coding unit being partitioned into a plurality of sub-blocks including a first sub-block;

receiving, in the encoded video bitstream, a second coding unit comprising one or more neighboring sub-blocks, each of the one or more neighboring sub-blocks neighboring the first sub-block;

parsing, from the encoded video bitstream, a syntax element;

determining that the syntax element is set to a value indicating that the first sub-block is encoded according to an overlapped block motion compensation mode;

determining motion information of one or more of the neighboring sub-blocks; and

based on the first sub-block being encoded according to the overlapped block motion compensation mode, decoding, using the overlapped block motion compensation mode, the first sub-block using the determined motion information of one or more of the neighboring sub-blocks.

2. The method of claim 1 , further comprising:

determining that one or more of the neighboring sub-blocks is not available; and

decoding the first sub-block without using any motion information of the one or more neighboring sub-blocks that is determined to not be available.

3. The method of claim 1 , wherein determining the motion information of one or more of the neighboring sub-blocks comprises decoding one or more of the neighboring sub-blocks.

4. The method of claim 1 , further comprising:

generating a first prediction block for the first sub-block, wherein the first prediction block includes a respective value for each respective pixel position of a plurality of pixel positions for the first sub-block;

assigning, based on a size of the first sub-block, one or more weighted values to one or more values of the first prediction block; and

decoding the first sub-block using the one or more weighted values assigned to the one or more values of the first prediction block generated for the first sub-block.

5. The method of claim 4 , further comprising:

generating a first neighbor prediction block based on the determined motion information of at least a first neighboring sub-block of the neighboring sub-blocks;

assigning, based on a size of the first neighboring sub-block, one or more weighted values to one or more values of the first neighbor prediction block; and

decoding the first sub-block using the one or more weighted values assigned to the one or more values of the first neighbor prediction block.

6. The method of claim 5 , further comprising:

modifying one or more values of the first prediction block based on the one or more weighted values assigned to the one or more values of the first neighbor prediction block to form a first modified prediction block; and

decoding the first sub-block using the first modified prediction block.

7. The method of claim 6 , further comprising:

generating a second neighbor prediction block based on the determined motion information of a second neighboring sub-block of the neighboring sub-blocks;

assigning, based on a size of the second neighboring sub-block, one or more weighted values to one or more values of the second neighbor prediction block; and

modifying one or more values of the first and second neighbor prediction blocks based on the one or more weighted values assigned to the one or more values of the first and second prediction blocks to generate the first modified prediction block.

8. The method of claim 1 ,

wherein the value of the syntax element is a true value, wherein the true value indicates that the first sub-block is encoded according to the overlapped block motion compensation mode, and

wherein determining that the first sub-block is encoded according to the overlapped block motion compensation mode based on the value of the syntax element comprises determining that the first sub-block is encoded according to the overlapped block motion compensation mode based on the value of the syntax element being equal to the true value.

9. The method of claim 1 , the method being executable on a wireless communication device, wherein the wireless communication device comprises:

a receiver configured to receive the first sub-block of video data and the syntax element;

a memory configured to store the first sub-block of video data; and

a processor configured to execute instructions to process the first sub-block of video data stored in the memory.

10. The method of claim 9 , wherein the wireless communication device is a

telephone, and the first sub-block of video data and the syntax element are received by the receiver and demodulated according to a communication standard.

11. The method of claim 1 , wherein the first sub-block is at a top boundary or a left boundary of the first coding unit neighboring the second coding unit.

12. The method of claim 1 , wherein one or more of the neighboring sub-blocks of the second coding unit neighbors the first coding unit at a top boundary or a left boundary of the first coding unit.

13. The method of claim 1 , wherein the determined motion information of the neighboring sub-blocks is determined from subsampled or compressed motion information of the neighboring sub-blocks.

14. A device for decoding encoded video data, the device comprising:

a memory configured to store the video data; and

one or more processors implemented in circuitry and configured to:

receive, in an encoded video stream of the video data, a first coding unit of the encoded video data, the first coding unit being partitioned into a plurality of sub-blocks including a first sub-block;

receive, in the encoded video stream, a second coding unit comprising one or more neighboring sub-blocks, each of the one or more neighboring sub-blocks neighboring the first sub-block;

parse, from the encoded video stream, a syntax element;

determine that the syntax element is set to a value indicating that the first sub-block is encoded according to an overlapped block motion compensation mode;

determine motion information of one or more of the neighboring sub-blocks; and

based on the first sub-block being encoded according to the overlapped block motion compensation mode, decode, using the overlapped block motion compensation mode, the first sub-block using the determined motion information of one or more of the neighboring sub-blocks.

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

determine that one or more of the neighboring sub-blocks is not available; and

decode the first sub-block without using any motion information of the one or more neighboring sub blocks that is determined to not be available.

16. The device of claim 14 , wherein to determine the motion information of one or more of the neighboring sub-blocks, the one or more processors are further configured to decode one or more of the neighboring sub blocks.

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

generate a first prediction block for the first sub-block, wherein the first prediction block includes a respective value for each respective pixel position of a plurality of pixel positions for the first sub-block;

assign, based on a size of the first sub-block, one or more weighted values to one or more values of the first prediction block; and

decode the first sub-block using the one or more weighted values assigned to the one or more values of the first prediction block generated for the first sub-block.

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

generate a first neighbor prediction block based on the determined motion information of at least a first neighboring sub-block of the neighboring sub-blocks;

assign, based on a size of the first neighboring sub-block, one or more weighted values to one or more values of the first neighbor prediction block; and

decode the first sub-block using the one or more weighted values assigned to the one or more values of the first neighbor prediction block.

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

modify one or more values of the first prediction block based on the one or more weighted values assigned to the one or more values of the first neighbor prediction block to form a first modified prediction block; and

decode the first sub-block using the first modified prediction block.

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

generate a second neighbor prediction block based on the determined motion information of a second neighboring sub-block of the neighboring sub-blocks;

assign, based on a size of the second neighboring sub-block, one or more weighted values to one or more values of the second neighbor prediction block; and

modify one or more values of the first and second neighbor prediction blocks based on the one or more weighted values assigned to the one or more values of the first and second prediction blocks to generate the first modified prediction block.

21. The device of claim 14 ,

wherein the value of the syntax element is a true value, wherein the true value indicates that the first sub-block is encoded according to the overlapped block motion compensation mode, and

wherein to determine that the first sub-block is encoded according to the overlapped block motion compensation mode based on the value of the syntax element, the one or more processors are further configured to determine that the first sub-block is encoded according to the overlapped block motion compensation mode based on the value of the syntax element being equal to the true value.

22. The device of claim 14 , wherein the first sub-block is at a top boundary or a left boundary of the first coding unit neighboring the second coding unit.

23. The device of claim 14 , wherein one or more of the neighboring sub-blocks of the second coding unit neighbors the first coding unit at a top boundary or a left boundary of the first coding unit.

24. The device of claim 14 , wherein the determined motion information of the neighboring sub-blocks is determined from subsampled or compressed motion information of the neighboring sub-blocks.

25. The device of claim 14 , wherein the device comprises a wireless communication device comprising:

a receiver configured to receive the first sub-block of video data and the syntax element;

a memory configured to store the first sub-block of video data; and

a processor configured to execute instructions to process the first sub-block of video data stored in the memory.

26. The device of claim 25 , wherein the wireless communication device comprises a telephone, and the first sub-block of video data and the syntax element are received by the receiver and demodulated according to a communication standard.

27. A non-transitory computer-readable storage medium configured to store instructions that when executed by one or processors cause the one or more processors to:

receive, in an encoded video bitstream, a first coding unit of the encoded video data, the first coding unit being partitioned into a plurality of sub-blocks including a first sub-block;

receive, in the encoded video bitstream, a second coding unit comprising one or more neighboring sub-blocks, each of the one or more neighboring sub-blocks neighboring the first sub-block;

parse, from the encoded video bitstream, a syntax element;

determine that the syntax element is set to a value indicating that the first sub-block is encoded according to an overlapped block motion compensation mode;

determine motion information of one or more of the neighboring sub-blocks; and

based on the first sub-block being encoded according to the overlapped block motion compensation mode, decode, using the overlapped block motion compensation mode, the first sub-block using the determined motion information of one or more of the neighboring sub-blocks.

28. The non-transitory computer-readable storage medium of claim 27 , storing further instructions that when executed by the one or more processors cause the one or more processors to:

determine that one or more of the neighboring sub-blocks is not available; and

decode the first sub-block without using any motion information of the one or more neighboring sub blocks that is determined to not be available.

29. The non-transitory computer-readable storage medium of claim 27 , wherein to determine the motion information of one or more of the neighboring sub-blocks, the instructions cause the one or more processors to decode one or more of the neighboring sub blocks.

30. The non-transitory computer-readable storage medium of claim 27 , storing further instructions that when executed by the one or more processors cause the one or more processors to:

generate a first prediction block for the first sub-block, wherein the first prediction block includes a respective value for each respective pixel position of a plurality of pixel positions for the first sub-block;

assign, based on a size of the first sub-block, one or more weighted values to one or more values of the first prediction block; and

decode the first sub-block using the one or more weighted values assigned to the one or more values of the first prediction block generated for the first sub-block.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 21, 2019
From: LIU, HONGBIN; CHEN, YING; CHEN, JIANLE; LI, XIANG; KARCZEWICZ, MARTA
To: QUALCOMM INCORPORATED
Reel/Frame 048102/0333 →
Continuity (4)
Continuation 15005934 · Jan 25, 2016
Provisional Application 62107964 · Jan 26, 2015
Provisional Application 62116631 · Feb 16, 2015
Related Publication 20190158876A1 · May 23, 2019
Cited By (10)
US 12,231,620 US 12,368,880 US 12,401,820 US 12,537,938 US 12,549,756 US 12,556,738 US 12,563,194 US 12,604,029 US 12,641,216 US 12,647,599