|
References  |
|
|
| *references marked with an asterisk below are user-added references |
|
U.S. References |
|
|
| Add a new US reference: |
| | Reference | Relevancy | Comments | Reference | Relevancy | Comments | 5132992 Yurt 375/240 Jul,1992 |      Your vote accepted [0 after 0 votes] | | 5129074 Kikuchi 711/173 Jul,1992 |      Your vote accepted [0 after 0 votes] | | 5049881 Gibson 341/95 Sep,1991 |      Your vote accepted [0 after 0 votes] | | 5032987 Broder 711/221 Jul,1991 |      Your vote accepted [0 after 0 votes] | | 5016009 Whiting 341/67 May,1991 |      Your vote accepted [0 after 0 votes] | | 5010553 Scheller 714/751 Apr,1991 |      Your vote accepted [0 after 0 votes] | | 5003307 Whiting 341/51 Mar,1991 |      Your vote accepted [0 after 0 votes] | | 4988998 O'Brien 341/55 Jan,1991 |      Your vote accepted [0 after 0 votes] | | 4979039 Kisor 375/240.22 Dec,1990 |      Your vote accepted [0 after 0 votes] | | 4961139 Hong 707/1 Oct,1990 |      Your vote accepted [0 after 0 votes] | | 4929946 O'Brien 341/87 May,1990 |      Your vote accepted [0 after 0 votes] | | 4906991 Fiala 341/51 Mar,1990 |      Your vote accepted [0 after 0 votes] | | 4899147 Schiavo 341/60 Feb,1990 |      Your vote accepted [0 after 0 votes] | | 4876541 Storer 341/51 Oct,1989 |      Your vote accepted [0 after 0 votes] | | 4872009 Tsukiyama 341/95 Oct,1989 |      Your vote accepted [0 after 0 votes] | | 4853696 Mukherjee 341/65 Aug,1989 |      Your vote accepted [0 after 0 votes] | | 4814746 Miller 341/95 Mar,1989 |      Your vote accepted [0 after 0 votes] | | 4809350 Shimoni 382/238 Feb,1989 |      Your vote accepted [0 after 0 votes] | | 4758899 Tsukiyama 360/8 Jul,1988 |      Your vote accepted [0 after 0 votes] | | 4730348 MacCrisken 375/240 Mar,1988 |      Your vote accepted [0 after 0 votes] | | 4701745 Waterworth 341/63 Oct,1987 |      Your vote accepted [0 after 0 votes] | | 4682150 Mathes 235/431 Jul,1987 |      Your vote accepted [0 after 0 votes] | | 4677649 Kunishi 375/240 Jun,1987 |      Your vote accepted [0 after 0 votes] | | 4612532 Bacon 341/51 Sep,1986 |      Your vote accepted [0 after 0 votes] | | 4588985 Carter 341/95 May,1986 |      Your vote accepted [0 after 0 votes] | | 4586027 Tsukiyama 341/95 Apr,1986 |      Your vote accepted [0 after 0 votes] | | 4560976 Finn 341/51 Dec,1985 |      Your vote accepted [0 after 0 votes] | | 4558302 Welch 341/51 Dec,1985 |      Your vote accepted [0 after 0 votes] | | 4538240 Carter 708/492 Aug,1985 |      Your vote accepted [0 after 0 votes] | | 4491934 Heinz 341/55 Jan,1985 |      Your vote accepted [0 after 0 votes] | | 4464650 Eastman 341/51 Aug,1984 |      Your vote accepted [0 after 0 votes] | | 4412306 Moll 708/203 Oct,1983 |      Your vote accepted [0 after 0 votes] | | 4295124 Roybal 341/86 Oct,1981 |      Your vote accepted [0 after 0 votes] | | 4087788 Johannesson 382/241 May,1978 |      Your vote accepted [0 after 0 votes] | | 4054951 Jackson 714/48 Oct,1977 |      Your vote accepted [0 after 0 votes] | | 4021782 Hoerning 341/51 May,1977 |      Your vote accepted [0 after 0 votes] | | 3976844 Betz 375/240 Aug,1976 |      Your vote accepted [0 after 0 votes] | | 3914586 McIntosh 341/68 Oct,1975 |      Your vote accepted [0 after 0 votes] | | |
|
|
|
|
U.S. References |
|
|
Foreign References |
|
|
|
|
|
|
Foreign References |
|
|
Other References |
|
|
|
|
|
|
Other References |
|
|
|
|
|
References  |
|
|
Claims  |
|
|
We claim:
1. A method of compressing a stream of input data into a compressed stream
of output data comprising:
(a) maintaining multiple hash tables, each respectively for a different
data subblock size, and each hash table having entries having respective
hash keys,
(b) hashing a string of input characters of the input data for each of the
different data subblock sizes to obtain the hash keys, and using these
hash keys to address hash table entries containing hash information to
facilitate location of string matches,
(c) hashing, for each of the subblock sizes, subsequent strings of data and
searching for a match of prior strings related to the information
addressed by hash keys in at least one of the hashing tables, and
(d) if a hash match occurs in at least one hash table, outputting the
subsequent occurrence of the string as compressed data, and if a hash
match for each of the subblocks does not occur in any hash table,
outputting at least the first character of an input subblock as
uncompressed data.
2. A method as claimed in claim 1 wherein the hashed information in
relation to the input data is stored in at least one of the hash tables
and is selectively only a source pointer to prior hashed subblocks or the
source pointer representative of the hashed subblocks and additional data.
3. A method as claimed in claim 1 wherein selectively either one or
multiple of the hash table entries contain selectively only a source
pointer to prior hashed subblocks, or a source pointer to prior hashed
subblocks and additional data.
4. A method as claimed in claim 1 wherein the hashed information in the
hash entries in at least one of the hash tables is selectively
unconditionally replaced, or conditionally replaced or removed on the
occurrence of subsequent hashed information being directed by a hash key
to the hash table entry containing information representative of prior
hashed subblocks.
5. A method as claimed in claim 1 wherein hashing is effected on a data
subblock size of three for a first hash table and a data subblock size of
four for a second hash table.
6. A method of compressing a stream of input data into a compressed stream
of output data comprising:
(a) maintaining multiple hash tables, each respectively for a different
data subblock size, and each hash table having entries having respective
hash keys,
(b) hashing a string of input characters of the input data for each of the
different data subblock sizes to obtain the hash keys, and using these
hash keys to address hash table entries containing hash information to
facilitate location of string matches,
(c) hashing, for each of the subblock sizes, subsequent strings of data and
searching for a match of prior strings related to the information
addressed by hash keys in at least one of the hashing tables,
(d) if a hash match occurs in at least one hash table, outputting the
subsequent occurrence of the string as compressed data, and if a hash
match for each of the subblocks does not occur in any hash table,
outputting at least the first character of an input subblock as
uncompressed data, and
(e) determining at least part of a hash key for one of the hash tables from
the hash key of another of the hash tables.
7. A method as claimed in claim 6 wherein the hashed keys for a first hash
table are determined on a first data subblock size and wherein a second
hash table contains keys obtained from the second subblock size, and
wherein the hash keys for the first subblock size are obtained at least in
part from the second hash table keys.
8. A method as claimed in claim 6 wherein the hashed information in
relation to the input data is stored in at least one of the hash tables
and is selectively only a source pointer to prior hashed subblocks or the
source pointer representative of the hashed subblocks and additional data.
9. A method as claimed in claim 6 wherein selectively either one or
multiple of the hash table entries contain selectively only a source
pointer to prior hashed subblocks, or a source pointer to prior hashed
subblocks and additional data.
10. A method as claimed in claim 6 wherein the hashed information in the
hash entries in at least one of the hash tables is selectively
unconditionally replaced, or conditionally replaced or removed on the
occurrence of subsequent hashed information being directed by a hash key
to the hash table entry containing information representative of prior
hashed subblocks.
11. A method as claimed in claim 6 wherein hashing is effected on a data
subblock size of three for a first hash table and a data subblock size of
four for a second hash table.
12. A method of compressing a stream of input data into a compressed string
of output data comprising:
(a) maintaining multiple hash tables, each respectively for a different
data subblock size, and each hash table having entries having respective
hash keys,
(b) hashing a string of input characters of the input data for each of the
different data subblock sizes to obtain the hash keys, and using these
hash keys to address hash table entries containing hash information to
facilitate location of string matches,
(c) hashing, for each of the subblock sizes, subsequent strings of data and
searching for a match of prior strings related to the information
addressed by hash keys in at least one of the hashing tables,
(d) if a hash match for each of the subblocks does not occur in any hash
table, outputting at least the first character of an input subblock as
uncompressed data, and
(e) if a hash match occurs in at least one hash table, outputting the
subsequent occurrence of the string as compressed data, such that when a
hash match occurs in a table related to a larger subblock size and a hash
match occurs in a table related to a smaller subblock size, the hash match
in the hash table of the larger subblock size is selected for the
compressed data output.
13. A method as claimed in claim 12 wherein the hashed information in
relation to the input data is stored in at least one of the hash tables
and is selectively only a source pointer to prior hashed subblocks or the
source pointer representative of the hashed subblocks and additional data.
14. A method as claimed in claim 12 wherein selectively either one or
multiple of the hash table entries contain selectively only a source
pointer to prior hashed subblocks, or a source pointer to prior hashed
subblocks and additional data.
15. A method as claimed in claim 12 wherein the hashed information in the
hash entries in at least one of the hash tables is selectively
unconditionally replaced, or conditionally replaced or removed on the
occurrence of subsequent hashed information being directed by a hash key
to the hash table entry containing information representative of prior
hashed subblocks.
16. A method as claimed in claim 12 wherein hashing is effected on a data
subblock size of three for a first hash table and a data subblock size of
four for a second hash table.
17. A method of compressing a stream of input data into a compressed string
of output data comprising:
(a) maintaining multiple hash tables, each respectively for a different
data subblock size, and each hash table having entries having respective
hash keys,
(b) hashing a string of input characters of the input data for each of the
different data subblock sizes to obtain the hash keys, and using these
hash keys to address hash table entries containing hash information to
facilitate location of string matches,
(c) hashing, for each of the subblock sizes, subsequent strings of data and
searching for a match of prior strings related to the information
addressed by hash keys in at least one of the hashing tables,
(d) if a hash match for each of the subblocks does not occur in any hash
table, outputting at least the first character of an input subblock as
uncompressed data, and
(e) if a hash match occurs in a hash table, outputting the subsequent
occurrence of the string as compressed data, such that where a hash match
occurs for more than one hash table, determining the longer match length
of the string of input data for each respective hash table, and outputting
the longer match length as the compressed data output.
18. A method of compressing a stream of input data into a compressed string
of output data comprising:
(a) maintaining multiple hash tables, each respectively for a different
data subblock size, and each hash table having entries having respective
hash keys,
(b) hashing a string of input characters of the input data for each of the
different data subblock sizes to obtain the hash keys, and using these
hash keys to address hash table entries containing hash information to
facilitate location of string matches,
(c) hashing, for each of the subblock sizes, subsequent strings of data and
searching for a match of prior strings related to the information
addressed by hash keys in at least one of the hashing tables,
(d) if a hash match for each of the subblocks does not occur in any hash
table, outputting at least the first character of an input subblock as
uncompressed data,
(e) if a hash match occurs in a hash table, outputting the subsequent
occurrence of the string as compressed data, such that where a hash match
occurs in a table related to a larger subblock size relative to a hash
match in a table related to a smaller subblock size, the hash match of the
larger subblock size is selected as the compressed data output, and
(f) wherein the hash keys for the larger subblock size are computed using
at least part of the value of hash keys from the smaller subblock size.
19. A method of compressing a stream of input data into a compressed string
of output data comprising:
(a) maintaining multiple hash tables, each respectively for a different
data subblock size, and each hash table having entries having respective
hash keys,
(b) hashing a string of input characters of the input data for each of the
different data subblock sizes to obtain the hash keys, and using these
hash keys to address hash table entries containing hash information to
facilitate location of string matches,
(c) hashing, for each of the subblock sizes, subsequent strings of data and
searching for a match of prior strings related to the information
addressed by hash keys in at least one of the hashing tables,
(d) if a hash match for each of the subblocks does not occur in any hash
table, outputting at least the first character of an input subblock as
uncompressed data,
(e) wherein when a hash match occurs in a table related to a larger
subblock size relative to a hash match in a table related to a smaller
subblock size, selecting the hash match of the larger subblock size as the
compressed data output, and
(f) if a hash match occurs in a hash table, outputting the subsequent
occurrence of the string as compressed data, such that when a larger
subblock size does not match on a minimum match length, selecting the
smaller subblock size hash value if such smaller subblock value matches
for its respective minimum length.
20. A method as claimed in claim 17 wherein the hashed information in
relation to the input data is stored in at least one of the hash tables
and is selectively only a source pointer to prior hashed subblocks or the
source pointer representative of the hashed subblocks and additional data.
21. A method as claimed in claim 17 wherein selectively either one or
multiple of the hash table entries contain selectively only a source
pointer to prior hashed subblocks, or a source pointer to prior hashed
subblocks and additional data.
22. A method as claimed in claim 17 wherein the hashed information in the
hash entries in at least one of the hash tables is selectively
unconditionally replaced, or conditionally replaced or removed on the
occurrence of subsequent hashed information being directed by a hash key
to the hash table entry containing information representative of prior
hashed subblocks.
23. A method as claimed in claim 17 wherein hashing is effected on a data
subblock size of three for a first hash table and a data subblock size of
four for a second hash table.
24. A method as claimed in claim 18 wherein the hashed information in
relation to the input data is stored in at least one of the hash tables
and is selectively only a source pointer to prior hashed subblocks or the
source pointer representative of the hashed subblocks and additional data.
25. A method as claimed in claim 18 wherein selectively either one or
multiple of the hash table entries contain selectively only a source
pointer to prior hashed subblocks, or a source pointer to prior hashed
subblocks and additional data.
26. A method as claimed in claim 18 wherein the hashed information in the
hash entries in at least one of the hash tables is selectively
unconditionally replaced, or conditionally replaced or removed on the
occurrence of subsequent hashed information being directed by a hash key
to the hash table entry containing information representative of prior
hashed subblocks.
27. A method as claimed in claim 18 wherein hashing is effected on a data
subblock size of three for a first hash table and a data subblock size of
four for a second hash table.
28. A method as claimed in claim 19 wherein the hashed information in
relation to the input data is stored in at least one of the hash tables
and is selectively only a source pointer to prior hashed subblocks or the
source pointer representative of the hashed subblocks and additional data.
29. A method as claimed in claim 19 wherein selectively either one or
multi | | |