IP Library › Granted Patent US 12,413,736
Granted Patent B2
US 12,413,736 · App. 18/682,366 · Granted Sep 9, 2025

History-based rice parameter derivations for video coding

Inventors: Yue Yu (Palo Alto, CA); Haoping Yu (Palo Alto, CA)
Assignee: GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP., LTD.
H04N19/134H04N19/119H04N19/18H04N19/186H04N19/96
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,413,736
App. No.
18/682,366
Granted
Sep 9, 2025
Kind
B2
Abstract

In some embodiments, a video decoder decodes a video from a bitstream of the video using a history-based Rice parameter derivation. The video decoder accesses a binary string representing a partition of the video and processes each coding tree unit (CTU) in the partition to generate decoded coefficient values in the CTU. The process includes updating a history counter for a color component for calculating Rice parameters and prior to calculating a next Rice parameter, updating a replacement variable based on the updated history counter. The process further includes calculating the Rice parameters for transform units (TUs) in the CTU based on the value of the replacement variable and decoding the binary string corresponding to the TUs in the CTU into coefficient values of the TUs based on the calculated Rice parameters.

Claims (259)

1. A method for decoding a video, the method comprising:

accessing a binary string representing a partition of the video, the partition comprising a plurality of coding tree units (CTUs);

decoding each CTU of the plurality of CTUs in the partition, decoding the CTU comprising:

updating a history counter StatCoeff for a color component for calculating Rice parameters;

prior to calculating a next Rice parameter, updating a replacement variable HistValue based on the updated history counter;

calculating the Rice parameters for transform units (TUs) in the CTU based on the updated replacement variable HistValue;

decoding the binary string corresponding to the TUs in the CTU into coefficient values of the TUs based on the calculated Rice parameters; and

determining pixel values for the TUs in the CTU from the coefficient values; and

outputting a decoded partition of the video comprising the decoded plurality of CTUs in the partition.

2. The method of claim 1 , wherein updating the history counter StatCoeff comprises:

in response to determining that a first non-zero Golomb-Rice coded transform coefficient in a TU is coded as abs_remainder, updating the history counter StatCoeff for a color component cIdx as:

StatCoeff

[

cIdx

]

=

Floor

(

Log

⁢

2

⁢

(

abs_remainder

[

c

⁢

I

⁢

d

⁢

x

]

)

)

+

1

;

in response to determining that the first non-zero Golomb-Rice coded transform coefficient in the TU is coded as dec_abs_level, updating the history counter for a color component cIdx as:

StatCoeff

[

cIdx

]

=

Floor

(

Log

⁢

2

⁢

(

dec_abs

⁢

_level

[

cIdx

]

)

)

,

wherein Floor(x) represents the largest integer less than or equal to x, and Log 2(x) is base-2 logarithm of x.

3. The method of claim 1 , wherein the partition is a frame, a slice, or a tile.

4. The method of claim 1 , further comprising setting the history counter StatCoeff to an initial value based on a bit depth of samples of luma and chroma arrays of the video.

5. The method of claim 1 , wherein calculating the Rice parameters for the TUs in the CTU based on the history counter comprises:

calculating a local sum variable locSumAbs for a coefficient in a TU of the CTU using values of neighboring coefficients in a pre-determined neighborhood of the coefficient and the replacement variable HistValue; and

deriving the Rice parameter for the TU based on the local sum variable locSumAbs.

6. The method of claim 5 , wherein calculating a local sum variable locSumAbs for a coefficient in a TU of the CTU comprises:

determining that a neighboring coefficient of a plurality of neighboring coefficients in the pre-determined neighborhood of the coefficient is outside the TU; and

using the replacement variable HistValue as a value of the neighboring coefficient outside the TU to calculate the local sum variable locSumAbs.

7. The method of claim 1 , wherein updating a replacement variable HistValue based on the history counter comprises updating the replacement variable HistValue for a color component cIdx by calculating:

HistValue

⁢

[

c

⁢

I

⁢

d

⁢

x

]

=

1

⁢

<<

StatCoeff[cIdx]

,

wherein StatCoeff denotes the history counter.

8. A system comprising:

a processing device; and

a non-transitory computer-readable medium communicatively coupled to the processing device, wherein the processing device is configured to execute program code stored in the non-transitory computer-readable medium and thereby perform operations comprising:

