IP Library Granted Patent US 12,457,353
Granted Patent B2
US 12,457,353 · App. 18/404,276 · Granted Oct 28, 2025

Convolutional-neutral-network based filter for video coding

Inventors: Zhao Wang (Beijing, CN); Yan Ye (San Diego, CA)
Assignee: Alibaba Group Holding Limited
H04N19/513G06N3/08H04N19/105H04N19/176H04N19/82
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,457,353
App. No.
18/404,276
Granted
Oct 28, 2025
Kind
B2
Abstract

The present disclosure provides methods for convolutional-neural-network (CNN) based filter for video coding. An exemplary method includes: applying motion estimation to a target coding block, to determine a reference block of the target coding block; inputting, to a convolutional neural network (CNN) filter, image data associated with the target coding block and the reference block; and executing the CNN filter to determine a residual associated with the target coding block based on the input image data.

Claims (45)

1. A computer-implemented video encoding method, comprising:

determining a first rate distortion associated with a target coding block based on a convolutional neural network (CNN) filter being disabled, the CNN filter being configured to determine a residual associated with the target coding block based on image data associated with the target coding block and a reference block of the target coding block, the reference block being determined by applying motion estimation to the target coding block;

determining a second rate distortion associated with the target coding block based on the CNN filter being enabled;

perform a comparison of the first rate distortion and the second rate distortion; and

based on the comparison, encoding the target coding block and setting a flag indicating whether the CNN filter is to be enabled or disabled.

2. The method according to claim 1 , wherein the flag is signaled in at least one of a picture parameter set (PPS), a picture header, or a slice header.

3. The method according to claim 1 , wherein the flag is a frame-level flag, and when the frame-level flag indicates that the CNN filter is to be disabled, the CNN filter is disabled for a frame associated with the frame-level flag.

4. The method according to claim 1 , wherein the flag is a CTU-level flag, and when the CTU-level flag indicates that the CNN filter is to be disabled, the CNN filter is disabled for a CTU associated with the CTU-level flag.

5. The method according to claim 4 , wherein the flag is signaled in a table that comprises a plurality of CTU-level flags corresponding to a plurality of CTUs respectively, each of the plurality of CTU-level flags indicating whether the CNN filter is to be enabled or disabled for the corresponding CTU.

6. The method according to claim 1 , wherein the CNN filter comprises a plurality of convolutional layers, each of the plurality of convolutional layers using one or more filter kernels to generate one or more feature maps respectively, and executing the CNN filter to determine the residual associated with the target coding block based on input image data comprises:

extracting, at a first convolutional layer of the CNN filter, spatial features of the image data associated with the target coding block and the reference block.

7. The method according to claim 1 , wherein the CNN filter is trained using a training data set comprising:

a motion-compensated training block, and

an un-motion-compensated extended region of the motion compensated training block,

the motion-compensated training block being a predicted block based on a motion vector and a reference picture, and the un-motion-compensated extended region comprising unpredicted image data that is not predicted based on the motion vector or reference picture.

8. A computer-implemented video decoding method, comprising:

decoding a video bitstream to generate a reconstructed coding block;

applying motion estimation to the reconstructed coding block, to determine a reference block of the reconstructed coding block;

determining, based on a flag, whether a convolutional neural network (CNN) filter is enabled or disabled; and

executing the CNN filter to determine, based on the reference block, a residual associated with the reconstructed coding block when the CNN filter is enabled,

wherein the flag is generated based on a comparison of a first rate distortion and a second rate distortion associated with the coding block,

wherein the first rate distortion is determined based on the CNN filter being disabled, and

wherein the second rate distortion is determined based on the CNN filter being enabled.

9. The method according to claim 8 , wherein the flag is signaled in at least one of a picture parameter set (PPS), a picture header, or a slice header.

10. The method according to claim 8 , wherein the flag is a frame-level flag, and the method further comprises: in response to the frame-level flag indicating that the CNN filter is disabled, determining that the CNN filter is disabled for a frame associated with the frame-level flag.

11. The method according to claim 8 , wherein the flag is a CTU-level flag, and the method further comprises: in response to the CTU-level flag indicating that the CNN filter is disabled, determining that the CNN filter is disabled for a CTU associated with the CTU-level flag.

12. The method according to claim 11 , wherein the flag is signaled in a table that comprises a plurality of CTU-level flags corresponding to a plurality of CTUs respectively, each of the plurality of CTU-level flags indicating whether the CNN filter is enabled or disabled for the corresponding CTU.

13. The method according to claim 8 , wherein the CNN filter comprises a plurality of convolutional layers, each of the plurality of convolutional layers using one or more filter kernels to generate one or more feature maps respectively, and executing the CNN filter to determine, based on the reference block, a residual associated with the reconstructed coding block comprises:

extracting, at a first convolutional layer of the CNN filter, spatial features of the reconstructed coding block and the reference block.

14. The method according to claim 8 , wherein the CNN filter is trained using a training data set comprising:

a motion-compensated training block, and

an un-motion-compensated extended region of the motion compensated training block,

the motion-compensated training block being a predicted block based on a motion vector and a reference picture, and the un-motion-compensated extended region comprising unpredicted image data that is not predicted based on the motion vector or reference picture.

15. A computer-implemented method of storing a bitstream of a video, the method comprising:

determining a first rate distortion associated with a target coding block based on a convolutional neural network (CNN) filter being disabled, the CNN filter being configured to determine a residual associated with the target coding block based on image data associated with the target coding block and a reference block of the target coding block, the reference block being determined by applying motion estimation to the target coding block;

determining a second rate distortion associated with the target coding block based on the CNN filter being enabled;

perform a comparison of the first rate distortion and the second rate distortion;

generating, based on the comparison, a bitstream comprising a flag indicating whether the CNN filter is to be enabled or disabled; and

storing the bitstream in a non-transitory computer readable medium.

16. The method according to claim 15 , wherein the flag is set in at least one of a picture parameter set (PPS), a picture header, or a slice header.

17. The method according to claim 15 , wherein the flag is a frame-level flag, and when the frame-level flag indicates that the CNN filter is to be disabled, the CNN filter is disabled for a frame associated with the frame-level flag.

18. The method according to claim 15 , wherein the flag is a CTU-level flag, and when the CTU-level flag indicates that the CNN filter is to be disabled, the CNN filter is disabled for a CTU associated with the CTU-level flag.

19. The method according to claim 18 , wherein the flag is set in a table that comprises a plurality of CTU-level flags corresponding to a plurality of CTUs respectively, each of the plurality of CTU-level flags indicating whether the CNN filter is to be enabled or disabled for the corresponding CTU.

20. The method according to claim 15 , wherein the CNN filter comprises a plurality of convolutional layers, each of the plurality of convolutional layers using one or more filter kernels to generate one or more feature maps respectively, and executing the CNN filter to determine the residual associated with the target coding block based on input image data comprises:

extracting, at a first convolutional layer of the CNN filter, spatial features of the image data associated with the target coding block and the reference block.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 5, 2026
From: ALIBABA INNOVATION PRIVATE LIMITED
To: SIM IP 5 LLC
Reel/Frame 075529/0713 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 4, 2026
From: ALIBABA GROUP HOLDING LIMITED
To: ALIBABA INNOVATION PRIVATE LIMITED
Reel/Frame 075522/0643 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 4, 2024
From: WANG, ZHAO; YE, YAN
To: ALIBABA GROUP HOLDING LIMITED
Reel/Frame 066021/0481 →
Continuity (3)
Continuation 17232652 · Apr 16, 2021
Provisional Application 63012148 · Apr 18, 2020
Related Publication 20240146951A1 · May 2, 2024
References Cited (25)
US 8116375B2 · Gao et al. · 2012 [cited by applicant]
US 10740891B1 · Chen · 2020 [cited by examiner]
US 10867217B1 · Madden et al. · 2020 [cited by applicant]
US 20120170647A1 · He · 2012 [cited by examiner]
US 20190130571A1 · Allmendinger et al. · 2019 [cited by applicant]
US 20190238879A1 · Han et al. · 2019 [cited by applicant]
US 20220021905A1 · Ma · 2022 [cited by examiner]
US 20220295116A1 · Ma · 2022 [cited by examiner]
WO WO2017036370A1 · 2017 [cited by applicant]
WO WO2019194425A1 · 2019 [cited by applicant]
Bross et al., “Versatile Video Coding (Draft 7), ”JVET-P2001-vE, 16 [cited by applicant]
Chauvet et al., “Adaptive Post Filter for Reducing Block Artifacts in High Efficiency Video Coding,” 2016 International Conference on Multimedia Systems and Signal Processing, pp. 22-25 (2016). [cited by applicant]
Duanmu et al., “Fast Motion Estimation Mode Decision Algorithm for H.264/AVC Video Coding Standard,” 2009 Asia Pacific Conference on Postgraduate Research in Microelectronics & Electronics (PrimeAsia), Shanghai, 2009, p… [cited by applicant]
Fu et al., “Sample Adaptive Offset in the HEVC Standard,” IEEE Transactions on Circuits and Systems for Video Technology, vol. 22, No. 12, pp. 1755-1764 (2012). [cited by applicant]
He et al., “Deep Residual Learning for Image Recognition,” In Proceedings of the IEEE conference on computer vision and pattern recognition (pp. 770-778) (2019). [cited by applicant]
Hoang et al., “B-DRRN: A Block Information Constrained Deep Recursive Residual Network for Video Compression Artifacts Reduction,” 2019 Picture Coding Symposium (PCS), Ningbo, China, 2019, pp. 1-5. [cited by applicant]
Jia et al., “Content-Aware Convolutional Neural Network for In-Loop Filtering in High Efficiency Video Coding,” IEEE Transactions on Image Processing, vol. 28, No. 7, pp. 3343-3356 (2019). [cited by applicant]
Jia et al., “Spatial-Temporal Residue Network Based In-Loop Filter for Video Coding,” 2017 IEEE Visual Communications and Image Processing (VCIP), St. Petersburg, FL, 2017, pp. 1-4. [cited by applicant]
Jin et al., “Composite Modeling of Optical Flow for Artifacts Reduction,” 2009 IEEE International Conference on Multimedia and Expo, New York, NY, 2009, pp. 233-236. [cited by applicant]
“JVET software repository,” https://https://jvet.hhi.fraunhofer.de/svn/svn HMJEMSoftware/.: https://jvet.hhi.fraunhofer.de/svn/svn_HJEMSoftware/branches/HM-13.0-QTBT/. [cited by applicant]
Khemiri et al., “Fast Motion Estimation for HEVC Video Coding,” 2016 International Image Processing, Applications and Systems (IPAS), Hammamet, 2016, pp. 1-4. [cited by applicant]
Lai et al., “Fast Motion Estimation Based on Diamond Refinement Search for High Efficiency Video Coding,” 2019 IEEE International Conference on Consumer Electronics (ICCE), Las Vegas, NV, USA, 2019, pp. 1-2. [cited by applicant]
Nair et al., “Rectified Linear Units Improve Restricted Boltzmann Machines,” In Proceedings of the 27th international conference on machine learning (ICML-10) (pp. 807-814). [cited by applicant]
Norkin et al., “HEVC Deblocking Filter,” IEEE Transactions on Circuits and Systems for Video Technology, vol. 22, No. 12, pp. 1746-1754 (2012). [cited by applicant]
PCT International Search Report and Written Opinion mailed Jul. 28, 2021, issued in corresponding International Application No. PCT/US2021/027680 (7 pgs.). [cited by applicant]