US3656178A - Data compression and decompression system - Google Patents

Data compression and decompression system Download PDF

Info

Publication number
US3656178A
US3656178A US3656178DA US3656178A US 3656178 A US3656178 A US 3656178A US 3656178D A US3656178D A US 3656178DA US 3656178 A US3656178 A US 3656178A
Authority
US
United States
Prior art keywords
string
units
type
memory
storing
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
Inventor
Paul A D De Maine
Gordon K Springer
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Research Corp
Original Assignee
Research Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Research Corp filed Critical Research Corp
Priority to US85770769A priority Critical
Application granted granted Critical
Publication of US3656178A publication Critical patent/US3656178A/en
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H03BASIC ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/3066Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction by means of a mask or a bit-map

Abstract

A high speed, multistage, compressor-decompressor system for processing arbitrary bit strings by reversibly removing redundant information. Alphanumeric information is processed by Type 1 compression which involves removing patterns of contiguous bytes and replacing each removed pattern by decompression information which takes considerably less storage space, and Type 2 compression which involves removing individual redundant bytes and constructing a bit map identifying the location of the removed bytes. Numerical information is processed by a compression technique involving truncation, recursive differencing, sequence removal, packing, and then utilizing the Type 1 and Type 2 compression which are used in conjunction with alphanumeric information. The information which is to be compressed is arranged in strings of bytes and any information defining removal of redundant information from a string is kept together with the string. As a result, each string is selfdefined in the sense that it contains all information needed to decompress that string.

Description

United States Patent De Maine et al.

[54] DATA COMPRESSION AND DECOMPRESSION SYSTEM [72] Inventors: Paul A. D. De Maine; Gordon K. Springer,

both of State College, Pa.

LAD. D e Maine, B. A Mgrron, and K. Kloss, The Solid System 11; Numeric Compression The Solid System 111; Alphanumeric Compression Nat. Bureau of Standards Technical Note 413, Aug. 15,1967

[451 Apr. 11, 1972 R.W. Bemer, Data Compression System, IBM Tech. Disc. Bull. Vol. 3, No. 8, Jan. 1961 Primary Examiner-Raulfe B. Zache Assistant Examiner-Sydney R. Chirlin Attorney-Robert S. Dunham, P. E. Henninger, Lester W. Clark, Gerald W. Griffin, Thomas F. Maran, Howard .1.

Churchill, R. Bradlee Boal, Christopher C. Dunham, Robert [5 7] ABSTRACT A high speed, multistage, compressor-decompressor system for processing arbitrary bit strings by reversibly removing redundant information. Alphanumeric information is processed by Type 1 compression which involves removing patterns of contiguous bytes and replacing each removed pattern by decompression information which takes considerably less storage space, and Type 2 compression which involves removing individual redundant bytes and constructing a bit map identifying the location of the removed bytes. Numerical information is processed by a compression technique involving truncation, recursive differencing, sequence removal, packing, and then utilizing the Type 1 and Type 2 compression which are used in conjunction with alphanumeric information. The information which is to be compressed is arranged in strings of bytes and any information defining removal of redundant information from a string is kept together with the string. As a result, each string is self-defined in the sense that it contains all information needed to decompress that string.

25 Claims, 38 Drawing Figures SANPAKD PATENTEuIPRITIIm 1 3,656,178

SHEET mar 30 sET ALL YES REGISTERS AND F COUNTERS IS THIS TYPE 2 COMPRESSION FIG. 1A

COMPUTE sAvINe RATIO AND FIND OUT WHETHER TO ADD, DELETE, OR UPDATE PCORDSI FIND ALL l2 AVAILABLE CODES.

STORE lN LEXICON ARE THERE ANY coDEs LEFT AVAILABLE FOR SUBSTITUTION FOR A PATTERN ANY CODES AVAILABL SET COUNTERS R AND RM A B UPDATE COUNTERS SELECT coDE FROM U No 807 LEXICON ARRAY I P {30 RM=RM-l LDAD IRE wITH ADDRESS OF MATCH 36 FROM TL (IR4) (94) m TWIN/(IRS.- E PAUL A.D. de MAINE INGER m- AY GORDON K AA 34 v LERNER DAVID 8I BEHR ATTORN E YS PAIENTEBIPII I I I972 SHEET SET UP COUNTERS AND REGISTERS FOR TYPE 2 COMPRESSION SET UP COUNTERS AND REGISTERS FOR FAST MODE GET NEXT TYPE 2 CODE TO SEARCH STRING FOR GET NEXT PCORD O SEARCH FOR IN STRING FIG. 1B

WAS THERE A SAVINGS GO TO POINT MARKED K SET UP COUNTERS TO ASSEMBLE LEXICON GO TO POINT MARKED L ARE THERE ANY ANY MORE TYPE 2 CODES GO TO POINT MARKED J ANY MORE PCORDS FOR THIS ENGTH TH ERE A SAVINGS RRL JII,CS4

ANY MORE TYPE 2 CODES ARE THERE ANY YES RELOAD REG. 8: IRR AND BRANCH SAVINGS SAVINGSR PATENTED PR 1 1 m2 SHEET 830F310 UN UNLN 20mm wooo mkmJwQ PATENTEIJIPII I I I972 SET NDR IN SOSIIRI) ZERO. MAKE SOSIIRI) NEGATIVE USED).