accessing a binary string representing a partition of a video, the partition comprising a plurality of coding tree units (CTUs);

decoding each CTU of the plurality of CTUs in the partition, decoding the CTU comprising:

updating a history counter StatCoeff for a color component for calculating Rice parameters;

prior to calculating a next Rice parameter, updating a replacement variable HistValue based on the updated history counter;

calculating the Rice parameters for transform units (TUs) in the CTU based on the updated replacement variable HistValue;

decoding the binary string corresponding to the TUs in the CTU into coefficient values of the TUs based on the calculated Rice parameters; and

determining pixel values for the TUs in the CTU from the coefficient values; and

outputting a decoded partition of the video comprising the decoded plurality of CTUs in the partition.

9. The system of claim 8 , wherein updating the history counter StatCoeff comprises:

in response to determining that a first non-zero Golomb-Rice coded transform coefficient in a TU is coded as abs_remainder, updating the history counter StatCoeff for a color component cIdx as:

StatCoeff

[

cIdx

]

=

Floor

(

Log

⁢

2

⁢

(

abs_remainder

[

c

⁢

I

⁢

d

⁢

x

]

)

)

+

1

;

 and

in response to determining that the first non-zero Golomb-Rice coded transform coefficient in the TU is coded as dec_abs_level, updating the history counter for a color component cIdx as:

StatCoeff

[

cIdx

]

=

Floor

(

Log

⁢

2

⁢

(

dec_abs

⁢

_level

[

cIdx

]

)

)

,

wherein Floor(x) represents the largest integer less than or equal to x, and Log 2(x) is base-2 logarithm of x.

10. The system of claim 8 , further comprising setting the history counter StatCoeff to an initial value based on a bit depth of samples of luma and chroma arrays of the video.

11. The system of claim 8 , wherein calculating the Rice parameters for the TUs in the CTU based on the history counter comprises:

calculating a local sum variable locSumAbs for a coefficient in a TU of the CTU using values of neighboring coefficients in a pre-determined neighborhood of the coefficient and the replacement variable HistValue; and

deriving the Rice parameter for the TU based on the local sum variable locSumAbs.

12. The system of claim 11 , wherein calculating a local sum variable locSumAbs for a coefficient in a TU of the CTU comprises:

determining that a neighboring coefficient of a plurality of neighboring coefficients in the pre-determined neighborhood of the coefficient is outside the TU; and

using the replacement variable HistValue as a value of the neighboring coefficient outside the TU to calculate the local sum variable locSumAbs.

13. The system of claim 8 , wherein updating a replacement variable HistValue based on the history counter comprises updating the replacement variable HistValue for a color component cIdx by calculating:

HistValue

[

cI

⁢

d

⁢

x

]

=

1

⁢

<<

StatCoeff[cIdx]

,

wherein StatCoeff denotes the history counter.

14. A method for encoding a video, the method comprising:

accessing a partition of the video, the partition comprising a plurality of coding tree units (CTUs);

processing the partition of the video to generate a binary representation of the partition, the processing comprising:

encoding each CTU of the plurality of CTUs in the partition, encoding the CTU comprising:

updating a history counter StatCoeff for a color component for calculating Rice parameters;

prior to calculating a next Rice parameter, updating a replacement variable HistValue based on the updated history counter;

calculating the Rice parameters for transform units (TUs) in the CTU based on the updated replacement variable HistValue; and

encoding coefficient values of the TUs into a binary representation corresponding to the TUs in the CTU based on the calculated Rice parameters; and

encoding the binary representation of the partition into a bitstream of the video.

15. The method of claim 14 , wherein updating the history counter StatCoeff comprises:

in response to determining that a first non-zero Golomb-Rice coded transform coefficient in a TU is coded as abs_remainder, updating the history counter StatCoeff for a color component cIdx as:

StatCoeff

[

cIdx

]

=

Floor

(

Log

⁢

2

⁢

(

abs_remainder

[

c

⁢

I

⁢

d

⁢

x

]

)

)

+

1

;

 and

in response to determining that the first non-zero Golomb-Rice coded transform coefficient in the TU is coded as dec_abs_level, updating the history counter for a color component cIdx as:

StatCoeff

[

cIdx

]

=

Floor

(

Log

⁢

2

⁢

(

dec_abs

⁢

_level

[

cIdx

]

)

)

,

wherein Floor(x) represents the largest integer less than or equal to x, and Log 2(x) is base-2 logarithm of x.

