# US 11,122,262 B2 · System and method for motion compensation in video coding

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

- Number: US 11,122,262 B2
- Document ID: US11122262B2
- Status: Granted
- Kind: B2
- Application number: 14/750,885
- Filed: 2015-06-25
- Published: 2015-12-31
- Granted: 2021-09-14
- Earliest claimed: 2014-06-27
- Assignees: Samsung Electronics Co., Ltd.
- Applicants: Samsung Electronics Co., Ltd.
- Inventors: Madhukar Budagavi
- Web page: https://patentgrep.com/patent/US11122262B2

## CPC

- H04N 19/117: Filters, e.g. for pre-processing or post-processing (sub-band filter banks H04N19/635)
- H04N 19/159: Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
- H04N 19/70: characterised by syntax aspects related to video coding, e.g. related to compression standards
- H04N 19/82: involving filtering within a prediction loop
- H04N 19/85: using pre-processing or post-processing specially adapted for video compression
- H04N 19/146: Data rate or code amount at the encoder output
- H04N 19/59: involving spatial sub-sampling or interpolation, e.g. alteration of picture size or resolution
- H04N: PICTORIAL COMMUNICATION, e.g. TELEVISION

## Abstract

A method and user equipment for decoding a bitstream of video. The user equipment includes a transceiver and a decoder. The transceiver is configured to receive an encoded bitstream of video including a pixel block. The decoder includes processing circuitry configured to select, from among a plurality of vertical interpolation filters, one of a vertical one-dimensional filter and a vertical two-dimensional filter. The processing circuitry is also configured to select, from among a plurality of horizontal interpolation filters, one of a horizontal one-dimensional filter and a horizontal two-dimensional filter. The processing circuitry is also configured to use the selected vertical and horizontal interpolation filters to generate at least one pixel value by interpolating pixels of the pixel block. The processing circuitry is also configured to perform prediction decoding using the at least one pixel value to restore the video.

## Claims

### Claim 1

A user equipment, comprising:
a transceiver configured to receive an encoded bitstream of video including a pixel block; and
a decoder comprising processing circuitry configured to:
utilize two-dimensional separable interpolation filters, each two-dimensional separable split into two two-dimensional filters applied in horizontal and vertical directions,
select, from among a plurality of vertical interpolation filters, one of a vertical one-dimensional filter or a vertical two-dimensional filter,
select, from among a plurality of horizontal interpolation filters, one of a horizontal one-dimensional filter or a horizontal two-dimensional filter,
use the selected vertical and horizontal interpolation filters to generate at least one pixel value by interpolating pixels of the pixel block, and
perform prediction decoding using the at least one pixel value to restore the video,
wherein the horizontal two-dimensional filter for horizontal interpolation is defined as:
H
=
[
α
1
⁢
h
1
α
2
⁢
h
2
⋮
α
N
⁢
h
N
]
,
where α1, α2, . . . , αN are scalar values, h1, h2, . . . , hN are one-dimensional filters of at most length N, where h1, h2, . . . , hN are each selected to include a phase shift of θ, and where α1, 60 2, . . . , αN are selected to include a phase shift of 0.

### Claim 2 (depends on 1)

The user equipment of claim 1, wherein the horizontal and vertical two-dimensional filters use an M×N neighborhood of samples of the pixel block, where M is a number of columns, and where N is a number of rows.

### Claim 3 (depends on 2)

The user equipment of claim 2, wherein the M×N neighborhood of samples associated with the horizontal two-dimensional filter is different from the M×N neighborhood of samples associated with the vertical two-dimensional filter.

### Claim 4 (depends on 2)

The user equipment of claim 2, wherein the processing circuitry is configured to use the selected vertical and horizontal interpolation filters in succession.

### Claim 5 (depends on 1)

The user equipment of claim 1, wherein the processing circuitry is further configured to:
determine whether the pixel block is uni-predicted or bi-predicted;
responsive to the pixel block being uni-predicted, interpolate the pixels of the pixel block using the vertical and horizontal one-dimensional filters; and
responsive to the encoded bitstream being bi-predicted, interpolate the pixels of the pixel block using the vertical and horizontal two-dimensional filters.

### Claim 6 (depends on 1)

The user equipment of claim 1, wherein the processing circuitry is further configured to:
identify a flag indicating whether to use two-dimensional interpolation;
select, from among the plurality of vertical interpolation filters, one of the vertical one-dimensional filter and the vertical two-dimensional filter based on the flag; and
select, from among the plurality of horizontal interpolation filters, one of the horizontal one-dimensional filter and the horizontal two-dimensional filter based on the flag.

### Claim 7 (depends on 1)

The user equipment of claim 1, wherein the vertical two-dimensional filter for vertical interpolation is defined as:
V=β1v1β2v2 . . . βMvM,
where β1, β2, . . . , βM are scalar values and v1, v2, . . . , vN are one-dimensional filters of at most length M, where v1, v2, . . . , vN are designed to have phase shift of φ, and where β1, β2, . . . , βM are selected to include a phase shift of 0.

### Claim 8

