IP Library Granted Patent US 12,238,331
Granted Patent B2
US 12,238,331 · App. 18/239,122 · Granted Feb 25, 2025

Bit-width control for bi-directional optical flow

Inventors: Xiaoyu Xiu (San Diego, CA); Yi-Wen Chen (San Diego, CA); Xianglin Wang (San Diego, CA)
Assignee: BEIJING DAJIA INTERNET INFORMATION TECHNOLOGY CO., LTD.
H04N19/577H04N19/103H04N19/176H04N19/513
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 12,238,331
App. No.
18/239,122
Granted
Feb 25, 2025
Kind
B2
Abstract

A method for controlling bit-width for bi-directional optical flow (BDOF) for video coding includes encoding a first reference picture and a second reference picture, the second reference picture being different than the first reference picture, wherein the first reference picture is displayed before a current picture and the second reference picture is displayed after the current picture. A motion refinement of a coding unit (CU) is calculated by minimizing a difference between a first prediction L 0 and a second prediction L 1 . First gradient values for the first prediction L 0 and second gradient values for the second prediction L 1 are calculated. A final bi-prediction of the CU is calculated. Also disclosed are an associated apparatus and an associated non-transitory computer readable storage medium.

Claims (51)

1. A method for video encoding, comprising:

obtaining a current block from a current picture;

determining, for the current block, a first prediction corresponding to a first reference picture, wherein the first reference picture is displayed before the current picture;

determining, for the current block, a second prediction corresponding to a second reference picture, wherein the second reference picture is displayed after the current picture;

calculating first gradient values for the first prediction and second gradient values for the second prediction;

calculating a respective motion refinement of each subblock of the current block by minimizing a difference between the first prediction and the second prediction based on a motion refinement threshold and a plurality of internal parameters representing different summation characters of the first prediction and the second prediction;

calculating a final bi-prediction of the current block based on the first prediction, the second prediction, respective motion refinements, the first gradient values and the second gradient values, wherein calculating the final bi-prediction of the current block comprises:

calculating the final bi-prediction of the current block based further on a fourth right shift value for combining the first prediction and the second prediction; and

generating a video bitstream based on the final bi-prediction.

2. The method of claim 1 , wherein calculating a respective motion refinement of each subblock of the current block by minimizing a difference between the first prediction and the second prediction comprises:

calculating a horizontal summation by adding a first horizontal gradient and a second horizontal gradient, and calculating a vertical summation by adding a first vertical gradient and a second vertical gradient, wherein a first right shift value is introduced into the horizontal summation and the vertical summation for lowering a bit-width of each of the horizontal summation and the vertical summation; and

calculating a respective motion refinement of each subblock of the current block based on the horizontal summation and the vertical summation.

3. The method of claim 1 , wherein a second right shift value is introduced into the calculation of the first gradient values for the first prediction and the calculation of the second gradient values for the second prediction.

4. The method of claim 1 , wherein calculating a respective motion refinement of each subblock of the current block by minimizing a difference between the first prediction and the second prediction comprises: clipping a horizontal motion refinement and a vertical motion refinement in the respective motion refinement to a range of [-th BDOF , th BDOF ], wherein th BDOF is a motion refinement threshold, and wherein the respective motion refinement comprises the horizontal motion refinement and the vertical motion refinement.

5. The method of claim 1 , wherein a third right shift value is introduced into the calculation of the difference between the first prediction and the second prediction.

6. The method of claim 1 , wherein calculating the first gradient values for the first prediction and the second gradient values for the second prediction further comprises calculating a horizontal gradient and a vertical gradient at each of a first prediction position of the first prediction and a second prediction position of the second prediction.

7. The method of claim 1 , wherein the fourth right shift value comprises an additional right shift value, and wherein the additional right shift value is set to be equal to a bit-depth of a video for decoding.

8. The method of claim 1 , wherein the first prediction is determined based on a first motion vector from the current block to the first reference picture, and wherein the second prediction is determined based on a second motion vector from the current block to the second reference picture.

9. A computing device, comprising:

one or more processors;

a non-transitory storage coupled to the one or more processors; and

a plurality of programs stored in the non-transitory storage that, when executed by the one or more processors individually or collectively, cause the computing device to perform acts comprising:

obtaining a current block from a current picture;

