IP Library Granted Patent US 12,452,437
Granted Patent B1
US 12,452,437 · App. 18/223,893 · Granted Oct 21, 2025

Fast parameter search for chroma from luma intra prediction in video coding

Inventors: Yi Guo (Hangzhou, CN); Zhichu He (Hangzhou, CN); Rui Li (Hangzhou, CN); Bo Ling (Saratoga, CA); Jing Wu (Hangzhou, CN); Minxia Yang (Hangzhou, CN); Shiyan Zhang (Hangzhou, CN); Yichen Zhang (Hangzhou, CN)
Assignee: Zoom Communications, Inc.
H04N19/186H04N19/147H04N19/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 12,452,437
App. No.
18/223,893
Granted
Oct 21, 2025
Kind
B1
Abstract

Fast parameter search for chroma from luma (CFL) intra prediction in video encoding is provided. A video encoder determines a value of a parameter of a linear CFL predictor for a coding block of a frame of a video. The determining includes dividing a search range within a value range of the parameter into three portions by a starting value: the starting value and values on two sides of the starting value. The encoder determines cost values of parameter values from the three portions and select the value of the parameter that corresponds to the lowest cost value. The encoder further encodes the coding block of the frame into a bitstream representing the video using the CFL predictor with the selected value of the parameter.

Claims (48)

1. A method comprising:

determining a value of a parameter of a linear chroma from luma (CFL) predictor for a coding block of a frame of a video, the parameter of the linear CFL having a value range, the determining comprising:

determining a search range within the value range, the search range being divided into three portions by a starting value within the search range, a first portion containing a first set of values on one side of the starting value within the search range, a second portion containing a second set of values on the other side of the starting value within the search range, and a third portion containing the starting value;

determining an initial cost value of a cost function defined for the coding block by setting the parameter to the starting value;

determining a first cost value of the cost function by setting the parameter to a first value within the first set of values;

determining a second cost value of the cost function by setting the parameter to a second value within the second set of values; and

determining the value of the parameter as one of the starting value, the first value, or the second value that corresponds to a lowest cost value among the initial cost value, the first cost value, and the second cost value; and

encoding the coding block of the frame into a bitstream representing the video using the CFL predictor with the determined value of the parameter.

2. The method of claim 1 , wherein the starting value is a fixed value or randomly selected from the search range.

3. The method of claim 1 , wherein the first set of values is a first ordered set of values determined by offsetting a previous value starting from the starting value by a step size, and wherein the first value is determined by:

calculating a first candidate cost value for a first candidate value in the first set of values;

determining the first candidate value as the first value based on the first candidate cost value being larger than a current minimum cost value or based on the first candidate cost value being lower than the current minimum cost value and lower than a cost value for a value in the first ordered set of values that is immediately after the first candidate value; or

determining a second candidate value as the first value for the parameter based on the first candidate cost value being no larger than the current minimum cost value, wherein the second candidate value is after the first candidate value in the first ordered set of values, and a cost value for the second candidate value is lower than a cost value for a value in the first ordered set of values that is immediately after the second candidate value.

4. The method of claim 3 , wherein the step size between two consecutive values in the first ordered set of values is a fixed value or a varying value.

5. The method of claim 1 , wherein the cost function is a rate distortion cost determined based on a combination of a rate and a distortion.

6. The method of claim 5 , wherein the distortion is determined by calculating distortion values based on at least one of a sum of squared errors or a sum of absolute transformed differences.

7. The method of claim 5 , wherein the rate comprises a rate of a coding mode of the coding block.

8. A system comprising:

a processor; and

at least one memory device including instructions that are executable by the processor to cause the processor to:

set a search range, a starting value and an evaluation order for determining a linear model parameter for a chroma from luma (CFL) predictor for encoding a coding block of an input video frame, the search range being divided into three portions by a starting value within the search range, a first portion containing a first set of values on one side of the starting value within the search range, a second portion containing a second set of values on the other side of the starting value within the search range, and a third portion containing the starting value;

search for a final value of the linear model parameter by causing the processor to:

determine a first cost value of a cost function corresponding to a first value in the search range according to the evaluation order, the first value belonging to the first portion;

skip remaining values in the first portion based on the first cost value being higher than a minimum cost value;

determine a second cost value of the cost function corresponding to a second value in the second portion of the search range according to the evaluation order;

update the minimum cost value based on the second cost value being lower than the minimum cost value; and

determine the final value of the linear model parameter as a value in the search range that corresponds to the minimum cost value; and

encode the coding block of the frame into a bitstream representing the video using the CFL predictor with the determined final value of the linear model parameter.

