CA2128127A1 - Method and system for data compression - Google Patents

Method and system for data compression

Info

Publication number
CA2128127A1
CA2128127A1 CA002128127A CA2128127A CA2128127A1 CA 2128127 A1 CA2128127 A1 CA 2128127A1 CA 002128127 A CA002128127 A CA 002128127A CA 2128127 A CA2128127 A CA 2128127A CA 2128127 A1 CA2128127 A1 CA 2128127A1
Authority
CA
Canada
Prior art keywords
encoded
bytes
sequence
matching
compression
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.)
Granted
Application number
CA002128127A
Other languages
French (fr)
Other versions
CA2128127C (en
Inventor
Thomas J. Dimitri
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.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft 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 Microsoft Corp filed Critical Microsoft Corp
Publication of CA2128127A1 publication Critical patent/CA2128127A1/en
Application granted granted Critical
Publication of CA2128127C publication Critical patent/CA2128127C/en
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H03ELECTRONIC 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/3084Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction using adaptive string matching, e.g. the Lempel-Ziv method
    • H03M7/3086Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction using adaptive string matching, e.g. the Lempel-Ziv method employing a sliding window, e.g. LZ77
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/005Statistical coding, e.g. Huffman, run length coding

Abstract

Disclosed is a method and system for data compression. In a preferred embodiment, an input stream of data bytes are compressed into an encoded stream using an LZ77-based scheme. The preferred method searches for a matching sequence of already processed data bytes that is identical to a current sequence of bytes. Sequences of literals (bytes not forming part of a matching sequence) or match codes (encoded matching sequences) are identified by count values indicating the number of literals or match codes in the sequence. Preferably, the encoded stream is transmitted from a first computer to a second computer, where the encoded stream is decompressed. The method uses matching circular history buffers for compression and decompression, the history buffers being synchronized using a coherency byte included with each frame of encoded data transmitted. If an encoded frame is not received by the decompression device, the decompression device transmits a flush request to the compression device. The compression device flushes its history buffer in response to the flush request, the flushing step making the previously processed bytes stored in the history buffer incapable of becoming part of a matching sequence. The compression device includes in the coherency code of the next encoded frame a control code indicating whether a flush request has been received by the compression device.
CA002128127A 1993-08-02 1994-07-15 Method and system for data compression Expired - Lifetime CA2128127C (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/100,668 US5521597A (en) 1993-08-02 1993-08-02 Data compression for network transport
US08/100,668 1993-08-02

Publications (2)

Publication Number Publication Date
CA2128127A1 true CA2128127A1 (en) 1995-02-03
CA2128127C CA2128127C (en) 2003-02-25

Family

ID=22280923

Family Applications (1)

Application Number Title Priority Date Filing Date
CA002128127A Expired - Lifetime CA2128127C (en) 1993-08-02 1994-07-15 Method and system for data compression

Country Status (5)

Country Link
US (1) US5521597A (en)
EP (1) EP0643491B1 (en)
JP (3) JP3571079B2 (en)
CA (1) CA2128127C (en)
DE (1) DE69429482T2 (en)

Families Citing this family (64)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE69524601T2 (en) * 1994-06-06 2002-08-08 Nokia Networks Oy METHOD FOR STORING DATA AND RECOVERING DATA AND A STORAGE ARRANGEMENT
EP0709766A1 (en) * 1994-10-29 1996-05-01 International Business Machines Corporation Method for the transmission of line-oriented data sets
US6081623A (en) * 1995-10-11 2000-06-27 Citrix Systems, Inc. Method for lossless bandwidth compression of a series of glyphs
US8117298B1 (en) 1996-02-26 2012-02-14 Graphon Corporation Multi-homed web server
JPH09269914A (en) * 1996-03-29 1997-10-14 Fujitsu Ltd Method for transferring local fine and its system in client server system
US5742773A (en) * 1996-04-18 1998-04-21 Microsoft Corporation Method and system for audio compression negotiation for multiple channels
US6157647A (en) * 1996-11-06 2000-12-05 3Com Corporation Direct addressing between VLAN subnets
US5838927A (en) * 1996-11-22 1998-11-17 Webtv Networks Method and apparatus for compressing a continuous, indistinct data stream
US5798718A (en) * 1997-05-12 1998-08-25 Lexmark International, Inc. Sliding window data compression method and apparatus
US5877711A (en) * 1997-09-19 1999-03-02 International Business Machines Corporation Method and apparatus for performing adaptive data compression
US5874908A (en) * 1997-09-19 1999-02-23 International Business Machines Corporation Method and apparatus for encoding Lempel-Ziv 1 variants
US6127953A (en) * 1998-03-23 2000-10-03 Siemens Information And Communication Networks, Inc. Apparatus and method for compressing data containing repetitive patterns
US6216175B1 (en) 1998-06-08 2001-04-10 Microsoft Corporation Method for upgrading copies of an original file with same update data after normalizing differences between copies created during respective original installations
US6304914B1 (en) * 1998-09-22 2001-10-16 Microsoft Corporation Method and apparatus for pre-compression packaging
US6466999B1 (en) 1999-03-31 2002-10-15 Microsoft Corporation Preprocessing a reference data stream for patch generation and compression
US6262675B1 (en) 1999-12-21 2001-07-17 International Business Machines Corporation Method of compressing data with an alphabet
GB0001707D0 (en) * 2000-01-25 2000-03-15 Btg Int Ltd Data compression having more effective compression
US7509420B2 (en) * 2000-02-18 2009-03-24 Emc Corporation System and method for intelligent, globally distributed network storage
US6704730B2 (en) * 2000-02-18 2004-03-09 Avamar Technologies, Inc. Hash file system and method for use in a commonality factoring system
US6388584B1 (en) 2000-03-16 2002-05-14 Lucent Technologies Inc. Method and apparatus for data compression of network packets
US6236341B1 (en) * 2000-03-16 2001-05-22 Lucent Technologies Inc. Method and apparatus for data compression of network packets employing per-packet hash tables
AU2001232988A1 (en) * 2000-03-24 2001-10-08 Dotrocket, Inc. A system and method for increasing data packet transfer rate in a computer network
US20020029285A1 (en) * 2000-05-26 2002-03-07 Henry Collins Adapting graphical data, processing activity to changing network conditions
US6856651B2 (en) 2000-07-25 2005-02-15 Peribit Networks, Inc. System and method for incremental and continuous data compression
ATE397346T1 (en) 2000-07-25 2008-06-15 Juniper Networks Inc NETWORK ARCHITECTURE AND METHOD FOR TRANSPARENT ONLINE CROSS- SECTIONAL CODING AND TRANSPORTING NETWORK COMMUNICATIONS DATA
EP1895665A3 (en) 2000-07-25 2008-08-20 Juniper Networks, Inc. System and method for incremental and continuous data compression
KR100515413B1 (en) * 2000-08-31 2005-09-15 매그나칩 반도체 유한회사 Bit stream processor
US6810398B2 (en) * 2000-11-06 2004-10-26 Avamar Technologies, Inc. System and method for unorchestrated determination of data sequences using sticky byte factoring to determine breakpoints in digital sequences
US6738779B1 (en) 2001-02-21 2004-05-18 Telecom Italia S.P.A. Apparatus for and method of multiple parallel string searching
JP3990115B2 (en) * 2001-03-12 2007-10-10 株式会社東芝 Server-side proxy device and program
US6707400B2 (en) * 2001-08-02 2004-03-16 Telefonaktiebolaget Lm Ericsson (Publ) Method and apparatus for fast longest match search
US7962622B2 (en) * 2001-08-07 2011-06-14 Motorola Mobility, Inc. System and method for providing provisioning and upgrade services for a wireless device
US7155483B1 (en) * 2001-08-07 2006-12-26 Good Technology, Inc. Apparatus and method for conserving bandwidth by batch processing data transactions
US7743119B2 (en) 2001-08-07 2010-06-22 Motorola, Inc. System and method for mapping identification codes
US7243163B1 (en) 2001-08-07 2007-07-10 Good Technology, Inc. System and method for full wireless synchronization of a data processing apparatus with a messaging system
US8671213B2 (en) 2002-03-14 2014-03-11 Citrix Systems, Inc. Methods and apparatus for generating graphical and media displays at a client
US7376695B2 (en) * 2002-03-14 2008-05-20 Citrix Systems, Inc. Method and system for generating a graphical display for a remote terminal session
US7447799B2 (en) * 2002-04-24 2008-11-04 Good Technology, Inc. System and method for automatically updating a wireless device
US9813514B2 (en) 2002-06-12 2017-11-07 Good Technology Holdings Limited Information repository system including a wireless device and related method
US8516034B1 (en) 2002-07-08 2013-08-20 Good Technology Software, Inc System and method for modifying application behavior based on network bandwidth
US7908399B2 (en) * 2003-05-30 2011-03-15 Cisco Technology, Inc. Compression of repeated patterns in full bandwidth channels over a packet network
CA2596307A1 (en) 2005-02-04 2006-08-10 Cellfire, Inc. Delivering targeted advertising to mobile devices
US8423673B2 (en) * 2005-03-14 2013-04-16 Citrix Systems, Inc. Method and apparatus for updating a graphical display in a distributed processing environment using compression
US8171169B2 (en) * 2005-03-14 2012-05-01 Citrix Systems, Inc. Method and apparatus for updating a graphical display in a distributed processing environment
US7620392B1 (en) 2006-02-27 2009-11-17 Good Technology, Inc. Method and system for distributing and updating software in wireless devices
WO2007131190A2 (en) 2006-05-05 2007-11-15 Hybir Inc. Group based complete and incremental computer file backup system, process and apparatus
US7619545B2 (en) * 2007-03-12 2009-11-17 Citrix Systems, Inc. Systems and methods of using application and protocol specific parsing for compression
US7532134B2 (en) 2007-03-12 2009-05-12 Citrix Systems, Inc. Systems and methods for sharing compression histories between multiple devices
US7460038B2 (en) * 2007-03-12 2008-12-02 Citrix Systems, Inc. Systems and methods of clustered sharing of compression histories
US8255570B2 (en) * 2007-03-12 2012-08-28 Citrix Systems, Inc. Systems and methods of compression history expiration and synchronization
US7865585B2 (en) * 2007-03-12 2011-01-04 Citrix Systems, Inc. Systems and methods for providing dynamic ad hoc proxy-cache hierarchies
US7827237B2 (en) * 2007-03-12 2010-11-02 Citrix Systems, Inc. Systems and methods for identifying long matches of data in a compression history
US8775663B1 (en) * 2007-04-25 2014-07-08 Netapp, Inc. Data replication network traffic compression
JP5345154B2 (en) * 2008-01-11 2013-11-20 テレフオンアクチーボラゲット エル エム エリクソン(パブル) Message handling in IP multimedia subsystem
DE602008002583D1 (en) * 2008-07-21 2010-10-28 Sony Comp Entertainment Europe Data compression and decompression
US10090857B2 (en) 2010-04-26 2018-10-02 Samsung Electronics Co., Ltd. Method and apparatus for compressing genetic data
US8149145B2 (en) * 2010-08-05 2012-04-03 Hewlett-Packard Development Company, L.P. Method and apparatus for adaptive lossless data compression
KR101992274B1 (en) * 2013-01-02 2019-09-30 삼성전자주식회사 Method for compressing data and devices using the method
US9325813B2 (en) * 2013-09-03 2016-04-26 Qualcomm Incorporated Formatting data packets for compression
WO2015141467A1 (en) * 2014-03-17 2015-09-24 日本電気株式会社 Receiving device, number of lines recognition circuit, number of lines recognition method and program
US9337862B2 (en) * 2014-06-09 2016-05-10 Tidal Systems, Inc. VLSI efficient Huffman encoding apparatus and method
US9287893B1 (en) 2015-05-01 2016-03-15 Google Inc. ASIC block for high bandwidth LZ77 decompression
US10091128B2 (en) * 2016-05-23 2018-10-02 Hughes Network Systems, Llc Dynamic history multistream long range compression
US10268537B2 (en) 2016-05-26 2019-04-23 International Business Machines Corporation Initializing a pseudo-dynamic data compression system with predetermined history data typical of actual data

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4021782A (en) * 1974-01-07 1977-05-03 Hoerning John S Data compaction system and apparatus
US4464650A (en) * 1981-08-10 1984-08-07 Sperry Corporation Apparatus and method for compressing data signals and restoring the compressed data signals
GB2172127B (en) * 1985-03-06 1988-10-12 Ferranti Plc Data compression system
US4730348A (en) * 1986-09-19 1988-03-08 Adaptive Computer Technologies Adaptive data compression system
US4906991A (en) * 1988-04-29 1990-03-06 Xerox Corporation Textual substitution data compression with finite length search windows
US5058144A (en) * 1988-04-29 1991-10-15 Xerox Corporation Search tree data structure encoding for textual substitution data compression systems
US5046027A (en) * 1988-11-08 1991-09-03 Massachusetts General Hospital Apparatus and method for processing and displaying images in a digital procesor based system
US5016009A (en) * 1989-01-13 1991-05-14 Stac, Inc. Data compression apparatus and method
US5003307A (en) * 1989-01-13 1991-03-26 Stac, Inc. Data compression apparatus with shift register search means
WO1992002989A1 (en) * 1990-08-09 1992-02-20 Telcor Systems Corporation Compounds adaptive data compression system
US5155484A (en) * 1991-09-13 1992-10-13 Salient Software, Inc. Fast data compressor with direct lookup table indexing into history buffer
US5455943A (en) * 1992-10-08 1995-10-03 Salient Software, Inc. Method and apparatus for finding longest and closest matching string in history buffer prior to current string

Also Published As

Publication number Publication date
DE69429482T2 (en) 2002-06-13
JP2006262462A (en) 2006-09-28
JP4128152B2 (en) 2008-07-30
DE69429482D1 (en) 2002-01-31
JPH0778067A (en) 1995-03-20
JP2004260839A (en) 2004-09-16
JP2007243959A (en) 2007-09-20
EP0643491B1 (en) 2001-12-19
US5521597A (en) 1996-05-28
CA2128127C (en) 2003-02-25
EP0643491A1 (en) 1995-03-15
JP3571079B2 (en) 2004-09-29

Similar Documents

Publication Publication Date Title
CA2128127A1 (en) Method and system for data compression
JP3065585B2 (en) Method and pre-compressor for providing improved data compression efficiency
JP3025301B2 (en) Data precompression device, data precompression system, and data compression ratio improving method
EP0903866B1 (en) Method and apparatus for data compression
EP1307967A2 (en) System and method for incremental and continuous data compression
AU2001277914A1 (en) Incremental and continuous data compression
EP0771120A3 (en) Video encoding and decoding apparatus
CA2260883A1 (en) Data compression and decompression system with immediate dictionary updating interleaved with string search
MY114963A (en) Method and apparatus for switching between data compression modes
EP1195010B1 (en) Lzw data compression/decompression apparatus and method with embedded run-length encoding/decoding
JP2003524983A (en) Method and apparatus for optimized lossless compression using multiple coders
WO1998056116A3 (en) Data compression and expansion of an in-level information signal
GB2314744A (en) A variable encoding rate puncturing coder
CA2367446C (en) Data compression method and apparatus with embedded run-length encoding
AU678942B2 (en) Data compression encoder/decoder and method for efficient duplicate string handling
US6653949B1 (en) Data compression apparatus and method utilizing tandem coupled matrices
JPH08163179A (en) Data compression transmitter
JPH03162134A (en) Compressing/expanding system for communication data
GB2336078A (en) Data compression using string matching tables
KR100443012B1 (en) Decoding process for byte stream of compressed data
JPS62232236A (en) Data transmission method
JPH0583771A (en) Data transferring system
JPH10111788A (en) Data transfer time compression method/device
JPH07143229A (en) Maintenance signal transmission system for exchange and device therefor
KR19990003310A (en) Improved Modem Encoding and Decoding System

Legal Events

Date Code Title Description
EEER Examination request
MKEX Expiry

Effective date: 20140715