Ngày đăng: 11/05/2018, 18:05
Springer data compression the complete reference (springer 4th
Springer data compression the complete reference (springer 4th
Springer data compression the complete reference (springer 4th
Springer data compression the complete reference (springer 4th Springer data compression the complete reference (springer 4th
Springer data compression the complete reference (springer 4th Data Compression Fourth Edition David Salomon With Contributions by Giovanni Motta and David Bryant Data Compression The Complete Reference Fourth Edition Professor David Salomon (emeritus) Computer Science Department California State University Northridge, CA 91330-8281 USA Email: david.salomon@csun.edu British Library Cataloguing in Publication Data A catalogue record for this book is available from the British Library Library of Congress Control Number: 2006931789 ISBN-10: 1-84628-602-6 ISBN-13: 978-1-84628-602-5 e-ISBN-10: 1-84628-603-4 e-ISBN-13: 978-1-84628-603-2 Printed on acid-free paper © Springer-Verlag London Limited 2007 Apart from any fair dealing for the purposes of research or private study, or criticism or review, as permitted under the Copyright, Designs and Patents Act 1988, this publication may only be reproduced, stored or transmitted, in any form or by any means, with the prior permission in writing of the publishers, or in the case of reprographic reproduction in accordance with the terms of licences issued by the Copyright Licensing Agency Enquiries concerning reproduction outside those terms should be sent to the publishers The use of registered names, trademarks, etc in this publication does not imply, even in the absence of a specific statement, that such names are exempt from the relevant laws and regulations and therefore free for general use The publisher makes no representation, express or implied, with regard to the accuracy of the information contained in this book and cannot accept any legal responsibility or liability for any errors or omissions that may be made Springer Science+Business Media, LLC springer.com To Wayne Wheeler, an editor par excellence Write your own story Don’t let others write it for you Chinese fortune-cookie advice Preface to the Fourth Edition I was pleasantly surprised when in November 2005 a message arrived from Wayne Wheeler, the new computer science editor of Springer Verlag, notifying me that he intends to qualify this book as a Springer major reference work (MRW), thereby releasing past restrictions on page counts, freeing me from the constraint of having to compress my style, and making it possible to include important and interesting data compression methods that were either ignored or mentioned in passing in previous editions These fascicles will represent my best attempt to write a comprehensive account, but computer science has grown to the point where I cannot hope to be an authority on all the material covered in these books Therefore I’ll need feedback from readers in order to prepare the oﬃcial volumes later I try to learn certain areas of computer science exhaustively; then I try to digest that knowledge into a form that is accessible to people who don’t have time for such study —Donald E Knuth, http://www-cs-faculty.stanford.edu/~knuth/ (2006) Naturally, all the errors discovered by me and by readers in the third edition have been corrected Many thanks to all those who bothered to send error corrections, questions, and comments I also went over the entire book and made numerous additions, corrections, and improvements In addition, the following new topics have been included in this edition: Tunstall codes (Section 2.4) The advantage of variable-size codes is well known to readers of this book, but these codes also have a downside; they are diﬃcult to work with The encoder has to accumulate and append several such codes in a short buﬀer, wait until n bytes of the buﬀer are full of code bits (where n must be at least 1), write the n bytes on the output, shift the buﬀer n bytes, and keep track of the location of the last bit placed in the buﬀer The decoder has to go through the reverse process The idea of Tunstall codes is to construct a set of ﬁxed-size codes, each encoding a variable-size string of input symbols As an aside, the “pod” code (Table 7.29) is also a new addition viii Preface to the Fourth Edition Recursive range reduction (3R) (Section 1.7) is a simple coding algorithm due to Yann Guidon that oﬀers decent compression, is easy to program, and its performance is independent of the amount of data to be compressed LZARI, by Haruhiko Okumura (Section 3.4.1), is an improvement of LZSS RAR (Section 3.20) The popular RAR software is the creation of Eugene Roshal RAR has two compression modes, general and special The general mode employs an LZSS-based algorithm similar to ZIP Deﬂate The size of the sliding dictionary in RAR can be varied from 64 Kb to Mb (with a Mb default value) and the minimum match length is Literals, oﬀsets, and match lengths are compressed further by a Huﬀman coder An important feature of RAR is an error-control code that increases the reliability of RAR archives while being transmitted or stored 7-z and LZMA (Section 3.24) LZMA is the main (as well as the default) algorithm used in the popular 7z (or 7-Zip) compression software [7z 06] Both 7z and LZMA are the creations of Igor Pavlov The software runs on Windows and is free Both LZMA and 7z were designed to provide high compression, fast decompression, and low memory requirements for decompression Stephan Wolf made a contribution to Section 4.30.4 H.264 (Section 6.8) H.264 is an advanced video codec developed by the ISO and the ITU as a replacement for the existing video compression standards H.261, H.262, and H.263 H.264 has the main components of its predecessors, but they have been extended and improved The only new component in H.264 is a (wavelet based) ﬁlter, developed speciﬁcally to reduce artifacts caused by the fact that individual macroblocks are compressed separately Section 7.4 is devoted to the WAVE audio format WAVE (or simply Wave) is the native ﬁle format employed by the Windows opearting system for storing digital audio data FLAC (Section 7.10) FLAC (free lossless audio compression) is the brainchild of Josh Coalson who developed it in 1999 based on ideas from Shorten FLAC was especially designed for audio compression, and it also supports streaming and archival of audio data Coalson started the FLAC project on the well-known sourceforge Web site [sourceforge.ﬂac 06] by releasing his reference implementation Since then many developers have contributed to improving the reference implementation and writing alternative implementations The FLAC project, administered and coordinated by Josh Coalson, maintains the software and provides a reference codec and input plugins for several popular audio players WavPack (Section 7.11, written by David Bryant) WavPack [WavPack 06] is a completely open, multiplatform audio compression algorithm and software that supports three compression modes, lossless, high-quality lossy, and a unique hybrid compression mode It handles integer audio samples up to 32 bits wide and also 32-bit IEEE ﬂoatingpoint data [IEEE754 85] The input stream is partitioned by WavPack into blocks that can be either mono or stereo and are generally 0.5 seconds long (but the length is actually ﬂexible) Blocks may be combined in sequence by the encoder to handle multichannel audio streams All audio sampling rates are supported by WavPack in all its modes Preface to the Fourth Edition ix Monkey’s audio (Section 7.12) Monkey’s audio is a fast, eﬃcient, free, lossless audio compression algorithm and implementation that oﬀers error detection, tagging, and external support MPEG-4 ALS (Section 7.13) MPEG-4 Audio Lossless Coding (ALS) is the latest addition to the family of MPEG-4 audio codecs ALS can input ﬂoating-point audio samples and is based on a combination of linear prediction (both short-term and longterm), multichannel coding, and eﬃcient encoding of audio residues by means of Rice codes and block codes (the latter are also known as block Gilbert-Moore codes, or BGMC [Gilbert and Moore 59] and [Reznik 04]) Because of this organization, ALS is not restricted to the encoding of audio signals and can eﬃciently and losslessly compress other types of ﬁxed-size, correlated signals, such as medical (ECG and EEG) and seismic data AAC (Section 7.15) AAC (advanced audio coding) is an extension of the three layers of MPEG-1 and MPEG-2, which is why it is often called mp4 It started as part of the MPEG-2 project and was later augmented and extended as part of MPEG-4 Apple Computer has adopted AAC in 2003 for use in its well-known iPod, which is why many believe (wrongly) that the acronym AAC stands for apple audio coder Dolby AC-3 (Section 7.16) AC-3, also known as Dolby Digital, stands for Dolby’s third-generation audio coder AC-3 is a perceptual audio codec based on the same principles as the three MPEG-1/2 layers and AAC The new section included in this edition concentrates on the special features of AC-3 and what distinguishes it from other perceptual codecs Portable Document Format (PDF, Section 8.13) PDF is a popular standard for creating, editing, and printing documents that are independent of any computing platform Such a document may include text and images (graphics and photos), and its components are compressed by well-known compression algorithms Section 8.14 (written by Giovanni Motta) covers a little-known but important aspect of data compression, namely how to compress the diﬀerences between two ﬁles Hyperspectral data compression (Section 8.15, partly written by Giovanni Motta) is a relatively new and growing ﬁeld Hyperspectral data is a set of data items (called pixels) arranged in rows and columns where each pixel is a vector A home digital camera focuses visible light on a sensor to create an image In contrast, a camera mounted on a spy satellite (or a satellite searching for minerals and other resources) collects and measures radiation of many wavelegths The intensity of each wavelength is converted into a number, and the numbers collected from one point on the ground form a vector that becomes a pixel of the hyperspectral data Another pleasant change is the great help I received from Giovanni Motta, David Bryant, and Cosmin Trut¸a Each proposed topics for this edition, went over some of the new material, and came up with constructive criticism In addition, David wrote Section 7.11 and Giovanni wrote Section 8.14 and part of Section 8.15 I would like to thank the following individuals for information about certain topics and for clearing up certain points Igor Pavlov for help with 7z and LZMA, Stephan Wolf for his contribution, Matt Ashland for help with Monkey’s audio, Yann Guidon x Preface to the Fourth Edition for his help with recursive range reduction (3R), Josh Coalson for help with FLAC, and Eugene Roshal for help with RAR In the ﬁrst volume of this biography I expressed my gratitude to those individuals and corporate bodies without whose aid or encouragement it would not have been undertaken at all; and to those others whose help in one way or another advanced its progress With the completion of this volume my obligations are further extended I should like to express or repeat my thanks to the following for the help that they have given and the premissions they have granted Christabel Lady Aberconway; Lord Annan; Dr Igor Anrep; —Quentin Bell, Virginia Woolf: A Biography (1972) Currently, the book’s Web site is part of the author’s Web site, which is located at http://www.ecs.csun.edu/~dsalomon/ Domain DavidSalomon.name has been reserved and will always point to any future location of the Web site The author’s email address is dsalomon@csun.edu, but email sent to anyname @DavidSalomon.name will be forwarded to the author Those interested in data compression in general should consult the short section titled “Joining the Data Compression Community,” at the end of the book, as well as the following resources: http://compression.ca/, http://www-isl.stanford.edu/~gray/iii.html, http://www.hn.is.uec.ac.jp/~arimura/compression_links.html, and http://datacompression.info/ (URLs are notoriously short lived, so search the Internet) People err who think my art comes easily to me —Wolfgang Amadeus Mozart Lakeside, California David Salomon Preface to the Third Edition I was pleasantly surprised when in December 2002 a message arrived from the editor asking me to produce the third edition of the book and proposing a deadline of late April 2003 I was hoping for a third edition mainly because the ﬁeld of data compression has made great strides since the publication of the second edition, but also for the following reasons: Reason 1: The many favorable readers’ comments, of which the following are typical examples: First I want to thank you for writing “Data Compression: The Complete Reference.” It is a wonderful book and I use it as a primary reference I wish to add something to the errata list of the 2nd edition, and, if I am allowed, I would like to make a few comments and suggestions —Cosmin Trut¸a, 2002 sir, i am ismail from india i am an computer science engineer i did project in data compression on that i open the text ﬁle get the keyword (symbols,alphabets,numbers once contained word) Then sorted the keyword by each characters occurrences in the text ﬁle Then store the keyword in a ﬁle then following the keyword store the 000 indicator.Then the original text ﬁle is read take the ﬁrst character of the ﬁle.get the positional value of the character in the keyword then store the position in binary if that binary contains single digit, the triple bit 000 is assigned the binary two digit, the triple bit 001 is assigned so for 256 ascii need max of digit binary.plus triple bit so max needed for the 256th char in keyword is 11 bits but need for the ﬁrst char in keyworkd is one bit+three bit , four bit so writing continuously o’s and 1’s in a ﬁle and then took the by bits and convert to equal ascii character and store in the ﬁle thus storing keyword + indicator + converted ascii char can give the compressed ﬁle Index adaptive, 8, 38, 89–95, 223, 229, 459, 1041, 1054 and video compression, 669 word-based, 886–887 and Deﬂate, 230 and FABD, 454 and move-to-front, 38 and MPEG, 682 and reliability, 101 and sound, 732 and sparse strings, 876, 878 and wavelets, 551, 559 canonical, 84–88, 235 code size, 79–81 for images, 78 in image compression, 443 in JPEG, 338, 345, 639 in LZP, 220 in WSQ, 634 not unique, 74 number of codes, 81–82 semiadaptive, 89 ternary, 82 2-symbol alphabet, 77 unique tree, 235 variance, 75 Huﬀman, David A (1925–1999), 74 human hearing, 541, 727–732 human visual system, 279, 409, 410 human voice (range of), 727 Humpty Dumpty, see Dumpty, Humpty hybrid speech codecs, 752, 756–757 hyperspectral data, 941, 1052 hyperspectral data compression, 852, 941–952 hyperthreading, 242 ICE, 229 IDCT, see inverse discrete cosine transform IEC, 102, 676 IFS compression, 513–528, 1052 PIFS, 523 IGS, see improved grayscale quantization IIID, see memoryless source IMA, see interactive multimedia association IMA ADPCM compression, 448, 743–744 image, 263 atypical, 404 1079 bi-level, 77, 264, 281, 366, 369, 547, 1042, 1050–1052 bitplane, 1042 cartoon-like, 264, 513 continuous-tone, 264, 333, 454, 547, 596, 1046, 1053 deﬁnition of, 263 discrete-tone, 264, 333, 334, 450, 454, 513, 547, 1043, 1048 graphical, 264 grayscale, 264, 271, 281, 1050, 1053, 1056, 1058 interlaced, 30 reconstruction, 540 resolution of, 263 simple, 389–390, 1061 synthetic, 264 types of, 263–264 image compression, 7, 8, 23, 32, 263–530 bi-level, 369 bi-level (extended to grayscale), 273, 369, 449 dictionary-based methods, 267 diﬀerential, 1047 error metrics, 279–283 IFS, xvii intuitive methods, xvi, 283–284 lossy, 265 principle of, 28, 268, 270–274, 403, 412, 461, 485 and RGC, 273 progressive, 273, 360–368, 1059 growth geometry coding, 366–368 median, 365 reasons for, 265 RLE, 266 self-similarity, 273, 1050, 1064 statistical methods, 266–267 subsampling, xvi, 283 vector quantization, xvi adaptive, xvi image frequencies, 289 image transforms, xvi, 284–333, 487, 554–559, 1062 image wavelet decompositions, 589–596 images (standard), 333–336 improper rotations, 316 improved grayscale quantization (IGS), 266 inequality (Kraft-MacMillan), 71–72, 1054 1080 Index and Huﬀman codes, 76 information theory, 47–53, 174, 1052 integer wavelet transform (IWT), 608–610 Interactive Multimedia Association (IMA), 743 interlacing scan lines, 30, 663 International Committee on Illumination, see CIE interpolating polynomials, xiii, xvii, 423, 429–435, 604–608, 612, 1052 degree-5, 605 Lagrange, 759 interval inversion (in QM-coder), 133–134 intuitive compression, 17 intuitive methods for image compression, xvi, 283–284 inverse discrete cosine transform, 298–330, 343–344, 984 in MPEG, 681–696 mismatch, 681, 696 modiﬁed, 800 inverse discrete sine transform, 330–333 inverse modiﬁed DCT, 800 inverse Walsh-Hadamard transform, 293–294 inverted ﬁle, 874 irrelevancy (and lossy compression), 265 irreversible text compression, 18 Ismael, G Mohamed, xii, 174 ISO, 102, 337, 676, 1052, 1053, 1057 JBIG2, 378 recommendation CD 14495, 354, 1053 standard 15444, JPEG2000, 642 iterated function systems, 513–528, 1052 ITU, 102, 1044, 1049, 1052 ITU-R, 341 recommendation BT.601, 341, 660 ITU-T, 104, 369 and fax training documents, 104, 333, 404 and MPEG, 676, 1057 JBIG2, 378 recommendation H.261, 703–704, 1051 recommendation H.264, 706, 1051 recommendation T.4, 104, 108 recommendation T.6, 104, 108, 1049 recommendation T.82, 369 V.42bis, 228, 1063 IWT, see integer wavelet transform JBIG, xvi, 369–378, 630, 1052, 1059 and EIDAC, 389 and FABD, 450 probability model, 370 JBIG2, xvi, 129, 378–388, 929, 1052 and DjVu, 631, 1048 JFIF, 351–354, 1053 joining the DC community, 1019, 1067 Joyce, James Aloysius Augustine (1882–1941), 15, 19 JPEG, xvi, 32, 129, 137, 266, 288, 292, 337–351, 354, 389, 449, 630, 682, 683, 948, 1043, 1052, 1053, 1059 and DjVu, 631 and progressive image compression, 361 and sparse strings, 874 and WSQ, 639 blocking artifacts, 338, 639 compared to H.264, 718 lossless mode, 350–351 similar to MPEG, 678 JPEG 2000, xiii, xv–xvii, 129, 341, 532, 639–652, 929 JPEG-LS, xvi, 351, 354–360, 642, 945, 1053 Jung, Robert K., 229, 1042 Karhunen-Lo`eve transform, xvi, 292, 295–297, 329, 557, see also Hotelling transform Kari, Jarkko, 497 Katz, Philip W (1962–2000), 229, 230, 238, 241, 1058 King, Stephen Edwin (writer, 1947–), 928 Klaasen, Donna, 865 KLT, see Karhunen-Lo`eve transform Knowlton, Kenneth (1931–), 464 Knuth, Donald Ervin (1938–), vii, (Colophon) Kolmogorov-Chaitin complexity, 52 Kraft-MacMillan inequality, 71–72, 1054 and Huﬀman codes, 76 Kronecker delta function, 326 Kronecker, Leopold (1823–1891), 326 KT boundary (and dinosaur extinction), 163 KT probability estimate, 163, 1054 L Systems, 906 Hilbert curve, 486 Index La Disparition (novel), 142 Lagrange interpolation, 759, 770 Lanchester, John (1962–), xiv Lang, Andrew (1844–1912), 86 Langdon, Glen G., 259, 412 Laplace distribution, 271, 422, 424–429, 438, 449, 760, 761, 1054, 1056, 1058 in audio MLP, 749 in FLAC, 767 in image MLP, 422 of diﬀerences, 726–727 Laplacian pyramid, xv, 532, 590, 610–613, 1054 Lau, Daniel Leo, 496 lazy wavelet transform, 599 LBG algorithm for vector quantization, 392–398, 487, 952 Lempel, Abraham (1936–), 43, 173, 1055 LZ78 patent, 258 Lempereur, Yves, 34, 1042 Lena (image), 285, 333–334, 380, 563, 1003 blurred, 1005 Les Revenentes (novelette), 142 Levinson, Norman (1912–1975), 772 Levinson-Durbin algorithm, 767, 772, 787, (Colophon) lexicographic order, 179, 854 LHA, 229, 1054 LHArc, 229, 1054 Liebchen, Tilman, 785 LIFO, 208 lifting scheme, 596–608, 1054 light, 539 visible, 342 Ligtenberg, Adriaan (1955–), 321 line (as a space-ﬁlling curve), 995 line (wavelet image decomposition), 590 linear prediction 4th order, 770 ADPCM, 742 ALS, 785–787 FLAC, 766 MLP audio, 749 shorten, 757 linear predictive coding (LPC), ix, 766, 771–772, 784, 1042 hyperspectral data, 945–947 linear systems, 1046 lipogram, 141 1081 list (data structure), 1047 little endian (byte order), 242 in Wave format, 734 LLM DCT algorithm, 321–322 lockstep, 89, 130, 203 LOCO-I (predecessor of JPEG-LS), 354 Loeﬄer, Christoph, 321 logarithm as the information function, 49 used in metrics, 11, 281 logarithmic tree (in wavelet decomposition), 569 logical compression, 10, 171 lossless compression, 8, 19, 1055 lossy compression, 8, 1055 LPC, see linear predictive coding LPC (speech compression), 753–756 luminance component of color, 270, 272, 337, 338, 341–344, 347, 559, 677 use in PSNR, 281 LZ1, see LZ77 LZ2, see LZ78 LZ77, xvi, 173, 176–179, 195, 199, 403, 862, 864, 865, 910, 1043, 1047, 1051, 1055, 1056, 1061, 1065 and Deﬂate, 230 and LZRW4, 198 and repetition times, 184 deﬁciencies, 182 LZ78, 173, 182, 189–192, 199, 865, 1055, 1056 patented, 258 LZAP, 212, 1055 LZARI, viii, 181–182, 1055 LZC, 196, 224 LZEXE, 253, 1049 LZFG, 56, 192–194, 196, 1055 patented, 194, 258 LZH, 176 LZMA, viii, ix, 129, 241–246, 1056 LZMW, 209–210, 1056 LZP, 214–221, 261, 405, 859, 1056 LZRW1, 195–198 LZRW4, 198, 244 LZSS, viii, 179–182, 229, 1054–1056 used in RAR, viii, 227 LZW, 199–209, 794, 1015, 1055, 1056, 1063 decoding, 200–203 1082 Index patented, 199, 256–258, 1058 UNIX, 224 word-based, 887 LZX, xii, 187–188, 1056 LZY, 213–214, 1056 m4a, see advanced audio coding m4v, see advanced audio coding Mackay, Alan Lindsay (1926–), MacWrite (data compression in), 21 Mahler’s third symphony, 821 Mallat, Stephane (and multiresolution decomposition), 589 Malvar, Henrique (Rico), 706 Manber, Udi, 937 mandril (image), 333, 596 Manfred, Eigen (1927–), 114 Marcellin, Michael W (1959–), 1067 Markov model, xvii, 32, 100, 139, 273, 370, 905, 988, 1016 Marx, Julius Henry (Groucho, 1890–1977), 718 masked Lempel-Ziv tool (a variant of LZW), 794, 795 Matisse, Henri (1869–1954), 930 Matlab software, properties of, 285, 563 matrices eigenvalues, 297 QR decomposition, 316, 324–325 sequency of, 293 Matsumoto, Teddy, 253 Maugham, William Somerset (1874–1965), 527 MDCT, see discrete cosine transform, modiﬁed mean absolute diﬀerence, 487, 668 mean absolute error, 668 mean square diﬀerence, 669 mean square error (MSE), 11, 279, 615 measures of compression eﬃciency, 10–11 measures of distortion, 391–392 median, deﬁnition of, 365 memoryless source, 42, 162, 164, 166, 167 deﬁnition of, meridian lossless packing, see MLP (audio) mesh compression, edgebreaker, xvii, 852, 911–922 metric, deﬁnition of, 524 Mexican hat wavelet, 543, 545, 547, 548 Meyer, Carl D., 325 Meyer, Yves (and multiresolution decomposition), 589 Microcom, Inc., 26, 95, 1056 midriser quantization, 740 midtread quantization, 739 in MPEG audio, 806 Millan, Emilio, xx mirroring, see lockstep MLP, 271, 414, 422–435, 438, 439, 727, 1054, 1056, 1058 MLP (audio), xiii, 11, 422, 744–750, 1056 MMR coding, 108, 378, 381, 382, 384 in JBIG2, 379 MNG, see multiple-image network format MNP class 5, 26, 95–100, 1056 MNP class 7, 100–101, 1056 model adaptive, 141, 364 context-based, 140 ﬁnite-state machine, 895 in MLP, 429 Markov, xvii, 32, 100, 139, 273, 370, 905, 988, 1016 of DMC, 896, 899 of JBIG, 370 of MLP, 424 of PPM, 127 of probability, 114, 139 order-N , 142 probability, 125, 165, 369, 370 static, 140 zero-probability problem, 140 modem, 6, 26, 50, 90, 95, 104, 228, 229, 1056, 1063 Moﬀat, Alistair, 412 Moln´ ar, L´ aszl´ o, 254 Monk, Ian, 142 monkey’s audio, ix, 783, 1057 monochromatic image, see bi-level image Montesquieu, (Charles de Secondat, 1689–1755), 927 Morlet wavelet, 543, 548 Morse code, 17, 47 Morse, Samuel Finley Breese (1791–1872), 1, 47 Moschytz, George S (LLM method), 321 Motil, John Michael (1938–), 81 Index motion compensation (in video compression), 666–676 motion vectors (in video compression), 667, 709 Motta, Giovanni (1965–), ix, xiii, 852, 930, 941, 951, 1055 move-to-front method, 8, 37–40, 853, 855, 1043, 1055, 1057 and wavelets, 551, 559 inverse of, 857 Mozart, Joannes Chrysostomus Wolfgangus Theophilus (1756–1791), x mp3, 795–820 and Tom’s Diner, 846 compared to AAC, 826–827 mother of, see Vega, Susan mp3 audio ﬁles, xvi, 796, 820, 1011 and shorten, 757 mp4, see advanced audio coding MPEG, xvi, 341, 656, 670, 1052, 1057 D picture, 688 DCT in, 679–687 IDCT in, 681–696 quantization in, 680–687 similar to JPEG, 678 MPEG-1 audio, xvi, 10, 292, 795–820, 822 MPEG-1 video, 676–698 MPEG-2 audio, ix, 821–847 MPEG-3, 822 MPEG-4, 698–703, 822 AAC, 841–844 audio codecs, 842 audio lossless coding (ALS), ix, 784–795, 842, 1042 extensions to AAC, 841–844 MPEG-7, 822 MQ coder, 129, 379, 641, 642, 647 MSE, see mean square error MSZIP (deﬂate), 187 μ-law companding, 737–742, 752 multiple-image network format (MNG), 250 multiresolution decomposition, 589, 1057 multiresolution image, 500, 1057 multiresolution tree (in wavelet decomposition), 569 multiring chain coding, 903 Murray, James, 46 musical notation, 541 musical notations, 379 1083 Musset, Alfred de (1810–1857), xxv Muth, Robert, 937 N -trees, 471–476 nanometer (deﬁnition of), 341 negate and exchange rule, 516 Nelson, Mark, 14 Newton, Isaac (1643–1727), 124 nonadaptive compression, nondiﬀerentiable functions, 588 nonstandard (wavelet image decomposition), 592 normal distribution, 468, 1050, 1057 NSCT (never the same color twice), 662 NTSC (television standard), 655, 656, 661, 689, 847 numerical history (mists of), 435 Nyquist rate, 541, 585, 724 Nyquist, Harry (1889–1976), 541 Nyquist-Shannon sampling theorem, 724 Oberhumer, Markus Franz Xaver Johannes, 254 OCR (optical character recognition), 889 octasection, xvii, 485, 1059 octave, 570 in wavelet analysis, 570, 592 octree (in preﬁx compression), 883 octrees, 471 odd functions, 330 Ogg Squish, 762 Ohm’s law, 722 Okumura, Haruhiko (LZARI), viii, xx, 181, 229, 1054, 1055 optimal compression method, 10, 184 orthogonal projection, 447 transform, 284, 554–559 orthogonal ﬁlters, 568 orthonormal matrix, 285, 288, 307, 309, 312, 566, 578 packing, 19 PAL (television standard), 655, 656, 659, 689, 847 Pandit, Vinayaka D., 508 parametric cubic polynomial (PC), 431 parcor (in MPEG-4 ALS), 787 1084 Index parity, 254 of functions, 330 vertical, 255 parrots (image), 275 parsimony (principle of), 22 partial correlation coeﬃcients, see parcor Pascal, Blaise (1623–1662), 2, 63, 169 patents of algorithms, xvi, 241, 256–258, 1058 pattern substitution, 27 Pavlov, Igor (7z and LZMA creator), viii, ix, 241, 246, 1041, 1056 PDF, see portable document format PDF (Adobe’s portable document format) and DjVu, 631 peak signal to noise ratio (PSNR), 11, 279–283 Peano curve, 491 traversing, 496–497 used by mistake, 487 pel, see also pixels aspect ratio, 656, 689 diﬀerence classiﬁcation (PDC), 669 fax compression, 104, 263 peppers (image), 333 perceptive compression, Percival, Colin (BSDiﬀ creator), 939–941, 1043 Perec, Georges (1936–1982), 142 permutation, 853 petri dish, 1064 phased-in binary codes, 59, 90, 224 Phong shading (for polygonal surfaces), 911 phrase, 1058 in LZW, 199 physical compression, 10 physical entropy, 53 Picasso, Pablo Ruiz (1881–1973), 315 PIFS (IFS compression), 523 pixels, 28, 369, see also pel background, 369, 375, 1042 correlated, 284 decorrelated, 269, 272, 284, 292, 297, 331 deﬁnition of, 263, 1058 foreground, 369, 375, 1042 highly correlated, 268 PKArc, 229, 1058 PKlite, 229, 253, 1058 PKunzip, 229, 1058 PKWare, 229, 1058 PKzip, 229, 1058 Planck constant, 539 plosive sounds, 751 plotting (of functions), 578–580 PNG, see portable network graphics pod code, vii, 761 Poe, Edgar Allan (1809–1849), points (cross correlation of), 285 Poisson distribution, 149 polygonal surfaces compression, edgebreaker, xvii, 852, 911–922 polynomial bicubic, 434 deﬁnition of, 256, 430 parametric cubic, 431 parametric representation, 430 polynomials (interpolating), xiii, xvii, 423, 429–435, 604–608, 612, 1052 degree-5, 605 Porta, Giambattista della (1535–1615), portable document format (PDF), ix, 852, 928–930, 1058 portable network graphics (PNG), xii, 246–251, 257, 1058 PostScript (and LZW patent), 257 Poutanen, Tomi (LZX), 187 Powell, Anthony Dymoke (1905–2000), 15, 551 PPM, xii, 43, 139–159, 438, 858, 867, 892, 900, 910, 1058 exclusion, 148–149 trie, 150 vine pointers, 152 word-based, 887–889 PPM (fast), xii, 159–161 PPM*, xii, 155–157 PPMA, 149 PPMB, 149, 439 PPMC, 146, 149 PPMD (in RAR), 227 PPMdH (by Dmitry Shkarin), 241 PPMP, xii, 149 PPMX, xii, 149 PPMZ, xii, 157–159 PPPM, 438–439, 1058 prediction, 1058 nth order, 446, 758, 759, 785 Index AAC, 840–841 ADPCM, 742–744 BTPC, 456, 458, 459 CALIC, 440 CELP, 757 deﬁnition of, 140 deterministic, 369, 377 FELICS, 988 image compression, 271 JPEG-LS, 339, 350, 354, 356 long-term, 792 LZP, 214 LZRW4, 198 MLP, 422–424 MLP audio, 748 monkey’s audio, 783 Paeth, 250 PNG, 246, 248 PPM, 145 PPM*, 155 PPMZ, 157 PPPM, 438 probability, 139 progressive, 790 video, 665, 670 preechoes in AAC, 839 in MPEG audio, 815–820 preﬁx codes, 34, 55–60, 184, 223, 270, 271, 409 and video compression, 669 preﬁx compression images, xvii, 477–478, 1058 sparse strings, xvii, 880–884 preﬁx property, 101, 416, 1058, 1063 deﬁnition of, 55 probability concepts, xiii, xvii conditional, 1045 geometric distribution, 63 model, 12, 114, 125, 139, 165, 364, 369, 370, 1057 adaptive, 141 Prodigy (and LZW patent), 257 progressive compression, 369, 372–378 progressive FELICS, 417–422, 1059 progressive image compression, 273, 360–368, 1059 growth geometry coding, 366–368 1085 lossy option, 361, 422 median, 365 MLP, 271 SNR, 361, 651 progressive prediction, 790 properties of speech, 750–752 Proust, Marcel Valentin Louis George Eugene (1871–1922), 1054, (Colophon) Prowse, David (Darth Vader, 1935–), 90 PSNR, see peak signal to noise ratio psychoacoustic model (in MPEG audio), 795, 797–798, 803, 805, 809, 813–815, 820, 1011, 1059 psychoacoustics, 9, 727–732 pulse code modulation (PCM), 726 punting (deﬁnition of), 450 pyramid (Laplacian), xv, 532, 590, 610–613 pyramid (wavelet image decomposition), 554, 592 pyramid coding (in progressive compression), 361, 454, 457, 459, 590, 610–613 QIC, 103 QIC-122, 184–186, 1059 QM coder, xvi, 129–137, 161, 338, 350, 1059 QMF, see quadrature mirror ﬁlters QR matrix decomposition, 316, 324–325 QTCQ, see quadtree classiﬁed trellis coded quantized quadrant numbering (in a quadtree), 461, 498 quadrature mirror ﬁlters, 578 quadrisection, xvii, 478–485, 1059 quadtree classiﬁed trellis coded quantized wavelet image compression (QTCQ), 624–625 quadtrees, xiii, xvii, 270, 397, 461–478, 485, 498, 1042, 1050, 1058, 1059, 1064 and Hilbert curves, 486 and IFS, 525 and quadrisection, 478, 480 preﬁx compression, xvii, 477–478, 880, 1058 quadrant numbering, 461, 498 spatial orientation trees, 625 quantization 1086 Index block truncation coding, xvi, 406–411, 1043 deﬁnition of, 41 image transform, 272, 284, 1062 in H.261, 704 in JPEG, 344–345 in MPEG, 680–687 midriser, 740 midtread, 739, 806 scalar, xvi, 41–43, 266, 283, 634, 1060 in SPIHT, 617 vector, xvi, 283–284, 361, 390–397, 513, 1063 adaptive, xvi, 398–402 quantization noise, 445 Quantum (dictionary-based encoder), 187 quaternary (base-4 numbering), 462, 1059 Quayle, James Danforth (Dan, 1947–), 664 queue (data structure), 178–179, 1044, 1047 quincunx (wavelet image decomposition), 592 random data, 5, 6, 77, 228, 959, 1063 range encoding, 127–129, 783 in LZMA, 243 Rao, Ashok, 508 RAR, viii, 226–228, 1059 Rarissimo, 228, 1060 raster (origin of word), 655 raster order scan, 33, 270, 272, 284, 360, 403, 417, 423, 438, 440, 450, 451, 672, 679, 691 rate-distortion theory, 174 ratio of compression, 10, 1045 reasons for data compression, recursive range reduction (3R), viii, x, 43–46, 1060 redundancy, 54, 73, 102 alphabetic, and data compression, 2, 226, 265, 897 and reliability, 102 contextual, deﬁnition of, 51, 979 direction of highest, 592 spatial, 268, 664, 1064 temporal, 664, 1064 Reed-Solomon error-correcting code, 226 reﬂected Gray code, xvi, 271, 273–279, 369, 449, 496, 1050 Hilbert curve, 486 reﬂection, 515 reﬂection coeﬃcients, see parcor refresh rate (of movies and TV), 654–656, 663, 677, 690 relative encoding, 27, 208, 444, 666, 1048, 1060 in JPEG, 339 reliability, 101–102 and Huﬀman codes, 101 as the opposite of compression, 17 in RAR, 226 renormalization (in the QM-coder), 131–137, 969 repetition ﬁnder, 221–224 repetition times, 182–184 resolution of HDTV, 661–664 of images (deﬁned), 263 of television, 655–658 of the eye, 342 Reynolds, Paul, 173 RGB color space, 341 reasons for using, 342 RGC, see reﬂected Gray code Ribera, Francisco Navarrete y (1600–?), 142 Rice codes, 44, 59, 418, 1042, 1050, 1060, 1061 deﬁnition of, 66 fast PPM, 161 FLAC, 763, 767 in hyperspectral data, 947 not used in WavPack, 777 Shorten, 760 subexponential code, 418 Rice, Robert F (Rice codes developer), 66, 760 Richardson, Iain, 706 Richter, Jason James (1980–), 850 Riding the Bullet (novel), 928 RIFF (Resource Interchange File Format), 734 Rijndael, see advanced encryption standard Rizzo, Francesco, 951, 1055 RLE, 23–46, 105, 270, 271, 1060, see also run-length encoding and BW method, 853, 855, 1043 Index and sound, 732 and wavelets, 551, 559 BinHex4, 34–36 BMP image ﬁles, xii, 36–37, 1043 image compression, 28–32 in JPEG, 338 QIC-122, 184–186, 1059 RMSE, see root mean square error Robinson, John Allen, xx rods (in the retina), 342 Roman numerals, 532 root mean square error (RMSE), 281 Roshal, Alexander Lazarevitch, 226 Roshal, Eugene Lazarevitch (1972–), viii, x, 226, 227, 1059 rotation, 515 90◦ , 516 matrix of, 312, 317 rotations Givens, 316–325 improper, 316 in three dimensions, 329–330 roulette game (and geometric distribution), 63 run-length encoding, 7, 23–46, 77, 266, 1056 and EOB, 345 and Golomb codes, 63–70, see also RLE BTC, 409 FLAC, 766 in images, 271 MNP5, 95 Ryan, Abram Joseph (1839–1886), 552, 559, 566 Sagan, Carl Edward (1934–1996), 41, 658 sampling of sound, 724–727 Samuelson, Paul Anthony (1915–), 146 Saravanan, Vijayakumaran, xx, 320, 984 Sayood, Khalid, 442 SBC (speech compression), 753 scalar quantization, xvi, 41–43, 266, 283, 1060 in SPIHT, 617 in WSQ, 634 scaling, 515 Scott, Charles Prestwich (1846–1932), 676 SCSU (Unicode compression), xiii, 852, 922–927, 1060 SECAM (television standard), 655, 660, 689 1087 self-similarity in images, 273, 497, 504, 1050, 1064 semiadaptive compression, 8, 89, 1060 semiadaptive Huﬀman coding, 89 semistructured text, xvii, 852, 910–911, 1060 sequency (deﬁnition of), 293 sequitur, xvii, 26, 852, 906–911, 1046, 1060 and dictionary-based methods, 910 set partitioning in hierarchical trees (SPIHT), xv, 532, 614–625, 1049, 1061 and CREW, 626 seven deadly sins, 823 SHA-256 hash algorithm, 242 shadow mask, 656, 657 Shanahan, Murray, 161 Shannon, Claude Elwood (1916–2001), 51, 72, 858, 1049, 1052 Shannon-Fano method, 47, 55, 72–74, 1051, 1061 shearing, 515 shift invariance, 1046 Shkarin, Dmitry, 227, 241 shorten (speech compression), xiii, 66, 757–763, 767, 945, 1050, 1061 sibling property, 91 Sierpi´ nski curve, 485, 490–491 gasket, 518–522, 998, 1000 triangle, 518, 519, 521, 998 Sierpi´ nski, Waclaw (1882–1969), 485, 490, 518, 521 sign-magnitude (representation of integers), 648 signal to noise ratio (SNR), 282 signal to quantization noise ratio (SQNR), 282 silence compression, 732 simple images, EIDAC, xvi, 389–390, 1061 sins (seven deadly), 823 skewed probabilities, 116 sliding window compression, xvi, 176–182, 403, 910, 1043, 1061 repetition times, 182–184 small numbers (easy to compress), 38, 346, 350, 365, 444, 449, 454, 455, 551, 856, 1015 SNR, see signal to noise ratio 1088 Index SNR progressive image compression, 361, 640, 651 Soderberg, Lena (of image fame, 1951–), 334 solid archive, see RAR sort-based context similarity, xvii, 851, 868–873 sound fricative, 751 plosive, 751 properties of, 720–723 sampling, 724–727 unvoiced, 751 voiced, 750 source coding (formal name of data compression), source speech codecs, 752–756 SourceForge.net, 762 SP theory (simplicity and power), space-ﬁlling curves, xix, 270, 485–497, 1061 Hilbert, 487–490 Peano, 491 Sierpi´ nski, 490–491 sparse strings, 19, 68, 851, 874–884, 1061 preﬁx compression, xvii, 880–884 sparseness ratio, 11, 560 spatial orientation trees, 619–620, 625, 626 spatial redundancy, 268, 664, 1064 in hyperspectral data, 943 spectral dimension (in hyperspectral data), 943 spectral selection (in JPEG), 339 speech (properties of), 750–752 speech compression, 585, 720, 750–762 μ-law, 752 A-law, 752 AbS, 756 ADPCM, 752 ATC, 753 CELP, 756 CS-CELP, 757 DPCM, 752 hybrid codecs, 752, 756–757 LPC, 753–756 SBC, 753 shorten, xiii, 66, 757–763, 1050, 1061 source codecs, 752–756 vocoders, 752, 753 waveform codecs, 752–753 Sperry Corporation LZ78 patent, 258 LZW patent, 256 SPIHT, see set partitioning in hierarchical trees SQNR, see signal to quantization noise ratio square integrable functions, 543 Squish, 762 stack (data structure), 208, 1047 Staﬀord, David (quantum dictionary compression), 187 standard (wavelet image decomposition), 554, 590, 593 standard test images, 333–336 standards (organizations for), 102–103 standards of television, 559, 655–660, 847 start-step-stop codes, 56 static dictionary, 171, 172, 191, 224 statistical distributions, see distributions statistical methods, 7, 47–169, 172, 266–267, 1061 context modeling, 140 uniﬁcation with dictionary methods, 259–261 statistical model, 115, 139, 171, 369, 370, 1057 steganography (data hiding), 184 stone-age binary (unary code), 55 Storer, James Andrew, 179, 951, 1019, 1055, 1056, 1067 streaming mode, 10, 853 string compression, 173–174, 1061 subband (minimum size of), 589 subband transform, 284, 554–559, 566 subexponential code, 59, 418–421, 760 subsampling, xvi, 283, 1062 in video compression, 665 successive approximation (in JPEG), 339 support (of a function), 550 surprise (as an information measure), 48, 53 Swift, Jonathan (1667–1745), xx SWT, see symmetric discrete wavelet transform symbol ranking, xvii, 139, 851, 858–861, 867, 868, 1062 symmetric (wavelet image decomposition), 589, 635 symmetric compression, 9, 172, 185, 339, 634 Index symmetric context (of a pixel), 414, 423, 439, 441, 647 symmetric discrete wavelet transform, 634 synthetic image, 264 Szymanski, Thomas G., 179, 1056 T/F codec, see time/frequency (T/F) codec taps (wavelet ﬁlter coeﬃcients), 571, 584, 585, 589, 626, 635, 1062 TAR (Unix tape archive), 1062 television aspect ratio of, 655–658 resolution of, 655–658 scan line interlacing, 663 standards used in, 559, 655–660 temporal masking, 730–731, 798 temporal redundancy, 664, 1064 tera (= 240 ), 633 text case ﬂattening, 19 English, 2, 3, 13, 172 ﬁles, natural language, 101 random, 5, 77, 959 semistructured, xvii, 852, 910–911, 1060 text compression, 7, 13, 23 LZ, 173, 1055 QIC-122, 184–186, 1059 RLE, 23–27 symbol ranking, 858–861, 868 textual image compression, 851, 888–895, 1062 textual substitution, 398 Thomson, William (Lord Kelvin 1824–1907), 541 TIFF and JGIB2, 1053 and LZW patent, 257 time/frequency (T/F) codec, 824, 1041, 1062 title of this book, 15 Tjalkins, Tjalling J., xx Toeplitz, Otto (1881–1940), 772 token (deﬁnition of), 1062 tokens dictionary methods, 171 in block matching, 403, 406 in LZ77, 176, 177, 230 in LZ78, 189, 190 1089 in LZFG, 192, 193 in LZSS, 179, 181 in LZW, 199 in MNP5, 96, 97 in preﬁx compression, 477, 478 in QIC-122, 184 training (in data compression), 32, 104, 105, 141, 333, 391–393, 398, 404, 440, 442, 487, 682, 868, 905 transforms, AC coeﬃcient, 288, 298, 301 DC coeﬃcient, 288, 298, 301, 302, 330, 339, 345–347, 350 deﬁnition of, 532 discrete cosine, xvi, 292, 298–330, 338, 343–344, 557, 709, 714, 815, 1047 3D, 298, 947–949 discrete Fourier, 343 discrete sine, xvi, 330–333 Fourier, xix, 284, 532–541, 570, 571 Haar, xv, xvi, 292, 294–295, 326, 549–566 Hotelling, see Karhunen-Lo`eve transform images, xvi, 284–333, 487, 554–559, 1062 inverse discrete cosine, 298–330, 343–344, 984 inverse discrete sine, 330–333 inverse Walsh-Hadamard, 293–294 Karhunen-Lo`eve, xvi, 292, 295–297, 329, 557 orthogonal, 284, 554–559 subband, 284, 554–559, 566 Walsh-Hadamard, xvi, 292–294, 557, 714, 715, 982 translation, 516 tree adaptive Huﬀman, 89–91 binary search, 179, 180, 182, 1056 balanced, 179, 181 skewed, 179, 181 data structure, 1047 Huﬀman, 74, 75, 79, 89–91, 1051 height of, 82–84 unique, 235 Huﬀman (decoding), 93 Huﬀman (overﬂow), 93 Huﬀman (rebuilt), 93 logarithmic, 569 LZ78, 190 1090 Index overﬂow, 191 LZW, 203, 204, 206, 208 multiway, 203 spatial orientation, 619–620, 625, 626 traversal, 74 tree-structured vector quantization, 396–397 trends (in an image), 542 triangle (Sierpi´ nski), 519, 521, 998 triangle mesh compression, edgebreaker, xvii, 852, 911–922, 1062 trie deﬁnition of, 150, 191 LZW, 203 Patricia, 245 trigram, 140, 141 and redundancy, trit (ternary digit), 50, 60, 82, 497, 792, 961, 1062, 1063 Trut¸a, Cosmin, ix, xi, xiii, 70, 251 TSVQ, see tree-structured vector quantization Tunstall code, 61–62, 1063 Twain, Mark (1835–1910), 26 two-pass compression, 8, 89, 114, 220, 350, 426, 876, 885, 1060 Udupa, Raghavendra, xvii, xx, 508 Ulysses (novel), 19 unary code, 55–60, 220, 416, 421, 478, 956, 1049, 1063 general, 56, 193, 404, 987, 1063, see also stone-age binary uncertainty principle, 538–540, 548 and MDCT, 815 Unicode, 179, 987, 1044, 1063 Unicode compression, xiii, 852, 922–927, 1060 uniﬁcation of statistical and dictionary methods, 259–261 uniform (wavelet image decomposition), 594 Unisys (and LZW patent), 256, 257 universal compression method, 10, 184 univocalic, 142 UNIX compact, 89 compress, 191, 196, 224–225, 257, 1044, 1058 Gzip, 224, 257 unvoiced sounds, 751 UPX (exe compressor), 254 V.32, 90 V.32bis, 228, 1063 V.42bis, 6, 228–229, 1063 Vail, Alfred (1807–1859), 47 Valens, Clemens, 652 Valenta, Vladimir, 497 Vanryper, William, 46 variable-size codes, 2, 5, 47, 54–60, 78, 89, 94, 96, 100, 171, 173, 959, 1058, 1061, 1063 and reliability, 101, 1060 and sparse strings, 875–880 deﬁnition of, 54 designing of, 55 in fax compression, 104 unambiguous, 71, 1054 variance, 270 and MLP, 426–429 as energy, 288 deﬁnition of, 427 of diﬀerences, 444 of Huﬀman codes, 75 VCDIFF (ﬁle diﬀerencing), 932–934, 1063 vector quantization, 283–284, 361, 390–397, 513, 1063 AAC, 842 adaptive, xvi, 398–402 hyperspectral data, 950–952 LBG algorithm, 392–398, 487, 952 locally optimal partitioned vector quantization, 950–952 quantization noise, 445 tree-structured, 396–397 vector spaces, 326–329, 447 Vega, Susan (mother of the mp3), 846 Veldmeijer, Fred, xv video analog, 653–660 digital, 660–661, 1047 high deﬁnition, 661–664 video compression, xvi, 664–718, 1064 block diﬀerencing, 666 diﬀerencing, 665 distortion measures, 668–669 H.261, xvi, 703–704, 1051 H.264, viii, 350, 706–718, 1051 Index inter frame, 665 intra frame, 665 motion compensation, 666–676 motion vectors, 667, 709 MPEG-1, 670, 676–698, 1057 MPEG-1 audio, xvi, 795–820 subsampling, 665 vine pointers, 152 vision (human), 342, 942 vmail (email with video), 660 vocoders speech codecs, 752, 753 voiced sounds, 750 Voronoi diagrams, 396, 1064 Wagner’s Ring Cycle, 821 Walsh-Hadamard transform, xvi, 290, 292–294, 557, 714, 715, 982 warm colors, 342 Warnock, John (1940–), 928 WAVE audio format, viii, 734–736 wave particle duality, 539 waveform speech codecs, 752–753 wavelet image decomposition adaptive wavelet packet, 596 full, 595 Laplacian pyramid, 590 line, 590 nonstandard, 592 pyramid, 554, 592 quincunx, 592 standard, 554, 590, 593 symmetric, 589, 635 uniform, 594 wavelet packet transform, 594 wavelet packet transform, 594 wavelet scalar quantization (WSQ), 1064 wavelets, 272, 273, 292, 541–652 Beylkin, 585 Coifman, 585 continuous transform, 343, 543–549, 1046 Daubechies, 580, 585–588 D4, 568, 575, 577 D8, 1004, 1005 discrete transform, xv, 343, 576–589, 1048 ﬁlter banks, 566–576 biorthogonal, 569 decimation, 567 deriving ﬁlter coeﬃcients, 574–576 orthogonal, 568 1091 ﬁngerprint compression, xv, 589, 633–639, 1064 Haar, 549–566, 580 image decompositions, 589–596 integer transform, 608–610 lazy transform, 599 lifting scheme, 596–608, 1054 Mexican hat, 543, 545, 547, 548 Morlet, 543, 548 multiresolution decomposition, 589, 1057 origin of name, 543 quadrature mirror ﬁlters, 578 symmetric, 585 used for plotting functions, 578–580 Vaidyanathan, 585 wavelets scalar quantization (WSQ), xv, 532, 633–639 WavPack audio compression, viii, 772–782, 1064 web browsers and FABD, 451 and GIF, 225, 257 and PDF, 928 and PNG, 247 and XML, 251 DjVu, 630 Web site of this book, x, xiii, xvii–xviii Weierstrass, Karl Theodor Wilhelm (1815–1897), 588 weighted ﬁnite automata, xx, 464, 497–510, 1064 Weisstein, Eric W., 486 Welch, Terry A., 199, 256, 1056 WFA, see weighted ﬁnite automata Wheeler, Wayne, v, vii Whitman, Walt (1819–1892), 253 Whittle, Robin, 761 WHT, see Walsh-Hadamard transform Wilde, Erik, 354 Willems, Frans M J, xx, 182 Williams, Ross N., 195, 198, 258 Wilson, Sloan (1920–2003), 142 WinRAR, viii, 226–228 Wirth, Niklaus (1934–), 490 Wister, Owen (1860–1938), 212 Witten, Ian A., 139 Wolf, Stephan, viii, ix, 475 woodcuts, 437 1092 Index unusual pixel distribution, 437 word-based compression, 885–887 Wright, Ernest Vincent (1872–1939), 141 WSQ, see wavelet scalar quantization www (web), 257, 337, 750, 1053 Xerox Techbridge (OCR software), 890 XML compression, XMill, xii, 251–253, 1064 xylography (carving a woodcut), 437 YCbCr color space, 270, 320, 341, 343, 352, 643, 660 YIQ color model, 510, 559 Yokoo, Hidetoshi, xx, 221, 224, 873 Yoshizaki, Haruyasu, 229, 1054 YPbPr color space, 320 zdelta, 934–936, 1064 Zelazny, Roger (1937–1995), 237 zero-probability problem, 140, 144, 364, 413, 437, 682, 897, 1065 zero-redundancy estimate (in CTW), 169 zigzag sequence, 270 in H.261, 704 in H.264, 715 in JPEG, 344, 984 in MPEG, 684, 698, 1009 in RLE, 32 three-dimensional, 948–949 Zip (compression software), 230, 1047, 1065 Ziv, Jacob (1931–), 43, 173, 1055 LZ78 patent, 258 Zurek, Wojciech Hubert (1951–), 53 There is no index of character so sure as the voice —Benjamin Disraeli Colophon The ﬁrst edition of this book was written in a burst of activity during the short period June 1996 through February 1997 The second edition was the result of intensive work during the second half of 1998 and the ﬁrst half of 1999 The third edition includes material written, without haste, mostly in late 2002 and early 2003 The fourth edition was written, at a leisurely pace, during the ﬁrst half of 2006 The book was designed by the author and was typeset by him with the TEX typesetting system developed by D Knuth The text and tables were done with Textures, a commercial TEX implementation for the Macintosh The diagrams were done with Adobe Illustrator, also on the Macintosh Diagrams that required calculations were done either with Mathematica or Matlab, but even those were “polished” by Adobe Illustrator The following points illustrate the amount of work that went into the book: The book (including the auxiliary material located in the book’s Web site) contains about 523,000 words, consisting of about 3,081,000 characters (big, even by the standards of Marcel Proust) However, the size of the auxiliary material collected in the author’s computer and on his shelves while working on the book is about 10 times bigger than the entire book This material includes articles and source codes available on the Internet, as well as many pages of information collected from various sources The text is typeset mainly in font cmr10, but about 30 other fonts were used The raw index ﬁle has about 4500 items There are about 1150 cross references in the book You can’t just start a new project in Visual Studio/Delphi/whatever, then add in an ADPCM encoder, the best psychoacoustic model, some DSP stuﬀ, Levinson Durbin, subband decomposition, MDCT, a Blum-Blum-Shub random number generator, a wavelet-based brownian movement simulator and a Feistel network cipher using a cryptographic hash of the Matrix series, and expect it to blow everything out of the water, now can you? Anonymous, found in [hydrogenaudio 06] ... Reason 2: The errors found by me and by readers in the second edition They are listed in the second edition’s Web site, and they have been corrected in the third edition Reason 3: The title of the. .. also be redirected Those interested in data compression in general should consult the short section titled “Joining the Data Compression Community,” at the end of the book, as well as the two... Introduction Data compression is the process of converting an input data stream (the source stream or the original raw data) into another data stream (the output, the bitstream, or the compressed stream)
- Xem thêm -
Xem thêm: Springer data compression the complete reference (springer 4th ed 2007), Springer data compression the complete reference (springer 4th ed 2007)