IP Library Granted Patent US 10,645,389
Granted Patent B2
US 10,645,389 · App. 16/562,659 · Granted May 5, 2020

Using multiple probability models for entropy coding in video compression

Inventor: Dake He (Cupertino, 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 10,645,389
App. No.
16/562,659
Granted
May 5, 2020
Kind
B2
Abstract

Entropy encoding and decoding a sequence of symbols using probability mixing is disclosed. A method includes selecting models including a first model and a second model; for at least a symbol, at a position of the symbols, determining a mixed probability using the first model and the second model, by: determining, using the first model, a first conditional probability for coding the symbol, the first conditional probability being a conditional probability of the symbol given a sub-sequence of the sequence having a first value; determining, using the second model, a second conditional probability for coding the symbol, the second conditional probability being a conditional probability of the symbol given the sub-sequence having a second value; and determining, using the first conditional probability and the second conditional probability, the mixed probability for coding the symbol; and coding the symbol using the mixed probability.

Claims (68)

1. A method for entropy coding a sequence of symbols, comprising:

selecting models comprising a first model and a second model;

for at least a symbol, at a position of the symbols, determining a mixed probability using the first model and the second model, by:

determining, using the first model, a first conditional probability for coding the symbol, the first conditional probability being a conditional probability of the symbol given a sub-sequence of the sequence having a first value;

determining, using the second model, a second conditional probability for coding the symbol, the second conditional probability being a conditional probability of the symbol given the sub-sequence having a second value; and

determining, using the first conditional probability and the second conditional probability, the mixed probability for coding the symbol, wherein determining the mixed probability comprising:

determining, using a first rate estimator, a first length of a first codeword for coding a first sub-sequence of the sequence up to the symbol using the first conditional probability;

determining, using a second rate estimator, a second length of a second codeword for coding the first sub-sequence of the sequence up to the symbol using the second conditional probability;

determining a first weight using the first length;

determining a second weight using the second length; and

combining the first conditional probability and the second conditional probability using a linear combination that uses the first weight and the second weight; and

coding the symbol using the mixed probability.

2. The method of claim 1 , further comprising:

determining a rate resulting from coding the sub-sequence of the sequence up to the symbol; and

determining the first weight using the determined rate.

3. The method of claim 2 , wherein the first rate estimator and the second rate estimator are a same rate estimator.

4. The method of claim 3 , wherein the rate estimator is a hypothetical arithmetic encoder.

5. The method of claim 2 , wherein determining the rate comprises:

looking up the rate in a lookup table using probability values as inputs.

6. The method of claim 1 , wherein the models comprise a third model and a fourth model, and wherein determining the mixed probability using the first model and the second model comprises:

mixing the first model and the second model to generate a first intermediate conditional probability;

mixing the third model and the fourth model to generate a second intermediate conditional probability; and

mixing the first intermediate conditional probability and the second intermediate conditional probability to generate a conditional probability to be used for coding the symbol.

7. The method of claim 6 , wherein the first model and the fourth model are a same model.

8. The method of claim 1 , wherein the sub-sequence of the sequence includes all the symbols of the sequence up to the position.

9. The method of claim 1 , wherein the sub-sequence of the sequence consists of a predetermined number of symbols of the sequence before the position.

10. An apparatus for entropy coding a quantized transform block, the apparatus comprising:

a memory; and

a processor, wherein the memory includes instructions executable by the processor to:

select 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;

determine a mixed probability for coding the token using the first probability distribution and the second probability distribution, wherein to determine the mixed probability comprises to:

determine, 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;

determine, 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 previously coded tokens for the quantized transform block; and

determine the mixed probability using the first conditional probability and the second conditional probability; and

code the token using the mixed probability.

11. The apparatus of claim 10 , 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.

12. The apparatus of claim 10 , wherein to determine the mixed probability using the first conditional probability and the second conditional probability comprises to:

combine the first conditional probability and the second conditional probability using a linear combination that 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.

13. The apparatus of claim 12 , wherein the instructions further include instructions to:

determine the first length and the second length by instructions to:

convert the first probability distribution to a first binary distribution;

convert the second probability distribution to a second binary distribution;

determine the first length using the first binary distribution; and

determine the second length using the second binary distribution.

14. The apparatus of claim 10 , 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.

15. The apparatus of claim 14 , wherein the coding unit is the quantized transform block.

16. The apparatus of claim 14 , wherein the coding unit is a super block that includes the quantized transform block.

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

a memory; and

a processor, wherein the memory includes instructions executable by the processor to:

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

for each symbol x j at a position j of the sequence of symbol x n , perform steps to:

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

compute 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 ) using the first conditional probability and the second conditional probability; and

decode x j using the mixed probability.

18. The apparatus of claim 17 , wherein

wherein the first conditional probability being a first conditional probability using the first model of the symbol x j having a certain value given that a sub-sequence x j−1 of the sequence 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 having the first value.

19. The apparatus of claim 18 , wherein to obtain the mixed probability comprises to:

mix the first conditional probability and the second conditional probability using respective first weight and second weight,

wherein the first weight corresponds to a first length l 1 of a codeword resulting from using the first model for decoding the sub-sequence x j−1 , and

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

20. The apparatus of claim 19 , wherein the first weight and the second weight are determined using a lookup table.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 9, 2019
From: HE, DAKE
To: GOOGLE LLC
Reel/Frame 050311/0131 →
Cited By (2)
US 12,456,231 US 12,477,113