IP Library Granted Patent US 12684138
Granted Patent B2
US 12684138 · App. 19/108,029 · Granted Jul 14, 2026

Video coding method, encoder and decoder

Inventors: Jonathan Gan (Palo Alto, CA); Yue Yu (Palo Alto, CA); Haoping Yu (Palo Alto, CA)
Assignee: GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP., LTD.
H04N19/159H04N19/119H04N19/176H04N19/196
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 12684138
App. No.
19/108,029
Granted
Jul 14, 2026
Kind
B2
Abstract

A video coding method, an encoder, and a decoder are disclosed. The method is applied to a decoder and comprises retrieving a bitstream corresponding to a current frame and parsing the bitstream to obtain a current coding tree unit (CTU) of the current frame; determining an availability of at least one neighbouring CTU of the current CTU in the current frame according to a wavefront delay, wherein the wavefront delay is a delay in units of CTUs in a row direction between the current CTU at a current CTU row and the neighbouring CTU at a previous CTU row which are decoded in parallel; determining a prediction block in the at least one neighbouring CTU for a current coding unit (CU) in the current CTU; and decoding the current CU using the prediction block.

Claims (69)

1 . A video coding method, applied to a decoder, comprising:

retrieving a bitstream corresponding to a current frame and parsing the bitstream to obtain a current coding tree unit (CTU) of the current frame;

determining an availability of at least one neighbouring CTU of the current CTU in the current frame according to a wavefront delay, wherein the wavefront delay is a delay in units of CTUs in a row direction between the current CTU at a current CTU row and the neighbouring CTU at a previous CTU row which are decoded in parallel;

determining a prediction block in the at least one neighbouring CTU for a current coding unit (CU) in the current CTU; and

decoding the current CU using the prediction block.

2 . The method according to claim 1 , further comprising:

in decoding a first CTU of the current CTU row, inheriting state information at the latest from a completion of a neighbouring CTU at the previous CTU row with a delay of N−1 CTUs in the row direction when the wavefront delay is N CTUs.

3 . The method according to claim 1 , wherein the step of determining an availability of at least one neighbouring CTU of the current CTU in the current frame according to a wavefront delay comprises:

for a current CTU i,j at i th CTU row and j th CTU column,

determining a neighbouring CTU a, b at a th CTU row and b th CTU column as being unavailable if b−j≥(i−a)×N when the wavefront delay is N CTUs.

4 . The method according to claim 1 , wherein the availability of at least one neighbouring CTU of the current CTU in the current frame is determined according to the wavefront delay in response to a sequence parameter set (SPS) level syntax element being enabled.

5 . The method according to claim 1 , wherein the step of determining an availability of at least one neighbouring CTU of the current CTU in the current frame according to a wavefront delay comprises:

for a current CTU i,j at i th CTU row and j th CTU column,

determining an intra block copy (IBC) reference area comprising a plurality of neighbouring CTUs within a fixed range from the current CTU i,j , and

determining a neighbouring CTU a, b at a th CTU row and b th CTU column in the IBC reference area as being unavailable if b−j≥(i−a)×N when the wavefront delay is N CTUs.

6 . The method according to claim 5 , wherein

the IBC reference area comprises a neighbouring CTU i−2,k from two CTU rows above the i th CTU row for (j−2)≤k≤(j+1), a neighbouring CTU i−1,k from one CTU row above the i th CTU row for (j−2)≤k≤(j+1), and a neighbouring CTU i,k for (j−2)≤k≤(j−1).

7 . The method according to claim 5 , wherein

the IBC reference area comprises a neighbouring CTU i−1,k from one CTU row above the i th CTU row for (j−1)≤k, and a neighbouring CTU i,k for k<j.

8 . The method according to claim 5 , wherein

the IBC reference area comprises a neighbouring CTU i−2,k from two CTU rows above the i th CTU row for (j−2)≤k, a neighbouring CTU i−1,k from one CTU row above the i th CTU row for any k, and a neighbouring CTU i,k for k<j.

9 . The method according to claim 5 , wherein the step of determining a prediction block in the at least one neighbouring CTU for a current CU in the current CTU comprises:

decoding an IBC block vector from the bitstream; and

determining the prediction block in the at least one neighbouring CTU within the IBC reference area for the current CU using the IBC block vector, wherein

the IBC block vector is determined as illegal if the IBC block vector points to an area outside the IBC reference area, or modified to point to an area inside the IBC reference area by a mapping function, or binarised to a codeword space that is bounded within limits of the IBC reference area.

10 . A decoder, comprising:

a communication interface, configured to retrieve a bitstream corresponding to a current frame;

a storage device, configured to store at least one computer executable instruction; and

a processor, coupled to the communication interface and the storage device, and configured to execute the at least one computer executable instruction to:

parse the bitstream to obtain a current coding tree unit (CTU) of the current frame;

determine an availability of at least one neighbouring CTU of the current CTU in the current frame according to a wavefront delay, wherein the wavefront delay is a delay in units of CTUs in a row direction between the current CTU at a current CTU row and the neighbouring CTU at a previous CTU row which are decoded in parallel;

determine a prediction block in the at least one neighbouring CTU for a current coding unit (CU) in the current CTU; and

decode the current CU using the prediction block.

11 . The decoder according to claim 10 , wherein

the processor is configured to inherit state information at the latest from a completion of a neighbouring CTU at the previous CTU row with a delay of N−1 CTUs in the row direction when the wavefront delay is N CTUs in decoding a first CTU of the current CTU row.

12 . The decoder according to claim 10 , wherein

for a current CTU i,j at i th CTU row and j th CTU column,

the processor is configured to determine a neighbouring CTU a, b at a th CTU row and b th CTU column as being unavailable if b−j≥(i−a)×N when the wavefront delay is N CTUs.

13 . The decoder according to claim 10 , wherein

for a current CTU i,j at i th CTU row and j th CTU column,

the processor is configured to determine an IBC reference area comprising a plurality of neighbouring CTUs within a fixed range from the current CTU i,j , and

determine a neighbouring CTU a, b at a th CTU row and b th CTU column in the IBC reference area as being unavailable if b−j≥(i−a)×N when the wavefront delay is N CTUs.

14 . The decoder according to claim 13 , wherein

the processor is configured to decode an IBC block vector from the bitstream, and determine the prediction block in the at least one neighbouring CTU within the IBC reference area for the current CU using the IBC block vector, wherein

the IBC block vector is determined as illegal if the IBC block vector points to an area outside the IBC reference area, modified to point to in area inside the IBC reference area by a mapping function, or binarised to a codeword space that is bounded within limits of the IBC reference area.

15 . A video coding method, applied to an encoder, comprising:

retrieving a current frame of a video;

dividing the current frame into a plurality of CTUs;

determining an availability of at least one neighbouring CTU of a current CTU in the current frame according to a wavefront delay, wherein the wavefront delay is a delay in units of CTUs in a row direction between the current CTU at a current CTU row and the neighbouring CTU at a previous CTU row which are coded in parallel;

performing an intra prediction on a current CU of the current CTU to obtain a prediction block from the at least one neighbouring CTU; and

encoding a block vector pointing to the prediction block into a bitstream corresponding to the current frame.

16 . The method according to claim 15 , wherein the step of determining an availability of at least one neighbouring CTU of the current CTU in the current frame according to a wavefront delay comprises:

for a current CTU i,j at i th CTU row and j th CTU column,

determining a neighbouring CTU a, b at a th CTU row and b th CTU column as being unavailable if b−j≥(i−a)×N when the wavefront delay is N CTUs.

17 . The method according to claim 15 , wherein the step of determining an availability of at least one neighbouring CTU of the current CTU in the current frame according to a wavefront delay comprises:

for a current CTU i,j at i th CTU row and j th CTU column,

determining an IBC reference area comprising a plurality of neighbouring CTUs within a fixed range from the current CTU i,j , and

determining a neighbouring CTU a, b at a th CTU row and b th CTU column in the IBC reference area as being unavailable if b−j≥(i−a)×N when the wavefront delay is N CTUs.

18 . An encoder, comprising:

a communication interface, configured to retrieve a current frame of a video;

a storage device, configured to store at least one computer executable instruction; and

a processor, coupled to the communication interface and the storage device, and configured to execute the at least one computer executable instruction to perform the method of claim 15 .

19 . The encoder according to claim 18 , wherein

for a current CTU i,j at i th CTU row and j th CTU column,

the processor is configured to determine a neighbouring CTU a, b at a th CTU row and b th CTU column as being unavailable if b−j≥(i−a)×N when the wavefront delay is N CTUs.

20 . The encoder according to claim 18 , wherein

for a current CTU i,j at i th CTU row and j th CTU column,

the processor is configured to determine an IBC reference area comprising a plurality of neighbouring CTUs within a fixed range from the current CTU i,j , and

determine a neighbouring CTU a, b at a th CTU row and b th CTU column in the IBC reference area as being unavailable if b−j≥(i−a)×N when the wavefront delay is N CTUs.