SHEET OSUF 3'0 LOGICAL ADD THE LAST 4 BITS OF NUMBER AT LOCATION OIBRYY) WITH ITSELF AND THE SHIFT RESULT TO RIGHT 8 BITS, TRUNCATION WITH ROUNDING STORE STORE IO LSX(IRI)/2.0 IN BWXIIRII lN BWX (IRI) 7 FIND MIN (1R4) 2'8 2 x v 234 STORE 0.0 ,E Q JQZ IN BWX (IR'I IN SUBSTRING 236 V I INCREASE SETI 220 BRYY BY 4 FIND THE MIN '98 YM (1R|I= 1R4 I DECREASE 1R3 (1R4) 8 THE DUMI=IIR5-1R4I BY 4 MAX.IIR5) IN /BWX (IRI I SUBSTRING 238 (6(BRYY I 222 0 200 IF SE I g DUMI B O YM(1R|)=(IR4+1R5I 61.08364 /2 so 1R5=I YMIIRI )I DEc E vQI I igm I224 BRYY 8Y4 (:52 a CSI5 SHIFT 6(BRYY) LOGICAL LEFT REPLACE GIBRYYI a STORE IN E6(BRYY)YM(IRI)J LOAD IRS 8| /BWX(IR|) CHECKIIRI) BRYY FROM cs2 a cs I5 LOAD BRYY r 228 AND [R3 FROM SUBTRACT TRUN Csls CS2 YMIIRIIFROM 6(BRYY) O'YYIYY l IR3=IR34 230 244 A BRYY=BRYY +4 2I4 INCREASE BRYY BY 4 DECREASE o I ma BY 4 so 50 IF 0 FIG.

PATENTEDIPR I I I972 3. 656, 1 78 SHEET 06 (1F 30 IE H I? 5 EW TTN I I sTo II: IRI a |R5 I 2$8RIHIIRTOII$3I I IN a IR3) AND .1 ADD FOUR TO IR4 I DUMIIIM) LOAD BRYY FROM LOAD I CSISIDECREASE I I FROM BRYY I I |R3 BY FOUR, I D I INCREASE IR3v8IIR4 I I BY FouRsToREIRe I w BEGIN THE FLOAD me I GIIRZI I I SIGNIFICANT I R BRYY OM e( I I I E LTI 'I'BRIED IN RT I INCREASE IR4,IR5a I I E B S O I I IR6 BY4,88II I EAEH \A I2R STORE IRS IN 9(IR3).INCREASE IR3, IR5 BI BRYY BY FOUR. LOAD IRG FROM GIBRYY). DECREASE IRI BY ONE.

TRANSFER IR? BYTES FROM 9(IR2) TO 6(IR3) STORE IR6 IN DUMI. ASSEMBLE THE CONDENSED SUBSTRING LOAD BRYY a I I IRIWITH IR28I9 I so I M355? RI CONDENSED STRINGS II IIRS+IR4 IS N0.0F I

\BYTES (III) I W I.

LOAD IR4,IR5 8IIR7 WITH ZERO LOAD IR6 8IlR4 WITH ONE 8 GIBRY LOAD IR4 POSITIVE BI IR? WITH ONE MOVE lR4-IR5 LEFT ONE BIT. INCREASE IR6 BY ONE LOAD IR4 WITH IR7. SHIFT IR4-IR5 RT. ONE

ADD IR6 TO IRS LOGICAL STORE IRS IN GIBRYY).

ADD FOUR TO BRYY. SUBSTRACT FOUR FROM IR3.

PATENTEDIPIIII I972 I SNUPAKC I SHEET 070F 3O TRUNCATION MAKE IRS POSITIVE ADD IR5 TO IRS LOAD IRI,IR3 AND BRYY FROM CS2,

I oAD IR2,|R3 a BRYY FROM cs3, (:54 a csI5:IRe, IRI,IR4 T0 IR? WITH ZERO LOAD IR? FROM GIBRYY) IF I R7-IRO MAKE IRO POSITIVE ADD IR5 TO IRG ADD IRG TO IR4 HAS IR4 OVERFLOWED YES LOAD IRB FROM IR7 IR5 WITH ZERO INCREASE B RYY BY FOUR DECR-EASE IR3 BY FOUR ITRTIEURSTRFIE INDEX IR3=NO. OF BYTES I Nos. IN suBsTRINs IR5= NO. OF CONSECUTIVE IEQUELLEILEQEFLSJ INCREASE IR5 BY ONE LOAD IRI WITH 'TFFFFFFF' cs4 a CSIS BRYY=ADDRESS l I RIDE-155W I SUBSTRING STEP (a) CONVERTED TO I INTEGERS AND I HAS IRG OVERFLOWED ADD IRS TOIR4 STORE IR4 IN IRI LOAD BRYY FROM Calf) WITH ZERO THE SUM OF I ABS. INTEGERS \L L JIBE I SUBTRACT [R6 FROM GIBRYY) 8| STORE DIFF. IN IR4. LOAD BRY WITH POSITIVE IR7 IF BRY- LOAD IRS FROM GIBRYY) INCREASE IR5 BY ONE PATENTEIII-PII II Ian 3,656,178

SHEET O8BF 30 '*G a -PTQKIE hl I l mERF Bic-1m? TFE" ADD IRs To sAvE IR8 IN wcD PACKING OF E 1 POSITIVE IRe INIRe I SETALL REGISTERS INTEGERS IN ARRAY ADD 1R0 To IR4 AND INDICATORS 9(BRYYHNTO ARRAYI I \E Y L J I SETKMZASKI AND L @EI E M s HAS No LOAD FROM LOAD IRI FROM sEouENcEs I ovERFLowED IR? INCREASE [R5 BY ONE DUMI. SHIFT IRI CONDENSED I LEFT 3 BITS \LN S'EEP (P I I I-o lBNYCgfiSLEOlXgR I LOAD IR8,CS6 AND BRYY BIIRI FROM I cs7 WITH ZERO CSI5 a cs2 I l4-K INSERT IN ExTRAcT FROM mEK :2 lS SOSURDLOAD R7: 9(BRYY) THE usED TO I NO. OF SIGN BITS ExTRAcT THIS I h ZERO I86 I INTo IR3I ADD NO. FROM RT. I L I ONE TO IR8 Il3 l J UENC'NG ,'u BsTIN CONDENSAT'ON [F 0 TRANSFER CS6 TO I AND COUNT cs7 AND STORE PROCEDURES |R3-cs6 "IT 0 IR? BY FOUR Z HAS IRs OVERFLOWED LOADIR3 BI |R2 WITH CS6 BI ZERO MULTIPLY |R2 BY IRB AND STORE THE ANSWER IN |R3 S INcREAsE BRYY BY LOAD RYY a FOURDECREASE IR3 FROM IR? BY FOUR csIs a cs4 LOAD IRe WITH 0 0(8RYY) H DEcREAsE IRB BY l E ONE.TRAN$FER ADD FOUR T0 CS7 T0 C56 BRYY. SUBTRACT FOUR FROM 0 m3 DIvIDE cs5 BY 0 IR8.QUOT|ENT a REMAINDER K so LOAD IRI FROM STORED IR4. INcREAsE AND (WCD +4) NDR BY ONE F N 0 USE MASK2 TO ExTRAcT No. OF SIGNIFICANT BITs LOAD R FROM DIBRYITIIEN OUBRYY) SUBTRACT (A COMPACT INTEGER Ims FROM 00mm IN 9(BRY) IN RIGHT III/III IHG I RUMIHI IR3 BITS OF IR2 FIG. 6B

PATENTEIIIPII I I I972 SHEET 090F130 M PAEFIN'G P T q T I gEEII/IENT? IF I MOVE REGISTERS BEING PACKED LOAD BRY,IR5 AND IRO a IRI INTO DOUBLE BRYY FROM CSIS, LEFT IRS BITS REG|STER5 C53 AND 1R6 I \L i-L J I I Wa N5 3'5"? ADD LOGICAL SUBTRACT BRY BYTES m I IIIEREIS E BRY FROMIRS ADD COMPRESSED I cs4 T0 BRY I BY FOUR.SUBTRACT 'N I ONE FROM |R8 SHIFT REGISTERS IRQ 8 IRI LEFT LOGICAL(WCD+4) BITS INSERT RT. FIVE I WEIEI=I )F BITS F cs8 INTO SEGMENTS IN THE THE LEFT FIVE \DOUBLE WORD LOAD BRY FROM BRYY MOVE DOUBLE WORD IN MASK4 INTO 6(IR6) INCREASE IRS BY EIGHT YES STORE IRS-IRI IN MASK4 AND 'ee' IN CORDI LOAD me a lRl WITH ZERO STORE 56 IN CS5 TRANSFER MASK4 TO IRS. INCREASE IRS BY EIGHT MOVE THE IR5 BYTES OF UNCOMPRESSED INFO. FROM 6(BRY) TO 9(BRYY) LOAD IR9,IR| AND BRYY FROM csI, (:32 a CS|5.STORE IR6 IN cs4 a J l INSERT NDR AND JI IN SOSHRI) LOAD IRB FROM WCD BRANCH TO BRADD EID \ CONSTRUCTED I I I I I I I I I I I I T 2775 TT PAIENIEIIAPRIIIHIZ SET ALL INDICATORS AND REGISTERS CONSTRUCT IN MASK2 THE MASK FOR EXTRACTING NS AND NOS LOAD IRE 8 IR3 WITH DOUBLE WORD FROM GIBRYY) INCREASE BRYY BY EIGHT DECREASE IR7 BY EIGHT EXTRACT NS FROM IR2 WITH MASK2 INTO IRS 8: NS (RT ADJUSTED) COMPUTE THE NUMBER OFBITS/ SEGMENT FROM IRQ 8 C55 IN IR4 CONSTRUCT MASK FOR EXTRACTING SEGMENTS IN SHIFT DOUBLE REGISTER IR2-IR3 LEFT LOGICAL 8. LOAD IR5 FROM CS5 MASKI I I EXTRACT NOS FROM IRE WITH MASK2 INTO LSX SHIFT IR2 IR3 LEFT LOGICAL 8 INCREASE IRI BY FOUR EXTRACT SEGMENT FROM m2 INTO IR5 SHEET ET JT M I BRY a BRYY I I CONTAIN ADDRESS OF I DOUBLE WORD I Nos: NO OF CONDENSED ESTSW LEFT-MOST I FIVE BITS OF I ERWKINE IETI FOR THE FIRST DOUBLE WORD I L9 F A R RAY YL I 555 13 THE I NUMBER OF I CONDENSED STRINGS IN IL E E LJ EXPAND SEGMENT IN IR5 TO FULL WORD AND STORE IN LSX (IRI) LOAD IR5 WITH NS AND SUBTRACT ONE STORE IR5 IN NS SHIFT IRZ-IR3 LEFT LOGICAL IR4 BITS SUBTRACT ONE FROM IRS STORE IRB IN CS7 LOAD IRG AND IRI WITH NS AND ZERO EXTRACT SEGMENT FROM IR2 INTO IR5 FIG. 7A

DECREASE IRS BY ONE.STORE IRG IN CS7 PATENTEDIIIR II I972 EXPAND SEGMENT IN IR5 AND STORE IN DUNIIIRI).

ADD FOUR TO IRI SHEET SAVE BRYY 8| BRY IN CS9 8s CSIOI LOAD IRS FROM BRYY 8 SUBTRACT BRY GEENTTIBE -I OF TRANSFER I OF INFORMATION I IN ARRAY DUNI T O ARRAY YY ADD IR7 a C53 TO BRYY. SUBTRACT EJE E E S ONE FROM BRYY LQE l 'i I Dm N TAT I S SUBTRACT IRs AND THE ASDRESS I ADD IRI T0 BRYY OF THE BYTE IaIZBRNYCSS ON RT HAND I I ll I I EE ALL Q E I R-2.IS T R E I ADD cs3 TO R7 IN R2 NUMBER OF BYTESI RM vc e, IR2,BRY, 9,8RYY

IROTTE OF F2 7 BYTES CREATED I IE E E E J RELOAD BRYY, BRY AND |R2 FROM CS9, CSIO 8 OS I I TRANSFER IRI BYTES F ROM DUNI TO HOLE (6(BRY)) ADD IRI TO BRY THEN STORE IN BRYY LOAD IRI WITH ZERO SHIFT IR2-IR3 LEFT LOGICAL ONE SEGMENT(IR4I DECREASE IRS BY ONE LOAD IRS AND IRS FROM CS4 AND LSX. LOAD IRI 8I |R2 WITH ZERO EEOINNINI; i

OF THE EXPANSION OF I CONDENSED PAIENTEIIM'R 1 1 m2 SHEET [JIR PARM l sosu I CHECK I I sos (2) CHECK (2) BWX (2) I mm) BYTES =4 LSUBSTRINEI Lsu BSTRING Q & SUBSTRINGTVI FIG. 6

SOS

LSX

FORMATTYPE COPAK COMPRESSOR OPTION E AND/OR F E AND/OR F USE SANPAKC ONLY USE SANPAKC ONLY USE SNUPAKII) THEN SANPAKC USE SNUPAKIZ) THEN SANPAKC USE SNUPAKI3I THEN SANPAKC DON'T USE SNUPAK OR SANPAKC WRITE THE RESI- DENT MB IN CURR E NT LOCATION FIG. .9