A user equipment, comprising:
an encoder comprising processing circuitry configured to:
utilize two-dimensional separable interpolation filters, each of the two-dimensional separable interpolation filter split into two two-dimensional filters applied in horizontal and vertical directions,
select, from among a plurality of vertical interpolation filters, one of a vertical one-dimensional filter or a vertical two-dimensional filter,
select, from among a plurality of horizontal interpolation filters, one of a horizontal one-dimensional filter or a horizontal two-dimensional filter,
use the selected vertical and horizontal interpolation filters to generate at least one pixel value by interpolating pixels of a pixel block, and
perform prediction encoding using the at least one pixel value to generate an encoded bitstream of video; and
a transceiver configured to send the encoded bitstream of video,
wherein the horizontal two-dimensional filter for horizontal interpolation is defined as:
H
=
[
α
1
⁢
h
1
α
2
⁢
h
2
⋮
α
N
⁢
h
N
]
,
where α1, α2, . . . , αN are scalar values, h1, h2, . . . , hN are one-dimensional filters of at most length N, where h1, h2, . . . , hN are each selected to include a phase shift of θ, and where α1, 60 2, . . . , αN are selected to include a phase shift of 0.

### Claim 9 (depends on 8)

The user equipment of claim 8, wherein the horizontal and vertical two-dimensional filters use an M×N neighborhood of samples of the pixel block, where M is a number of columns, and where N is a number of rows.

### Claim 10 (depends on 9)

The user equipment of claim 9, wherein the M×N neighborhood of samples associated with the horizontal two-dimensional filter is different from the M×N neighborhood of samples associated with the vertical two-dimensional filter.

### Claim 11 (depends on 9)

The user equipment of claim 9, wherein the processing circuitry is configured to use the selected vertical and horizontal interpolation filters in succession.

### Claim 12 (depends on 8)

The user equipment of claim 8, wherein the processing circuitry is further configured to:
determine whether the pixel block is uni-predicted or bi-predicted;
responsive to the pixel block being uni-predicted, interpolate the pixels of the pixel block using the vertical and horizontal one-dimensional filters; and
responsive to the encoded bitstream being bi-predicted, interpolate the pixels of the pixel block using the vertical and horizontal two-dimensional filters.

### Claim 13 (depends on 8)

The user equipment of claim 8, wherein the processing circuitry is further configured to:
identify a flag indicating whether to use two-dimensional interpolation;
select, from among the plurality of vertical interpolation filters, one of the vertical one-dimensional filter and the vertical two-dimensional filter based on the flag; and
select, from among the plurality of horizontal interpolation filters, one of the horizontal one-dimensional filter and the horizontal two-dimensional filter based on the flag.

### Claim 14 (depends on 8)

The user equipment of claim 8, wherein the vertical two-dimensional filter for vertical interpolation is defined as:
V=β1v1β2v2 . . . βMvM,
where β1, β2, . . . , βM are scalar values and v1, v2, . . . , vN are one-dimensional filters of at most length M, where v1, v2, . . . , vN are each selected to include a phase shift of φ, and where β1, β2, . . . , βM are selected to include a phase shift of 0.

### Claim 15

A method for decoding an encoded bitstream of video, the method comprising:
receiving the encoded bitstream of video including a pixel block;
utilizing two-dimensional separable interpolation filters, each of the two-dimensional separable interpolation filters split into two two-dimensional filters applied in horizontal and vertical directions;
selecting, from among a plurality of vertical interpolation filters, one of a vertical one-dimensional filter or a vertical two-dimensional filter;
selecting, from among a plurality of horizontal interpolation filters, one of a horizontal one-dimensional filter or a horizontal two-dimensional filter;
using the selected vertical and horizontal interpolation filters to generate at least one pixel value by interpolating pixels of the pixel block; and
performing prediction decoding using the at least one pixel value to restore the video,
wherein the horizontal two-dimensional filter for horizontal interpolation is defined as:
H
=
[
α
1
⁢
h
1
α
2
⁢
h
2
⋮
α
𝒩
⁢
h
𝒩
]
,
where α1, α2, . . . , αN are scalar values, h1, h2, . . . , hN are one-dimensional filters of at most length N, where h1, h2, . . . , hN are each selected to include a phase shift of θ, and where α1, α2, . . . , αN are selected to include a phase shift of 0.

### Claim 16 (depends on 15)

The method of claim 15, wherein the horizontal and vertical two-dimensional filters use an M×N neighborhood of samples of the pixel block, where M is a number of columns, and where N is a number of rows.

### Claim 17 (depends on 16)

The method of claim 16, wherein the M×N neighborhood of samples associated with the horizontal two-dimensional filter is different from the M×N neighborhood of samples associated with the vertical two-dimensional filter.

### Claim 18 (depends on 15)

The method of claim 15, further comprising:
determining whether the pixel block is uni-predicted or bi-predicted;
responsive to the pixel block being uni-predicted, interpolating the pixels of the pixel block using the vertical and horizontal one-dimensional filters; and
responsive to the encoded bitstream being bi-predicted, interpolating the pixels of the pixel block using the vertical and horizontal two-dimensional filters.
