`Case 3:17-cv-05659-WHA Document 470-8 Filed 05/13/19 Page 1 of 12
`
`
`
`
`
`EXHIBIT 6
`EXHIBIT 6
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`Case 3:17-cv-05659-WHA Document 470-8 Filed 05/13/19 Page 2 of 12
`
`Data compression
`
`In signal processing, data compression, source coding,[1] or bit-rate reduction involves encoding information using fewer bits than
`the original representation.[2] Compression can be either lossy or lossless. Lossless compression reduces bits by identifying and
`eliminating statistical redundancy. No information is lost in lossless compression. Lossy compression reduces bits by removing
`unnecessary or less important information.[3]
`
`The process of reducing the size of a data file is often referred to as data compression. In the context of data transmission, it is called
`source coding; encoding done at the source of the data before it is stored or transmitted.[4] Source coding should not be confused with
`channel coding, for error detection and correction or line coding, the means for mapping data onto a signal.
`
`Compression is useful because it reduces resources required to store and transmit data. Computational resources are consumed in the
`compression process and, usually, in the reversal of the process (decompression). Data compression is subject to a space–time
`complexity trade-off. For instance, a compression scheme for video may require expensive hardware for the video to be
`decompressed fast enough to be viewed as it is being decompressed, and the option to decompress the video in full before watching it
`may be inconvenient or require additional storage. The design of data compression schemes involves trade-offs among various
`factors, including the degree of compression, the amount of distortion introduced (when using lossy data compression), and the
`computational resources required to compress and decompress the data.[5][6]
`
`Contents
`Lossless
`Lossy
`Theory
`Machine learning
`Feature space vectors
`Data differencing
`Uses
`Audio
`Lossy audio compression
`Coding methods
`Speech encoding
`History
`Video
`Encoding theory
`Inter-frame coding
`Hybrid block-based transform formats
`History
`Genetics
`Outlook and currently unused potential
`See also
`References
`External links
`
`Lossless
`
`
`
`Case 3:17-cv-05659-WHA Document 470-8 Filed 05/13/19 Page 3 of 12
`Lossless data compression algorithms usually exploit statistical redundancy to represent data without losing any information, so that
`the process is reversible. Lossless compression is possible because most real-world data exhibits statistical redundancy. For example,
`an image may have areas of color that do not change over several pixels; instead of coding "red pixel, red pixel, ..." the data may be
`encoded as "279 red pixels". This is a basic example of run-length encoding; there are many schemes to reduce file size by
`eliminating redundancy.
`
`The Lempel–Ziv (LZ) compression methods are among the most popular algorithms for lossless storage.[7] DEFLATE is a variation
`on LZ optimized for decompression speed and compression ratio, but compression can be slow. In the mid-1980s, following work by
`Terry Welch, the Lempel–Ziv–Welch (LZW) algorithm rapidly became the method of choice for most general-purpose compression
`systems. LZW is used in GIF images, programs such as PKZIP, and hardware devices such as modems.[8] LZ methods use a table-
`based compression model where table entries are substituted for repeated strings of data. For most LZ methods, this table is generated
`dynamically from earlier data in the input. The table itself is often Huffman encoded. Grammar-based codes like this can compress
`highly repetitive input extremely effectively, for instance, a biological data collection of the same or closely related species, a huge
`versioned document collection, internet archival, etc. The basic task of grammar-based codes is constructing a context-free grammar
`deriving a single string. Other practical grammar compression algorithms include Sequitur and Re-Pair.
`
`The strongest modern lossless compressors use probabilistic models, such as prediction by partial matching. The Burrows–Wheeler
`transform can also be viewed as an indirect form of statistical modelling.[9] In a further refinement of the direct use of probabilistic
`modelling, statistical estimates can be coupled to an algorithm called arithmetic coding. Arithmetic coding is a more modern coding
`technique that uses the mathematical calculations of a finite-state machine to produce a string of encoded bits from a series of input
`data symbols. It can achieve superior compression compared to other techniques such as the better-known Huffman algorithm. It uses
`an internal memory state to avoid the need to perform a one-to-one mapping of individual input symbols to distinct representations
`that use an integer number of bits, and it clears out the internal memory only after encoding the entire string of data symbols.
`Arithmetic coding applies especially well to adaptive data compression tasks where the statistics vary and are context-dependent, as it
`can be easily coupled with an adaptive model of the probability distribution of the input data. An early example of the use of
`arithmetic coding was in an optional (but not widely used) feature of the JPEG image coding standard.[10] It has since been applied in
`various other designs including H.263, H.264/MPEG-4 AVC and HEVC for video coding.[11]
`
`Lossy
`In the late 1980s, digital images became more common, and standards for lossless image compression emerged. In the early 1990s,
`lossy compression methods began to be widely used.[8] In these schemes, some loss of information is accepted as dropping
`nonessential detail can save storage space. There is a corresponding trade-off between preserving information and reducing size.
`Lossy data compression schemes are designed by research on how people perceive the data in question. For example, the human eye
`is more sensitive to subtle variations in luminance than it is to the variations in color. JPEG image compression works in part by
`rounding off nonessential bits of information.[12] A number of popular compression formats exploit these perceptual differences,
`including psychoacoustics for sound, and psychovisuals for images and video.
`
`Lossy image compression is used in digital cameras, to increase storage capacities. Similarly, DVDs, Blu Ray and streaming video
`use the lossy video coding format.
`
`In lossy audio compression, methods of psychoacoustics are used to remove non-audible (or less audible) components of the audio
`signal. Compression of human speech is often performed with even more specialized techniques; speech coding is distinguished as a
`separate discipline from general-purpose audio compression. Speech coding is used in internet telephony, for example, audio
`compression is used for CD ripping and is decoded by the audio players.[9]
`
`Theory
`The theoretical background of compression is provided by information theory (which is closely related to algorithmic information
`theory) for lossless compression and rate–distortion theory for lossy compression. These areas of study were essentially created by
`Claude Shannon, who published fundamental papers on the topic in the late 1940s and early 1950s. Coding theory is also related to
`
`
`
`Case 3:17-cv-05659-WHA Document 470-8 Filed 05/13/19 Page 4 of 12
`this. The idea of data compression is also deeply connected with statistical inference.[13]
`
`Machine learning
`There is a close connection between machine learning and compression: a system that predicts the posterior probabilities of a
`sequence given its entire history can be used for optimal data compression (by using arithmetic coding on the output distribution)
`while an optimal compressor can be used for prediction (by finding the symbol that compresses best, given the previous history). This
`equivalence has been used as a justification for using data compression as a benchmark for "general intelligence."[14][15][16]
`
`Feature space vectors
`
`However a new, alternative view can show compression algorithms implicitly map strings into implicit feature space vectors, and
`compression-based similarity measures compute similarity within these feature spaces. For each compressor C(.) we define an
`associated vector space ℵ, such that C(.) maps an input string x, corresponds to the vector norm ||~x||. An exhaustive examination of
`the feature spaces underlying all compression algorithms is precluded by space; instead, feature vectors chooses to examine three
`representative lossless compression methods, LZW, LZ77, and PPM.[17]
`
`Data differencing
`Data compression can be viewed as a special case of data differencing:[18][19] Data differencing consists of producing a difference
`given a source and a target, with patching producing a target given a source and a difference, while data compression consists of
`producing a compressed file given a target, and decompression consists of producing a target given only a compressed file. Thus, one
`can consider data compression as data differencing with empty source data, the compressed file corresponding to a "difference from
`nothing." This is the same as considering absolute entropy (corresponding to data compression) as a special case of relative entropy
`(corresponding to data differencing) with no initial data.
`
`When one wishes to emphasize the connection, one may use the term differential compression to refer to data differencing.
`
`Uses
`
`Audio
`Audio data compression, not to be confused with dynamic range compression, has the potential to reduce the transmission bandwidth
`and storage requirements of audio data. Audio compression algorithms are implemented in software as audio codecs. Lossy audio
`compression algorithms provide higher compression at the cost of fidelity and are used in numerous audio applications. These
`algorithms almost all rely on psychoacoustics to eliminate or reduce fidelity of less audible sounds, thereby reducing the space
`required to store or transmit them.[2]
`
`In both lossy and lossless compression, information redundancy is reduced, using methods such as coding, pattern recognition, and
`linear prediction to reduce the amount of information used to represent the uncompressed data.
`
`The acceptable trade-off between loss of audio quality and transmission or storage size depends upon the application. For example,
`one 640 MB compact disc (CD) holds approximately one hour of uncompressed high fidelity music, less than 2 hours of music
`compressed losslessly, or 7 hours of music compressed in the MP3 format at a medium bit rate. A digital sound recorder can typically
`store around 200 hours of clearly intelligible speech in 640 MB.[20]
`
`Lossless audio compression produces a representation of digital data that decompress to an exact digital duplicate of the original
`audio stream, unlike playback from lossy compression techniques such as Vorbis and MP3. Compression ratios are around 50–60%
`of original size,[21] which is similar to those for generic lossless data compression. Lossless compression is unable to attain high
`compression ratios due to the complexity of waveforms and the rapid changes in sound forms. Codecs like FLAC, Shorten, and TTA
`
`
`
`Case 3:17-cv-05659-WHA Document 470-8 Filed 05/13/19 Page 5 of 12
`use linear prediction to estimate the spectrum of the signal. Many of these algorithms use convolution with the filter [-1 1] to slightly
`whiten or flatten the spectrum, thereby allowing traditional lossless compression to work more efficiently. The process is reversed
`upon decompression.
`
`When audio files are to be processed, either by further compression or for editing, it is desirable to work from an unchanged original
`(uncompressed or losslessly compressed). Processing of a lossily compressed file for some purpose usually produces a final result
`inferior to the creation of the same compressed file from an uncompressed original. In addition to sound editing or mixing, lossless
`audio compression is often used for archival storage, or as master copies.
`
`A number of lossless audio compression formats exist. Shorten was an early lossless format. Newer ones include Free Lossless Audio
`Codec (FLAC), Apple's Apple Lossless (ALAC), MPEG-4 ALS, Microsoft's Windows Media Audio 9 Lossless (WMA Lossless),
`Monkey's Audio, TTA, and WavPack. See list of lossless codecs for a complete listing.
`
`Some audio formats feature a combination of a lossy format and a lossless correction; this allows stripping the correction to easily
`obtain a lossy file. Such formats include MPEG-4 SLS (Scalable to Lossless), WavPack, and OptimFROG DualStream.
`
`Other formats are associated with a distinct system, such as:
`
`Direct Stream Transfer, used in Super Audio CD
`Meridian Lossless Packing, used in DVD-Audio, Dolby TrueHD, Blu-ray and HD DVD
`
`Lossy audio compression
`
`Lossy audio compression is used in a wide range of applications. In addition to the
`direct applications (MP3 players or computers), digitally compressed audio streams
`are used in most video DVDs, digital television, streaming media on the internet,
`satellite and cable radio, and increasingly in terrestrial radio broadcasts. Lossy
`compression typically achieves far greater compression than lossless compression
`(5–20% of the original size, rather than 50–60%), by discarding less-critical data.[22]
`
`The innovation of lossy audio compression was to use psychoacoustics to recognize
`that not all data in an audio stream can be perceived by the human auditory system.
`Most lossy compression reduces perceptual redundancy by first identifying
`perceptually irrelevant sounds, that is, sounds that are very hard to hear. Typical
`examples include high frequencies or sounds that occur at the same time as louder
`sounds. Those sounds are coded with decreased accuracy or not at all.
`
`Due to the nature of lossy algorithms, audio quality suffers when a file is
`decompressed and recompressed (digital generation loss). This makes lossy
`compression unsuitable for storing the intermediate results in professional audio
`engineering applications, such as sound editing and multitrack recording. However,
`they are very popular with end users (particularly MP3) as a megabyte can store
`about a minute's worth of music at adequate quality.
`
`Comparison of spectrograms of
`audio in an uncompressed format
`and several lossy formats. The lossy
`spectrograms show bandlimiting of
`higher frequencies, a common
`technique associated with lossy
`audio compression.
`
`Coding methods
`
`To determine what information in an audio signal is perceptually irrelevant, most
`lossy compression algorithms use transforms such as the modified discrete cosine transform (MDCT) to convert time domain
`sampled waveforms into a transform domain. Once transformed, typically into the frequency domain, component frequencies can be
`allocated bits according to how audible they are. Audibility of spectral components calculated using the absolute threshold of hearing
`and the principles of simultaneous masking—the phenomenon wherein a signal is masked by another signal separated by frequency
`
`
`
`Case 3:17-cv-05659-WHA Document 470-8 Filed 05/13/19 Page 6 of 12
`—and, in some cases, temporal masking—where a signal is masked by another signal separated by time. Equal-loudness contours
`may also be used to weight the perceptual importance of components. Models of the human ear-brain combination incorporating such
`effects are often called psychoacoustic models.[23]
`
`Other types of lossy compressors, such as the linear predictive coding (LPC) used with speech, are source-based coders. These coders
`use a model of the sound's generator (such as the human vocal tract with LPC) to whiten the audio signal (i.e., flatten its spectrum)
`before quantization. LPC may be thought of as a basic perceptual coding technique: reconstruction of an audio signal using a linear
`predictor shapes the coder's quantization noise into the spectrum of the target signal, partially masking it.[22]
`
`Lossy formats are often used for the distribution of streaming audio or interactive applications (such as the coding of speech for
`digital transmission in cell phone networks). In such applications, the data must be decompressed as the data flows, rather than after
`the entire data stream has been transmitted. Not all audio codecs can be used for streaming applications, and for such applications a
`codec designed to stream data effectively will usually be chosen.[22]
`
`Latency results from the methods used to encode and decode the data. Some codecs will analyze a longer segment of the data to
`optimize efficiency, and then code it in a manner that requires a larger segment of data at one time to decode. (Often codecs create
`segments called a "frame" to create discrete data segments for encoding and decoding.) The inherent latency of the coding algorithm
`can be critical; for example, when there is a two-way transmission of data, such as with a telephone conversation, significant delays
`may seriously degrade the perceived quality.
`
`In contrast to the speed of compression, which is proportional to the number of operations required by the algorithm, here latency
`refers to the number of samples that must be analysed before a block of audio is processed. In the minimum case, latency is zero
`samples (e.g., if the coder/decoder simply reduces the number of bits used to quantize the signal). Time domain algorithms such as
`LPC also often have low latencies, hence their popularity in speech coding for telephony. In algorithms such as MP3, however, a
`large number of samples have to be analyzed to implement a psychoacoustic model in the frequency domain, and latency is on the
`order of 23 ms (46 ms for two-way communication)).
`
`Speech encoding
`
`Speech encoding is an important category of audio data compression. The perceptual models used to estimate what a human ear can
`hear are generally somewhat different from those used for music. The range of frequencies needed to convey the sounds of a human
`voice are normally far narrower than that needed for music, and the sound is normally less complex. As a result, speech can be
`encoded at high quality using a relatively low bit rate.
`
`If the data to be compressed is analog (such as a voltage that varies with time), quantization is employed to digitize it into numbers
`(normally integers). This is referred to as analog-to-digital (A/D) conversion. If the integers generated by quantization are 8 bits each,
`then the entire range of the analog signal is divided into 256 intervals and all the signal values within an interval are quantized to the
`same number. If 16-bit integers are generated, then the range of the analog signal is divided into 65,536 intervals.
`
`This relation illustrates the compromise between high resolution (a large number of analog intervals) and high compression (small
`integers generated). This application of quantization is used by several speech compression methods. This is accomplished, in
`general, by some combination of two approaches:
`
`Only encoding sounds that could be made by a single human voice.
`Throwing away more of the data in the signal—keeping just enough to reconstruct an "intelligible" voice rather than
`the full frequency range of human hearing.
`Perhaps the earliest algorithms used in speech encoding (and audio data compression in general) were the A-law algorithm and the µ-
`law algorithm.
`
`History
`
`
`
`Case 3:17-cv-05659-WHA Document 470-8 Filed 05/13/19 Page 7 of 12
`A literature compendium for a large variety of audio coding systems was published
`in the IEEE Journal on Selected Areas in Communications (JSAC), February 1988.
`While there were some papers from before that time, this collection documented an
`entire variety of finished, working audio coders, nearly all of them using perceptual
`(i.e. masking) techniques and some kind of frequency analysis and back-end
`noiseless coding.[24] Several of these papers remarked on the difficulty of obtaining
`good, clean digital audio for research purposes. Most, if not all, of the authors in the
`JSAC edition were also active in the MPEG-1 Audio committee.
`
`The world's first commercial broadcast automation audio compression system was
`developed by Oscar Bonello, an engineering professor at the University of Buenos
`Aires.[25] In 1983, using the psychoacoustic principle of the masking of critical
`bands first published in 1967,[26] he started developing a practical application based
`on the recently developed IBM PC computer, and the broadcast automation system was launched in 1987 under the name Audicom.
`Twenty years later, almost all the radio stations in the world were using similar technology manufactured by a number of companies.
`
`Solidyne 922: The world's first
`commercial audio bit compression
`card for PC, 1990
`
`Video
`Video compression is a practical implementation of source coding in information theory. In practice, most video codecs are used
`alongside audio compression techniques to store the separate but complementary data streams as one combined package using so-
`called container formats.[27]
`
`Uncompressed video requires a very high data rate. Although lossless video compression codecs perform at a compression factor of 5
`to 12, a typical MPEG-4 lossy compression video has a compression factor between 20 and 200.[28]
`
`Encoding theory
`
`Video data may be represented as a series of still image frames. Such data usually contains abundant amounts of spatial and temporal
`redundancy. Video compression algorithms attempt to reduce redundancy and store information more compactly.
`
`Most video compression formats and codecs exploit both spatial and temporal redundancy (e.g. through difference coding with
`motion compensation). Similarities can be encoded by only storing differences between e.g. temporally adjacent frames (inter-frame
`coding) or spatially adjacent pixels (intra-frame coding). Inter-frame compression (a temporal delta encoding) is one of the most
`powerful compression techniques. It (re)uses data from one or more earlier or later frames in a sequence to describe the current
`frame. Intra-frame coding, on the other hand, uses only data from within the current frame, effectively being still-image
`compression.[23]
`
`A class of specialized formats used in camcorders and video editing use less complex compression schemes that restrict their
`prediction techniques to intra-frame prediction.
`
`Usually video compression additionally employs lossy compression techniques like quantization that reduce aspects of the source
`data that are (more or less) irrelevant to the human visual perception by exploiting perceptual features of human vision. For example,
`small differences in color are more difficult to perceive than are changes in brightness. Compression algorithms can average a color
`across these similar areas to reduce space, in a manner similar to those used in JPEG image compression.[10] As in all lossy
`compression, there is a trade-off between video quality and bit rate, cost of processing the compression and decompression, and
`system requirements. Highly compressed video may present visible or distracting artifacts.
`
`Other methods than the prevalent DCT-based transform formats, such as fractal compression, matching pursuit and the use of a
`discrete wavelet transform (DWT), have been the subject of some research, but are typically not used in practical products (except for
`the use of wavelet coding as still-image coders without motion compensation). Interest in fractal compression seems to be waning,
`due to recent theoretical analysis showing a comparative lack of effectiveness of such methods.[23]
`
`
`
`Case 3:17-cv-05659-WHA Document 470-8 Filed 05/13/19 Page 8 of 12
`Inter-frame coding
`
`Inter-frame coding works by comparing each frame in the video with the previous one. Individual frames of a video sequence are
`compared from one frame to the next, and the video compression codec sends only the differences to the reference frame. If the frame
`contains areas where nothing has moved, the system can simply issue a short command that copies that part of the previous frame
`into the next one. If sections of the frame move in a simple manner, the compressor can emit a (slightly longer) command that tells
`the decompressor to shift, rotate, lighten, or darken the copy. This longer command still remains much shorter than intraframe
`compression. Usually the encoder will also transmit a residue signal which describes the remaining more subtle differences to the
`reference imagery. Using entropy coding, these residue signals have a more compact representation than the full signal. In areas of
`video with more motion, the compression must encode more data to keep up with the larger number of pixels that are changing.
`Commonly during explosions, flames, flocks of animals, and in some panning shots, the high-frequency detail leads to quality
`decreases or to increases in the variable bitrate.
`
`Hybrid block-based transform formats
`
`Today, nearly all commonly used video
`compression methods (e.g.,
`those
`in
`standards approved by the ITU-T or ISO)
`share the same basic architecture that
`dates back
`to H.261 which was
`standardized in 1988 by the ITU-T. They
`mostly rely on the DCT, applied to
`rectangular blocks of neighboring pixels, and temporal prediction using motion vectors, as well as nowadays also an in-loop filtering
`step.
`
`Processing stages of a typical video encoder
`
`In the prediction stage, various deduplication and difference-coding techniques are applied that help decorrelate data and describe
`new data based on already transmitted data.
`
`Then rectangular blocks of (residue) pixel data are transformed to the frequency domain to ease targeting irrelevant information in
`quantization and for some spatial redundancy reduction. The discrete cosine transform (DCT) that is widely used in this regard was
`introduced by N. Ahmed, T. Natarajan and K. R. Rao in 1974.[29]
`
`In the main lossy processing stage that data gets quantized in order to reduce information that is irrelevant to human visual
`perception.
`
`In the last stage statistical redundancy gets largely eliminated by an entropy coder which often applies some form of arithmetic
`coding.
`
`In an additional in-loop filtering stage various filters can be applied to the reconstructed image signal. By computing these filters also
`inside the encoding loop they can help compression because they can be applied to reference material before it gets used in the
`prediction process and they can be guided using the original signal. The most popular example are deblocking filters that blur out
`blocking artefacts from quantization discontinuities at transform block boundaries.
`
`History
`
`All basic algorithms of today's dominant video codec architecture have been invented before 1979. In 1950, the Bell Labs filed the
`patent on DPCM[30] which soon was applied to video coding. Entropy coding started in the 1940s with the introduction of Shannon–
`Fano coding[31] on which the widely used Huffman coding is based that was developed in 1950;[32] the more modern context-
`adaptive binary arithmetic coding (CABAC) was published in the early 1990s.[33] Transform coding (using the Hadamard transform)
`was introduced in 1969,[34] the popular discrete cosine transform (DCT) appeared in 1974 in scientific literature.[29][35] The ITU-T's
`standard H.261 from 1988 introduced the prevalent basic architecture of video compression technology.
`
`
`
`Case 3:17-cv-05659-WHA Document 470-8 Filed 05/13/19 Page 9 of 12
`
`Genetics
`Genetics compression algorithms are the latest generation of lossless algorithms that compress data (typically sequences of
`nucleotides) using both conventional compression algorithms and genetic algorithms adapted to the specific datatype. In 2012, a team
`of scientists from Johns Hopkins University published a genetic compression algorithm that does not use a reference genome for
`compression. HAPZIPPER was tailored for HapMap data and achieves over 20-fold compression (95% reduction in file size),
`providing 2- to 4-fold better compression and in much faster time than the leading general-purpose compression utilities. For this,
`Chanda, Elhaik, and Bader introduced MAF based encoding (MAFE), which reduces the heterogeneity of the dataset by sorting SNPs
`by their minor allele frequency, thus homogenizing the dataset.[36] Other algorithms in 2009 and 2013 (DNAZip and GenomeZip)
`have compression ratios of up to 1200-fold—allowing 6 billion basepair diploid human genomes to be stored in 2.5 megabytes
`(relative to a reference genome or averaged over many genomes).[37][38] For a benchmark in genetics/genomics data compressors,
`see [39]
`
`Outlook and currently unused potential
`It is estimated that the total amount of data that is stored on the world's storage devices could be further compressed with existing
`compression algorithms by a remaining average factor of 4.5:1.[40] It is estimated that the combined technological capacity of the
`world to store information provides 1,300 exabytes of hardware digits in 2007, but when the corresponding content is optimally
`compressed, this only represents 295 exabytes of Shannon information.[41]
`
`See also
`Auditory masking
`HTTP compression
`Kolmogorov complexity
`Magic compression algorithm
`Minimum description length
`Modulo-N code
`
`Perceptual audio coder
`Range encoding
`Sub-band coding
`Universal code (data compression)
`Vector quantization
`
`References
`1. Wade, Graham (1994). Signal coding and processing (https://books.google.com/books?id=CJswCy7_W8YC) (2 ed.).
`Cambridge University Press. p. 34. ISBN 978-0-521-42336-6. Retrieved 2011-12-22. "The broad objective of source
`coding is to exploit or remove 'inefficient' redundancy in the PCM source and thereby achieve a reduction in the
`overall source rate R."
`2. Mahdi, O.A.; Mohammed, M.A.; Mohamed, A.J. (November 2012). "Implementing a Novel Approach an Convert
`Audio Compression to Text Coding via Hybrid Technique" (http://ijcsi.org/papers/IJCSI-9-6-3-53-59.pdf) (PDF).
`International Journal of Computer Science Issues. 9 (6, No. 3): 53–59. Retrieved 6 March 2013.
`3. Pujar, J.H.; Kadlaskar, L.M. (May 2010). "A New Lossless Method of Image Compression and Decompression Using
`Huffman Coding Techniques" (http://www.jatit.org/volumes/research-papers/Vol15No1/3Vol15No1.pdf) (PDF).
`Journal of Theoretical and Applied Information Technology. 15 (1): 18–23.
`4. Salomon, David (2008). A Concise Introduction to Data Compression. Berlin: Springer. ISBN 9781848000728.
`5. S. Mittal; J. Vetter (2015), "A Survey Of Architectural Approaches for Data Compression in Cache and Main Memory
`Systems" (http://ieeexplore.ieee.org/xpl/articleDetails.jsp?arnumber=7110612), IEEE Transactions on Parallel and
`Distributed Systems, IEEE
`6. Tank, M.K. (2011). Implementation of Limpel-Ziv algorithm for lossless compression using VHDL. Thinkquest 2010:
`Proceedings of the First International Conference on Contours of Computing Technology. Berlin: Springer. pp. 275–
`283.
`7. Navqi, Saud; Naqvi, R.; Riaz, R.A.; Siddiqui, F. (April 2011). "Optimized RTL design and implementation of LZW
`algorithm for high bandwidth applications" (http://pe.org.pl/articles/2011/4/68.pdf) (PDF). Electrical Review. 2011 (4):
`279–285.
`8. Wolfram, Stephen (2002). A New Kind of Science. Wolfram Media, Inc. p. 1069. ISBN 978-1-57955-008-0.
`
`
`
`Case 3:17-cv-05659-WHA Document 470-8 Filed 05/13/19 Page 10 of 12
`9. Mahmud, Salauddin (March 2012). "An Improved Data Compression Method for General Data" (http://www.ijser.org/r
`esearchpaper%5CAn-Improved-Data-Compression-Method-for-General-Data.pdf) (PDF). International Journal of
`Scientific & Engineering Research. 3 (3): 2. Retrieved 6 March 2013.
`10. Lane, Tom. "JPEG Image Compression FAQ, Part 1" (http://www.faqs.org/faqs/jpeg-faq/part1/). Internet FAQ
`Archives. Independent JPEG Group. Retrieved 6 March 2013.
`11. G. J. Sullivan; J.-R. Ohm; W.-J. Han; T. Wiegand (December 2012). "Overview of the High Efficiency Video Coding
`(HEVC) Standard" (http://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=6316136) (PDF). IEEE Transactions
`on Circuits and Systems for Video Technology. IEEE. 22 (12). Retrieved 2017-08-12.
`12. Arcangel, Cory. "On Compression" (http://www.coryarcangel.com/downloads/Cory-Arcangel-OnC.pdf) (PDF).
`Retrieved 6 March 2013.
`13. Marak, Laszlo. "On image compression" (https://web.archive.org/web/20150528012028/http://www.ujoimro.com/reso
`urces/Laszlo_Marak_image_compression.pdf) (PDF). University of Marne la Vallee. Archived from the original (http://
`www.ujoimro.com/resources/Laszlo_Marak_image_compression.pdf) (PDF) on 28 May 2015. Retrieved 6 March
`2013.
`14. Mahoney, Matt. "Rationale for a Large Text C