REWRITE THE RE- SIDENT MB IN LOCATION CURRENT READ MB IN LOCATION ADDRESS BIT 02 OFF BIT OI OFF LOAD CURRENT UPDATE EMPTY BIT 80-OFF BIT OZ-ON SET CURRENT mm FIG. 11

PATENTEDAPR 1 1 1912 SHEET 1; 0F 30 EXECUTIVE POINTERS LINK ADDRESS (BADDL BYTES) FIG. 12

moqmohm FIG. 13

BD(|) LD( I) RFILE MAIN FILE JMM) SIIEET 15UF 3O IMACH|NE-INDEPENDENT INSTRUCTION SET I LAST CODING LEVEL CONTAINING ASSEMBLY LANGUAGE L 1 1 4 A 4 1 A A A [CODING LEVEL 7 I E 1 1 1 1 1 1 1E LCODING LEVEL 6 1 I I I I I EODING LEVEL 5 LCODING LEVEL 4 MACROPAK CODING LEVEL 3 SERVICE MACROS [RESERVE I I ASSEMBLY LANGUAGE FIG. 14

CONTROL ROUTINE T T T SRI SR2 SR3 SRZA SR3A SRBB 1 n In FIG. 15

PATENTEDAPR 1 1 m2 EHEET 15 0F 3-0 INITIALIZE (SSTATECL) MSIGNAL=OO(80) NORMAL ENTRY 604 F 606 FOR SSEARCH INITIALJZE START SEARCH BITS 3c OFF N SCREEN 0 YES INDEX SCREEN AUXFILE SEARCH SEARCH 650 SEARCH (20) (20) (0| 20) ONE TM 20 7 g? UNSUCESSFUL \sla zERo SEARCH (04) 682/ SUCCESSFUL 622 620 SEARCH E .E.\L M .E E- CREATE TsMEMoRY (so) I 4o -ON M912? 2. E $9599 ZER INCREMENT JOB-LIST ITEM DISCRIPTOR A 626 POINTER l8) FIG. 16'

PATENTEDAPR 11 m2 3,656,178

SHEET 18 0F 30 686 720 COMPUTE EP 7 LENGTH IN m4, AND TOTAL SET LENGTH OF ALL me |R6+ BRY EPS IN ARRAY COMPUTE IN RI LOAD R0 TO R|5 FROM ARRAY DUMX +8 IS RI DIVISIBLE 9 SET LOAD RO TO 6 MSIGNAL X 20' Rl5 FROM THE BIT ON- ARRAY DUMX+8 |R6=|R3 70o v 692 Q INSERT TESTS FOR OVERIDE CODESJF ANY ARE PRESENT BRANCH TO THE LOCATION MMATCH IN SSEARCH SET RI=A(8ADDI) 8ADDL,8|LFAST,

I BLTHAYY SUPERSCH D aAooL, aLFAsT CSCREEN 706 FIG. 18A

PATENTEUAPR 1 1 I972 TIC MMATCH N SHEET SSEARCH lSOF 30 STORE R0 TO R6 IN ARRAY Cl SET IR|=LEXICON +8 SET LMOVE MASKI,O(IR6), C(IRI) l 874 20 SET 5 IRI=LEXICON+4 SET R1: RIRO-, STORE R0 TO R6 IN ARRAY c|-, IR3=|R3RO LMOVE DUNI,O(IR2), OHRI) SET ONE C(LEXICON)=X'OO' LOAD R0 TO R6 FROM ARRAY c| LEXICON x'o|' SETIMSIGNAL x o BIT ON 2 8'8) ZERO SET IRIIAYY+8LTHAYY TO --H(DUN|)', TBADDNE LEXICON+4=IR|- IN LEx|coN+8=|R|-Ro;

