Première Page

Titre
High-speed arithmetic compression coding using concurrent value updating
Revendications
  1. A machine-implementable method for recursively generating an arithmetically compressed binary number steam C(s.b) in high-to-low position magnitude order responsive to successive symbols b(i) from a binary symbol string s=b(1), b(2), . . . b(i), . . . , b(n), in a reduced number of operations per encoding cycle, comprising the steps of:
    writing the q-least-significant bits of C(s) and an internal variable T(s) into respective first and second shift registers; and
    ascertaining for each b(i) whether it constitutes a most-probable symbol (MPS); and
    deriving an integer k as a coding parameter indicative of an expectation for the least-probable symbol (LPS); characterized in that
    the method comprises the further steps of:
    concurrently incrementing the first register contents and decrementing the second register contents by 2.sup.-k and left-shift normalizing both register contents if the second register contains a leading zero, if b(i) is an MPS; and
    left-shifting the first register contents by k positions and setting the second register contents to unity, if b(i) is an LPS.
  2. An encoding apparatus for recursively altering a compressed bit stream representation of a string of binary symbols in a reduced number of operations per symbol encoding cycle comprising:
    a first (41) and second (59) shift register containing the q-least-significant bits of the compressed stream C(s) and an internal variable T(s); means (31, 33) for characterizing each received symbol as either a most-probable symbol (MPS) or a least-probable symbol (LPS); characterized in that
    the apparatus further comprises:
    means (9, 35, 39, 47) responsive to an LPS symbol characterization and to a parameter k whose values correspond to a predetermined source alphabet probability interval for shifting out the k-most-significant bits in the first register and zero-filling the k-least-significant bit positions therein, said means further including means for setting the second register contents to unity; and
    means (49, 63, 53, 55) for concurrently incrementing the first register contents by 2.sup.-k and decrementing the second register contents by 2.sup.-k, left-shift normalizing (67, 53, 55) both register contents if the second register contains a leading zero in response to an MPS symbol characterization and the parameter k.
  3. An encoder for recursively generating an arithmetically compressed binary number stream C(sb) in high-to-low position magnitude order responsive to a binary character string, each character being identified as either a most-probable symbol (MPS) or a least-probable symbol (LPS) and having associated therewith a parameter k whose value corresponds to a predetermined source alphabet probability interval, comprising:
    a first- (41) and second- (59) shift register containing the q-least-significant bits of the compressed stream and an internal variable; characterized in that
    the encoder further comprises:
    means (9, 47, 39, 35) responsive to each ordered pair MPS, k for shifting out the k-most-significant bits and zero-filling the k-least-significant bits of the first register and setting (CLEAR) the second register contents to unity; and
    a first and second computation loop (49, 51, 53, 37; 63, 65, 55, 57) for additively combining 2.sup.-k to the first register contents and subtractively combining 2.sup.-k from the second register contents, said first and second loop including means (67, 53, 55) for left-shift normalizing both register contents if the second register contains a leading zero responsive to each ordered pair of LPS, k.
  4. A machine-implementable method for recursively generating successive symbols b(i) of a binary symbol string s=b(1), b(2), . . . b(i), . . . , b(n) responsive to successive high-to-low position magnitude order bits of an arithmetically compressed binary number stream C(s.b) using a reduced number of operations per decoding cycle, comprising the steps of:
    writing the q-most significant bits of C(s.b) and an internal variable T(s) into respective first and second shift registers;
    deriving an integer k(i) as a coding parameter indicative of an expectation that the decodable symbol is a least-probable symbol (LPS); characterized in that
    the method comprises the further steps of:
    concurrently decrementing the first and second register contents by 2.sup.-k(i) ;
    testing the most-significant bit position of the first register;
    left-shift normalizing both register contents if the tested bit position is 1 and decoding the symbol as a most-probable symbol; and
    left-shifting the first register contents by k positions and setting the second register contents to unity if the tested bit position is a 0, and decoding the symbol as an LPS.
