IP Library Granted Patent US 11,394,991
Granted Patent B2
US 11,394,991 · App. 17/405,374 · Granted Jul 19, 2022

Bidirectional optical flow based video coding and decoding

Inventors: Hongbin Liu (Beijing, CN); Li Zhang (San Diego, CA); Kai Zhang (San Diego, CA); Jizheng Xu (San Diego, CA); Yue Wang (Beijing, CN)
Assignees: BEIJING BYTEDANCE NETWORK TECHNOLOGY CO., LTD.; BYTEDANCE INC.
H04N19/513H04N19/105H04N19/132H04N19/159H04N19/176
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,394,991
App. No.
17/405,374
Granted
Jul 19, 2022
Kind
B2
Abstract

Devices, systems and methods for sample refinement and filtering method for video coding are described. In an exemplary aspect, a method for video processing includes modifying, for a conversion between a block of a video and a bitstream representation of the video, a refinement value for a prediction sample in the block by applying a clipping operation to refinement value. The refinement value is derived based on a gradient value of an optical flow coding process. An output of the clipping operation is within a range. The method also includes refining the prediction sample based on the refinement value and performing the conversion based on the refined prediction sample.

Claims (57)

1. A method of processing video data, comprising:

determining, for a first block of a video, a first prediction sample;

refining the first prediction sample, based on a first optical flow refinement procedure, with a first prediction sample offset by adding the first prediction sample offset to the first prediction sample to acquire a first final prediction sample, wherein the first prediction sample offset is determined based on at least one first gradient of the first prediction sample, wherein the first gradient is calculated based on at least a difference between two prediction samples acquired based on a location of the first prediction sample, and wherein before being added to the first prediction sample to acquire the first final prediction sample, the first prediction sample offset is clipped to a first range; and

performing a conversion between the first block and a bitstream of the video based on the first final prediction sample,

wherein the first range is determined based on an input bit depth of the first block;

wherein the method further comprises:

determining, for a second block of the video, a second prediction sample;

refining the second prediction sample, based on a second optical flow refinement procedure, with a second prediction sample offset to acquire a second final prediction sample; wherein the second prediction sample offset is determined based on at least one second gradient of the second prediction sample, wherein the second gradient is calculated based on at least a difference between two prediction samples acquired based on a location of the second prediction sample;

clipping the second final prediction sample to a second range; and

performing a conversion between the second block and the bitstream based on the second final prediction sample.

2. The method of claim 1 , wherein the first video block is coded with an affine mode.

3. The method of claim 1 , wherein the first range is [min, max], min being smaller than 0 and max being larger than 0.

4. The method of claim 1 , wherein the first range is predefined.

5. The method of claim 1 , wherein the second block is coded with a non-affine mode and is bi-predicated.

6. The method of claim 1 , wherein the second range is determined based on an input bit depth of the second block.

7. The method of claim 1 , wherein the second range is [min, max], min being smaller than 0 and max being larger than 0.

8. The method of claim 1 , wherein the second range is predefined.

9. The method of claim 1 , wherein the first video block is coded with an affine mode and the second video block is coded with a bi-predictive mode and a non-affine mode.

10. The method of claim 1 , wherein the two prediction samples acquired based on the location of the first prediction sample are derived from a same reference picture list, and wherein the two prediction samples acquired based on the location of the second prediction sample are derived from a different reference picture list.

11. The method of claim 1 , wherein performing the conversion includes decoding the first blocks from the bitstream.

12. The method of claim 1 , wherein performing the conversion includes encoding the first blocks into the bitstream.

13. An apparatus for processing video data comprising a processor and a non-transitory memory with instructions thereon, wherein the instructions upon execution by the processor, cause the processor to:

determine, for a first block of a video, a first prediction sample;

refine the first prediction sample, based on a first optical flow refinement procedure, with a first prediction sample offset by adding the first prediction sample offset to the first prediction sample to acquire a first final prediction sample, wherein the first prediction sample offset is determined based on at least one first gradient of the first prediction sample, wherein the first gradient is calculated based on at least a difference between two prediction samples acquired based on a location of the first prediction sample, and wherein before being added to the first prediction sample to acquire the first final prediction sample, the first prediction sample offset is clipped to a first range; and

perform a conversion between the first block and a bitstream of the video based on the first final prediction sample,