SSEARCH Y FIG. 183

Y FIG. 20A

Claims (25)

1. Method of utilizing a digital computer system including memory and control sections comprising the steps of: a. storing in the memory a string comprising a set of multibit information units; b. identifying and storing in the memory a LEXICON table comprising Type 1 codes defined as units which are of the same format as the stored string units and which do not occur in the stored string; c. searching the stored string for the presence of a plurality of patterns of contiguous string units which patterns are repeated in the string, and identifying such repeated patterns; d. replacing each of the patterns of a plurality of repeated patterns identified in the preceding step by a unique Type 1 code from the LEXICON table; e. storing in the memory decompression information associated with the string and defining the replacement carried out in the preceding step; and f. storing in the memory a PCORD table containing one pattern from each plurality of identical patterns which have been replaced by a Type 1 code.
2. Method as in claim 1 including computing and storing in the memory a savings ratio indicative of the saving in the length of the stored string achieved through replacing by a Type 1 code string pattern identical to patterns stored in the PCORD table to thereby associate a savings ratio with each pattern stored in the PCORD table.
3. Method as in claim 2 including: defining a maximum value for the number of patterns that can be stored in the PCORD table; testing before storing a pattern in the PCORD table if the PCORD table is full; if the PCORD table is full, testing if the savings ratio of the pattern to be stored in the PCORD table is more favorable than the least favorable savings ratio of the patterns already in the PCORD table; and, if the answer is yes, removing the pattern with the least favorable savings ratio from the PCORD table and storing therein the pattern with the more favorable savings ratio.
4. Method of utilizing a digital computer having memory and control sections to decompress a string compressed by the method of claim 1 comprising: a. storing the compressed string an the decompression information in the memory; b. identifying from the decompression information a Type 2 code and the pattern replaced by it; c. locating in the compressed string Type 2 codes identical to the Type 2 code identified in the preceding step; and d. replacing each Type 2 code located in the preceding step by the pattern identified in the identifying step.
5. Method of utilizing a digital computer system including memory and control Sections comprising the steps of: a. storing in the memory a string comprising a set of multibit information units; b. identifying and storing in the memory a LEXICON table comprising Type 1 codes defined as units which are of the same format as the stored string units and which do not occur in the stored string; c. storing in a PCORD table in the memory a list of PCORD patterns each composed of a plurality of units of the same format as the units of the stored string; d. searching the stored string for a plurality of patterns each composed of contiguous units and each identical to a PCORD pattern; e. identifying such patterns for replacement by Type 1 codes; f. replacing each of the patterns of a plurality of repeated patterns identified in the preceding step by a unique Type 1 code from the LEXICON table; and g. storing in the memory decompression information associated with the string and defining the replacement carried out in the preceding step.
6. Method as in claim 5 including defining prior to the searching step if the stored string is to be subjected to slow mode compression or to a fast mode compression, and - if slow mode compression is defined - searching in the searching step for a plurality of patterns each composed of contiguous units and identifying such patterns for replacement by Type 1 codes without reference to the PCORD patterns stored in the PCORD table, but - if fast mode compression is defined - searching in the searching step only for repeating patterns identical to PCORD patterns from the PCORD table.
7. Method of utilizing a digital computer system including memory and control sections comprising the steps of storing in the memory a string comprising a set of multibit information units; identifying and storing in the memory a LEXICON table comprising Type 1 codes defined as units which are of the same format as the stored string units and which do not occur in the stored string; searching the stored string for the presence of a plurality of patterns of contiguous string units which patterns are repeated in the string, and identifying such repeated patterns; replacing each of the patterns of a plurality of repeated patterns identified in the preceding step by a unique Type 1 code from the LEXICON table; storing in the memory decompression information associated with the string and defining the replacement carried out in the preceding step; including in said identifying and storing step the substep of identifying and storing in the LEXICON table Type 2 codes defined as units which are of the same format as the stored string units and which occur in the stored string at least a preselected number of times, and including the additional steps of: searching the stored string for string units identical to Type 2 codes stored in the LEXICON portion of the memory in the preceding step; constructing and storing in the memory a bit map identifying the locations in the stored string of units identical to a Type 2 code and occurring at least a preselected number of times in the string; removing from the string the units identified in the preceding step; and storing in the memory decompression information associated with the string and comprising the bit map and one of the removed string units.
8. Method of utilizing a digital computer system including memory and control sections comprising the steps of: a. storing in the memory a string comprising a set of multibit information units; b. identifying and storing in the memory a LEXICON table comprising Type 1 codes defined as units which are of the same format as the stored string; units and which do not occur in the stored string; c. searching the stored string for the presence of a plurality of patterns of contiguous string units which patterns are repeated in the string, and identifying such repeated patterns; d. replaCing each of the patterns of a plurality of repeated patterns identified in the preceding step by a unique Type 1 code from the LEXICON table; and e. storing in the memory decompression information associated with the string and defining the replacement carried out in the preceding step; f. storing in the memory a PCORD table containing preselected Type 2 codes each of the same format as the units of the stored string; g. searching the stored string for units which are identical to a Type 2 code and which occur in the string at least a preselected number of times; h. removing from the string units identified in the preceding step; i. constructing a bit map identifying the locations of the removed units; and j. storing in the memory decompression information associated with the string and comprising the bit map and one of the removed string units.
9. Method as in claim 8 including: defining prior to the step of searching the stored string for units identical to Type 2 codes if the stored string is to be subjected to fast mode compression or to slow mode compression; if slow mode compression is defined identifying and storing in said identifying and storing step in the LEXICON table Type 2 codes defined as identical in format with the units of the stored string and occurring in the string at least a preselected number of times, searching the stored string for string units identical to a Type 2 code from the LEXICON table of the memory and occurring at least a preselected number of times in the stored string, and then proceeding to the bit map constructing step without recourse to the table of Type 2 codes; but if fast mode compression is defined, then searching the stored string for units identical to Type 2 codes from the PCORD table of Type 2 codes without recourse to the LEXICON portion of the memory.
10. Method of utilizing a digital computer having memory and control sections to decompress a string compressed by the method of claim 8 comprising the steps of: a. storing the compressed string and the decompression information associated with the string in the memory; b. identifying from the decompression information a Type 1 code and the pattern replaced by it; c. locating in the compressed string Type 1 codes identical to the Type 1 code identified in the preceding step; d. replacing each Type 1 code located in the preceding step by the pattern identified in step b; e. identifying from the decompression information a bit map and one of the string units removed in conjunction with constructing the bit map; and f. storing the removed string unit in the places in the string identified by the bit map and expanding the string accordingly.
11. Method of utilizing a digital computer system including memory and control sections comprising the steps of: a. storing in the memory a string comprising a set of multibit information units; b. storing in a PCORD table in the memory at least one PCORD pattern composed of a plurality of units which are of the same format as the units of the stored string; c. searching the stored string for the presence of a plurality of patterns each composed of contiguous string units and each identical to a PCORD pattern, and identifying such string patterns if any are found; and d. replacing each of the string patterns identified in the preceding step by a Type 1 code defined as a unit which is of the same format as the string units but which does not occur in the stored string.
12. Method of utilizing a digital computer having memory and control sections to decompress a string compressed by the method of claim 11 comprising the steps of: a. identifying a Type 1 code which has replaced a pattern and the pattern replaced by the code; b. replacing each Type 1 code identical to the identified code and occurring in the striNg by the pattern identified in the preceding step; and c. expanding the string by a number of units equal to the difference between the number of units in the replaced patterns and the number of Type 1 codes which have been replaced by patterns.
13. Method of utilizing a digital computer system including memory and control sections comprising the steps of: a. storing in the memory a string comprising a set of multibit information units; b. identifying and storing in a LEXICON table in the memory Type 2 codes defined as units which are of the same format as the stored string units and which occur in the stored string at least a preselected number of times; c. searching the stored string for units identical to a Type 2 code and identifying the locations in the string of such identical units; d. constructing and storing in the memory a bit map identifying the locations in the stored string of units identified in the preceding step; e. removing from the string the identified units; and f. storing in the memory decompression information associated with the string and comprising the bit map and one of the removed string units.
14. Method of utilizing a digital computer having memory and control sections to decompress a string compressed by the method of claim 13 comprising the steps of: a. storing the compressed string and the decompression information in the memory; b. identifying from the decompression information a bit map and a string unit removed in conjunction with constructing the bit map; and c. inserting the string unit identified in the preceding step in the locations in the string identified by the bit map and expanding the string accordingly.
15. Method of utilizing a computer system including memory and control sections comprising the steps of: a. storing in the memory a string composed of a number of multibit information units; b. storing in a PCORD table in the memory Type 2 codes defined as units which are of the same format as the stored string units; c. searching the stored string for units which are identical to a Type 2 code from the PCORD table and which occur at least a pre-selected number of times, and identifying such units if any are found; d. constructing a bit map identifying the locations in the stored string of units identified in the preceding step; and e. removing from the string the identified units and storing in the memory together with the string the bit map and one of the removed string units.
16. Method of utilizing a digital computer having byte-oriented memory and control sections to compress information supplied in the form of a string comprising a set of bytes of information bits, comprising the steps of: a. using the value of each byte of the string to address a 256byte table in which each byte address corresponds to a unique one of the 256 possible bit configurations of a byte and each byte address contains a count of the number of times the byte address has been addressed; b. storing an indication of the address of each byte address of the 256 byte table that has not been addressed in the course of step (a) in a LEXICON table to compile thereby a set of Type 1 codes which are bytes that do not occur in the string; c. detecting the occurrence in the string of a group of non-overlapping patterns, if any, of R contiguous bytes (R is an integer greater than 1) which patterns are identical with each other; d. replacing each of the patterns detected in the course of step c. with an identical Type 1 code selected from available Type 1 codes in the LEXICON table and compressing the string to eliminate the space vacated because of the difference in length between each such replaced pattern of R bytes and the one byte Type 1 code replacing it; e. associating with the string decompression information comprising the Type 1 code used in the course of step d and one of the replaced patterns of R bytes; f. changing the value of R and repeating steps c through e for as long as both i the combined length of the Type 1 codes used as pattern replacements and the decompression information is less than the combined length of the replaced patterns and ii. previously unused Type 1 codes are available in the LEXICON table; and g. storing a pattern from each group of patterns of R bytes which has been deleted from the string in a PCORD table.
17. Method as in claim 16 including storing a pattern from each group of patterns of R bytes which has been deleted from the string in a PCORD TABLE; associating with each pattern in the PCORD table a savings ratio indicative of the degree of compression of the string resulting from the deletion of said pattern from the string.
18. Method as in claim 17 including: limiting the capacity of the PCORD table; checking whether the PCORD table is full when an attempt is made to include therein a new pattern; and, in case the PCORD table is full, storing the new pattern in the PCORD table and deleting from the PCORD table the pattern having the lowest associated savings ratio, but only if said lowest savings ratio is lower than the savings ratio of the new pattern.
19. Method of utilizing a digital computer having memory and control sections to decompress a string compressed by the method of claim 16 comprising the steps of: a. storing the compressed string and the decompression information in the memory; b. identifying from the decompression information a Type 1 code and the pattern of R bytes replaced by it; c. locating in the compressed string Type 1 codes identical to the Type 1 code identified in the preceding step; d. replacing each Type 1 code located in the preceding step by the pattern of R contiguous bytes identified in step b; and e. expanding the string by a number of bytes equal to the difference between the number of bytes of the patterns replacing the Type 1 codes and the number of replaced Type 1 codes.
20. Method of utilizing a digital computer having memory and control sections to compress numeric information supplied in the form of a first string comprising a set of words A, B, C, D, E. . . . , each word containing a number, comprising the steps of: a. recursively differencing by i. adding the absolute value of the contents of the words of the first string to obtain a first sum; ii. generating from the first string a second string having the same number of words, each word except the first having a value equal to the difference between the correspondingly located word of the first string and the next preceding word of the first string, whereby the second string comprises words A, A-B, B-C, C-D, D-E, . . . , and adding the absolute values of the words of the second string to obtain a second sum; iii. comparing the magnitudes of the first and the second sums and, continuing to step (b) if the first sum is less than the second sum, but continuing to substep (iv) if the magnitude of the first sum is greater than or equal to the magnitude of the second sum; iv. generating from the second string generated in substep (ii) a third string in the same manner as in substep (ii), whereby the third string comprises words A, A-(A-B), (A-B)-(B-C), (B-C)-(C-D), (C-D)-(D-E), ... , and repeating substeps i and ii by considering each newly generated string as a second string and considering the previously generated string as a first string; b. detecting sequences of identical words; c. determining if the replacement of such sequences by defined decompression information would result in saving in string length and proceeding to step (d) if saving is indicated but proceeding to step (e) if no saving is indicated; d. deleting each detected sequence of identical wordS and associating with the string decompression information comprising the value of the deleted word, the number of deleted words and the address in the string prior to deletion at which the deleted sequence started, and compressing the string to take up the space vacated by the deleted words; and e. packing the words of the string into double words, each double word having a set of bits designating the total number of and a set of bits storing values of words packed in the double word, each word occupying a fixed number of bit positions, said fixed number determined by the number of significant bits of the highest value word packed in the double word.
21. Method as in claim 20 including converting floating point numbers contained in the words A, B, C, D, E, . . . , into integer numbers by a logical right shift truncation process.
22. Method as in claim 21 including: placing each integer number in the string into a four byte word; searching the string to find a minimum and maximum value of the words; storing said maximum and minimum values; determining the median value by dividing the sum of the minimum and maximum values by 2; recording said median value; subtracting the recorded median value from each word in the string; associating with the string decompression information defining the above steps; and storing the decompression information.
23. Method as in claim 21 including: providing a value LSX indicating the degree of accuracy at which the information stored in the string is to be maintained; dividing LSX by 2 and storing the result; finding the minimum value of the words in the string; subtracting from each word of the string the minimum value and dividing the difference by the value LSX over 2; and rounding by removing all digits to the right of the decimal point in the words leaving only the digits to the left of the decimal point.
24. Method as in claim 21 including: locating in the string composed of integer numbers each contained in a word any patterns of words which patterns are composed of a plurality of contiguous words identical to each other; replacing each such pattern by two new words one of which is a count of the number of the words repeated in the pattern and the other one of which is a copy of the word which is repeated in the pattern, and associating with the string a third new word indicating the location in the string of the pattern which is replaced by said two new words.
25. Method of utilizing a digital computer having memory and control sections to decompress strings compressed by the method of claim 20 comprising the steps of: a. storing in the memory the packed string and its decompression information; b. unpacking the packed string double words by reference to the set of bits designating the total number of words packed in the double words and to the set of bits storing the values of words to generate unpacked words; c. if sequences of words were deleted in the course of compressing the string, utilizing the decompression information to replace in the string the deleted words; and d. if second or subsequent string were generated during compression, carrying out the reverse of the second and subsequent string generating step to regenerate the original string of words A, B, C, D, E, . . . .
US3656178D 1969-09-15 1969-09-15 Data compression and decompression system Expired - Lifetime US3656178A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US85770769A true 1969-09-15 1969-09-15

