IP Library Granted Patent US 11,405,618
Granted Patent B2
US 11,405,618 · App. 17/136,200 · Granted Aug 2, 2022

Using multiple models for entropy coding in video compression

Inventor: Dake He (Sunnyvale, CA)
Assignee: GOOGLE LLC
H04N19/13H04N19/124H04N19/159H04N19/176H04N19/18H04N19/196H04N19/91H04N19/96H04N19/129
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 11,405,618
App. No.
17/136,200
Granted
Aug 2, 2022
Kind
B2
Abstract

An apparatus for entropy coding a sequence of bits obtains, using a first probability distribution, a first conditional probability for coding a bit at a position within the sequence of bits, the first conditional probability being a conditional probability of the bit having a certain value given that a sub-sequence of the sequence of bits has first respective values; obtains, using a second probability distribution that is different from the first probability distribution, a second conditional probability for coding the bit, the second conditional probability being a conditional probability of the bit having the certain value given that the sub-sequence has second respective values; obtains, using the first conditional probability and the second conditional probability, a mixed probability for coding the bit; and codes the bit using the mixed probability.

Claims (61)

1. An apparatus for entropy coding a sequence of bits, the apparatus:

obtains, using a first probability distribution, a first conditional probability for coding a bit at a position within the sequence of bits, the first conditional probability being a conditional probability of the bit having a certain value given that a sub-sequence of the sequence of bits has first respective values;

obtains, using a second probability distribution that is different from the first probability distribution, a second conditional probability for coding the bit, the second conditional probability being a conditional probability of the bit having the certain value given that the sub-sequence has second respective values;

determines a rate resulting from entropy coding the sub-sequence up to but excluding the bit;

determines a weight using the determined rate;

obtains a mixed conditional probability for coding the bit as a weighted combination of the first conditional probability and the second conditional probability, wherein the weight is used in the weighted combination; and

codes the bit using the mixed probability.

2. The apparatus of claim 1 , wherein the apparatus further:

updates at least one of the first conditional probability or the second conditional probability after coding the bit using the mixed probability.

3. The apparatus of claim 1 , wherein to determine the rate comprises to:

look up the rate in a lookup table that uses probability values as inputs.

4. The apparatus of claim 1 ,

wherein to obtain the first conditional probability comprises to:

look up the first conditional probability in a lookup table; and

wherein to obtain the second conditional probability comprises to:

look up the second conditional probability in the lookup table.

5. The apparatus of claim 1 , wherein to obtain the mixed probability comprises to:

mix the first probability distribution and the second probability distribution to generate a first intermediate conditional probability;

mix a third probability distribution and a fourth probability distribution to generate a second intermediate conditional probability; and

mix the first intermediate conditional probability and the second intermediate conditional probability to generate the mixed probability for coding the bit.

6. The apparatus of claim 5 , wherein the fourth probability distribution is a same probability distribution as the first probability distribution.

7. The apparatus of claim 1 , wherein the sub-sequence includes all bits of the sequence of bits up to but excluding the position.

8. The apparatus of claim 1 , wherein the sub-sequence consists of a less than all bits of the sequence of bits before the position.

9. A method for entropy coding a quantized transform block, comprising:

selecting probability distributions comprising a first probability distribution and a second probability distribution for coding a token indicative of a quantized transform coefficient of the quantized transform block;

approximating, using the first probability distribution, a first conditional probability for coding the token, the first conditional probability being a conditional probability of the token given previously coded tokens for the quantized transform block;

approximating, using the second probability distribution, a second conditional probability for coding the token, the second conditional probability being a conditional probability of the token given the previously coded tokens for the quantized transform block;

obtaining a mixed probability as a weighted linear combination of the first conditional probability and the second conditional probability, wherein the weighted linear combination uses a first weight and a second weight, wherein

the first weight is based on a first length of a first codeword for coding tokens corresponding to the previously coded tokens using the first conditional probability, and

the second weight is based on a second length of a second codeword for coding tokens corresponding to the previously coded tokens using the second conditional probability; and

coding the token using the mixed probability.

10. The method of claim 9 , wherein the token is selected from an alphabet of tokens, the first probability distribution comprises first probability values for the tokens of the alphabet of tokens, and the second probability distribution comprises second probability values for the tokens of the alphabet of tokens.

11. The method of claim 9 , further comprising:

determining the first length and the second length by:

converting the first probability distribution to a first binary distribution;

converting the second probability distribution to a second binary distribution;

determining the first length using the first binary distribution; and

determining the second length using the second binary distribution.

12. The method of claim 9 , wherein

the first probability distribution is an initial probability distribution for coding the quantized transform coefficients of the quantized transform block, and

the second probability distribution is based on statistics of a coding unit.

13. The method of claim 12 , wherein the coding unit is the quantized transform block.

14. The method of claim 9 ,

wherein approximating the first conditional probability comprises:

looking up the first conditional probability in a first lookup table; and

wherein approximating the second conditional probability comprises:

looking up the second conditional probability in a second lookup table.

15. An apparatus for entropy decoding a sequence of symbols, comprising:

a processor configured to:

select models comprising a first model and a second model for decoding a sequence of bits x n , wherein the sequence of bits x n comprises bits x i for each i=0 to n- 1 ; and

for each bit x j at a position j of the sequence of bits x n , the processor is configured to:

determine a first conditional probability p 1 (x i |x j−1 ) using the first model;

determine a second conditional probability p 2 (x i |x j−1 ) using the second model;

obtain a mixed probability {tilde over (p)}(x i |x i−1 ) as a weighted combination of the first conditional probability and the second conditional probability using a first weight that corresponds to a first length l 1 of a codeword resulting from using the first model for decoding a sub-sequence x j−1 ; and

decode the bit x j using the mixed probability.

16. The apparatus of claim 15 ,

wherein the first conditional probability is a first conditional probability using the first model of the bit x j having a certain value given that the sub-sequence x j−1 of the sequence of bits having a first value, and

wherein the second conditional probability being a second conditional probability using the second model of the symbol x j having the certain value given that the sub-sequence x j−1 of the sequence of bits having the first value.

17. The apparatus of claim 16 ,

wherein the weighted combination uses a second weight that corresponds to a second length l 2 of the codeword resulting from using the second model for decoding the sub-sequence x j−1 .

18. The apparatus of claim 17 , wherein at least one of the first conditional probability or the second conditional probability is approximated using a lookup table.