# US 5,703,907 A · Method for data compression

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 5,703,907 A
- Document ID: US5703907A
- Status: Granted
- Kind: A
- Application number: 08/650,119
- Filed: 1996-06-03
- Granted: 1997-12-30
- Earliest claimed: 1993-03-12
- Assignees: The James Group
- Inventors: David C. James
- Web page: https://patentgrep.com/patent/US5703907A

## CPC

- G06T 9/005: {Statistical coding, e.g. Huffman, run length coding}
- H03M 7/30: Compression (speech analysis-synthesis for redundancy reduction G10L19/00; for image communication H04N); Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- G06T: IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- H03M: CODING; DECODING; CODE CONVERSION IN GENERAL (using fluidic means F15C4/00; optical analogue/digital converters G02F7/00; coding, decoding or code conversion, specially adapted for particular applications, see the relevant subclasses, e.g. G01D, G01R, G06F, G06T, G09G, G10L, G11B, G11C, H04B, H04L, H04M, H04N; ciphering or deciphering for cryptography or other purposes involving the need for secrecy G09C)

## Abstract

Methods for compressing data including methods for compressing highly randomized data are disclosed. Nibble encode, distribution encode, and direct bit encode methods are disclosed for compressing data which is not highly randomized. A randomized data compression routine is also disclosed and is very effective for compressing data which is highly randomized. All of the compression methods disclosed operate on a bit level and accordingly are insensitive to the nature or origination of the data sought to be compressed. Accordingly, the methods of the present invention are universally applicable to any form of data regardless of its source of origination.

## Claims

### Claim 1

A method of compressing data from a stream of electrically encoded binary data using a direct bit manipulation method, comprising the steps of:
A) dividing said stream of binary data into a plurality of input words;
B) defining a plurality of ranges;
C) determining the range in which each of the words fall;
D) for each determination made in step C, converting each word into a balance value and assigning a control word and a resolve word to each said balance value, wherein the balance value, control word, and resolve word uniquely define the value of their associated input word.

### Claim 2 (depends on 1)

The method of claim 1, wherien the balance value is calculated by subtracting one of said words in said plurality of input words by its associated range.

### Claim 3 (depends on 1)

The method of claim 1, further including the steps of:
(E) building a first string by converting the balance values into corresponding balance strings and concatenating said balance strings together, and
(F) building a second string by converting said control words into corresponding control word strings and concatenating said control word strings together.

### Claim 4 (depends on 3)

The method of claim 3, further including the steps of:
(G) building a third string by concatenating resolve words together, and
(H) buidling a fourth string by concatenating the string of step (G) with the string of step (F).