16. The method of claim 14 , wherein the partition is a frame, a slice, or a tile.

17. The method of claim 14 , further comprising setting the history counter StatCoeff to an initial value based on a bit depth of samples of luma and chroma arrays of the video.

18. The method of claim 14 , wherein calculating the Rice parameters for the TUs in the CTU based on the history counter comprises:

calculating a local sum variable locSumAbs for a coefficient in a TU of the CTU using values of neighboring coefficients in a pre-determined neighborhood of the coefficient and the replacement variable HistValue; and

deriving the Rice parameter for the TU based on the local sum variable locSumAbs.

19. The method of claim 18 , wherein calculating a local sum variable locSumAbs for a coefficient in a TU of the CTU comprises:

determining that a neighboring coefficient of a plurality of neighboring coefficients in the pre-determined neighborhood of the coefficient is outside the TU; and

using the replacement variable HistValue as a value of the neighboring coefficient outside the TU to calculate the local sum variable locSumAbs.

20. The method of claim 14 , wherein updating a replacement variable HistValue based on the history counter comprises updating the replacement variable HistValue for a color component cIdx by calculating:

HistValue

[

cId

⁢

x

]

=

1

⁢

<<

StatCoeff[cIdx]

,

wherein StatCoeff denotes the history counter.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 1, 2024
From: INNOPEAK TECHNOLOGY, INC.
To: GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP., LTD.
Reel/Frame 066998/0938 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 8, 2024
From: YU, YUE; YU, HAOPING
To: INNOPEAK TECHNOLOGY, INC.
Reel/Frame 066422/0222 →
Continuity (3)
Provisional Application 63250969 · Sep 30, 2021
Provisional Application 63234634 · Aug 18, 2021
Related Publication 20240373027A1 · Nov 7, 2024
References Cited (19)
US 20130202029A1 · Lou · 2013 [cited by applicant]
US 20170064336A1 · Zhang · 2017 [cited by applicant]
US 20190104312A1 · Lim · 2019 [cited by applicant]
US 20210306638A1 · Kang · 2021 [cited by examiner]
US 20210392357A1 · Xu · 2021 [cited by examiner]
US 20220182667A1 · Li · 2022 [cited by examiner]
US 20240137499A1 · Solovyev · 2024 [cited by examiner]
CN 107925764A · 2018 [cited by applicant]
EP 3709657A1 · 2020 [cited by applicant]
WO 2021127723A1 · 2021 [cited by applicant]
Nguyen et al. “Transform Coding Techniques in HEVC”; Published in: IEEE Journal of Selected Topics in Signal Processing (vol. 7, Issue: 6, Dec. 2013); Date of Publication: Aug. 15, 2013; DOI: 10.1109/JSTSP.2013.2278071,… [cited by applicant]
Peng et al. “Overview of Screen Content Video Coding: Technologies, Standards, and Beyond”; Published in: IEEE Journal on Emerging and Selected Topics in Circuits and Systems (vol. 6, Issue: 4, Dec. 2016); Date of Publi… [cited by applicant]
International Search Report in the international application No. PCT/US2022/075157, mailed on Feb. 17, 2023. 4 pages. [cited by applicant]
Written Opinion of the International Search Authority in the international application No. PCT/US2022/075157, mailed on Feb. 17, 2023. 9 pages. [cited by applicant]
Rusanovskyy (Qualcomm) D et al:“CE-related: On history-enhanced method of Rice parameter derivation for regular residual coding (RRC) at high bit depths”, 22. JVET Meeting; 20210420 -20210428; Teleconference; (The Joint… [cited by applicant]
Rusanovskyy (Qualcomm) D et al: “CE-1.1, CE-1.2 and CE-1.4: On the Rice parameter derivation for high bit-depth coding”,22. Jvet Meeting; 20210420 -20210428; Teleconference; (The Joint Video Exploration Team of ISO/IEC … [cited by applicant]
Supplementary European Search Report in the European application No. 22859393.5, mailed on May 19, 2025, 11 pages. [cited by applicant]
First Office Action of the Chinese application No. 202411349590.9, issued on mailed on May 22, 2025, 17 pages with English translation. [cited by applicant]
Second Office Action of the Chinese application No. 202411349590.9, issued on Jul. 23, 2025, 18 pages with English translation. [cited by applicant]