# US 12,764,345 B2 · Reducing blockiness for codecs

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

- Number: US 12,764,345 B2
- Document ID: US12764345B2
- Status: Granted
- Kind: B2
- Application number: 18/945,408
- Filed: 2024-11-12
- Published: 2025-02-27
- Granted: 2026-10-13
- Earliest claimed: 2022-08-04
- Assignees: Apple Inc.
- Applicants: Apple Inc.
- Inventors: Yixin Du; Alexandros Tourapis; Alican Nalci; Guoxin Jin; Hilmi Enes Egilmez; Hsi-Jung Wu; Jun Xin; Yeqing Wu; Yunfei Zheng
- Web page: https://patentgrep.com/patent/US12764345B2

## CPC

- H04N 19/86: involving reduction of coding artifacts, e.g. of blockiness
- H04N 19/117: Filters, e.g. for pre-processing or post-processing (sub-band filter banks H04N19/635)
- H04N 19/139: Analysis of motion vectors, e.g. their magnitude, direction, variance or reliability
- H04N 19/176: the region being a block, e.g. a macroblock
- H04N 19/82: involving filtering within a prediction loop
- H04N: PICTORIAL COMMUNICATION, e.g. TELEVISION

## Abstract

Disclosed is a method that includes receiving an image frame having a plurality of coded blocks, determining a prediction unit (PU) from the plurality of coded blocks, determining one or more motion compensation units arranged in an array within the PU, and applying a filter to one or more boundaries of the one or more motion compensation units. Also disclosed is a method that includes receiving a reference frame that includes a reference block, determining a timing for deblocking a current block, performing motion compensation on the reference frame to obtain a predicted frame that includes a predicted block, performing reconstruction on the predicted frame to obtain a reconstructed frame that includes a reconstructed PU, and applying, at the timing for deblocking the current block, a deblocking filter based on one or more parameters to the reference block, the predicted block, or the reconstructed PU.

## Claims

### Claim 1

A method comprising:
receiving a reference frame that comprises a reference block;
determining a timing for deblocking a current block;
performing motion compensation on the reference frame to obtain a predicted frame that comprises a predicted block;
performing reconstruction on the predicted frame to obtain a reconstructed frame that comprises a reconstructed prediction unit (PU); and
at the timing for deblocking the current block, applying a deblocking filter based on one or more parameters to at least one of:
the reference block, the predicted block, or the reconstructed PU.

### Claim 2 (depends on 1)

The method of claim 1,
wherein the timing for deblocking the current block is prior to the performance of the motion compensation, and
wherein, at the timing for deblocking the current block, the deblocking filter is applied to the reference block.

### Claim 3 (depends on 1)

The method of claim 1
wherein the timing for deblocking the current block is after the performance of the motion compensation and prior to the performance of reconstruction, and
wherein, at the timing for deblocking the current block, the deblocking filter is applied to the predicted block.

### Claim 4 (depends on 1)

The method of claim 1,
wherein the timing for deblocking the current block is after the performance of the reconstruction, and
wherein, at the timing for deblocking the current block, the deblocking filter is applied to the reconstructed PU.

### Claim 5 (depends on 1)

The method of claim 1, wherein the motion compensation is based on at least one of:
a temporal interpolated prediction (TIP) mode,
an optical flow (OPFL) vector refinement mode, or
a warp/affine motion mode.

### Claim 6 (depends on 1)

The method of claim 1, wherein the reconstructed frame comprises a reconstructed block that is not the reconstructed PU, the method further comprising:
applying the deblocking filter to the reconstructed block.

### Claim 7 (depends on 5)

The method of claim 5, wherein the one or more parameters indicate a configuration of the TIP mode.

### Claim 8 (depends on 1)

The method of claim 1, further comprising:
determining a threshold value based on the one or more parameters; and
determining a length of filtering based at least on the threshold value.

### Claim 9 (depends on 1)

The method of claim 1, further comprising:
receiving the one or more parameters in high-level syntax (HLS).

### Claim 10 (depends on 1)

