DOE Patents title logo U.S. Department of Energy
Office of Scientific and Technical Information

Title: Method for compression of data using single pass LZSS and run-length encoding

Abstract

A method used preferably with LZSS-based compression methods for compressing a stream of digital data. The method uses a run-length encoding scheme especially suited for data strings of identical data bytes having large run-lengths, such as data representing scanned images. The method reads an input data stream to determine the length of the data strings. Longer data strings are then encoded in one of two ways depending on the length of the string. For data strings having run-lengths less than 18 bytes, a cleared offset and the actual run-length are written to an output buffer and then a run byte is written to the output buffer. For data strings of 18 bytes or longer, a set offset and an encoded run-length are written to the output buffer and then a run byte is written to the output buffer. The encoded run-length is written in two parts obtained by dividing the run length by a factor of 255. The first of two parts of the encoded run-length is the quotient; the second part is the remainder. Data bytes that are not part of data strings of sufficient length are written directly to the output buffer.

Inventors:
 [1]
  1. Beech Island, SC
Issue Date:
Research Org.:
Savannah River Site (SRS), Aiken, SC (United States)
OSTI Identifier:
871285
Patent Number(s):
5701125
Assignee:
United States of America as represented by United States (Washington, DC)
Patent Classifications (CPCs):
G - PHYSICS G06 - COMPUTING G06T - IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
H - ELECTRICITY H03 - BASIC ELECTRONIC CIRCUITRY H03M - CODING
DOE Contract Number:  
AC09-89SR18035
Resource Type:
Patent
Country of Publication:
United States
Language:
English
Subject:
method; compression; data; single; pass; lzss; run-length; encoding; preferably; lzss-based; methods; compressing; stream; digital; scheme; especially; suited; strings; identical; bytes; run-lengths; representing; scanned; images; reads; input; determine; length; encoded; depending; string; 18; cleared; offset; written; output; buffer; run; byte; set; obtained; dividing; factor; 255; quotient; remainder; sufficient; directly; compression methods; data bytes; especially suited; digital data; sufficient length; data stream; data representing; input data; single pass; lzss-based compression; run-length encoding; scanned image; coding scheme; /341/

Citation Formats

Berlin, Gary J. Method for compression of data using single pass LZSS and run-length encoding. United States: N. p., 1997. Web.
Berlin, Gary J. Method for compression of data using single pass LZSS and run-length encoding. United States.
Berlin, Gary J. Wed . "Method for compression of data using single pass LZSS and run-length encoding". United States. https://www.osti.gov/servlets/purl/871285.
@article{osti_871285,
title = {Method for compression of data using single pass LZSS and run-length encoding},
author = {Berlin, Gary J},
abstractNote = {A method used preferably with LZSS-based compression methods for compressing a stream of digital data. The method uses a run-length encoding scheme especially suited for data strings of identical data bytes having large run-lengths, such as data representing scanned images. The method reads an input data stream to determine the length of the data strings. Longer data strings are then encoded in one of two ways depending on the length of the string. For data strings having run-lengths less than 18 bytes, a cleared offset and the actual run-length are written to an output buffer and then a run byte is written to the output buffer. For data strings of 18 bytes or longer, a set offset and an encoded run-length are written to the output buffer and then a run byte is written to the output buffer. The encoded run-length is written in two parts obtained by dividing the run length by a factor of 255. The first of two parts of the encoded run-length is the quotient; the second part is the remainder. Data bytes that are not part of data strings of sufficient length are written directly to the output buffer.},
doi = {},
journal = {},
number = ,
volume = ,
place = {United States},
year = {Wed Jan 01 00:00:00 EST 1997},
month = {Wed Jan 01 00:00:00 EST 1997}
}