determining, for the current block of, a first prediction corresponding to a first reference picture, wherein the first reference picture is displayed before the current picture;

determining, for the current block, a second prediction corresponding to a second reference picture, wherein the second reference picture is displayed after the current picture;

calculating first gradient values for the first prediction and second gradient values for the second prediction;

calculating a respective motion refinement of each subblock of the current block by minimizing a difference between the first prediction and the second prediction based on a motion refinement threshold and a plurality of internal parameters representing different summation characters of the first prediction and the second prediction;

calculating a final bi-prediction of the current block based on the first prediction, the second prediction, respective motion refinements, the first gradient values, and the second gradient values, wherein calculating the final bi-prediction of the current block comprises:

calculating the final bi-prediction of the current block based further on a fourth right shift value for combining the first prediction and the second prediction; and

generating a video bitstream based on the final bi-prediction.

10. The computing device of claim 9 , calculating a respective motion refinement of each subblock of the current block by minimizing a difference between the first prediction and the second prediction comprises:

calculating a horizontal summation by adding a first horizontal gradient and a second horizontal gradient, and calculating a vertical summation by adding a first vertical gradient and a second vertical gradient, wherein a first right shift value is introduced into the horizontal summation and the vertical summation for lowering a bit-width of each of the horizontal summation and the vertical summation; and

calculating a respective motion refinement of each subblock of the current block based on the horizontal summation and the vertical summation.

11. The computing device of claim 9 , wherein a first right shift value is introduced into the calculation of both the first gradient values for the first prediction and the calculation of the second gradient values for the second prediction.

12. The computing device of claim 9 , wherein calculating a respective motion refinement of each subblock of the current block by minimizing a difference between the first prediction and the second prediction comprises: clipping a horizontal motion refinement and a vertical motion refinement in the respective motion refinement to a range of [-th BDOF , th BDOF ], wherein th BDOF is a motion refinement threshold, and wherein the respective motion refinement comprises the horizontal motion refinement and the vertical motion refinement.

13. The computing device of claim 9 , wherein a second right shift value is introduced into the calculation of the difference between the first prediction and the second prediction.

14. The computing device of claim 9 , calculating the first gradient values for the first prediction and the second gradient values for the second prediction further comprises calculating a horizontal gradient and a vertical gradient at each of a first prediction position of the first prediction and a second prediction position of the second prediction.

15. The computing device of claim 9 , wherein the fourth right shift value comprises an additional right shift value, and wherein the additional right shift value is set to be equal to a bit-depth of a video for decoding.

16. The computing device of claim 9 , wherein the first prediction is determined based on a first motion vector from the current block to the first reference picture, and wherein the second prediction is determined based on a second motion vector from the current block to the second reference picture.

17. A non-transitory computer readable storage medium storing a plurality of programs for execution by a computing device having one or more processors, wherein the plurality of programs, when executed by the one or more processors individually or collectively, cause the computing device to perform acts to generate a video bitstream and store the generated video bitstream in the non-transitory computer readable storage medium, the acts comprising:

obtaining a current block from a current picture;

determining, for the current block of, a first prediction corresponding to a first reference picture, wherein the first reference picture is displayed before the current picture;

determining, for the current block, a second prediction corresponding to a second reference picture, wherein the second reference picture is displayed after the current picture;

calculating first gradient values for the first prediction and second gradient values for the second prediction;

calculating a respective motion refinement of each subblock of the current block by minimizing a difference between the first prediction and the second prediction based on a motion refinement threshold and a plurality of internal parameters representing different summation characters of the first prediction and the second prediction;

calculating a final bi-prediction of the current block based on the first prediction, the second prediction, respective motion refinements, the first gradient values and the second gradient values, wherein calculating the final bi-prediction of the current block comprises:

calculating the final bi-prediction of the current block based further on a fourth right shift value for combining the first prediction and the second prediction; and

generating a video bitstream based on the final bi-prediction.

18. The storage medium of claim 17 , wherein calculating a respective motion refinement of each subblock of the current block by minimizing a difference between the first prediction and the second prediction comprises:

calculating a horizontal summation by adding the first horizontal gradient and the second horizontal gradient, and calculating a vertical summation by adding the first vertical gradient and the second vertical gradient, wherein a first right shift value is introduced into the horizontal summation and the vertical summation for lowering a bit-width of each of the horizontal summation and the vertical summation; and