The method of claim 1, further comprising:
receiving statistics information of a neighboring block and the current block,
wherein the statistics information comprises at least one of:
motion information,
a prediction mode of the neighboring block and a prediction mode of the current block,
a reference frame number of the neighboring block and a reference frame number of the current block,
an illumination compensation parameter of the neighboring block and an illumination compensation parameter of the current block, or
a weighted prediction parameter of the neighboring block and a weighted prediction parameter of the current block.

### Claim 11 (depends on 10)

The method of claim 10,
wherein the motion information comprises a difference between a motion vector of the current block and a motion vector of the neighboring block.

### Claim 12 (depends on 10)

The method of claim 10,
wherein the reference frame number of the neighboring block and the reference frame number of the current block are different.

### Claim 13 (depends on 10)

The method of claim 10,
wherein the prediction mode of the neighboring block and the prediction mode of the current block are different.

### Claim 14 (depends on 10)

The method of claim 10,
wherein the illumination compensation parameter of the neighboring block and the illumination compensation parameter of the current block are different.

### Claim 15 (depends on 10)

The method of claim 10,
wherein the weighted prediction parameter of the neighboring block and the weighted prediction parameter of the current block are different.

### Claim 16 (depends on 5)

The method of claim 5, further comprising:
imposing a restriction to the TIP mode, the OPFL vector refinement mode, or the warp/affine motion mode.

### Claim 17 (depends on 16)

The method of claim 16, wherein imposing the restriction comprises limiting a motion vector of the TIP mode, the OPFL vector refinement mode, or the warp/affine motion mode.

### Claim 18 (depends on 16)

The method of claim 16, wherein imposing the restriction comprises limiting a difference of statistics information between a neighboring block and the current block.

### Claim 19 (depends on 18)

The method of claim 18,
wherein the motion compensation is based on the TIP mode,
wherein the statistics information comprises an illumination parameter of the current block, and
wherein the method further comprises: generating the illumination parameter of the current block using an interpolation/projection process.

### Claim 20 (depends on 19)

The method of claim 19, wherein generating the illumination parameter of the current block comprises:
interpolating one or more illumination parameters of two predictor blocks.

### Claim 21 (depends on 1)

The method of claim 1, wherein the one or more parameters comprise motion information of the current block.

### Claim 22 (depends on 1)

The method of claim 1, wherein the deblocking filter is applied to samples at a boundary of the current block.

### Claim 23 (depends on 1)

The method of claim 1, wherein the deblocking filter is applied to all of samples of the current block.

### Claim 24 (depends on 1)

The method of claim 1, wherein a number of samples of the current block to deblock is predetermined.

### Claim 25 (depends on 1)

The method of claim 1, wherein a number of samples of the current block to deblock is adaptively determined.

### Claim 26 (depends on 1)

The method of claim 1, further comprising: applying overlapped block motion compensation (OBMC) to the current block.

### Claim 27

A system comprising:
one or more processors; and
memory storing instructions that when executed by the one or more processors, cause the one or more processors to perform operations comprising:
receiving a reference frame that comprises a reference block;
determining a timing for deblocking a current block;
performing motion compensation on the reference frame to obtain a predicted frame that comprises a predicted block;
performing reconstruction on the predicted frame to obtain a reconstructed frame that comprises a reconstructed prediction unit (PU); and
at the timing for deblocking the current block, applying a deblocking filter based on one or more parameters to at least one of:
the reference block, the predicted block, or the reconstructed PU.

### Claim 28

One or more non-transitory computer-readable media storing instructions that, when executed by one or more processors, cause the one or more processors to perform operations comprising:
receiving a reference frame that comprises a reference block;
determining a timing for deblocking a current block;
performing motion compensation on the reference frame to obtain a predicted frame that comprises a predicted block;
performing reconstruction on the predicted frame to obtain a reconstructed frame that comprises a reconstructed prediction unit (PU); and
at the timing for deblocking the current block, applying a deblocking filter based on one or more parameters to at least one of:
the reference block, the predicted block, or the reconstructed PU.