Publications (1)

Publication Number Publication Date
US3656178A true US3656178A (en) 1972-04-11

Family

ID=25326570

Family Applications (1)

Application Number Title Priority Date Filing Date
US3656178D Expired - Lifetime US3656178A (en) 1969-09-15 1969-09-15 Data compression and decompression system

Country Status (1)

Country Link
US (1) US3656178A (en)

Cited By (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3772654A (en) * 1971-12-30 1973-11-13 Ibm Method and apparatus for data form modification
US4021782A (en) * 1974-01-07 1977-05-03 Hoerning John S Data compaction system and apparatus
US4056809A (en) * 1975-04-30 1977-11-01 Data Flo Corporation Fast table lookup apparatus for reading memory
US5363098A (en) * 1993-10-25 1994-11-08 Digital Equipment Corporation Byte aligned data compression
US5414425A (en) * 1989-01-13 1995-05-09 Stac Data compression apparatus and method
US5542068A (en) * 1991-12-10 1996-07-30 Microsoft Corporation Method and system for storing floating point numbers to reduce storage space
US5546575A (en) * 1994-05-23 1996-08-13 Basil E. Potter & Associates, Inc. Encoding method for compressing a tabular database by selecting effective compression routines for each field and structure of partitions of equal sized records
US5673209A (en) * 1995-03-29 1997-09-30 International Business Machines Corporation Apparatus and associated method for compressing and decompressing digital data
US5710719A (en) * 1995-10-19 1998-01-20 America Online, Inc. Apparatus and method for 2-dimensional data compression
US5940833A (en) * 1996-07-12 1999-08-17 Microsoft Corporation Compressing sets of integers
US6006232A (en) * 1997-10-21 1999-12-21 At&T Corp. System and method for multirecord compression in a relational database
US6145068A (en) * 1997-09-16 2000-11-07 Phoenix Technologies Ltd. Data transfer to a non-volatile storage medium
US20030016820A1 (en) * 2001-06-22 2003-01-23 Volpert Thomas R. System and method for data encryption
US6512515B1 (en) 1999-09-18 2003-01-28 Wildtangent Data compression through motion and geometric relation estimation functions
US6577769B1 (en) 1999-09-18 2003-06-10 Wildtangent, Inc. Data compression through adaptive data size reduction
US20050025232A1 (en) * 2003-07-28 2005-02-03 International Business Machines Corporation Apparatus, system and method for data compression using irredundant patterns
US20050151836A1 (en) * 2004-01-09 2005-07-14 Ni Hong T. Video conferencing system
US20050160401A1 (en) * 1999-10-16 2005-07-21 Computer Associates Think, Inc. System and method for adding user-defined objects to a modeling tool
US20060225030A1 (en) * 1999-10-16 2006-10-05 Deffler Tad A Method and System for Generating Dynamic Comparison Models
US20080209149A1 (en) * 2003-07-01 2008-08-28 Universitat Stuttgart Processor Architecture for Exact Pointer Identification
US20090055315A1 (en) * 1996-06-05 2009-02-26 Fraud Control System.Com Method Of Billing A Purchase Made Over A Computer Network
WO2010021698A2 (en) * 2008-08-19 2010-02-25 Netapp, Inc. System and method for compression of partially ordered data sets
US7711685B1 (en) * 1998-10-16 2010-05-04 Computer Associates Think, Inc. Method and system for an extensible macro language
US20120056763A1 (en) * 2010-09-08 2012-03-08 Giovanni Motta Systems and methods for data compression
US8190513B2 (en) 1996-06-05 2012-05-29 Fraud Control Systems.Com Corporation Method of billing a purchase made over a computer network
US20130159264A1 (en) * 2008-08-25 2013-06-20 Taizo Shirai Data conversion device, data conversion method, and program
US8630942B2 (en) 1996-06-05 2014-01-14 Fraud Control Systems.Com Corporation Method of billing a purchase made over a computer network
US20140164376A1 (en) * 2012-12-06 2014-06-12 Microsoft Corporation Hierarchical string clustering on diagnostic logs

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3237170A (en) * 1962-07-17 1966-02-22 Ibm Adaptive data compactor
US3273130A (en) * 1963-12-04 1966-09-13 Ibm Applied sequence identification device
US3289169A (en) * 1962-09-27 1966-11-29 Beckman Instruments Inc Redundancy reduction memory
US3310786A (en) * 1964-06-30 1967-03-21 Ibm Data compression/expansion and compressed data processing
US3413611A (en) * 1966-01-17 1968-11-26 Pfuetze David Method and apparatus for the compaction of data
US3422403A (en) * 1966-12-07 1969-01-14 Webb James E Data compression system
US3490690A (en) * 1964-10-26 1970-01-20 Ibm Data reduction system
US3535696A (en) * 1967-11-09 1970-10-20 Webb James E Data compression system with a minimum time delay unit

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3237170A (en) * 1962-07-17 1966-02-22 Ibm Adaptive data compactor
US3289169A (en) * 1962-09-27 1966-11-29 Beckman Instruments Inc Redundancy reduction memory
US3273130A (en) * 1963-12-04 1966-09-13 Ibm Applied sequence identification device
US3310786A (en) * 1964-06-30 1967-03-21 Ibm Data compression/expansion and compressed data processing
US3490690A (en) * 1964-10-26 1970-01-20 Ibm Data reduction system
US3413611A (en) * 1966-01-17 1968-11-26 Pfuetze David Method and apparatus for the compaction of data
US3422403A (en) * 1966-12-07 1969-01-14 Webb James E Data compression system
US3535696A (en) * 1967-11-09 1970-10-20 Webb James E Data compression system with a minimum time delay unit

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
P.A.D. de Maine, B. A. Marron, and K. Kloss, The Solid System II; Numeric Compression The Solid System III; Alphanumeric Compression Nat. Bureau of Standards Technical Note 413, Aug. 15, 1967 *
R.W. Bemer, Data Compression System, IBM Tech. Disc. Bull. Vol. 3, No. 8, Jan. 1961 *

Cited By (41)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3772654A (en) * 1971-12-30 1973-11-13 Ibm Method and apparatus for data form modification
US4021782A (en) * 1974-01-07 1977-05-03 Hoerning John S Data compaction system and apparatus
US4056809A (en) * 1975-04-30 1977-11-01 Data Flo Corporation Fast table lookup apparatus for reading memory
US5463390A (en) * 1989-01-13 1995-10-31 Stac Electronics, Inc. Data compression apparatus and method
US5414425A (en) * 1989-01-13 1995-05-09 Stac Data compression apparatus and method
US5506580A (en) * 1989-01-13 1996-04-09 Stac Electronics, Inc. Data compression apparatus and method
US5542068A (en) * 1991-12-10 1996-07-30 Microsoft Corporation Method and system for storing floating point numbers to reduce storage space
US5363098A (en) * 1993-10-25 1994-11-08 Digital Equipment Corporation Byte aligned data compression
US5546575A (en) * 1994-05-23 1996-08-13 Basil E. Potter & Associates, Inc. Encoding method for compressing a tabular database by selecting effective compression routines for each field and structure of partitions of equal sized records
US5673209A (en) * 1995-03-29 1997-09-30 International Business Machines Corporation Apparatus and associated method for compressing and decompressing digital data
US5710719A (en) * 1995-10-19 1998-01-20 America Online, Inc. Apparatus and method for 2-dimensional data compression
US8229844B2 (en) 1996-06-05 2012-07-24 Fraud Control Systems.Com Corporation Method of billing a purchase made over a computer network
US8190513B2 (en) 1996-06-05 2012-05-29 Fraud Control Systems.Com Corporation Method of billing a purchase made over a computer network
US8630942B2 (en) 1996-06-05 2014-01-14 Fraud Control Systems.Com Corporation Method of billing a purchase made over a computer network
US20090055315A1 (en) * 1996-06-05 2009-02-26 Fraud Control System.Com Method Of Billing A Purchase Made Over A Computer Network
US5940833A (en) * 1996-07-12 1999-08-17 Microsoft Corporation Compressing sets of integers
US6145068A (en) * 1997-09-16 2000-11-07 Phoenix Technologies Ltd. Data transfer to a non-volatile storage medium
US6006232A (en) * 1997-10-21 1999-12-21 At&T Corp. System and method for multirecord compression in a relational database
US7711685B1 (en) * 1998-10-16 2010-05-04 Computer Associates Think, Inc. Method and system for an extensible macro language
US6577769B1 (en) 1999-09-18 2003-06-10 Wildtangent, Inc. Data compression through adaptive data size reduction
US6697530B2 (en) 1999-09-18 2004-02-24 Wildtangent, Inc. Data compression through adaptive data size reduction
US6512515B1 (en) 1999-09-18 2003-01-28 Wildtangent Data compression through motion and geometric relation estimation functions
US7734457B2 (en) 1999-10-16 2010-06-08 Computer Associates Think, Inc. Method and system for generating dynamic comparison models
US20050160401A1 (en) * 1999-10-16 2005-07-21 Computer Associates Think, Inc. System and method for adding user-defined objects to a modeling tool
US20060225030A1 (en) * 1999-10-16 2006-10-05 Deffler Tad A Method and System for Generating Dynamic Comparison Models
US7382878B2 (en) * 2001-06-22 2008-06-03 Uponus Technologies, Llc System and method for data encryption
US20030016820A1 (en) * 2001-06-22 2003-01-23 Volpert Thomas R. System and method for data encryption
US20080209149A1 (en) * 2003-07-01 2008-08-28 Universitat Stuttgart Processor Architecture for Exact Pointer Identification
US8473722B2 (en) * 2003-07-01 2013-06-25 Universitaet Stuttgart Processor architecture for exact pointer identification
US7479905B2 (en) * 2003-07-28 2009-01-20 International Business Machines Corporation Apparatus, system and method for data compression using irredundant patterns
US20050025232A1 (en) * 2003-07-28 2005-02-03 International Business Machines Corporation Apparatus, system and method for data compression using irredundant patterns
US20050151836A1 (en) * 2004-01-09 2005-07-14 Ni Hong T. Video conferencing system
US20100049726A1 (en) * 2008-08-19 2010-02-25 Netapp, Inc. System and method for compression of partially ordered data sets
WO2010021698A2 (en) * 2008-08-19 2010-02-25 Netapp, Inc. System and method for compression of partially ordered data sets
WO2010021698A3 (en) * 2008-08-19 2010-04-22 Netapp, Inc. System and method for compression of partially ordered data sets
US8250043B2 (en) 2008-08-19 2012-08-21 Netapp, Inc. System and method for compression of partially ordered data sets
US20130159264A1 (en) * 2008-08-25 2013-06-20 Taizo Shirai Data conversion device, data conversion method, and program
US8843457B2 (en) * 2008-08-25 2014-09-23 Sony Corporation Data conversion device, data conversion method, and program
US8228216B2 (en) * 2010-09-08 2012-07-24 Hewlett-Packard Development Company, L.P. Systems and methods for data compression
US20120056763A1 (en) * 2010-09-08 2012-03-08 Giovanni Motta Systems and methods for data compression
US20140164376A1 (en) * 2012-12-06 2014-06-12 Microsoft Corporation Hierarchical string clustering on diagnostic logs

Similar Documents

Publication Publication Date Title
US9025892B1 (en) Data record compression with progressive and/or selective decomposition
US9461668B2 (en) Decomposition of decimal floating point data
Said Introduction to arithmetic coding-theory and practice
US8676858B2 (en) Grouping and differentiating volumes of files
JP3009727B2 (en) Improved data compression device
US5652581A (en) Distributed coding and prediction by use of contexts
US5497485A (en) Method and apparatus for implementing Q-trees
US8090027B2 (en) Data compression using an arbitrary-sized dictionary
AU626317B2 (en) Method and apparatus for encoding, decoding and transmitting data in compressed form
US9292256B2 (en) Shift significand of decimal floating point data
US6522268B2 (en) Systems and methods for multiple-file data compression
US5973630A (en) Data compression for use with a communications channel
US4342085A (en) Stem processing for data reduction in a dictionary storage file
CA1319437C (en) Intermediate spreadsheet structure
US7797360B2 (en) Sortable floating point numbers
US5140321A (en) Data compression/decompression method and apparatus
Fotheringham Dynamic storage allocation in the Atlas computer, including an automatic use of a backing store
JP6596102B2 (en) Lossless data loss by deriving data from basic data elements present in content-associative sheaves
US5999949A (en) Text file compression system utilizing word terminators
EP0083393B1 (en) Method of compressing information and an apparatus for compressing english text
US3871578A (en) Data processing system for multiplying and intergerizing floating point numbers
US4899149A (en) Method of and apparatus for decoding Huffman or variable-length coees
US7840774B2 (en) Compressibility checking avoidance
US7554464B1 (en) Method and system for processing data having a pattern of repeating bits
US8195727B2 (en) Convert significand of decimal floating point data from packed decimal format