IP Library Granted Patent US 12,256,082
Granted Patent B2
US 12,256,082 · App. 17/616,449 · Granted Mar 18, 2025

Block boundary prediction refinement with optical flow

Inventors: Wei Chen (San Diego, CA); Jiancong Luo (Skillman, NJ); Yuwen He (San Diego, CA)
Assignee: InterDigital VC Holdings, Inc.
H04N19/137H04N19/132H04N19/176H04N19/182
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,256,082
App. No.
17/616,449
Granted
Mar 18, 2025
Kind
B2
Abstract

Systems, methods, and instrumentalities are disclosed for sub-block/block refinement, including sub-block/block boundary refinement, such as block boundary prediction refinement with optical flow (BBPROF). A block comprising a current sub-block may be decoded based on a sample value for a first pixel that is obtained based on, for example, an MV for a current sub-block, an MV for a sub-block adjacent the current sub-block, and a sample value for a second pixel adjacent the first pixel. BBPROF may include determining spatial gradients at pixel(s)/sample location(s). An MV difference may be calculated between a current sub-block and one or more neighboring sub-blocks. An MV offset may be determined at pixel(s)/sample location(s) based on the MV difference. A sample value offset for the pixel in a current sub-block may be determined. The prediction for a reference picture list may be refined by adding the calculated sample value offset to the sub-block prediction.

Claims (50)

1. An apparatus for video decoding, comprising one or more processors, wherein the one or more processors are configured to:

obtain a sample value for a first pixel based on a motion vector (MV) for a current sub-block, a MV for a sub-block that is adjacent to the current sub-block, and a sample value for a second pixel that is adjacent to the first pixel, wherein the first pixel is a boundary pixel of the current sub-block; and

decode a block comprising the current sub-block based on the obtained sample value for the first pixel.

2. The apparatus of claim 1 , wherein the block comprises the first pixel, the second pixel, and a third pixel that is adjacent to the first pixel, wherein the one or more processors are configured to:

determine that the first pixel is the boundary pixel of the current sub-block; and

based on a determination that the first pixel is the boundary pixel of the current sub-block,

determine a difference between the MV for the current sub-block and the MV for the sub-block that is adjacent to the current sub-block,

determine a gradient for the first pixel based on the sample value for the second pixel and a sample value for the third pixel, and

determine a sample value offset based on the determined gradient and the difference between the MV for the current sub-block and the MV for the sub-block that is adjacent to the current sub-block, wherein the sample value for the first pixel is obtained based on the determined sample value offset.

3. The apparatus of claim 1 , wherein the one or more processors are further configured to determine a gradient based on at least the sample value for the second pixel, wherein the sample value for the first pixel is obtained using the gradient.

4. The apparatus of claim 1 , wherein obtaining the sample value for the first pixel based on the MV for the current sub-block, the MV for the sub-block that is adjacent to the current sub-block, and the sample value for the second pixel that is adjacent to the first pixel comprises obtaining the sample value for the first pixel based on the sample value for the second pixel that is adjacent to the first pixel and based on a MV difference between the MV for the current sub-block and the MV for the sub-block that is adjacent to the current sub-block.

5. The apparatus of claim 1 , wherein the sub-block that is adjacent to the current sub-block is a first sub-block, and the block comprises the first sub-block and a second sub-block that is adjacent to the current sub-block, wherein the sample value for the first pixel is obtained further based on a MV for the second sub-block.

6. The apparatus of claim 1 , wherein the first pixel and the second pixel are in the current sub-block.

7. The apparatus of claim 1 , wherein a weighting factor that varies in accordance with a distance of the first pixel from a corresponding boundary of the current sub-block is used to obtain the sample value for the first pixel.

8. The apparatus of claim 1 , further comprising:

at least one of (i) an antenna configured to receive a signal, the signal including data representative of an image, (ii) a band limiter configured to limit the received signal to a band of frequencies that includes the data representative of the image, or (iii) a display configured to display the image.

9. The apparatus of claim 1 , wherein the one or more processors are further configured to obtain a MV difference between the MV for the current sub-block and the MV for the sub-block that is adjacent to the current sub-block, wherein the sample value for the first pixel is obtained based on the MV difference.

10. An apparatus for video encoding, comprising one or more processors, wherein the one or more processors are configured to:

obtain a sample value for a first pixel based on a motion vector (MV) for a current sub-block, a MV for a sub-block that is adjacent to the current sub-block, and a sample value for a second pixel that is adjacent to the first pixel, wherein the first pixel is a boundary pixel of the current sub-block; and

encode a block comprising the current sub-block based on the obtained sample value for the first pixel.

11. The apparatus of claim 10 , wherein the block comprises the first pixel, the second pixel, and a third pixel that is adjacent to the first pixel, wherein the one or more processors are configured to:

determine that the first pixel is the boundary pixel of the current sub-block; and

based on a determination that the first pixel is the boundary pixel of the current sub-block,

determine a difference between the MV for the current sub-block and the MV for the sub-block that is adjacent to the current sub-block,

determine a gradient for the first pixel based on the sample value for the second pixel and a sample value for the third pixel, and

determine a sample value offset based on the determined gradient and the difference between the MV for the current sub-block and the MV for the sub-block that is adjacent to the current sub-block, wherein the sample value for the first pixel is obtained based on the determined sample value offset.

12. The apparatus of claim 10 , wherein obtaining the sample value for the first pixel based on the MV for the current sub-block, the MV for the sub-block that is adjacent to the current sub-block, and the sample value for the second pixel that is adjacent to the first pixel comprises obtaining the sample value for the first pixel based on the sample value for the second pixel that is adjacent to the first pixel and based on a MV difference between the MV for the current sub-block and the MV for the sub-block that is adjacent to the current sub-block.

13. The apparatus of claim 10 , wherein the one or more processors are further configured to determine a gradient for an optical flow model based on at least the sample value for the second pixel, and wherein the sample value for the first pixel is obtained using the optical flow model.

14. A method for video decoding, comprising:

obtaining a sample value for a first pixel based on a motion vector (MV) for a current sub-block, a MV for a sub-block that is adjacent to the current sub-block, and a sample value for a second pixel that is adjacent to the first pixel, wherein the first pixel is a boundary pixel of the current sub-block; and

decoding a block comprising the current sub-block based on the obtained sample value for the first pixel.

15. The method of claim 14 , wherein the block comprises the first pixel, the second pixel, and a third pixel that is adjacent to the first pixel, wherein obtaining the sample value for the first pixel comprises:

determining that the first pixel is the boundary pixel of the current sub-block;

based on a determination that the first pixel is the boundary pixel of the current sub-block,

determining a difference between the MV for the current sub-block and the MV for the sub-block that is adjacent to the current sub-block,

determining a gradient for the first pixel based on the sample value for the second pixel and a sample value for the third pixel, and

determining a sample value offset based on the determined gradient and the difference between the MV for the current sub-block and the MV for the sub-block that is adjacent to the current sub-block; and

obtaining the sample value for the first pixel based on the determined sample value offset.

16. The method of claim 14 , wherein obtaining the sample value for the first pixel based on the MV for the current sub-block, the MV for the sub-block that is adjacent to the current sub-block, and the sample value for the second pixel that is adjacent to the first pixel comprises obtaining the sample value for the first pixel based on the sample value for the second pixel that is adjacent to the first pixel and based on a MV difference between the MV for the current sub-block and the MV for the sub-block that is adjacent to the current sub-block.

17. The method of claim 14 , wherein a gradient for an optical flow model is determined based on at least the sample value for the second pixel and is used in the optical flow model to obtain the sample value for the first pixel.

18. A computer readable medium including instructions for causing one or more processors to perform the method of claim 14 .

19. A method for video encoding, comprising:

obtaining a sample value for a first pixel based on a motion vector (MV) for a current sub-block, a MV for a sub-block that is adjacent to the current sub-block, and a sample value for a second pixel that is adjacent to the first pixel, wherein the first pixel is a boundary pixel of the current sub-block; and

encoding a block comprising the current sub-block based on the obtained sample value for the first pixel.

20. The method of claim 19 , wherein the block comprises the first pixel, the second pixel, and a third pixel that is adjacent to the first pixel, and the method comprises:

determining that the first pixel is the boundary pixel of the current sub-block; and

based on a determination that the first pixel is the boundary pixel of the current sub-block,

determining a difference between the MV for the current sub-block and the MV for the sub-block that is adjacent to the current sub-block,

determining a gradient for the first pixel based on the sample value for the second pixel and a sample value for the third pixel, and

