Method and apparatus for realizing arithmetic coding/decoding

Uloženo v:
Podrobná bibliografie
Název: Method and apparatus for realizing arithmetic coding/decoding
Patent Number: 7,808,406
Datum vydání: October 05, 2010
Appl. No: 12/133222
Application Filed: June 04, 2008
Abstrakt: A method and apparatus for performing arithmetic encoding/decoding in an arithmetic encoder is disclosed. It comprises: firstly, when performing binary arithmetic encoding/decoding in the arithmetic encoder, an interval update process for arithmetic encoding/decoding to be performed in the original domain is mapped to the logarithm domain, and the interval update computation is implemented with direct add/subtract operations; during arithmetic encoding/decoding in the logarithm domain, data conversions between the original domain and the logarithm domain are performed by approximations; and after encoding/decoding a symbol, its probability is updated when necessary, the update being performed with add/subtract operations in the logarithm domain. It can be seen that with the arithmetic encoding/decoding solutions of the disclosure, the arithmetic encoding/decoding process and the probability estimation involved therein are mapped to the logarithm domain. Data conversions between the original domain and the logarithm domain are performed by means of approximation equations. Accordingly, complicated computations and table looking-up are avoided effectively. Therefore, the disclosure provides a simple, efficient and suitable solution for performing arithmetic encoding/decoding.
Inventors: He, Yun (Shenzhen, CN); Yu, Wei (Shenzhen, CN); Yang, Ping (Shenzhen, CN); Meng, Xinjian (Shenzhen, CN)
Assignees: Huawei Technologies Co., Ltd. (Shenzhen, CN), Tsinghua University (Beijing, CN)
Claim: 1. A method for performing arithmetic encoding, comprising: performing arithmetic encoding on data to be encoded; mapping an interval update computation in arithmetic encoding to be performed in the original domain into the logarithm domain and implementing the interval update computation with add/subtract operations, wherein data conversions between the original domain and the logarithm domain are performed by approximations; and performing arithmetic encoding according to the interval update computation result; wherein the data conversion between the logarithm domain and the original domain for a data conversion from the logarithm domain to the original logarithm, comprises: deriving a value X in the original domain by shifting a parameter B by A bits to the left or to the right, or by dividing the parameter B by 2 raised to the power of A, wherein the parameters A and B are computed by decomposing Log X in the logarithm domain as Log_X=−A+B−1, where the parameter A is an integer, and the absolute value for the parameter B minus 1 is less than 1.
Claim: 2. The method of claim 1 , wherein for an encoding cycle, interval update is performed in the logarithm domain when encoding a most probable symbol, and data conversion is performed from the logarithm domain to the original domain and interval update is performed with subtractions in the original domain when encoding a least probable symbol.
Claim: 3. The method of claim 1 , wherein the parameter B is further derived by correcting the parameter B with a first correcting parameter Δ1 for approximation, the first correcting parameter Δ1 being determined by looking up a pre-stored table.
Claim: 4. The method of claim 1 , wherein during data conversions between the logarithm domain and the original domain, for a data conversion from the original domain to the logarithm domain, for a value X in the original domain, its corresponding value Log_X in the logarithm domain is equal to X−1, and, when the Log_X is computed, it is corrected with a second correcting parameter Δ2, where Δ2 is determined by looking up a pre-stored table.
Claim: 5. The method of claim 1 , wherein during the interval update computation, the method further comprises: selecting and performing different update processes for the probability values of symbols to be encoded, the update processes being performed in the logarithm domain.
Claim: 6. The method of claim 5 , wherein computing a probability in the logarithm domain corresponding to the updated probability comprises determining a new probability by: adding/subtracting a predetermined value to/from a non-updated probability in the logarithm domain; or shifting the non-updated probability in the logarithm domain by adding/subtracting the value, or dividing the non-updated probability by 2 raised to the power of an integer.
Claim: 7. An apparatus for performing arithmetic encoding, comprising: a symbol encoding interval updating unit, configured to map an interval update computation in arithmetic encoding to be performed in the original domain into the logarithm domain and implement the interval update computation with add/subtract operations, and perform data conversions between the original domain and the logarithm domain by approximations; and an encoding operation unit, configured to perform arithmetic encoding with an interval update result computed by the symbol encoding interval updating unit, wherein the symbol encoding interval updating unit further comprises: a most probable symbol encoding interval updating unit, configured to perform interval update in the logarithm domain when encoding a most probable symbol; and a least probable symbol encoding interval updating unit, configured to convert data in the logarithm domain to the original domain and perform interval update by subtractions in the original domain when encoding a least probable symbol; wherein the least probable symbol encoding interval updating unit further comprises: a domain conversion unit, configured to perform a conversion from the logarithm domain to the original domain for the least probable symbol, a value X in the original domain being derived by shifting a parameter B in the logarithm domain by A bits to the left or to the right, or by dividing the parameter B by 2 raised to the power of A, where the parameters A and B are computed by decomposing Log X in the logarithm domain as Log_X=−A+B−1, where the parameter A is an integer, and the absolute value for the parameter B minus 1 is less than 1; an interval updating unit, configured to perform interval update; a probability updating unit, configured to update the probability of a symbol; and a renormalization unit, configured to renormalize parameters of an interval update obtained by the interval updating unit.
Claim: 8. The apparatus of claim 7 , further comprising: an initialization unit, configured to initialize each variable to be used by a coder during encoding, for provision to the symbol encoding interval updating unit to use.
Claim: 9. A method for performing arithmetic decoding, comprising: performing arithmetic decoding on data to be decoded; mapping an interval update computation for arithmetic decoding to be performed in the original domain into the logarithm domain and implementing the interval update computation with add/subtract operations, wherein data conversions between the original domain and the logarithm domain are performed by approximations; and performing arithmetic decoding according to the interval update computation result, wherein the data conversions between the logarithm domain and the original domain, for a data conversion from the logarithm domain to the original logarithm, comprises: deriving a value X in the original domain by shifting a parameter B by A bits to the left or to the right, or by dividing the parameter B by 2 raised to the power of A, wherein the parameters A and B are computed by decomposing Log_X in the logarithm domain as Log_X=−A+B−1, where the parameter A is an integer, and the absolute value for the parameter B minus 1 is less than 1.
Claim: 10. The method of claim 9 , further comprising: computing a sub-interval corresponding to a most probable symbol according to a probability model of the decoded data, and determining whether the sub-interval is less than or equal to an offset of a bit stream pointer; wherein if the determination indicates that the sub-interval is less than or equal to the offset of the bit stream pointer, the decoded symbol is determined to be a least probable symbol, and both the sub-interval and the offset are updated, and if the determination indicates that the sub-interval is more than the offset of the bit stream pointer, the decoded symbol is determined to be a most probable symbol, and only the sub-interval is updated.
Claim: 11. The method of claim 9 , wherein during an interval update computation, the method further comprises: selecting and performing different update processes for the probability values of symbols to be decoded, the update processes being done in the logarithm domain.
Claim: 12. The method of claim 9 , wherein the parameter B is further derived by correcting the parameter B with a first correcting parameter Δ1 for approximation, the first correcting parameter Δ1 being determined by looking up a pre-stored table.
Claim: 13. The method of claim 9 , wherein during data conversions between the logarithm domain and the original domain, for a data conversion from the original domain to the logarithm domain, for a value X in the original domain, its corresponding value Log_X in the logarithm domain is equal to X−1, and, when the Log_X is computed, it is corrected with a second correcting parameter Δ2, where Δ2 is determined by looking up a pre-stored table.
Claim: 14. An apparatus for performing arithmetic decoding, comprising: a symbol decoding interval updating unit, configured to map an interval update computation to be performed for arithmetic decoding in the original domain into the logarithm domain and implement the interval update computation with add/subtract operations directly, and perform data conversions between the original domain and the logarithm domain by approximations; and a decoding operation unit, configured to perform arithmetic decoding with an interval update result computed by the symbol decoding interval updating unit, wherein the symbol decoding interval updating unit further comprises: a unit, configured to perform a conversion from the logarithm domain to the original domain for a least probable symbol, a value X in the original domain being derived by shifting a parameter B in the logarithm domain by A bits to the left or to the right, or by dividing the parameter B by 2 raised to the power of A, where the parameters A and B are computed by decomposing Log_X in the logarithm domain as Log_X=−A+B−1, where the parameter A is an integer, and the absolute value for the parameter B minus 1 is less than 1; an interval updating unit, configured to perform interval update; a probability updating unit, configured to update the probability of a symbol; and a renormalization unit, configured to renormalize parameters of an interval update obtained by the interval updating unit.
Claim: 15. The apparatus of claim 14 , wherein the symbol decoding interval updating unit further comprises: a symbol determination unit, configured to compute a sub-interval corresponding to a most probable symbol according to a probability model of the currently decoded symbol, determine whether the sub-interval is less than or equal to an offset of a bit stream pointer and notify an interval updating unit of the determination result; and an interval updating unit, configured to update both the sub-interval and the offset if the determination result indicates that the sub-interval is less than or equal to the offset of the bit stream pointer, or only update the sub-interval if the determination result indicates that the sub-interval is more than the offset of the bit stream pointer.
Claim: 16. The apparatus of claim 14 , further comprising: a probability updating unit, configured to select and perform different update processes on the probability values of symbols to be decoded, the update processes being done in the logarithm domain.
Claim: 17. The apparatus of claim 14 , further comprising: an initialization unit, configured to initialize each variable to be used by a decoder during decoding, for provision to the symbol decoding interval updating unit to use.
Current U.S. Class: 341/107
Patent References Cited: 4286256 August 1981 Langdon et al.
4652856 March 1987 Mohiuddin et al.
4791403 December 1988 Mitchell et al.
4933883 June 1990 Pennebaker et al.
4989000 January 1991 Chevion et al.
6049630 April 2000 Wang et al.
6393160 May 2002 Edgar
1561056 January 2005
WO 99/46729 September 1999


Other References: H.264—Advanced video coding for generic audiovisual services, Telecommunication Standardization Sector of ITU, Edition includes modifications introduced by ITU-T Rec. H264 (2003) Corrigendum 1 approved on May 7, 2004, International Telecommunication Union, Geneva, Switzerland. cited by other
“H.264—Advanced video coding for generic audiovisual services,” Telecommunication Standardization Sector of ITU, edition includes text approved Mar. 2005 and a Corrigendum 1 approved Sep. 2005, International Telecommunication Union, Geneva, Switzerland. cited by other
Specification of “H.264—Advanced video coding for generic audiovisual services,” Telecommunication Standardization Sector of ITU, International Telecommunication Union, 2003, Geneva, Switzerland. cited by other
Primary Examiner: Williams, Howard
Attorney, Agent or Firm: Leydig, Voit & Mayer, Ltd
Přístupové číslo: edspgr.07808406
Databáze: USPTO Patent Grants
Buďte první, kdo okomentuje tento záznam!
Nejprve se musíte přihlásit.