Abrégé
A method and apparatus for recursively generating an arithmetically compressed binary number stream responsive to the binary string from conditional sources. Throughput is increased by reducing the number of operations required to encode each binary symbol so that only a single shift of k bits is required upon receipt of each least-probable symbol or an "add time", followed by a decision and a one-bit shift in response to each most-probable symbol encoding. The concurrent augmentation of the compressed stream and an internal variable involves only the function of a probability interval estimate of the most-probable symbol, and not upon the past encoding state of either variable (2.sup.-k, 49, 63, C, T). Each binary symbol may be recovered by subtracting 2.sup.-k from the q-most-significant bits of the compressed stream and testing the leading bit of the difference.
Références non-brevet
Chargement en cours… 
Citée par
US 4652856 (24 mars 1987) Multiplication-free multi-alphabet arithmetic code
US 4749983 (7 juin 1988) Compression of multilevel signals
US 4791403 (13 déc. 1988) Log encoder/decorder system
US 4792954 (20 déc. 1988) Concurrent detection of errors in arithmetic data compression coding
US 4891643 (2 janv. 1990) Arithmetic coding data compression/de-compression by selectively employed, diverse arithmetic coding encoders and decoders
US 4905297 (27 févr. 1990) Arithmetic coding encoder and decoder system
US 4933883 (12 juin 1990) Probability adaptation for arithmetic coders
US 4935882 (19 juin 1990) Probability adaptation for arithmetic coders
US 4989000 (29 janv. 1991) Data string compression using arithmetic encoding with simplified probability subinterval estimation
US 5097261 (17 mars 1992) Data compression for recording on a record medium
US 5109226 (28 avr. 1992) Parallel processors sequentially encoding/decoding compaction maintaining format compatibility
US 5272478 (21 déc. 1993) Method and apparatus for entropy coding
US 5278970 (11 janv. 1994) Method for efficient utilization of removable data recording media
US 5333212 (26 juil. 1994) Image compression technique with regionally selective compression ratio
US 5363099 (8 nov. 1994) Method and apparatus for entropy coding
US 5396228 (7 mars 1995) Methods and apparatus for compressing and decompressing paging data
US 5406282 (11 avr. 1995) Data coding and decoding with improved efficiency
US 5455874 (3 oct. 1995) Continuous-tone image compression
US 5563595 (8 oct. 1996) Method and apparatus for compressing data
US 5592162 (7 janv. 1997) Interval width update process in the arithmetic coding method
US 5594674 (14 janv. 1997) Code point update device in the arithmetic coding method
US 5652878 (29 juil. 1997) Method and apparatus for compressing data
US 5708431 (13 janv. 1998) Method for compression coding of potentially unbounded integers
US 5784497 (21 juil. 1998) Arithmetic encoding with carry over processing
US 5818368 (6 oct. 1998) Method and apparatus for lossless digital data compression
US 5818369 (6 oct. 1998) Rapid entropy coding for data compression or decompression
US 5822456 (13 oct. 1998) Optimal spline interpolation for image compression
US 5892847 (6 avr. 1999) Method and apparatus for compressing images
US 5912636 (15 juin 1999) Apparatus and method for performing m-ary finite state machine entropy coding
US 6055338 (25 avr. 2000) Bi-level adaptive coding using a dual port memory and a context comparator
US 6058216 (2 mai 2000) Apparatus for encoding image data
US 6259388 (10 juil. 2001) Multiplication-free arithmetic coding
US 6453073 (17 sept. 2002) Method for transferring and displaying compressed images
US 6714145 (30 mars 2004) Method and apparatus for integer-based encoding and decoding of bits
US 7161507 (9 janv. 2007) Fast, practically optimal entropy coding
US 7176815 (13 févr. 2007) Video coding with CABAC
US 7265691 (4 sept. 2007) Modeling for enumerative encoding
Examinateurs
C. D. Miller
Inventeurs
Glen G. Langdon, Jr., San Jose CA
Jorma J. Rissanen, Los Gatos CA
Ayant-droit
International Business Machines Corporation, Armonk NY
Date d’enregistrement
30 mars 1981
Date de publication
21 août 1984
Date d'expiration prévue
21 août 2001
Mandataires
R. Bruce Brodie
Numéro de dépôt
06281734
IPC
H03K 1300
Classification des États-Unis
034/7DD
235/310
Domaine de recherche
235/310
235/311
340/347.DD
Références brevet
US 4286256 (août, 1981) Langdon 403/47D D
Publication de l'OMPI
WO82/03514 (19821014)