wherein the first range is determined based on an input bit depth of the first block;

wherein the instructions upon execution by the processor, further cause the processor to:

determine, for a second block of the video, a second prediction sample;

refine the second prediction sample, based on a second optical flow refinement procedure, with a second prediction sample offset to acquire a second final prediction sample; wherein the second prediction sample offset is determined based on at least one second gradient of the second prediction sample, wherein the second gradient is calculated based on at least a difference between two prediction samples acquired based on a location of the second prediction sample;

clip the second final prediction sample to a second range; and

perform a conversion between the second block and the bitstream based on the second final prediction sample.

14. The apparatus of claim 13 , wherein the first video block is coded with an affine mode.

15. The apparatus of claim 13 , wherein the second block is coded with a non-affine mode and is bi-predicated.

16. A non-transitory computer-readable storage medium storing instructions that cause a processor to:

determine, for a first block of a video, a first prediction sample;

refine the first prediction sample, based on a first optical flow refinement procedure, with a first prediction sample offset by adding the first prediction sample offset to the first prediction sample to acquire a first final prediction sample, wherein the first prediction sample offset is determined based on at least one first gradient of the first prediction sample, wherein the first gradient is calculated based on at least a difference between two prediction samples acquired based on a location of the first prediction sample, and wherein before being added to the first prediction sample to acquire the first final prediction sample, the first prediction sample offset is clipped to a first range; and

perform a conversion between the first block and a bitstream of the video based on the first final prediction sample,

wherein the first range is determined based on an input bit depth of the first block;

wherein the instructions further cause the processor to:

determine, for a second block of the video, a second prediction sample;

refine the second prediction sample, based on a second optical flow refinement procedure, with a second prediction sample offset to acquire a second final prediction sample; wherein the second prediction sample offset is determined based on at least one second gradient of the second prediction sample, wherein the second gradient is calculated based on at least a difference between two prediction samples acquired based on a location of the second prediction sample;

clip the second final prediction sample to a second range; and

perform a conversion between the second block and the bitstream based on the second final prediction sample.

17. A method performed by a video processing apparatus, wherein the method comprises:

determining, for a first block of a video, a first prediction sample;

refining the first prediction sample, based on a first optical flow refinement procedure, with a first prediction sample offset by adding the first prediction sample offset to the first prediction sample to acquire a first final prediction sample, wherein the first prediction sample offset is determined based on at least one first gradient of the first prediction sample, wherein the first gradient is calculated based on at least a difference between two prediction samples acquired based on a location of the first prediction sample, and wherein before being added to the first prediction sample to acquire the first final prediction sample, the first prediction sample offset is clipped to a first range;

generating the bitstream based on the first final prediction sample, and

storing the bitstream to a non-transitory computer-readable medium;

wherein the first range is determined based on an input bit depth of the first block;

wherein the method further comprises:

determining, for a second block of the video, a second prediction sample;

refining the second prediction sample, based on a second optical flow refinement procedure, with a second prediction sample offset to acquire a second final prediction sample; wherein the second prediction sample offset is determined based on at least one second gradient of the second prediction sample, wherein the second gradient is calculated based on at least a difference between two prediction samples acquired based on a location of the second prediction sample;

clipping the second final prediction sample to a second range; and

performing a conversion between the second block and the bitstream based on the second final prediction sample.

18. The apparatus of claim 13 , wherein the first range is [min, max], min being smaller than 0 and max being larger than 0.

19. The non-transitory computer-readable storage medium of claim 16 , wherein the first video block is coded with an affine mode, and the second block is coded with a non-affine mode and is bi-predicated.

20. The method of claim 17 , wherein the first video block is coded with an affine mode, and the second block is coded with a non-affine mode and is bi-predicated.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 18, 2021
From: ZHANG, LI; ZHANG, KAI; XU, JIZHENG
To: BYTEDANCE INC.
Reel/Frame 057219/0201 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 18, 2021
From: LIU, HONGBIN; WANG, YUE
To: BEIJING BYTEDANCE NETWORK TECHNOLOGY CO., LTD.
Reel/Frame 057219/0263 →
Priority Claims (1)
WO PCT/CN2019/080914 · Apr 2, 2019 · international
Continuity (2)
Continuation PCTCN2020082941 · Apr 2, 2020
Related Publication 20210385482A1 · Dec 9, 2021