# US 10,873,755 B2 · Method and system of motion estimation with neighbor block pattern for video coding

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 10,873,755 B2
- Document ID: US10873755B2
- Status: Granted
- Kind: B2
- Application number: 16/300,290
- Filed: 2016-06-09
- Published: 2019-05-02
- Granted: 2020-12-22
- Earliest claimed: 2016-06-09
- Assignees: Intel Corporation
- Applicants: Intel Corporation
- Inventors: Zhipin Deng; Iole Moccagatta; Lidong Xu; Wenhao Zhang; Yi-Jen Chiu
- Web page: https://patentgrep.com/patent/US10873755B2

## CPC

- H04N 19/51: Motion estimation or motion compensation
- G06T 7/238: using non-full search, e.g. three-step search
- H04N 19/176: the region being a block, e.g. a macroblock
- H04N 19/57: Motion estimation characterised by a search window with variable size or shape
- H04N 19/593: involving spatial prediction techniques
- G06T 2207/10016: Video; Image sequence
- G06T 2207/20021: Dividing image into blocks, subimages or windows
- H04N: PICTORIAL COMMUNICATION, e.g. TELEVISION
- G06T: IMAGE DATA PROCESSING OR GENERATION, IN GENERAL

## Abstract

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

## Claims

### Claim 1

A computer-implemented method of motion estimation for video coding comprising:
receiving, by at least one processor, multiple frames of pixel data; and
determining, by at least one processor, at least one motion vector candidate extending between a current block on a current frame and a reference block on a reference frame, wherein the current block is alternatively provided in one of a variety of available sizes, the determining comprising:
determining spatial neighbor block locations on the same frame as the current block and including at least one spatial neighbor block adjacent the current block, wherein spatial neighbor blocks at the locations have a same single fixed size, wherein the current block is not limited to being the same size as the spatial neighbor blocks, and using a neighbor block pattern formula to compute at least one neighbor block coordinate relative to the position of the current block on the current frame and using substantially the same pattern formula regardless of the size of the current block relative to the neighbor blocks; and
using motion vectors of the neighbor blocks at locations determined by using the at least one neighbor block coordinate and to determine at least one motion vector of the current block.

### Claim 2 (depends on 1)

The method 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.

### Claim 3 (depends on 1)

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

### Claim 4 (depends on 3)

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

### Claim 5 (depends on 1)

The method of claim 1 wherein the block area permitted to have 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.

### Claim 6 (depends on 1)

The method of claim 1 comprising buffering only 8×8 pixel block-based motion vectors as potential neighbor block motion vectors.

### Claim 7 (depends on 1)

The method of claim 1 comprising 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.

### Claim 8 (depends on 1)

The method of claim 1 wherein the neighbor block pattern formula using 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.

### Claim 9 (depends on 1)

The method 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.

### Claim 10 (depends on 1)

The method of claim 1 comprising 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.

### Claim 11 (depends on 1)

The method of claim 1 comprising 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.

### Claim 12

A computer-implemented system comprising:
a display;
a memory;
at least one processor communicatively coupled to the memory and display;
the at least one processor being arranged to operate by:
receiving multiple frames of pixel data; and
determining at least one motion vector candidate extending between a current block on a current frame and a reference block on a reference frame, wherein the current block is alternatively provided in one of a variety of available sizes, the determining comprising:
determining spatial neighbor block locations on the same frame as the current block and including at least one spatial neighbor block adjacent the current block, wherein spatial neighbor blocks at the locations have a same single fixed size, wherein the current block is not limited to being the same size as the spatial neighbor blocks, and using a neighbor block pattern formula to compute at least one neighbor block coordinate relative to the current block and using substantially the same pattern formula regardless of the size of the current block relative to the neighbor blocks; and
using motion vectors of the neighbor blocks at determined neighbor block locations to determine at least one motion vector of the current block.

### Claim 13 (depends on 12)

The system of claim 12 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.

### Claim 14 (depends on 12)

The system of claim 12 wherein the motion estimation unit is operated 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.

### Claim 15 (depends on 12)

The system of claim 12 wherein the block area permitted to have 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.

### Claim 16 (depends on 12)

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

### Claim 17 (depends on 12)

The system of claim 12 wherein eight neighbor blocks each are used for current block of 8×16 or 16×8 pixel, and wherein at most nine neighbor blocks are used for other current block sizes due, at least in part, to the neighbor block pattern formula.

### Claim 18 (depends on 12)

The system of claim 12 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.

### Claim 19 (depends on 12)

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

### Claim 20 (depends on 1)

The method 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.

### Claim 21 (depends on 12)

The system of claim 12 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.

### Claim 22

A non-transitory computer-readable medium having stored thereon instructions that when executed cause a computing device to operate by:
receiving multiple frames of pixel data; and
determining at least one motion vector candidate extending between a current block on a current frame and a reference block on a reference frame, wherein the current block is alternatively provided in one of a variety of available sizes, the determining comprising:
determining spatial neighbor block locations on the same frame as the current block, and including at least one spatial neighbor block adjacent the current block, wherein spatial neighbor blocks at the locations have a same single fixed size, wherein the current block is not limited to being the same size as the spatial neighbor blocks, and using a neighbor block pattern formula to compute at least one neighbor block coordinate relative to the current block and using substantially the same pattern formula regardless of the size of the current block relative to the neighbor blocks; and
using motion vectors of the neighbor blocks at determined neighbor block locations to determine at least one motion vector of the current block.

### Claim 23 (depends on 1)

The method of claim 1 wherein the formula uses positions of the neighbor blocks relative to one or more corners or proportional position along one or more sides of the current block.

### Claim 24 (depends on 12)

The system of claim 12 wherein the formula uses positions of the neighbor blocks relative to one or more corners or proportional position along one or more sides of the current block.

### Claim 25 (depends on 22)

The medium of claim 22 wherein the formula uses positions of the neighbor blocks relative to one or more corners or proportional position along one or more sides of the current block.
