`
`PRACTICE & EXPERIENCE
`Editors
`Professor D. E._Comer. Computer Science Department, Purdue University, West
`Lafayette. IN 47907. U.S.A.
`‘
`Charlotte I. Tubis. U.S. Editorial Assistant, Computer Science Department, Purdue University. West Lafayette.
`IN 41907. lJ.S.A.
`
`Dr A. J. Wellings. Department of Computer Science, University of York.
`Heslington, York YO1 5DD
`
`Advisory Editorial Board
`Professor 0. W. BARRON
`
`Department of Electronics and Computer Science.
`University of Southampton.
`Southampton S09 SNH. U.l(.
`
`Professor P. .1‘. BROWN
`Computing Laboratory. The University.
`Canterbury. Kent CT2 ‘IN F. U.K.
`Professor J. A. CAMPBELL
`
`Department of Computer Science, University College London.
`Gowar Street. London WCIE GBT. U.K.
`
`Protassor F. J. CORBATO
`Electrical Engineering Department.
`Massachusetts Institute of Technology.
`545 T3Fh|'|0l0 \I"5CtU3“i=-
`Cambridge.
`assachusetts 02139, U.S.A.
`Drl Chfislopher W.
`AT&T Bell Laboratories. 600 Mountain Ave 2C—-16-1,
`Murray Hill. NJ 0'39?-t-0636. U.S.A.
`PTOTESSOT PER BRINCH HANSEN
`School of Computer and Information Science,
`4.115 c3‘r_ swacuse Un[Ve[si[§’
`Syracuse. New York 13210. U.
`,A.
`Professor D. R. HANSON
`Department of computer Science,
`Princeton University, Princeton‘
`New Jersey 03544. U.S.A.
`Professor J. KAUENELSON
`Faculty of Electrical Engineering.
`TechnIon—Israel Institute of'l"echno|ogy.
`Haifa. Israel
`Dr. B. W. KERNIGHAN
`AT&T Bell Laboratories. 500 Mountain Avenue.
`Murray Hill, New Jersey 0?9'M. U.S.A.
`
`-
`
`Professor D. E. KN UTH
`
`Department of Computer Science. Stanford University.
`Stanford. California 94305. U.S.A.
`Dr. B. W. LAMPSON
`mo Lake mew Ave‘
`-
`Elarilin
`
`Dr‘ C‘ A‘ LANG
`TlV33'5P3C3 Lid-
`'Itl Castle Street.
`Cambridge CB3 DAJ. l.l.K.
`
`Professor B. RAN DELL
`Com uting Laboratory.
`U,,i..§,5i,._. of Newca5t}e_upDn_TYne_
`Claremont Tower. clfll'5lTIOl'lt Road.
`NeWCastla_upDn'Tl'me NEl ?RU' U'l<'
`Professor J_ 5‘ ROHL
`Department of Computer Science.
`Th8 U0“-‘3iSiTY Of W95f9"'| g‘7\U‘-‘stfflllfl.
`Nedlands. Western Australia 6009.
`0' T‘ R035
`Softech Inc.. 460 Totten Pond Road.
`Waltham, Massachusetts 0215-1. U.S.A.
`B H SHEARWG
`Tim éofiwaw Factory
`23 Padbrogk Limpsfigld Oxted
`gunev EH3 figw_ U_K_
`'
`Professor N. WlFlTH
`Institut fur Computersysteme. ETH-Zentrum.
`CH-8092 Ziirich, Switzerland.
`
`'
`
`Aims and Scope
`Software-«Practice and Experience is an internationally respected and rigorously refereed vehicle for the dissemination and
`discussion of practical experience with new and established software for both systems and applications. Contributions regu-
`larly: la} describe detailed accounts of completed software-system projects which can serve as ‘how-to-do~it’ models for future
`work in the same field: [bl present short reports on programming techniques that can be used in a wide variety of areas; tcl
`document new techniques and tools that aid in solving software construction problems: and id} explain methodsitechniques
`that cope with the special demands of large scale software proiects. The journal also features timely Short Communications
`on rapidly developing new topics.
`The editors actively encourage papers which result from practical experience with tools and methods developed and used
`in both academic and industrial environments. The aim is to encourage practitioners to share their experiences with design,
`implementation and evaluation of techniques and tools for software and software systems.
`Papers cover software design and implementation. case studies describing the evolution of system and the thinking behind
`them. and critical appraisals of software systems. The journal has always welcomed tutorial articles describing wall-tried tech-
`niques not previously documented in computing literature. The emphasis is on practical experience; articles with theoretical
`or mathematical content are included only in cases where an understanding of the theory will lead to better practical systems.
`Articles range in length from a Short Communication {half to two pagesl to the length required to give full treatment to a
`substantial piece of software [:10 or more pagesl.
`Advertising: For details contact-
`Micltael J. Leverntore. Advanisemenl Salas. John Wiley & Sons Ltd. Balfins Lane. Chichester. Sussex PO19 1l.JD, England [Telephone I312-13
`170351. Fax 012-53 T;'5B'i'B. Telex S6290}
`Software-—Pracrice and Experience IISSN 0038-064-t.fUSPS 890-920} is published monthly. by John Wiley 5: Sons Limited. Baffins Lane. Chichester.
`Sussex. England. Second class postage paid at Jamaica. N.Y, ‘I1-131. Air freight and mailing in the USA. by Publications Expediting Services lnc..
`200 Meacham Avenue. Elrnont. NY. 11003. *3 ‘I995 by John Wiley E-1 Sons Ltd. Printed and bound in Great Britain by Page Bros. Norwich. Printed
`on acid—lree paper.
`'
`To subscribe: Orders should be addressed to Subscriptions Department. John Wiley 8t Sons Limited. Bafiins Lane. Chichaster, Sussex. PO19 ‘IUD.
`England. 1995 subscription price I13 issues}: U.S. $825.00.
`lJ.S.A. POSTMASTEH: Send address changes to Softwart.;Practice and Experience. cfo Publications Expediting Services lnc.. 200 Meecharn
`Avenue. Elmont. N.Y. 11003 U.S.A.
`DELL INC., EMC CORP., HPE CO., HPES, LLC - Ex. 1028, p. 1 of 152
`DELL lNC., EMC CORP., HPE CO., HPES, LLC - Ex. 1028, p. 1 of 152
`
`
`
`SOFTWARE——-PRACTICE AND EXPERIENCE
`
`(Softw. pract. exp.)
`
`VOLUME 25. ISSUE No. 10
`
`October 1995
`
`CONTENTS
`
`Migration in Object-oriented Database Systems—A Practical Approach:
`C. Huemer, G. Kappel and S. Vieweg ....................................................... .. 1065
`
`Automatic Synthesis of Compression Techniques for Heterogeneous
`Files: W. H. Hsu and A. E. Zwarico ........................................................... .. 1097
`
`A Tool for Visualizing the Execution of Interactions on a Loosely-coupled
`Distributed System: P. Ashton and J. Penny ........................................... .. 111?
`
`Process Scheduling and UNIX Sernaphores: N. Dunstan and I. Fris ........ .. 1141
`
`Software Maintenance: An Approach to impact Analysis of Objects
`Change: S. Ajila .......................................................................................... .. 1155
`
`SPEXBL 25l10l 1065-1182 [1995}
`ISSN E|O38—064-4
`
`Indexed or abstracted by Cambridge Scientific Abstracts. CompuMath Citation Index l|S|i,
`Compuscience Database, Computer Contents. Computer Literature Index, Computing
`Reviews, Current Contents;"Er19. Tech 8: Appiied Sciences, Data Processing Digest, Deadline
`Newsletter, Educational Technology Abstracts, Engineering Index, Engineering Societies
`Library, IBZ [international Bibliographv of Periodical Literature], Information Science Abstracts
`lPlenumI|. INSPEC, Knowledge Engineering Review, Nat Centre for Software Technology.
`Research Alert USIII and SCISEARCH Database {ISIL
`
` DELL INC., EMC CORP., HPE CO., HPES, LLC -
`DELL lNC., EMC CORP., HPE C0., HPES, LLC -
` Ex. 1026, p. 107 of 152
`Ex. 1026, p. 107 of 152
`
`
`
`SOFI'WARE—PRACTICE AND EXPERIENCE. VOL. 2S(i(.'I),
`
`lt}§l'.l'—il I6 (OCTOBER 1995)
`
`Automatic Synthesis of Compression Techniques for
`Heterogeneous Files
`
`Department of Computer Science, University of iiiirlois at Urbano-Chompatgn, Urbano, IL 6i80i, U.S.A.
`{'emoit'.' bitsu@cs.triitr:.edn, voice: (2i7J 244-1620)
`
`WILLIAM H. HSU
`
`AND
`
`AMY E. ZWARICO
`
`Department of Computer‘ Science, The Johns Hopkins Uitiversity. Baltimore. MD 2}2I8', U.S..-1.
`femor't'.' omy@cs.j!'m.edu, voice: (410) 5E6-5304)
`
`SUMMARY
`
`We present a compression technique for heterogeneous files, those files which contain multiple types of
`data such as text, images, binary, audio, or animation. The system uses statistical methods to determine
`the best algorithm to use in compressing each block of data in a file {possibly a dilferent algorithm for
`each block). The file is then compressed by applying the appropriate algorithm to each block. We obtain
`better savings than possible by using a single algorithm for compressing the file. The implementation
`of a working version of this heterogeneous compressor is described, along with examples of its value
`toward improving compression both in theoretical and applied contexts. We compare our results with
`those obtained using four commercially available compression programs, PKZIP, Unix compress, Sttrfiit,
`and Compact Pro, and show that our system provides better space savings.
`
`KEY WORDS:
`
`adaptivefseleclive data compression algorithms; redundancy metrics; heterogeneous files; program synthesis
`
`INTRODUCTION
`
`The primary motivation in studying compression is the savings in space that it provides.
`Many compression algorithms have been implemented, and with the advent of new hard-
`ware standards, more techniques are under development. Historically, research in data com-
`pression has been devoted to the development of algorithms that exploit various types of
`redundancy found in a file. The shortcoming of such algorithms is that they assume, often
`inaccurately, that files are homogeneous throughout. Consequently, each exploits only a
`subset of the redundancy found in the file.
`Unfortunately, no algorithm is effective in compressing all files.‘ For example, dynamic
`Huffman coding works best on data files with a high variance in the frequency of individ-
`ual characters (including some graphics and audio data), achieves mediocre performance on
`natural language text files, and performs poorly in general on high-redundancy binary data.
`On the other hand, run length encoding works well on high~redundancy binary data, but
`performs very poorly on text files. Textual substitution works best when multiple-character
`strings tend to be repeated, as in English text, but this performance degrades as the average
`
`Received 20 Aprii I994
`CCC 0038-0644f95:'10109'?-20
`©1995 by John Wiley & Sons, Ltd.
`Revised 5 February I995
` DELL INC., EMC CORP., HPE CO., HPES, LLC -
`DELL lNC., EMC CORP., HPE co., HPES, LLC -
` Ex. 1026, p. 108 of 152
`Ex. 1025, p. 108 of 152
`
`
`
`1098
`
`W. H. HSU AND A. E. ZWARICO
`
`length of these strings decreases. These relative strengths and weaknesses become critical
`when attempting to compress heterogeneous files. Heterogeneous files are those which con-
`tain multiple types of data such as text, images, binary, audio, or animation. Consequently,
`their constituent parts may have different degrees of compressibility. Because most com-
`pression algorithms are either tailored to a few specific classes of data or are designed to
`handle a single type of data at a time, they are not suited to the compression of heteroge-
`neous files. In attempting to apply a single method to such files, they forfeit the possibility
`of greater savings achievable by compressing various segments of the file with different
`methods.
`
`To overcome this inherent weakness found in compression algorithms, we have developed
`a heterogeneous compressor that automatically chooses the best compression algorithm to
`use on a given variable-length block of a file, based on both the qualitative and quantita-
`tive properties of that segment. The compressor determines and then applies the selected
`algorithms to the blocks separately. Assembling compression procedures to create a specif-
`ically tailored program for each file gives improved performance over using one program
`for all files. This system produces better compression results than four commonly available
`compression packages, PKZlP,2 Unix compress} Stnfilt,“ and Compact Pro5 for arbitrary
`heterogeneous files.
`The major contributions of this work are twofold. The first is an improved compression
`system for heterogeneous files. The second is the development of a method of statisti«
`cal analysis of the compressibility of a file (its redundancy types). Although the concept
`of redundancy types is not new,“-7 synthesis of compression techniques using redundancy
`measurements is largely unprecedented. The approach presented in this paper uses a straight-
`forward program synthesis technique: a compression plan, consisting of instructions for each
`block of input data, is generated, guided by the statistical properties of the input data. Be-
`cause of its use of algorithms specifically suited to the types of redundancy exhibited by
`the particular input file, the system achieves consistent average performance throughout the
`file, as shown by experimental evidence.
`As an example of the type of savings our system produces, consider compressing a
`heterogeneous file (such as a small multimedia data file) consisting of 10K of low redun-
`dancy (non-natural language) ASCII data, 10K of English text, and 25K of graphics. In
`this case, a reasonably sophisticated compression program might recognize the increased
`savings achievable by employing Huffman compression, to better take advantage of the fact
`that the majority of the data is graphical. However, none of the general-purpose compres-
`sion methods under consideration are optimal when used alone on this file. This is because
`the text part of this file is best compressed by textual substitution methods (e.g., Lempel—
`Ziv) rather than statistical methods, while the low-redundancy data‘ and graphics parts
`are best compressed by alphabetic distribution-based methods (e.g., arithmetic or dynamic
`Huffman coding) rather than Lempel~Ziv or run-length encoding. This particular file totals
`45K in length before compression. A compressor using pure dynamic Huffman coding only
`achieves about 7 per cent savings for a compressed file of length 42.2K. One of the best
`general-purpose Lempel-—Ziv compressors currently available” achieves 18 per cent sav-
`ings, producing a compressed file of length 37.4K. Our system uses arithmetic coding on
`the first and last segments and Lempel—Ziv compression on the text segment in the middle,
`achieving a 22 per cent savings and producing a compressed file of length 35.6K. This is
`a 4 per cent improvement over the best commercial system.
`
`" This denotes, in our system, a file with a low rate of repeated strings.
`
` DELL INC., EMC CORP., HPE CO., HPES, LLC -
`DELL lNC., EMC CORP., HPE co., HPES, LLC -
` Ex. 1026, p. 109 of 152
`Ex. 1025, p. 109 of 152
`
`
`
`AUTOMATIC SYNTHESIS OF COMPRESSION TECHNIQUES FOR HETEROGENEOUS FILES I099
`
`The purpose- of our experiments was to verify the conjecture that a selective system
`for combining methods can improve savings on a significant range of heterogeneous files,
`especially multimedia data. This combination differs from current adaptive methods in
`that
`it switches among compression paradigms designed to remove very different types
`of redundancy. By contrast, existing adaptive compression programs are sensitive only to
`changes in particular types of redundancy, such as run-length, which do not require changing
`the underlying algorithm used in compression. Thus they cannot adapt to changes in the
`type of redundancy present, such as from high run-length to high character repetition. The
`superiority of our approach is demonstrated in our experimental section.
`This paper begins with a presentation of existing approaches to data compression, includ-
`ing a discussion of hybrid and adaptive compression algorithms and a description of four
`popular commercial compression packages. These are followed by documentation on the
`design of the heterogeneous compression system, analysis of experimental results obtained
`from test runs of the completed system, and comparison of the system’s performance against
`that of commercial systems. Finally, implications of the results and possibilities for future
`work are presented.
`
`RELATED WORK
`
`It is a fundamental result of information theory that there is no single algorithm that per-
`forms optimally in compressing all files.' However, much work has been done to develop
`algorithms and techniques that work nearly optimally on all classes of files. In this sec-
`tion we discuss adaptive algorithms, composite algorithms, and four popular commercial
`compression packages.
`
`Adaptive compression algorithms and composite techniques
`
`Exploiting the heterogeneity in a file has been addressed in two ways: the development
`of adaptive compression algorithms, and the composition of various algorithms. Adaptive
`compression algorithms attune themselves gradually to changes in the redundancies within a
`file by modifying parameters used by the algorithm, such as the dictionary, during execution.
`For example, adaptive alphabetic distribution-based algorithms such as dynamic Huffman
`coding” maintain a tree structure to minimize the encoded length of the most frequently
`occurring characters. This property can be made to change continuously as a file is pro-
`cessed.
`
`An example of an adaptive textual substitution algorithm is Lempel-Ziv compression,
`a title which refers to two distinct variants of a basic textual substitution scheme. The
`
`first variant, known as L27’? or the sliding dictionary or siiding window method, selects
`positional references from a constant range of preceding strings.“ " These ‘back-pointers’
`literally encode position and length of a repeated string. The second variant, known as
`LZ'i8 or the dynamic dictionary method, uses a dictionary structure with a paging heuristic.
`When the dictionary — a table of strings from the file —- is completely filled, the contents
`are not discarded. Instead, an auxiliary dictionary is created and updated while compression
`continues using the main dictionary. Each time this auxiliary table is filled, its contents are
`‘swapped’ into the main dictionary and it is cleared. The maintenance of dictionaries for
`textual substitution is analogous to the semi-space method of garbage collection, in which
`two pages are used but only one is ‘active’ — these are exchanged when one fills beyond
`a preset threshold. Another adaptive variant of this algorithm is the Lempel—Ziv—Welch
`
` DELL INC., EMC CORP., HPE CO., HPES, LLC -
`DELL lNC., EMC CORP., HPE C0., HPES, LLC -
` Ex. 1026, p. 110 of 152
`Ex. 1026, p. 110 of 152
`
`
`
`l IOU
`
`W. H. HSU AND A. E. ZWARICO
`
`(LZW) algorithm, a descendant of LZ78 used in Unix compress.“ '2 Both LZW and LZ78
`vary the length of strings used in compression.“ '2
`Yet another adaptive (alphabetic distribution-based) compression scheme, the Move-To-
`Front (MTF) method, was developed by Bentley et at.” In MTF, the ‘word code‘ for a
`symbol is determined by the position of the word in a sequential list. The word list is ordered
`so that frequently accessed words are near the front, thus shortening their encodings.
`Adaptive compression algorithms are not appropriate to use with heterogeneous files
`because they are sensitive only to changes in the particular redundancy type with which
`they are associated, such as a change in the alphabetic distribution. They do not exploit
`changes across different redundancy types in the files. Therefore a so-called adaptive method
`typically cannot directly handle drastic changes in file properties, such as an abrupt transition
`from text to graphics. For example, adaptive Huffman compressors specially optimized for
`text achieve disproportionately poor performance on certain image files, and vice versa. As
`the use of multimedia files increases, files exhibiting this sort of transition will become
`more prevalent.
`Our approach differs from adaptive compression because the system chooses each algo-
`rithm (as well as the duration of its applicability) before compression begins, rather than
`modifying the technique for each file during compression. In addition, while adaptive meth-
`ods make modifications to their compression parameters on the basis of single bytes or fixed
`length strings of input, our heterogeneous compressor bases its compression upon statistics
`gathered from larger blocks of five kilobytes. This allows us to handle much larger changes
`in file redundancy types. This makes our system less sensitive to residual statistical fluctu-
`ations from different parts of a file. We note that it is possible to use an adaptive algorithm
`as a primitive in the system.
`Another approach to handling heterogeneous files is the composition of compression
`algorithms. Composition can either be accomplished by running several algorithms in suc-
`cession or by combining the basic algorithms and heuristics to create a new technique. For
`example, recent implementations of ‘universal’ compression programs execute the Lernpel—
`Ziv algorithm and dynamic Huffman coding in succession, thus improving performance
`by combining the string repetition-based compression of Lempel—Ziv with the frequency-
`based compression strategy of dynamic Huffman coding. One commercial implementation
`is LHarc.”"5 Our system exploits the same savings since it uses the Freeze implementa-
`tion of the Lempel—Ziv algorithm, which filters Lempel—Ziv compressed output through a
`Huffman coder. An example of a truly composite technique is the compression achieved
`by using Shannon—Fano tries‘ in conjunction with the Fiala—Greene algorithm (a variant
`of Lempel—Ziv)‘5 in the PKZIP2 commercial package. Tries are used to optimally encode
`strings by character frequency.” PKZIP was selected as the representative test program from
`this group in our experiment due to its superior performance on industrial benchmarks.”
`Our approach generalizes the ideas of successively executing or combining different
`compression algorithms by allowing any combination of basic algorithms within a file. This
`includes switching from among algorithms an arbitrary number of times within a file. The
`algorithms themselves may be simple or composite and may be adaptive. All are treated as
`atomic commands to be applied to portions of a file.
`
`‘ A rrie is a tree of variable degree 2 2 such that (1) each edge is labelled with a character, and the depth of any node
`represents one more than the number of characters required to identify it; (2) all internal nodes are intermediate and represent
`prefixes of keys in the Inc; {3} keys (strings) may be inserted as leaves using the minimum number of characters which
`distinguish them uniquely. Thus :1 generic trie containing the strings cnmpttrer and compare would have keys at a depth of
`live which share :1 cornnion prefix of length four.
`
` DELL INC., EMC CORP., HPE CO., HPES, LLC -
`DELL lNC., EMC CORP., HPE C0., HPES, LLC -
` Ex. 1026, p. 111 of 152
`Ex. 1026, p. 111 of 152
`
`
`
`AUTOMATIC SYNTHESIS OF COMPRESSION TECHNIQUES FOR HETEROGENEOUS FILES l 101
`
`The problem of heterogeneous files was addressed by Toalis in a proposal for a naive
`heterogeneous compression system similar to ours. In such a system, files would be seg-
`mented into fixed-length encapsulated blocks; the optimal algorithm would be selected for
`each block on the basis of their simple taxonomy (qualitative data type) only; and the blocks
`would be independently compressed. Our system, however, performs more in-depth statis-
`tical analysis in order to make a more informed selection from the database of algorithms.
`This entails not only the determination of qualitative data properties but the computation of
`metrics for an entire block (as opposed to sporadic or random sampling from parts of each
`block). Furthermore, normalization constants for selection parameters (i.e. the redundancy
`metrics) are fitted to observed parameters for a test library. Finally, a straightforward but
`crucial improvement to the naive encapsulated-block method is the implementation of a
`multi-pass scheme. By determining the complete taxonomy (data type and dominant redun-
`dancy type) in advance, any number of contiguous blocks which use the same compression
`method will be treated as a single segment. Toal observed in preliminary experiments that
`the overhead of changing compression schemes from one block to another dominated the
`additional savings that resulted from selection of a superior compression method.” This
`overhead is attributable to the fact that blocks compressed independently (even if the same
`method is used) are essentially separate files and assume the same startup overhead of the
`compression algorithm used.‘ We have determined experimentally that merging contiguous
`blocks whenever possible obviates the large majority of changes in compression method.
`This eliminates a sufficient proportion of the overhead to make heterogeneous compression
`worthwhile.
`
`Commercial products
`
`One of the goals of this research was to develop a compression system which is gener-
`ally superior to commercially available systems. The four systems we studied are PKZIP,
`developed for microcomputers running MS-DOS;2 Unix compress? and Stufilt Classic‘
`and Compact Pro? developed for the Apple Macintosh operating system. Each of these
`products performs its compression in a single pass, with only one method selected per file.
`Thus, the possibility of heterogeneous files is ignored.
`Unix compress uses an adaptive version of the Lempel—Ziv algorithm.‘ It operates by
`substituting a fixed-length code for common substrings. compress,
`like other adaptive
`textual substitution algorithms, periodically tests its own performance and reinitializes its
`string table if the amount of compression has decreased.
`Stufilt makes use of two sets of algorithms:
`it first detects special-type files such as
`image files and processes them with algorithms suited for high-resolution color data; for the
`remaining files, it queries the operating system for the explicit file type given when the file
`was created, and uses this information to choose either the LZW variant of Lempel—Ziv,“‘ ‘5
`dynamic Huffman coding, or run-length encoding. This is a much more limited selection
`process than what we have implemented. Additionally, no selection of compression methods
`is attempted within a file. Compact Pro uses the same methodology as Stufilt and compress,
`but incorporates an improved l_.empel—Ziv derived directly from LZ'l"i'." The public~domain
`version of Stufi7r is derived from Unix compress, as is evident from the similarity of their
`performance results.
`
`“ For purposes of comparison. the block sizes tested by Toni were nearly identical to those used in our system (ranging
`upwards from 4K).
`
` DELL INC., EMC CORP., HPE CO., HPES, LLC -
`DELL lNC., EMC CORP., HPE C0., HPES, LLC -
` Ex. 1026, p. 112 of 152
`Ex. 1026, p. 112 of 152
`
`
`
`1102
`
`W. H. HSU AND A. E. ZWARICO
`
`Compression systems such as Srufilr perform simple selection among alternative com-
`pression algorithms. The important problem is that they are underequipped for the task of
`fitting a specific technique to each file (even when the uncompressed data is homogeneous).
`Stufilt uses few heuristics, since its algorithms are intended to be ‘multipurpose’ . Further-
`more, only the file type is considered in selecting the algorithm — that is, no measures of
`redundancy are computed. Earlier versions of Stufflt (which were extremely similar to Unix
`compress) used composite alphabetic and textual compression, but made no selections on
`the basis of data characteristics. The chief improvements of our heterogeneous compressor
`over this approach are that it uses a two-dimensional lookup table, indexed by file proper-
`ties and quantitative redundancy metrics, and ~ more important — that it treats the file as a
`collection of heterogeneous data sets.
`
`THE HETEROGENEOUS COMPRESSOR
`
`Our heterogeneous compressor treats a file as a collection of fixed size blocks (SK in
`the current implementation), each containing a potentially different type of data and thus
`best compressed using different algorithms. The actual compression is accomplished in
`two phases. In the first phase, the system determines the type and compressibility of each
`block. The compressibility of each block of data is determined by the values of three
`quantitative metrics representing the alphabetic distribution, the average run length and the
`string repetition ratio in the file. If these metrics are all below a certain threshold, then the
`block is considered fully compressed (uncompressible) and the program continues on to the
`next block. Otherwise, using the block type and largest metric, the appropriate compression
`algorithm (and possible heuristic) are chosen from the compression algorithm database. The
`compression method for the current block is then recorded in a small array-based map of
`the file, and the system continues.
`The second phase comprises the actual compression and an optimization that maximizes
`the size of a segment of data to be compressed using a particular algorithm. In this optimiza-
`tion, which is interleaved with the actual compression, adjacent blocks for which exactly
`the same method have been chosen are merged into a single block. This merge technique
`maximizes the length of segments requiring a single compression method by greedily scan-
`ning ahead until a change of method is detected. Scanning is performed using the array
`map of the file generated when compression methods were selected from the database. A
`compression history, needed for decompression, is automatically generated as part of this
`phase.
`The newly compressed segments are written to a buffer by the algorithm, which stores
`the output data with the compression history. The system then writes out the compressed
`file and exits with a signal to the operating system that compression was successful.
`From this two-pass scheme it is straightforward to see why this system is less susceptible
`than traditional adaptive systems to biases accrued when the data type changes abruptly
`during compression. Adaptive compressors perform all operations myopically, sacrificing
`the ability to see ahead in the file or data stream to detect future fluctuations in the type
`of data. As a result, adaptive compressors retain the statistical vestiges of the old method
`until these are ‘flushed out’ by new data (or balanced out, depending upon the process for
`paging and aging internal data structures such as dictionaries). Thus adaptive compressors
`may continue to suffer the effects of bias, achieving suboptimal compression. On the other
`hand, by abruptly changing compression algorithms, our technique completely discards all
`remnants of the ‘previous’ method (i.e. the algorithm used on the preceding segment). This
`
` DELL INC., EMC CORP., HPE CO., HPES, LLC -
`DELL lNC., EMC CORP., HPE C0., HPES, LLC -
` Ex. 1026, p. 113 of 152
`Ex. 1026, p. 113 of 152
`
`
`
`AUTOMATIC SYNTHESIS OF COMPRESSION TECHNIQUES FOR HETEROGENEOUS FILES 1103
`
`allows us to immediately capitalize on changes in data. In addition, merging contiguous
`blocks of the same data type acquires the advantage of incurring all the overhead at once
`for switching to what will be_ the best compression method for an entire variable-length
`segment. The primary advantage of adaptive compression techniques over our technique is
`that the adaptive compression algorithms are ‘online’ (single~pass). This property increases
`compression speed and, more important, gives the ability to compress a data stream (for
`instance, incoming data packets in a network or modern transmission) in addition to files
`in secondary'storage or variable-length buffers.
`The remainder of this section presents the system. We begin with a description of the
`calculation of the block types and the redundancy metrics. We also explain the use of the
`metrics as absolute indicators of compressibility, and then describe the compression algo-
`rithms used and the structure of the database of algorithms. A discussion of implementation
`details concludes the section.
`
`Property analysis
`
`The compressibility of a block of data and the appropriate algorithm to do so are deter-
`mined by the type of data contained in a block and the type of redundancy (if any) in the
`data. These two properties are represented by four parameters: the block type, and the three
`redaadaricy metrics. The block type describes the data in the block — text, binary, graphical,
`etc. The three redundancy metrics are the degree of variation in character frequency, average
`run length in the file, and the string repetition ratio of the file. They provide a quantitative
`measure of how compressible the block is and which type of redundancy is most evident
`in the block. The use of both quantitative redundancy measures (redundancy metrics) and
`qualitative characteristics (block types) as indicators for data compressibility is advocated
`by Held? and Salton.” We have refined the process for computing those attributes referred
`to as daranalysis results by Held.’ and as statistical language characteristics by Salton” to
`obtain an actual guide for compression. The remainder of this section describes how these
`four parameters are determined for each block.
`
`Black types
`
`The block type describes the nature of a segment of input data. There are ten classifica-
`tions of data in this system: ANSI text, non-natural language text (hexadecimal