calculating a respective motion refinement of each subblock of the current block based on the horizontal summation and the vertical summation.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 31, 2023
From: XIU, XIAOYU; CHEN, YI-WEN; WANG, XIANGLIN
To: BEIJING DAJIA INTERNET INFORMATION TECHNOLOGY CO., LTD.
Reel/Frame 064897/0265 →
Continuity (6)
Continuation 18219089 · Jul 6, 2023
Continuation 17726523 · Apr 21, 2022
Continuation 17368468 · Jul 6, 2021
Continuation PCTUS2020012338 · Jan 6, 2020
Provisional Application 62788898 · Jan 6, 2019
Related Publication 20230403408A1 · Dec 14, 2023
References Cited (34)
US 10986367B2 · Lee · 2021 [cited by applicant]
US 11388436B2 · Xiu · 2022 [cited by examiner]
US 11743493B2 · Xiu · 2023 [cited by examiner]
US 20160057420A1 · Pang et al. · 2016 [cited by applicant]
US 20170347128A1 · Panusopone et al. · 2017 [cited by applicant]
US 20180249172A1 · Chen et al. · 2018 [cited by applicant]
US 20190110058A1 · Chien et al. · 2019 [cited by applicant]
US 20190238883A1 · Chen et al. · 2019 [cited by applicant]
US 20210127133A1 · Chen et al. · 2021 [cited by applicant]
CN 107787583A · 2018 [cited by applicant]
CN 107925775A · 2018 [cited by applicant]
EP 3413563A1 · 2018 [cited by applicant]
EP 3739885A1 · 2020 [cited by applicant]
IN 108028929A · 2018 [cited by applicant]
KR 20180061281A · 2018 [cited by applicant]
KR 20180107761A · 2018 [cited by applicant]
KR 20180119084A · 2018 [cited by applicant]
KR 20180129860A · 2018 [cited by applicant]
KR 20190024553A · 2019 [cited by applicant]
WO 2017138417A1 · 2017 [cited by applicant]
WO 2018048265A1 · 2018 [cited by applicant]
WO 2018113658A1 · 2018 [cited by applicant]
WO 2018166357A1 · 2018 [cited by applicant]
WO 2018230493A1 · 2018 [cited by applicant]
WO 2020264221A1 · 2020 [cited by applicant]
Qi Lin, et al, “Fast Inter Prediction Algorithm for AVS2” [J]. Tv Engineering, dated on Mar. 29, 2014,38(17), (5p). [cited by applicant]
Philipp Kratzer, et al, “Towards Combining Motion Optimization and Data Driven Dynamical Models for Human Motion Prediction” 2018 IEEE-RAS 18th International Conference on Humanoid Robots (Humanoids) Beijing, China, Nov… [cited by applicant]
Mingyu Li, “Research on Video Stabilization algorithm based on Coding theory”, a master thesis submitted to University of Electronic Science and Technology of China, dated on Mar. 31, 2017, (71p). [cited by applicant]
International Search Report of PCT Application No. PCT/US2020/012338 dated Apr. 27, 2020, (2p). [cited by applicant]
Xiaoyu Xiu, et al., “CE9-related: Complexity Reduction and Bit-Width Control For Bi-Directional Optical Flow (BIO)”, Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11, JVET-L0256_v2, 12th… [cited by applicant]
Xiu, Xiaoyu, et al., InterDigital Communications, Inc., CE9-related: Complexity Reduction and Bit-Width Control For Bi-Directional Optical Flow (BIO), Input document to JVET, Proposal; JVET-L0256, ITU-T SG 16 WP 3 and I… [cited by applicant]
Chen, Jianle, et al., “Algorithm Description for Versatile Video Coding and Test Model 3 (VTM 3)”, Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11, 12th Meeting: Macao, CN, Oct. 3-12, 2… [cited by applicant]
Chujoh, Takeshi, et al., “Non-CE9: An Improvement of BDOF”, Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11, 13th Meeting: Marrakech, MA, Jan. 9-18, 2019, (4p). [cited by applicant]
European Search Report of EP Application No. 20736085.0 dated May 18, 2022, (4p). [cited by applicant]