determining a sample value offset based on the determined gradient and the difference between the MV for the current sub-block and the MV for the sub-block that is adjacent to the current sub-block, wherein the sample value for the first pixel is obtained based on the determined sample value offset.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 8, 2024
From: CHEN, WEI; LUO, JIANCONG; HE, YUWEN
To: VID SCALE, INC.
Reel/Frame 069217/0948 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 11, 2024
From: VID SCALE, INC.
To: INTERDIGITAL VC HOLDINGS, INC.
Reel/Frame 068284/0031 →
Continuity (2)
Provisional Application 62856519 · Jun 3, 2019
Related Publication 20220239921A1 · Jul 28, 2022
References Cited (32)
US 9167269B2 · Van Der Auwera et al. · 2015 [cited by applicant]
US 9571853B2 · Lee et al. · 2017 [cited by applicant]
US 10595035B2 · Karczewicz et al. · 2020 [cited by applicant]
US 20200288168A1 · Zhang · 2020 [cited by examiner]
US 20210136407A1 · Aono · 2021 [cited by examiner]
US 20220201328A1 · Galpin et al. · 2022 [cited by applicant]
CN 113875253A · 2021 [cited by applicant]
EP 3957073A1 · 2022 [cited by applicant]
JP 2020511859A · 2020 [cited by applicant]
JP 2022529104A · 2022 [cited by applicant]
MX 2021012698A · 2021 [cited by applicant]
RU 2586003C2 · 2016 [cited by applicant]
RU 2659733C2 · 2018 [cited by applicant]
WO 2018169989A1 · 2018 [cited by applicant]
WO 2019067879A1 · 2019 [cited by applicant]
WO 2020163319A1 · 2020 [cited by applicant]
WO 2020214564A1 · 2020 [cited by applicant]
Chen et al., “Algorithm description for Versatile Video Coding and Test Model 4 (VIM 4)”, Jan. 9, 2019, JVET-M1002-v2 (Year: 2019). [cited by examiner]
Bross et al., “High Efficiency Video Coding (HEVC) Text Specification Draft 6”, JCTVC-H1003, Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG11, 8th Meeting: San José, CA, USA… [cited by applicant]
Bross et al., “Versatile Video Coding (Draft 2)”, JVET-K1001-V1, Editors, Joint Video Experts Team (JVET) of ITU-T SG 16 WP3 and ISO/IEC JTC1/SC29/WG11, 11th Meeting: Ljubljana, SI, Jul. 10-18, 2018, 42 pages. [cited by applicant]
Chen et al., “Algorithm Description for Versatile Video Coding and Test Model 4 (VTM 4)”, JVET-M1002-V2, 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, Ja… [cited by applicant]
Chen, Wei, “Non-CE9: Block Boundary Prediction Refinement with Optical Flow for DMVR”, JVET-00581, InterDigital Communications, Inc., Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11, 15… [cited by applicant]
Hsiao et al., “CE4-Related: Overlapped Block Optical Flow”, JVET-P0153-V2, MediaTek Inc., Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC I/SC 29/WG 11, 16th Meeting, Geneva, CH, Oct. 1-11, 2019, pp.… [cited by applicant]
ITU-T, “Advanced Video Coding for Generic Audiovisual Services”, H.264, Series H: Audiovisual and Multimedia Systems, Infrastructure of Audiovisual Services—Coding of Moving Video, Nov. 2007, 564 pages. [cited by applicant]
Luo et al., “CE2-Related: Prediction Refinement with Optical Flow for Affine Mode”, JVET-N0236-R5, InterDigital Communications, Inc., Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11, 14… [cited by applicant]
Segall et al., “Joint Call for Proposals on Video Compression with Capability Beyond HEVC”, JVET-H1002 (V6), Editors, Joint Video Exploration Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11, 8th Meeting: M… [cited by applicant]
SMPTE, “VC-1 Compressed Video Bitstream Format and Decoding Process”, SMPTE 421M, Apr. 2006, 493 pages. [cited by applicant]
Suhring et al., “H.264/14496-10 AVC Reference Software Manual (Revised for JM 19.0)”, JVT-AE010, Apple Inc., Fraunhofer HHI, Microsoft Corporation, Joint Video Team (JVT) of ISO/IEC MPEG & ITU-T VCEG (ISO/IEC JTC1/SC29/… [cited by applicant]
Wikipedia, “Sobel Filter”, Available at <https://en.wikipedia.org/wiki/Sobel_operator>, Feb. 20, 2021, pp. 1-8. [cited by applicant]
Chen et al., “Algorithm Description for Versatile Video Coding and Test Model 4 (VTM 4)”, JVET-M1002-v1, Editors, Jot Video Experts Team JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11, 13th Meeting: Marrakech, … [cited by applicant]
Chen et al., “Description of SDR, HDR and 360 Video Coding Technology Proposal by Huawei, GoPro, HiSilicon, and Samsung”, JVET-J0025_V2, Joint Video Exploration Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG… [cited by applicant]
“BMS-2.0 Reference Software”, Available at <https://vcgit.hhi.fraunhofer.de/jvet/VVCSoftware_BMS/tags/BMS-2.1rc1>, 1 page. [cited by applicant]