9. The system of claim 8 , wherein the starting value is a fixed value or randomly selected from the search range.

10. The system of claim 8 , wherein the second value in the second portion of the search range is a next unevaluated value in the second set of values according to the evaluation order.

11. The system of claim 8 , wherein a step size between two consecutive values in the first set of values or the second set of values is a fixed value or a varying value.

12. The system of claim 8 , wherein the cost function is a rate distortion cost determined based on a combination of a rate and a distortion.

13. The system of claim 12 , wherein the distortion is determined by calculating distortion values based on at least one of a sum of squared errors or a sum of absolute transformed differences.

14. The system of claim 12 , wherein the rate comprises a rate of a coding mode of the coding block.

15. A non-transitory computer-readable medium comprising program code that is executable by one or more processors to cause the one or more processors to:

set a search range, a starting value and an evaluation order for determining a linear model parameter for a chroma from luma (CFL) predictor for encoding a coding block of an input video frame, the search range being divided into three portions by a starting value within the search range, a first portion containing a first set of values on one side of the starting value within the search range, a second portion containing a second set of values on the other side of the starting value within the search range, and a third portion containing the starting value;

search for a final value of the linear model parameter by causing the processor to:

determine a first cost value of a cost function corresponding to a first value in the search range according to the evaluation order, the first value belonging to the first portion;

skip remaining values in the first portion based on the first cost value being higher than a minimum cost value;

determine a second cost value of the cost function corresponding to a second value in the second portion of the search range according to the evaluation order; and

update the minimum cost value based on the second cost value being lower than the minimum cost value;

determine the final value of the linear model parameter as a value in the search range that corresponds to the minimum cost value; and

encode the coding block of the frame into a bitstream representing the video using the CFL predictor with the determined final value of the linear model parameter.

16. The non-transitory computer-readable medium of claim 15 , wherein the starting value is a fixed value or randomly selected from the search range.

17. The non-transitory computer-readable medium of claim 15 , wherein the second value in the second portion of the search range is a next unevaluated value in the second set of values according to the evaluation order.

18. The non-transitory computer-readable medium of claim 15 , wherein a step size between two consecutive values in the first set of values or the second set of values is a fixed value or a varying value.

19. The non-transitory computer-readable medium of claim 15 , wherein the cost function is a rate distortion cost determined based on a combination of a rate and a distortion.

20. The non-transitory computer-readable medium of claim 19 , wherein the distortion is determined by calculating distortion values based on at least one of a sum of squared errors or a sum of absolute transformed differences.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 24, 2025
From: GUO, YI; HE, ZHICHU; LI, RUI; LING, BO; WU, JING; YANG, MINXIA; ZHANG, SHIYAN; ZHANG, YICHEN
To: ZOOM VIDEO COMMUNICATIONS, INC.
Reel/Frame 072358/0853 →
CHANGE OF NAME Recorded Sep 24, 2025
From: ZOOM VIDEO COMMUNICATIONS, INC.
To: ZOOM COMMUNICATIONS, INC.
Reel/Frame 072927/0009 →
References Cited (13)
US 11394987B2 · Aggarwal et al. · 2022 [cited by applicant]
US 20210377544A1 · Holcomb et al. · 2021 [cited by applicant]
US 20210409706A1 · Zhao et al. · 2021 [cited by applicant]
US 20220201283A1 · Lee · 2022 [cited by examiner]
US 20230104243A1 · Zhao · 2023 [cited by examiner]
US 20230336748A1 · Ye · 2023 [cited by examiner]
US 20230421786A1 · Aggarwal · 2023 [cited by examiner]
US 20240080443A1 · Ye · 2024 [cited by examiner]
US 20240357090A1 · Wu · 2024 [cited by examiner]
“Aom—Git at Google (googlesource.com)”, Alliance for Open Media, retrieved from internet from https://aomedia.googlesource.com/aom, Jul. 19, 2023, 12 pages. [cited by applicant]
Chen, et al., “An Overview of Core Coding Tools in the AV1 Video Codec”, 2018 Picture Coding Symposium (PCS), San Francisco, CA, USA, 2018, pp. 41-45. [cited by applicant]
Midtskogen, et al., “The AV1 Constrained Directional Enhancement Filter (CDEF)”, 2018 IEEE International Conference on Acoustics, Speech and Signal Processing (ICASSP), Sep. 13, 2018, 5 pages. [cited by applicant]
Trudeau, et al., “Predicting Chroma from Luma in AV1”, Retrieved from Internet from https://arxiv.org/abs/1711.03951; cited as arXiv:1711.03951v1, Nov. 10, 2017, 8 pages. [cited by applicant]