IP Library Granted Patent US 11,616,968
Granted Patent B2
US 11,616,968 · App. 17/094,742 · Granted Mar 28, 2023

Method and system of motion estimation with neighbor block pattern for video coding

Inventors: Zhipin Deng (Beijing, CN); Iole Moccagatta (San Jose, CA); Lidong Xu (Beijing, CN); Wenhao Zhang (Beijing, CN); Yi-Jen Chiu (San Jose, CA)
Assignee: Intel Corporation
H04N19/51G06T7/238H04N19/176H04N19/57H04N19/593G06T2207/10016G06T2207/20021
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,616,968
App. No.
17/094,742
Granted
Mar 28, 2023
Kind
B2
Abstract

Techniques related to motion estimation with neighbor block pattern for video coding.

Claims (53)

1. At least one non-transitory article comprising a computer-readable medium having instructions stored thereon that when executed cause a computing device to operate by:

receiving, by at least one processor, multiple frames of pixel data; and

determining, by at least one processor, at least one inter-prediction motion vector candidate of a current block on a current frame comprising:

determining at least one neighbor block location on the current frame and including at least one neighbor block adjacent the current block, wherein the current block is not limited to being the same size as the neighbor blocks,

computing at least one neighbor block coordinate relative to the position of the current block on the current frame comprising entering a dimension of at least one side of the current block into a substantially same neighbor block pattern formula regardless of the size of the current block relative to the neighbor blocks, and

using motion vectors of the at least one neighbor blocks on at least one location determined by using the at least one neighbor block coordinate.

2. The article of claim 1 comprising using no less than 8×8 block-based motion vectors from 8×8 neighbor blocks for current blocks that have a sub-block size less than 8×8.

3. The article of claim 1 wherein a block area permitted to have the neighbor blocks above the current block comprises a single row above and adjacent the current block.

4. The article of claim 3 wherein the block area permitted to have neighbor blocks is at most three columns to the immediate left of the current block.

5. The article of claim 1 wherein a block area permitted to have the neighbor blocks comprises a single row and a single column both adjacent the current block and having data stored by a single line buffer of consecutive 8×8 pixel blocks along the length of the top of the current block plus one block.

6. The article of claim 1 wherein the instructions cause the computing device to operate by buffering only 8×8 pixel block-based motion vectors as potential neighbor block motion vectors.

7. The article of claim 1 wherein the instructions cause the computing device to operate by: determining at most nine spatial neighbor motion vectors; and determining at most two candidate motion vectors from the motion vectors to be used to determine the motion vector of the current block.

8. The article of claim 1 wherein the neighbor block pattern formula uses the width or the height or both of the current block to at least one of:

determine a row or column position of at least one neighbor block,

align a neighbor block at a corner of the current block, and

align a neighbor block at a center of the width or height of the current block.

9. The article of claim 1 wherein the neighbor block pattern formula is provided at a decoder to be used to determine neighbor block locations on frames at the decoder.

10. A device comprising:

a display;

a memory; and

circuitry forming at least one processor communicatively coupled to the memory and display, the at least one processor being arranged to operate by:

receiving, by at least one processor, multiple frames of pixel data; and

determining at least one inter-prediction motion vector candidate of a current block on a current frame comprising:

determining at least one neighbor block location on the current frame and including at least one neighbor block adjacent the current block, wherein the current block is not limited to being the same size as the neighbor blocks,

computing at least one neighbor block coordinate relative to the position of the current block on the current frame comprising entering a dimension of at least one side of the current block into a substantially same neighbor block pattern formula regardless of the size of the current block relative to the neighbor blocks, and

using motion vectors of the at least one neighbor blocks on at least one location determined by using the at least one neighbor block coordinate.

11. The device of claim 10 wherein the neighbor block pattern formula uses the width or the height or both of the current block to determine a row or column position of at least one neighbor block.

12. The device of claim 10 wherein the instructions cause the computing device to operate by storing motion vectors of 1 to 3 columns of potential neighbor block area on on-chip memory while storing motion vectors of a single row of potential neighbor block area in a line buffer at other than on-chip memory.

13. The device of claim 10 wherein the instructions cause the computing device to operate by indicating a block location is unavailable as a neighbor block to a current block when the neighbor block pattern formula places the neighbor block at a location outside and to the right of a top area extending from a 64×64 pixel superblock that contains the current block.

14. The device of claim 10 wherein the formula sets at least one position of the neighbor blocks to one or more proportional position along one or more sides of the current block.

15. The device of claim 10 wherein the instructions cause the computing device to operate by using no less than 8×8 block-based motion vectors from 8×8 pixel neighbor blocks for current blocks that are a sub-block size less than 8×8 pixel.

16. The device of claim 10 wherein a block area permitted to have the neighbor blocks comprises a single row above the current block with motion vectors stored off-chip, and at most three columns to the immediate left of the current block with motion vectors stored on-chip.

17. The device of claim 10 wherein a block area permitted to have the neighbor blocks comprises a single row and a single column both adjacent the current block.

18. A computer-implemented method of video coding comprising:

receiving, by at least one processor, multiple frames of pixel data; and

determining, by at least one processor, at least one inter-prediction motion vector candidate of a current block on a current frame comprising:

computing at least one neighbor block coordinate relative to the position of the current block on the current frame comprising entering a dimension of at least one side of the current block into a substantially same neighbor block pattern formula regardless of the size of the current block relative to the neighbor blocks, and

using motion vectors of the at least one neighbor blocks from at least one location determined by using the at least one neighbor block coordinate.

19. The method of claim 18 wherein neighbor blocks are eliminated due to duplication so that less than nine neighbor blocks listed by the neighbor block pattern formula are provided for current blocks of different sizes and due, at least in part, to equations provided by the neighbor block pattern formula.

20. The method of claim 18 wherein neighbor block locations are determined without using a look-up table that lists fixed neighbor block locations depending on current block size.

21. The method of claim 18 wherein the neighbor block pattern formula is provided at a decoder to be used to determine neighbor block locations on frames at the decoder.

22. The method of claim 18 wherein the neighbor block pattern formula uses the width or the height or both of the current block formula to at least one of:

determine a row or column position of at least one neighbor block,

align a neighbor block at a corner of the current block, and

align a neighbor block at a center of the width or height of the current block.

23. The method of claim 18 wherein the formula sets at least one position of the neighbor blocks to one or more proportional position along one or more sides of the current block.

24. The method of claim 23 wherein the proportional position is a center of a side of the current block.

25. A computer-implemented method of video coding comprising:

receiving, by at least one processor, multiple frames of pixel data; and

determining, by at least one processor, at least one inter-prediction motion vector candidate of a current block on a current frame comprising:

computing at least one neighbor block coordinate relative to the position of the current block on the current frame and using a substantially same neighbor block pattern formula regardless of the size of the current block relative to the neighbor blocks, and

using motion vectors of the at least one neighbor blocks from at least one location determined by using the at least one neighbor block coordinate,

wherein a block area permitted to have the neighbor blocks comprises a single row above the current block with motion vectors stored off-chip, and at most three columns to the immediate left of the current block with motion vectors stored on-chip.

Continuity (2)
Continuation 16300290
Related Publication 20210099727A1 · Apr 1, 2021