← Back to Patent Explorer
EP0350439A2 Expired / Lapsed EP ⏱️ 0.0 years remaining

A method of generating a compressed representation of a source data string

Assignee: International Business Machines Corp
•
Filing: 1989-06-08
•
Granted: —
•
Expires: 2009-06-08
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract An improved method is disclosed for generating a compressed representation of a source data string each symbol of which is taken from a finite set of m + 1 symbols, a₀ to a m . 'The method is based on an arithmetic coding procedure wherein the compressed representation is recursively generated as successive sub-intervals within a predetermined interval. The width of each sub-interval is theoretically equal to the width of the previous sub-interval multiplied by the probability of the current symbol. The improvement is achieved by approximating the width of the previous sub-interval so that the approximation can be obtained by a single shift and add operation using a suitable shift register.

Inventors

  • 👤 Dan Shmuel Chevion
  • 👤 Ehud Dov Karnin
  • 👤 Eugeniusz Walach

Bibliographic Details

Application Number —
Jurisdiction EP
Data Source google_patents
Last Synchronized 2026-11-08 05:22
CPC Classifications
H; H03; H03M; H03M7/00; H03M7/30; H03M7/40; H03M7/4006

Claims Analysis

Total Claims: 12
Claim 1
Independent Claim 345 words
A method of generating a compressed representation R(comp) of a source data string STR, wherein: each symbol is taken from a finite set of m+1 symbols a₀ ...a m , said compressed representation being a numeric value within a given range and being generated recursively in successive cycles for successive symbols in the string, a probability value p(i) and a cumulative probability value S(i) being available for each symbol a i , said cumulative probability value being S(i) = p(0) + p(1) + ... + p(i-1) for i = 1...m, S(0) = 0, and using a pair of shift registers A and C each comprising ω binary digit positions, characterized by following steps: (a) initially setting the contents of the C register to all zeros and the contents of the A register to a predetermined value; and for each successive symbol a in the string: (b) determining a scaling factor K by taking the contents of the A register and eliminating all binary digits less significant than a predetermined binary one digit; (c) adding the value K · S(i) to the contents of the C register; (d) determining the contents of the A register (d1) if the symbol a i is not the symbol a m by inserting the vaule K · p(i) into the A register, or (d2) if the symbol a i is the symbol a m , by subtracting the value K · S(i) from the contents of the A register; (e) shifting both the A register and the C register in a predetermined direction until the contents of the A register lie within a predetermined range, filling the vacated positions with zeros; and (f) if the symbol a i were not the last symbol in string STR, repeating steps (b) to (e), or, if the symbol a i were the last symbol in string STR, shifting the contents of the C register by ω positions in said predetermined direction; whereby the sequence of binary digits shifted out of the C register constitutes said compressed representation R(comp) of the symbol string STR.
Claim 2
Independent Claim 345 words
A method of generating a compressed representation R(comp) of a source data string STR, wherein: each symbol is taken from a finite set of m+1 symbols a₀ ...a m , said compressed representation being a numeric value within a given range and being generated recursively in successive cycles for successive symbols in the string, a probability value p(i) and a cumulative probability value S(i) being available for each symbol a i , said cumulative probability value being S(i) = p(0) + p(1) + ... + p(i-1) for i = 1...m, S(0) = 0, and using a pair of shift registers A and C each comprising ω binary digit positions, characterized by following steps: (a) initially setting the contents of the C register to all zeros and the contents of the A register to a predetermined value; and for each successive symbol a in the string: (b) determining a scaling factor K by taking the contents of the A register and eliminating all binary digits less significant than a predetermined binary one digit; (c) adding the value K · S(i) to the contents of the C register; (d) determining the contents of the A register (d1) if the symbol a i is not the symbol a m by inserting the vaule K · p(i) into the A register, or (d2) if the symbol a i is the symbol a m , by subtracting the value K · S(i) from the contents of the A register; (e) shifting both the A register and the C register in a predetermined direction until the contents of the A register lie within a predetermined range, filling the vacated positions with zeros; and (f) if the symbol a i were not the last symbol in string STR, repeating steps (b) to (e), or, if the symbol a i were the last symbol in string STR, shifting the contents of the C register by ω positions in said predetermined direction; whereby the sequence of binary digits shifted out of the C register constitutes said compressed representation R(comp) of the symbol string STR.
Claim 3
Dependent Claim 41 words
Method according to Claim 1, wherein said predetermined binary one digit is the second most significant binary one digit in the A register, such that the scaling factor K comprises at most two binary one digits separated by z zero digits.
Claim 4
Dependent Claim 14 words
Method according to Claim 1 or Claim 2, wherein said predetermined value is 1.000.
Claim 5
Dependent Claim 50 words
Method according to Claim 2 including the step of: providing the value K · p(i) or K · S(i), respectively, by shifting the value p(i) or S(i), respectively, through z + 1 positions towards less significant positions, and adding the shifted quantity to the available value p(i) or S(i), respectively
Claim 6
Dependent Claim 39 words
Method according to any one of the preceding claims, wherein the predetermined range is from 1 .0 (binary) to 1.111... (binary) and the predetermined direction is such as to increase the magnitude of the contents of the A register.
Claim 7
Independent Claim 365 words
A method of decoding a compressed representation R(comp) of a source data string STR, wherein: each symbol is taken from a finite set of m+1 symbols a₀ ...a m , said compressed representation being a numeric value within a given range, a probability value p(i) and a cumulative probability value S(i) being available for each symbol a i , said cumulative probability value being S(i) = p(0) + p(1) + ... + p(i-1) for i = 1...m, S(0) = 0, and using a pair of shift registers A and C each comprising ω binary digit positions, characterized by following steps: (a) initially setting the contents of the C register to the ω most significant digits of the compressed representation R(comp), and the contents of the A register to a predetermined value; and decoding each successive symbol a i in the source data string STR by: (b) determining a scaling factor K by taking the contents of the A register and eliminating all binary digits less significant than a predetermined binary one digit; (c) determining the largest value of j such that C ≧ K · S(j) where: C is interpreted as a binary fraction with a binary point outside the C register adjacent to the most significant binary digit therein, and a j is the symbol output by the decoder at the current step; (d) determining the contents of the A register (d1) if the symbol a j is not the symbol a m by inserting the value K · p(j) into the A register, or (d2) if the symbol a j is the symbol a m , by subtracting the value K · S(j) from the contents of the A register; (e) subtracting the value K · S(j) from the contents of the C register; (f) shifting both the A register and the C register in a predetermined direction until the contents of the A register lie within a predetermined range, filling the vacated positions in the A register with zeros and filling the vacated positions in the C register with the corresponding number of most significant digits remaining in the compressed representation R(comp), and repeating steps (b) to (f) until R(comp) is empty.
Claim 8
Independent Claim 365 words
A method of decoding a compressed representation R(comp) of a source data string STR, wherein: each symbol is taken from a finite set of m+1 symbols a₀ ...a m , said compressed representation being a numeric value within a given range, a probability value p(i) and a cumulative probability value S(i) being available for each symbol a i , said cumulative probability value being S(i) = p(0) + p(1) + ... + p(i-1) for i = 1...m, S(0) = 0, and using a pair of shift registers A and C each comprising ω binary digit positions, characterized by following steps: (a) initially setting the contents of the C register to the ω most significant digits of the compressed representation R(comp), and the contents of the A register to a predetermined value; and decoding each successive symbol a i in the source data string STR by: (b) determining a scaling factor K by taking the contents of the A register and eliminating all binary digits less significant than a predetermined binary one digit; (c) determining the largest value of j such that C ≧ K · S(j) where: C is interpreted as a binary fraction with a binary point outside the C register adjacent to the most significant binary digit therein, and a j is the symbol output by the decoder at the current step; (d) determining the contents of the A register (d1) if the symbol a j is not the symbol a m by inserting the value K · p(j) into the A register, or (d2) if the symbol a j is the symbol a m , by subtracting the value K · S(j) from the contents of the A register; (e) subtracting the value K · S(j) from the contents of the C register; (f) shifting both the A register and the C register in a predetermined direction until the contents of the A register lie within a predetermined range, filling the vacated positions in the A register with zeros and filling the vacated positions in the C register with the corresponding number of most significant digits remaining in the compressed representation R(comp), and repeating steps (b) to (f) until R(comp) is empty.
Claim 9
Dependent Claim 41 words
Method according to Claim 6, wherein said predetermined binary one digit is the second most significant binary one digit in the A register, such that the scaling factor K comprises at most two binary one digits separated by z zero digits.
Claim 10
Dependent Claim 15 words
Method according to Claim 6 or Claim 7, wherein the predetermined value is 1.0000... (binary).
Claim 11
Dependent Claim 51 words
Method according to Claim 7, further including the step of: providing the value K · p(i) or K · S(i), respectively, by shifting the value p(i) or S(i), respectively, through z + 1 positions towards less significant positions, and adding the shifted quantity to the available value p(i) or S(i), respectively.
Claim 12
Dependent Claim 39 words
Method according to any one of Claims 6 to 9, wherein the predetermined range is from 1.0 (binary) to 1.111... (binary) and the predetermined direction is such as to increase the magnitude of the contents of the A register.

References Cited (Backward Citations)

No citation records indexed.

USPTO Annuity & Maintenance Windows

Maintenance schedule is calculated for granted US utility patents.

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag